]> source.dussan.org Git - redmine.git/commitdiff
Do not use javascript to hide tabs content on page loading and make tabs work with...
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Wed, 26 Mar 2008 18:49:12 +0000 (18:49 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Wed, 26 Mar 2008 18:49:12 +0000 (18:49 +0000)
git-svn-id: http://redmine.rubyforge.org/svn/trunk@1293 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/helpers/custom_fields_helper.rb
app/views/custom_fields/list.rhtml
app/views/projects/settings.rhtml
app/views/settings/edit.rhtml

index 8792c8c6e80f2c7400e3e9d992d3e3d15110ad80..61c8d6b3603127eca442512d3173df63b1e6e116 100644 (file)
 
 module CustomFieldsHelper
 
+  def custom_fields_tabs
+    tabs = [{:name => 'IssueCustomField', :label => :label_issue_plural},
+            {:name => 'ProjectCustomField', :label => :label_project_plural},
+            {:name => 'UserCustomField', :label => :label_user_plural}
+            ]
+  end
+  
   # Return custom field html tag corresponding to its format
   def custom_field_tag(custom_value)   
     custom_field = custom_value.custom_field
index 4fd381a179856802f016a108f50e0c846cab2ab8..43ddd99c8a33f27f22f7fead9891aff44c03f485 100644 (file)
@@ -1,21 +1,26 @@
 <h2><%=l(:label_custom_field_plural)%></h2>
 
+<% selected_tab = params[:tab] ? params[:tab].to_s : custom_fields_tabs.first[:name] %>
+
 <div class="tabs">
 <ul>
-<li><%= link_to l(:label_issue_plural), {}, :id=> "tab-IssueCustomField", :onclick => "showTab('IssueCustomField'); this.blur(); return false;" %></li>
-<li><%= link_to l(:label_project_plural), {}, :id=> "tab-ProjectCustomField", :onclick => "showTab('ProjectCustomField'); this.blur(); return false;" %></li>
-<li><%= link_to l(:label_user_plural), {}, :id=> "tab-UserCustomField", :onclick => "showTab('UserCustomField'); this.blur(); return false;" %></li>
+<% custom_fields_tabs.each do |tab| -%>
+    <li><%= link_to l(tab[:label]), { :tab => tab[:name] },
+                                    :id => "tab-#{tab[:name]}",
+                                    :class => (tab[:name] != selected_tab ? nil : 'selected'),
+                                    :onclick => "showTab('#{tab[:name]}'); this.blur(); return false;" %></li>
+<% end -%>
 </ul>
 </div>
 
-<% %w(IssueCustomField ProjectCustomField UserCustomField).each do |type| %>
-<div id="tab-content-<%= type %>" class="tab-content">
+<% custom_fields_tabs.each do |tab| %>
+<div id="tab-content-<%= tab[:name] %>" class="tab-content" style="<%= tab[:name] != selected_tab ? 'display:none' : nil %>">
 <table class="list">           
   <thead><tr>  
        <th width="30%"><%=l(:field_name)%></th>
        <th><%=l(:field_field_format)%></th>
        <th><%=l(:field_is_required)%></th>
-       <% if type == 'IssueCustomField' %>
+       <% if tab[:name] == 'IssueCustomField' %>
        <th><%=l(:field_is_for_all)%></th>
        <th><%=l(:label_used_by)%></th>
        <% end %>
        <th width="10%"></th>
   </tr></thead>
   <tbody>
-<% for custom_field in (@custom_fields_by_type[type] || []).sort %>
+<% (@custom_fields_by_type[tab[:name]] || []).sort.each do |custom_field| -%>
   <tr class="<%= cycle("odd", "even") %>">
        <td><%= link_to custom_field.name, :action => 'edit', :id => custom_field %></td>
        <td align="center"><%= l(CustomField::FIELD_FORMATS[custom_field.field_format][:name]) %></td>
        <td align="center"><%= image_tag 'true.png' if custom_field.is_required? %></td>
-       <% if type == 'IssueCustomField' %>
+       <% if tab[:name] == 'IssueCustomField' %>
        <td align="center"><%= image_tag 'true.png' if custom_field.is_for_all? %></td>
        <td align="center"><%= custom_field.projects.count.to_s + ' ' + lwr(:label_project, custom_field.projects.count) if custom_field.is_a? IssueCustomField and !custom_field.is_for_all? %></td>
        <% end %>
 <% end; reset_cycle %>
   </tbody>
 </table>
-<br />
-<%= link_to l(:label_custom_field_new), {:action => 'new', :type => type}, :class => 'icon icon-add' %>
+
+<p><%= link_to l(:label_custom_field_new), {:action => 'new', :type => tab[:name]}, :class => 'icon icon-add' %></p>
 </div>
 <% end %>
 
-<%= javascript_tag "showTab('#{@tab}');" %>
-
 <% html_title(l(:label_custom_field_plural)) -%>
index 5516623a3975ec5e2fbbbf920c1577206ae7450b..c7b0f5006c220156823492c2e4aa17d5ca037ba4 100644 (file)
@@ -1,18 +1,24 @@
 <h2><%=l(:label_settings)%></h2>
 
+<% tabs = project_settings_tabs %>
+<% selected_tab = params[:tab] ? params[:tab].to_s : tabs.first[:name] %>
+
 <div class="tabs">
 <ul>
-<% project_settings_tabs.each do |tab| %>
-  <li><%= link_to l(tab[:label]), {}, :id => "tab-#{tab[:name]}", :onclick => "showTab('#{tab[:name]}'); this.blur(); return false;" %></li>
-<% end %>
+<% tabs.each do |tab| -%>
+    <li><%= link_to l(tab[:label]), { :tab => tab[:name] },
+                                    :id => "tab-#{tab[:name]}",
+                                    :class => (tab[:name] != selected_tab ? nil : 'selected'),
+                                    :onclick => "showTab('#{tab[:name]}'); this.blur(); return false;" %></li>
+<% end -%>
 </ul>
 </div>
 
-<% project_settings_tabs.each do |tab| %>
-<%= content_tag('div', render(:partial => tab[:partial]), :id => "tab-content-#{tab[:name]}", :class => 'tab-content') %>
-<% end %>
-
-<%= tab = params[:tab] ? h(params[:tab]) : project_settings_tabs.first[:name]
-javascript_tag "showTab('#{tab}');" %>
+<% tabs.each do |tab| -%>
+<%= content_tag('div', render(:partial => tab[:partial]), 
+                       :id => "tab-content-#{tab[:name]}",
+                       :style => (tab[:name] != selected_tab ? 'display:none' : nil),
+                       :class => 'tab-content') %>
+<% end -%>
 
 <% html_title(l(:label_settings)) -%>
index c7b47b6d0c5bc92e0e7798ab6617c974ff2f24df..c99a139604c6e62b4e59a5e6f10be5d437edf9f8 100644 (file)
@@ -1,18 +1,23 @@
 <h2><%= l(:label_settings) %></h2>
 
+<% selected_tab = params[:tab] ? params[:tab].to_s : administration_settings_tabs.first[:name] %>
+
 <div class="tabs">
-    <ul>
-    <% administration_settings_tabs.each do |tab| -%>
-        <li><%= link_to l(tab[:label]), {}, :id => "tab-#{tab[:name]}", :onclick => "showTab('#{tab[:name]}'); this.blur(); return false;" %></li>
-    <% end -%>
-    </ul>
+<ul>
+<% administration_settings_tabs.each do |tab| -%>
+    <li><%= link_to l(tab[:label]), { :tab => tab[:name] },
+                                    :id => "tab-#{tab[:name]}",
+                                    :class => (tab[:name] != selected_tab ? nil : 'selected'),
+                                    :onclick => "showTab('#{tab[:name]}'); this.blur(); return false;" %></li>
+<% end -%>
+</ul>
 </div>
 
-<% administration_settings_tabs.each do |tab| %>
-    <%= content_tag('div', render(:partial => tab[:partial]), :id => "tab-content-#{tab[:name]}", :class => 'tab-content') %>
-<% end %>
-
-<%= tab = params[:tab] ? h(params[:tab]) : administration_settings_tabs.first[:name]
-javascript_tag "showTab('#{tab}');" %>
+<% administration_settings_tabs.each do |tab| -%>
+<%= content_tag('div', render(:partial => tab[:partial]), 
+                       :id => "tab-content-#{tab[:name]}",
+                       :style => (tab[:name] != selected_tab ? 'display:none' : nil),
+                       :class => 'tab-content') %>
+<% end -%>
 
 <% html_title(l(:label_settings), l(:label_administration)) -%>