From 78ea4bcd397a4d8f39ad3c08066fe918a8fc89ad Mon Sep 17 00:00:00 2001 From: Peter Kozak Date: Thu, 11 Apr 2013 10:51:28 +0200 Subject: file uploader --- app/controllers/generic_files_controller.rb | 64 +++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 app/controllers/generic_files_controller.rb (limited to 'app/controllers/generic_files_controller.rb') diff --git a/app/controllers/generic_files_controller.rb b/app/controllers/generic_files_controller.rb new file mode 100644 index 0000000..b7dc453 --- /dev/null +++ b/app/controllers/generic_files_controller.rb @@ -0,0 +1,64 @@ +class GenericFilesController < ApplicationController + + load_resource :sip_account + load_resource :conference + load_resource :hunt_group + load_resource :automatic_call_distributor + load_resource :user + load_resource :tenant + load_resource :generic_file + + load_and_authorize_resource :generic_file, :through => [:sip_account, :conference, :hunt_group, :automatic_call_distributor, :user, :tenant] + + before_filter :set_and_authorize_parent + + def index + @generic_files = @parent.generic_files + end + + def show + + end + + def new + @generic_file = @parent.generic_files.build() + end + + def create + @generic_file = @parent.generic_files.new(params[:generic_file]) + if @generic_file.save + m = method( :"#{@parent.class.name.underscore}_generic_files_url" ) + redirect_to m.( @parent ), :notice => t('generic_files.controller.successfuly_created') + else + render :new + end + end + + def edit + @generic_file = GenericFile.find(params[:id]) + end + + def update + @generic_file = GenericFile.find(params[:id]) + if @generic_file.update_attributes(params[:generic_file]) + m = method( :"#{@parent.class.name.underscore}_generic_files_url" ) + redirect_to m.( @parent ), :notice => t('generic_files.controller.successfuly_updated') + else + render :edit + end + end + + def destroy + @generic_file = GenericFile.find(params[:id]) + @generic_file.destroy + m = method( :"#{@parent.class.name.underscore}_generic_files_url" ) + redirect_to m.( @parent ), :notice => t('generic_files.controller.successfuly_destroyed') + end + + private + def set_and_authorize_parent + @parent = @sip_account || @conference || @hunt_group || @automatic_call_distributor || @user || @tenant + + authorize! :read, @parent + end +end -- cgit v1.2.3 From 2c594b0f62798d077d7d55b60ca9871f9b56a07a Mon Sep 17 00:00:00 2001 From: Peter Kozak Date: Fri, 26 Apr 2013 10:03:43 +0200 Subject: respond to file format --- app/controllers/generic_files_controller.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'app/controllers/generic_files_controller.rb') diff --git a/app/controllers/generic_files_controller.rb b/app/controllers/generic_files_controller.rb index b7dc453..b3c0390 100644 --- a/app/controllers/generic_files_controller.rb +++ b/app/controllers/generic_files_controller.rb @@ -17,7 +17,15 @@ class GenericFilesController < ApplicationController end def show - + respond_to do |format| + format.html + format.xml {render :xml => @generic_file} + format.all { + if request.format == @generic_file.file_type + send_file @generic_file.file.path, :type => @generic_file.file_type, :filename => "#{@generic_file.name}.#{request.parameters[:format].to_s}" + end + } + end end def new -- cgit v1.2.3 From 02818937b8f7de0ae2417337c30771827d7c1c9e Mon Sep 17 00:00:00 2001 From: Peter Kozak Date: Fri, 26 Apr 2013 10:45:45 +0200 Subject: breadcrumbs added --- app/controllers/generic_files_controller.rb | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'app/controllers/generic_files_controller.rb') diff --git a/app/controllers/generic_files_controller.rb b/app/controllers/generic_files_controller.rb index b3c0390..ddedbe5 100644 --- a/app/controllers/generic_files_controller.rb +++ b/app/controllers/generic_files_controller.rb @@ -11,6 +11,7 @@ class GenericFilesController < ApplicationController load_and_authorize_resource :generic_file, :through => [:sip_account, :conference, :hunt_group, :automatic_call_distributor, :user, :tenant] before_filter :set_and_authorize_parent + before_filter :spread_breadcrumbs def index @generic_files = @parent.generic_files @@ -69,4 +70,18 @@ class GenericFilesController < ApplicationController authorize! :read, @parent end + + def spread_breadcrumbs + if @parent.class == User + add_breadcrumb t("users.index.page_title"), tenant_users_path(@parent.current_tenant) + add_breadcrumb @parent, tenant_user_path(@parent.current_tenant, @parent) + end + + add_breadcrumb t("generic_files.index.page_title"), method( :"#{@parent.class.name.underscore}_generic_files_url" ).(@parent) + + if @generic_file + add_breadcrumb @generic_file + end + + end end -- cgit v1.2.3 From 433883b08761d5d89c491e0c454812c618ba2b01 Mon Sep 17 00:00:00 2001 From: Peter Kozak Date: Fri, 26 Apr 2013 12:13:22 +0200 Subject: no breadcrumbs on empty name --- app/controllers/generic_files_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/controllers/generic_files_controller.rb') diff --git a/app/controllers/generic_files_controller.rb b/app/controllers/generic_files_controller.rb index ddedbe5..69e00e1 100644 --- a/app/controllers/generic_files_controller.rb +++ b/app/controllers/generic_files_controller.rb @@ -79,7 +79,7 @@ class GenericFilesController < ApplicationController add_breadcrumb t("generic_files.index.page_title"), method( :"#{@parent.class.name.underscore}_generic_files_url" ).(@parent) - if @generic_file + if !@generic_file.to_s.blank? add_breadcrumb @generic_file end -- cgit v1.2.3