Chris@1517
|
1 <h2><%= @copy ? l(:button_copy) : l(:label_bulk_edit_selected_issues) %></h2>
|
Chris@1517
|
2
|
Chris@1517
|
3 <% if @saved_issues && @unsaved_issues.present? %>
|
Chris@1517
|
4 <div id="errorExplanation">
|
Chris@1517
|
5 <span>
|
Chris@1517
|
6 <%= l(:notice_failed_to_save_issues,
|
Chris@1517
|
7 :count => @unsaved_issues.size,
|
Chris@1517
|
8 :total => @saved_issues.size,
|
Chris@1517
|
9 :ids => @unsaved_issues.map {|i| "##{i.id}"}.join(', ')) %>
|
Chris@1517
|
10 </span>
|
Chris@1517
|
11 <ul>
|
Chris@1517
|
12 <% bulk_edit_error_messages(@unsaved_issues).each do |message| %>
|
Chris@1517
|
13 <li><%= message %></li>
|
Chris@1517
|
14 <% end %>
|
Chris@1517
|
15 </ul>
|
Chris@1517
|
16 </div>
|
Chris@1517
|
17 <% end %>
|
Chris@1517
|
18
|
Chris@1517
|
19 <ul id="bulk-selection">
|
Chris@1517
|
20 <% @issues.each do |issue| %>
|
Chris@1517
|
21 <%= content_tag 'li', link_to_issue(issue) %>
|
Chris@1517
|
22 <% end %>
|
Chris@1517
|
23 </ul>
|
Chris@1517
|
24
|
Chris@1517
|
25 <%= form_tag(bulk_update_issues_path, :id => 'bulk_edit_form') do %>
|
Chris@1517
|
26 <%= @issues.collect {|i| hidden_field_tag('ids[]', i.id)}.join("\n").html_safe %>
|
Chris@1517
|
27 <div class="box tabular">
|
Chris@1517
|
28 <fieldset class="attributes">
|
Chris@1517
|
29 <legend><%= l(:label_change_properties) %></legend>
|
Chris@1517
|
30
|
Chris@1517
|
31 <div class="splitcontentleft">
|
Chris@1517
|
32 <% if @allowed_projects.present? %>
|
Chris@1517
|
33 <p>
|
Chris@1517
|
34 <label for="issue_project_id"><%= l(:field_project) %></label>
|
Chris@1517
|
35 <%= select_tag('issue[project_id]',
|
Chris@1517
|
36 content_tag('option', l(:label_no_change_option), :value => '') +
|
Chris@1517
|
37 project_tree_options_for_select(@allowed_projects, :selected => @target_project),
|
Chris@1517
|
38 :onchange => "updateBulkEditFrom('#{escape_javascript url_for(:action => 'bulk_edit', :format => 'js')}')") %>
|
Chris@1517
|
39 </p>
|
Chris@1517
|
40 <% end %>
|
Chris@1517
|
41 <p>
|
Chris@1517
|
42 <label for="issue_tracker_id"><%= l(:field_tracker) %></label>
|
Chris@1517
|
43 <%= select_tag('issue[tracker_id]',
|
Chris@1517
|
44 content_tag('option', l(:label_no_change_option), :value => '') +
|
Chris@1517
|
45 options_from_collection_for_select(@trackers, :id, :name, @issue_params[:tracker_id])) %>
|
Chris@1517
|
46 </p>
|
Chris@1517
|
47 <% if @available_statuses.any? %>
|
Chris@1517
|
48 <p>
|
Chris@1517
|
49 <label for='issue_status_id'><%= l(:field_status) %></label>
|
Chris@1517
|
50 <%= select_tag('issue[status_id]',
|
Chris@1517
|
51 content_tag('option', l(:label_no_change_option), :value => '') +
|
Chris@1517
|
52 options_from_collection_for_select(@available_statuses, :id, :name, @issue_params[:status_id])) %>
|
Chris@1517
|
53 </p>
|
Chris@1517
|
54 <% end %>
|
Chris@1517
|
55
|
Chris@1517
|
56 <% if @safe_attributes.include?('priority_id') -%>
|
Chris@1517
|
57 <p>
|
Chris@1517
|
58 <label for='issue_priority_id'><%= l(:field_priority) %></label>
|
Chris@1517
|
59 <%= select_tag('issue[priority_id]',
|
Chris@1517
|
60 content_tag('option', l(:label_no_change_option), :value => '') +
|
Chris@1517
|
61 options_from_collection_for_select(IssuePriority.active, :id, :name, @issue_params[:priority_id])) %>
|
Chris@1517
|
62 </p>
|
Chris@1517
|
63 <% end %>
|
Chris@1517
|
64
|
Chris@1517
|
65 <% if @safe_attributes.include?('assigned_to_id') -%>
|
Chris@1517
|
66 <p>
|
Chris@1517
|
67 <label for='issue_assigned_to_id'><%= l(:field_assigned_to) %></label>
|
Chris@1517
|
68 <%= select_tag('issue[assigned_to_id]',
|
Chris@1517
|
69 content_tag('option', l(:label_no_change_option), :value => '') +
|
Chris@1517
|
70 content_tag('option', l(:label_nobody), :value => 'none', :selected => (@issue_params[:assigned_to_id] == 'none')) +
|
Chris@1517
|
71 principals_options_for_select(@assignables, @issue_params[:assigned_to_id])) %>
|
Chris@1517
|
72 </p>
|
Chris@1517
|
73 <% end %>
|
Chris@1517
|
74
|
Chris@1517
|
75 <% if @safe_attributes.include?('category_id') -%>
|
Chris@1517
|
76 <p>
|
Chris@1517
|
77 <label for='issue_category_id'><%= l(:field_category) %></label>
|
Chris@1517
|
78 <%= select_tag('issue[category_id]', content_tag('option', l(:label_no_change_option), :value => '') +
|
Chris@1517
|
79 content_tag('option', l(:label_none), :value => 'none', :selected => (@issue_params[:category_id] == 'none')) +
|
Chris@1517
|
80 options_from_collection_for_select(@categories, :id, :name, @issue_params[:category_id])) %>
|
Chris@1517
|
81 </p>
|
Chris@1517
|
82 <% end %>
|
Chris@1517
|
83
|
Chris@1517
|
84 <% if @safe_attributes.include?('fixed_version_id') -%>
|
Chris@1517
|
85 <p>
|
Chris@1517
|
86 <label for='issue_fixed_version_id'><%= l(:field_fixed_version) %></label>
|
Chris@1517
|
87 <%= select_tag('issue[fixed_version_id]', content_tag('option', l(:label_no_change_option), :value => '') +
|
Chris@1517
|
88 content_tag('option', l(:label_none), :value => 'none', :selected => (@issue_params[:fixed_version_id] == 'none')) +
|
Chris@1517
|
89 version_options_for_select(@versions.sort, @issue_params[:fixed_version_id])) %>
|
Chris@1517
|
90 </p>
|
Chris@1517
|
91 <% end %>
|
Chris@1517
|
92
|
Chris@1517
|
93 <% @custom_fields.each do |custom_field| %>
|
Chris@1517
|
94 <p>
|
Chris@1517
|
95 <label><%= h(custom_field.name) %></label>
|
Chris@1517
|
96 <%= custom_field_tag_for_bulk_edit('issue', custom_field, @issues, @issue_params[:custom_field_values][custom_field.id.to_s]) %>
|
Chris@1517
|
97 </p>
|
Chris@1517
|
98 <% end %>
|
Chris@1517
|
99
|
Chris@1517
|
100 <% if @copy && @attachments_present %>
|
Chris@1517
|
101 <%= hidden_field_tag 'copy_attachments', '0' %>
|
Chris@1517
|
102 <p>
|
Chris@1517
|
103 <label for='copy_attachments'><%= l(:label_copy_attachments) %></label>
|
Chris@1517
|
104 <%= check_box_tag 'copy_attachments', '1', params[:copy_attachments] != '0' %>
|
Chris@1517
|
105 </p>
|
Chris@1517
|
106 <% end %>
|
Chris@1517
|
107
|
Chris@1517
|
108 <% if @copy && @subtasks_present %>
|
Chris@1517
|
109 <%= hidden_field_tag 'copy_subtasks', '0' %>
|
Chris@1517
|
110 <p>
|
Chris@1517
|
111 <label for='copy_subtasks'><%= l(:label_copy_subtasks) %></label>
|
Chris@1517
|
112 <%= check_box_tag 'copy_subtasks', '1', params[:copy_subtasks] != '0' %>
|
Chris@1517
|
113 </p>
|
Chris@1517
|
114 <% end %>
|
Chris@1517
|
115
|
Chris@1517
|
116 <%= call_hook(:view_issues_bulk_edit_details_bottom, { :issues => @issues }) %>
|
Chris@1517
|
117 </div>
|
Chris@1517
|
118
|
Chris@1517
|
119 <div class="splitcontentright">
|
Chris@1517
|
120 <% if @safe_attributes.include?('is_private') %>
|
Chris@1517
|
121 <p>
|
Chris@1517
|
122 <label for='issue_is_private'><%= l(:field_is_private) %></label>
|
Chris@1517
|
123 <%= select_tag('issue[is_private]', content_tag('option', l(:label_no_change_option), :value => '') +
|
Chris@1517
|
124 content_tag('option', l(:general_text_Yes), :value => '1', :selected => (@issue_params[:is_private] == '1')) +
|
Chris@1517
|
125 content_tag('option', l(:general_text_No), :value => '0', :selected => (@issue_params[:is_private] == '0'))) %>
|
Chris@1517
|
126 </p>
|
Chris@1517
|
127 <% end %>
|
Chris@1517
|
128
|
Chris@1517
|
129 <% if @safe_attributes.include?('parent_issue_id') && @project %>
|
Chris@1517
|
130 <p>
|
Chris@1517
|
131 <label for='issue_parent_issue_id'><%= l(:field_parent_issue) %></label>
|
Chris@1517
|
132 <%= text_field_tag 'issue[parent_issue_id]', '', :size => 10, :value => @issue_params[:parent_issue_id] %>
|
Chris@1517
|
133 <label class="inline"><%= check_box_tag 'issue[parent_issue_id]', 'none', (@issue_params[:parent_issue_id] == 'none'), :id => nil, :data => {:disables => '#issue_parent_issue_id'} %><%= l(:button_clear) %></label>
|
Chris@1517
|
134 </p>
|
Chris@1517
|
135 <%= javascript_tag "observeAutocompleteField('issue_parent_issue_id', '#{escape_javascript auto_complete_issues_path(:project_id => @project)}')" %>
|
Chris@1517
|
136 <% end %>
|
Chris@1517
|
137
|
Chris@1517
|
138 <% if @safe_attributes.include?('start_date') %>
|
Chris@1517
|
139 <p>
|
Chris@1517
|
140 <label for='issue_start_date'><%= l(:field_start_date) %></label>
|
Chris@1517
|
141 <%= text_field_tag 'issue[start_date]', '', :value => @issue_params[:start_date], :size => 10 %><%= calendar_for('issue_start_date') %>
|
Chris@1517
|
142 <label class="inline"><%= check_box_tag 'issue[start_date]', 'none', (@issue_params[:start_date] == 'none'), :id => nil, :data => {:disables => '#issue_start_date'} %><%= l(:button_clear) %></label>
|
Chris@1517
|
143 </p>
|
Chris@1517
|
144 <% end %>
|
Chris@1517
|
145
|
Chris@1517
|
146 <% if @safe_attributes.include?('due_date') %>
|
Chris@1517
|
147 <p>
|
Chris@1517
|
148 <label for='issue_due_date'><%= l(:field_due_date) %></label>
|
Chris@1517
|
149 <%= text_field_tag 'issue[due_date]', '', :value => @issue_params[:due_date], :size => 10 %><%= calendar_for('issue_due_date') %>
|
Chris@1517
|
150 <label class="inline"><%= check_box_tag 'issue[due_date]', 'none', (@issue_params[:due_date] == 'none'), :id => nil, :data => {:disables => '#issue_due_date'} %><%= l(:button_clear) %></label>
|
Chris@1517
|
151 </p>
|
Chris@1517
|
152 <% end %>
|
Chris@1517
|
153
|
Chris@1517
|
154 <% if @safe_attributes.include?('done_ratio') && Issue.use_field_for_done_ratio? %>
|
Chris@1517
|
155 <p>
|
Chris@1517
|
156 <label for='issue_done_ratio'><%= l(:field_done_ratio) %></label>
|
Chris@1517
|
157 <%= select_tag 'issue[done_ratio]', options_for_select([[l(:label_no_change_option), '']] + (0..10).to_a.collect {|r| ["#{r*10} %", r*10] }, @issue_params[:done_ratio]) %>
|
Chris@1517
|
158 </p>
|
Chris@1517
|
159 <% end %>
|
Chris@1517
|
160 </div>
|
Chris@1517
|
161 </fieldset>
|
Chris@1517
|
162
|
Chris@1517
|
163 <fieldset>
|
Chris@1517
|
164 <legend><%= l(:field_notes) %></legend>
|
Chris@1517
|
165 <%= text_area_tag 'notes', @notes, :cols => 60, :rows => 10, :class => 'wiki-edit' %>
|
Chris@1517
|
166 <%= wikitoolbar_for 'notes' %>
|
Chris@1517
|
167 </fieldset>
|
Chris@1517
|
168 </div>
|
Chris@1517
|
169
|
Chris@1517
|
170 <p>
|
Chris@1517
|
171 <% if @copy %>
|
Chris@1517
|
172 <%= hidden_field_tag 'copy', '1' %>
|
Chris@1517
|
173 <%= submit_tag l(:button_copy) %>
|
Chris@1517
|
174 <%= submit_tag l(:button_copy_and_follow), :name => 'follow' %>
|
Chris@1517
|
175 <% elsif @target_project %>
|
Chris@1517
|
176 <%= submit_tag l(:button_move) %>
|
Chris@1517
|
177 <%= submit_tag l(:button_move_and_follow), :name => 'follow' %>
|
Chris@1517
|
178 <% else %>
|
Chris@1517
|
179 <%= submit_tag l(:button_submit) %>
|
Chris@1517
|
180 <% end %>
|
Chris@1517
|
181 </p>
|
Chris@1517
|
182
|
Chris@1517
|
183 <% end %>
|
Chris@1517
|
184
|
Chris@1517
|
185 <%= javascript_tag do %>
|
Chris@1517
|
186 $(window).load(function(){
|
Chris@1517
|
187 $(document).on('change', 'input[data-disables]', function(){
|
Chris@1517
|
188 if ($(this).attr('checked')){
|
Chris@1517
|
189 $($(this).data('disables')).attr('disabled', true).val('');
|
Chris@1517
|
190 } else {
|
Chris@1517
|
191 $($(this).data('disables')).attr('disabled', false);
|
Chris@1517
|
192 }
|
Chris@1517
|
193 });
|
Chris@1517
|
194 });
|
Chris@1517
|
195 $(document).ready(function(){
|
Chris@1517
|
196 $('input[data-disables]').trigger('change');
|
Chris@1517
|
197 });
|
Chris@1517
|
198 <% end %>
|