diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2019-06-20 07:06:47 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2019-06-20 07:06:47 +0000 |
commit | d4312d25656283d34202cede73e9e1fff61a7db6 (patch) | |
tree | bf215761f9b40cbf1ab446992f3068b47c407f8c /app | |
parent | db3ee07a5530b69624d5a8d517c9301cc835edda (diff) | |
download | redmine-d4312d25656283d34202cede73e9e1fff61a7db6.tar.gz redmine-d4312d25656283d34202cede73e9e1fff61a7db6.zip |
Allow tabs to have a custom action (#3058).
Patch by Marius BALTEANU.
git-svn-id: http://svn.redmine.org/redmine/trunk@18271 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app')
-rw-r--r-- | app/helpers/application_helper.rb | 11 | ||||
-rw-r--r-- | app/views/common/_tabs.html.erb | 8 |
2 files changed, 18 insertions, 1 deletions
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 4ecb558b5..1b259b44b 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -407,6 +407,17 @@ module ApplicationHelper end end + # Returns the tab action depending on the tab properties + def get_tab_action(tab) + if tab[:onclick] + return tab[:onclick] + elsif tab[:partial] + return "showTab('#{tab[:name]}', this.href)" + else + return nil + end + end + # Returns the default scope for the quick search form # Could be 'all', 'my_projects', 'subprojects' or nil (current project) def default_search_project_scope diff --git a/app/views/common/_tabs.html.erb b/app/views/common/_tabs.html.erb index 1b880c9c7..df7513e42 100644 --- a/app/views/common/_tabs.html.erb +++ b/app/views/common/_tabs.html.erb @@ -1,10 +1,14 @@ +<% default_action = false %> + <div class="tabs"> <ul> <% tabs.each do |tab| -%> + <% action = get_tab_action(tab) %> <li><%= link_to l(tab[:label]), (tab[:url] || { :tab => tab[:name] }), :id => "tab-#{tab[:name]}", :class => (tab[:name] != selected_tab ? nil : 'selected'), - :onclick => tab[:partial] ? "showTab('#{tab[:name]}', this.href); this.blur(); return false;" : nil %></li> + :onclick => (action.nil? ? nil : "#{ action }; return false;") %></li> + <% default_action = action if tab[:name] == selected_tab %> <% end -%> </ul> <div class="tabs-buttons" style="display:none;"> @@ -19,3 +23,5 @@ :style => (tab[:name] != selected_tab ? 'display:none' : nil), :class => 'tab-content') if tab[:partial] %> <% end -%> + +<%= javascript_tag default_action if default_action %> |