From f5cddb733550b16851a36b50f9b3f861c1f0de89 Mon Sep 17 00:00:00 2001 From: spag Date: Tue, 29 Jan 2013 11:06:46 +0100 Subject: profile --- app/models/gateway_setting.rb | 1 + 1 file changed, 1 insertion(+) (limited to 'app') diff --git a/app/models/gateway_setting.rb b/app/models/gateway_setting.rb index e3eaadb..381dde5 100644 --- a/app/models/gateway_setting.rb +++ b/app/models/gateway_setting.rb @@ -10,6 +10,7 @@ class GatewaySetting < ActiveRecord::Base 'auth_source' => 'String', 'auth_pattern' => 'String', 'number_source' => 'String', + 'profile' => 'String', }, 'xmpp' => { 'server' => 'String', -- cgit v1.2.3 From 75fb68c4d1eb647a268890c080da2dc3875c0e77 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Tue, 29 Jan 2013 16:44:47 +0100 Subject: Get rid of @current_user. The use of current_user is better. --- app/controllers/application_controller.rb | 12 ++++++------ app/controllers/call_forwards_controller.rb | 4 ++-- app/controllers/gui_functions_controller.rb | 2 +- app/controllers/softkeys_controller.rb | 2 +- app/controllers/tenants_controller.rb | 8 ++++---- app/views/phone_numbers/_form_core.html.haml | 4 ++-- 6 files changed, 16 insertions(+), 16 deletions(-) (limited to 'app') diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index e4165f3..2d49890 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -106,7 +106,7 @@ class ApplicationController < ActionController::Base end rescue_from CanCan::AccessDenied do |exception| - if @current_user + if current_user redirect_to root_url, :alert => 'Access denied! Please ask your admin to grant you the necessary rights.' else if Tenant.count == 0 && User.count == 0 @@ -121,13 +121,13 @@ class ApplicationController < ActionController::Base private - def current_user - begin - @current_user ||= User.find(session[:user_id]) if session[:user_id] - rescue ActiveRecord::RecordNotFound + def current_user + if session[:user_id] && User.where(:id => session[:user_id]).any? + return User.where(:id => session[:user_id]).first + else session[:user_id] = nil + return nil end - @current_user end def go_to_setup_if_new_installation diff --git a/app/controllers/call_forwards_controller.rb b/app/controllers/call_forwards_controller.rb index 001ed60..b1ced87 100644 --- a/app/controllers/call_forwards_controller.rb +++ b/app/controllers/call_forwards_controller.rb @@ -28,7 +28,7 @@ class CallForwardsController < ApplicationController @available_call_forward_cases = [] CallForwardCase.all.each do |available_call_forward_case| - if GuiFunction.display?("call_forward_case_#{available_call_forward_case.value}_field_in_call_forward_form", @current_user) + if GuiFunction.display?("call_forward_case_#{available_call_forward_case.value}_field_in_call_forward_form", current_user) @available_call_forward_cases << available_call_forward_case end end @@ -112,7 +112,7 @@ class CallForwardsController < ApplicationController voice_mail_destination, ] - if GuiFunction.display?('huntgroup_in_destination_field_in_call_forward_form', @current_user) + if GuiFunction.display?('huntgroup_in_destination_field_in_call_forward_form', current_user) HuntGroup.all.each do |hunt_group| hunt_group_destination = CallForwardingDestination.new() hunt_group_destination.id = "#{hunt_group.id}:HuntGroup" diff --git a/app/controllers/gui_functions_controller.rb b/app/controllers/gui_functions_controller.rb index 0cb7898..4b57322 100644 --- a/app/controllers/gui_functions_controller.rb +++ b/app/controllers/gui_functions_controller.rb @@ -58,7 +58,7 @@ class GuiFunctionsController < ApplicationController private def load_user_groups - @user_groups = Tenant.find(@current_user.current_tenant).user_groups.order(:position) + @user_groups = Tenant.find(current_user.current_tenant).user_groups.order(:position) end def spread_breadcrumbs diff --git a/app/controllers/softkeys_controller.rb b/app/controllers/softkeys_controller.rb index d2a2bb9..8f363cd 100644 --- a/app/controllers/softkeys_controller.rb +++ b/app/controllers/softkeys_controller.rb @@ -61,7 +61,7 @@ class SoftkeysController < ApplicationController @softkey_functions = [] SoftkeyFunction.accessible_by(current_ability, :read).each do |softkey_function| - if GuiFunction.display?("softkey_function_#{softkey_function.name.downcase}_field_in_softkey_form", @current_user) + if GuiFunction.display?("softkey_function_#{softkey_function.name.downcase}_field_in_softkey_form", current_user) @softkey_functions << softkey_function end end diff --git a/app/controllers/tenants_controller.rb b/app/controllers/tenants_controller.rb index 37874b2..f30246b 100644 --- a/app/controllers/tenants_controller.rb +++ b/app/controllers/tenants_controller.rb @@ -27,17 +27,17 @@ class TenantsController < ApplicationController if @tenant.save # Become a member of this tenant. # - @tenant.tenant_memberships.create(:user_id => @current_user.id) + @tenant.tenant_memberships.create(:user_id => current_user.id) # Groups # admin_group = @tenant.user_groups.create(:name => t('gemeinschaft_setups.initial_setup.admin_group_name')) - admin_group.users << @current_user + admin_group.users << current_user user_group = @tenant.user_groups.create(:name => t('gemeinschaft_setups.initial_setup.user_group_name')) - user_group.users << @current_user + user_group.users << current_user - @current_user.update_attributes!(:current_tenant_id => @tenant.id) + current_user.update_attributes!(:current_tenant_id => @tenant.id) # Generate the internal_extensions # diff --git a/app/views/phone_numbers/_form_core.html.haml b/app/views/phone_numbers/_form_core.html.haml index a1ce1f3..a0a69db 100644 --- a/app/views/phone_numbers/_form_core.html.haml +++ b/app/views/phone_numbers/_form_core.html.haml @@ -4,7 +4,7 @@ = f.input :name, :collection => ['Office', 'Home', 'Mobile', 'Fax'], :include_blank => false, :label => t('phone_numbers.form.name.label'), :hint => conditional_hint('phone_numbers.form.name.hint') = f.input :number, :label => t('phone_numbers.form.number.label'), :hint => conditional_hint('phone_numbers.form.number.hint'), :autofocus => true - else - - if @callthrough || @hunt_group_member || @access_authorization || @current_user.current_tenant.array_of_available_internal_extensions_and_dids.count == 0 || @current_user.current_tenant.array_of_available_internal_extensions_and_dids.count > 250 + - if @callthrough || @hunt_group_member || @access_authorization || current_user.current_tenant.array_of_available_internal_extensions_and_dids.count == 0 || current_user.current_tenant.array_of_available_internal_extensions_and_dids.count > 250 = f.input :number, :label => t('phone_numbers.form.number.label'), :hint => conditional_hint('phone_numbers.form.number.hint'), :autofocus => true - else - = f.input :number, :collection => @current_user.current_tenant.array_of_available_internal_extensions_and_dids, :label => t('phone_numbers.form.number.label'), :hint => conditional_hint('phone_numbers.form.number.hint'), :include_blank => false, :autofocus => true + = f.input :number, :collection => current_user.current_tenant.array_of_available_internal_extensions_and_dids, :label => t('phone_numbers.form.number.label'), :hint => conditional_hint('phone_numbers.form.number.hint'), :include_blank => false, :autofocus => true -- cgit v1.2.3 From bf3af8f8a444365f3040da2928837986409fa016 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Tue, 29 Jan 2013 18:43:06 +0100 Subject: Single Sign On via a ENV['USER_NAME'] mechanism. --- app/controllers/application_controller.rb | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'app') diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 2d49890..2aadf19 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -122,11 +122,21 @@ class ApplicationController < ActionController::Base private def current_user - if session[:user_id] && User.where(:id => session[:user_id]).any? - return User.where(:id => session[:user_id]).first + if session[:user_id] || GsParameter.get('SingleSignOnEnvUserNameKey').blank? + if session[:user_id] && User.where(:id => session[:user_id]).any? + return User.where(:id => session[:user_id]).first + else + session[:user_id] = nil + return nil + end else - session[:user_id] = nil - return nil + if User.where(:user_name => request.env[GsParameter.get('SingleSignOnEnvUserNameKey')]).any? + auth_user = User.where(:user_name => request.env[GsParameter.get('SingleSignOnEnvUserNameKey')]).first + session[:user_id] = auth_user.id + return auth_user + else + return nil + end end end -- cgit v1.2.3 From 5d84248cf177635a19f033f53abbca87ac5c87bc Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Tue, 29 Jan 2013 18:55:07 +0100 Subject: Fixed hidden-phone bug. --- .../shared/_index_view_edit_destroy_part.html.haml | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'app') diff --git a/app/views/shared/_index_view_edit_destroy_part.html.haml b/app/views/shared/_index_view_edit_destroy_part.html.haml index 6bb1e7b..d396460 100644 --- a/app/views/shared/_index_view_edit_destroy_part.html.haml +++ b/app/views/shared/_index_view_edit_destroy_part.html.haml @@ -4,17 +4,20 @@ - if can? :show, child %a.btn.btn-small.btn-success{:href => method( :"#{parent.class.name.underscore}_#{child.class.name.underscore}_path" ).(parent, child) } %i.icon-info-sign.icon-white - =t("#{child.class.name.underscore.pluralize}.index.actions.show") + %span.hidden-phone + =t("#{child.class.name.underscore.pluralize}.index.actions.show") - if can? :edit, child %a.btn.btn-small.btn-warning{:href => method( :"edit_#{parent.class.name.underscore}_#{child.class.name.underscore}_path" ).(parent, child) } %i.icon-edit.icon-white - =t("#{child.class.name.underscore.pluralize}.index.actions.edit") + %span.hidden-phone + =t("#{child.class.name.underscore.pluralize}.index.actions.edit") - if can? :destroy, child %a.btn.btn-small.btn-danger{"data-confirm" => t("#{child.class.name.underscore.pluralize}.index.actions.confirm_destroy"), "data-method" => "delete", :href => method( :"#{parent.class.name.underscore}_#{child.class.name.underscore}_path" ).(parent, child), :rel => "nofollow"} %i.icon-remove.icon-white - =t("#{child.class.name.underscore.pluralize}.index.actions.destroy") + %span.hidden-phone + =t("#{child.class.name.underscore.pluralize}.index.actions.destroy") - elsif !(defined? child).nil? %td @@ -22,15 +25,18 @@ - if can? :show, child %a.btn.btn-small.btn-success{:href => method( :"#{child.class.name.underscore}_path" ).(child) } %i.icon-info-sign.icon-white - =t("#{child.class.name.underscore.pluralize}.index.actions.show") + %span.hidden-phone + =t("#{child.class.name.underscore.pluralize}.index.actions.show") - if can? :edit, child %a.btn.btn-small.btn-warning{:href => method( :"edit_#{child.class.name.underscore}_path" ).(child) } %i.icon-edit.icon-white - =t("#{child.class.name.underscore.pluralize}.index.actions.edit") + %span.hidden-phone + =t("#{child.class.name.underscore.pluralize}.index.actions.edit") - if can? :destroy, child %a.btn.btn-small.btn-danger{"data-confirm" => t("#{child.class.name.underscore.pluralize}.index.actions.confirm_destroy"), "data-method" => "delete", :href => method( :"#{child.class.name.underscore}_path" ).(child), :rel => "nofollow"} %i.icon-trash.icon-white - =t("#{child.class.name.underscore.pluralize}.index.actions.destroy") + %span.hidden-phone + =t("#{child.class.name.underscore.pluralize}.index.actions.destroy") \ No newline at end of file -- cgit v1.2.3 From d4a664a0495bd183b16a239aeb4c342e1ca739fa Mon Sep 17 00:00:00 2001 From: spag Date: Wed, 30 Jan 2013 15:59:52 +0100 Subject: select route endpoint --- app/controllers/call_routes_controller.rb | 11 +++++++++++ app/models/call_route.rb | 4 ++++ app/views/call_routes/_form_core.html.haml | 3 +-- 3 files changed, 16 insertions(+), 2 deletions(-) (limited to 'app') diff --git a/app/controllers/call_routes_controller.rb b/app/controllers/call_routes_controller.rb index 0259a10..653fd55 100644 --- a/app/controllers/call_routes_controller.rb +++ b/app/controllers/call_routes_controller.rb @@ -1,6 +1,12 @@ class CallRoutesController < ApplicationController authorize_resource :call_route + before_filter { |controller| + if !params[:call_route].blank? and !params[:call_route][:endpoint_str].blank? + params[:call_route][:endpoint_type], delimeter, params[:call_route][:endpoint_id] = params[:call_route][:endpoint_str].partition('=') + end + } + def index @call_routes = CallRoute.order([:routing_table, :position]) @routing_tables = @call_routes.pluck(:routing_table).uniq.sort @@ -29,6 +35,11 @@ class CallRoutesController < ApplicationController def edit @call_route = CallRoute.find(params[:id]) + @endpoints = Gateway.all.collect {|r| [ "gateway: #{r.to_s}", "gateway=#{r.id}" ] } + @endpoints << [ 'phonenumber', 'phonenumber' ] + @endpoints << [ 'dialplanfunction', 'dialplanfunction' ] + @endpoints << [ 'hangup', 'hangup' ] + @endpoints << [ 'unknown', 'unknown' ] spread_breadcrumbs end diff --git a/app/models/call_route.rb b/app/models/call_route.rb index b4496ab..1c3f70a 100644 --- a/app/models/call_route.rb +++ b/app/models/call_route.rb @@ -239,6 +239,10 @@ class CallRoute < ActiveRecord::Base end end + def endpoint_str + "#{endpoint_type}=#{endpoint_id}" + end + def endpoint if self.endpoint_id.to_i > 0 begin diff --git a/app/views/call_routes/_form_core.html.haml b/app/views/call_routes/_form_core.html.haml index b64d660..6679a7b 100644 --- a/app/views/call_routes/_form_core.html.haml +++ b/app/views/call_routes/_form_core.html.haml @@ -1,5 +1,4 @@ .inputs = f.input :routing_table, :collection => CallRoute::ROUTING_TABLES, :label => t('call_routes.form.table.label'), :hint => conditional_hint('call_routes.form.table.hint'), :include_blank => false, :autofocus => true = f.input :name, :label => t('call_routes.form.name.label'), :hint => conditional_hint('call_routes.form.name.hint') - = f.input :endpoint_type, :label => t('call_routes.form.endpoint_type.label'), :hint => conditional_hint('call_routes.form.endpoint_type.hint') - = f.input :endpoint_id, :label => t('call_routes.form.endpoint_id.label'), :hint => conditional_hint('call_routes.form.endpoint_id.hint') + = f.input :endpoint_str, :collection => @endpoints, :label => t('call_routes.form.endpoint.label'), :hint => conditional_hint('call_routes.form.endpoint.hint'), :include_blank => false -- cgit v1.2.3 From 83120928fc2dabe225215668943452065d8bc52f Mon Sep 17 00:00:00 2001 From: spag Date: Wed, 30 Jan 2013 16:05:20 +0100 Subject: equality sign --- app/controllers/call_routes_controller.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'app') diff --git a/app/controllers/call_routes_controller.rb b/app/controllers/call_routes_controller.rb index 653fd55..7cc50ab 100644 --- a/app/controllers/call_routes_controller.rb +++ b/app/controllers/call_routes_controller.rb @@ -36,10 +36,10 @@ class CallRoutesController < ApplicationController def edit @call_route = CallRoute.find(params[:id]) @endpoints = Gateway.all.collect {|r| [ "gateway: #{r.to_s}", "gateway=#{r.id}" ] } - @endpoints << [ 'phonenumber', 'phonenumber' ] - @endpoints << [ 'dialplanfunction', 'dialplanfunction' ] - @endpoints << [ 'hangup', 'hangup' ] - @endpoints << [ 'unknown', 'unknown' ] + @endpoints << [ 'phonenumber', 'phonenumber=' ] + @endpoints << [ 'dialplanfunction', 'dialplanfunction=' ] + @endpoints << [ 'hangup', 'hangup=' ] + @endpoints << [ 'unknown', 'unknown=' ] spread_breadcrumbs end -- cgit v1.2.3 From 8da882cf3ec53f9057b17bd8dd39c2eadb2a88c2 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Thu, 31 Jan 2013 11:39:25 +0100 Subject: Fixed single sign on. #145 --- app/controllers/application_controller.rb | 61 +++++++++++------------ app/controllers/gemeinschaft_setups_controller.rb | 4 +- app/controllers/page_controller.rb | 14 ------ app/views/layouts/_navbar.html.haml | 7 +-- 4 files changed, 34 insertions(+), 52 deletions(-) (limited to 'app') diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 2aadf19..d1d918e 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -2,26 +2,21 @@ class ApplicationController < ActionController::Base protect_from_forgery - before_filter :set_locale + before_filter :start_setup_if_new_installation - before_filter :go_to_setup_if_new_installation - before_filter :home_breadcrumb - + before_filter :set_locale helper_method :current_user - + helper_method :guess_local_ip_address helper_method :guess_local_host - + + before_filter :home_breadcrumb + helper_method :'have_https?' + helper_method :'single_sign_on_system?' helper_method :random_pin - - #TODO Add check_authorization. See - # https://github.com/ryanb/cancan - # https://github.com/ryanb/cancan/wiki/Ensure-Authorization - # and Gemeinschaft 4 - # Generate a new name for an Object # def generate_a_new_name(parent, child = nil) @@ -56,6 +51,8 @@ class ApplicationController < ActionController::Base def random_pin if GsParameter.get('MINIMUM_PIN_LENGTH') > 0 (1..GsParameter.get('MINIMUM_PIN_LENGTH')).map{|i| (0 .. 9).to_a.sample}.join + else + (1..8).map{|i| (0 .. 9).to_a.sample}.join end end @@ -109,40 +106,38 @@ class ApplicationController < ActionController::Base if current_user redirect_to root_url, :alert => 'Access denied! Please ask your admin to grant you the necessary rights.' else - if Tenant.count == 0 && User.count == 0 - # This is a brand new system. We need to run a setup first. - redirect_to wizards_new_initial_setup_path - else - # You need to login first. - redirect_to log_in_path, :alert => 'Access denied! You need to login first.' - end + # You need to login first. + redirect_to log_in_path, :alert => 'Access denied! You need to login first.' end end private def current_user - if session[:user_id] || GsParameter.get('SingleSignOnEnvUserNameKey').blank? + if session[:user_id].nil? && single_sign_on_system? + auth_user = User.where(:user_name => request.env[GsParameter.get('SingleSignOnEnvUserNameKey')]).first + else if session[:user_id] && User.where(:id => session[:user_id]).any? - return User.where(:id => session[:user_id]).first + auth_user = User.where(:id => session[:user_id]).first else - session[:user_id] = nil - return nil + auth_user = nil end + end + session[:user_id] = auth_user.try(:id) + return auth_user + end + + def single_sign_on_system? + if GsParameter.get('SingleSignOnEnvUserNameKey').blank? + false else - if User.where(:user_name => request.env[GsParameter.get('SingleSignOnEnvUserNameKey')]).any? - auth_user = User.where(:user_name => request.env[GsParameter.get('SingleSignOnEnvUserNameKey')]).first - session[:user_id] = auth_user.id - return auth_user - else - return nil - end + true end - end + end - def go_to_setup_if_new_installation + def start_setup_if_new_installation if Rails.env != 'test' - if GemeinschaftSetup.all.count == 0 + if GemeinschaftSetup.count == 0 redirect_to new_gemeinschaft_setup_path end end diff --git a/app/controllers/gemeinschaft_setups_controller.rb b/app/controllers/gemeinschaft_setups_controller.rb index 4f4a72a..cff652d 100644 --- a/app/controllers/gemeinschaft_setups_controller.rb +++ b/app/controllers/gemeinschaft_setups_controller.rb @@ -4,9 +4,9 @@ class GemeinschaftSetupsController < ApplicationController # caches_page :new, :gzip => :best_compression - load_and_authorize_resource :gemeinschaft_setup + skip_before_filter :start_setup_if_new_installation - skip_before_filter :go_to_setup_if_new_installation + load_and_authorize_resource :gemeinschaft_setup def new @user = @gemeinschaft_setup.build_user( diff --git a/app/controllers/page_controller.rb b/app/controllers/page_controller.rb index 8f4fa88..ed48e3c 100644 --- a/app/controllers/page_controller.rb +++ b/app/controllers/page_controller.rb @@ -2,7 +2,6 @@ class PageController < ApplicationController # load_and_authorize_resource :class => false # CanCan doesn't work here really good because Page is not a resource. - before_filter :if_fresh_system_then_go_to_wizard skip_before_filter :home_breadcrumb, :only => [:index] def index @@ -14,18 +13,5 @@ class PageController < ApplicationController def help end - - private - def if_fresh_system_then_go_to_wizard - if Tenant.count == 0 && User.count == 0 - # This is a brand new system. We need to run a setup first. - redirect_to wizards_new_initial_setup_path - else - if current_user.nil? - # You need to login first. - redirect_to log_in_path, :alert => I18n.t('pages.controller.access_denied_login_first') - end - end - end end diff --git a/app/views/layouts/_navbar.html.haml b/app/views/layouts/_navbar.html.haml index c2d9946..9350de0 100644 --- a/app/views/layouts/_navbar.html.haml +++ b/app/views/layouts/_navbar.html.haml @@ -48,7 +48,8 @@ %a.navbar-link{:href => tenant_user_path(current_user.current_tenant, current_user)} = current_user - %li - %a.navbar-link{:href => log_out_path} - %i.icon-off.icon-white + - if single_sign_on_system? == false + %li + %a.navbar-link{:href => log_out_path} + %i.icon-off.icon-white -- cgit v1.2.3 From 68f0f677c5cba6775622d0e50c4315e6361ff5c9 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Thu, 31 Jan 2013 12:26:47 +0100 Subject: First test setup for the backup. --- app/models/gs5_backup.rb | 53 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 app/models/gs5_backup.rb (limited to 'app') diff --git a/app/models/gs5_backup.rb b/app/models/gs5_backup.rb new file mode 100644 index 0000000..928245f --- /dev/null +++ b/app/models/gs5_backup.rb @@ -0,0 +1,53 @@ +# encoding: utf-8 + +## +# Backup Generated: gs5_backup +# Once configured, you can run the backup with the following command: +# +# $ backup perform -t gs5_backup [-c ] +# +Backup::Model.new(:gs5_backup, 'GS5 backup') do + ## + # Split [Splitter] + # + # Split the backup file in to chunks of 250 megabytes + # if the backup file size exceeds 250 megabytes + # + split_into_chunks_of 640 + + ## + # MySQL [Database] + # + database MySQL do |db| + # To dump all databases, set `db.name = :all` (or leave blank) + db.name = system_odbc_configuration['gemeinschaft']['DATABASE'] + db.username = system_odbc_configuration['gemeinschaft']['USER'] + db.password = system_odbc_configuration['gemeinschaft']['PASSWORD'] + db.host = "localhost" + db.port = 3306 + db.socket = "/tmp/mysql.sock" + # Note: when using `skip_tables` with the `db.name = :all` option, + # table names should be prefixed with a database name. + # e.g. ["db_name.table_to_skip", ...] + db.skip_tables = ["skip", "these", "tables"] + db.only_tables = ["only", "these" "tables"] + db.additional_options = ["--quick", "--single-transaction"] + # Optional: Use to set the location of this utility + # if it cannot be found by name in your $PATH + # db.mysqldump_utility = "/opt/local/bin/mysqldump" + end + + ## + # Local (Copy) [Storage] + # + store_with Local do |local| + local.path = "/var/backups/gs5" + local.keep = 5 + end + + ## + # Gzip [Compressor] + # + compress_with Gzip + +end -- cgit v1.2.3 From d3af3a902ef110b50abcc599962bc856eefe4428 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Thu, 31 Jan 2013 14:42:20 +0100 Subject: Fixed the backup config. --- app/models/gs5_backup.rb | 53 ------------------------------------------------ 1 file changed, 53 deletions(-) delete mode 100644 app/models/gs5_backup.rb (limited to 'app') diff --git a/app/models/gs5_backup.rb b/app/models/gs5_backup.rb deleted file mode 100644 index 928245f..0000000 --- a/app/models/gs5_backup.rb +++ /dev/null @@ -1,53 +0,0 @@ -# encoding: utf-8 - -## -# Backup Generated: gs5_backup -# Once configured, you can run the backup with the following command: -# -# $ backup perform -t gs5_backup [-c ] -# -Backup::Model.new(:gs5_backup, 'GS5 backup') do - ## - # Split [Splitter] - # - # Split the backup file in to chunks of 250 megabytes - # if the backup file size exceeds 250 megabytes - # - split_into_chunks_of 640 - - ## - # MySQL [Database] - # - database MySQL do |db| - # To dump all databases, set `db.name = :all` (or leave blank) - db.name = system_odbc_configuration['gemeinschaft']['DATABASE'] - db.username = system_odbc_configuration['gemeinschaft']['USER'] - db.password = system_odbc_configuration['gemeinschaft']['PASSWORD'] - db.host = "localhost" - db.port = 3306 - db.socket = "/tmp/mysql.sock" - # Note: when using `skip_tables` with the `db.name = :all` option, - # table names should be prefixed with a database name. - # e.g. ["db_name.table_to_skip", ...] - db.skip_tables = ["skip", "these", "tables"] - db.only_tables = ["only", "these" "tables"] - db.additional_options = ["--quick", "--single-transaction"] - # Optional: Use to set the location of this utility - # if it cannot be found by name in your $PATH - # db.mysqldump_utility = "/opt/local/bin/mysqldump" - end - - ## - # Local (Copy) [Storage] - # - store_with Local do |local| - local.path = "/var/backups/gs5" - local.keep = 5 - end - - ## - # Gzip [Compressor] - # - compress_with Gzip - -end -- cgit v1.2.3 From 3c0290515e4c097b97ee4fb4d807f9f86c2985a2 Mon Sep 17 00:00:00 2001 From: spag Date: Thu, 31 Jan 2013 20:07:17 +0100 Subject: destinations drop down menu --- app/controllers/call_routes_controller.rb | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'app') diff --git a/app/controllers/call_routes_controller.rb b/app/controllers/call_routes_controller.rb index 7cc50ab..894dd61 100644 --- a/app/controllers/call_routes_controller.rb +++ b/app/controllers/call_routes_controller.rb @@ -20,6 +20,11 @@ class CallRoutesController < ApplicationController def new @call_route = CallRoute.new + @endpoints = Gateway.all.collect {|r| [ "gateway: #{r.to_s}", "gateway=#{r.id}" ] } + @endpoints << [ 'phonenumber', 'phonenumber=' ] + @endpoints << [ 'dialplanfunction', 'dialplanfunction=' ] + @endpoints << [ 'hangup', 'hangup=' ] + @endpoints << [ 'unknown', 'unknown=' ] spread_breadcrumbs end -- cgit v1.2.3 From c744a4aca7b45a654d842c1b41aeabf86a406f62 Mon Sep 17 00:00:00 2001 From: Sascha Daniels Date: Thu, 31 Jan 2013 20:14:42 +0100 Subject: Better transfer behaviour --- app/views/config_snom/show.xml.haml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'app') diff --git a/app/views/config_snom/show.xml.haml b/app/views/config_snom/show.xml.haml index 5f53802..30bee56 100644 --- a/app/views/config_snom/show.xml.haml +++ b/app/views/config_snom/show.xml.haml @@ -40,7 +40,11 @@ %mwi_notification{:perm => 'RW'}= 'silent' %mwi_dialtone{:perm => 'RW'}= 'normal' %prefer_saved_over_received_photo{:perm => 'RW'}= 'off' - %no_dnd{:perm => 'RW'}= 'on' + %no_dnd{:perm => 'RW'}= 'off' + %transfer_on_hangup{:perm => 'RW'}= 'on' + %transfer_on_hangup_non_pots{:perm => 'RW'}= 'on' + %call_join_xfer{:perm => 'RW'}= 'on' + %conf_hangup{:perm => 'RW'}= 'on' %logon_wizard{:perm => 'RW'}= 'off' %disable_deflection{:perm => 'RW'}= 'off' %csta_control{:perm => 'RW'}= 'on' -- cgit v1.2.3 From 4acda4279f11dc917b43aa7505ecb07d2161f0f6 Mon Sep 17 00:00:00 2001 From: spag Date: Fri, 1 Feb 2013 08:11:16 +0100 Subject: position added --- app/views/call_routes/_form_core.html.haml | 1 + app/views/call_routes/_index_core.html.haml | 2 ++ app/views/call_routes/show.html.haml | 3 +++ 3 files changed, 6 insertions(+) (limited to 'app') diff --git a/app/views/call_routes/_form_core.html.haml b/app/views/call_routes/_form_core.html.haml index 6679a7b..926c985 100644 --- a/app/views/call_routes/_form_core.html.haml +++ b/app/views/call_routes/_form_core.html.haml @@ -2,3 +2,4 @@ = f.input :routing_table, :collection => CallRoute::ROUTING_TABLES, :label => t('call_routes.form.table.label'), :hint => conditional_hint('call_routes.form.table.hint'), :include_blank => false, :autofocus => true = f.input :name, :label => t('call_routes.form.name.label'), :hint => conditional_hint('call_routes.form.name.hint') = f.input :endpoint_str, :collection => @endpoints, :label => t('call_routes.form.endpoint.label'), :hint => conditional_hint('call_routes.form.endpoint.hint'), :include_blank => false + = f.input :position, :label => t('call_routes.form.position.label'), :hint => conditional_hint('call_routes.form.position.hint') \ No newline at end of file diff --git a/app/views/call_routes/_index_core.html.haml b/app/views/call_routes/_index_core.html.haml index f0acebb..52a45ba 100644 --- a/app/views/call_routes/_index_core.html.haml +++ b/app/views/call_routes/_index_core.html.haml @@ -2,6 +2,7 @@ %table.table.table-striped %thead %tr + %th %th= t('call_routes.index.name') %th= t('route_elements.index.pattern') %th= t('call_routes.index.endpoint') @@ -10,6 +11,7 @@ - for call_route in call_routes - cache(['call_route_single_table_row', call_route, call_routes.count]) do %tr + %td= call_route.position %td= call_route.name %td - if call_route.route_elements.any? diff --git a/app/views/call_routes/show.html.haml b/app/views/call_routes/show.html.haml index 09daf53..a33a29b 100644 --- a/app/views/call_routes/show.html.haml +++ b/app/views/call_routes/show.html.haml @@ -1,5 +1,8 @@ - content_for :title, t("call_routes.show.page_title") +%p + %strong= t('call_routes.show.position') + ":" + = @call_route.position %p %strong= t('call_routes.show.table') + ":" = @call_route.routing_table -- cgit v1.2.3 From d355193428c9e74180f1b278f88c7b56f3cd6bda Mon Sep 17 00:00:00 2001 From: spag Date: Fri, 1 Feb 2013 09:12:56 +0100 Subject: order by position --- app/controllers/route_elements_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app') diff --git a/app/controllers/route_elements_controller.rb b/app/controllers/route_elements_controller.rb index c4e4c1a..9c6f2b7 100644 --- a/app/controllers/route_elements_controller.rb +++ b/app/controllers/route_elements_controller.rb @@ -5,7 +5,7 @@ class RouteElementsController < ApplicationController before_filter :spread_breadcrumbs def index - @route_elements = @call_route.route_elements + @route_elements = @call_route.route_elements.order([:position]) end def show -- cgit v1.2.3 From f46bfd1618f85842913dd967133f111ec2628fef Mon Sep 17 00:00:00 2001 From: spag Date: Fri, 1 Feb 2013 09:13:30 +0100 Subject: position added --- app/views/route_elements/_form_core.html.haml | 1 + app/views/route_elements/_index_core.html.haml | 2 ++ app/views/route_elements/show.html.haml | 3 +++ 3 files changed, 6 insertions(+) (limited to 'app') diff --git a/app/views/route_elements/_form_core.html.haml b/app/views/route_elements/_form_core.html.haml index a9a38a7..d22467e 100644 --- a/app/views/route_elements/_form_core.html.haml +++ b/app/views/route_elements/_form_core.html.haml @@ -4,4 +4,5 @@ = f.input :pattern, :label => t('route_elements.form.pattern.label'), :hint => conditional_hint('route_elements.form.pattern.hint') = f.input :replacement, :label => t('route_elements.form.replacement.label'), :hint => conditional_hint('route_elements.form.replacement.hint') = f.input :action, :collection => RouteElement::ELEMENT_ACTIONS, :label => t('route_elements.form.action.label'), :hint => conditional_hint('route_elements.form.action.hint'), :include_blank => false + = f.input :position, :label => t('route_elements.form.position.label'), :hint => conditional_hint('route_elements.form.position.hint') = f.input :mandatory, :label => t('route_elements.form.mandatory.label'), :hint => conditional_hint('route_elements.form.mandatory.hint') diff --git a/app/views/route_elements/_index_core.html.haml b/app/views/route_elements/_index_core.html.haml index 37c0656..f68a9ba 100644 --- a/app/views/route_elements/_index_core.html.haml +++ b/app/views/route_elements/_index_core.html.haml @@ -1,6 +1,7 @@ %table.table.table-striped %thead %tr + %th %th= t('route_elements.index.var_in') %th= t('route_elements.index.var_out') %th= t('route_elements.index.pattern') @@ -11,6 +12,7 @@ %tbody - for route_element in route_elements %tr + %td= route_element.position %td= route_element.var_in %td= route_element.var_out %td= route_element.pattern diff --git a/app/views/route_elements/show.html.haml b/app/views/route_elements/show.html.haml index 808f2a0..1d07cbc 100644 --- a/app/views/route_elements/show.html.haml +++ b/app/views/route_elements/show.html.haml @@ -1,5 +1,8 @@ - content_for :title, t("route_elements.show.page_title") +%p + %strong= t('route_elements.show.position') + ":" + = @route_element.position %p %strong= t('route_elements.show.var_in') + ":" = @route_element.var_in -- cgit v1.2.3 From ba5b2737365592cc511a526a3b14be46c3a75467 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Sat, 2 Feb 2013 11:42:52 +0100 Subject: Created a sortable table for the call_routes. #151 --- app/assets/javascripts/application.js | 1 + app/assets/javascripts/call_route.js.coffee | 6 +++ app/assets/stylesheets/application.css | 1 + app/assets/stylesheets/call_routes.css.scss | 5 +++ app/controllers/call_routes_controller.rb | 27 ++++++-------- app/views/call_routes/_index_core.html.haml | 58 +++++++++++++++-------------- app/views/call_routes/index.html.haml | 11 ++---- 7 files changed, 58 insertions(+), 51 deletions(-) create mode 100644 app/assets/javascripts/call_route.js.coffee create mode 100644 app/assets/stylesheets/call_routes.css.scss (limited to 'app') diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 9097d83..c6f4107 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -11,5 +11,6 @@ // GO AFTER THE REQUIRES BELOW. // //= require jquery +//= require jquery-ui //= require jquery_ujs //= require_tree . diff --git a/app/assets/javascripts/call_route.js.coffee b/app/assets/javascripts/call_route.js.coffee new file mode 100644 index 0000000..f41d65b --- /dev/null +++ b/app/assets/javascripts/call_route.js.coffee @@ -0,0 +1,6 @@ +jQuery -> + $("table tbody").sortable + axis: 'y' + handle: '.handle' + update: -> + $.post('call_routes/sort', $(this).sortable('serialize')) \ No newline at end of file diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css index 9093f8e..999afb5 100644 --- a/app/assets/stylesheets/application.css +++ b/app/assets/stylesheets/application.css @@ -12,4 +12,5 @@ *= require bootstrap/bootstrap *= require bootstrap/bootstrap-responsive *= require gemeinschaft-generic + *= require call_routes */ diff --git a/app/assets/stylesheets/call_routes.css.scss b/app/assets/stylesheets/call_routes.css.scss new file mode 100644 index 0000000..7face3b --- /dev/null +++ b/app/assets/stylesheets/call_routes.css.scss @@ -0,0 +1,5 @@ +#call_routes .handle { + font-size: 12px; + color: #777; + cursor: move; +} \ No newline at end of file diff --git a/app/controllers/call_routes_controller.rb b/app/controllers/call_routes_controller.rb index 894dd61..779e23c 100644 --- a/app/controllers/call_routes_controller.rb +++ b/app/controllers/call_routes_controller.rb @@ -1,11 +1,11 @@ class CallRoutesController < ApplicationController authorize_resource :call_route - before_filter { |controller| - if !params[:call_route].blank? and !params[:call_route][:endpoint_str].blank? - params[:call_route][:endpoint_type], delimeter, params[:call_route][:endpoint_id] = params[:call_route][:endpoint_str].partition('=') - end - } + # before_filter { |controller| + # if !params[:call_route].blank? and !params[:call_route][:endpoint_str].blank? + # params[:call_route][:endpoint_type], delimeter, params[:call_route][:endpoint_id] = params[:call_route][:endpoint_str].partition('=') + # end + # } def index @call_routes = CallRoute.order([:routing_table, :position]) @@ -64,21 +64,16 @@ class CallRoutesController < ApplicationController redirect_to call_routes_url, :notice => t('call_routes.controller.successfuly_destroyed') end - def move_higher - @call_route = CallRoute.find(params[:id]) - @call_route.move_higher - redirect_to :back - end - - def move_lower - @call_route = CallRoute.find(params[:id]) - @call_route.move_lower - redirect_to :back + def sort + params[:call_route].each_with_index do |id, index| + CallRoute.update_all({position: index+1}, {id: id}) + end + render nothing: true end private def call_route_parameter_params - params.require(:call_route).permit(:routing_table, :name, :endpoint_type, :endpoint_id) + params.require(:call_route).permit(:routing_table, :name, :endpoint_type, :endpoint_id, :position) end def spread_breadcrumbs diff --git a/app/views/call_routes/_index_core.html.haml b/app/views/call_routes/_index_core.html.haml index 52a45ba..9eae9ee 100644 --- a/app/views/call_routes/_index_core.html.haml +++ b/app/views/call_routes/_index_core.html.haml @@ -1,29 +1,31 @@ -- cache(['call_routes_table', call_routes.count, call_routes.reorder(:updated_at).last]) do - %table.table.table-striped - %thead - %tr - %th - %th= t('call_routes.index.name') - %th= t('route_elements.index.pattern') - %th= t('call_routes.index.endpoint') +/ - cache(['call_routes_table', call_routes.count, call_routes.reorder(:updated_at).last]) do +%table.table.table-striped{ :id => "call_routes" } + %thead + %tr + %th + %th= t('call_routes.index.name') + %th= t('route_elements.index.pattern') + %th= t('call_routes.index.endpoint') - %tbody - - for call_route in call_routes - - cache(['call_route_single_table_row', call_route, call_routes.count]) do - %tr - %td= call_route.position - %td= call_route.name - %td - - if call_route.route_elements.any? - = call_route.route_elements.first.pattern - - if call_route.route_elements.count > 1 - = ', ...' - - else - = '-' - %td - - endpoint = call_route.endpoint - - if endpoint - = endpoint - - else - = call_route.endpoint_type - =render :partial => 'shared/index_view_edit_destroy_part', :locals => {:child => call_route} + %tbody + - for call_route in call_routes + / - cache(['call_route_single_table_row', call_route, call_routes.count]) do + = content_tag_for :tr, call_route do + %td + %span.handle + %i.icon-resize-vertical + %td= call_route.name + %td + - if call_route.route_elements.any? + = call_route.route_elements.first.pattern + - if call_route.route_elements.count > 1 + = ', ...' + - else + = '-' + %td + - endpoint = call_route.endpoint + - if endpoint + = endpoint + - else + = call_route.endpoint_type + =render :partial => 'shared/index_view_edit_destroy_part', :locals => {:child => call_route} diff --git a/app/views/call_routes/index.html.haml b/app/views/call_routes/index.html.haml index 488e1c7..d5181e3 100644 --- a/app/views/call_routes/index.html.haml +++ b/app/views/call_routes/index.html.haml @@ -1,11 +1,8 @@ - content_for :title, t("call_routes.index.page_title") -- if @call_routes && @call_routes.count > 0 - %table.table.table-striped - - @routing_tables.each do |routing_table| - %tr - %td{:colspan => 3} - %h3= routing_table - = render "index_core", :call_routes => @call_routes.where(:routing_table => routing_table) +- if @call_routes && @call_routes.any? + - @routing_tables.each do |routing_table| + %h3= routing_table + = render "index_core", :call_routes => @call_routes.where(:routing_table => routing_table) = render :partial => 'shared/create_link', :locals => {:child_class => CallRoute} -- cgit v1.2.3 From 30d3aa5178e237e49a37f6ee8d0dcb25ac501e24 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Sat, 2 Feb 2013 15:04:45 +0100 Subject: Add version number to a new issue. --- app/views/layouts/_footer.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app') diff --git a/app/views/layouts/_footer.html.haml b/app/views/layouts/_footer.html.haml index 97bf483..3d4658b 100644 --- a/app/views/layouts/_footer.html.haml +++ b/app/views/layouts/_footer.html.haml @@ -14,6 +14,6 @@ %li = link_to 'GS5 Google Group', "https://groups.google.com/group/gs5-users/" %li - =link_to t('misc.send_a_bugreport'), URI::escape("https://github.com/amooma/GS5/issues/new?title=Bugreport&body=URL which triggered the bugreport is: #{request.fullpath}\nGS5 buildname: #{(GsParameter.get('GEMEINSCHAFT_BUILDNAME').blank? ? 'unknown' : GsParameter.get('GEMEINSCHAFT_BUILDNAME'))}\n\nPlease provide your bugreport below this line and update the title of this issue to a more specific one.") + =link_to t('misc.send_a_bugreport'), URI::escape("https://github.com/amooma/GS5/issues/new?title=Bugreport&body=URL which triggered the bugreport is: #{request.fullpath}\nGS5 buildname: #{(GsParameter.get('GEMEINSCHAFT_BUILDNAME').blank? ? 'unknown' : GsParameter.get('GEMEINSCHAFT_BUILDNAME'))} (#{GsParameter.get('GEMEINSCHAFT_VERSION')})\n\nPlease provide your bugreport below this line and update the title of this issue to a more specific one.") %li{:class => 'pull-right'} = link_to 'brought to you by AMOOMA GmbH', 'http://amooma.de' \ No newline at end of file -- cgit v1.2.3 From 2e5789bcaf38a7c2b8b6ffabe9140b4517dcffc8 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Sat, 2 Feb 2013 15:36:41 +0100 Subject: Set a trunk_access_code during setup. #126 --- app/controllers/gemeinschaft_setups_controller.rb | 3 ++- app/views/gemeinschaft_setups/new.de.html.haml | 1 + app/views/gemeinschaft_setups/new.html.haml | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) (limited to 'app') diff --git a/app/controllers/gemeinschaft_setups_controller.rb b/app/controllers/gemeinschaft_setups_controller.rb index cff652d..a62df99 100644 --- a/app/controllers/gemeinschaft_setups_controller.rb +++ b/app/controllers/gemeinschaft_setups_controller.rb @@ -23,6 +23,7 @@ class GemeinschaftSetupsController < ApplicationController @gemeinschaft_setup.default_company_name = generate_a_new_name(Tenant.new) @gemeinschaft_setup.default_system_email = 'admin@localhost' + @gemeinschaft_setup.trunk_access_code = '0' end def create @@ -52,7 +53,7 @@ class GemeinschaftSetupsController < ApplicationController CallRoute.factory_defaults_prerouting(@gemeinschaft_setup.country.country_code, @gemeinschaft_setup.country.trunk_prefix, @gemeinschaft_setup.country.international_call_prefix, - '', + @gemeinschaft_setup.trunk_access_code, @gemeinschaft_setup.default_area_code ) diff --git a/app/views/gemeinschaft_setups/new.de.html.haml b/app/views/gemeinschaft_setups/new.de.html.haml index cf1f207..f977291 100644 --- a/app/views/gemeinschaft_setups/new.de.html.haml +++ b/app/views/gemeinschaft_setups/new.de.html.haml @@ -14,6 +14,7 @@ = f.association :country, :label => t('gemeinschaft_setups.form.country_id.label'), :hint => conditional_hint('gemeinschaft_setups.form.country_id.hint'), :include_blank => false = f.association :language, :label => t('gemeinschaft_setups.form.language_id.label'), :hint => conditional_hint('gemeinschaft_setups.form.language_id.hint'), :include_blank => false = f.input :default_area_code, :label => t('gemeinschaft_setups.form.default_area_code.label'), :hint => conditional_hint('gemeinschaft_setups.form.default_area_code.hint') + = f.input :trunk_access_code, :label => t('gemeinschaft_setups.form.trunk_access_code.label'), :hint => conditional_hint('gemeinschaft_setups.form.trunk_access_code.hint') = f.input :default_company_name, :label => t('gemeinschaft_setups.form.default_company_name.label'), :hint => conditional_hint('gemeinschaft_setups.form.default_company_name.hint') diff --git a/app/views/gemeinschaft_setups/new.html.haml b/app/views/gemeinschaft_setups/new.html.haml index 5e2434e..44d9c5b 100644 --- a/app/views/gemeinschaft_setups/new.html.haml +++ b/app/views/gemeinschaft_setups/new.html.haml @@ -14,6 +14,7 @@ = f.association :country, :label => t('gemeinschaft_setups.form.country_id.label'), :hint => conditional_hint('gemeinschaft_setups.form.country_id.hint'), :include_blank => false = f.association :language, :label => t('gemeinschaft_setups.form.language_id.label'), :hint => conditional_hint('gemeinschaft_setups.form.language_id.hint'), :include_blank => false = f.input :default_area_code, :label => t('gemeinschaft_setups.form.default_area_code.label'), :hint => conditional_hint('gemeinschaft_setups.form.default_area_code.hint') + = f.input :trunk_access_code, :label => t('gemeinschaft_setups.form.trunk_access_code.label'), :hint => conditional_hint('gemeinschaft_setups.form.trunk_access_code.hint') = f.input :default_company_name, :label => t('gemeinschaft_setups.form.default_company_name.label'), :hint => conditional_hint('gemeinschaft_setups.form.default_company_name.hint') -- cgit v1.2.3 From 10a7536f6e142e371de9256e0ad28694c63faf4c Mon Sep 17 00:00:00 2001 From: spag Date: Sat, 2 Feb 2013 22:40:58 +0100 Subject: fallback_sip_account added --- app/controllers/config_polycom_controller.rb | 69 +++++++++++++++------------- 1 file changed, 38 insertions(+), 31 deletions(-) (limited to 'app') diff --git a/app/controllers/config_polycom_controller.rb b/app/controllers/config_polycom_controller.rb index 9d44e51..fd730e3 100644 --- a/app/controllers/config_polycom_controller.rb +++ b/app/controllers/config_polycom_controller.rb @@ -26,12 +26,15 @@ class ConfigPolycomController < ApplicationController if ! params[:sip_account].blank? @sip_account = @phone.sip_accounts.where({ :id => params[:sip_account].to_i }).first + if ! @sip_account && @phone.fallback_sip_account && @phone.fallback_sip_account.id == params[:sip_account].to_i + @sip_account = @phone.fallback_sip_account + end if ! @sip_account render( :status => 404, :layout => false, :content_type => 'text/plain', - :text => "", + :text => "", ) return false end @@ -113,37 +116,41 @@ class ConfigPolycomController < ApplicationController softkey_index = 1 blf_index = 0 - @phone.sip_accounts.each do |sip_account| - sip_account_index = 0 - if (sip_account.sip_accountable_type == @phone.phoneable_type) and (sip_account.sip_accountable_id == @phone.phoneable_id) - sip_account_index += 1 - if sip_account_index == 1 - xml_applications_url = "#{request.protocol}#{request.host_with_port}/config_polycom/#{@phone.id}/#{sip_account.id}" - @settings['voIpProt.SIP.outboundProxy.address'] = sip_account.host - @settings['voIpProt.SIP.outboundProxy.port'] = SIP_DEFAULT_PORT - end + phone_sip_accounts = Array.new() + if @phone.sip_accounts && @phone.sip_accounts.count > 0 + phone_sip_accounts = @phone.sip_accounts + elsif @phone.fallback_sip_account + phone_sip_accounts.push( @phone.fallback_sip_account ) + end + sip_account_index = 0 + phone_sip_accounts.each do |sip_account| + sip_account_index += 1 + if sip_account_index == 1 + xml_applications_url = "#{request.protocol}#{request.host_with_port}/config_polycom/#{@phone.id}/#{sip_account.id}" + @settings['voIpProt.SIP.outboundProxy.address'] = sip_account.host + @settings['voIpProt.SIP.outboundProxy.port'] = SIP_DEFAULT_PORT + end - @settings["reg.#{sip_account_index}.address"] = "#{sip_account.auth_name}@#{sip_account.host}" - @settings["reg.#{sip_account_index}.auth.password"] = sip_account.password - @settings["reg.#{sip_account_index}.auth.userId"] = sip_account.auth_name - @settings["reg.#{sip_account_index}.displayName"] = 'Call' - @settings["reg.#{sip_account_index}.label"] = sip_account.caller_name - @settings["voIpProt.server.#{sip_account_index}.address"] = sip_account.host - @settings["voIpProt.server.#{sip_account_index}.port"] = SIP_DEFAULT_PORT - @settings["call.missedCallTracking.#{sip_account_index}.enabled"] = 0 - - sip_account.softkeys.order(:position).each do |softkey| - softkey_index += 1 - if softkey.softkey_function - softkey_function = softkey.softkey_function.name - end - case softkey_function - when 'blf' - blf_index += 1 - @settings["lineKey.#{softkey_index}.category"] = 'BLF' - @settings["attendant.resourceList.#{blf_index}.address"] = "#{softkey.number}@#{sip_account.host}" - @settings["attendant.resourceList.#{blf_index}.label"] = softkey.label - end + @settings["reg.#{sip_account_index}.address"] = "#{sip_account.auth_name}@#{sip_account.host}" + @settings["reg.#{sip_account_index}.auth.password"] = sip_account.password + @settings["reg.#{sip_account_index}.auth.userId"] = sip_account.auth_name + @settings["reg.#{sip_account_index}.displayName"] = 'Call' + @settings["reg.#{sip_account_index}.label"] = sip_account.caller_name + @settings["voIpProt.server.#{sip_account_index}.address"] = sip_account.host + @settings["voIpProt.server.#{sip_account_index}.port"] = SIP_DEFAULT_PORT + @settings["call.missedCallTracking.#{sip_account_index}.enabled"] = 0 + + sip_account.softkeys.order(:position).each do |softkey| + softkey_index += 1 + if softkey.softkey_function + softkey_function = softkey.softkey_function.name + end + case softkey_function + when 'blf' + blf_index += 1 + @settings["lineKey.#{softkey_index}.category"] = 'BLF' + @settings["attendant.resourceList.#{blf_index}.address"] = "#{softkey.number}@#{sip_account.host}" + @settings["attendant.resourceList.#{blf_index}.label"] = softkey.label end end end -- cgit v1.2.3 From 66a53a49705c269d73f9d51bb0d4a51283049c71 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Mon, 4 Feb 2013 13:00:45 +0100 Subject: Changed softkey table to be sortable. #150 --- app/assets/javascripts/softkey.js.coffee | 6 ++++++ app/assets/stylesheets/application.css | 1 + app/assets/stylesheets/softkeys.css.scss | 5 +++++ app/controllers/softkeys_controller.rb | 21 +++++++++++---------- app/models/sip_account.rb | 2 +- app/views/sip_accounts/show.html.haml | 8 ++++---- app/views/softkeys/_index_core.html.haml | 32 ++++++++++++++++++-------------- 7 files changed, 46 insertions(+), 29 deletions(-) create mode 100644 app/assets/javascripts/softkey.js.coffee create mode 100644 app/assets/stylesheets/softkeys.css.scss (limited to 'app') diff --git a/app/assets/javascripts/softkey.js.coffee b/app/assets/javascripts/softkey.js.coffee new file mode 100644 index 0000000..19103f0 --- /dev/null +++ b/app/assets/javascripts/softkey.js.coffee @@ -0,0 +1,6 @@ +jQuery -> + $("table tbody").sortable + axis: 'y' + handle: '.handle' + update: -> + $.post('/softkeys/sort', $(this).sortable('serialize')) \ No newline at end of file diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css index 999afb5..128a391 100644 --- a/app/assets/stylesheets/application.css +++ b/app/assets/stylesheets/application.css @@ -13,4 +13,5 @@ *= require bootstrap/bootstrap-responsive *= require gemeinschaft-generic *= require call_routes + *= require softkeys */ diff --git a/app/assets/stylesheets/softkeys.css.scss b/app/assets/stylesheets/softkeys.css.scss new file mode 100644 index 0000000..425c6f1 --- /dev/null +++ b/app/assets/stylesheets/softkeys.css.scss @@ -0,0 +1,5 @@ +#softkeys .handle { + font-size: 12px; + color: #777; + cursor: move; +} \ No newline at end of file diff --git a/app/controllers/softkeys_controller.rb b/app/controllers/softkeys_controller.rb index 8f363cd..c9e8c20 100644 --- a/app/controllers/softkeys_controller.rb +++ b/app/controllers/softkeys_controller.rb @@ -1,9 +1,9 @@ class SoftkeysController < ApplicationController - load_and_authorize_resource :sip_account - load_and_authorize_resource :softkey, :through => [:sip_account] + load_and_authorize_resource :sip_account, :except => [:sort] + load_and_authorize_resource :softkey, :through => [:sip_account], :except => [:sort] before_filter :set_available_call_forwards_and_softkey_functions, :only => [ :new, :edit, :update ] - before_filter :spread_breadcrumbs + before_filter :spread_breadcrumbs, :except => [:sort] def index end @@ -44,16 +44,17 @@ class SoftkeysController < ApplicationController redirect_to sip_account_softkeys_path(@softkey.sip_account), :notice => t('softkeys.controller.successfuly_destroyed') end - def move_higher - @softkey.move_higher - redirect_to :back - end + def sort + sip_account = Softkey.find(params[:softkey].first).sip_account + + params[:softkey].each do |softkey_id| + sip_account.softkeys.find(softkey_id).move_to_bottom + end - def move_lower - @softkey.move_lower - redirect_to :back + render nothing: true end + private def set_available_call_forwards_and_softkey_functions diff --git a/app/models/sip_account.rb b/app/models/sip_account.rb index 444eb12..9ba1f8b 100644 --- a/app/models/sip_account.rb +++ b/app/models/sip_account.rb @@ -21,7 +21,7 @@ class SipAccount < ActiveRecord::Base belongs_to :tenant belongs_to :sip_domain - has_many :softkeys, :dependent => :destroy + has_many :softkeys, :dependent => :destroy, :order => :position has_many :voicemail_messages, :foreign_key => 'username', :primary_key => 'auth_name' diff --git a/app/views/sip_accounts/show.html.haml b/app/views/sip_accounts/show.html.haml index 72e10df..f48d927 100644 --- a/app/views/sip_accounts/show.html.haml +++ b/app/views/sip_accounts/show.html.haml @@ -65,16 +65,16 @@ = render :partial => 'shared/show_edit_destroy_part', :locals => { :parent => @sip_account.sip_accountable, :child => @sip_account } -- if @sip_account.phone_numbers.count > 0 || can?(:create, @sip_account.phone_numbers.build) +- if @sip_account.phone_numbers.any? || can?(:create, @sip_account.phone_numbers.build) %h2= t('phone_numbers.index.page_title') - - if @sip_account.phone_numbers.count > 0 + - if @sip_account.phone_numbers.any? = render "phone_numbers/index_core", :phone_numbers => @sip_account.phone_numbers %br = render :partial => 'shared/create_link', :locals => { :parent => @sip_account, :child_class => PhoneNumber } -- if @sip_account.softkeys.count > 0 || can?(:create, @sip_account.softkeys.build) +- if @sip_account.softkeys.any? || can?(:create, @sip_account.softkeys.build) %h2= t("softkeys.index.page_title") - - if @sip_account.softkeys.count > 0 + - if @sip_account.softkeys.any? = render "softkeys/index_core", :softkeys => @sip_account.softkeys %br = render :partial => 'shared/create_link', :locals => { :parent => @sip_account, :child_class => Softkey } \ No newline at end of file diff --git a/app/views/softkeys/_index_core.html.haml b/app/views/softkeys/_index_core.html.haml index 398ee51..4ebb29c 100644 --- a/app/views/softkeys/_index_core.html.haml +++ b/app/views/softkeys/_index_core.html.haml @@ -1,15 +1,19 @@ -%table.table.table-striped - %thead - %tr - %th= t('softkeys.index.function') - %th= t('softkeys.index.number') - %th= t('softkeys.index.label') - - %tbody - - for softkey in softkeys.order(:position) +- cache(['softkeys', I18n.locale, current_user, softkeys]) do + %table.table.table-striped{ :id => "softkeys" } + %thead %tr - %td - =softkey.to_s - %td= softkey.number - %td= softkey.label - =render :partial => 'shared/index_view_edit_destroy_part', :locals => {:parent => softkey.sip_account, :child => softkey} \ No newline at end of file + %th + %th= t('softkeys.index.function') + %th= t('softkeys.index.number') + %th= t('softkeys.index.label') + + %tbody + - for softkey in softkeys + = content_tag_for :tr, softkey do + %td + %span.handle + %i.icon-resize-vertical + %td= softkey.function + %td= softkey.number + %td= softkey.label + =render :partial => 'shared/index_view_edit_destroy_part', :locals => {:parent => softkey.sip_account, :child => softkey} \ No newline at end of file -- cgit v1.2.3 From 636be20a183fac10637fea700f55f89bc371577b Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Mon, 4 Feb 2013 13:51:15 +0100 Subject: Refactoring and bugfixes. --- app/assets/javascripts/call_route.js.coffee | 4 +- app/assets/javascripts/softkey.js.coffee | 4 +- app/controllers/call_routes_controller.rb | 3 +- app/views/call_routes/_index_core.html.haml | 60 ++++++++++++++--------------- app/views/softkeys/_index_core.html.haml | 23 +++++------ 5 files changed, 48 insertions(+), 46 deletions(-) (limited to 'app') diff --git a/app/assets/javascripts/call_route.js.coffee b/app/assets/javascripts/call_route.js.coffee index f41d65b..91d62ca 100644 --- a/app/assets/javascripts/call_route.js.coffee +++ b/app/assets/javascripts/call_route.js.coffee @@ -1,6 +1,6 @@ jQuery -> - $("table tbody").sortable + $('#call_routes').sortable axis: 'y' handle: '.handle' update: -> - $.post('call_routes/sort', $(this).sortable('serialize')) \ No newline at end of file + $.post($(this).data('update-url'), $(this).sortable('serialize')) \ No newline at end of file diff --git a/app/assets/javascripts/softkey.js.coffee b/app/assets/javascripts/softkey.js.coffee index 19103f0..a8d2d0c 100644 --- a/app/assets/javascripts/softkey.js.coffee +++ b/app/assets/javascripts/softkey.js.coffee @@ -1,6 +1,6 @@ jQuery -> - $("table tbody").sortable + $('#softkeys').sortable axis: 'y' handle: '.handle' update: -> - $.post('/softkeys/sort', $(this).sortable('serialize')) \ No newline at end of file + $.post($(this).data('update-url'), $(this).sortable('serialize')) \ No newline at end of file diff --git a/app/controllers/call_routes_controller.rb b/app/controllers/call_routes_controller.rb index 779e23c..661ceba 100644 --- a/app/controllers/call_routes_controller.rb +++ b/app/controllers/call_routes_controller.rb @@ -1,5 +1,5 @@ class CallRoutesController < ApplicationController - authorize_resource :call_route + authorize_resource :call_route, :except => [:sort] # before_filter { |controller| # if !params[:call_route].blank? and !params[:call_route][:endpoint_str].blank? @@ -67,6 +67,7 @@ class CallRoutesController < ApplicationController def sort params[:call_route].each_with_index do |id, index| CallRoute.update_all({position: index+1}, {id: id}) + #CallRoute.find(:id).move_to_bottom end render nothing: true end diff --git a/app/views/call_routes/_index_core.html.haml b/app/views/call_routes/_index_core.html.haml index 9eae9ee..b6c5d33 100644 --- a/app/views/call_routes/_index_core.html.haml +++ b/app/views/call_routes/_index_core.html.haml @@ -1,31 +1,31 @@ -/ - cache(['call_routes_table', call_routes.count, call_routes.reorder(:updated_at).last]) do -%table.table.table-striped{ :id => "call_routes" } - %thead - %tr - %th - %th= t('call_routes.index.name') - %th= t('route_elements.index.pattern') - %th= t('call_routes.index.endpoint') +- cache(['call_routes_table', I18n.locale, call_routes.count, call_routes.reorder(:updated_at).last]) do + %table.table.table-striped + %thead + %tr + %th + %th= t('call_routes.index.name') + %th= t('route_elements.index.pattern') + %th= t('call_routes.index.endpoint') - %tbody - - for call_route in call_routes - / - cache(['call_route_single_table_row', call_route, call_routes.count]) do - = content_tag_for :tr, call_route do - %td - %span.handle - %i.icon-resize-vertical - %td= call_route.name - %td - - if call_route.route_elements.any? - = call_route.route_elements.first.pattern - - if call_route.route_elements.count > 1 - = ', ...' - - else - = '-' - %td - - endpoint = call_route.endpoint - - if endpoint - = endpoint - - else - = call_route.endpoint_type - =render :partial => 'shared/index_view_edit_destroy_part', :locals => {:child => call_route} + %tbody{ :id => "call_routes", :'data-update-url' => sort_call_routes_url} + - for call_route in call_routes + - cache(['call_route_single_table_row', I18n.locale, call_route]) do + = content_tag_for :tr, call_route do + %td + %span.handle + %i.icon-resize-vertical + %td= call_route.name + %td + - if call_route.route_elements.any? + = call_route.route_elements.first.pattern + - if call_route.route_elements.count > 1 + = ', ...' + - else + = '-' + %td + - endpoint = call_route.endpoint + - if endpoint + = endpoint + - else + = call_route.endpoint_type + =render :partial => 'shared/index_view_edit_destroy_part', :locals => {:child => call_route} diff --git a/app/views/softkeys/_index_core.html.haml b/app/views/softkeys/_index_core.html.haml index 4ebb29c..70c96bc 100644 --- a/app/views/softkeys/_index_core.html.haml +++ b/app/views/softkeys/_index_core.html.haml @@ -1,5 +1,5 @@ -- cache(['softkeys', I18n.locale, current_user, softkeys]) do - %table.table.table-striped{ :id => "softkeys" } +- cache(['softkeys_table', I18n.locale, current_user, softkeys]) do + %table.table.table-striped %thead %tr %th @@ -7,13 +7,14 @@ %th= t('softkeys.index.number') %th= t('softkeys.index.label') - %tbody + %tbody{ :id => "softkeys", :'data-update-url' => sort_softkeys_url} - for softkey in softkeys - = content_tag_for :tr, softkey do - %td - %span.handle - %i.icon-resize-vertical - %td= softkey.function - %td= softkey.number - %td= softkey.label - =render :partial => 'shared/index_view_edit_destroy_part', :locals => {:parent => softkey.sip_account, :child => softkey} \ No newline at end of file + - cache(['softkeys_table_tr', I18n.locale, current_user, softkey]) do + = content_tag_for :tr, softkey do + %td + %span.handle + %i.icon-resize-vertical + %td= softkey.function + %td= softkey.number + %td= softkey.label + =render :partial => 'shared/index_view_edit_destroy_part', :locals => {:parent => softkey.sip_account, :child => softkey} \ No newline at end of file -- cgit v1.2.3 From 5a58c0c41de983a72cdacd06c5be80f120d1e080 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Mon, 4 Feb 2013 13:58:20 +0100 Subject: Bugfix #157 --- app/controllers/call_routes_controller.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'app') diff --git a/app/controllers/call_routes_controller.rb b/app/controllers/call_routes_controller.rb index 661ceba..3977132 100644 --- a/app/controllers/call_routes_controller.rb +++ b/app/controllers/call_routes_controller.rb @@ -1,11 +1,11 @@ class CallRoutesController < ApplicationController authorize_resource :call_route, :except => [:sort] - # before_filter { |controller| - # if !params[:call_route].blank? and !params[:call_route][:endpoint_str].blank? - # params[:call_route][:endpoint_type], delimeter, params[:call_route][:endpoint_id] = params[:call_route][:endpoint_str].partition('=') - # end - # } + before_filter { |controller| + if !params[:call_route].blank? && !params[:call_route][:endpoint_str].blank? + params[:call_route][:endpoint_type], delimeter, params[:call_route][:endpoint_id] = params[:call_route][:endpoint_str].partition('=') + end + } def index @call_routes = CallRoute.order([:routing_table, :position]) -- cgit v1.2.3 From 3dead8f9bd964c7330f193cbec82afe44db4149d Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Mon, 4 Feb 2013 14:23:26 +0100 Subject: intermediate step --- app/assets/javascripts/phone_number.js.coffee | 6 ++++ app/assets/stylesheets/application.css | 1 + app/assets/stylesheets/phone_numbers.css.scss | 5 +++ app/controllers/phone_numbers_controller.rb | 45 +++++++++++++-------------- app/views/phone_numbers/_index_core.html.haml | 8 +++-- 5 files changed, 39 insertions(+), 26 deletions(-) create mode 100644 app/assets/javascripts/phone_number.js.coffee create mode 100644 app/assets/stylesheets/phone_numbers.css.scss (limited to 'app') diff --git a/app/assets/javascripts/phone_number.js.coffee b/app/assets/javascripts/phone_number.js.coffee new file mode 100644 index 0000000..ee983ee --- /dev/null +++ b/app/assets/javascripts/phone_number.js.coffee @@ -0,0 +1,6 @@ +jQuery -> + $('#phone_numbers').sortable + axis: 'y' + handle: '.handle' + update: -> + $.post($(this).data('update-url'), $(this).sortable('serialize')) \ No newline at end of file diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css index 128a391..3e1cc66 100644 --- a/app/assets/stylesheets/application.css +++ b/app/assets/stylesheets/application.css @@ -14,4 +14,5 @@ *= require gemeinschaft-generic *= require call_routes *= require softkeys + *= require phone_numbers */ diff --git a/app/assets/stylesheets/phone_numbers.css.scss b/app/assets/stylesheets/phone_numbers.css.scss new file mode 100644 index 0000000..141a1f7 --- /dev/null +++ b/app/assets/stylesheets/phone_numbers.css.scss @@ -0,0 +1,5 @@ +#phone_numbers .handle { + font-size: 12px; + color: #777; + cursor: move; +} \ No newline at end of file diff --git a/app/controllers/phone_numbers_controller.rb b/app/controllers/phone_numbers_controller.rb index c562954..67c4922 100644 --- a/app/controllers/phone_numbers_controller.rb +++ b/app/controllers/phone_numbers_controller.rb @@ -1,22 +1,22 @@ class PhoneNumbersController < ApplicationController - load_resource :phone_book_entry - load_resource :sip_account - load_resource :conference - load_resource :fax_account - load_resource :phone_number_range - load_resource :callthrough - load_resource :whitelist - load_resource :access_authorization - load_resource :hunt_group - load_resource :hunt_group_member - load_resource :automatic_call_distributor - load_and_authorize_resource :phone_number, :through => [:phone_book_entry, :sip_account, :conference, + load_resource :phone_book_entry, :except => [:sort] + load_resource :sip_account, :except => [:sort] + load_resource :conference, :except => [:sort] + load_resource :fax_account, :except => [:sort] + load_resource :phone_number_range, :except => [:sort] + load_resource :callthrough, :except => [:sort] + load_resource :whitelist, :except => [:sort] + load_resource :access_authorization, :except => [:sort] + load_resource :hunt_group, :except => [:sort] + load_resource :hunt_group_member, :except => [:sort] + load_resource :automatic_call_distributor, :except => [:sort] + load_and_authorize_resource :phone_number, :except => [:sort], :through => [:phone_book_entry, :sip_account, :conference, :fax_account, :phone_number_range, :callthrough, :whitelist, :access_authorization, :hunt_group, :hunt_group_member, :automatic_call_distributor] - before_filter :set_and_authorize_parent - before_filter :spread_breadcrumbs + before_filter :set_and_authorize_parent, :except => [:sort] + before_filter :spread_breadcrumbs, :except => [:sort] def index end @@ -67,16 +67,6 @@ class PhoneNumbersController < ApplicationController redirect_to m.(), :notice => t('phone_numbers.controller.successfuly_destroyed') end - def move_higher - @phone_number.move_higher - redirect_to :back - end - - def move_lower - @phone_number.move_lower - redirect_to :back - end - def call sip_account = nil current_user.sip_accounts.each do |user_sip_account| @@ -94,6 +84,13 @@ class PhoneNumbersController < ApplicationController redirect_to(:back) end + def sort + params[:phone_number].each_with_index do |id, index| + PhoneNumber.update_all({position: index+1}, {id: id}) + end + render nothing: true + end + private def set_and_authorize_parent @parent = @phone_book_entry || @sip_account || @conference || @fax_account || diff --git a/app/views/phone_numbers/_index_core.html.haml b/app/views/phone_numbers/_index_core.html.haml index 80a1608..b68e5af 100644 --- a/app/views/phone_numbers/_index_core.html.haml +++ b/app/views/phone_numbers/_index_core.html.haml @@ -1,13 +1,17 @@ %table.table.table-striped %thead %tr + %th - if phone_numbers.count > 1 && phone_numbers.first.phone_numberable_type == 'PhoneBookEntry' %th= t('phone_numbers.index.name') %th= t('phone_numbers.index.number') - %tbody + %tbody{ :id => "phone_numbers", :'data-update-url' => sort_phone_numbers_url} - for phone_number in phone_numbers.order(:position) - %tr + = content_tag_for :tr, phone_number do + %td + %span.handle + %i.icon-resize-vertical - if phone_number.phone_numberable_type == 'PhoneBookEntry' %td= phone_number.name %td= phone_number -- cgit v1.2.3 From 87634e025711be508501cce8c05f23085dad8f9d Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Mon, 4 Feb 2013 14:31:12 +0100 Subject: Bugfixes --- app/views/phone_numbers/_index_core.html.haml | 5 +++-- app/views/sip_accounts/show.html.haml | 8 ++++---- app/views/softkeys/_index_core.html.haml | 5 +++-- 3 files changed, 10 insertions(+), 8 deletions(-) (limited to 'app') diff --git a/app/views/phone_numbers/_index_core.html.haml b/app/views/phone_numbers/_index_core.html.haml index b68e5af..85982da 100644 --- a/app/views/phone_numbers/_index_core.html.haml +++ b/app/views/phone_numbers/_index_core.html.haml @@ -10,8 +10,9 @@ - for phone_number in phone_numbers.order(:position) = content_tag_for :tr, phone_number do %td - %span.handle - %i.icon-resize-vertical + - if phone_numbers.count > 1 + %span.handle + %i.icon-resize-vertical - if phone_number.phone_numberable_type == 'PhoneBookEntry' %td= phone_number.name %td= phone_number diff --git a/app/views/sip_accounts/show.html.haml b/app/views/sip_accounts/show.html.haml index f48d927..72e10df 100644 --- a/app/views/sip_accounts/show.html.haml +++ b/app/views/sip_accounts/show.html.haml @@ -65,16 +65,16 @@ = render :partial => 'shared/show_edit_destroy_part', :locals => { :parent => @sip_account.sip_accountable, :child => @sip_account } -- if @sip_account.phone_numbers.any? || can?(:create, @sip_account.phone_numbers.build) +- if @sip_account.phone_numbers.count > 0 || can?(:create, @sip_account.phone_numbers.build) %h2= t('phone_numbers.index.page_title') - - if @sip_account.phone_numbers.any? + - if @sip_account.phone_numbers.count > 0 = render "phone_numbers/index_core", :phone_numbers => @sip_account.phone_numbers %br = render :partial => 'shared/create_link', :locals => { :parent => @sip_account, :child_class => PhoneNumber } -- if @sip_account.softkeys.any? || can?(:create, @sip_account.softkeys.build) +- if @sip_account.softkeys.count > 0 || can?(:create, @sip_account.softkeys.build) %h2= t("softkeys.index.page_title") - - if @sip_account.softkeys.any? + - if @sip_account.softkeys.count > 0 = render "softkeys/index_core", :softkeys => @sip_account.softkeys %br = render :partial => 'shared/create_link', :locals => { :parent => @sip_account, :child_class => Softkey } \ No newline at end of file diff --git a/app/views/softkeys/_index_core.html.haml b/app/views/softkeys/_index_core.html.haml index 70c96bc..e2cb16c 100644 --- a/app/views/softkeys/_index_core.html.haml +++ b/app/views/softkeys/_index_core.html.haml @@ -12,8 +12,9 @@ - cache(['softkeys_table_tr', I18n.locale, current_user, softkey]) do = content_tag_for :tr, softkey do %td - %span.handle - %i.icon-resize-vertical + - if softkeys.count > 1 + %span.handle + %i.icon-resize-vertical %td= softkey.function %td= softkey.number %td= softkey.label -- cgit v1.2.3 From b96d198d486cebad9eb803088de39262bef2e4d7 Mon Sep 17 00:00:00 2001 From: spag Date: Mon, 4 Feb 2013 15:48:30 +0100 Subject: sip_expiry_seconds --- app/controllers/config_snom_controller.rb | 4 +++- app/views/config_snom/show.xml.haml | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'app') diff --git a/app/controllers/config_snom_controller.rb b/app/controllers/config_snom_controller.rb index e797a43..33b63da 100644 --- a/app/controllers/config_snom_controller.rb +++ b/app/controllers/config_snom_controller.rb @@ -247,6 +247,7 @@ class ConfigSnomController < ApplicationController elsif @phone.fallback_sip_account phone_sip_accounts.push( @phone.fallback_sip_account ) end + expiry_seconds = GsParameter.get('SIP_EXPIRY_SECONDS') phone_sip_accounts.each do |sip_account| if (sip_account.sip_accountable_type == @phone.phoneable_type) and (sip_account.sip_accountable_id == @phone.phoneable_id) snom_sip_account = { @@ -259,7 +260,8 @@ class ConfigSnomController < ApplicationController :name => sip_account.auth_name, :realname => 'Call', :idle_text => sip_account.caller_name, - :mailbox => "" + :mailbox => "", + :expiry => expiry_seconds, } @sip_accounts.push(snom_sip_account) sip_account_index = @sip_accounts.length diff --git a/app/views/config_snom/show.xml.haml b/app/views/config_snom/show.xml.haml index 30bee56..53b300c 100644 --- a/app/views/config_snom/show.xml.haml +++ b/app/views/config_snom/show.xml.haml @@ -121,7 +121,7 @@ %user_realname{:idx => index, :perm => 'R'}= sip_account[:realname] %user_idle_text{:idx => index, :perm => 'R'}= sip_account[:idle_text] %user_mailbox{:idx => index, :perm => 'R'}= sip_account[:mailbox] - %user_expiry{:idx => index, :perm => 'R'}= '' + %user_expiry{:idx => index, :perm => 'R'}= sip_account[:expiry] %user_server_type{:idx => index, :perm => 'R'}= 'default' %user_send_local_name{:idx => index, :perm => 'RW'}= 'on' %user_dtmf_info{:idx => index, :perm => 'RW'}= 'off' -- cgit v1.2.3 From bb8168c33f9501fe877345a7bbc7b7f7b64cdfc7 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Tue, 5 Feb 2013 12:40:42 +0100 Subject: Added a BackupJob scaffold. --- app/controllers/backup_jobs_controller.rb | 43 +++++++++++++++++++++++++++++ app/helpers/backup_jobs_helper.rb | 2 ++ app/models/backup_job.rb | 14 ++++++++++ app/views/backup_jobs/_form.html.haml | 7 +++++ app/views/backup_jobs/_form_core.html.haml | 6 ++++ app/views/backup_jobs/_index_core.html.haml | 17 ++++++++++++ app/views/backup_jobs/edit.html.haml | 3 ++ app/views/backup_jobs/index.html.haml | 6 ++++ app/views/backup_jobs/new.html.haml | 3 ++ app/views/backup_jobs/show.html.haml | 19 +++++++++++++ 10 files changed, 120 insertions(+) create mode 100644 app/controllers/backup_jobs_controller.rb create mode 100644 app/helpers/backup_jobs_helper.rb create mode 100644 app/models/backup_job.rb create mode 100644 app/views/backup_jobs/_form.html.haml create mode 100644 app/views/backup_jobs/_form_core.html.haml create mode 100644 app/views/backup_jobs/_index_core.html.haml create mode 100644 app/views/backup_jobs/edit.html.haml create mode 100644 app/views/backup_jobs/index.html.haml create mode 100644 app/views/backup_jobs/new.html.haml create mode 100644 app/views/backup_jobs/show.html.haml (limited to 'app') diff --git a/app/controllers/backup_jobs_controller.rb b/app/controllers/backup_jobs_controller.rb new file mode 100644 index 0000000..e500f4c --- /dev/null +++ b/app/controllers/backup_jobs_controller.rb @@ -0,0 +1,43 @@ +class BackupJobsController < ApplicationController + def index + @backup_jobs = BackupJob.all + end + + def show + @backup_job = BackupJob.find(params[:id]) + end + + def new + @backup_job = BackupJob.new + end + + def create +# @backup_job = BackupJob.new(params[:backup_job]) + @backup_job = BackupJob.new(:started_at => Time.now) + + if @backup_job.save + redirect_to @backup_job, :notice => t('backup_jobs.controller.successfuly_created') + else + render :new + end + end + + # def edit + # @backup_job = BackupJob.find(params[:id]) + # end + + # def update + # @backup_job = BackupJob.find(params[:id]) + # if @backup_job.update_attributes(params[:backup_job]) + # redirect_to @backup_job, :notice => t('backup_jobs.controller.successfuly_updated') + # else + # render :edit + # end + # end + + def destroy + @backup_job = BackupJob.find(params[:id]) + @backup_job.destroy + redirect_to backup_jobs_url, :notice => t('backup_jobs.controller.successfuly_destroyed') + end +end diff --git a/app/helpers/backup_jobs_helper.rb b/app/helpers/backup_jobs_helper.rb new file mode 100644 index 0000000..06d8b9b --- /dev/null +++ b/app/helpers/backup_jobs_helper.rb @@ -0,0 +1,2 @@ +module BackupJobsHelper +end diff --git a/app/models/backup_job.rb b/app/models/backup_job.rb new file mode 100644 index 0000000..d579b79 --- /dev/null +++ b/app/models/backup_job.rb @@ -0,0 +1,14 @@ +class BackupJob < ActiveRecord::Base + attr_accessible :started_at, :finished_at, :state, :directory, :size_of_the_backup + + after_save :start_the_backup + + private + def start_the_backup + if self.finished_at.nil? + sh "backup perform --trigger gs5 --config_file #{Rails.root.join('config','backup.rb')}" + self.finished_at = Time.now + self.save + end + end +end diff --git a/app/views/backup_jobs/_form.html.haml b/app/views/backup_jobs/_form.html.haml new file mode 100644 index 0000000..e0adceb --- /dev/null +++ b/app/views/backup_jobs/_form.html.haml @@ -0,0 +1,7 @@ += simple_form_for(@backup_job) do |f| + = f.error_notification + + = render "form_core", :f => f + + .actions + = f.button :submit, conditional_t('backup_jobs.form.submit') \ No newline at end of file diff --git a/app/views/backup_jobs/_form_core.html.haml b/app/views/backup_jobs/_form_core.html.haml new file mode 100644 index 0000000..536fb18 --- /dev/null +++ b/app/views/backup_jobs/_form_core.html.haml @@ -0,0 +1,6 @@ +.inputs + = f.input :started_at, :label => t('backup_jobs.form.started_at.label'), :hint => conditional_hint('backup_jobs.form.started_at.hint') + = f.input :finished_at, :label => t('backup_jobs.form.finished_at.label'), :hint => conditional_hint('backup_jobs.form.finished_at.hint') + = f.input :state, :label => t('backup_jobs.form.state.label'), :hint => conditional_hint('backup_jobs.form.state.hint') + = f.input :directory, :label => t('backup_jobs.form.directory.label'), :hint => conditional_hint('backup_jobs.form.directory.hint') + = f.input :size_of_the_backup, :label => t('backup_jobs.form.size_of_the_backup.label'), :hint => conditional_hint('backup_jobs.form.size_of_the_backup.hint') diff --git a/app/views/backup_jobs/_index_core.html.haml b/app/views/backup_jobs/_index_core.html.haml new file mode 100644 index 0000000..6babf3e --- /dev/null +++ b/app/views/backup_jobs/_index_core.html.haml @@ -0,0 +1,17 @@ +%table.table.table-striped + %tr + %th= t('backup_jobs.index.started_at') + %th= t('backup_jobs.index.finished_at') + %th= t('backup_jobs.index.state') + %th= t('backup_jobs.index.directory') + %th= t('backup_jobs.index.size_of_the_backup') + + + - for backup_job in backup_jobs + %tr + %td= backup_job.started_at + %td= backup_job.finished_at + %td= backup_job.state + %td= backup_job.directory + %td= backup_job.size_of_the_backup + =render :partial => 'shared/index_view_edit_destroy_part', :locals => {:child => backup_job} \ No newline at end of file diff --git a/app/views/backup_jobs/edit.html.haml b/app/views/backup_jobs/edit.html.haml new file mode 100644 index 0000000..7892edb --- /dev/null +++ b/app/views/backup_jobs/edit.html.haml @@ -0,0 +1,3 @@ +- content_for :title, t("backup_jobs.edit.page_title") + += render "form" \ No newline at end of file diff --git a/app/views/backup_jobs/index.html.haml b/app/views/backup_jobs/index.html.haml new file mode 100644 index 0000000..0bb4747 --- /dev/null +++ b/app/views/backup_jobs/index.html.haml @@ -0,0 +1,6 @@ +- content_for :title, t("backup_jobs.index.page_title") + +- if @backup_jobs && @backup_jobs.count > 0 + = render "index_core", :backup_jobs => @backup_jobs + += render :partial => 'shared/create_link', :locals => {:child_class => BackupJob} \ No newline at end of file diff --git a/app/views/backup_jobs/new.html.haml b/app/views/backup_jobs/new.html.haml new file mode 100644 index 0000000..65efd4f --- /dev/null +++ b/app/views/backup_jobs/new.html.haml @@ -0,0 +1,3 @@ +- content_for :title, t("backup_jobs.new.page_title") + += render "form" \ No newline at end of file diff --git a/app/views/backup_jobs/show.html.haml b/app/views/backup_jobs/show.html.haml new file mode 100644 index 0000000..7f021bb --- /dev/null +++ b/app/views/backup_jobs/show.html.haml @@ -0,0 +1,19 @@ +- content_for :title, t("backup_jobs.show.page_title") + +%p + %strong= t('backup_jobs.show.started_at') + ":" + = @backup_job.started_at +%p + %strong= t('backup_jobs.show.finished_at') + ":" + = @backup_job.finished_at +%p + %strong= t('backup_jobs.show.state') + ":" + = @backup_job.state +%p + %strong= t('backup_jobs.show.directory') + ":" + = @backup_job.directory +%p + %strong= t('backup_jobs.show.size_of_the_backup') + ":" + = @backup_job.size_of_the_backup + += render :partial => 'shared/show_edit_destroy_part', :locals => { :child => @backup_job } \ No newline at end of file -- cgit v1.2.3 From 6d4de81a703b11f75792790a1b41f963240bd839 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Tue, 5 Feb 2013 12:47:18 +0100 Subject: Added navigation I18n for "Admin-Docu". #142 --- app/views/layouts/_navbar.html.haml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'app') diff --git a/app/views/layouts/_navbar.html.haml b/app/views/layouts/_navbar.html.haml index 9350de0..335dd3d 100644 --- a/app/views/layouts/_navbar.html.haml +++ b/app/views/layouts/_navbar.html.haml @@ -14,10 +14,10 @@ - if current_user && GemeinschaftSetup.any? && current_user.admin? - if current_page?(page_help_path) %li.active - =link_to 'Admin-Doku', page_help_path + =link_to t('navigation.admin_docu'), page_help_path - else %li - =link_to 'Admin-Doku', page_help_path + =link_to t('navigation.admin_docu'), page_help_path - if current_user && current_user.sip_accounts.any? %li %a{:href => sip_account_call_histories_path(current_user.sip_accounts.first)} -- cgit v1.2.3 From dbb0715f4622ad55fce36e51e3a5d046180a0ea7 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Tue, 5 Feb 2013 12:54:11 +0100 Subject: Translations for tenant#show view (admin mode). #137 --- app/views/tenants/_admin_area.de.html.haml | 40 ++++++++++++++++++++++++++++++ app/views/tenants/_admin_area.en.html.haml | 40 ++++++++++++++++++++++++++++++ app/views/tenants/_admin_area.html.haml | 40 ------------------------------ 3 files changed, 80 insertions(+), 40 deletions(-) create mode 100644 app/views/tenants/_admin_area.de.html.haml create mode 100644 app/views/tenants/_admin_area.en.html.haml delete mode 100644 app/views/tenants/_admin_area.html.haml (limited to 'app') diff --git a/app/views/tenants/_admin_area.de.html.haml b/app/views/tenants/_admin_area.de.html.haml new file mode 100644 index 0000000..98809d1 --- /dev/null +++ b/app/views/tenants/_admin_area.de.html.haml @@ -0,0 +1,40 @@ + +.row + .span12 + = render :partial => 'tenants/table_of_sip_accounts', :locals => {:tenant => tenant} + - if SipAccount.any? + = render :partial => 'tenants/table_of_phones', :locals => {:tenant => tenant} + + - if SipAccount.any? || Gateway.any? + = render :partial => 'tenants/table_of_conferences', :locals => {:tenant => tenant} + = render :partial => 'tenants/table_of_callthroughs', :locals => {:tenant => tenant} + = render :partial => 'tenants/table_of_hunt_groups', :locals => {:tenant => tenant} + = render :partial => 'tenants/table_of_automatic_call_distributors', :locals => {:tenant => tenant} + + = render :partial => 'tenants/users_table', :locals => {:tenant => tenant} + = render :partial => 'tenants/user_groups_table', :locals => {:tenant => tenant} + + = render :partial => 'tenants/table_of_phone_books', :locals => {:tenant => tenant} + + .well + %h2 Gemeinschaft Konfiguration + = render :partial => 'tenants/gs_parameter_table', :locals => {:tenant => tenant} + + %p + Das System kann + = PhoneModel.count + verschiedene Telefonmodelle von den folgenden Herstellern automatisch provisionieren: + - Manufacturer.all.each do |manufacturer| + - if manufacturer != Manufacturer.last && manufacturer != Manufacturer.limit(Manufacturer.count - 1).last + = succeed ', ' do + =link_to link_to Haml::Engine.new("%i.icon-list").render + ' ' + manufacturer, manufacturer_path(manufacturer) + - elsif manufacturer == Manufacturer.limit(Manufacturer.count - 1).last + = succeed ' und ' do + =link_to link_to Haml::Engine.new("%i.icon-list").render + ' ' + manufacturer, manufacturer_path(manufacturer) + - else + = succeed '.' do + =link_to link_to Haml::Engine.new("%i.icon-list").render + ' ' + manufacturer, manufacturer_path(manufacturer) + + = render :partial => 'call_routes', :locals => {:tenant => tenant} + + = render :partial => 'gateways', :locals => {:tenant => tenant, :gateways => gateways} \ No newline at end of file diff --git a/app/views/tenants/_admin_area.en.html.haml b/app/views/tenants/_admin_area.en.html.haml new file mode 100644 index 0000000..4f0032c --- /dev/null +++ b/app/views/tenants/_admin_area.en.html.haml @@ -0,0 +1,40 @@ + +.row + .span12 + = render :partial => 'tenants/table_of_sip_accounts', :locals => {:tenant => tenant} + - if SipAccount.any? + = render :partial => 'tenants/table_of_phones', :locals => {:tenant => tenant} + + - if SipAccount.any? || Gateway.any? + = render :partial => 'tenants/table_of_conferences', :locals => {:tenant => tenant} + = render :partial => 'tenants/table_of_callthroughs', :locals => {:tenant => tenant} + = render :partial => 'tenants/table_of_hunt_groups', :locals => {:tenant => tenant} + = render :partial => 'tenants/table_of_automatic_call_distributors', :locals => {:tenant => tenant} + + = render :partial => 'tenants/users_table', :locals => {:tenant => tenant} + = render :partial => 'tenants/user_groups_table', :locals => {:tenant => tenant} + + = render :partial => 'tenants/table_of_phone_books', :locals => {:tenant => tenant} + + .well + %h2 Gemeinschaft Configuration + = render :partial => 'tenants/gs_parameter_table', :locals => {:tenant => tenant} + + %p + This system can provision a total of + = PhoneModel.count + different phone models of the following manufacturers: + - Manufacturer.all.each do |manufacturer| + - if manufacturer != Manufacturer.last && manufacturer != Manufacturer.limit(Manufacturer.count - 1).last + = succeed ', ' do + =link_to link_to Haml::Engine.new("%i.icon-list").render + ' ' + manufacturer, manufacturer_path(manufacturer) + - elsif manufacturer == Manufacturer.limit(Manufacturer.count - 1).last + = succeed ' and ' do + =link_to link_to Haml::Engine.new("%i.icon-list").render + ' ' + manufacturer, manufacturer_path(manufacturer) + - else + = succeed '.' do + =link_to link_to Haml::Engine.new("%i.icon-list").render + ' ' + manufacturer, manufacturer_path(manufacturer) + + = render :partial => 'call_routes', :locals => {:tenant => tenant} + + = render :partial => 'gateways', :locals => {:tenant => tenant, :gateways => gateways} \ No newline at end of file diff --git a/app/views/tenants/_admin_area.html.haml b/app/views/tenants/_admin_area.html.haml deleted file mode 100644 index 28a8273..0000000 --- a/app/views/tenants/_admin_area.html.haml +++ /dev/null @@ -1,40 +0,0 @@ - -.row - .span12 - = render :partial => 'tenants/table_of_sip_accounts', :locals => {:tenant => tenant} - - if SipAccount.any? - = render :partial => 'tenants/table_of_phones', :locals => {:tenant => tenant} - - - if SipAccount.any? || Gateway.any? - = render :partial => 'tenants/table_of_conferences', :locals => {:tenant => tenant} - = render :partial => 'tenants/table_of_callthroughs', :locals => {:tenant => tenant} - = render :partial => 'tenants/table_of_hunt_groups', :locals => {:tenant => tenant} - = render :partial => 'tenants/table_of_automatic_call_distributors', :locals => {:tenant => tenant} - - = render :partial => 'tenants/users_table', :locals => {:tenant => tenant} - = render :partial => 'tenants/user_groups_table', :locals => {:tenant => tenant} - - = render :partial => 'tenants/table_of_phone_books', :locals => {:tenant => tenant} - - .well - %h2 Gemeinschaft Konfiguration - = render :partial => 'tenants/gs_parameter_table', :locals => {:tenant => tenant} - - %p - Das System kann - = PhoneModel.count - verschiedene Telefonmodelle von den folgenden Herstellern verwalten: - - Manufacturer.all.each do |manufacturer| - - if manufacturer != Manufacturer.last && manufacturer != Manufacturer.limit(Manufacturer.count - 1).last - = succeed ', ' do - =link_to link_to Haml::Engine.new("%i.icon-list").render + ' ' + manufacturer, manufacturer_path(manufacturer) - - elsif manufacturer == Manufacturer.limit(Manufacturer.count - 1).last - = succeed ' und ' do - =link_to link_to Haml::Engine.new("%i.icon-list").render + ' ' + manufacturer, manufacturer_path(manufacturer) - - else - = succeed '.' do - =link_to link_to Haml::Engine.new("%i.icon-list").render + ' ' + manufacturer, manufacturer_path(manufacturer) - - = render :partial => 'call_routes', :locals => {:tenant => tenant} - - = render :partial => 'gateways', :locals => {:tenant => tenant, :gateways => gateways} \ No newline at end of file -- cgit v1.2.3 From c7389cb6f1a305bc7e5cfefd9548c1e1bf7b6018 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Tue, 5 Feb 2013 13:44:10 +0100 Subject: Bugfix --- app/models/backup_job.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'app') diff --git a/app/models/backup_job.rb b/app/models/backup_job.rb index d579b79..5149553 100644 --- a/app/models/backup_job.rb +++ b/app/models/backup_job.rb @@ -1,12 +1,12 @@ class BackupJob < ActiveRecord::Base attr_accessible :started_at, :finished_at, :state, :directory, :size_of_the_backup - after_save :start_the_backup + after_create :start_the_backup private def start_the_backup if self.finished_at.nil? - sh "backup perform --trigger gs5 --config_file #{Rails.root.join('config','backup.rb')}" + system "backup perform --trigger gs5 --config_file #{Rails.root.join('config','backup.rb')}" self.finished_at = Time.now self.save end -- cgit v1.2.3 From bcce809c6e628fb7c067437e98a5195c5e228532 Mon Sep 17 00:00:00 2001 From: spag Date: Tue, 5 Feb 2013 13:58:58 +0100 Subject: show dialplan variables --- app/controllers/call_routes_controller.rb | 66 ++++++++++++++++++++++++++ app/views/call_routes/show_variables.html.haml | 13 +++++ 2 files changed, 79 insertions(+) create mode 100644 app/views/call_routes/show_variables.html.haml (limited to 'app') diff --git a/app/controllers/call_routes_controller.rb b/app/controllers/call_routes_controller.rb index 3977132..60104eb 100644 --- a/app/controllers/call_routes_controller.rb +++ b/app/controllers/call_routes_controller.rb @@ -51,7 +51,13 @@ class CallRoutesController < ApplicationController def update @call_route = CallRoute.find(params[:id]) spread_breadcrumbs + + logger.error "ENDPOINT TYPE: #{params[:call_route][:endpoint_type]}" + logger.error "ENDPOINT ID: #{params[:call_route][:endpoint_id]}" + logger.error "ENDPOINT STR: #{params[:call_route][:endpoint_str]}" + if @call_route.update_attributes(call_route_parameter_params) + logger.error "CALL_ROUTE: #{@call_route.inspect}" redirect_to @call_route, :notice => t('call_routes.controller.successfuly_updated') else render :edit @@ -72,6 +78,20 @@ class CallRoutesController < ApplicationController render nothing: true end + def show_variables + @channel_variables = Hash.new() + file_name = '/var/log/freeswitch/variables' + if File.readable?(file_name) + File.readlines(file_name).each do |line| + key, delimeter, value = line.partition(': ') + key = to_channel_variable_name(key) + if !key.blank? + @channel_variables[key] = URI.unescape(value.gsub(/\n/, '')); + end + end + end + end + private def call_route_parameter_params params.require(:call_route).permit(:routing_table, :name, :endpoint_type, :endpoint_id, :position) @@ -84,4 +104,50 @@ class CallRoutesController < ApplicationController end end + def to_channel_variable_name(name) + variables_map = { + 'Channel-State' => 'state', + 'Channel-State-Number' => 'state_number', + 'Channel-Name' => 'channel_name', + 'Unique-ID' => 'uuid', + 'Call-Direction' => 'direction', + 'Answer-State' => 'state', + 'Channel-Read-Codec-Name' => 'read_codec', + 'Channel-Read-Codec-Rate' => 'read_rate', + 'Channel-Write-Codec-Name' => 'write_codec', + 'Channel-Write-Codec-Rate' => 'write_rate', + 'Caller-Username' => 'username', + 'Caller-Dialplan' => 'dialplan', + 'Caller-Caller-ID-Name' => 'caller_id_name', + 'Caller-Caller-ID-Number' => 'caller_id_number', + 'Caller-ANI' => 'ani', + 'Caller-ANI-II' => 'aniii', + 'Caller-Network-Addr' => 'network_addr', + 'Caller-Destination-Number' => 'destination_number', + 'Caller-Unique-ID' => 'uuid', + 'Caller-Source' => 'source', + 'Caller-Context' => 'context', + 'Caller-RDNIS' => 'rdnis', + 'Caller-Channel-Name' => 'channel_name', + 'Caller-Profile-Index' => 'profile_index', + 'Caller-Channel-Created-Time' => 'created_time', + 'Caller-Channel-Answered-Time' => 'answered_time', + 'Caller-Channel-Hangup-Time' => 'hangup_time', + 'Caller-Channel-Transfer-Time' => 'transfer_time', + 'Caller-Screen-Bit' => 'screen_bit', + 'Caller-Privacy-Hide-Name' => 'privacy_hide_name', + 'Caller-Privacy-Hide-Number' => 'privacy_hide_number', + } + + name = name.gsub(/[^a-zA-Z1-9_\-]/, '') + + if variables_map[name] + return variables_map[name] + elsif name.match(/^variable_/) + return name.gsub(/^variable_/, '') + end + + return nil + end + end diff --git a/app/views/call_routes/show_variables.html.haml b/app/views/call_routes/show_variables.html.haml new file mode 100644 index 0000000..4bec39d --- /dev/null +++ b/app/views/call_routes/show_variables.html.haml @@ -0,0 +1,13 @@ +%h3= 'Channel Variables' + +%table.table.table-striped + %thead + %tr + %th= 'Variable' + %th= 'Value' + + %tbody{ :id => "show_variables" } + - @channel_variables.each do |key, value| + %tr + %td= key + %td= value.gsub(/\n/, '
').html_safe -- cgit v1.2.3 From c7379b1b30043b5526aa3a5dc7f0111174a7f915 Mon Sep 17 00:00:00 2001 From: spag Date: Tue, 5 Feb 2013 14:05:40 +0100 Subject: loging removed --- app/controllers/call_routes_controller.rb | 5 ----- 1 file changed, 5 deletions(-) (limited to 'app') diff --git a/app/controllers/call_routes_controller.rb b/app/controllers/call_routes_controller.rb index 60104eb..2dcd648 100644 --- a/app/controllers/call_routes_controller.rb +++ b/app/controllers/call_routes_controller.rb @@ -52,12 +52,7 @@ class CallRoutesController < ApplicationController @call_route = CallRoute.find(params[:id]) spread_breadcrumbs - logger.error "ENDPOINT TYPE: #{params[:call_route][:endpoint_type]}" - logger.error "ENDPOINT ID: #{params[:call_route][:endpoint_id]}" - logger.error "ENDPOINT STR: #{params[:call_route][:endpoint_str]}" - if @call_route.update_attributes(call_route_parameter_params) - logger.error "CALL_ROUTE: #{@call_route.inspect}" redirect_to @call_route, :notice => t('call_routes.controller.successfuly_updated') else render :edit -- cgit v1.2.3 From 75b36967fed9db8268391ac10b02f5c0870c32ca Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Tue, 5 Feb 2013 15:11:56 +0100 Subject: Finetuning backup. --- app/models/ability.rb | 4 ++++ app/models/backup_job.rb | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'app') diff --git a/app/models/ability.rb b/app/models/ability.rb index 0d13dab..01f26aa 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -64,6 +64,10 @@ class Ability # cannot [:edit, :update], FaxDocument + # Backups can't be edited + # + cannot [:edit, :update], BackupJob + # Can manage GsNodes # can :manage, GsNode diff --git a/app/models/backup_job.rb b/app/models/backup_job.rb index 5149553..b0a588f 100644 --- a/app/models/backup_job.rb +++ b/app/models/backup_job.rb @@ -6,8 +6,9 @@ class BackupJob < ActiveRecord::Base private def start_the_backup if self.finished_at.nil? - system "backup perform --trigger gs5 --config_file #{Rails.root.join('config','backup.rb')}" + system "backup perform --trigger GS5 --config_file #{Rails.root.join('config','backup.rb')}" self.finished_at = Time.now + self.status = 'done' self.save end end -- cgit v1.2.3 From b1f9f3b2c39d31d0621da36420318406f33a1f92 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Tue, 5 Feb 2013 16:21:02 +0100 Subject: DelayedJob table upgrade. --- app/models/backup_job.rb | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'app') diff --git a/app/models/backup_job.rb b/app/models/backup_job.rb index b0a588f..a90726c 100644 --- a/app/models/backup_job.rb +++ b/app/models/backup_job.rb @@ -1,14 +1,25 @@ class BackupJob < ActiveRecord::Base attr_accessible :started_at, :finished_at, :state, :directory, :size_of_the_backup - after_create :start_the_backup + after_create :initiate_backup private - def start_the_backup - if self.finished_at.nil? + def initiate_backup + self.delay.make_a_backup + end + + def make_a_backup + if self.finished_at.nil? + original_directories = Dir.glob('/var/backups/GS5/*') system "backup perform --trigger GS5 --config_file #{Rails.root.join('config','backup.rb')}" - self.finished_at = Time.now - self.status = 'done' + self.directory = (Dir.glob('/var/backups/GS5/*') - original_directories).first + if self.directory.blank? + self.state = 'unsuccessful' + else + self.size_of_the_backup = (`du -hs #{new_directory}`).split(/\t/).first + self.finished_at = Time.now + self.state = 'successful' + end self.save end end -- cgit v1.2.3 From e5b247ccefe499f61bdadef186e34d03ded3035a Mon Sep 17 00:00:00 2001 From: Sascha Daniels Date: Wed, 6 Feb 2013 03:23:20 +0100 Subject: Stupid setting removed --- app/views/config_snom/show.xml.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app') diff --git a/app/views/config_snom/show.xml.haml b/app/views/config_snom/show.xml.haml index 53b300c..33204dc 100644 --- a/app/views/config_snom/show.xml.haml +++ b/app/views/config_snom/show.xml.haml @@ -42,7 +42,7 @@ %prefer_saved_over_received_photo{:perm => 'RW'}= 'off' %no_dnd{:perm => 'RW'}= 'off' %transfer_on_hangup{:perm => 'RW'}= 'on' - %transfer_on_hangup_non_pots{:perm => 'RW'}= 'on' + %transfer_on_hangup_non_pots{:perm => 'RW'}= 'off' %call_join_xfer{:perm => 'RW'}= 'on' %conf_hangup{:perm => 'RW'}= 'on' %logon_wizard{:perm => 'RW'}= 'off' -- cgit v1.2.3 From 3edd6e58ea3f5d25068ea9d47f639ae89e5f2c0c Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Wed, 6 Feb 2013 11:07:04 +0100 Subject: Improved the backup. --- app/models/backup_job.rb | 23 ++++++++++++++++++++--- app/views/backup_jobs/_index_core.html.haml | 19 +++++++++++++++---- app/views/backup_jobs/show.html.haml | 2 +- 3 files changed, 36 insertions(+), 8 deletions(-) (limited to 'app') diff --git a/app/models/backup_job.rb b/app/models/backup_job.rb index a90726c..c9bde2b 100644 --- a/app/models/backup_job.rb +++ b/app/models/backup_job.rb @@ -1,26 +1,43 @@ class BackupJob < ActiveRecord::Base attr_accessible :started_at, :finished_at, :state, :directory, :size_of_the_backup + before_create :set_state_to_queued after_create :initiate_backup + after_destroy :delete_the_backup_directory private + def set_state_to_queued + self.state = 'queued' + self.started_at = Time.now + end + def initiate_backup self.delay.make_a_backup end def make_a_backup - if self.finished_at.nil? + if self.finished_at.nil? && self.state == 'queued' + self.state = 'running' + self.save original_directories = Dir.glob('/var/backups/GS5/*') system "backup perform --trigger GS5 --config_file #{Rails.root.join('config','backup.rb')}" self.directory = (Dir.glob('/var/backups/GS5/*') - original_directories).first if self.directory.blank? - self.state = 'unsuccessful' + self.state = 'failed' else - self.size_of_the_backup = (`du -hs #{new_directory}`).split(/\t/).first + file = File::Stat.new(self.directory) + self.size_of_the_backup = file.size self.finished_at = Time.now self.state = 'successful' end self.save end end + + def delete_the_backup_directory + if !self.directory.blank? + require 'fileutils' + FileUtils.rm_rf self.directory + end + end end diff --git a/app/views/backup_jobs/_index_core.html.haml b/app/views/backup_jobs/_index_core.html.haml index 6babf3e..a1bf0d0 100644 --- a/app/views/backup_jobs/_index_core.html.haml +++ b/app/views/backup_jobs/_index_core.html.haml @@ -8,10 +8,21 @@ - for backup_job in backup_jobs - %tr - %td= backup_job.started_at - %td= backup_job.finished_at + - if backup_job.state == 'queued' + - row_marker = 'warning' + - else + - if backup_job.state == 'failed' + - row_marker = 'error' + - else + - row_marker = '' + %tr{:class => row_marker} + %td + - if backup_job.finished_at.blank? + = time_ago_in_words(backup_job.finished_at) + - else + = l backup_job.started_at, :format => :short + %td= l backup_job.finished_at, :format => :short %td= backup_job.state %td= backup_job.directory - %td= backup_job.size_of_the_backup + %td= number_to_human_size(backup_job.size_of_the_backup, :precision => 2) =render :partial => 'shared/index_view_edit_destroy_part', :locals => {:child => backup_job} \ No newline at end of file diff --git a/app/views/backup_jobs/show.html.haml b/app/views/backup_jobs/show.html.haml index 7f021bb..65091b8 100644 --- a/app/views/backup_jobs/show.html.haml +++ b/app/views/backup_jobs/show.html.haml @@ -14,6 +14,6 @@ = @backup_job.directory %p %strong= t('backup_jobs.show.size_of_the_backup') + ":" - = @backup_job.size_of_the_backup + = number_to_human_size(@backup_job.size_of_the_backup, :precision => 2) = render :partial => 'shared/show_edit_destroy_part', :locals => { :child => @backup_job } \ No newline at end of file -- cgit v1.2.3 From 16a2074982644614f3ef13c15681b5c89feb586b Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Wed, 6 Feb 2013 11:24:14 +0100 Subject: HTML fix. --- app/views/backup_jobs/_index_core.html.haml | 1 + 1 file changed, 1 insertion(+) (limited to 'app') diff --git a/app/views/backup_jobs/_index_core.html.haml b/app/views/backup_jobs/_index_core.html.haml index a1bf0d0..aceeb5b 100644 --- a/app/views/backup_jobs/_index_core.html.haml +++ b/app/views/backup_jobs/_index_core.html.haml @@ -5,6 +5,7 @@ %th= t('backup_jobs.index.state') %th= t('backup_jobs.index.directory') %th= t('backup_jobs.index.size_of_the_backup') + %th{:colspan => '2'} - for backup_job in backup_jobs -- cgit v1.2.3 From c26e4b9d27218378f34175ac3410eab5b12a5713 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Wed, 6 Feb 2013 12:19:23 +0100 Subject: View improvements. --- app/views/backup_jobs/_index_core.html.haml | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'app') diff --git a/app/views/backup_jobs/_index_core.html.haml b/app/views/backup_jobs/_index_core.html.haml index aceeb5b..a706424 100644 --- a/app/views/backup_jobs/_index_core.html.haml +++ b/app/views/backup_jobs/_index_core.html.haml @@ -3,7 +3,6 @@ %th= t('backup_jobs.index.started_at') %th= t('backup_jobs.index.finished_at') %th= t('backup_jobs.index.state') - %th= t('backup_jobs.index.directory') %th= t('backup_jobs.index.size_of_the_backup') %th{:colspan => '2'} @@ -17,13 +16,16 @@ - else - row_marker = '' %tr{:class => row_marker} - %td - - if backup_job.finished_at.blank? - = time_ago_in_words(backup_job.finished_at) - - else + - if backup_job.finished_at.blank? + %td{:colspan => '2'} + = time_ago_in_words(backup_job.started_at) + - else + %td = l backup_job.started_at, :format => :short - %td= l backup_job.finished_at, :format => :short + %td + = l backup_job.finished_at, :format => :short %td= backup_job.state - %td= backup_job.directory - %td= number_to_human_size(backup_job.size_of_the_backup, :precision => 2) + %td + - if !backup_job.size_of_the_backup.blank? + = number_to_human_size(backup_job.size_of_the_backup, :precision => 2) =render :partial => 'shared/index_view_edit_destroy_part', :locals => {:child => backup_job} \ No newline at end of file -- cgit v1.2.3 From 07d49f54067cfb8666f650323c7ffefe1e860b24 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Wed, 6 Feb 2013 16:03:43 +0100 Subject: Use CarrierWave to store the backup file. --- app/models/backup_job.rb | 27 ++++++++++++----- app/uploaders/backup_file_uploader.rb | 55 +++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+), 8 deletions(-) create mode 100644 app/uploaders/backup_file_uploader.rb (limited to 'app') diff --git a/app/models/backup_job.rb b/app/models/backup_job.rb index c9bde2b..c1f12e4 100644 --- a/app/models/backup_job.rb +++ b/app/models/backup_job.rb @@ -1,6 +1,8 @@ class BackupJob < ActiveRecord::Base attr_accessible :started_at, :finished_at, :state, :directory, :size_of_the_backup + mount_uploader :backup_file, BackupFileUploader + before_create :set_state_to_queued after_create :initiate_backup after_destroy :delete_the_backup_directory @@ -16,17 +18,26 @@ class BackupJob < ActiveRecord::Base end def make_a_backup + backup_directory = '/var/backups/GS5' + backup_name_prefix = 'GS5-backup-' if self.finished_at.nil? && self.state == 'queued' self.state = 'running' self.save - original_directories = Dir.glob('/var/backups/GS5/*') + original_directories = Dir.glob("#{backup_directory}/*") system "backup perform --trigger GS5 --config_file #{Rails.root.join('config','backup.rb')}" - self.directory = (Dir.glob('/var/backups/GS5/*') - original_directories).first - if self.directory.blank? + tmp_backup_directory = (Dir.glob("#{backup_directory}/*") - original_directories).first + if tmp_backup_directory.blank? self.state = 'failed' else - file = File::Stat.new(self.directory) + system "cd #{backup_directory} && tar czf #{backup_name_prefix}#{tmp_backup_directory}.tar.gz #{tmp_backup_directory}" + require 'fileutils' + FileUtils.rm_rf tmp_backup_directory + file = File::Stat.new("#{backup_directory}/#{backup_name_prefix}#{tmp_backup_directory}.tar.gz") + self.size_of_the_backup = file.size + + self.backup_file = File.open("#{backup_directory}/#{backup_name_prefix}#{tmp_backup_directory}.tar.gz") + self.finished_at = Time.now self.state = 'successful' end @@ -35,9 +46,9 @@ class BackupJob < ActiveRecord::Base end def delete_the_backup_directory - if !self.directory.blank? - require 'fileutils' - FileUtils.rm_rf self.directory - end + # if !tmp_backup_directory.blank? + # require 'fileutils' + # FileUtils.rm_rf tmp_backup_directory + # end end end diff --git a/app/uploaders/backup_file_uploader.rb b/app/uploaders/backup_file_uploader.rb new file mode 100644 index 0000000..8b126a9 --- /dev/null +++ b/app/uploaders/backup_file_uploader.rb @@ -0,0 +1,55 @@ +# encoding: utf-8 + +class BackupFileUploader < CarrierWave::Uploader::Base + + # Include RMagick or MiniMagick support: + # include CarrierWave::RMagick + # include CarrierWave::MiniMagick + + # Include the Sprockets helpers for Rails 3.1+ asset pipeline compatibility: + # include Sprockets::Helpers::RailsHelper + # include Sprockets::Helpers::IsolatedHelper + + # Choose what kind of storage to use for this uploader: + storage :file + # storage :fog + + # Override the directory where uploaded files will be stored. + # This is a sensible default for uploaders that are meant to be mounted: + def store_dir + "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" + end + + # Provide a default URL as a default if there hasn't been a file uploaded: + # def default_url + # # For Rails 3.1+ asset pipeline compatibility: + # # asset_path("fallback/" + [version_name, "default.png"].compact.join('_')) + # + # "/images/fallback/" + [version_name, "default.png"].compact.join('_') + # end + + # Process files as they are uploaded: + # process :scale => [200, 300] + # + # def scale(width, height) + # # do something + # end + + # Create different versions of your uploaded files: + # version :thumb do + # process :scale => [50, 50] + # end + + # Add a white list of extensions which are allowed to be uploaded. + # For images you might use something like this: + # def extension_white_list + # %w(jpg jpeg gif png) + # end + + # Override the filename of the uploaded files: + # Avoid using model.id or version_name here, see uploader/store.rb for details. + # def filename + # "something.jpg" if original_filename + # end + +end -- cgit v1.2.3 From 72f100c680ddcf9c36448ae3ee367eab19052adc Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Thu, 7 Feb 2013 09:27:43 +0100 Subject: Use CarrierWave to store the tar.gz. Removed size_of_the_backup attribute. --- app/models/backup_job.rb | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) (limited to 'app') diff --git a/app/models/backup_job.rb b/app/models/backup_job.rb index c1f12e4..78d95a7 100644 --- a/app/models/backup_job.rb +++ b/app/models/backup_job.rb @@ -5,7 +5,6 @@ class BackupJob < ActiveRecord::Base before_create :set_state_to_queued after_create :initiate_backup - after_destroy :delete_the_backup_directory private def set_state_to_queued @@ -29,14 +28,14 @@ class BackupJob < ActiveRecord::Base if tmp_backup_directory.blank? self.state = 'failed' else - system "cd #{backup_directory} && tar czf #{backup_name_prefix}#{tmp_backup_directory}.tar.gz #{tmp_backup_directory}" + system "cd #{backup_directory} && tar czf #{backup_name_prefix}#{File.basename(tmp_backup_directory)}.tar.gz #{File.basename(tmp_backup_directory)}" require 'fileutils' FileUtils.rm_rf tmp_backup_directory - file = File::Stat.new("#{backup_directory}/#{backup_name_prefix}#{tmp_backup_directory}.tar.gz") + file = File::Stat.new("#{backup_directory}/#{backup_name_prefix}#{File.basename(tmp_backup_directory)}.tar.gz") - self.size_of_the_backup = file.size + self.directory = File.basename(tmp_backup_directory) - self.backup_file = File.open("#{backup_directory}/#{backup_name_prefix}#{tmp_backup_directory}.tar.gz") + self.backup_file = File.open("#{backup_directory}/#{backup_name_prefix}#{File.basename(tmp_backup_directory)}.tar.gz") self.finished_at = Time.now self.state = 'successful' @@ -45,10 +44,4 @@ class BackupJob < ActiveRecord::Base end end - def delete_the_backup_directory - # if !tmp_backup_directory.blank? - # require 'fileutils' - # FileUtils.rm_rf tmp_backup_directory - # end - end end -- cgit v1.2.3 From 5e8237d8a8cf17009189fcf0259fb1b8a50ab429 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Thu, 7 Feb 2013 10:49:01 +0100 Subject: Bugfixes. --- app/models/backup_job.rb | 2 +- app/views/backup_jobs/_form_core.html.haml | 1 - app/views/backup_jobs/_index_core.html.haml | 4 ++-- app/views/backup_jobs/show.html.haml | 3 ++- 4 files changed, 5 insertions(+), 5 deletions(-) (limited to 'app') diff --git a/app/models/backup_job.rb b/app/models/backup_job.rb index 78d95a7..8bb7959 100644 --- a/app/models/backup_job.rb +++ b/app/models/backup_job.rb @@ -1,5 +1,5 @@ class BackupJob < ActiveRecord::Base - attr_accessible :started_at, :finished_at, :state, :directory, :size_of_the_backup + attr_accessible :started_at, :finished_at, :state, :directory mount_uploader :backup_file, BackupFileUploader diff --git a/app/views/backup_jobs/_form_core.html.haml b/app/views/backup_jobs/_form_core.html.haml index 536fb18..9d439c5 100644 --- a/app/views/backup_jobs/_form_core.html.haml +++ b/app/views/backup_jobs/_form_core.html.haml @@ -3,4 +3,3 @@ = f.input :finished_at, :label => t('backup_jobs.form.finished_at.label'), :hint => conditional_hint('backup_jobs.form.finished_at.hint') = f.input :state, :label => t('backup_jobs.form.state.label'), :hint => conditional_hint('backup_jobs.form.state.hint') = f.input :directory, :label => t('backup_jobs.form.directory.label'), :hint => conditional_hint('backup_jobs.form.directory.hint') - = f.input :size_of_the_backup, :label => t('backup_jobs.form.size_of_the_backup.label'), :hint => conditional_hint('backup_jobs.form.size_of_the_backup.hint') diff --git a/app/views/backup_jobs/_index_core.html.haml b/app/views/backup_jobs/_index_core.html.haml index a706424..9eebefd 100644 --- a/app/views/backup_jobs/_index_core.html.haml +++ b/app/views/backup_jobs/_index_core.html.haml @@ -26,6 +26,6 @@ = l backup_job.finished_at, :format => :short %td= backup_job.state %td - - if !backup_job.size_of_the_backup.blank? - = number_to_human_size(backup_job.size_of_the_backup, :precision => 2) + - if backup_job.backup_file? + = number_to_human_size(backup_job.backup_file.size, :precision => 2) =render :partial => 'shared/index_view_edit_destroy_part', :locals => {:child => backup_job} \ No newline at end of file diff --git a/app/views/backup_jobs/show.html.haml b/app/views/backup_jobs/show.html.haml index 65091b8..5d85bbc 100644 --- a/app/views/backup_jobs/show.html.haml +++ b/app/views/backup_jobs/show.html.haml @@ -14,6 +14,7 @@ = @backup_job.directory %p %strong= t('backup_jobs.show.size_of_the_backup') + ":" - = number_to_human_size(@backup_job.size_of_the_backup, :precision => 2) + - if @backup_job.backup_file? + = number_to_human_size(@backup_job.backup_file.size, :precision => 2) = render :partial => 'shared/show_edit_destroy_part', :locals => { :child => @backup_job } \ No newline at end of file -- cgit v1.2.3 From 515dcaf96c05e4b5d6aaaf4ff1e438ebf9a3c56a Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Thu, 7 Feb 2013 14:30:21 +0100 Subject: Breadcrumbs for BackupJobs. --- app/controllers/backup_jobs_controller.rb | 32 +++++++++++++++---------------- app/models/backup_job.rb | 4 ++++ 2 files changed, 19 insertions(+), 17 deletions(-) (limited to 'app') diff --git a/app/controllers/backup_jobs_controller.rb b/app/controllers/backup_jobs_controller.rb index e500f4c..4f242ba 100644 --- a/app/controllers/backup_jobs_controller.rb +++ b/app/controllers/backup_jobs_controller.rb @@ -1,10 +1,14 @@ class BackupJobsController < ApplicationController + load_and_authorize_resource :backup_job + + before_filter :spread_breadcrumbs + def index - @backup_jobs = BackupJob.all + # @backup_jobs = BackupJob.all end def show - @backup_job = BackupJob.find(params[:id]) + # @backup_job = BackupJob.find(params[:id]) end def new @@ -12,7 +16,6 @@ class BackupJobsController < ApplicationController end def create -# @backup_job = BackupJob.new(params[:backup_job]) @backup_job = BackupJob.new(:started_at => Time.now) if @backup_job.save @@ -22,22 +25,17 @@ class BackupJobsController < ApplicationController end end - # def edit - # @backup_job = BackupJob.find(params[:id]) - # end - - # def update - # @backup_job = BackupJob.find(params[:id]) - # if @backup_job.update_attributes(params[:backup_job]) - # redirect_to @backup_job, :notice => t('backup_jobs.controller.successfuly_updated') - # else - # render :edit - # end - # end - def destroy - @backup_job = BackupJob.find(params[:id]) + # @backup_job = BackupJob.find(params[:id]) @backup_job.destroy redirect_to backup_jobs_url, :notice => t('backup_jobs.controller.successfuly_destroyed') end + + private + def spread_breadcrumbs + add_breadcrumb t("backup_jobs.index.page_title"), backup_jobs_path + if @backup_job && !@backup_job.new_record? + add_breadcrumb @backup_job, @backup_job + end + end end diff --git a/app/models/backup_job.rb b/app/models/backup_job.rb index 8bb7959..96574a7 100644 --- a/app/models/backup_job.rb +++ b/app/models/backup_job.rb @@ -6,6 +6,10 @@ class BackupJob < ActiveRecord::Base before_create :set_state_to_queued after_create :initiate_backup + def to_s + self.started_at.to_s + end + private def set_state_to_queued self.state = 'queued' -- cgit v1.2.3 From 50f1c25d6ae641e48d29cc4a6742dd12ce60d4a9 Mon Sep 17 00:00:00 2001 From: spag Date: Thu, 7 Feb 2013 15:13:14 +0100 Subject: dtmf routing table added --- app/models/call_route.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app') diff --git a/app/models/call_route.rb b/app/models/call_route.rb index 1c3f70a..6e0dcab 100644 --- a/app/models/call_route.rb +++ b/app/models/call_route.rb @@ -2,7 +2,7 @@ class CallRoute < ActiveRecord::Base # https://github.com/rails/strong_parameters include ActiveModel::ForbiddenAttributesProtection - ROUTING_TABLES = ['prerouting', 'outbound', 'inbound'] + ROUTING_TABLES = ['prerouting', 'outbound', 'inbound', 'dtmf'] has_many :route_elements, :dependent => :destroy -- cgit v1.2.3 From cd909970e8443ca86ad0be09b26cf5fb616ea303 Mon Sep 17 00:00:00 2001 From: spag Date: Fri, 8 Feb 2013 10:06:34 +0100 Subject: softkey.softkey_function vs. softkey.function --- app/views/softkeys/_form_core.html.haml | 2 +- app/views/softkeys/_index_core.html.haml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'app') diff --git a/app/views/softkeys/_form_core.html.haml b/app/views/softkeys/_form_core.html.haml index b833aad..2863d5c 100644 --- a/app/views/softkeys/_form_core.html.haml +++ b/app/views/softkeys/_form_core.html.haml @@ -7,6 +7,6 @@ .inputs = f.input :softkey_function_id, :as => :select, :collection => @softkey_functions.map {|x| [I18n.t("softkeys.functions.#{x}"), x.id] }, :label => t('softkeys.form.function.label'), :hint => conditional_hint('softkeys.form.function.hint'), :include_blank => false - if @available_call_forwards && @available_call_forwards.count > 0 - = f.association :call_forward, :collection => @available_call_forwards, :label => t('softkeys.form.call_forward.label'), :hint => conditional_hint('softkeys.form.call_forward.hint'), :include_blank => false + = f.association :softkeyable, :collection => @available_call_forwards, :label => t('softkeys.form.call_forward.label'), :hint => conditional_hint('softkeys.form.call_forward.hint'), :include_blank => false = f.input :number, :label => t('softkeys.form.number.label'), :hint => conditional_hint('softkeys.form.number.hint') = f.input :label, :label => t('softkeys.form.label.label'), :hint => conditional_hint('softkeys.form.label.hint') diff --git a/app/views/softkeys/_index_core.html.haml b/app/views/softkeys/_index_core.html.haml index e2cb16c..4a06c72 100644 --- a/app/views/softkeys/_index_core.html.haml +++ b/app/views/softkeys/_index_core.html.haml @@ -15,7 +15,7 @@ - if softkeys.count > 1 %span.handle %i.icon-resize-vertical - %td= softkey.function + %td= t("softkeys.functions.#{softkey.softkey_function}") %td= softkey.number %td= softkey.label =render :partial => 'shared/index_view_edit_destroy_part', :locals => {:parent => softkey.sip_account, :child => softkey} \ No newline at end of file -- cgit v1.2.3 From 9e723519982c3b442aa90f3728bfddd4025d4a69 Mon Sep 17 00:00:00 2001 From: spag Date: Fri, 8 Feb 2013 10:41:18 +0100 Subject: softkey-call_forward relation polymorphic --- app/controllers/config_siemens_controller.rb | 12 ++++++-- app/controllers/config_snom_controller.rb | 44 +++++++++++++++++++++------- app/models/call_forward.rb | 2 +- app/models/softkey.rb | 19 ++++-------- app/views/gs_nodes/sync.xml.haml | 2 +- app/views/softkeys/show.html.haml | 4 +-- 6 files changed, 53 insertions(+), 30 deletions(-) (limited to 'app') diff --git a/app/controllers/config_siemens_controller.rb b/app/controllers/config_siemens_controller.rb index b7fa107..bbeba46 100644 --- a/app/controllers/config_siemens_controller.rb +++ b/app/controllers/config_siemens_controller.rb @@ -610,15 +610,21 @@ class ConfigSiemensController < ApplicationController @new_settings << ['stimulus-led-control-uri', key_idx, '' ] @new_settings << ['stimulus-DTMF-sequence', key_idx, '' ] when 'call_forwarding' + if sk.softkeyable.class == CallForward then @new_settings << ['function-key-def', key_idx, '63'] - @new_settings << ['stimulus-led-control-uri', key_idx, "f-cftg-#{sk.call_forward_id}" ] + @new_settings << ['stimulus-led-control-uri', key_idx, "f-cftg-#{sk.softkeyable.id}" ] @new_settings << ['send-url-address', key_idx, request.host] @new_settings << ['send-url-protocol', key_idx, 3] @new_settings << ['send-url-port', key_idx, '80'] @new_settings << ['send-url-path', key_idx, "/config_siemens/#{@phone.id}/#{@sip_account.id}/call_forwarding.xml"] - @new_settings << ['send-url-query', key_idx, "id=#{sk.call_forward_id}&function=toggle"] + @new_settings << ['send-url-query', key_idx, "id=#{sk.softkeyable.id}&function=toggle"] @new_settings << ['send-url-method', key_idx, '0'] @new_settings << ['blf-popup', key_idx, 'false'] + else + @new_settings << ['function-key-def', key_idx, '0'] + @new_settings << ['stimulus-led-control-uri', key_idx, '' ] + @new_settings << ['stimulus-DTMF-sequence', key_idx, '' ] + end when 'call_forwarding_always' phone_number = PhoneNumber.where(:number => sk.number, :phone_numberable_type => 'SipAccount').first if phone_number @@ -887,7 +893,7 @@ class ConfigSiemensController < ApplicationController if @call_forwarding_id call_forwarding = @sip_account.call_forwards.where(:id => @call_forwarding_id).first - if !call_forwarding and @sip_account.softkeys.where(:call_forward_id => @call_forwarding_id).count > 0 + if !call_forwarding and @sip_account.softkeys.where(:softkeyable_id => @call_forwarding_id, :softkeyable_type => 'CallForward').count > 0 call_forwarding = CallForward.where(:id => @call_forwarding_id).first end diff --git a/app/controllers/config_snom_controller.rb b/app/controllers/config_snom_controller.rb index 33b63da..58cced2 100644 --- a/app/controllers/config_snom_controller.rb +++ b/app/controllers/config_snom_controller.rb @@ -282,23 +282,47 @@ class ConfigSnomController < ApplicationController @softkeys.push({:context => sip_account_index, :label => softkey.label, :data => "speed f-li-#{softkey.number}"}) when 'conference' @softkeys.push({:context => sip_account_index, :label => softkey.label, :data => "blf |f-ta-"}) - when 'call_forwarding' + when 'call_parking' @softkeys.push({ :context => sip_account_index, - :function => softkey.function, + :function => softkey.softkey_function.name, :label => softkey.label, :softkey => softkey, :general_type => t("softkeys.functions.#{softkey.softkey_function.name}"), :subscription => { - :to => "f-cftg-#{softkey.call_forward_id}@#{sip_account.host}", + :to => "park+#{@softkeys.softkeyable_id}@#{sip_account.host}", :for => "#{sip_account.auth_name}@#{sip_account.host}" }, :actions => [{ - :type => :url, - :target => "#{request.protocol}#{request.host_with_port}/config_snom/#{@phone.id}/#{snom_sip_account[:id]}/call_forwarding.xml?id=#{softkey.call_forward_id}&function=toggle", + :type => :dial, + :target => "f-tpark-#{@softkeys.softkeyable_id}", + :when => 'on press', + :states => 'connected,holding', + },{ + :type => :dial, + :target => "f-park-#{@softkeys.softkeyable_id}", :when => 'on press', }], }) + when 'call_forwarding' + if softkey.softkeyable.class == CallForward then + @softkeys.push({ + :context => sip_account_index, + :function => softkey.softkey_function.name, + :label => softkey.label, + :softkey => softkey, + :general_type => t("softkeys.functions.#{softkey.softkey_function.name}"), + :subscription => { + :to => "f-cftg-#{softkey.softkeyable_id}@#{sip_account.host}", + :for => "#{sip_account.auth_name}@#{sip_account.host}" + }, + :actions => [{ + :type => :url, + :target => "#{request.protocol}#{request.host_with_port}/config_snom/#{@phone.id}/#{snom_sip_account[:id]}/call_forwarding.xml?id=#{softkey.softkeyable_id}&function=toggle", + :when => 'on press', + }], + }) + end when 'call_forwarding_always' phone_number = PhoneNumber.where(:number => softkey.number, :phone_numberable_type => 'SipAccount').first if phone_number @@ -310,7 +334,7 @@ class ConfigSnomController < ApplicationController @softkeys.push({ :context => sip_account_index, - :function => softkey.function, + :function => softkey.softkey_function.name, :label => softkey.label, :softkey => softkey, :general_type => t("softkeys.functions.#{softkey.softkey_function.name}"), @@ -335,7 +359,7 @@ class ConfigSnomController < ApplicationController @softkeys.push({ :context => sip_account_index, - :function => softkey.function, + :function => softkey.softkey_function.name, :label => softkey.label, :softkey => softkey, :general_type => t("softkeys.functions.#{softkey.softkey_function.name}"), @@ -375,7 +399,7 @@ class ConfigSnomController < ApplicationController if hunt_group_member @softkeys.push({ :context => sip_account_index, - :function => softkey.function, + :function => softkey.softkey_function.name, :label => softkey.label, :softkey => softkey, :general_type => t("softkeys.functions.#{softkey.softkey_function.name}"), @@ -405,7 +429,7 @@ class ConfigSnomController < ApplicationController if acd_agent @softkeys.push({ :context => sip_account_index, - :function => softkey.function, + :function => softkey.softkey_function.name, :label => softkey.label, :softkey => softkey, :general_type => t("softkeys.functions.#{softkey.softkey_function.name}"), @@ -924,7 +948,7 @@ AAAA' if @call_forwarding_id call_forwarding = @sip_account.call_forwards.where(:id => @call_forwarding_id).first - if !call_forwarding and @sip_account.softkeys.where(:call_forward_id => @call_forwarding_id).count > 0 + if !call_forwarding and @sip_account.softkeys.where(:softkeyable_id => @call_forwarding_id, :softkeyable_type => 'CallForward').count > 0 call_forwarding = CallForward.where(:id => @call_forwarding_id).first end diff --git a/app/models/call_forward.rb b/app/models/call_forward.rb index 8a8d1df..c668993 100644 --- a/app/models/call_forward.rb +++ b/app/models/call_forward.rb @@ -145,7 +145,7 @@ class CallForward < ActiveRecord::Base softkey_function_deactivated = SoftkeyFunction.find_by_name('deactivated') self.softkeys.each do |softkey| if softkey.softkey_function_id != softkey_function_deactivated.id - softkey.update_attributes(:call_forward_id => nil, :softkey_function_id => softkey_function_deactivated.id) + softkey.update_attributes(:softkeyable_id => nil, :softkeyable_type => nil, :softkey_function_id => softkey_function_deactivated.id) end end end diff --git a/app/models/softkey.rb b/app/models/softkey.rb index a709036..f038acd 100644 --- a/app/models/softkey.rb +++ b/app/models/softkey.rb @@ -1,13 +1,11 @@ class Softkey < ActiveRecord::Base - attr_accessible :softkey_function_id, :number, :label, :call_forward_id, :uuid + attr_accessible :softkey_function_id, :number, :label, :uuid, :softkeyable_type, :softkeyable_id belongs_to :sip_account belongs_to :softkey_function - belongs_to :call_forward + belongs_to :softkeyable, :polymorphic => true - # Any CallForward BLF must have a valid softkey_call_forward_id. - # - validates_presence_of :call_forward_id, :if => Proc.new{ |softkey| self.softkey_function_id != nil && + validates_presence_of :softkeyable_id, :if => Proc.new{ |softkey| self.softkey_function_id != nil && self.softkey_function_id == SoftkeyFunction.find_by_name('call_forwarding').try(:id) } # These functions need a number to act. @@ -21,7 +19,6 @@ class Softkey < ActiveRecord::Base acts_as_list :scope => :sip_account before_validation :clean_up_and_leave_only_values_which_make_sense_for_the_current_softkey_function_id - after_validation :save_function_name_in_function, :if => Proc.new{ |softkey| self.call_forward_id.blank? } after_save :resync_phone after_destroy :resync_phone @@ -52,7 +49,7 @@ class Softkey < ActiveRecord::Base def to_s if (['call_forwarding'].include?(self.softkey_function.name)) - "#{self.call_forward}" + "#{self.softkeyable}" else if ['log_out', 'log_in'].include?(self.softkey_function.name) I18n.t("softkeys.functions.#{self.softkey_function.name}") @@ -78,18 +75,14 @@ class Softkey < ActiveRecord::Base end private - - def save_function_name_in_function - self.function = self.softkey_function.name - end - # Make sure that no number is set when there is no need for one. # And make sure that there is no CallForward connected when not needed. # def clean_up_and_leave_only_values_which_make_sense_for_the_current_softkey_function_id if self.softkey_function_id != nil if ['blf','speed_dial','dtmf','conference'].include?(self.softkey_function.name) - self.call_forward_id = nil + self.softkeyable_id = nil + self.softkeyable_type = nil end if ['call_forwarding'].include?(self.softkey_function.name) self.number = nil diff --git a/app/views/gs_nodes/sync.xml.haml b/app/views/gs_nodes/sync.xml.haml index 0f097f8..a2fa71a 100644 --- a/app/views/gs_nodes/sync.xml.haml +++ b/app/views/gs_nodes/sync.xml.haml @@ -60,7 +60,7 @@ - if !@softkeys.blank? %softkeys - @softkeys.each do |softkey| - %softkey{ :uuid => softkey.uuid, :function => softkey.softkey_function.try(:name), :number => softkey.number, :label => softkey.label, :position => softkey.position, :created_at => softkey.created_at, :updated_at => softkey.updated_at, :sip_account_uuid => softkey.sip_account.try(:uuid), :call_forward_uuid => softkey.call_forward.try(:uuid) } + %softkey{ :uuid => softkey.uuid, :function => softkey.softkey_function.try(:name), :number => softkey.number, :label => softkey.label, :position => softkey.position, :created_at => softkey.created_at, :updated_at => softkey.updated_at, :sip_account_uuid => softkey.sip_account.try(:uuid), :softkeyable_uuid => softkey.softkeyable.try(:uuid), :softkeyable_type => softkey.softkeyable_type) } - if !@ringtones.blank? %ringtones diff --git a/app/views/softkeys/show.html.haml b/app/views/softkeys/show.html.haml index d0db111..7c068ae 100644 --- a/app/views/softkeys/show.html.haml +++ b/app/views/softkeys/show.html.haml @@ -1,7 +1,7 @@ - content_for :title, t("softkeys.show.page_title") %p - %strong= t('softkeys.show.function') + ":" + %strong= t("softkeys.functions.#{@softkey.softkey_function}") + ":" =@softkey.to_s -= render :partial => 'shared/show_edit_destroy_part', :locals => { :parent => @softkey.sip_account, :child => @softkey } \ No newline at end of file += render :partial => 'shared/show_edit_destroy_part', :locals => { :parent => @softkey.sip_account, :child => @softkey } -- cgit v1.2.3 From 901eb1ce8bdbfcd85678e06086cce5a0d7b50123 Mon Sep 17 00:00:00 2001 From: spag Date: Fri, 8 Feb 2013 11:51:55 +0100 Subject: set softkeyable --- app/models/softkey.rb | 1 + 1 file changed, 1 insertion(+) (limited to 'app') diff --git a/app/models/softkey.rb b/app/models/softkey.rb index f038acd..3ae7e95 100644 --- a/app/models/softkey.rb +++ b/app/models/softkey.rb @@ -85,6 +85,7 @@ class Softkey < ActiveRecord::Base self.softkeyable_type = nil end if ['call_forwarding'].include?(self.softkey_function.name) + self.softkeyable = CallForward.where(:id => self.softkeyable_id).first self.number = nil end end -- cgit v1.2.3 From af5179a4a59bc21467448f292c752082dd8927b8 Mon Sep 17 00:00:00 2001 From: spag Date: Fri, 8 Feb 2013 12:06:16 +0100 Subject: set softkeyable --- app/models/softkey.rb | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'app') diff --git a/app/models/softkey.rb b/app/models/softkey.rb index 3ae7e95..83c88ab 100644 --- a/app/models/softkey.rb +++ b/app/models/softkey.rb @@ -79,14 +79,18 @@ class Softkey < ActiveRecord::Base # And make sure that there is no CallForward connected when not needed. # def clean_up_and_leave_only_values_which_make_sense_for_the_current_softkey_function_id - if self.softkey_function_id != nil - if ['blf','speed_dial','dtmf','conference'].include?(self.softkey_function.name) - self.softkeyable_id = nil - self.softkeyable_type = nil - end - if ['call_forwarding'].include?(self.softkey_function.name) + if self.softkey_function_id != nil + case self.softkey_function.name + when 'blf' + self.softkeyable = PhoneNumber.where(:number => self.number, :phone_numberable_type => 'SipAccount').first.try(:phone_numberable) + when 'conference' + self.softkeyable = PhoneNumber.where(:number => self.number, :phone_numberable_type => 'Conference').first.try(:phone_numberable) + when 'call_forwarding' self.softkeyable = CallForward.where(:id => self.softkeyable_id).first self.number = nil + else + self.softkeyable_id = nil + self.softkeyable_type = nil end end end -- cgit v1.2.3 From db31cc867b1e99b4d388b1835dbaec2ad845c29a Mon Sep 17 00:00:00 2001 From: spag Date: Sat, 9 Feb 2013 09:50:54 +0100 Subject: gateway has routes --- app/models/gateway.rb | 1 + 1 file changed, 1 insertion(+) (limited to 'app') diff --git a/app/models/gateway.rb b/app/models/gateway.rb index a8df41f..eea1e33 100644 --- a/app/models/gateway.rb +++ b/app/models/gateway.rb @@ -5,6 +5,7 @@ class Gateway < ActiveRecord::Base has_many :gateway_settings, :dependent => :destroy has_many :gateway_parameters, :dependent => :destroy + has_many :call_routes, :as => :endpoint, :dependent => :nullify validates :name, :presence => true, -- cgit v1.2.3 From ff67b61369dba20747babfb642fb2086bbaff4a9 Mon Sep 17 00:00:00 2001 From: spag Date: Sat, 9 Feb 2013 09:51:22 +0100 Subject: gateway xml view added --- app/views/gateways/show.xml.haml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 app/views/gateways/show.xml.haml (limited to 'app') diff --git a/app/views/gateways/show.xml.haml b/app/views/gateways/show.xml.haml new file mode 100644 index 0000000..5e2806d --- /dev/null +++ b/app/views/gateways/show.xml.haml @@ -0,0 +1,17 @@ +!!! XML +%gateway{ :id => @gateway.id, :name => @gateway.name, :technology => @gateway.technology, :inbound => @gateway.inbound.to_s, :outbound => @gateway.outbound.to_s, :description => @gateway.description } + + %gateway_settings{ :count => @gateway.gateway_settings.count } + - @gateway.gateway_settings.each do |setting| + %setting{ :name => setting.name, :value => setting.value, :class_type => setting.class_type, :description => setting.description } + + %gateway_parameters{ :count => @gateway.gateway_parameters.count } + - @gateway.gateway_parameters.each do |parameter| + %parameter{ :name => parameter.name, :value => parameter.value, :class_type => parameter.class_type, :description => parameter.description } + + %call_routes{ :count => @gateway.call_routes.count } + - @gateway.call_routes.each do |call_route| + %call_route{ :name => call_route.name, :routing_table => call_route.routing_table, :position => call_route.position } + %route_elements{ :count => call_route.route_elements.count } + - call_route.route_elements.each do |route_element| + %route_element{ :var_in => route_element.var_in, :var_out => route_element.var_out, :pattern => route_element.pattern, :replacement => route_element.replacement, :action => route_element.action, :mandatory => route_element.mandatory.to_s, :position => route_element.position } -- cgit v1.2.3 From 42a8e4808e343975042730ab3847303184d73b92 Mon Sep 17 00:00:00 2001 From: spag Date: Sat, 9 Feb 2013 10:05:00 +0100 Subject: identifier added --- app/models/gateway.rb | 5 +++++ app/views/gateways/show.xml.haml | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'app') diff --git a/app/models/gateway.rb b/app/models/gateway.rb index eea1e33..2f17b57 100644 --- a/app/models/gateway.rb +++ b/app/models/gateway.rb @@ -1,5 +1,6 @@ class Gateway < ActiveRecord::Base TECHNOLOGIES = ['sip', 'xmpp'] + GATEWAY_PREFIX = 'gateway' attr_accessible :name, :technology, :inbound, :outbound, :description @@ -22,6 +23,10 @@ class Gateway < ActiveRecord::Base name end + def identifier + "#{GATEWAY_PREFIX}#{self.id}" + end + private def downcase_technology self.technology = self.technology.downcase if !self.technology.blank? diff --git a/app/views/gateways/show.xml.haml b/app/views/gateways/show.xml.haml index 5e2806d..e0ff21a 100644 --- a/app/views/gateways/show.xml.haml +++ b/app/views/gateways/show.xml.haml @@ -1,5 +1,5 @@ !!! XML -%gateway{ :id => @gateway.id, :name => @gateway.name, :technology => @gateway.technology, :inbound => @gateway.inbound.to_s, :outbound => @gateway.outbound.to_s, :description => @gateway.description } +%gateway{ :identifier => @gateway.identifier, :name => @gateway.name, :technology => @gateway.technology, :inbound => @gateway.inbound.to_s, :outbound => @gateway.outbound.to_s, :description => @gateway.description } %gateway_settings{ :count => @gateway.gateway_settings.count } - @gateway.gateway_settings.each do |setting| -- cgit v1.2.3 From e497de90ccf55b3cbec1de7890e20220fa8e603f Mon Sep 17 00:00:00 2001 From: spag Date: Sat, 9 Feb 2013 10:27:24 +0100 Subject: call_route xml view added --- app/views/call_routes/show.xml.haml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 app/views/call_routes/show.xml.haml (limited to 'app') diff --git a/app/views/call_routes/show.xml.haml b/app/views/call_routes/show.xml.haml new file mode 100644 index 0000000..5800816 --- /dev/null +++ b/app/views/call_routes/show.xml.haml @@ -0,0 +1,5 @@ +!!! XML +%call_route{ :name => @call_route.name, :routing_table => @call_route.routing_table, :position => @call_route.position, :endpoint => @call_route.endpoint, :endpoint_type => @call_route.endpoint_type } + %route_elements{ :count => @call_route.route_elements.count } + - @call_route.route_elements.each do |route_element| + %route_element{ :var_in => route_element.var_in, :var_out => route_element.var_out, :pattern => route_element.pattern, :replacement => route_element.replacement, :action => route_element.action, :mandatory => route_element.mandatory.to_s, :position => route_element.position } -- cgit v1.2.3 From cc4dda2b37119e1364cf0a5362aedfae639bcbc7 Mon Sep 17 00:00:00 2001 From: spag Date: Sat, 9 Feb 2013 11:12:57 +0100 Subject: duplicate ids fixed --- app/views/call_routes/_index_core.html.haml | 2 +- app/views/call_routes/index.html.haml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'app') diff --git a/app/views/call_routes/_index_core.html.haml b/app/views/call_routes/_index_core.html.haml index b6c5d33..6f2eadd 100644 --- a/app/views/call_routes/_index_core.html.haml +++ b/app/views/call_routes/_index_core.html.haml @@ -7,7 +7,7 @@ %th= t('route_elements.index.pattern') %th= t('call_routes.index.endpoint') - %tbody{ :id => "call_routes", :'data-update-url' => sort_call_routes_url} + %tbody{ :id => "call_routes_#{routing_table}", :'data-update-url' => sort_call_routes_url} - for call_route in call_routes - cache(['call_route_single_table_row', I18n.locale, call_route]) do = content_tag_for :tr, call_route do diff --git a/app/views/call_routes/index.html.haml b/app/views/call_routes/index.html.haml index d5181e3..0108322 100644 --- a/app/views/call_routes/index.html.haml +++ b/app/views/call_routes/index.html.haml @@ -3,6 +3,6 @@ - if @call_routes && @call_routes.any? - @routing_tables.each do |routing_table| %h3= routing_table - = render "index_core", :call_routes => @call_routes.where(:routing_table => routing_table) + = render "index_core", :call_routes => @call_routes.where(:routing_table => routing_table), :routing_table => routing_table = render :partial => 'shared/create_link', :locals => {:child_class => CallRoute} -- cgit v1.2.3 From 5fba89e83722e11232b1130a1a939d55aed94387 Mon Sep 17 00:00:00 2001 From: spag Date: Sat, 9 Feb 2013 11:24:36 +0100 Subject: multiple css ids bug fixed --- app/assets/javascripts/call_route.js.coffee | 2 +- app/assets/stylesheets/call_routes.css.scss | 2 +- app/views/call_routes/_index_core.html.haml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'app') diff --git a/app/assets/javascripts/call_route.js.coffee b/app/assets/javascripts/call_route.js.coffee index 91d62ca..fab7f10 100644 --- a/app/assets/javascripts/call_route.js.coffee +++ b/app/assets/javascripts/call_route.js.coffee @@ -1,5 +1,5 @@ jQuery -> - $('#call_routes').sortable + $('.call_routes').sortable axis: 'y' handle: '.handle' update: -> diff --git a/app/assets/stylesheets/call_routes.css.scss b/app/assets/stylesheets/call_routes.css.scss index 7face3b..d39e1d1 100644 --- a/app/assets/stylesheets/call_routes.css.scss +++ b/app/assets/stylesheets/call_routes.css.scss @@ -1,4 +1,4 @@ -#call_routes .handle { +.call_routes .handle { font-size: 12px; color: #777; cursor: move; diff --git a/app/views/call_routes/_index_core.html.haml b/app/views/call_routes/_index_core.html.haml index 6f2eadd..a62a9c4 100644 --- a/app/views/call_routes/_index_core.html.haml +++ b/app/views/call_routes/_index_core.html.haml @@ -7,7 +7,7 @@ %th= t('route_elements.index.pattern') %th= t('call_routes.index.endpoint') - %tbody{ :id => "call_routes_#{routing_table}", :'data-update-url' => sort_call_routes_url} + %tbody{ :class => "call_routes", :id => "call_routes_#{routing_table}", :'data-update-url' => sort_call_routes_url} - for call_route in call_routes - cache(['call_route_single_table_row', I18n.locale, call_route]) do = content_tag_for :tr, call_route do -- cgit v1.2.3 From 4c9cc92c0a49ec34c8bf00e31d1710450fb533fa Mon Sep 17 00:00:00 2001 From: Peter Kozak Date: Sun, 10 Feb 2013 08:09:05 +0000 Subject: firewall blacklist model added --- app/controllers/intruders_controller.rb | 41 ++++++++++++++++++++++++++ app/helpers/intruders_helper.rb | 2 ++ app/models/intruder.rb | 3 ++ app/views/intruders/_form.html.haml | 7 +++++ app/views/intruders/_form_core.html.haml | 16 ++++++++++ app/views/intruders/_index_core.html.haml | 37 +++++++++++++++++++++++ app/views/intruders/edit.html.haml | 3 ++ app/views/intruders/index.html.haml | 6 ++++ app/views/intruders/new.html.haml | 3 ++ app/views/intruders/show.html.haml | 49 +++++++++++++++++++++++++++++++ 10 files changed, 167 insertions(+) create mode 100644 app/controllers/intruders_controller.rb create mode 100644 app/helpers/intruders_helper.rb create mode 100644 app/models/intruder.rb create mode 100644 app/views/intruders/_form.html.haml create mode 100644 app/views/intruders/_form_core.html.haml create mode 100644 app/views/intruders/_index_core.html.haml create mode 100644 app/views/intruders/edit.html.haml create mode 100644 app/views/intruders/index.html.haml create mode 100644 app/views/intruders/new.html.haml create mode 100644 app/views/intruders/show.html.haml (limited to 'app') diff --git a/app/controllers/intruders_controller.rb b/app/controllers/intruders_controller.rb new file mode 100644 index 0000000..eb34f2b --- /dev/null +++ b/app/controllers/intruders_controller.rb @@ -0,0 +1,41 @@ +class IntrudersController < ApplicationController + def index + @intruders = Intruder.all + end + + def show + @intruder = Intruder.find(params[:id]) + end + + def new + @intruder = Intruder.new + end + + def create + @intruder = Intruder.new(params[:intruder]) + if @intruder.save + redirect_to @intruder, :notice => t('intruders.controller.successfuly_created') + else + render :new + end + end + + def edit + @intruder = Intruder.find(params[:id]) + end + + def update + @intruder = Intruder.find(params[:id]) + if @intruder.update_attributes(params[:intruder]) + redirect_to @intruder, :notice => t('intruders.controller.successfuly_updated') + else + render :edit + end + end + + def destroy + @intruder = Intruder.find(params[:id]) + @intruder.destroy + redirect_to intruders_url, :notice => t('intruders.controller.successfuly_destroyed') + end +end diff --git a/app/helpers/intruders_helper.rb b/app/helpers/intruders_helper.rb new file mode 100644 index 0000000..7243cf3 --- /dev/null +++ b/app/helpers/intruders_helper.rb @@ -0,0 +1,2 @@ +module IntrudersHelper +end diff --git a/app/models/intruder.rb b/app/models/intruder.rb new file mode 100644 index 0000000..192d64d --- /dev/null +++ b/app/models/intruder.rb @@ -0,0 +1,3 @@ +class Intruder < ActiveRecord::Base + attr_accessible :list_type, :key, :points, :bans, :ban_last, :ban_end, :contact_ip, :contact_port, :contact_count, :contact_last, :contacts_per_second, :contacts_per_second_max, :user_agent, :to_user, :comment +end diff --git a/app/views/intruders/_form.html.haml b/app/views/intruders/_form.html.haml new file mode 100644 index 0000000..26aab1c --- /dev/null +++ b/app/views/intruders/_form.html.haml @@ -0,0 +1,7 @@ += simple_form_for(@intruder) do |f| + = f.error_notification + + = render "form_core", :f => f + + .actions + = f.button :submit, conditional_t('intruders.form.submit') \ No newline at end of file diff --git a/app/views/intruders/_form_core.html.haml b/app/views/intruders/_form_core.html.haml new file mode 100644 index 0000000..ae2da39 --- /dev/null +++ b/app/views/intruders/_form_core.html.haml @@ -0,0 +1,16 @@ +.inputs + = f.input :list_type, :label => t('intruders.form.list_type.label'), :hint => conditional_hint('intruders.form.list_type.hint') + = f.input :key, :label => t('intruders.form.key.label'), :hint => conditional_hint('intruders.form.key.hint') + = f.input :points, :label => t('intruders.form.points.label'), :hint => conditional_hint('intruders.form.points.hint') + = f.input :bans, :label => t('intruders.form.bans.label'), :hint => conditional_hint('intruders.form.bans.hint') + = f.input :ban_last, :label => t('intruders.form.ban_last.label'), :hint => conditional_hint('intruders.form.ban_last.hint') + = f.input :ban_end, :label => t('intruders.form.ban_end.label'), :hint => conditional_hint('intruders.form.ban_end.hint') + = f.input :contact_ip, :label => t('intruders.form.contact_ip.label'), :hint => conditional_hint('intruders.form.contact_ip.hint') + = f.input :contact_port, :label => t('intruders.form.contact_port.label'), :hint => conditional_hint('intruders.form.contact_port.hint') + = f.input :contact_count, :label => t('intruders.form.contact_count.label'), :hint => conditional_hint('intruders.form.contact_count.hint') + = f.input :contact_last, :label => t('intruders.form.contact_last.label'), :hint => conditional_hint('intruders.form.contact_last.hint') + = f.input :contacts_per_second, :label => t('intruders.form.contacts_per_second.label'), :hint => conditional_hint('intruders.form.contacts_per_second.hint') + = f.input :contacts_per_second_max, :label => t('intruders.form.contacts_per_second_max.label'), :hint => conditional_hint('intruders.form.contacts_per_second_max.hint') + = f.input :user_agent, :label => t('intruders.form.user_agent.label'), :hint => conditional_hint('intruders.form.user_agent.hint') + = f.input :to_user, :label => t('intruders.form.to_user.label'), :hint => conditional_hint('intruders.form.to_user.hint') + = f.input :comment, :label => t('intruders.form.comment.label'), :hint => conditional_hint('intruders.form.comment.hint') diff --git a/app/views/intruders/_index_core.html.haml b/app/views/intruders/_index_core.html.haml new file mode 100644 index 0000000..0070c4d --- /dev/null +++ b/app/views/intruders/_index_core.html.haml @@ -0,0 +1,37 @@ +%table.table.table-striped + %tr + %th= t('intruders.index.list_type') + %th= t('intruders.index.key') + %th= t('intruders.index.points') + %th= t('intruders.index.bans') + %th= t('intruders.index.ban_last') + %th= t('intruders.index.ban_end') + %th= t('intruders.index.contact_ip') + %th= t('intruders.index.contact_port') + %th= t('intruders.index.contact_count') + %th= t('intruders.index.contact_last') + %th= t('intruders.index.contacts_per_second') + %th= t('intruders.index.contacts_per_second_max') + %th= t('intruders.index.user_agent') + %th= t('intruders.index.to_user') + %th= t('intruders.index.comment') + + + - for intruder in intruders + %tr + %td= intruder.list_type + %td= intruder.key + %td= intruder.points + %td= intruder.bans + %td= intruder.ban_last + %td= intruder.ban_end + %td= intruder.contact_ip + %td= intruder.contact_port + %td= intruder.contact_count + %td= intruder.contact_last + %td= intruder.contacts_per_second + %td= intruder.contacts_per_second_max + %td= intruder.user_agent + %td= intruder.to_user + %td= intruder.comment + =render :partial => 'shared/index_view_edit_destroy_part', :locals => {:child => intruder} \ No newline at end of file diff --git a/app/views/intruders/edit.html.haml b/app/views/intruders/edit.html.haml new file mode 100644 index 0000000..1b5a31b --- /dev/null +++ b/app/views/intruders/edit.html.haml @@ -0,0 +1,3 @@ +- content_for :title, t("intruders.edit.page_title") + += render "form" \ No newline at end of file diff --git a/app/views/intruders/index.html.haml b/app/views/intruders/index.html.haml new file mode 100644 index 0000000..72b8882 --- /dev/null +++ b/app/views/intruders/index.html.haml @@ -0,0 +1,6 @@ +- content_for :title, t("intruders.index.page_title") + +- if @intruders && @intruders.count > 0 + = render "index_core", :intruders => @intruders + += render :partial => 'shared/create_link', :locals => {:child_class => Intruder} \ No newline at end of file diff --git a/app/views/intruders/new.html.haml b/app/views/intruders/new.html.haml new file mode 100644 index 0000000..a24b55f --- /dev/null +++ b/app/views/intruders/new.html.haml @@ -0,0 +1,3 @@ +- content_for :title, t("intruders.new.page_title") + += render "form" \ No newline at end of file diff --git a/app/views/intruders/show.html.haml b/app/views/intruders/show.html.haml new file mode 100644 index 0000000..fa5f59b --- /dev/null +++ b/app/views/intruders/show.html.haml @@ -0,0 +1,49 @@ +- content_for :title, t("intruders.show.page_title") + +%p + %strong= t('intruders.show.list_type') + ":" + = @intruder.list_type +%p + %strong= t('intruders.show.key') + ":" + = @intruder.key +%p + %strong= t('intruders.show.points') + ":" + = @intruder.points +%p + %strong= t('intruders.show.bans') + ":" + = @intruder.bans +%p + %strong= t('intruders.show.ban_last') + ":" + = @intruder.ban_last +%p + %strong= t('intruders.show.ban_end') + ":" + = @intruder.ban_end +%p + %strong= t('intruders.show.contact_ip') + ":" + = @intruder.contact_ip +%p + %strong= t('intruders.show.contact_port') + ":" + = @intruder.contact_port +%p + %strong= t('intruders.show.contact_count') + ":" + = @intruder.contact_count +%p + %strong= t('intruders.show.contact_last') + ":" + = @intruder.contact_last +%p + %strong= t('intruders.show.contacts_per_second') + ":" + = @intruder.contacts_per_second +%p + %strong= t('intruders.show.contacts_per_second_max') + ":" + = @intruder.contacts_per_second_max +%p + %strong= t('intruders.show.user_agent') + ":" + = @intruder.user_agent +%p + %strong= t('intruders.show.to_user') + ":" + = @intruder.to_user +%p + %strong= t('intruders.show.comment') + ":" + = @intruder.comment + += render :partial => 'shared/show_edit_destroy_part', :locals => { :child => @intruder } \ No newline at end of file -- cgit v1.2.3 From 70a6449fa176059e603a16a21699c8f5c60765e1 Mon Sep 17 00:00:00 2001 From: spag Date: Sun, 10 Feb 2013 16:59:57 +0100 Subject: intruder updated --- app/models/intruder.rb | 23 +++++++++++++++++++++++ app/views/intruders/_form_core.html.haml | 15 ++------------- 2 files changed, 25 insertions(+), 13 deletions(-) (limited to 'app') diff --git a/app/models/intruder.rb b/app/models/intruder.rb index 192d64d..c013ee8 100644 --- a/app/models/intruder.rb +++ b/app/models/intruder.rb @@ -1,3 +1,26 @@ class Intruder < ActiveRecord::Base attr_accessible :list_type, :key, :points, :bans, :ban_last, :ban_end, :contact_ip, :contact_port, :contact_count, :contact_last, :contacts_per_second, :contacts_per_second_max, :user_agent, :to_user, :comment + + LIST_TYPES = ['blacklist', 'whitelist'] + + validates :list_type, + :presence => true, + :inclusion => { :in => LIST_TYPES } + + validates :key, + :presence => true, + :uniqueness => true + + validates :contact_ip, + :presence => true, + :uniqueness => true + + before_validation :set_key_if_empty + + private + def set_key_if_empty + if self.key.blank? + self.key = self.contact_ip + end + end end diff --git a/app/views/intruders/_form_core.html.haml b/app/views/intruders/_form_core.html.haml index ae2da39..780d8cd 100644 --- a/app/views/intruders/_form_core.html.haml +++ b/app/views/intruders/_form_core.html.haml @@ -1,16 +1,5 @@ .inputs - = f.input :list_type, :label => t('intruders.form.list_type.label'), :hint => conditional_hint('intruders.form.list_type.hint') - = f.input :key, :label => t('intruders.form.key.label'), :hint => conditional_hint('intruders.form.key.hint') - = f.input :points, :label => t('intruders.form.points.label'), :hint => conditional_hint('intruders.form.points.hint') - = f.input :bans, :label => t('intruders.form.bans.label'), :hint => conditional_hint('intruders.form.bans.hint') - = f.input :ban_last, :label => t('intruders.form.ban_last.label'), :hint => conditional_hint('intruders.form.ban_last.hint') - = f.input :ban_end, :label => t('intruders.form.ban_end.label'), :hint => conditional_hint('intruders.form.ban_end.hint') + = f.input :list_type, :collection => Intruder::LIST_TYPES, :label => t('intruders.form.list_type.label'), :hint => conditional_hint('intruders.form.list_type.hint'), :include_blank => false = f.input :contact_ip, :label => t('intruders.form.contact_ip.label'), :hint => conditional_hint('intruders.form.contact_ip.hint') - = f.input :contact_port, :label => t('intruders.form.contact_port.label'), :hint => conditional_hint('intruders.form.contact_port.hint') - = f.input :contact_count, :label => t('intruders.form.contact_count.label'), :hint => conditional_hint('intruders.form.contact_count.hint') - = f.input :contact_last, :label => t('intruders.form.contact_last.label'), :hint => conditional_hint('intruders.form.contact_last.hint') - = f.input :contacts_per_second, :label => t('intruders.form.contacts_per_second.label'), :hint => conditional_hint('intruders.form.contacts_per_second.hint') - = f.input :contacts_per_second_max, :label => t('intruders.form.contacts_per_second_max.label'), :hint => conditional_hint('intruders.form.contacts_per_second_max.hint') - = f.input :user_agent, :label => t('intruders.form.user_agent.label'), :hint => conditional_hint('intruders.form.user_agent.hint') - = f.input :to_user, :label => t('intruders.form.to_user.label'), :hint => conditional_hint('intruders.form.to_user.hint') + = f.input :ban_end, :label => t('intruders.form.ban_end.label'), :hint => conditional_hint('intruders.form.ban_end.hint') = f.input :comment, :label => t('intruders.form.comment.label'), :hint => conditional_hint('intruders.form.comment.hint') -- cgit v1.2.3 From 7332f8e0b13ad4b5999b443b7baf36574b6d9593 Mon Sep 17 00:00:00 2001 From: spag Date: Mon, 11 Feb 2013 10:07:33 +0100 Subject: call model rewrite --- app/models/call.rb | 70 +++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 53 insertions(+), 17 deletions(-) (limited to 'app') diff --git a/app/models/call.rb b/app/models/call.rb index 57961ec..c0f0f08 100644 --- a/app/models/call.rb +++ b/app/models/call.rb @@ -1,36 +1,72 @@ class Call < ActiveRecord::Base - self.table_name = 'channels' + self.table_name = 'detailed_calls' self.primary_key = 'uuid' - # Makes sure that this is a readonly model. def readonly? return true end - - # Prevent objects from being destroyed - def before_destroy - raise ActiveRecord::ReadOnlyRecord - end - # Prevent objects from being deleted - def self.delete_all - raise ActiveRecord::ReadOnlyRecord + def destroy + return self.delete end - # Prevent objects from being deleted def delete - raise ActiveRecord::ReadOnlyRecord + require 'freeswitch_event' + return FreeswitchAPI.execute('uuid_kill', self.uuid, true); end def sip_account - auth_name = self.name.match('^.+[/:](.+)@.+$') - if auth_name && ! auth_name[1].blank? - return SipAccount.where(:auth_name => auth_name[1]).first + result = self.presence_id.match('^(.+)@(.+)$') + + if result && ! result[1].blank? and ! result[2].blank? + domain = SipDomain.where(:host => result[2]).first + if domain + return SipAccount.where(:auth_name => result[1], :sip_domain_id => domain.id).first + end end end - def kill + def sip_account_bleg + result = self.b_presence_id.match('^(.+)@(.+)$') + + if result && ! result[1].blank? and ! result[2].blank? + domain = SipDomain.where(:host => result[2]).first + if domain + return SipAccount.where(:auth_name => result[1], :sip_domain_id => domain.id).first + end + end + end + + def get_variable_from_uuid(channel_uuid, variable_name) + if channel_uuid.blank? + return nil + end + require 'freeswitch_event' - return FreeswitchAPI.execute('uuid_kill', self.uuid, true); + result = FreeswitchAPI.channel_variable_get(channel_uuid, variable_name); + + if result == '_undef_' + return nil + end + + return result + end + + def get_variable(variable_name) + return get_variable_from_uuid(self.uuid, variable_name); + end + + def get_variable_bleg(variable_name) + return get_variable_from_uuid(self.b_uuid, variable_name); + end + + def is_sip + return self.name.match('^sofia') != nil + end + + def is_caller + if (self.uuid == self.call_uuid) || self.call_uuid.blank? + true + end end end -- cgit v1.2.3 From d42afaf3471b6784ac0d7cfc139c84b84698ba0d Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Mon, 11 Feb 2013 10:09:30 +0100 Subject: Fixed breadcrumbs. #163 --- app/controllers/fax_documents_controller.rb | 25 ++++++++++--------------- app/views/fax_accounts/_index_core.html.haml | 4 ++-- 2 files changed, 12 insertions(+), 17 deletions(-) (limited to 'app') diff --git a/app/controllers/fax_documents_controller.rb b/app/controllers/fax_documents_controller.rb index eff9604..5653683 100644 --- a/app/controllers/fax_documents_controller.rb +++ b/app/controllers/fax_documents_controller.rb @@ -58,23 +58,18 @@ class FaxDocumentsController < ApplicationController end private + def spread_breadcrumbs - breadcrumbs = [] - breadcrumbs = case @fax_account.fax_accountable.class.to_s - when 'User' ; [ - [@fax_account.fax_accountable.to_s, user_path(@fax_account.fax_accountable)], - [t('fax_accounts.name').pluralize, user_fax_accounts_path(@fax_account.fax_accountable)], - [t('fax_documents.name').pluralize, fax_account_fax_documents_path(@fax_account)], - ] - when 'UserGroup' ; [ - [@fax_account.fax_accountable, user_group_path(@fax_account.fax_accountable)], - [t('fax_accounts.name').pluralize, user_group_fax_accounts_path(@fax_account.fax_accountable)], - [t('fax_documents.name').pluralize, fax_account_fax_documents_path(@fax_account)], - ] + if @fax_account && @fax_account.fax_accountable.class == User + add_breadcrumb t("users.index.page_title"), tenant_users_path(@fax_account.fax_accountable.current_tenant) + add_breadcrumb @fax_account.fax_accountable, tenant_user_path(@fax_account.fax_accountable.current_tenant, @fax_account.fax_accountable) end - if !breadcrumbs.blank? - breadcrumbs.each do |breadcrumb| - add_breadcrumb breadcrumb[0], breadcrumb[1] + + if @fax_account + add_breadcrumb t("fax_accounts.index.page_title"), user_fax_accounts_path(@fax_account.fax_accountable) + add_breadcrumb @fax_account, user_fax_account_path(@fax_account.fax_accountable, @fax_account) + if @fax_document && !@fax_document.new_record? + add_breadcrumb @fax_document, fax_account_fax_document_path(@fax_account, @fax_document) end end end diff --git a/app/views/fax_accounts/_index_core.html.haml b/app/views/fax_accounts/_index_core.html.haml index d694f8f..846cda8 100644 --- a/app/views/fax_accounts/_index_core.html.haml +++ b/app/views/fax_accounts/_index_core.html.haml @@ -39,8 +39,8 @@ = time_ago_in_words(fax_account.fax_documents.order(:updated_at).last.updated_at) %td - if can?(:new, FaxDocument, :fax_account_id => fax_account.id) - %a.btn.btn-mini.btn-primary{:href => new_fax_account_fax_document_path(fax_account) } - %i.icon-print.icon-white + %a.btn.btn-small{:href => new_fax_account_fax_document_path(fax_account) } + %i.icon-print %span.hidden-phone =t('fax_accounts.index.send_a_fax') -- cgit v1.2.3 From 84ce49fcd057284225474c3197268a9f8a3c8121 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Mon, 11 Feb 2013 10:14:39 +0100 Subject: Added i.icon-print to the button. --- app/views/fax_accounts/show.html.haml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'app') diff --git a/app/views/fax_accounts/show.html.haml b/app/views/fax_accounts/show.html.haml index 1a32121..454ebee 100644 --- a/app/views/fax_accounts/show.html.haml +++ b/app/views/fax_accounts/show.html.haml @@ -12,7 +12,11 @@ = render :partial => 'shared/show_edit_destroy_part', :locals => { :parent => @parent, :child => @fax_account } -= render :partial => 'shared/create_link', :locals => { :parent => @fax_account, :child_class => FaxDocument } +%p + %a.btn.btn-small{:href => new_fax_account_fax_document_path(@fax_account) } + %i.icon-print + %span.hidden-phone + =t('fax_accounts.index.send_a_fax') %h2= t('phone_numbers.index.page_title') - if @fax_account.phone_numbers.count > 0 -- cgit v1.2.3 From 62ac01a8ea536718734bd911fc3642c0bd8b6bc7 Mon Sep 17 00:00:00 2001 From: spag Date: Mon, 11 Feb 2013 13:04:05 +0100 Subject: ipwhois added --- app/models/intruder.rb | 11 +++++++++++ app/views/intruders/show.html.haml | 5 ++++- 2 files changed, 15 insertions(+), 1 deletion(-) (limited to 'app') diff --git a/app/models/intruder.rb b/app/models/intruder.rb index c013ee8..db14bf8 100644 --- a/app/models/intruder.rb +++ b/app/models/intruder.rb @@ -17,6 +17,17 @@ class Intruder < ActiveRecord::Base before_validation :set_key_if_empty + + def whois + if ! self.contact_ip.blank? + begin + return Whois.whois(self.contact_ip) + rescue + return nil + end + end + end + private def set_key_if_empty if self.key.blank? diff --git a/app/views/intruders/show.html.haml b/app/views/intruders/show.html.haml index fa5f59b..4941e89 100644 --- a/app/views/intruders/show.html.haml +++ b/app/views/intruders/show.html.haml @@ -46,4 +46,7 @@ %strong= t('intruders.show.comment') + ":" = @intruder.comment -= render :partial => 'shared/show_edit_destroy_part', :locals => { :child => @intruder } \ No newline at end of file +%p + %pre= @intruder.whois + += render :partial => 'shared/show_edit_destroy_part', :locals => { :child => @intruder } -- cgit v1.2.3 From 29db90c2c8a9a6a3087e77eae8615ddf0049087b Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Mon, 11 Feb 2013 14:40:38 +0100 Subject: Deleted PrivatePub stuff. --- app/controllers/system_messages_controller.rb | 30 ------------------------- app/helpers/system_messages_helper.rb | 2 -- app/models/ability.rb | 4 ---- app/views/system_messages/_form.html.haml | 7 ------ app/views/system_messages/_form_core.html.haml | 2 -- app/views/system_messages/_index_core.html.haml | 12 ---------- app/views/system_messages/index.html.haml | 3 --- app/views/system_messages/new.html.haml | 3 --- app/views/system_messages/show.html.haml | 8 ------- 9 files changed, 71 deletions(-) delete mode 100644 app/controllers/system_messages_controller.rb delete mode 100644 app/helpers/system_messages_helper.rb delete mode 100644 app/views/system_messages/_form.html.haml delete mode 100644 app/views/system_messages/_form_core.html.haml delete mode 100644 app/views/system_messages/_index_core.html.haml delete mode 100644 app/views/system_messages/index.html.haml delete mode 100644 app/views/system_messages/new.html.haml delete mode 100644 app/views/system_messages/show.html.haml (limited to 'app') diff --git a/app/controllers/system_messages_controller.rb b/app/controllers/system_messages_controller.rb deleted file mode 100644 index d7fe515..0000000 --- a/app/controllers/system_messages_controller.rb +++ /dev/null @@ -1,30 +0,0 @@ -class SystemMessagesController < ApplicationController - load_and_authorize_resource :user - load_and_authorize_resource :system_message, :through => [:user] - - def index - @system_messages = @system_messages.where(:created_at => Time.now - 6.hours .. Time.now) - end - - def show - end - - def new - @system_message = @user.system_messages.build - end - - def create - @system_message = @user.system_messages.build(params[:system_message]) - if @system_message.save - # Push the new message via AJAX to the browser. - # - # PrivatePub.publish_to("/users/#{@system_message.user.id}/system_messages", - # "$('#system_message').empty();$('#system_message').append('#{(I18n.l @system_message.created_at, :format => :short )} #{@system_message.content}');$('#system_message_display').fadeIn();" - # ) - - redirect_to user_system_message_path(@user, @system_message), :notice => t('system_messages.controller.successfuly_created') - else - render :new - end - end -end diff --git a/app/helpers/system_messages_helper.rb b/app/helpers/system_messages_helper.rb deleted file mode 100644 index fef2386..0000000 --- a/app/helpers/system_messages_helper.rb +++ /dev/null @@ -1,2 +0,0 @@ -module SystemMessagesHelper -end diff --git a/app/models/ability.rb b/app/models/ability.rb index 01f26aa..4ec64b1 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -56,10 +56,6 @@ class Ability can :read, PhoneBookEntry, :phone_book => { :id => user_group.phone_book_ids } end - # SystemMessages - # - cannot [:destroy, :edit, :update], SystemMessage - # A FacDocument can't be changed # cannot [:edit, :update], FaxDocument diff --git a/app/views/system_messages/_form.html.haml b/app/views/system_messages/_form.html.haml deleted file mode 100644 index 036ee00..0000000 --- a/app/views/system_messages/_form.html.haml +++ /dev/null @@ -1,7 +0,0 @@ -= simple_form_for([@user, @system_message]) do |f| - = f.error_notification - - = render "form_core", :f => f - - .actions - = f.button :submit, conditional_t('system_messages.form.submit') \ No newline at end of file diff --git a/app/views/system_messages/_form_core.html.haml b/app/views/system_messages/_form_core.html.haml deleted file mode 100644 index a85db28..0000000 --- a/app/views/system_messages/_form_core.html.haml +++ /dev/null @@ -1,2 +0,0 @@ -.inputs - = f.input :content, :label => t('system_messages.form.content.label'), :hint => conditional_hint('system_messages.form.content.hint') diff --git a/app/views/system_messages/_index_core.html.haml b/app/views/system_messages/_index_core.html.haml deleted file mode 100644 index 7c9dab5..0000000 --- a/app/views/system_messages/_index_core.html.haml +++ /dev/null @@ -1,12 +0,0 @@ -%table.table.table-striped - %thead - %tr - %th= t('system_messages.index.created_at') - %th= t('system_messages.index.content') - - %tbody - - for system_message in system_messages - %tr - %td= system_message.created_at - %td= system_message.content - =render :partial => 'shared/index_view_edit_destroy_part', :locals => {:child => system_message} \ No newline at end of file diff --git a/app/views/system_messages/index.html.haml b/app/views/system_messages/index.html.haml deleted file mode 100644 index ffd3fc3..0000000 --- a/app/views/system_messages/index.html.haml +++ /dev/null @@ -1,3 +0,0 @@ -- content_for :title, t("system_messages.index.page_title") - -= render "index_core", :system_messages => @system_messages \ No newline at end of file diff --git a/app/views/system_messages/new.html.haml b/app/views/system_messages/new.html.haml deleted file mode 100644 index 565f5c5..0000000 --- a/app/views/system_messages/new.html.haml +++ /dev/null @@ -1,3 +0,0 @@ -- content_for :title, t("system_messages.new.page_title") - -= render "form" diff --git a/app/views/system_messages/show.html.haml b/app/views/system_messages/show.html.haml deleted file mode 100644 index 70be6f2..0000000 --- a/app/views/system_messages/show.html.haml +++ /dev/null @@ -1,8 +0,0 @@ -- content_for :title, t("system_messages.show.page_title") - -%p - %strong= t('system_messages.show.created_at') + ":" - = @system_message.created_at -%p - %strong= t('system_messages.show.content') + ":" - = @system_message.content -- cgit v1.2.3 From ca8121930d7e75b9f6bac08591c6ffea3ca1fea1 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Mon, 11 Feb 2013 14:42:22 +0100 Subject: Removed PrivatePub stuff. --- app/models/ability.rb | 4 ---- app/models/system_message.rb | 7 ------- 2 files changed, 11 deletions(-) delete mode 100644 app/models/system_message.rb (limited to 'app') diff --git a/app/models/ability.rb b/app/models/ability.rb index 4ec64b1..4c0844c 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -156,10 +156,6 @@ class Ability # can :manage, CallForward, :phone_number_id => user.phone_number_ids - # SystemMessages - # - can :read, SystemMessage, :user_id => user.id - # SoftkeyFunctions # can :read, SoftkeyFunction diff --git a/app/models/system_message.rb b/app/models/system_message.rb deleted file mode 100644 index 0d9e862..0000000 --- a/app/models/system_message.rb +++ /dev/null @@ -1,7 +0,0 @@ -class SystemMessage < ActiveRecord::Base - attr_accessible :content - - belongs_to :user - - validates_presence_of :content -end -- cgit v1.2.3 From c5b10519dd1ade04a25c43b100c15deb7e39b6d0 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Mon, 11 Feb 2013 15:07:23 +0100 Subject: Added entity in the table. But it's fare from pretty. #136 --- app/views/gs_parameters/_index_core.html.haml | 14 ++++++++++++-- app/views/gs_parameters/index.html.haml | 12 +++++------- 2 files changed, 17 insertions(+), 9 deletions(-) (limited to 'app') diff --git a/app/views/gs_parameters/_index_core.html.haml b/app/views/gs_parameters/_index_core.html.haml index 11d60db..2105126 100644 --- a/app/views/gs_parameters/_index_core.html.haml +++ b/app/views/gs_parameters/_index_core.html.haml @@ -1,6 +1,9 @@ -- cache(['gs_parameters_table_section', gs_parameters.first.section, gs_parameters.reorder(:updated_at).last, gs_parameters.pluck(:id)]) do +- cache(['gs_parameter_sub_table', I18n.locale, gs_parameters.count, gs_parameters.reorder(:updated_at).first, gs_parameters.reorder(:updated_at).last]) do %thead %tr + %th + %span.hidden-phone + = t('gs_parameters.index.entity') %th= t('gs_parameters.index.name') - if !@sections %th= t('gs_parameters.index.section') @@ -8,8 +11,15 @@ %tbody - for gs_parameter in gs_parameters - - cache(['gs_parameters_table_single_row', gs_parameter]) do + - cache(['gs_parameters_table_single_row', I18n.locale, gs_parameter]) do %tr + %td + - if gs_parameter.entity.blank? + %span.hidden-phone + = '-' + - else + %span.hidden-phone + = truncate(gs_parameter.entity, :length => GsParameter.get('DESKTOP_MAX_STRING_LENGTH')) %td %span.hidden-phone = truncate(gs_parameter.name, :length => GsParameter.get('DESKTOP_MAX_STRING_LENGTH')) diff --git a/app/views/gs_parameters/index.html.haml b/app/views/gs_parameters/index.html.haml index 1189a45..8df2bb3 100644 --- a/app/views/gs_parameters/index.html.haml +++ b/app/views/gs_parameters/index.html.haml @@ -1,13 +1,11 @@ - content_for :title, t("gs_parameters.index.page_title") -- if @gs_parameters && @gs_parameters.count > 0 - - cache(['gs_parameters_table', I18n.locale, @gs_parameters_unordered.reorder(:updated_at).last, @gs_parameters_unordered.count]) do +- cache(['gs_parameter_all_tables', I18n.locale, @gs_parameters.count, @gs_parameters.reorder(:updated_at).first, @gs_parameters.reorder(:updated_at).last]) do + - if @gs_parameters && @gs_parameters.count > 0 - if @sections - %table.table.table-striped - - @sections.each do |section| - %tr - %td{:colspan => 3} - %h3= section + - @sections.each do |section| + %h3= section + %table.table.table-striped -# Template Dependency: gs_parameters/_index_core = render "index_core", :gs_parameters => @gs_parameters.where(:section => section) - else -- cgit v1.2.3 From 42ee5557a5ac11743b573b25eb8fdb60c8c13aa3 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Mon, 11 Feb 2013 16:24:55 +0100 Subject: Use the copyright symbol. --- app/views/layouts/_footer.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app') diff --git a/app/views/layouts/_footer.html.haml b/app/views/layouts/_footer.html.haml index 3d4658b..2703844 100644 --- a/app/views/layouts/_footer.html.haml +++ b/app/views/layouts/_footer.html.haml @@ -16,4 +16,4 @@ %li =link_to t('misc.send_a_bugreport'), URI::escape("https://github.com/amooma/GS5/issues/new?title=Bugreport&body=URL which triggered the bugreport is: #{request.fullpath}\nGS5 buildname: #{(GsParameter.get('GEMEINSCHAFT_BUILDNAME').blank? ? 'unknown' : GsParameter.get('GEMEINSCHAFT_BUILDNAME'))} (#{GsParameter.get('GEMEINSCHAFT_VERSION')})\n\nPlease provide your bugreport below this line and update the title of this issue to a more specific one.") %li{:class => 'pull-right'} - = link_to 'brought to you by AMOOMA GmbH', 'http://amooma.de' \ No newline at end of file + = link_to '© AMOOMA GmbH', 'http://amooma.de' \ No newline at end of file -- cgit v1.2.3 From da362f73cf417aa2eda9124d17c66850087ea0f6 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Mon, 11 Feb 2013 16:52:24 +0100 Subject: Backup GUI improvements. --- app/controllers/backup_jobs_controller.rb | 15 ++++++---- app/controllers/tenants_controller.rb | 1 + app/views/backup_jobs/_index_core.html.haml | 34 +++++++++++++++++------ app/views/backup_jobs/show.html.haml | 4 ++- app/views/tenants/_admin_area.de.html.haml | 4 ++- app/views/tenants/_admin_area.en.html.haml | 4 ++- app/views/tenants/_table_of_backup_jobs.html.haml | 11 ++++++++ app/views/tenants/show.html.haml | 2 +- 8 files changed, 58 insertions(+), 17 deletions(-) create mode 100644 app/views/tenants/_table_of_backup_jobs.html.haml (limited to 'app') diff --git a/app/controllers/backup_jobs_controller.rb b/app/controllers/backup_jobs_controller.rb index 4f242ba..31b9c21 100644 --- a/app/controllers/backup_jobs_controller.rb +++ b/app/controllers/backup_jobs_controller.rb @@ -4,29 +4,34 @@ class BackupJobsController < ApplicationController before_filter :spread_breadcrumbs def index - # @backup_jobs = BackupJob.all end def show - # @backup_job = BackupJob.find(params[:id]) end def new - @backup_job = BackupJob.new + # Do the same as create. + # + @backup_job = BackupJob.new(:started_at => Time.now) + + if @backup_job.save + redirect_to backup_jobs_path, :notice => t('backup_jobs.controller.successfuly_created') + else + render :new + end end def create @backup_job = BackupJob.new(:started_at => Time.now) if @backup_job.save - redirect_to @backup_job, :notice => t('backup_jobs.controller.successfuly_created') + redirect_to backup_jobs_path, :notice => t('backup_jobs.controller.successfuly_created') else render :new end end def destroy - # @backup_job = BackupJob.find(params[:id]) @backup_job.destroy redirect_to backup_jobs_url, :notice => t('backup_jobs.controller.successfuly_destroyed') end diff --git a/app/controllers/tenants_controller.rb b/app/controllers/tenants_controller.rb index f30246b..b6a96b7 100644 --- a/app/controllers/tenants_controller.rb +++ b/app/controllers/tenants_controller.rb @@ -8,6 +8,7 @@ class TenantsController < ApplicationController def show @tenant = Tenant.find(params[:id]) @gateways = Gateway.order(:updated_at) + @backup_jobs = BackupJob.order(:finished_at).last(5) end def new diff --git a/app/views/backup_jobs/_index_core.html.haml b/app/views/backup_jobs/_index_core.html.haml index 9eebefd..9dc0e92 100644 --- a/app/views/backup_jobs/_index_core.html.haml +++ b/app/views/backup_jobs/_index_core.html.haml @@ -1,12 +1,15 @@ %table.table.table-striped %tr %th= t('backup_jobs.index.started_at') - %th= t('backup_jobs.index.finished_at') + %th + %span.hidden-phone + = t('backup_jobs.index.finished_at') %th= t('backup_jobs.index.state') - %th= t('backup_jobs.index.size_of_the_backup') + %th + %span.hidden-phone + = t('backup_jobs.index.size_of_the_backup') %th{:colspan => '2'} - - for backup_job in backup_jobs - if backup_job.state == 'queued' - row_marker = 'warning' @@ -18,14 +21,29 @@ %tr{:class => row_marker} - if backup_job.finished_at.blank? %td{:colspan => '2'} - = time_ago_in_words(backup_job.started_at) + - if (Time.now - 1.day) > backup_job.started_at + = l backup_job.started_at, :format => :short + - else + - case I18n.locale + - when :de + = "vor #{time_ago_in_words(backup_job.started_at)}" + - when :en + = "#{time_ago_in_words(backup_job.started_at)} ago" + - else + = l backup_job.started_at, :format => :short - else %td = l backup_job.started_at, :format => :short %td - = l backup_job.finished_at, :format => :short + %span.hidden-phone + = l backup_job.finished_at, :format => :short %td= backup_job.state %td - - if backup_job.backup_file? - = number_to_human_size(backup_job.backup_file.size, :precision => 2) - =render :partial => 'shared/index_view_edit_destroy_part', :locals => {:child => backup_job} \ No newline at end of file + %span.hidden-phone + - if backup_job.backup_file? + %a{:href => backup_job.backup_file.current_path} + %i{:class => 'icon-download'} + = number_to_human_size(backup_job.backup_file.size, :precision => 2) + - else + = '-' + =render :partial => 'shared/index_view_edit_destroy_part', :locals => {:child => backup_job} diff --git a/app/views/backup_jobs/show.html.haml b/app/views/backup_jobs/show.html.haml index 5d85bbc..6c55320 100644 --- a/app/views/backup_jobs/show.html.haml +++ b/app/views/backup_jobs/show.html.haml @@ -15,6 +15,8 @@ %p %strong= t('backup_jobs.show.size_of_the_backup') + ":" - if @backup_job.backup_file? - = number_to_human_size(@backup_job.backup_file.size, :precision => 2) + %a{:href => backup_job.backup_file.current_path} + %i{:class => 'icon-download'} + = number_to_human_size(backup_job.backup_file.size, :precision => 2) = render :partial => 'shared/show_edit_destroy_part', :locals => { :child => @backup_job } \ No newline at end of file diff --git a/app/views/tenants/_admin_area.de.html.haml b/app/views/tenants/_admin_area.de.html.haml index 98809d1..2aed4e1 100644 --- a/app/views/tenants/_admin_area.de.html.haml +++ b/app/views/tenants/_admin_area.de.html.haml @@ -37,4 +37,6 @@ = render :partial => 'call_routes', :locals => {:tenant => tenant} - = render :partial => 'gateways', :locals => {:tenant => tenant, :gateways => gateways} \ No newline at end of file + = render :partial => 'gateways', :locals => {:tenant => tenant, :gateways => gateways} + + = render :partial => 'table_of_backup_jobs', :locals => {:tenant => tenant, :backup_jobs => backup_jobs} diff --git a/app/views/tenants/_admin_area.en.html.haml b/app/views/tenants/_admin_area.en.html.haml index 4f0032c..8e7bfea 100644 --- a/app/views/tenants/_admin_area.en.html.haml +++ b/app/views/tenants/_admin_area.en.html.haml @@ -37,4 +37,6 @@ = render :partial => 'call_routes', :locals => {:tenant => tenant} - = render :partial => 'gateways', :locals => {:tenant => tenant, :gateways => gateways} \ No newline at end of file + = render :partial => 'gateways', :locals => {:tenant => tenant, :gateways => gateways} + + = render :partial => 'table_of_backup_jobs', :locals => {:tenant => tenant, :backup_jobs => backup_jobs} \ No newline at end of file diff --git a/app/views/tenants/_table_of_backup_jobs.html.haml b/app/views/tenants/_table_of_backup_jobs.html.haml new file mode 100644 index 0000000..a585010 --- /dev/null +++ b/app/views/tenants/_table_of_backup_jobs.html.haml @@ -0,0 +1,11 @@ +-# BackupJobs +-# +- if (can?( :index, BackupJob ) && backup_jobs.count > 0 ) || can?( :create, BackupJob ) + - if backup_jobs.count == BackupJob.count + %h2= t('backup_jobs.index.page_title') + - else + %h2= t('backup_jobs.index.page_title_with_limit', :limit => '5') + + - if can?( :index, BackupJob ) && backup_jobs.count > 0 + = render "backup_jobs/index_core", :backup_jobs => backup_jobs + = render :partial => 'shared/create_link', :locals => {:child_class => BackupJob} \ No newline at end of file diff --git a/app/views/tenants/show.html.haml b/app/views/tenants/show.html.haml index 818e584..23ec81a 100644 --- a/app/views/tenants/show.html.haml +++ b/app/views/tenants/show.html.haml @@ -15,4 +15,4 @@ = render :partial => 'shared/show_edit_destroy_part', :locals => { :child => @tenant } - if @tenant.user_groups.where(:name => 'Admins').any? && @tenant.user_groups.where(:name => 'Admins').first.users.include?(current_user) - = render :partial => 'admin_area', :locals => { :tenant => @tenant, :gateways => @gateways} \ No newline at end of file + = render :partial => 'admin_area', :locals => { :tenant => @tenant, :gateways => @gateways, :backup_jobs => @backup_jobs} \ No newline at end of file -- cgit v1.2.3 From 0ba495685589e99e1100af6d7af9d69ee4f40b78 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Mon, 11 Feb 2013 16:59:15 +0100 Subject: Removed icons. --- app/views/layouts/_navbar.html.haml | 2 -- 1 file changed, 2 deletions(-) (limited to 'app') diff --git a/app/views/layouts/_navbar.html.haml b/app/views/layouts/_navbar.html.haml index 335dd3d..7084090 100644 --- a/app/views/layouts/_navbar.html.haml +++ b/app/views/layouts/_navbar.html.haml @@ -21,11 +21,9 @@ - if current_user && current_user.sip_accounts.any? %li %a{:href => sip_account_call_histories_path(current_user.sip_accounts.first)} - %i.icon-list-alt.icon-white =t("call_histories.index.page_title") %li %a{:href => sip_account_voicemail_messages_path(current_user.sip_accounts.first)} - %i.icon-volume-up.icon-white =t("voicemail_messages.index.page_title") - if current_user -- cgit v1.2.3 From b5cb8b7fa389c0a542825173b058dfcf428f6680 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Mon, 11 Feb 2013 17:44:09 +0100 Subject: Fix URL --- app/views/backup_jobs/_index_core.html.haml | 2 +- app/views/backup_jobs/show.html.haml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'app') diff --git a/app/views/backup_jobs/_index_core.html.haml b/app/views/backup_jobs/_index_core.html.haml index 9dc0e92..0102546 100644 --- a/app/views/backup_jobs/_index_core.html.haml +++ b/app/views/backup_jobs/_index_core.html.haml @@ -41,7 +41,7 @@ %td %span.hidden-phone - if backup_job.backup_file? - %a{:href => backup_job.backup_file.current_path} + %a{:href => backup_job.backup_file.url} %i{:class => 'icon-download'} = number_to_human_size(backup_job.backup_file.size, :precision => 2) - else diff --git a/app/views/backup_jobs/show.html.haml b/app/views/backup_jobs/show.html.haml index 6c55320..6fcb1dc 100644 --- a/app/views/backup_jobs/show.html.haml +++ b/app/views/backup_jobs/show.html.haml @@ -15,7 +15,7 @@ %p %strong= t('backup_jobs.show.size_of_the_backup') + ":" - if @backup_job.backup_file? - %a{:href => backup_job.backup_file.current_path} + %a{:href => backup_job.backup_file.url} %i{:class => 'icon-download'} = number_to_human_size(backup_job.backup_file.size, :precision => 2) -- cgit v1.2.3 From b7e6ceb34069756d72c5debafff65f091b636b7d Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Tue, 12 Feb 2013 09:57:53 +0100 Subject: Use short I18n format for displaying the datetime. --- app/views/call_histories/_index_core.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app') diff --git a/app/views/call_histories/_index_core.html.haml b/app/views/call_histories/_index_core.html.haml index 4ca340d..8bbf761 100644 --- a/app/views/call_histories/_index_core.html.haml +++ b/app/views/call_histories/_index_core.html.haml @@ -22,7 +22,7 @@ - phone_book_entry = call_history.phone_book_entry_by_number(call_history.display_number) %tr{:id => "call_history_id_#{call_history.id}_tr", :class => (call_history.duration.blank? ? 'warning' : '')} %td - = l call_history.start_stamp, :format => :date_only + = l call_history.start_stamp, :format => :short %td = l call_history.start_stamp, :format => :short %td -- cgit v1.2.3 From 155403327d0a4915a26aaf2f0b9e390b7e8fdb64 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Tue, 12 Feb 2013 12:23:30 +0100 Subject: Changed to if GsParameter.get('PROVISIONING_KEY_LENGTH') == 0 --- app/views/phones/_form_core.html.haml | 2 +- app/views/phones/show.html.haml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'app') diff --git a/app/views/phones/_form_core.html.haml b/app/views/phones/_form_core.html.haml index 17b9ca8..31f3c24 100644 --- a/app/views/phones/_form_core.html.haml +++ b/app/views/phones/_form_core.html.haml @@ -11,5 +11,5 @@ - if defined? GsParameter.get('NIGHTLY_REBOOT_OF_PHONES') && GsParameter.get('NIGHTLY_REBOOT_OF_PHONES') == true = f.input :nightly_reboot, :label => t('phones.form.nightly_reboot.label'), :hint => conditional_hint('phones.form.nightly_reboot.hint') - - if !GsParameter.get('PROVISIONING_KEY_LENGTH').nil? && GsParameter.get('PROVISIONING_KEY_LENGTH') > 0 + - if GsParameter.get('PROVISIONING_KEY_LENGTH') == 0 = f.input :provisioning_key_active, :label => t('phones.form.provisioning_key_active.label'), :hint => conditional_hint('phones.form.provisioning_key_active.hint') diff --git a/app/views/phones/show.html.haml b/app/views/phones/show.html.haml index 86ac380..e9b8b21 100644 --- a/app/views/phones/show.html.haml +++ b/app/views/phones/show.html.haml @@ -34,7 +34,7 @@ %td = @phone.nightly_reboot == true ? t('simple_form.yes') : t('simple_form.no') - - if !GsParameter.get('PROVISIONING_KEY_LENGTH').nil? && GsParameter.get('PROVISIONING_KEY_LENGTH') > 0 + - if GsParameter.get('PROVISIONING_KEY_LENGTH') == 0 %tr %td %strong= t('phones.show.provisioning_key_active') + ":" -- cgit v1.2.3 From aa5a2b806d117ffde9888e282c7100066156d94b Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Tue, 12 Feb 2013 12:46:36 +0100 Subject: Misc I18n and GUI improvements. --- app/views/call_routes/show.html.haml | 47 +++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 20 deletions(-) (limited to 'app') diff --git a/app/views/call_routes/show.html.haml b/app/views/call_routes/show.html.haml index a33a29b..998558e 100644 --- a/app/views/call_routes/show.html.haml +++ b/app/views/call_routes/show.html.haml @@ -1,26 +1,33 @@ - content_for :title, t("call_routes.show.page_title") -%p - %strong= t('call_routes.show.position') + ":" - = @call_route.position -%p - %strong= t('call_routes.show.table') + ":" - = @call_route.routing_table -%p - %strong= t('call_routes.show.name') + ":" - = @call_route.name -%p - %strong= t('call_routes.show.endpoint') + ":" - - endpoint = @call_route.endpoint - - if endpoint - = endpoint - - else - = @call_route.endpoint_type +.row + .span5 + %table.table.table-striped + %tr + %td + %strong= t('call_routes.show.table') + ":" + %td + = @call_route.routing_table + %tr + %td + %strong= t('call_routes.show.name') + ":" + %td + = @call_route.name + %tr + %td + %strong= t('call_routes.show.endpoint') + ":" + %td + - if @call_route.endpoint.blank? + = @call_route.endpoint_type + - else + = @call_route.endpoint = render :partial => 'shared/show_edit_destroy_part', :locals => { :child => @call_route } -%h3= t('route_elements.index.page_title') -- if @call_route.route_elements && @call_route.route_elements.count > 0 - = render "route_elements/index_core", :route_elements => @call_route.route_elements +.row + .span12 + %h3= t('route_elements.index.page_title') + - if @call_route.route_elements && @call_route.route_elements.count > 0 + = render "route_elements/index_core", :route_elements => @call_route.route_elements -= render :partial => 'shared/create_link', :locals => { :parent => @call_route, :child_class => RouteElement } + = render :partial => 'shared/create_link', :locals => { :parent => @call_route, :child_class => RouteElement } -- cgit v1.2.3 From f8f35f666613eff24d3988bda1a22cc40ef2ab30 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Tue, 12 Feb 2013 13:26:30 +0100 Subject: Make the call_elements table sortable by drag and drop. --- app/assets/javascripts/route_element.js.coffee | 6 ++++++ app/assets/stylesheets/application.css | 1 + app/assets/stylesheets/route_elements.css.scss | 5 +++++ app/controllers/route_elements_controller.rb | 14 +++++++------- app/models/call_route.rb | 2 +- app/views/call_routes/show.html.haml | 2 +- app/views/route_elements/_form_core.html.haml | 1 - app/views/route_elements/_index_core.html.haml | 12 ++++++++---- 8 files changed, 29 insertions(+), 14 deletions(-) create mode 100644 app/assets/javascripts/route_element.js.coffee create mode 100644 app/assets/stylesheets/route_elements.css.scss (limited to 'app') diff --git a/app/assets/javascripts/route_element.js.coffee b/app/assets/javascripts/route_element.js.coffee new file mode 100644 index 0000000..75dc553 --- /dev/null +++ b/app/assets/javascripts/route_element.js.coffee @@ -0,0 +1,6 @@ +jQuery -> + $('#route_elements').sortable + axis: 'y' + handle: '.handle' + update: -> + $.post($(this).data('update-url'), $(this).sortable('serialize')) \ No newline at end of file diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css index 3e1cc66..44868e4 100644 --- a/app/assets/stylesheets/application.css +++ b/app/assets/stylesheets/application.css @@ -15,4 +15,5 @@ *= require call_routes *= require softkeys *= require phone_numbers + *= require route_elements */ diff --git a/app/assets/stylesheets/route_elements.css.scss b/app/assets/stylesheets/route_elements.css.scss new file mode 100644 index 0000000..a0080ab --- /dev/null +++ b/app/assets/stylesheets/route_elements.css.scss @@ -0,0 +1,5 @@ +#route_elements .handle { + font-size: 12px; + color: #777; + cursor: move; +} \ No newline at end of file diff --git a/app/controllers/route_elements_controller.rb b/app/controllers/route_elements_controller.rb index 9c6f2b7..9c9033e 100644 --- a/app/controllers/route_elements_controller.rb +++ b/app/controllers/route_elements_controller.rb @@ -44,14 +44,14 @@ class RouteElementsController < ApplicationController redirect_to call_route_route_elements_path(@call_route), :notice => t('route_elements.controller.successfuly_destroyed') end - def move_higher - @route_element.move_higher - redirect_to :back - end + def sort + #call_route = RouteElement.find(params[:route_element].first).call_route + + params[:route_element].each do |route_element_id| + @call_route.route_elements.find(route_element_id).move_to_bottom + end - def move_lower - @route_element.move_lower - redirect_to :back + render nothing: true end private diff --git a/app/models/call_route.rb b/app/models/call_route.rb index 6e0dcab..8bc811a 100644 --- a/app/models/call_route.rb +++ b/app/models/call_route.rb @@ -4,7 +4,7 @@ class CallRoute < ActiveRecord::Base ROUTING_TABLES = ['prerouting', 'outbound', 'inbound', 'dtmf'] - has_many :route_elements, :dependent => :destroy + has_many :route_elements, :dependent => :destroy, :order => :position validates :name, :presence => true diff --git a/app/views/call_routes/show.html.haml b/app/views/call_routes/show.html.haml index 998558e..7c695c8 100644 --- a/app/views/call_routes/show.html.haml +++ b/app/views/call_routes/show.html.haml @@ -22,7 +22,7 @@ - else = @call_route.endpoint -= render :partial => 'shared/show_edit_destroy_part', :locals => { :child => @call_route } + = render :partial => 'shared/show_edit_destroy_part', :locals => { :child => @call_route } .row .span12 diff --git a/app/views/route_elements/_form_core.html.haml b/app/views/route_elements/_form_core.html.haml index d22467e..a9a38a7 100644 --- a/app/views/route_elements/_form_core.html.haml +++ b/app/views/route_elements/_form_core.html.haml @@ -4,5 +4,4 @@ = f.input :pattern, :label => t('route_elements.form.pattern.label'), :hint => conditional_hint('route_elements.form.pattern.hint') = f.input :replacement, :label => t('route_elements.form.replacement.label'), :hint => conditional_hint('route_elements.form.replacement.hint') = f.input :action, :collection => RouteElement::ELEMENT_ACTIONS, :label => t('route_elements.form.action.label'), :hint => conditional_hint('route_elements.form.action.hint'), :include_blank => false - = f.input :position, :label => t('route_elements.form.position.label'), :hint => conditional_hint('route_elements.form.position.hint') = f.input :mandatory, :label => t('route_elements.form.mandatory.label'), :hint => conditional_hint('route_elements.form.mandatory.hint') diff --git a/app/views/route_elements/_index_core.html.haml b/app/views/route_elements/_index_core.html.haml index f68a9ba..a88602f 100644 --- a/app/views/route_elements/_index_core.html.haml +++ b/app/views/route_elements/_index_core.html.haml @@ -1,7 +1,8 @@ %table.table.table-striped %thead %tr - %th + - if route_elements.count > 1 + %th %th= t('route_elements.index.var_in') %th= t('route_elements.index.var_out') %th= t('route_elements.index.pattern') @@ -9,10 +10,13 @@ %th= t('route_elements.index.action') %th= t('route_elements.index.mandatory') - %tbody + %tbody{ :id => "route_elements", :'data-update-url' => sort_call_route_route_elements_url(route_elements.first.call_route)} - for route_element in route_elements - %tr - %td= route_element.position + = content_tag_for :tr, route_element do + - if route_elements.count > 1 + %td + %span.handle + %i.icon-resize-vertical %td= route_element.var_in %td= route_element.var_out %td= route_element.pattern -- cgit v1.2.3 From fb66a5e5a4c5d5f9eac4a5e8de6a286482cb55d5 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Tue, 12 Feb 2013 13:41:13 +0100 Subject: Some span.hidden-phone stuff to improve the UI on a phone. --- app/views/route_elements/_index_core.html.haml | 40 ++++++++++++++----- app/views/route_elements/show.html.haml | 54 ++++++++++++++++---------- 2 files changed, 63 insertions(+), 31 deletions(-) (limited to 'app') diff --git a/app/views/route_elements/_index_core.html.haml b/app/views/route_elements/_index_core.html.haml index a88602f..b7d2bc1 100644 --- a/app/views/route_elements/_index_core.html.haml +++ b/app/views/route_elements/_index_core.html.haml @@ -3,12 +3,22 @@ %tr - if route_elements.count > 1 %th - %th= t('route_elements.index.var_in') - %th= t('route_elements.index.var_out') + %th + %span.hidden-phone + = t('route_elements.index.var_in') + %th + %span.hidden-phone + = t('route_elements.index.var_out') %th= t('route_elements.index.pattern') - %th= t('route_elements.index.replacement') - %th= t('route_elements.index.action') - %th= t('route_elements.index.mandatory') + %th + %span.hidden-phone + = t('route_elements.index.replacement') + %th + %span.hidden-phone + = t('route_elements.index.action') + %th + %span.hidden-phone + = t('route_elements.index.mandatory') %tbody{ :id => "route_elements", :'data-update-url' => sort_call_route_route_elements_url(route_elements.first.call_route)} - for route_element in route_elements @@ -17,10 +27,20 @@ %td %span.handle %i.icon-resize-vertical - %td= route_element.var_in - %td= route_element.var_out + %td + %span.hidden-phone + = route_element.var_in + %td + %span.hidden-phone + = route_element.var_out %td= route_element.pattern - %td= route_element.replacement - %td= route_element.action - %td= route_element.mandatory + %td + %span.hidden-phone + = route_element.replacement + %td + %span.hidden-phone + = route_element.action + %td + %span.hidden-phone + = route_element.mandatory =render :partial => 'shared/index_view_edit_destroy_part', :locals => {:parent => @call_route, :child => route_element} \ No newline at end of file diff --git a/app/views/route_elements/show.html.haml b/app/views/route_elements/show.html.haml index 1d07cbc..937df5e 100644 --- a/app/views/route_elements/show.html.haml +++ b/app/views/route_elements/show.html.haml @@ -1,25 +1,37 @@ - content_for :title, t("route_elements.show.page_title") -%p - %strong= t('route_elements.show.position') + ":" - = @route_element.position -%p - %strong= t('route_elements.show.var_in') + ":" - = @route_element.var_in -%p - %strong= t('route_elements.show.var_out') + ":" - = @route_element.var_out -%p - %strong= t('route_elements.show.pattern') + ":" - = @route_element.pattern -%p - %strong= t('route_elements.show.replacement') + ":" - = @route_element.replacement -%p - %strong= t('route_elements.show.action') + ":" - = @route_element.action -%p - %strong= t('route_elements.show.mandatory') + ":" - = @route_element.mandatory +.row + .span6 + %table.table.table-striped + %tr + %td + %strong= t('route_elements.show.var_in') + ":" + %td + = @route_element.var_in + %tr + %td + %strong= t('route_elements.show.var_out') + ":" + %td + = @route_element.var_out + %tr + %td + %strong= t('route_elements.show.pattern') + ":" + %td + = @route_element.pattern + %tr + %td + %strong= t('route_elements.show.replacement') + ":" + %td + = @route_element.replacement + %tr + %td + %strong= t('route_elements.show.action') + ":" + %td + = @route_element.action + %tr + %td + %strong= t('route_elements.show.mandatory') + ":" + %td + = @route_element.mandatory = render :partial => 'shared/show_edit_destroy_part', :locals => {:parent => @call_route, :child => @route_element } \ No newline at end of file -- cgit v1.2.3