You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

permissions.html.erb 4.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <%= title [l(:label_role_plural), roles_path], l(:label_permissions_report) %>
  2. <div class="hide-when-print">
  3. <fieldset id="filters" class="collapsible collapsed">
  4. <legend onclick="toggleFieldset(this);" class="icon icon-collapsed"><%= l(:label_filter_plural) %></legend>
  5. <div style="display: none;">
  6. <%= form_tag({}, :method => :get) do %>
  7. <fieldset>
  8. <legend><%= toggle_checkboxes_link('#filters input[type=checkbox]:enabled') %></legend>
  9. <% Role.sorted.to_a.each do |role| %>
  10. <label>
  11. <%= check_box_tag "ids[]", role.id, @roles.include?(role) %>
  12. <%= role.name %>
  13. </label>
  14. <% end %>
  15. </fieldset>
  16. <p>
  17. <%= submit_tag l(:button_apply), :name => nil %>
  18. <%= link_to l(:button_clear), permissions_roles_path, :class => 'icon icon-reload' %>
  19. </p>
  20. <% end %>
  21. </div>
  22. </fieldset>
  23. </div>
  24. <%= form_tag(permissions_roles_path, :id => 'permissions_form') do %>
  25. <% @roles.each do |role| %>
  26. <%= hidden_field_tag "permissions[#{role.id}][]", '', :id => nil %>
  27. <% end %>
  28. <div class="autoscroll">
  29. <table class="list permissions">
  30. <thead>
  31. <tr>
  32. <th><%=l(:label_permissions)%></th>
  33. <% @roles.each do |role| %>
  34. <th>
  35. <%= link_to_function('',
  36. "toggleCheckboxesBySelector('input.role-#{role.id}')",
  37. :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}",
  38. :class => 'icon-only icon-checked') %>
  39. <%= content_tag(role.builtin? ? 'em' : 'span', role.name) %>
  40. </th>
  41. <% end %>
  42. </tr>
  43. </thead>
  44. <tbody>
  45. <% perms_by_module = @permissions.group_by {|p| p.project_module.to_s} %>
  46. <% perms_by_module.keys.sort.each do |mod| %>
  47. <% unless mod.blank? %>
  48. <tr class="group open">
  49. <td>
  50. <span class="expander icon icon-expanded" onclick="toggleRowGroup(this);">&nbsp;</span>
  51. <%= l_or_humanize(mod, :prefix => 'project_module_') %>
  52. </td>
  53. <% @roles.each do |role| %>
  54. <td class="role"><%= role.name %></td>
  55. <% end %>
  56. </tr>
  57. <% end %>
  58. <% perms_by_module[mod].each do |permission| %>
  59. <% humanized_perm_name = l_or_humanize(permission.name, :prefix => 'permission_') %>
  60. <tr class="permission-<%= permission.name %>">
  61. <td class="name">
  62. <%= link_to_function('',
  63. "toggleCheckboxesBySelector('.permission-#{permission.name} input')",
  64. :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}",
  65. :class => 'icon-only icon-checked') %>
  66. <%= humanized_perm_name %>
  67. </td>
  68. <% @roles.each do |role| %>
  69. <% if role.setable_permissions.include? permission %>
  70. <td title="<%= "#{humanized_perm_name} (#{role.name})" %>">
  71. <%= check_box_tag "permissions[#{role.id}][]", permission.name, (role.permissions.include? permission.name), :id => nil, :class => "role-#{role.id}" %>
  72. </td>
  73. <% else %>
  74. <td></td>
  75. <% end %>
  76. <% end %>
  77. </tr>
  78. <% end %>
  79. <% end %>
  80. </tbody>
  81. </table>
  82. </div>
  83. <p><%= check_all_links 'permissions_form' %></p>
  84. <p><%= submit_tag l(:button_save) %></p>
  85. <% end %>
  86. <% other_formats_links do |f| %>
  87. <%= f.link_to_with_query_parameters 'CSV', {}, :onclick => "showModal('csv-export-options', '330px'); return false;" %>
  88. <% end %>
  89. <div id="csv-export-options" style="display: none;">
  90. <h3 class="title"><%= l(:label_export_options, :export_format => 'CSV') %></h3>
  91. <%= form_tag(permissions_roles_path(:format => 'csv'), :method => :get, :id => 'csv-export-form') do %>
  92. <%= export_csv_encoding_select_tag %>
  93. <%= export_csv_separator_select_tag %>
  94. <p class="buttons">
  95. <%= submit_tag l(:button_export), :name => nil, :onclick => 'hideModal(this);', :data => {:disable_with => false} %>
  96. <%= link_to_function l(:button_cancel), 'hideModal(this);' %>
  97. </p>
  98. <% end %>
  99. </div>