diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index 68d3c94..0dd876c 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -70,8 +70,16 @@ class IssuesController < ApplicationController @issue_count = @query.issue_count @issue_pages = Paginator.new self, @issue_count, limit, params['page'] + + hier_sort_clause = sort_clause + if hier_sort_clause == 'issues.id DESC' + hier_sort_clause = 'issues.root_id DESC, issues.lft' + elsif hier_sort_clause == 'issues.id' + hier_sort_clause = 'issues.root_id, issues.lft' + end + @issues = @query.issues(:include => [:assigned_to, :tracker, :priority, :category, :fixed_version], - :order => sort_clause, + :order => hier_sort_clause, :offset => @issue_pages.current.offset, :limit => limit) @issue_count_by_group = @query.issue_count_by_group diff --git a/app/models/issue.rb b/app/models/issue.rb index 0cb9e38..4ad44f2 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -207,6 +207,7 @@ class Issue < ActiveRecord::Base done_ratio estimated_hours custom_field_values + level ) unless const_defined?(:SAFE_ATTRIBUTES) # Safely sets attributes diff --git a/app/views/issues/_list.rhtml b/app/views/issues/_list.rhtml index b29476d..7824396 100644 --- a/app/views/issues/_list.rhtml +++ b/app/views/issues/_list.rhtml @@ -27,7 +27,16 @@ <%= check_box_tag("ids[]", issue.id, false, :id => nil) %> <%= link_to issue.id, :controller => 'issues', :action => 'show', :id => issue %> - <% query.columns.each do |column| %><%= content_tag 'td', column_content(column, issue), :class => column.name %><% end %> + <% query.columns.each do |column| %> + <% + if column.name == :subject + indent = "padding-left: #{issue.level}em" + else + indent = "" + end + %> + <%= content_tag 'td', column_content(column, issue), :style => indent, :class => column.name %> + <% end %> <% end -%>