From 6ad989f82887dcd88cf3cf70b658b4ccf82cf770 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Tue, 26 Aug 2008 16:05:02 +0000 Subject: [PATCH] Adds checkboxes toggle links on permissions report. git-svn-id: http://redmine.rubyforge.org/svn/trunk@1770 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/views/roles/report.rhtml | 18 +++++++++++++----- public/javascripts/application.js | 7 +++++++ 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/app/views/roles/report.rhtml b/app/views/roles/report.rhtml index 98c3b651..8e254379 100644 --- a/app/views/roles/report.rhtml +++ b/app/views/roles/report.rhtml @@ -1,13 +1,17 @@

<%=l(:label_permissions_report)%>

<% form_tag({:action => 'report'}, :id => 'permissions_form') do %> -<%= hidden_field_tag 'permissions[0]', '' %> +<%= hidden_field_tag 'permissions[0]', '', :id => nil %> <% @roles.each do |role| %> - + <% end %> @@ -18,12 +22,16 @@ <%= content_tag('th', mod.humanize, :colspan => (@roles.size + 1), :align => 'left') %> <% end %> <% perms_by_module[mod].each do |permission| %> - - + + <% @roles.each do |role| %> <% end %> diff --git a/public/javascripts/application.js b/public/javascripts/application.js index 1674044f..3becbeb2 100644 --- a/public/javascripts/application.js +++ b/public/javascripts/application.js @@ -10,6 +10,13 @@ function checkAll (id, checked) { } } +function toggleCheckboxesBySelector(selector) { + boxes = $$(selector); + var all_checked = true; + for (i = 0; i < boxes.length; i++) { if (boxes[i].checked == false) { all_checked = false; } } + for (i = 0; i < boxes.length; i++) { boxes[i].checked = !all_checked; } +} + function showAndScrollTo(id, focus) { Element.show(id); if (focus!=null) { Form.Element.focus(focus); }
<%=l(:label_permissions)%><%= content_tag(role.builtin? ? 'em' : 'span', h(role.name)) %> + <%= content_tag(role.builtin? ? 'em' : 'span', h(role.name)) %> + <%= link_to_function(image_tag('toggle_check.png'), "toggleCheckboxesBySelector('input.role-#{role.id}')", + :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}") %> +
<%= permission.name.to_s.humanize %>
+ <%= link_to_function(image_tag('toggle_check.png'), "toggleCheckboxesBySelector('.permission-#{permission.name} input')", + :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}") %> + <%= permission.name.to_s.humanize %> + <% if role.setable_permissions.include? permission %> - <%= check_box_tag "permissions[#{role.id}][]", permission.name, (role.permissions.include? permission.name) %> + <%= check_box_tag "permissions[#{role.id}][]", permission.name, (role.permissions.include? permission.name), :id => nil, :class => "role-#{role.id}" %> <% end %>