OpenProject is the leading open source project management software.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openproject/app/views/work_packages/bulk/edit.html.erb

150 lines
8.6 KiB

<%#-- copyright
OpenProject is a project management system.
Copyright (C) 2012-2015 the OpenProject Foundation (OPF)
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License version 3.
OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
Copyright (C) 2006-2013 Jean-Philippe Lang
Copyright (C) 2010-2013 the ChiliProject Team
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
See doc/COPYRIGHT.rdoc for more details.
++#%>
<h2><%= l(:label_bulk_edit_selected_work_packages) %></h2>
<ul><%= @work_packages.collect {|i| content_tag('li', link_to(h("#{i.type} ##{i.id}"), work_package_path(i)) + h(": #{i.subject}")) }.join("\n").html_safe %></ul>
<%= styled_form_tag(url_for(controller: '/work_packages/bulk', action: :update),
method: :put) do %>
<%= @work_packages.collect {|i| hidden_field_tag('ids[]', i.id)}.join.html_safe %>
<section class="form--section">
<fieldset class="form--fieldset">
<legend class="form--fieldset-legend"><%= l(:label_change_properties) %></legend>
<div class="grid-block">
<div class="grid-content">
<div class="form--field">
<label class="form--label" for="work_package_type_id"><%= WorkPackage.human_attribute_name(:type) %></label>
<div class="form--field-container">
<%= styled_select_tag('work_package[type_id]', "<option value=\"\">#{l(:label_no_change_option)}</option>".html_safe + options_from_collection_for_select(@types, :id, :name)) %>
</div>
</div>
<% if @available_statuses.any? %>
<div class="form--field">
<label class="form--label" for='status_id'><%= WorkPackage.human_attribute_name(:status) %></label>
<div class="form--field-container">
<%= styled_select_tag('work_package[status_id]', "<option value=\"\">#{l(:label_no_change_option)}</option>".html_safe + options_from_collection_for_select(@available_statuses, :id, :name)) %>
</div>
</div>
<% end %>
<div class="form--field">
<label class="form--label" for='work_package_priority_id'><%= WorkPackage.human_attribute_name(:priority) %></label>
<div class="form--field-container">
<%= styled_select_tag('work_package[priority_id]', "<option value=\"\">#{l(:label_no_change_option)}</option>".html_safe + options_from_collection_for_select(IssuePriority.active, :id, :name)) %>
</div>
</div>
<div class="form--field">
<label class="form--label" for='work_package_assigned_to_id'><%= WorkPackage.human_attribute_name(:assigned_to) %></label>
<div class="form--field-container">
<%= styled_select_tag('work_package[assigned_to_id]', content_tag('option', l(:label_no_change_option), :value => '') +
content_tag('option', l(:label_nobody), :value => 'none') +
options_from_collection_for_select(@assignables, :id, :name)) %>
</div>
</div>
<div class="form--field">
<label class="form--label" for='work_package_responsible_id'><%= WorkPackage.human_attribute_name(:responsible) %></label>
<div class="form--field-container">
<%= styled_select_tag('work_package[responsible_id]', content_tag('option', l(:label_no_change_option), :value => '') +
content_tag('option', l(:label_nobody), :value => 'none') +
options_from_collection_for_select(@responsibles, :id, :name)) %>
</div>
</div>
<% if @project %>
<div class="form--field">
<label class="form--label" for='category_id'><%= WorkPackage.human_attribute_name(:category) %></label>
<div class="form--field-container">
<%= styled_select_tag('work_package[category_id]', content_tag('option', l(:label_no_change_option), :value => '') +
content_tag('option', l(:label_none), :value => 'none') +
options_from_collection_for_select(@project.categories, :id, :name)) %>
</div>
</div>
<% end %>
<% #TODO: allow editing versions when multiple projects %>
<% if @project %>
<div class="form--field">
<label class="form--label" for='work_package_fixed_version_id'><%= WorkPackage.human_attribute_name(:fixed_version) %></label>
<div class="form--field-container">
<%= styled_select_tag('work_package[fixed_version_id]', content_tag('option', l(:label_no_change_option), :value => '') +
content_tag('option', l(:label_none), :value => 'none') +
version_options_for_select(@project.shared_versions.open.sort)) %>
</div>
</div>
<% end %>
<% @custom_fields.each do |custom_field| %>
<div class="form--field">
<%= blank_custom_field_label_tag('work_package', custom_field) %>
<div class="form--field-container">
<%= custom_field_tag_for_bulk_edit('work_package', custom_field) %>
</div>
</div>
<% end %>
<%= call_hook(:view_work_packages_bulk_edit_details_bottom, { work_packages: @work_packages }) %>
</div>
<div class="grid-content">
<% if @project && User.current.allowed_to?(:manage_subtasks, @project) %>
<div class="form--field">
<label class="form--label" for='work_package_parent_id'><%= WorkPackage.human_attribute_name(:parent) %></label>
<div class="form--field-container">
<%= styled_text_field_tag 'work_package[parent_id]', '', :size => 10 %>
</div>
</div>
<div id="parent_work_package_candidates" class="autocomplete"></div>
<%= javascript_tag "observeParentIssueField('#{work_packages_auto_complete_path(project_id: @project.id)}')" %>
<% end %>
<div class="form--field">
<label class="form--label" for='work_package_start_date'><%= WorkPackage.human_attribute_name(:start_date) %></label>
<div class="form--field-container">
<%= styled_text_field_tag 'work_package[start_date]', '', :size => 10 %><%= calendar_for('work_package_start_date') %>
</div>
</div>
<div class="form--field">
<label class="form--label" for='work_package_due_date'><%= WorkPackage.human_attribute_name(:due_date) %></label>
<div class="form--field-container">
<%= styled_text_field_tag 'work_package[due_date]', '', :size => 10 %><%= calendar_for('work_package_due_date') %>
</div>
</div>
<% if WorkPackage.use_field_for_done_ratio? %>
<div class="form--field">
<label class="form--label" for='work_package_done_ratio'><%= WorkPackage.human_attribute_name(:done_ratio) %></label>
<div class="form--field-container">
<%= styled_select_tag 'work_package[done_ratio]', options_for_select([[l(:label_no_change_option), '']] + (0..10).to_a.collect {|r| ["#{r*10} %", r*10] }) %>
</div>
</div>
<% end %>
</div>
</div>
</fieldset>
<fieldset class="form--fieldset">
<legend class="form--fieldset-legend"><%= Journal.human_attribute_name(:notes) %></legend>
<%= label_tag 'notes', Journal.human_attribute_name(:notes), :class => 'hidden-for-sighted' %>
<%= styled_text_area_tag 'notes', @notes, :cols => 60, :rows => 10, :class => 'wiki-edit' %>
<%= wikitoolbar_for 'notes' %>
<p><%= send_notification_option %></p>
</fieldset>
</section>
<p><%= styled_button_tag l(:button_submit), class: '-highlight -with-icon icon-yes' %></p>
<% end %>