<%= 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.select(&:consider_workflow?), @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', :id => nil %> <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, :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 %> <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 %>%;"> <%= 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"> <%= name %> <%= content_tag('span', '*', :class => 'required') if field_required?(field) %> </td> <% for status in @statuses -%> <td class="<%= @permissions[status.id][field].try(:join, ' ') %>"> <%= 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"> <%= 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].try(:join, ' ') %>"> <%= 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 %>