kanbanworkflowstimelinescrumrubyroadmapproject-planningproject-managementopenprojectangularissue-trackerifcgantt-chartganttbug-trackerboardsbcf
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.
157 lines
8.1 KiB
157 lines
8.1 KiB
<%#-- copyright
|
|
OpenProject is a project management system.
|
|
Copyright (C) 2012-2013 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.
|
|
|
|
++#%>
|
|
|
|
<% breadcrumb_paths(l(:label_work_package_plural)) %>
|
|
<% if !query.new_record? && query.editable_by?(User.current) %>
|
|
<% content_for :action_menu_main do %>
|
|
<%= li_unless_nil link_to(l(:button_edit), {:controller => '/queries', :action => 'edit', :id => query}, :class => 'icon icon-edit') %>
|
|
<%= li_unless_nil link_to(l(:button_delete), {:controller => '/queries', :action => 'destroy', :id => query}, :confirm => l(:text_are_you_sure), :method => :post, :class => 'icon icon-del') %>
|
|
<% end %>
|
|
<% unless project.nil? %>
|
|
<% content_for :action_menu_more do %>
|
|
<% if query.is_public? ? (current_user.allowed_to?(:manage_public_queries, project) || current_user.admin?) : current_user.allowed_to?(:save_queries, project, :global => true) %>
|
|
<% if query_menu_item = query.query_menu_item %>
|
|
<%= li_unless_nil link_to(l(:button_configure_menu_entry),edit_query_menu_item_path(project, query, query_menu_item)) %>
|
|
<%= li_unless_nil link_to(l(:button_delete_menu_entry), query_menu_item_path(project, query, query_menu_item), :method => :delete) %>
|
|
<% else %>
|
|
<%= li_unless_nil(link_to(l(:button_add_menu_entry), query_menu_items_path(project, query), :method => :create)) %>
|
|
<% end %>
|
|
<% end %>
|
|
<% end %>
|
|
<% end %>
|
|
<% end %>
|
|
<h2><%= query.new_record? ? l(:label_work_package_plural) : h(query.name) %></h2>
|
|
|
|
<div class="title-bar">
|
|
<div class="title-bar-extras">
|
|
|
|
<% html_title(query.new_record? ? l(:label_work_package_plural) : h(query.name)) %>
|
|
|
|
<% if visible_queries.any? %>
|
|
<div id='work-packages-query-selection'>
|
|
<%= label_tag 'query-select', l('apply_filter', :scope => 'queries') %>
|
|
|
|
<%= select :query, :id, grouped_options_for_select(grouped_query_options, query.id), {:include_blank => query.new_record?, :selected => query.id}, {:id => 'query-select'} %>
|
|
|
|
</div>
|
|
<% end %>
|
|
|
|
<%= form_tag({ :controller => '/queries', :action => 'new' }, :id => 'query_form') do %>
|
|
<%= hidden_field_tag('project_id', project.to_param) if project %>
|
|
<div id="query_form_content" class="hide-when-print">
|
|
<fieldset id="filters" class="header_collapsible collapsible <%= query.new_record? ? "" : "collapsed" %>">
|
|
<legend title="<%=l(:description_filter_toggle)%>", onclick="toggleFieldset(this);"><a href="javascript:"><%= l(:label_filter_plural) %></a></legend>
|
|
<div class="filter-fields" style="<%= query.new_record? ? "" : "display: none;" %>">
|
|
<%= render :partial => 'queries/filters', :locals => {:query => query} %>
|
|
</div>
|
|
</fieldset>
|
|
<fieldset id="column_options" class="header_collapsible collapsible collapsed">
|
|
<legend title="<%=l(:description_option_toggle)%>", onclick="toggleFieldset(this);"><a href="javascript:"><%= l(:label_options) %></a></legend>
|
|
<div style="display: none;">
|
|
<table>
|
|
<tr>
|
|
<td><%= Query.human_attribute_name(:column_names) %></td>
|
|
<td><%= render :partial => 'queries/columns', :locals => {:query => query} %></td>
|
|
</tr>
|
|
<tr>
|
|
<td><label for='group_by'><%= Query.human_attribute_name(:group_by) %></label></td>
|
|
<td><%= select_tag('group_by', options_for_select([[]] + query.groupable_columns.collect {|c| [c.caption, c.name.to_s]}, query.group_by)) %></td>
|
|
</tr>
|
|
<% if query.any_summable_columns? %>
|
|
<tr>
|
|
<td><%= label_tag :display_sums, l(:label_display_sums) %></td>
|
|
<td><%= check_box_tag :display_sums, 1, query.display_sums? %></td>
|
|
</tr>
|
|
<% end %>
|
|
</table>
|
|
<%= call_hook(:view_issue_query_form_options_bottom, :query => query) %>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<p class="buttons hide-when-print">
|
|
<%= link_to_remote l(:button_apply),
|
|
{ :url => { :set_filter => 1 },
|
|
:before => 'selectAllOptions("selected_columns");',
|
|
:update => "content",
|
|
:method => :get,
|
|
:complete => "apply_filters_observer(); resetSelectedMenuItem(); initQuerySelectBehaviour();",
|
|
:with => "jQuery('#query_form').serialize()"
|
|
}, :class => 'icon icon-checked' %>
|
|
|
|
<%= link_to_remote l(:button_clear),
|
|
{ :url => { :set_filter => 1, :sort => WorkPackagesController::DEFAULT_SORT_ORDER.join(':'), :project_id => project },
|
|
:method => :get,
|
|
:update => "content",
|
|
:complete => 'resetSelectedMenuItem(); initQuerySelectBehaviour();',
|
|
}, :class => 'icon icon-reload' %>
|
|
|
|
<% if query.new_record? && User.current.allowed_to?(:save_queries, project, :global => true) %>
|
|
<%= link_to l(:button_save), {}, :onclick => "selectAllOptions('selected_columns'); jQuery('#query_form').submit(); return false;", :class => 'icon icon-save' %>
|
|
<% end %>
|
|
</p>
|
|
<% end %>
|
|
|
|
</div><!-- .title-bar-extras -->
|
|
</div><!-- .title-bar -->
|
|
|
|
<%= error_messages_for 'query' %>
|
|
|
|
<% if query.valid? %>
|
|
<% if work_packages.empty? %>
|
|
<p class="nodata"><%= l(:label_no_data) %></p>
|
|
<% else %>
|
|
<%= render :partial => 'work_packages/list', :locals => { :work_packages => work_packages,
|
|
:query => query,
|
|
:results => results } %>
|
|
<%= pagination_links_full work_packages %>
|
|
<% end %>
|
|
|
|
<%= other_formats_links do |f| %>
|
|
<%= f.link_to 'Atom', :url => { :project_id => project, :query_id => (query.new_record? ? nil : query), :key => User.current.rss_key } %>
|
|
<%= f.link_to 'CSV', :url => { :project_id => project } %>
|
|
<%= f.link_to 'PDF', :url => { :project_id => project } %>
|
|
<%= f.link_to I18n.t(:label_pdf_with_descriptions), :url => { :project_id => project,
|
|
:show_descriptions => true,
|
|
:format => 'pdf' } %>
|
|
<%= call_hook(:view_work_packages_index_other_formats, :link_formatter => f, :project => project) %>
|
|
<% end if User.current.allowed_to? :export_work_packages, project, :global => project.nil? %>
|
|
<% end %>
|
|
|
|
<%= call_hook(:view_work_packages_index_bottom, { :issues => work_packages, :project => project, :query => query }) %>
|
|
|
|
<% content_for :sidebar do %>
|
|
<%= render :partial => 'sidebar' %>
|
|
<% end %>
|
|
|
|
<% content_for :header_tags do %>
|
|
<%= auto_discovery_link_tag(:atom, {:query_id => query, :format => 'atom', :page => nil, :key => User.current.rss_key}, :title => l(:label_work_package_plural)) %>
|
|
<%= auto_discovery_link_tag(:atom, {:controller => '/journals', :action => 'index', :query_id => query, :format => 'atom', :page => nil, :key => User.current.rss_key}, :title => l(:label_changes_details)) %>
|
|
<% end %>
|
|
|
|
<%= context_menu work_packages_context_menu_path %>
|
|
|