Chris@909: class FilesController < ApplicationController Chris@909: menu_item :files Chris@909: Chris@909: before_filter :find_project_by_project_id Chris@909: before_filter :authorize Chris@909: Chris@909: helper :sort Chris@909: include SortHelper Chris@909: Chris@909: def index Chris@909: sort_init 'filename', 'asc' Chris@909: sort_update 'filename' => "#{Attachment.table_name}.filename", Chris@909: 'created_on' => "#{Attachment.table_name}.created_on", Chris@909: 'size' => "#{Attachment.table_name}.filesize", Chris@909: 'downloads' => "#{Attachment.table_name}.downloads" Chris@909: Chris@909: @containers = [ Project.find(@project.id, :include => :attachments, :order => sort_clause)] Chris@909: @containers += @project.versions.find(:all, :include => :attachments, :order => sort_clause).sort.reverse Chris@909: render :layout => !request.xhr? Chris@909: end Chris@909: Chris@909: def new Chris@909: @versions = @project.versions.sort Chris@909: end Chris@909: Chris@909: def create Chris@909: container = (params[:version_id].blank? ? @project : @project.versions.find_by_id(params[:version_id])) Chris@909: attachments = Attachment.attach_files(container, params[:attachments]) Chris@909: render_attachment_warning_if_needed(container) Chris@909: Chris@909: if !attachments.empty? && !attachments[:files].blank? && Setting.notified_events.include?('file_added') Chris@909: Mailer.deliver_attachments_added(attachments[:files]) Chris@909: end Chris@909: redirect_to project_files_path(@project) Chris@909: end Chris@909: end