Creer les onglets sous radrails?

bonjour à tous,

je cherche à inclure dans une(ou plusieurs) vues, les onglets pour gerer
facilement la navigation d’une page à l’autre à travers uniquement ces
onglets et eventuellement des sous-menus sous certains . je vous
remercie.

Le 1 déc. 06 à 11:43, nkulikiyimfura Kadeve a écrit :

bonjour à tous,

je cherche à inclure dans une(ou plusieurs) vues, les onglets pour
gerer
facilement la navigation d’une page à l’autre à travers uniquement ces
onglets et eventuellement des sous-menus sous certains . je vous
remercie.

Heu, tu parles de radrails ou de ton appli ? Je ne suis pas sûr de
comprendre. Quel est le rapport avec Rails ?

Nicolas C.

creer les onglets sous radrails?

Je ne suis pas sur de comprendre la question :
Des onglets dans l’application web ou dans l’IDE Radrails ?

Si c’est bien dans ton appli Web que tu veux manipuler des onglets, tu
dois pouvoir t’aider de ça : CSS Tab Designer | High Dots

++
Benjamin.

nkulikiyimfura Kadeve a écrit :

philippe lachaise wrote:

Des onglets dans mon application web, le rapport qu’il y a avec
radrails(qui suit le modele MVC)c’est au niveau des vues que je voudrais
savoir s’il n’y a pas peut etre une fonction ajax que j’appelerai
directement???

Bonjour,

