permissions.html.erb
123 lines
| 4.4 KiB
| text/plain
|
TextLexer
|
r9794 | <%= render :partial => 'action_menu' %> | ||
|
r11820 | <%= title l(:label_workflow) %> | ||
|
r9794 | |||
<div class="tabs"> | ||||
<ul> | ||||
|
r12649 | <li><%= link_to l(:label_status_transitions), workflows_edit_path(:role_id => @roles, :tracker_id => @trackers) %></li> | ||
<li><%= link_to l(:label_fields_permissions), workflows_permissions_path(:role_id => @roles, :tracker_id => @trackers), :class => 'selected' %></li> | ||||
|
r9794 | </ul> | ||
</div> | ||||
<p><%=l(:text_workflow_edit)%>:</p> | ||||
<%= form_tag({}, :method => 'get') do %> | ||||
<p> | ||||
<label><%=l(:label_role)%>: | ||||
|
r13366 | <%= options_for_workflow_select 'role_id[]', Role.sorted.select(&:consider_workflow?), @roles, :id => 'role_id', :class => 'expandable' %> | ||
|
r12649 | </label> | ||
|
r14686 | <a href="#" data-expands="#role_id"><span class="toggle-multiselect"></a> | ||
|
r9794 | |||
<label><%=l(:label_tracker)%>: | ||||
|
r12649 | <%= options_for_workflow_select 'tracker_id[]', Tracker.sorted, @trackers, :id => 'tracker_id', :class => 'expandable' %> | ||
</label> | ||||
|
r14686 | <a href="#" data-expands="#tracker_id"><span class="toggle-multiselect"></a> | ||
|
r9794 | |||
<%= submit_tag l(:button_edit), :name => nil %> | ||||
|
r9812 | |||
|
r13262 | <%= hidden_field_tag 'used_statuses_only', '0', :id => nil %> | ||
|
r9812 | <label><%= check_box_tag 'used_statuses_only', '1', @used_statuses_only %> <%= l(:label_display_used_statuses_only) %></label> | ||
|
r9794 | </p> | ||
<% end %> | ||||
|
r12649 | <% if @trackers && @roles && @statuses.any? %> | ||
|
r9794 | <%= form_tag({}, :id => 'workflow_form' ) do %> | ||
|
r13262 | <%= @trackers.map {|tracker| hidden_field_tag 'tracker_id[]', tracker.id, :id => nil}.join.html_safe %> | ||
<%= @roles.map {|role| hidden_field_tag 'role_id[]', role.id, :id => nil}.join.html_safe %> | ||||
<%= hidden_field_tag 'used_statuses_only', params[:used_statuses_only], :id => nil %> | ||||
|
r9794 | <div class="autoscroll"> | ||
|
r12649 | <table class="list workflows fields_permissions"> | ||
|
r9794 | <thead> | ||
<tr> | ||||
|
r12038 | <th> | ||
|
r9794 | </th> | ||
|
r12038 | <th colspan="<%= @statuses.length %>"><%=l(:label_issue_status)%></th> | ||
|
r9794 | </tr> | ||
<tr> | ||||
<td></td> | ||||
<% for status in @statuses %> | ||||
|
r12038 | <td style="width:<%= 75 / @statuses.size %>%;"> | ||
|
r13661 | <%= status.name %> | ||
|
r9794 | </td> | ||
<% end %> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr class="group open"> | ||||
<td colspan="<%= @statuses.size + 1 %>"> | ||||
<span class="expander" onclick="toggleRowGroup(this);"> </span> | ||||
<%= l(:field_core_fields) %> | ||||
</td> | ||||
</tr> | ||||
<% @fields.each do |field, name| %> | ||||
<tr class="<%= cycle("odd", "even") %>"> | ||||
|
r12038 | <td class="name"> | ||
|
r13661 | <%= name %> <%= content_tag('span', '*', :class => 'required') if field_required?(field) %> | ||
|
r9794 | </td> | ||
<% for status in @statuses -%> | ||||
|
r13778 | <td class="<%= @permissions[status.id][field].try(:join, ' ') %>"> | ||
|
r12649 | <%= field_permission_tag(@permissions, status, field, @roles) %> | ||
|
r11674 | <% unless status == @statuses.last %><a href="#" class="repeat-value">»</a><% end %> | ||
|
r9794 | </td> | ||
<% end -%> | ||||
</tr> | ||||
<% end %> | ||||
<% if @custom_fields.any? %> | ||||
<tr class="group open"> | ||||
<td colspan="<%= @statuses.size + 1 %>"> | ||||
<span class="expander" onclick="toggleRowGroup(this);"> </span> | ||||
<%= l(:label_custom_field_plural) %> | ||||
</td> | ||||
</tr> | ||||
<% @custom_fields.each do |field| %> | ||||
<tr class="<%= cycle("odd", "even") %>"> | ||||
|
r12038 | <td class="name"> | ||
|
r13661 | <%= field.name %> <%= content_tag('span', '*', :class => 'required') if field_required?(field) %> | ||
|
r9794 | </td> | ||
<% for status in @statuses -%> | ||||
|
r14911 | <td class="<%= @permissions[status.id][field.id.to_s].try(:join, ' ') %>"> | ||
|
r12649 | <%= field_permission_tag(@permissions, status, field, @roles) %> | ||
|
r11674 | <% unless status == @statuses.last %><a href="#" class="repeat-value">»</a><% end %> | ||
|
r9794 | </td> | ||
<% end -%> | ||||
</tr> | ||||
<% end %> | ||||
<% end %> | ||||
</tbody> | ||||
</table> | ||||
</div> | ||||
<%= submit_tag l(:button_save) %> | ||||
<% end %> | ||||
<% end %> | ||||
|
r11674 | |||
<%= javascript_tag do %> | ||||
$("a.repeat-value").click(function(e){ | ||||
e.preventDefault(); | ||||
var td = $(this).closest('td'); | ||||
var selected = td.find("select").find(":selected").val(); | ||||
td.nextAll('td').find("select").val(selected); | ||||
}); | ||||
|
r12649 | |||
$("a[data-expands]").click(function(e){ | ||||
e.preventDefault(); | ||||
var target = $($(this).attr("data-expands")); | ||||
if (target.attr("multiple")) { | ||||
target.attr("multiple", false); | ||||
target.find("option[value=all]").show(); | ||||
} else { | ||||
target.attr("multiple", true); | ||||
target.find("option[value=all]").attr("selected", false).hide(); | ||||
} | ||||
}); | ||||
|
r11674 | <% end %> | ||