]> source.dussan.org Git - redmine.git/commitdiff
Hide options when permission is not given.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 5 Jun 2016 17:45:41 +0000 (17:45 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 5 Jun 2016 17:45:41 +0000 (17:45 +0000)
git-svn-id: http://svn.redmine.org/redmine/trunk@15468 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/views/roles/_form.html.erb
public/javascripts/application.js

index 8b7b94c73f736757070a3350d7d8460093179b36..49cba3617295bd65369d0f6b29442f5421faf182 100644 (file)
@@ -7,17 +7,17 @@
   <% end %>
 
   <% unless @role.anonymous? %>
-    <p><%= f.select :issues_visibility, Role::ISSUES_VISIBILITY_OPTIONS.collect {|v| [l(v.last), v.first]} %></p>
+    <p class="view_issues_shown"><%= f.select :issues_visibility, Role::ISSUES_VISIBILITY_OPTIONS.collect {|v| [l(v.last), v.first]} %></p>
   <% end %>
 
   <% unless @role.anonymous? %>
-    <p><%= f.select :time_entries_visibility, Role::TIME_ENTRIES_VISIBILITY_OPTIONS.collect {|v| [l(v.last), v.first]} %></p>
+    <p class="view_time_entries_shown"><%= f.select :time_entries_visibility, Role::TIME_ENTRIES_VISIBILITY_OPTIONS.collect {|v| [l(v.last), v.first]}, {}, :class => "view_time_entries_enabled" %></p>
   <% end %>
 
   <p><%= f.select :users_visibility, Role::USERS_VISIBILITY_OPTIONS.collect {|v| [l(v.last), v.first]} %></p>
 
   <% unless @role.builtin? %>
-    <p id="manage_members_options">
+    <p class="manage_members_shown">
       <label><%= l(:label_member_management) %></label>
       <label class="block">
         <%= radio_button_tag 'role[all_roles_managed]', 1, @role.all_roles_managed?, :id => 'role_all_roles_managed_on',
@@ -52,7 +52,8 @@
     <% perms_by_module[mod].each do |permission| %>
         <label class="floating">
         <%= check_box_tag 'role[permissions][]', permission.name, (@role.permissions.include? permission.name),
-              :id => "role_permissions_#{permission.name}" %>
+              :id => "role_permissions_#{permission.name}",
+              :data => {:shows => ".#{permission.name}_shown"} %>
         <%= l_or_humanize(permission.name, :prefix => 'permission_') %>
         </label>
     <% end %>
@@ -62,7 +63,7 @@
 <%= hidden_field_tag 'role[permissions][]', '' %>
 </div>
 
-<div id="role-permissions-trackers">
+<div id="role-permissions-trackers" class="view_issues_shown">
 <h3><%= l(:label_issue_tracking) %></h3>
 <% permissions = %w(view_issues add_issues edit_issues add_issue_notes delete_issues) %>
 
     <tr>
       <th><%= l(:label_tracker) %></th>
       <% permissions.each do |permission| %>
-      <th><%= l("permission_#{permission}") %></th>
+      <th class="<%= "#{permission}_shown" %>"><%= l("permission_#{permission}") %></th>
       <% end %>
   </thead>
   <tbody>
     <tr>
       <td class="name"><b><%= l(:label_tracker_all) %></b></td>
       <% permissions.each do |permission| %>
-      <td>
+      <td class="<%= "#{permission}_shown" %>">
         <%= hidden_field_tag "role[permissions_all_trackers][#{permission}]", '0', :id => nil %>
         <%= check_box_tag "role[permissions_all_trackers][#{permission}]",
               '1',
               @role.permissions_all_trackers?(permission),
+              :class => "#{permission}_shown",
               :data => {:disables => ".#{permission}_tracker"} %>
       </td>
       <% end %>
@@ -92,7 +94,7 @@
     <tr class="<%= cycle("odd", "even") %>">
       <td class="name"><%= tracker.name %></td>
       <% permissions.each do |permission| %>
-      <td><%= check_box_tag "role[permissions_tracker_ids][#{permission}][]",
+      <td class="<%= "#{permission}_shown" %>"><%= check_box_tag "role[permissions_tracker_ids][#{permission}][]",
                 tracker.id,
                 @role.permissions_tracker_ids?(permission, tracker.id),
                 :class => "#{permission}_tracker",
   <%= hidden_field_tag "role[permissions_tracker_ids][#{permission}][]", '' %>
 <% end %>
 </div>
-
-<%= javascript_tag do %>
-$(document).ready(function(){
-  $("#role_permissions_manage_members").change(function(){
-    $("#manage_members_options").toggle($(this).is(":checked"));
-  }).change();
-});
-<% end %>
index 743b14ff66609339a1eb9e60a2c5507d3777de75..347611bb28c70cc795f9fe56ee2ca1cdf1ca8529 100644 (file)
@@ -719,9 +719,10 @@ function toggleDisabledOnChange() {
   var checked = $(this).is(':checked');
   $($(this).data('disables')).attr('disabled', checked);
   $($(this).data('enables')).attr('disabled', !checked);
+  $($(this).data('shows')).toggle(checked);
 }
 function toggleDisabledInit() {
-  $('input[data-disables], input[data-enables]').each(toggleDisabledOnChange);
+  $('input[data-disables], input[data-enables], input[data-shows]').each(toggleDisabledOnChange);
 }
 
 (function ( $ ) {
@@ -751,7 +752,7 @@ function toggleDisabledInit() {
 }( jQuery ));
 
 $(document).ready(function(){
-  $('#content').on('change', 'input[data-disables], input[data-enables]', toggleDisabledOnChange);
+  $('#content').on('change', 'input[data-disables], input[data-enables], input[data-shows]', toggleDisabledOnChange);
   toggleDisabledInit();
 });