Je cherche la même chose que toi pour mes formulaires, j’ai trouvé le
plugin tabnav
(http://blog.seesaw.it/articles/2006/07/23/the-easiest-way-to-add-tabbed-navigation-to-your-rails-app),
mais je ne suis pas pleinement satisfait de la façon de faire…

nkulikiyimfura Kadeve a écrit :


Railsfrance mailing list
removed_email_address@domain.invalid
http://lists.rubyonrails.fr/mailman/listinfo/railsfrance


No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.430 / Virus Database: 268.15.3/561 - Release Date: 01/12/2006 06:36

Guillaume BELLEGUIC
LES ACCORDEURS DE RESEAUX
e-ngoma / Ker data
4, cours Kennedy
35000 Rennes

removed_email_address@domain.invalid
http://www.e-ngoma.net

tèl : +33 (0)299 33 87 48
fax : +33 (0)299 33 97 31

RCS Rennes 487 799 892

CSS Tab Designer | High Dots
L’essayer c’est l’dopter :slight_smile:

Néanmoins j’ai du retrailler un peu la CSS pour l’intégrer hors de son
contexte, mais rien de bien méchant.

Si ça t’intéresse j’ai un code qui permet de générer la barre de
tabulations
en code :

<%= render_tabs_css( [ { :label => 'Label_1', :id => 'id_1' , :title => "Barratin 1" }, { :label => 'Label_2' , :id => 'id_2' , :title => "Barratin 2" }, { :label => 'Label_3 , :id => 'id_3' , :title => "Barratin 3" }, { :label => 'Label_4' , :id => 'id_4' , :title => "Barratin 4" }, { :label => 'Label_5' , :id => 'id_5' , :title => "Barratin 5" }, ] ) %>

Tout est géré dans le helper, dont l’inclusion (une fois et une seule de
la
css)

je cherche à inclure dans une(ou plusieurs) vues, les onglets pour gerer
facilement la navigation d’une page à l’autre

pour les onglets, je l’ai fait il y a qques temps, mais je m’en souviens
plus trop… je garantie donc pas à 100% ma
réponse (-:

chaque mot peut etre encadré de 2 manière différentes : selectionné (en général il
n’y a pas de trait sous le mot, pour
faire comme si il était sur la feuille) et non sélectionné (entièrement
encadré, et grisé par exemple).

donc dans ton appli, tu fais tes liens comme d’hab, sauf qu’il faut que
tu passes en paramètre du lien la classe CSS qui
va bien. il y a une petite astuce pour passer le paramètre (qui tourne
autour de l’utilisation d’accolades il me
semble). j’avais eu qques difficultés, et j’avais posté ici-meme. j’arrive
pas à trouver le post, mais il doit meme y
avoir dedans l’adresse du CSS que j’ai repris. (le post doit dater d’un
mois environ).

pour les menus, je sais pas du tout… Javascript ???

gUI


Pour la santé de votre ordinateur, préférez les logiciels libres !

Guillaume B. : (05 61) 19 40 65 / bureau S723

Le 1 déc. 06 à 11:56, nkulikiyimfura Kadeve a écrit :

Des onglets dans mon application web, le rapport qu’il y a avec
radrails(qui suit le modele MVC)c’est au niveau des vues que je
voudrais
savoir s’il n’y a pas peut etre une fonction ajax que j’appelerai
directement???

De l’AJAX pour faire ton rendu de menu ? J’ai de plus en plus de mal
à te suivre :-). Sinon c’est bien dans les vues que tu fais ça, soit
dans ton layout, soit au cas pas cas dans tes vues.

Nicolas C.

Moi je veux bien le helper :slight_smile:

Merci d’avance
philippe lachaise a écrit :

<%= render_tabs_css( [

http://lists.rubyonrails.fr/mailman/listinfo/railsfrance


No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.430 / Virus Database: 268.15.3/561 - Release Date: 01/12/2006 06:36

Guillaume BELLEGUIC
LES ACCORDEURS DE RESEAUX
e-ngoma / Ker data
4, cours Kennedy
35000 Rennes

removed_email_address@domain.invalid
http://www.e-ngoma.net

tèl : +33 (0)299 33 87 48
fax : +33 (0)299 33 97 31

RCS Rennes 487 799 892


merci, je teste
philippe lachaise a écrit :

  @tabs_css = { css_path => true }
else
# self.ensure_tabs_css ( tab_css )
  @current_tab_id = current_id

<% end %>
<% current = tab %>
3) Et donc on peut directement passer un tableau de hashes pour créer
4" },

Version: 7.5.430 / Virus Database: 268.15.3/561 - Release Date: 01/12/2006 06:36

Guillaume BELLEGUIC
LES ACCORDEURS DE RESEAUX
e-ngoma / Ker data
4, cours Kennedy
35000 Rennes

removed_email_address@domain.invalid
http://www.e-ngoma.net

tèl : +33 (0)299 33 87 48
fax : +33 (0)299 33 97 31

RCS Rennes 487 799 892


  1. Dans application_helper.rb (pardon, j’ai l’habitude de commenetr en
    englais :slight_smile:

Ensure relevant tabs CSS is included once and only once

def ensure_tabs_css( tab_css = ‘std-tabs’ )
#N.B: keep in sync with external generator !
css_path = “tabs/#{tab_css}.css”
do_render = false

if @tabs_css.nil?
  @tabs_css = { css_path => true }
  do_render = true
else
  unless @tabs_css.has_key?( css_path )
    @tabs_css[ css_path ] = true
    do_render = true
  end
end

if do_render
  css_path
else
  nil
end

end

Renders tabbed control from array of option hashes

Return current id so that calling code may act consistently when

current
id

is the result of default behavior :

def render_tabs_css( tab_info_array, current_id = nil, tab_css =
‘std-tabs’ )
# self.ensure_tabs_css( tab_css )
if @tab_info_array = tab_info_array
# If current id is not specified, ambient (params) id is assumed.
# In case params[:id] is undefined first tabs is made current by
default :
current_id = params[:id] if current_id.nil?
@tab_info_array.each do |tab|
# First time current_id default init
current_id = tab[:id] unless current_id
tab[:current] = true if tab[:id] == current_id
end
@current_tab_id = current_id
render :partial => ‘shared/tabs/tabs’ , :locals => { :css_path =>
self.ensure_tabs_css( tab_css ) }
end
end

  1. shared/tabs/_tabs.rb

<% if not css_path.nil? %>
<%= stylesheet_link_tag css_path , :media => ‘all’ %>
<% end %>


    <% current = nil ; @tab_info_array.each do |tab| %>
    <% url_data = {} ; tab.each { |k,v| url_data[k] = v if k ==
    :controller
    or k == :action or k == :id } %>
    <% title = tab[:title]; title = ( title.nil? ? ‘’ : " title="#{h
    title}"" ) %>

<% if current.nil? and tab[:current] %>
<% current = tab %>
  • ><%= tab[:label] %>
  • <% else %>
  • ><%= tab[:label] %>
  • <% end %> <% end %>
    1. Et donc on peut directement passer un tableau de hashes pour créer
      les
      tabs
    <%= render_tabs_css( [ { :label => 'Label_1', :id => 'id_1' , :title => "Barratin 1" }, { :label => 'Label_2' , :id => 'id_2' , :title => "Barratin 2" }, { :label => 'Label_3 , :id => 'id_3' , :title => "Barratin 3" }, { :label => 'Label_4' , :id => 'id_4' , :title => "Barratin 4" }, { :label => 'Label_5' , :id => 'id_5' , :title => "Barratin 5" }, ] ) %>
    1. Bon il manque surement des bouts. Je pourrais éventuellement packager
      mieux, mais pas tout de suite (boulot !)

    Enjoy :slight_smile:

    Si j’ajoute l’option :tab_css=>“mon_css” il le transforme en
    “tab_csstab_css” ???

    Tu l’appelles comment render_tab_form( ) ou render_tabs_css( ) ?

    En 3ème param tu passes un string (“mon_css”) ou un hash
    (:tab_css=>“mon_css”)

    En tout cas c’est bien un STRING qu’il attends.

    Sinon, puis que tu as pris la peine de rajouter la varsion RJS, ça
    commence
    à valoir la peine de packager ça :slight_smile:

    A suivre…

    J’ai un ajouté un helper pour permettre la navigation en link_to_remote
    ( en fait un formulaire a page multiple)

    1. dans application_helper.rb j’ai ajouté :
      def render_tab_form ( tab_info_array, current_id = nil, tab_css =
      ‘std-tabs’ )

      self.ensure_tabs_css ( tab_css )

      if @tab_info_array = tab_info_array

      If current id is not specified, ambient (params) id is assumed.

      In case params[:id] is undefined first tabs is made current by

    default :
    current_id = params[:id] if current_id.nil?
    @tab_info_array.each do |tab|
    # First time current_id default init
    current_id = tab[:id] unless current_id
    tab[:current] = true if tab[:id] == current_id
    end
    @current_tab_id = current_id
    render :partial => ‘shared/tabs/tab_form’ , :locals => { :tab_css
    => tab_css,:css_path => self.ensure_tabs_css( tab_css ) }
    end
    end
    2)views/shared/tabs/_tab_form.rhtml

    <% if not css_path.nil? %>

    <%= stylesheet_link_tag css_path , :media => 'all' %>
    

    <% end %>


      <% current = nil ; @tab_info_array.each do |tab| %>
      <% url_data = {} ; tab.each { |k,v| url_data[k] = v if k ==
      :controller or k == :action or k == :id } %>
      <% title = tab[:title]; title = ( title.nil? ? ‘’ : " title="#{h
      title}"" ) %>

    <% if current.nil? and tab[:current] %>
    <% current = tab %>
    
  • <%=link_to_remote ''+tab[:label]+'' ,:update=>"form-content",:url=>url_data%>
  • <% else %>
  • <%=link_to_remote ''+tab[:label]+'' ,:update=>"form-content",:url=>url_data%>
  • <% end %> <% end %>
    1. utilisation :
      <%= render_tab_form( [
      { :label => ‘Gloups’, :id => @partner , :title => “Barratin
      1”,:action =>‘show’ },
      { :label => ‘RIRI’, :id => @partner , :title => “Barratin
      1”,:action =>'list }
      ] )
      %>

    P.S :
    Si j’ajoute l’option :tab_css=>“mon_css” il le transforme en
    “tab_csstab_css” ???
    guillaume belleguic a écrit :

      css_path
    

    ‘std-tabs’ )
    end
    <% end %>
    <% current = tab %>
    3) Et donc on peut directement passer un tableau de hashes pour créer
    { :label => ‘Label_5’ , :id => ‘id_5’ , :title => "Barratin

    01/12/2006 06:36

    Guillaume BELLEGUIC
    LES ACCORDEURS DE RESEAUX
    e-ngoma / Ker data
    4, cours Kennedy
    35000 Rennes

    removed_email_address@domain.invalid
    http://www.e-ngoma.net

    tèl : +33 (0)299 33 87 48
    fax : +33 (0)299 33 97 31

    RCS Rennes 487 799 892


    merci, de mon coté c’est reglé

    Je l’appelle par render_tab_form().
    effectivement j’utilisait la forme (:tab_css=>“mon_css”) :slight_smile:
    Petite modification :
    avant la div form-content :
    <% url_data = {} ; @tab_info_array[0].each { |k,v| url_data[k] = v if k
    == :controller or k == :action or k == :id } %>
    <%=
    javascript_tag(remote_function(:update=>“form-content”,:url=>url_data))%>

    Ainsi on charge par defaut la première action du tableau…

    philippe lachaise a écrit :


    No virus found in this incoming message.
    Checked by AVG Free Edition.
    Version: 7.5.430 / Virus Database: 268.15.3/561 - Release Date: 01/12/2006 06:36

    Guillaume BELLEGUIC
    LES ACCORDEURS DE RESEAUX
    e-ngoma / Ker data
    4, cours Kennedy
    35000 Rennes

    removed_email_address@domain.invalid
    http://www.e-ngoma.net

    tèl : +33 (0)299 33 87 48
    fax : +33 (0)299 33 97 31

    RCS Rennes 487 799 892