From 3833ac1506fb336cd617ec41d25e35c34e74064e Mon Sep 17 00:00:00 2001 From: Peter Kozak Date: Tue, 26 Mar 2013 15:51:35 +0100 Subject: voicemail refactored --- app/controllers/voicemail_accounts_controller.rb | 68 ++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 app/controllers/voicemail_accounts_controller.rb (limited to 'app/controllers/voicemail_accounts_controller.rb') diff --git a/app/controllers/voicemail_accounts_controller.rb b/app/controllers/voicemail_accounts_controller.rb new file mode 100644 index 0000000..7e00131 --- /dev/null +++ b/app/controllers/voicemail_accounts_controller.rb @@ -0,0 +1,68 @@ +class VoicemailAccountsController < 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 :voicemail_account + + load_and_authorize_resource :phone_number, :through => [:sip_account, :conference, :hunt_group, :automatic_call_distributor, :user, :tenant] + + before_filter :set_and_authorize_parent + + def index + @voicemail_accounts = @parent.voicemail_accounts + end + + def show + + end + + def new + @voicemail_account = @parent.voicemail_accounts.build(:active => true) + if @parent.class == SipAccount && VoicemailAccount.where(:name => @parent.auth_name).count == 0 + @voicemail_account.name = @parent.auth_name + else + @voicemail_account.name = SecureRandom.hex(GsParameter.get('DEFAULT_LENGTH_SIP_AUTH_NAME')) + end + end + + def create + @voicemail_account = @parent.voicemail_accounts.new(params[:voicemail_account]) + if @voicemail_account.save + m = method( :"#{@parent.class.name.underscore}_voicemail_accounts_url" ) + redirect_to m.( @parent ), :notice => t('voicemail_accounts.controller.successfuly_created') + else + render :new + end + end + + def edit + @voicemail_account = VoicemailAccount.find(params[:id]) + end + + def update + @voicemail_account = VoicemailAccount.find(params[:id]) + if @voicemail_account.update_attributes(params[:voicemail_account]) + m = method( :"#{@parent.class.name.underscore}_voicemail_accounts_url" ) + redirect_to m.( @parent ), :notice => t('voicemail_accounts.controller.successfuly_updated') + else + render :edit + end + end + + def destroy + @voicemail_account = VoicemailAccount.find(params[:id]) + @voicemail_account.destroy + m = method( :"#{@parent.class.name.underscore}_voicemail_accounts_url" ) + redirect_to m.( @parent ), :notice => t('voicemail_accounts.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 15664d01ab69da8e7478dfd45cf52ef709349428 Mon Sep 17 00:00:00 2001 From: Peter Kozak Date: Thu, 25 Apr 2013 14:00:41 +0200 Subject: defailt voicemail settings --- app/controllers/voicemail_accounts_controller.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'app/controllers/voicemail_accounts_controller.rb') diff --git a/app/controllers/voicemail_accounts_controller.rb b/app/controllers/voicemail_accounts_controller.rb index 7e00131..0bfa160 100644 --- a/app/controllers/voicemail_accounts_controller.rb +++ b/app/controllers/voicemail_accounts_controller.rb @@ -31,6 +31,15 @@ class VoicemailAccountsController < ApplicationController def create @voicemail_account = @parent.voicemail_accounts.new(params[:voicemail_account]) if @voicemail_account.save + if @parent.class == User + @email = @parent.email + end + @voicemail_account.voicemail_settings.create(:name => 'pin', :value => ("%06d" % SecureRandom.random_number(999999)), :class_type => 'String') + @voicemail_account.voicemail_settings.create(:name => 'notify', :value => 'true', :class_type => 'Boolean') + @voicemail_account.voicemail_settings.create(:name => 'attachment', :value => 'true', :class_type => 'Boolean') + @voicemail_account.voicemail_settings.create(:name => 'mark_read', :value => 'true', :class_type => 'Boolean') + @voicemail_account.voicemail_settings.create(:name => 'purge', :value => 'false', :class_type => 'Boolean') + @voicemail_account.voicemail_settings.create(:name => 'email', :value => @email, :class_type => 'String') m = method( :"#{@parent.class.name.underscore}_voicemail_accounts_url" ) redirect_to m.( @parent ), :notice => t('voicemail_accounts.controller.successfuly_created') else @@ -65,4 +74,5 @@ class VoicemailAccountsController < ApplicationController authorize! :read, @parent end + end -- cgit v1.2.3 From af24d971e2cd913ad6ad3bcf58e47469090b1eda Mon Sep 17 00:00:00 2001 From: Peter Kozak Date: Fri, 26 Apr 2013 12:14:39 +0200 Subject: breadcrumbs added --- app/controllers/voicemail_accounts_controller.rb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'app/controllers/voicemail_accounts_controller.rb') diff --git a/app/controllers/voicemail_accounts_controller.rb b/app/controllers/voicemail_accounts_controller.rb index 0bfa160..2e96cb7 100644 --- a/app/controllers/voicemail_accounts_controller.rb +++ b/app/controllers/voicemail_accounts_controller.rb @@ -10,6 +10,7 @@ class VoicemailAccountsController < ApplicationController load_and_authorize_resource :phone_number, :through => [:sip_account, :conference, :hunt_group, :automatic_call_distributor, :user, :tenant] before_filter :set_and_authorize_parent + before_filter :spread_breadcrumbs def index @voicemail_accounts = @parent.voicemail_accounts @@ -75,4 +76,17 @@ class VoicemailAccountsController < 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("voicemail_accounts.index.page_title"), method( :"#{@parent.class.name.underscore}_voicemail_accounts_url" ).(@parent) + + if !@voicemail_account.to_s.blank? + add_breadcrumb @voicemail_account.name + end + end + end -- cgit v1.2.3 From 9a3fb878930698d5f799c92c6900060844cff6ce Mon Sep 17 00:00:00 2001 From: Peter Kozak Date: Tue, 30 Apr 2013 15:11:26 +0200 Subject: breadcrumbs --- app/controllers/voicemail_accounts_controller.rb | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'app/controllers/voicemail_accounts_controller.rb') diff --git a/app/controllers/voicemail_accounts_controller.rb b/app/controllers/voicemail_accounts_controller.rb index 2e96cb7..6e840fb 100644 --- a/app/controllers/voicemail_accounts_controller.rb +++ b/app/controllers/voicemail_accounts_controller.rb @@ -80,6 +80,14 @@ class VoicemailAccountsController < ApplicationController 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) + elsif @parent.class == SipAccount + if @parent.sip_accountable.class == User + add_breadcrumb t("users.index.page_title"), tenant_users_path(@parent.sip_accountable.current_tenant) + add_breadcrumb @parent.sip_accountable, tenant_user_path(@parent.sip_accountable.current_tenant, @parent.sip_accountable) + end + + add_breadcrumb t("sip_accounts.index.page_title"), method( :"#{@parent.sip_accountable.class.name.underscore}_sip_accounts_url" ).(@parent.sip_accountable) + add_breadcrumb @parent, method( :"#{@parent.sip_accountable.class.name.underscore}_sip_account_path" ).(@parent.sip_accountable, @parent) end add_breadcrumb t("voicemail_accounts.index.page_title"), method( :"#{@parent.class.name.underscore}_voicemail_accounts_url" ).(@parent) -- cgit v1.2.3