]> source.dussan.org Git - redmine.git/commitdiff
Adds checkboxes toggle links on permissions report.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Tue, 26 Aug 2008 16:05:02 +0000 (16:05 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Tue, 26 Aug 2008 16:05:02 +0000 (16:05 +0000)
git-svn-id: http://redmine.rubyforge.org/svn/trunk@1770 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/views/roles/report.rhtml
public/javascripts/application.js

index 98c3b651e954df11f13a8abfabc50469f4463914..8e254379e8c2cb7b209cc82fa05ff397b07ae271 100644 (file)
@@ -1,13 +1,17 @@
 <h2><%=l(:label_permissions_report)%></h2>
 
 <% form_tag({:action => 'report'}, :id => 'permissions_form') do %>
-<%= hidden_field_tag 'permissions[0]', '' %>
+<%= hidden_field_tag 'permissions[0]', '', :id => nil %>
 <table class="list">
 <thead>
     <tr>
     <th><%=l(:label_permissions)%></th>
     <% @roles.each do |role| %>
-    <th><%= content_tag(role.builtin? ? 'em' : 'span', h(role.name)) %></th>
+    <th>
+        <%= 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)}") %>
+    </th>
     <% end %>
     </tr>
 </thead>
         <tr><%= content_tag('th', mod.humanize, :colspan => (@roles.size + 1), :align => 'left') %></tr>
     <% end %>
     <% perms_by_module[mod].each do |permission| %>
-        <tr class="<%= cycle('odd', 'even') %>">
-        <td><%= permission.name.to_s.humanize %></td>
+        <tr class="<%= cycle('odd', 'even') %> permission-<%= permission.name %>">
+        <td>
+            <%= 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 %>
+        </td>
         <% @roles.each do |role| %>
         <td align="center">
         <% 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 %>
         </td>
         <% end %>
index 1674044f83a08026b7e18c31128eb76b85d8dbdb..3becbeb210b8c5388d727835eb4c78493583fd46 100644 (file)
@@ -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); }