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.
152 lines
6.7 KiB
152 lines
6.7 KiB
<% content_for :action_menu_main do %>
|
|
<%= li_unless_nil(link_to_if_authorized(l(:button_update), {:controller => 'issues', :action => 'edit', :id => @issue }, :onclick => 'showAndScrollTo("update", "notes"); return false;', :class => 'icon icon-edit', :accesskey => accesskey(:edit))) %>
|
|
<%= li_unless_nil(watcher_link(@issue,
|
|
User.current,
|
|
{ :class => 'watcher_link',
|
|
:replace => User.current.allowed_to?(:view_issue_watchers, @project) ? ['#watchers', '.watcher_link'] : ['.watcher_link'] })) %>
|
|
<% end %>
|
|
<% content_for :action_menu_more do %>
|
|
<%= li_unless_nil(link_to_if_authorized l(:button_log_time), {:controller => 'timelog', :action => 'new', :issue_id => @issue}, :class => 'icon icon-time-add') %>
|
|
<%= li_unless_nil(link_to_if_authorized l(:button_duplicate), {:controller => 'issues', :action => 'new', :project_id => @project, :copy_from => @issue }, :class => 'icon icon-duplicate') %>
|
|
<%= li_unless_nil(link_to_if_authorized l(:button_copy), {:controller => 'issue_moves', :action => 'new', :id => @issue, :copy_options => {:copy => 't'}}, :class => 'icon icon-copy') %>
|
|
<%= li_unless_nil(link_to_if_authorized l(:button_move), {:controller => 'issue_moves', :action => 'new', :id => @issue}, :class => 'icon icon-move') %>
|
|
<%= li_unless_nil(link_to_if_authorized l(:button_delete), {:controller => 'issues', :action => 'destroy', :id => @issue}, :confirm => (@issue.leaf? ? l(:text_are_you_sure) : l(:text_are_you_sure_with_children)), :method => :post, :class => 'icon icon-del') %>
|
|
<% end %>
|
|
|
|
<%= content_tag('h2', h(@issue.tracker.name) + ' #' +@issue.id.to_s, :id => "trackerid") %>
|
|
|
|
<div class="<%= @issue.css_classes %> details">
|
|
<div class="profile-wrap">
|
|
<%= avatar(@issue.author, :size => "40") %>
|
|
</div>
|
|
<h3>
|
|
<%=h(@issue.subject) %>
|
|
</h3>
|
|
|
|
<p class="author">
|
|
<%= authoring @issue.created_on, @issue.author %>.
|
|
<% if @issue.created_on != @issue.updated_on %>
|
|
<%= l(:label_updated_time, time_tag(@issue.updated_on)) %>.
|
|
<% end %>
|
|
</p>
|
|
|
|
<div class="meta">
|
|
<table class="attributes">
|
|
<tr>
|
|
<th class="status"><%=l(:field_status)%>:</th><td class="status"><%= h(@issue.status.name) %></td>
|
|
<th class="start-date"><%=l(:field_start_date)%>:</th><td class="start-date"><%= format_date(@issue.start_date) %></td>
|
|
</tr>
|
|
<tr>
|
|
<th class="priority"><%=l(:field_priority)%>:</th><td class="priority"><%= h(@issue.priority.name) %></td>
|
|
<th class="due-date"><%=l(:field_due_date)%>:</th><td class="due-date"><%= format_date(@issue.due_date) %></td>
|
|
</tr>
|
|
<tr>
|
|
<th class="assigned-to"><%=l(:field_assigned_to)%>:</th><td class="assigned-to"><%= avatar(@issue.assigned_to, :size => "14") %><%= @issue.assigned_to ? link_to_user(@issue.assigned_to) : "-" %></td>
|
|
<th class="progress"><%=l(:field_done_ratio)%>:</th><td class="progress"><%= progress_bar @issue.done_ratio, :width => '80px', :legend => "#{@issue.done_ratio}%" %></td>
|
|
</tr>
|
|
<tr>
|
|
<th class="category"><%=l(:field_category)%>:</th><td class="category"><%=h(@issue.category ? @issue.category.name : "-") %></td>
|
|
<% if User.current.allowed_to?(:view_time_entries, @project) %>
|
|
<th class="spent-time"><%=l(:label_spent_time)%>:</th>
|
|
<td class="spent-time"><%= @issue.spent_hours > 0 ? (link_to l_hours(@issue.spent_hours), {:controller => 'timelog', :action => 'index', :project_id => @project, :issue_id => @issue}) : "-" %></td>
|
|
<% end %>
|
|
</tr>
|
|
<tr>
|
|
<th class="fixed-version"><%=l(:field_fixed_version)%>:</th><td class="fixed-version"><%= @issue.fixed_version ? link_to_version(@issue.fixed_version) : "-" %></td>
|
|
<% if @issue.estimated_hours %>
|
|
<th class="estimated-hours"><%=l(:field_estimated_hours)%>:</th><td class="estimated-hours"><%= l_hours(@issue.estimated_hours) %></td>
|
|
<% end %>
|
|
</tr>
|
|
<%= render_custom_fields_rows(@issue) %>
|
|
<%= call_hook(:view_issues_show_details_bottom, :issue => @issue) %>
|
|
</table>
|
|
</div><!-- .meta -->
|
|
|
|
<% if @issue.description? %>
|
|
|
|
<div class="description">
|
|
<hr />
|
|
<div class="contextual">
|
|
<%= link_to_remote_if_authorized(l(:button_quote), { :url => {:controller => 'journals', :action => 'new', :id => @issue} }, :class => 'icon icon-comment') %>
|
|
</div>
|
|
|
|
<p><strong><%=l(:field_description)%></strong></p>
|
|
<div class="wiki">
|
|
<%= textilizable @issue, :description, :attachments => @issue.attachments %>
|
|
</div>
|
|
</div>
|
|
<% end %>
|
|
|
|
<% if @issue.attachments.any? -%>
|
|
<%= link_to_attachments @issue %>
|
|
<% end -%>
|
|
|
|
<%= call_hook(:view_issues_show_description_bottom, :issue => @issue) %>
|
|
|
|
<hr />
|
|
|
|
<%= render :partial => 'subissues_paragraph' %>
|
|
|
|
<% if authorize_for('issue_relations', 'new') || @issue.relations.present? %>
|
|
<div id="relations">
|
|
<%= render :partial => 'relations' %>
|
|
</div>
|
|
<% end %>
|
|
|
|
</div>
|
|
|
|
<% if @changesets.present? %>
|
|
<div id="issue-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 => { :issue => @issue, :journals => @journals } %>
|
|
</div>
|
|
<% end %>
|
|
|
|
|
|
<div style="clear: both;"></div>
|
|
|
|
<div class="title-bar" id="lower-title-bar">
|
|
<%= javascript_include_tag 'copy_issue_actions' %>
|
|
</div>
|
|
|
|
<div style="clear: both;"></div>
|
|
<% if authorize_for('issues', 'edit') %>
|
|
<div id="update" style="display:none;">
|
|
<%= render :partial => 'edit' %>
|
|
</div>
|
|
<% end %>
|
|
|
|
<% other_formats_links do |f| %>
|
|
<%= f.link_to 'Atom', :url => {:key => User.current.rss_key} %>
|
|
<%= f.link_to 'PDF' %>
|
|
<% end %>
|
|
|
|
<% html_title h("#{@issue.tracker.name} ##{@issue.id}: #{@issue.subject}") %>
|
|
|
|
<% content_for :sidebar do %>
|
|
<%= render :partial => 'issues/sidebar' %>
|
|
|
|
<% if User.current.allowed_to?(:add_issue_watchers, @project) ||
|
|
(@issue.watchers.present? && User.current.allowed_to?(:view_issue_watchers, @project)) %>
|
|
<div id="watchers">
|
|
<%= render :partial => 'watchers/watchers', :locals => {:watched => @issue} %>
|
|
</div>
|
|
<% end %>
|
|
<% end %>
|
|
|
|
<% content_for :header_tags do %>
|
|
<%= auto_discovery_link_tag(:atom, {:format => 'atom', :key => User.current.rss_key}, :title => "#{@issue.project} - #{@issue.tracker} ##{@issue.id}: #{@issue.subject}") %>
|
|
<%= stylesheet_link_tag 'scm' %>
|
|
<%= javascript_include_tag 'context_menu' %>
|
|
<%= stylesheet_link_tag 'context_menu' %>
|
|
<%= stylesheet_link_tag 'context_menu_rtl' if l(:direction) == 'rtl' %>
|
|
<% end %>
|
|
<div id="context-menu" style="display: none;"></div>
|
|
<%= javascript_tag "new ContextMenu('#{issues_context_menu_path}')" %>
|
|
|