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.
149 lines
5.5 KiB
149 lines
5.5 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.
|
|
|
|
++#%>
|
|
|
|
<%= header_tags %>
|
|
<%= javascript_include_tag("work_packages.js") %>
|
|
<%= render :partial => 'work_packages/action_menu', :locals => { work_package: work_package } %>
|
|
|
|
<% work_package_breadcrumb %>
|
|
|
|
<%= content_tag('h2', work_package.to_s) %>
|
|
|
|
<div class = "details">
|
|
<div class="profile-wrap">
|
|
<%= avatar(work_package.author, :size => "40") %>
|
|
</div>
|
|
|
|
<p class="author">
|
|
<%= authoring work_package.created_at, work_package.author %>.
|
|
<% if work_package.created_at != work_package.updated_at %>
|
|
<%= l(:label_updated_time, time_tag(work_package.updated_at)).html_safe %>.
|
|
<% end %>
|
|
</p>
|
|
|
|
<div class="issue details">
|
|
<div class="meta">
|
|
<% attributes = work_package_show_attributes(work_package) %>
|
|
<div id="left" style="float:left; width:50%;">
|
|
<table class="attributes">
|
|
<% attributes[:left].each do |attribute| %>
|
|
<tr><%= attribute.field.html_safe %> </tr>
|
|
<% end %>
|
|
</table>
|
|
</div>
|
|
<div id="right" style="float:left; width:50%;">
|
|
<table class="attributes">
|
|
<% attributes[:right].each do |attribute| %>
|
|
<tr><%= attribute.field.html_safe %> </tr>
|
|
<% end %>
|
|
</table>
|
|
<br style="clear:both;" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<% if work_package.description? %>
|
|
<hr />
|
|
<div class="description work_package_part">
|
|
<div class="contextual">
|
|
<%= link_to_if_authorized(l(:button_quote), { controller: :work_packages, action: :quoted, id: work_package }, :class => 'quote-link icon icon-quote') %>
|
|
</div>
|
|
<p><strong><%= WorkPackage.human_attribute_name(:description)%></strong></p>
|
|
<div class="wiki wikicontent" data-user="<%= work_package.author %>">
|
|
<%= textilizable work_package, :description, :attachments => work_package.attachments %>
|
|
</div>
|
|
</div>
|
|
<% end %>
|
|
|
|
<% if work_package.attachments.any? -%>
|
|
<%= link_to_attachments work_package %>
|
|
<% end -%>
|
|
|
|
<%= call_hook(:view_work_packages_show_description_bottom, :issue => work_package) %>
|
|
|
|
|
|
<%= render :partial => 'subwork_packages_paragraph', :locals => { :work_package => work_package,
|
|
:ancestors => ancestors,
|
|
:descendants => descendants } %>
|
|
|
|
<% if authorize_for('work_package_relations', 'create') || relations.present? %>
|
|
<div id="relations" class="work_package_part">
|
|
<%= render :partial => 'relations', :locals => { :work_package => work_package,
|
|
:relations => relations } %>
|
|
</div>
|
|
<% end %>
|
|
|
|
<% if User.current.allowed_to?(:add_work_package_watchers, project) ||
|
|
(work_package.watchers.present? && User.current.allowed_to?(:view_work_package_watchers, project)) %>
|
|
<div id="watchers" class="work_package_part">
|
|
<%= render :partial => 'watchers/watchers', :locals => {:watched => work_package} %>
|
|
</div>
|
|
<% end %>
|
|
</div>
|
|
<div style="clear: both;"></div>
|
|
|
|
<%= render :partial => 'action_menu_with_edit_container' if current_user.wants_comments_in_reverse_order? %>
|
|
|
|
<% if changesets.present? %>
|
|
<div id="work_package-changesets">
|
|
<h3><%=l(:label_associated_revisions)%></h3>
|
|
<%= render :partial => 'changesets', :locals => { :changesets => changesets} %>
|
|
</div>
|
|
<% end %>
|
|
|
|
<% if journals.present? %>
|
|
<div id="history">
|
|
<h3><%=l(:label_history)%></h3>
|
|
<%= render :partial => 'history', :locals => { :work_package => work_package, :journals => journals } %>
|
|
</div>
|
|
<% end %>
|
|
|
|
<%= render :partial => 'action_menu_with_edit_container' unless current_user.wants_comments_in_reverse_order? %>
|
|
|
|
<div style="clear: both;"></div>
|
|
|
|
<%= other_formats_links do |f| %>
|
|
<%= f.link_to 'Atom', :url => {:key => User.current.rss_key} %>
|
|
<%= f.link_to 'PDF' %>
|
|
<% end %>
|
|
|
|
<% html_title h(work_package.to_s) %>
|
|
|
|
<% content_for :sidebar do %>
|
|
<%= render :partial => 'sidebar' %>
|
|
<% end %>
|
|
|
|
<% content_for :header_tags do %>
|
|
<%= auto_discovery_link_tag(:atom, {:format => 'atom', :key => User.current.rss_key}, :title => "#{work_package.project} - #{work_package.to_s}") %>
|
|
<%= stylesheet_link_tag 'context_menu_rtl' if l(:direction) == 'rtl' %>
|
|
<% end %>
|
|
<div id="context-menu" style="display: none;"></div>
|
|
<%= javascript_tag "new ContextMenu('#{work_packages_context_menu_path}')" %>
|
|
|
|
<% #include calendar js files in case they are needed for edit
|
|
include_calendar_headers_tags -%>
|
|
|