From f5edd36558a5178e7a3fbde5b6fc828be27702b5 Mon Sep 17 00:00:00 2001 From: Frederico Camara Date: Fri, 8 Nov 2019 10:58:48 -0300 Subject: [PATCH 05/21] Hide trackers and roles by workspace & workflow & color roles --- app/helpers/members_helper.rb | 10 ++++++++++ app/helpers/principal_memberships_helper.rb | 10 ++++++++++ app/helpers/projects_helper.rb | 4 ++++ app/views/members/_edit.html.erb | 14 +++++++++----- app/views/members/_new_form.html.erb | 4 ++-- app/views/principal_memberships/_edit.html.erb | 10 +++++++--- app/views/principal_memberships/_new_form.html.erb | 2 +- app/views/projects/_form.html.erb | 2 +- app/views/projects/settings/_issues.html.erb | 4 ++-- public/stylesheets/application.css | 3 +++ 10 files changed, 49 insertions(+), 14 deletions(-) diff --git a/app/helpers/members_helper.rb b/app/helpers/members_helper.rb index ff7ff1bff..fd187ee88 100644 --- a/app/helpers/members_helper.rb +++ b/app/helpers/members_helper.rb @@ -35,4 +35,14 @@ module MembersHelper s + content_tag('span', links, :class => 'pagination') end + + def role_color_and_hide(role) + color_and_hide = "" + if ! role.assignable + color_and_hide += " style=color:darkblue" + elsif ! role.workflow_rules.where(:workspace_id => @project.workspace_id).any? + color_and_hide += " class=unused style=color:darkred" + end + color_and_hide + end end diff --git a/app/helpers/principal_memberships_helper.rb b/app/helpers/principal_memberships_helper.rb index bf6898fde..4a34d510d 100644 --- a/app/helpers/principal_memberships_helper.rb +++ b/app/helpers/principal_memberships_helper.rb @@ -61,4 +61,14 @@ module PrincipalMembershipsHelper user_membership_path(principal, membership, *args) end end + + def role_color_and_hide(role, project = nil) + color_and_hide = "" + if ! role.assignable + color_and_hide += " style=color:darkblue" + elsif ! project.nil? && ! role.workflow_rules.where(:workspace_id => project.workspace_id).any? + color_and_hide += " class=unused style=color:darkred" + end + color_and_hide + end end diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index 1dd7a84b7..57ac2e385 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -103,6 +103,10 @@ module ProjectsHelper options_for_select(grouped, project.workspace_id) end + def used_workspaces_by_tracker(tracker) + tracker.workflow_rules.map(&:workspace_id).uniq + end + def format_version_sharing(sharing) sharing = 'none' unless Version::VERSION_SHARINGS.include?(sharing) l("label_version_sharing_#{sharing}") diff --git a/app/views/members/_edit.html.erb b/app/views/members/_edit.html.erb index 91c340fec..da915fc55 100644 --- a/app/views/members/_edit.html.erb +++ b/app/views/members/_edit.html.erb @@ -3,15 +3,19 @@ :remote => request.xhr?, :method => :put) do |f| %>

- <% @roles.each do |role| %> -

+ <% @roles.each do |role| %> + > <%= check_box_tag('membership[role_ids][]', role.id, @member.roles.to_a.include?(role), :id => nil, :disabled => !@member.role_editable?(role)) %> <%= role %> -
- <% end %> -

+ + <% end %> <%= hidden_field_tag 'membership[role_ids][]', '', :id => nil %>

<%= submit_tag l(:button_save), :class => "small" %> diff --git a/app/views/members/_new_form.html.erb b/app/views/members/_new_form.html.erb index 70caa2600..7cca92f72 100644 --- a/app/views/members/_new_form.html.erb +++ b/app/views/members/_new_form.html.erb @@ -7,10 +7,10 @@

- <%= toggle_checkboxes_link('.roles-selection input') %><%= l(:label_role_plural) %> + <%= toggle_checkboxes_link('.roles-selection input:visible') %><%= l(:label_role_plural) %> (<%= l(:label_all) %>)
<% User.current.managed_roles(@project).each do |role| %> - + ><%= check_box_tag 'membership[role_ids][]', role.id, false, :id => nil %><%= role %> <% end %>
diff --git a/app/views/principal_memberships/_edit.html.erb b/app/views/principal_memberships/_edit.html.erb index af05c4935..8662d2ec0 100644 --- a/app/views/principal_memberships/_edit.html.erb +++ b/app/views/principal_memberships/_edit.html.erb @@ -2,14 +2,18 @@ :remote => request.xhr?, :method => :put) do %>

+ + <%= l(:label_role_plural) %> + (<%= l(:label_all) %>): + +

<% @roles.each do |role| %> -
+ <% end %> -

<%= hidden_field_tag 'membership[role_ids][]', '', :id => nil %>

<%= submit_tag l(:button_save) %> diff --git a/app/views/principal_memberships/_new_form.html.erb b/app/views/principal_memberships/_new_form.html.erb index 90d91fc71..06ec18b5f 100644 --- a/app/views/principal_memberships/_new_form.html.erb +++ b/app/views/principal_memberships/_new_form.html.erb @@ -15,7 +15,7 @@ <%= toggle_checkboxes_link('.roles-selection input') %><%= l(:label_role_plural) %>

<% @roles.each do |role| %> - diff --git a/app/views/projects/_form.html.erb b/app/views/projects/_form.html.erb index 30b2a98aa..b47845a6d 100644 --- a/app/views/projects/_form.html.erb +++ b/app/views/projects/_form.html.erb @@ -20,7 +20,7 @@ <% end %> <% if @project.safe_attribute? 'workspace_id' %> -

<%= f.select :workspace_id, project_workspace_options(@project) %>

+

<%= f.select :workspace_id, project_workspace_options(@project), {}, :onchange => "$('#project_trackers > label').hide(); $('#project_trackers > label.ws-' + this.value).show();" %>

<% end %> <% if @project.safe_attribute? 'inherit_members' %> diff --git a/app/views/projects/settings/_issues.html.erb b/app/views/projects/settings/_issues.html.erb index dc5265d8e..754de1175 100644 --- a/app/views/projects/settings/_issues.html.erb +++ b/app/views/projects/settings/_issues.html.erb @@ -2,9 +2,9 @@ <%= hidden_field_tag 'tab', 'issues' %> <% unless @trackers.empty? %> -
<%= toggle_checkboxes_link('#project_trackers input[type=checkbox]') %><%= l(:label_tracker_plural)%> +
<%= toggle_checkboxes_link('#project_trackers input[type=checkbox]') %><%= l(:label_tracker_plural)%> (<%= l(:label_all) %>) <% @trackers.each do |tracker| %> -