summaryrefslogtreecommitdiffstats
path: root/app/views/workflows/permissions.html.erb
blob: 11212e6b80befb8177e34304dd24d2bf8a3bde86 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<%= render :partial => 'action_menu' %>

<%= title l(:label_workflow) %>

<div class="tabs">
  <ul>
    <li><%= link_to l(:label_status_transitions), {:action => 'edit', :role_id => @role, :tracker_id => @tracker} %></li>
    <li><%= link_to l(:label_fields_permissions), {:action => 'permissions', :role_id => @role, :tracker_id => @tracker}, :class => 'selected' %></li>
  </ul>
</div>

<p><%=l(:text_workflow_edit)%>:</p>

<%= form_tag({}, :method => 'get') do %>
<p>
  <label><%=l(:label_role)%>:
  <%= select_tag 'role_id', options_from_collection_for_select(@roles, "id", "name", @role && @role.id) %></label>

  <label><%=l(:label_tracker)%>:
  <%= select_tag 'tracker_id', options_from_collection_for_select(@trackers, "id", "name", @tracker && @tracker.id) %></label>

  <%= 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 @tracker && @role && @statuses.any? %>
  <%= form_tag({}, :id => 'workflow_form' ) do %>
    <%= hidden_field_tag 'tracker_id', @tracker.id %>
    <%= hidden_field_tag 'role_id', @role.id %>
    <%= hidden_field_tag 'used_statuses_only', params[:used_statuses_only] %>
    <div class="autoscroll">
    <table class="list 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);">&nbsp;</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, @role) %>
          <% unless status == @statuses.last %><a href="#" class="repeat-value">&#187;</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);">&nbsp;</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, @role) %>
            <% unless status == @statuses.last %><a href="#" class="repeat-value">&#187;</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);
});
<% end %>