Mercurial > hg > soundsoftware-site
comparison app/controllers/projects_controller.rb @ 205:05f9a2a9c753 bug_67
Projects page: Sort and paginate table on the basis of root projects only; recurse to children (if any) after each root project is rendered. Fixes #67
author | Chris Cannam <chris.cannam@soundsoftware.ac.uk> |
---|---|
date | Tue, 08 Feb 2011 12:16:25 +0000 |
parents | 1890a968b404 |
children | 73ff0e6a11b1 ab672e427b9b |
comparison
equal
deleted
inserted
replaced
197:5da98461a9f6 | 205:05f9a2a9c753 |
---|---|
44 include QueriesHelper | 44 include QueriesHelper |
45 helper :repositories | 45 helper :repositories |
46 include RepositoriesHelper | 46 include RepositoriesHelper |
47 include ProjectsHelper | 47 include ProjectsHelper |
48 | 48 |
49 # Lists visible projects | 49 # Lists visible projects. Paginator is for top-level projects only |
50 # (subprojects belong to them) | |
50 def index | 51 def index |
51 respond_to do |format| | 52 respond_to do |format| |
52 format.html { | 53 format.html { |
53 sort_init 'lft' | 54 sort_init 'name' |
54 sort_update %w(lft title created_on updated_on) | 55 sort_update %w(name lft created_on updated_on) |
55 @limit = per_page_option | 56 @limit = per_page_option |
56 @project_count = Project.visible.count | 57 @project_count = Project.visible_roots.count |
57 @project_pages = Paginator.new self, @project_count, @limit, params['page'] | 58 @project_pages = Paginator.new self, @project_count, @limit, params['page'] |
58 @offset ||= @project_pages.current.offset | 59 @offset ||= @project_pages.current.offset |
59 @projects = Project.visible.all(:offset => @offset, :limit => @limit, :order => sort_clause) | 60 @projects = Project.visible_roots.all(:offset => @offset, :limit => @limit, :order => sort_clause) |
60 if User.current.logged? | 61 if User.current.logged? |
61 @user_projects = User.current.projects.sort_by(&:lft) | 62 @user_projects = User.current.projects.sort_by(&:name) |
62 end | 63 end |
63 render :template => 'projects/index.rhtml', :layout => !request.xhr? | 64 render :template => 'projects/index.rhtml', :layout => !request.xhr? |
64 } | 65 } |
65 format.xml { | 66 format.xml { |
66 @projects = Project.visible.find(:all, :order => 'lft') | 67 @projects = Project.visible.find(:all, :order => 'lft') |