124 lines
4.3 KiB
Plaintext
124 lines
4.3 KiB
Plaintext
<%= render :partial => 'action_menu' %>
|
|
|
|
<%= title l(:label_workflow) %>
|
|
|
|
<div class="tabs">
|
|
<ul>
|
|
<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>
|
|
</ul>
|
|
</div>
|
|
|
|
<p><%=l(:text_workflow_edit)%>:</p>
|
|
|
|
<%= form_tag({}, :method => 'get') do %>
|
|
<p>
|
|
<label><%=l(:label_role)%>:
|
|
<%= options_for_workflow_select 'role_id[]', Role.sorted, @roles, :id => 'role_id', :class => 'expandable' %>
|
|
</label>
|
|
<a href="#" data-expands="#role_id"><%= image_tag 'bullet_toggle_plus.png' %></a>
|
|
|
|
<label><%=l(:label_tracker)%>:
|
|
<%= options_for_workflow_select 'tracker_id[]', Tracker.sorted, @trackers, :id => 'tracker_id', :class => 'expandable' %>
|
|
</label>
|
|
<a href="#" data-expands="#tracker_id"><%= image_tag 'bullet_toggle_plus.png' %></a>
|
|
|
|
<%= submit_tag l(:button_edit), :name => nil %>
|
|
|
|
<%= hidden_field_tag 'used_statuses_only', '0' %>
|
|
<label><%= check_box_tag 'used_statuses_only', '1', @used_statuses_only %> <%= l(:label_display_used_statuses_only) %></label>
|
|
</p>
|
|
<% end %>
|
|
|
|
<% if @trackers && @roles && @statuses.any? %>
|
|
<%= form_tag({}, :id => 'workflow_form' ) do %>
|
|
<%= @trackers.map {|tracker| hidden_field_tag 'tracker_id[]', tracker.id}.join.html_safe %>
|
|
<%= @roles.map {|role| hidden_field_tag 'role_id[]', role.id}.join.html_safe %>
|
|
<%= hidden_field_tag 'used_statuses_only', params[:used_statuses_only] %>
|
|
<div class="autoscroll">
|
|
<table class="list workflows fields_permissions">
|
|
<thead>
|
|
<tr>
|
|
<th>
|
|
</th>
|
|
<th colspan="<%= @statuses.length %>"><%=l(:label_issue_status)%></th>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<% for status in @statuses %>
|
|
<td style="width:<%= 75 / @statuses.size %>%;">
|
|
<%=h status.name %>
|
|
</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") %>">
|
|
<td class="name">
|
|
<%=h name %> <%= content_tag('span', '*', :class => 'required') if field_required?(field) %>
|
|
</td>
|
|
<% for status in @statuses -%>
|
|
<td class="<%= @permissions[status.id][field] %>">
|
|
<%= field_permission_tag(@permissions, status, field, @roles) %>
|
|
<% unless status == @statuses.last %><a href="#" class="repeat-value">»</a><% end %>
|
|
</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") %>">
|
|
<td class="name">
|
|
<%=h field.name %> <%= content_tag('span', '*', :class => 'required') if field_required?(field) %>
|
|
</td>
|
|
<% for status in @statuses -%>
|
|
<td class="<%= @permissions[status.id][field.id.to_s] %>">
|
|
<%= field_permission_tag(@permissions, status, field, @roles) %>
|
|
<% unless status == @statuses.last %><a href="#" class="repeat-value">»</a><% end %>
|
|
</td>
|
|
<% end -%>
|
|
</tr>
|
|
<% end %>
|
|
<% end %>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<%= submit_tag l(:button_save) %>
|
|
<% end %>
|
|
<% end %>
|
|
|
|
<%= 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);
|
|
});
|
|
|
|
$("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();
|
|
}
|
|
});
|
|
|
|
<% end %>
|