summaryrefslogtreecommitdiffstats
path: root/app/controllers
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2007-11-04 11:15:04 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2007-11-04 11:15:04 +0000
commitd4e47d5d649844aa2d29b79334946cf4765c8482 (patch)
tree68c4ff1afe6390ef876ae427c319c441ea1eceb9 /app/controllers
parent11cf016c58e9e6e741e8306639940cfdef104564 (diff)
downloadredmine-d4e47d5d649844aa2d29b79334946cf4765c8482.tar.gz
redmine-d4e47d5d649844aa2d29b79334946cf4765c8482.zip
Added radio buttons on the documents list to sort documents by category, date, title or author.
git-svn-id: http://redmine.rubyforge.org/svn/trunk@879 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/controllers')
-rw-r--r--app/controllers/projects_controller.rb14
1 files changed, 13 insertions, 1 deletions
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index 394e545d0..ae9c242e0 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -188,7 +188,19 @@ class ProjectsController < ApplicationController
# Show documents list of @project
def list_documents
- @documents = @project.documents.find :all, :include => :category
+ @sort_by = %w(category date title author).include?(params[:sort_by]) ? params[:sort_by] : 'category'
+ documents = @project.documents.find :all, :include => [:attachments, :category]
+ case @sort_by
+ when 'date'
+ @grouped = documents.group_by {|d| d.created_on.to_date }
+ when 'title'
+ @grouped = documents.group_by {|d| d.title.first.upcase}
+ when 'author'
+ @grouped = documents.select{|d| d.attachments.any?}.group_by {|d| d.attachments.last.author}
+ else
+ @grouped = documents.group_by(&:category)
+ end
+ render :layout => false if request.xhr?
end
# Add a new issue to @project