Forum: Rails France comment faire un highlight avec du texte sur un span

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Patrick A. (Guest)
on 2007-01-06 20:30
(Received via mailing list)
Salut à tous,

J'ai ça dans ma view:

<%= link_to_remote 'update', :update => 'updatespan',
      :url => { :action => 'edit',:id=>r.id.to_s } %> <span
id="mytext">some text</span>

ce que je fais pour l'instant:

  render :update do |page|
page.replace_html  @spanid,
                 "mise a jour avec succes"
page.visual_effect :highlight, @spanid
end

mais ça me donne l'érreur:
try { } catch (e) { alert('RJS error:\n\n' + e.toString()); alert('');
throw e }

je voudrais remplacer le contenu du span pour une seconde et demie par
"mise à jour avec succè" et un effet highlight et ensuite revenir sur
le text original du span, dans ce cas "some text" mais je suis un peu
bloqué comment faire.

Si vous avez une idée,

Merci d'avance

Pat
Renaud Morvan (Guest)
on 2007-01-06 20:30
(Received via mailing list)
Le 5 janv. 07 à 02:04, Patrick A. a écrit :

>  render :update do |page|
> "mise à jour avec succè" et un effet highlight et ensuite revenir sur
> le text original du span, dans ce cas "some text" mais je suis un peu
> bloqué comment faire.
>
> Si vous avez une idée,

A ma connaissance il existe plusieurs moyen de setter une variable js
via rjs mais pas d'en lire sans écrire directement le js, car je ne
crois pas qu'on puisse appeler des variables js ou des propriété
d'object js comme argument via les methods rjs

donc si tu tiens absoluement à utiliser rjs pour ca tu peux faire un
truc du genre:

render :update do |page|
  page << "var temp = $('mytext').innerHTML;  $('mytext').innerHTML=
'mise a jour avec succes';"
  page['mytext'].visual_effect :highlight
  page.delay(1.5) do
    page << "$('mytext').innerHTML= temp;"
  end
end

Maintenant à mon humble avis c'est très très laid, ca fera froncer
beaucoup de sourcil de voir des détails d'implémentation d'effet
client spécifique se retrouver dans le code d'un controller sur un
serveur sensé être MVC.

IMHO ca mérite de créer son propre effect scriptaculous, c'est très
simple et réutilisable et ca permettrait de faire juste un page
['mytext'].visual_effect :transitional_text 'mise a jour avec succes'
ce qui aurait plus de gueule dans un controller.

Renaud
Julien alexandre -. (Guest)
on 2007-01-06 20:30
(Received via mailing list)
Salut,
il existe ceci pour rajouter un delai

page.delay(3.0) do
  page.visual_effect :highlight, @spanid
end

Sinon il y a une option :delay sur le highlight (cf la doc
scriptaculous)

++
Julien
This topic is locked and can not be replied to.