Patch #20384 » 0005-Hide-trackers-and-roles-by-workspace-workflow-color-.patch
| app/helpers/members_helper.rb | ||
|---|---|---|
| 35 | 35 | |
| 36 | 36 |
s + content_tag('span', links, :class => 'pagination')
|
| 37 | 37 |
end |
| 38 | ||
| 39 |
def role_color_and_hide(role) |
|
| 40 |
color_and_hide = "" |
|
| 41 |
if ! role.assignable |
|
| 42 |
color_and_hide += " style=color:darkblue" |
|
| 43 |
elsif ! role.workflow_rules.where(:workspace_id => @project.workspace_id).any? |
|
| 44 |
color_and_hide += " class=unused style=color:darkred" |
|
| 45 |
end |
|
| 46 |
color_and_hide |
|
| 47 |
end |
|
| 38 | 48 |
end |
| app/helpers/principal_memberships_helper.rb | ||
|---|---|---|
| 61 | 61 |
user_membership_path(principal, membership, *args) |
| 62 | 62 |
end |
| 63 | 63 |
end |
| 64 | ||
| 65 |
def role_color_and_hide(role, project = nil) |
|
| 66 |
color_and_hide = "" |
|
| 67 |
if ! role.assignable |
|
| 68 |
color_and_hide += " style=color:darkblue" |
|
| 69 |
elsif ! project.nil? && ! role.workflow_rules.where(:workspace_id => project.workspace_id).any? |
|
| 70 |
color_and_hide += " class=unused style=color:darkred" |
|
| 71 |
end |
|
| 72 |
color_and_hide |
|
| 73 |
end |
|
| 64 | 74 |
end |
| app/helpers/projects_helper.rb | ||
|---|---|---|
| 103 | 103 |
options_for_select(grouped, project.workspace_id) |
| 104 | 104 |
end |
| 105 | 105 | |
| 106 |
def used_workspaces_by_tracker(tracker) |
|
| 107 |
tracker.workflow_rules.map(&:workspace_id).uniq |
|
| 108 |
end |
|
| 109 | ||
| 106 | 110 |
def format_version_sharing(sharing) |
| 107 | 111 |
sharing = 'none' unless Version::VERSION_SHARINGS.include?(sharing) |
| 108 | 112 |
l("label_version_sharing_#{sharing}")
|
| app/views/members/_edit.html.erb | ||
|---|---|---|
| 3 | 3 |
:remote => request.xhr?, |
| 4 | 4 |
:method => :put) do |f| %> |
| 5 | 5 |
<p> |
| 6 |
<% @roles.each do |role| %> |
|
| 7 |
<label> |
|
| 6 |
<strong> |
|
| 7 |
<%= l(:label_role_plural) %> |
|
| 8 |
(<a onclick="$(this).closest('form').children('div.unused').toggle();"><%= l(:label_all) %></a>):
|
|
| 9 |
</strong> |
|
| 10 |
</p> |
|
| 11 |
<% @roles.each do |role| %> |
|
| 12 |
<div<%= role_color_and_hide(role) %>> |
|
| 8 | 13 |
<%= check_box_tag('membership[role_ids][]',
|
| 9 | 14 |
role.id, @member.roles.to_a.include?(role), |
| 10 | 15 |
:id => nil, |
| 11 | 16 |
:disabled => !@member.role_editable?(role)) %> <%= role %> |
| 12 |
</label><br /> |
|
| 13 |
<% end %> |
|
| 14 |
</p> |
|
| 17 |
</div> |
|
| 18 |
<% end %> |
|
| 15 | 19 |
<%= hidden_field_tag 'membership[role_ids][]', '', :id => nil %> |
| 16 | 20 |
<p> |
| 17 | 21 |
<%= submit_tag l(:button_save), :class => "small" %> |
| app/views/members/_new_form.html.erb | ||
|---|---|---|
| 7 | 7 |
</div> |
| 8 | 8 |
</fieldset> |
| 9 | 9 |
<fieldset class="box"> |
| 10 |
<legend><%= toggle_checkboxes_link('.roles-selection input') %><%= l(:label_role_plural) %></legend>
|
|
| 10 |
<legend><%= toggle_checkboxes_link('.roles-selection input:visible') %><%= l(:label_role_plural) %> (<a onclick='$(".unused").toggleClass("show");'><%= l(:label_all) %></a>)</legend>
|
|
| 11 | 11 |
<div class="roles-selection"> |
| 12 | 12 |
<% User.current.managed_roles(@project).each do |role| %> |
| 13 |
<label><%= check_box_tag 'membership[role_ids][]', role.id, false, :id => nil %> <%= role %></label>
|
|
| 13 |
<label<%= role_color_and_hide(role) %>><%= check_box_tag 'membership[role_ids][]', role.id, false, :id => nil %><%= role %></label>
|
|
| 14 | 14 |
<% end %> |
| 15 | 15 |
</div> |
| 16 | 16 |
</fieldset> |
| app/views/principal_memberships/_edit.html.erb | ||
|---|---|---|
| 2 | 2 |
:remote => request.xhr?, |
| 3 | 3 |
:method => :put) do %> |
| 4 | 4 |
<p> |
| 5 |
<strong> |
|
| 6 |
<%= l(:label_role_plural) %> |
|
| 7 |
(<a onclick="$(this).closest('form').children('div.unused').toggle();"><%= l(:label_all) %></a>):
|
|
| 8 |
</strong> |
|
| 9 |
</p> |
|
| 5 | 10 |
<% @roles.each do |role| %> |
| 6 |
<label>
|
|
| 11 |
<div<%= role_color_and_hide(role, @membership.project) %>>
|
|
| 7 | 12 |
<%= check_box_tag 'membership[role_ids][]', role.id, @membership.roles.to_a.include?(role), |
| 8 | 13 |
:disabled => !@membership.role_editable?(role), |
| 9 | 14 |
:id => nil %> <%= role.name %> |
| 10 |
</label><br />
|
|
| 15 |
</div>
|
|
| 11 | 16 |
<% end %> |
| 12 |
</p> |
|
| 13 | 17 |
<%= hidden_field_tag 'membership[role_ids][]', '', :id => nil %> |
| 14 | 18 |
<p> |
| 15 | 19 |
<%= submit_tag l(:button_save) %> |
| app/views/principal_memberships/_new_form.html.erb | ||
|---|---|---|
| 15 | 15 |
<legend><%= toggle_checkboxes_link('.roles-selection input') %><%= l(:label_role_plural) %></legend>
|
| 16 | 16 |
<div class="roles-selection"> |
| 17 | 17 |
<% @roles.each do |role| %> |
| 18 |
<label> |
|
| 18 |
<label<%= role_color_and_hide(role) %>>
|
|
| 19 | 19 |
<%= check_box_tag 'membership[role_ids][]', role.id, false, :id => nil %> |
| 20 | 20 |
<%= role %> |
| 21 | 21 |
</label> |
| app/views/projects/_form.html.erb | ||
|---|---|---|
| 20 | 20 |
<% end %> |
| 21 | 21 | |
| 22 | 22 |
<% if @project.safe_attribute? 'workspace_id' %> |
| 23 |
<p><%= f.select :workspace_id, project_workspace_options(@project) %></p> |
|
| 23 |
<p><%= f.select :workspace_id, project_workspace_options(@project), {}, :onchange => "$('#project_trackers > label').hide(); $('#project_trackers > label.ws-' + this.value).show();" %></p>
|
|
| 24 | 24 |
<% end %> |
| 25 | 25 | |
| 26 | 26 |
<% if @project.safe_attribute? 'inherit_members' %> |
| app/views/projects/settings/_issues.html.erb | ||
|---|---|---|
| 2 | 2 |
<%= hidden_field_tag 'tab', 'issues' %> |
| 3 | 3 | |
| 4 | 4 |
<% unless @trackers.empty? %> |
| 5 |
<fieldset class="box tabular" id="project_trackers"><legend><%= toggle_checkboxes_link('#project_trackers input[type=checkbox]') %><%= l(:label_tracker_plural)%></legend>
|
|
| 5 |
<fieldset class="box tabular" id="project_trackers"><legend><%= toggle_checkboxes_link('#project_trackers input[type=checkbox]') %><%= l(:label_tracker_plural)%> (<a onclick="ws='.ws-' + $('#project_workspace_id').val(); $('#project_trackers > label' + ws).show(); $('#project_trackers > label:not(' + ws + ')').toggle();"><%= l(:label_all) %></a>)</legend>
|
|
| 6 | 6 |
<% @trackers.each do |tracker| %> |
| 7 |
<label class="floating">
|
|
| 7 |
<label class="floating <%= used_workspaces_by_tracker(tracker).map{|t| "ws-" + t.to_s}.join(" ") %>"<% unless used_workspaces_by_tracker(tracker).include?(@project.workspace_id) %>style="display: none;"<% end %>>
|
|
| 8 | 8 |
<%= check_box_tag 'project[tracker_ids][]', tracker.id, @project.trackers.to_a.include?(tracker), :id => nil %> |
| 9 | 9 |
<%= tracker %> |
| 10 | 10 |
</label> |
| public/stylesheets/application.css | ||
|---|---|---|
| 859 | 859 | |
| 860 | 860 |
input#principal_search, input#user_search {width:90%}
|
| 861 | 861 |
.roles-selection label {display:inline-block; width:210px;}
|
| 862 |
.roles-selection .unused {display:none;}
|
|
| 863 |
.roles-selection .unused.show {display:inline-block;}
|
|
| 864 |
.unused {display:none;}
|
|
| 862 | 865 | |
| 863 | 866 |
input.autocomplete {
|
| 864 | 867 |
background: #fff url(../images/magnifier.png) no-repeat 2px 50%; padding-left:20px !important; |