Issue hierarchy on issue show view #906
This commit is contained in:
parent
68efc3de32
commit
565aeabc79
|
@ -79,6 +79,22 @@ module IssuesHelper
|
||||||
s
|
s
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def render_parents_and_subtree(issue)
|
||||||
|
return if issue.leaf? && !issue.parent
|
||||||
|
s = '<form><table id="issue_tree" class="list">'
|
||||||
|
issue_list(issue.self_and_ancestors.sort_by(&:lft) + issue.descendants.sort_by(&:lft)) do |el, level|
|
||||||
|
s << content_tag('tr',
|
||||||
|
content_tag('td', check_box_tag("ids[]", el.id, false, :id => nil), :class => 'checkbox') +
|
||||||
|
content_tag('td', link_to_issue(el, :truncate => 60), :class => 'subject') +
|
||||||
|
content_tag('td', h(el.status)) +
|
||||||
|
content_tag('td', link_to_user(el.assigned_to)) +
|
||||||
|
content_tag('td', progress_bar(el.done_ratio, :width => '80px')),
|
||||||
|
:class => "issue issue-#{el.id} #{"self" if el == issue} hascontextmenu #{level > 0 ? "idnt idnt-#{level}" : nil}")
|
||||||
|
end
|
||||||
|
s << '</form></table>'
|
||||||
|
s
|
||||||
|
end
|
||||||
|
|
||||||
def render_custom_fields_rows(issue)
|
def render_custom_fields_rows(issue)
|
||||||
return if issue.custom_field_values.empty?
|
return if issue.custom_field_values.empty?
|
||||||
ordered_values = []
|
ordered_values = []
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
<% if !@issue.leaf? || @issue.parent || User.current.allowed_to?(:manage_subtasks, @project) %>
|
||||||
|
<hr />
|
||||||
|
<p>
|
||||||
|
<strong><%= l(:label_issue_hierarchy) %></strong>
|
||||||
|
<% if User.current.allowed_to?(:manage_subtasks, @project) %>
|
||||||
|
(<%= link_to(l(:label_subtask_add), {:controller => 'issues', :action => 'new', :project_id => @project, :issue => {:parent_issue_id => @issue}}) %>)
|
||||||
|
<% end %>
|
||||||
|
</p>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<%= render_parents_and_subtree @issue %>
|
|
@ -74,17 +74,7 @@
|
||||||
|
|
||||||
<%= call_hook(:view_issues_show_description_bottom, :issue => @issue) %>
|
<%= call_hook(:view_issues_show_description_bottom, :issue => @issue) %>
|
||||||
|
|
||||||
<% if !@issue.leaf? || User.current.allowed_to?(:manage_subtasks, @project) %>
|
<%= render :partial => 'tree_simple' %>
|
||||||
<hr />
|
|
||||||
<div id="issue_tree">
|
|
||||||
<p>
|
|
||||||
<strong><%=l(:label_subtask_plural)%></strong>
|
|
||||||
(<%= link_to(l(:button_add), {:controller => 'issues', :action => 'new', :project_id => @project, :issue => {:parent_issue_id => @issue}}) if User.current.allowed_to?(:manage_subtasks, @project) %>)
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<%= render_descendants_tree(@issue) unless @issue.leaf? %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<% if authorize_for('issue_relations', 'new') || @issue.relations.present? %>
|
<% if authorize_for('issue_relations', 'new') || @issue.relations.present? %>
|
||||||
<hr />
|
<hr />
|
||||||
|
|
|
@ -796,6 +796,8 @@ de:
|
||||||
label_api_access_key_created_on: Der API-Zugriffsschlüssel wurde vor %{value} erstellt
|
label_api_access_key_created_on: Der API-Zugriffsschlüssel wurde vor %{value} erstellt
|
||||||
label_profile: Profil
|
label_profile: Profil
|
||||||
label_subtask_plural: Unteraufgaben
|
label_subtask_plural: Unteraufgaben
|
||||||
|
label_subtask_add: Unteraufgabe hinzufügen
|
||||||
|
label_issue_hierarchy: Tickethierarchie
|
||||||
label_project_copy_notifications: Sende Mailbenachrichtigungen beim Kopieren des Projekts.
|
label_project_copy_notifications: Sende Mailbenachrichtigungen beim Kopieren des Projekts.
|
||||||
label_principal_search: "Nach Benutzer oder Gruppe suchen:"
|
label_principal_search: "Nach Benutzer oder Gruppe suchen:"
|
||||||
label_user_search: "Nach Benutzer suchen:"
|
label_user_search: "Nach Benutzer suchen:"
|
||||||
|
|
|
@ -808,6 +808,8 @@ en:
|
||||||
label_api_access_key_created_on: "API access key created %{value} ago"
|
label_api_access_key_created_on: "API access key created %{value} ago"
|
||||||
label_profile: Profile
|
label_profile: Profile
|
||||||
label_subtask_plural: Subtasks
|
label_subtask_plural: Subtasks
|
||||||
|
label_subtask_add: Add a subtask
|
||||||
|
label_issue_hierarchy: Issue hierarchy
|
||||||
label_project_copy_notifications: Send email notifications during the project copy
|
label_project_copy_notifications: Send email notifications during the project copy
|
||||||
label_principal_search: "Search for user or group:"
|
label_principal_search: "Search for user or group:"
|
||||||
label_user_search: "Search for user:"
|
label_user_search: "Search for user:"
|
||||||
|
|
|
@ -264,8 +264,10 @@ div.issue div.subject p {margin: 0; margin-bottom: 0.1em; font-size: 90%; color:
|
||||||
div.issue div.subject>div>p { margin-top: 0.5em; }
|
div.issue div.subject>div>p { margin-top: 0.5em; }
|
||||||
div.issue div.subject h3 {margin: 0; margin-bottom: 0.1em;}
|
div.issue div.subject h3 {margin: 0; margin-bottom: 0.1em;}
|
||||||
|
|
||||||
|
#issue_tree {border: none;}
|
||||||
#issue_tree table.issues { border: 0; }
|
#issue_tree table.issues { border: 0; }
|
||||||
#issue_tree td.checkbox {display:none;}
|
#issue_tree td.checkbox {display:none;}
|
||||||
|
#issue_tree tr.self a.issue {color: inherit;}
|
||||||
|
|
||||||
#content fieldset#filters {
|
#content fieldset#filters {
|
||||||
padding-bottom:10px;
|
padding-bottom:10px;
|
||||||
|
|
Loading…
Reference in New Issue