diff --git a/app/views/roles/report.rhtml b/app/views/roles/report.rhtml index 98c3b65..8e25437 100644 --- a/app/views/roles/report.rhtml +++ b/app/views/roles/report.rhtml @@ -1,13 +1,17 @@
<%=l(:label_permissions)%> | <% @roles.each do |role| %> -<%= 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)}") %> + | <% end %>
---|---|---|
<%= 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 %> + | <% @roles.each do |role| %><% 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 %> | <% end %> diff --git a/public/javascripts/application.js b/public/javascripts/application.js index 1674044..3becbeb 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); }