;]
[askyou.git] / app / controllers / files_controller.rb
blob7868d0ddfb5c62e322db193604a0e718f60cf758
1 class FilesController < ApplicationController
2   menu_item :files
4   before_filter :find_project
5   before_filter :authorize
7   helper :sort
8   include SortHelper
10   def index
11     sort_init 'filename', 'asc'
12     sort_update 'filename' => "#{Attachment.table_name}.filename",
13                 'created_on' => "#{Attachment.table_name}.created_on",
14                 'size' => "#{Attachment.table_name}.filesize",
15                 'downloads' => "#{Attachment.table_name}.downloads"
16                 
17     @containers = [ Project.find(@project.id, :include => :attachments, :order => sort_clause)]
18     @containers += @project.versions.find(:all, :include => :attachments, :order => sort_clause).sort.reverse
19     render :layout => !request.xhr?
20   end
22   # TODO: split method into new (GET) and create (POST)
23   def new
24     if request.post?
25       container = (params[:version_id].blank? ? @project : @project.versions.find_by_id(params[:version_id]))
26       attachments = Attachment.attach_files(container, params[:attachments])
27       render_attachment_warning_if_needed(container)
29       if !attachments.empty? && !attachments[:files].blank? && Setting.notified_events.include?('file_added')
30         Mailer.deliver_attachments_added(attachments[:files])
31       end
32       redirect_to :controller => 'files', :action => 'index', :id => @project
33       return
34     end
35     @versions = @project.versions.sort
36   end
37 end