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.
123 lines
5.5 KiB
123 lines
5.5 KiB
<div class="contextual">
|
|
<%= show_and_goto_link(l(:label_add_note), 'add-note', :class => 'icon icon-note') if authorize_for('issues', 'add_note') %>
|
|
<%= link_to_if_authorized l(:button_edit), {:controller => 'issues', :action => 'edit', :id => @issue}, :class => 'icon icon-edit', :accesskey => accesskey(:edit) %>
|
|
<%= link_to_if_authorized l(:button_log_time), {:controller => 'timelog', :action => 'edit', :issue_id => @issue}, :class => 'icon icon-time' %>
|
|
<%= watcher_tag(@issue, User.current) %>
|
|
<%= link_to_if_authorized l(:button_copy), {:controller => 'projects', :action => 'add_issue', :id => @project, :copy_from => @issue }, :class => 'icon icon-copy' %>
|
|
<%= link_to_if_authorized l(:button_move), {:controller => 'projects', :action => 'move_issues', :id => @project, "issue_ids[]" => @issue.id }, :class => 'icon icon-move' %>
|
|
<%= link_to_if_authorized l(:button_delete), {:controller => 'issues', :action => 'destroy', :id => @issue}, :confirm => l(:text_are_you_sure), :method => :post, :class => 'icon icon-del' %>
|
|
</div>
|
|
|
|
<h2><%= @issue.tracker.name %> #<%= @issue.id %></h2>
|
|
|
|
<div class="issue <%= "status-#{@issue.status.position} priority-#{@issue.priority.position}" %>">
|
|
<h3><%=h @issue.subject %></h3>
|
|
<p class="author">
|
|
<%= authoring @issue.created_on, @issue.author %>.
|
|
<%= l(:label_updated_time, distance_of_time_in_words(Time.now, @issue.updated_on)) if @issue.created_on != @issue.updated_on %>.
|
|
</p>
|
|
|
|
<table width="100%">
|
|
<tr>
|
|
<td style="width:15%"><b><%=l(:field_status)%> :</b></td><td style="width:35%"><%= @issue.status.name %></td>
|
|
<td style="width:15%"><b><%=l(:field_start_date)%> :</b></td><td style="width:35%"><%= format_date(@issue.start_date) %></td>
|
|
</tr>
|
|
<tr>
|
|
<td><b><%=l(:field_priority)%> :</b></td><td><%= @issue.priority.name %></td>
|
|
<td><b><%=l(:field_due_date)%> :</b></td><td><%= format_date(@issue.due_date) %></td>
|
|
</tr>
|
|
<tr>
|
|
<td><b><%=l(:field_assigned_to)%> :</b></td><td><%= @issue.assigned_to ? link_to_user(@issue.assigned_to) : "-" %></td>
|
|
<td><b><%=l(:field_done_ratio)%> :</b></td><td><%= progress_bar @issue.done_ratio, :width => '80px', :legend => "#{@issue.done_ratio}%" %></td>
|
|
</tr>
|
|
<tr>
|
|
<td><b><%=l(:field_category)%> :</b></td><td><%=h @issue.category ? @issue.category.name : "-" %></td>
|
|
<% if User.current.allowed_to?(:view_time_entries, @project) %>
|
|
<td><b><%=l(:label_spent_time)%> :</b></td>
|
|
<td><%= @issue.spent_hours > 0 ? (link_to lwr(:label_f_hour, @issue.spent_hours), {:controller => 'timelog', :action => 'details', :issue_id => @issue}, :class => 'icon icon-time') : "-" %></td>
|
|
<% end %>
|
|
</tr>
|
|
<tr>
|
|
<td><b><%=l(:field_fixed_version)%> :</b></td><td><%= @issue.fixed_version ? link_to_version(@issue.fixed_version) : "-" %></td>
|
|
<% if @issue.estimated_hours %>
|
|
<td><b><%=l(:field_estimated_hours)%> :</b></td><td><%= lwr(:label_f_hour, @issue.estimated_hours) %></td>
|
|
<% end %>
|
|
</tr>
|
|
<tr>
|
|
<% n = 0
|
|
for custom_value in @custom_values %>
|
|
<td valign="top"><b><%= custom_value.custom_field.name %> :</b></td><td valign="top"><%= simple_format(h(show_value(custom_value))) %></td>
|
|
<% n = n + 1
|
|
if (n > 1)
|
|
n = 0 %>
|
|
</tr><tr>
|
|
<%end
|
|
end %>
|
|
</tr>
|
|
</table>
|
|
<hr />
|
|
|
|
<% if @issue.changesets.any? %>
|
|
<div style="float:right;">
|
|
<em><%= l(:label_revision_plural) %>: <%= @issue.changesets.collect{|changeset| link_to(changeset.revision, :controller => 'repositories', :action => 'revision', :id => @project, :rev => changeset.revision)}.join(", ") %></em>
|
|
</div>
|
|
<% end %>
|
|
|
|
<p><strong><%=l(:field_description)%></strong></p>
|
|
<%= textilizable @issue, :description, :attachments => @issue.attachments %>
|
|
|
|
<% if @issue.attachments.any? %>
|
|
<%= link_to_attachments @issue.attachments, :delete_url => (authorize_for('issues', 'destroy_attachment') ? {:controller => 'issues', :action => 'destroy_attachment', :id => @issue} : nil) %>
|
|
<% end %>
|
|
|
|
<% if authorize_for('issue_relations', 'new') || @issue.relations.any? %>
|
|
<hr />
|
|
<div id="relations">
|
|
<%= render :partial => 'relations' %>
|
|
</div>
|
|
<% end %>
|
|
|
|
</div>
|
|
|
|
<% if authorize_for('issues', 'change_status') and @status_options and !@status_options.empty? %>
|
|
<% form_tag({:controller => 'issues', :action => 'change_status', :id => @issue}) do %>
|
|
<p><%=l(:label_change_status)%> :
|
|
<select name="new_status_id">
|
|
<%= options_from_collection_for_select @status_options, "id", "name", @issue.status_id %>
|
|
</select>
|
|
<%= submit_tag l(:button_change) %></p>
|
|
<% end %>
|
|
<% end %>
|
|
|
|
<% if @journals.any? %>
|
|
<div id="history">
|
|
<h3><%=l(:label_history)%></h3>
|
|
<%= render :partial => 'history', :locals => { :journals => @journals } %>
|
|
</div>
|
|
<% end %>
|
|
|
|
<% if authorize_for('issues', 'add_note') %>
|
|
<a name="add-note-anchor"></a>
|
|
<div id="add-note" class="box" style="display:none;">
|
|
<h3><%= l(:label_add_note) %></h3>
|
|
<% form_tag({:controller => 'issues', :action => 'add_note', :id => @issue}, :class => "tabular", :multipart => true) do %>
|
|
<p><label for="notes"><%=l(:field_notes)%></label>
|
|
<%= text_area_tag 'notes', '', :cols => 60, :rows => 10, :class => 'wiki-edit' %></p>
|
|
<%= wikitoolbar_for 'notes' %>
|
|
<%= render :partial => 'attachments/form' %>
|
|
<%= submit_tag l(:button_add) %>
|
|
<%= toggle_link l(:button_cancel), 'add-note' %>
|
|
<% end %>
|
|
</div>
|
|
<% end %>
|
|
|
|
<div class="contextual">
|
|
<%= l(:label_export_to) %><%= link_to 'PDF', {:format => 'pdf'}, :class => 'icon icon-pdf' %>
|
|
</div>
|
|
|
|
|
|
<% html_title "#{@issue.tracker.name} ##{@issue.id}: #{@issue.subject}" %>
|
|
|
|
<% content_for :sidebar do %>
|
|
<%= render :partial => 'issues/sidebar' %>
|
|
<% end %>
|
|
|