[Rails] RedBox
Pour les fenêtres modales de mes applications Rails, j’utilise RedBox :
http://blog.craigambrose.com/past/2006/8/16/redbox-a-rails-compatible-lightbox/
Il s’agit d’un plug-in type LightBox (donc prenant le focus en avant-plan tantis que l’arrière-plan est recouvert d’un masque opaque), très facile à installer et à utiliser,
et non orienté image ou diaporama.
Pour l’installer:
script/plugin install svn://rubyforge.org/var/svn/ambroseplugins/redbox
Quand à la syntaxe, on peut positionner un lien remote vers sa fenêtre modale comme ceci:
<%= link_to_remote_redbox ‘ma fenêtre modale’, :url => {:controller => ‘messagerie’, :action => ‘check_mails’, :user_id => “JFX”}%>
Une fois ouverte notre fenêtre modale contenant un formulaire, il existe en général deux options : valider ou annuler.
La validation peut se faire en utilisant un submit_tag Rails, dans lequel on parametre la fermeture de la RedBox :
<%= submit_tag(value = ” valider “, options ={”class”,”BleuFonce”,”onclick”,”RedBox.close()”}) %>
L’annulation, dont le but est de provoquer la fermeture de la RedBox pour récupérer le focus sur l’arrière plan sans valider le formulaire, peut être codée de la façon suivante :
<%= link_to_close_redbox ‘<input type=button value=” annuler ” class=”BleuFonce”>’%>
Pour se faire une idée plus précise des possibilités de RedBox, voici les différentes méthodes mises à disposition dans le helper:
link_to_redbox(name, id, html_options = {})
link_to_component_redbox(name, url_options = {}, html_options = {})
link_to_remote_redbox(name, link_to_remote_options = {}, html_options = {})
link_to_close_redbox(name, html_options = {})
button_to_close_redbox(name, html_options = {})
launch_remote_redbox(link_to_remote_options = {}, html_options = {})
A partir de là, rien n’empêche de compléter cette liste avec ses propres besoins (par exemple un select_to_remote_redbox ouvrant la fenêtre modale sur un onChange), le code est sous licence MIT et très lisible.
Au final, RedBox s’avère tout à fait suffisant pour mes besoins, tout en étant facile à mettre en oeuvre et parfaitement stable ![]()




Laisser un commentaire