From 963b3bbac2c6bb78fb6bf8321ca67ad55e90d56a Mon Sep 17 00:00:00 2001 From: Peter Kozak Date: Sun, 23 Dec 2012 11:23:11 +0100 Subject: translations --- config/locales/views/call_histories/de.yml | 1 + config/locales/views/call_histories/en.yml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/config/locales/views/call_histories/de.yml b/config/locales/views/call_histories/de.yml index 3f0459d..6c99aee 100644 --- a/config/locales/views/call_histories/de.yml +++ b/config/locales/views/call_histories/de.yml @@ -64,3 +64,4 @@ de: NO_USER_RESPONSE: 'Keine Antwort' NOANSWER: 'Keine Antwort' USER_NOT_REGISTERED: 'Offline' + USER_BUSY: 'Besetzt' diff --git a/config/locales/views/call_histories/en.yml b/config/locales/views/call_histories/en.yml index 5adf453..839c912 100644 --- a/config/locales/views/call_histories/en.yml +++ b/config/locales/views/call_histories/en.yml @@ -64,4 +64,4 @@ en: NO_USER_RESPONSE: 'No user response' NOANSWER: 'No answer' USER_NOT_REGISTERED: 'Offline' - \ No newline at end of file + USER_BUSY: 'Busy' -- cgit v1.2.3 From 9101b20cc5ca4e0553cfb4a503f0d2d51863ba37 Mon Sep 17 00:00:00 2001 From: spag Date: Sun, 23 Dec 2012 15:01:41 +0000 Subject: tennant added --- db/migrate/20121223110948_add_tenant_to_phone.rb | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 db/migrate/20121223110948_add_tenant_to_phone.rb diff --git a/db/migrate/20121223110948_add_tenant_to_phone.rb b/db/migrate/20121223110948_add_tenant_to_phone.rb new file mode 100644 index 0000000..dbe0412 --- /dev/null +++ b/db/migrate/20121223110948_add_tenant_to_phone.rb @@ -0,0 +1,6 @@ +class AddTenantToPhone < ActiveRecord::Migration + def change + add_column :phones, :tenant_id, :integer + + end +end -- cgit v1.2.3 From f425280a6312638f364f6ae8d915a30d78a8dce4 Mon Sep 17 00:00:00 2001 From: Peter Kozak Date: Sun, 23 Dec 2012 15:02:30 +0000 Subject: fallback_sip_account added --- db/migrate/20121223111155_add_fallback_sip_account_to_phone.rb | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 db/migrate/20121223111155_add_fallback_sip_account_to_phone.rb diff --git a/db/migrate/20121223111155_add_fallback_sip_account_to_phone.rb b/db/migrate/20121223111155_add_fallback_sip_account_to_phone.rb new file mode 100644 index 0000000..94a8050 --- /dev/null +++ b/db/migrate/20121223111155_add_fallback_sip_account_to_phone.rb @@ -0,0 +1,6 @@ +class AddFallbackSipAccountToPhone < ActiveRecord::Migration + def change + add_column :phones, :fallback_sip_account_id, :integer + + end +end -- cgit v1.2.3 From 55a0d5ce38f99226174f358279c02178eacd75d7 Mon Sep 17 00:00:00 2001 From: spag Date: Sun, 23 Dec 2012 16:04:05 +0100 Subject: login/logout methods --- app/controllers/config_siemens_controller.rb | 18 ++++---- app/controllers/config_snom_controller.rb | 19 +++++---- app/controllers/phones_controller.rb | 5 ++- app/models/phone.rb | 27 ++++-------- misc/freeswitch/scripts/dialplan/functions.lua | 2 +- misc/freeswitch/scripts/phones/phone.lua | 58 ++++++++++++++++++-------- 6 files changed, 75 insertions(+), 54 deletions(-) diff --git a/app/controllers/config_siemens_controller.rb b/app/controllers/config_siemens_controller.rb index f398b1a..c09dfcf 100644 --- a/app/controllers/config_siemens_controller.rb +++ b/app/controllers/config_siemens_controller.rb @@ -80,6 +80,7 @@ class ConfigSiemensController < ApplicationController @phone.mac_address = mac_address @phone.hot_deskable = true @phone.phone_model = PhoneModel.where('name LIKE ?', "#{phone_type}").first + @phone.tenant = tenant if ! @phone.save render( :status => 500, @@ -128,16 +129,13 @@ class ConfigSiemensController < ApplicationController return end - phone_sip_account = PhoneSipAccount.new() - phone_sip_account.phone_id = @phone.id - phone_sip_account.sip_account_id = @sip_account.id - - if ! phone_sip_account.save + @phone.fallback_sip_account = @sip_account + if ! @phone.save render( :status => 500, :layout => false, :content_type => 'text/plain', - :text => "", + :text => "", ) return end @@ -152,13 +150,17 @@ class ConfigSiemensController < ApplicationController @sip_account = @phone.sip_accounts.where(:sip_accountable_type => @phone.phoneable_type, :sip_accountable_id => @phone.phoneable_id).first + if !@sip_account + @sip_account = @phone.fallback_sip_account + end + + tenant = @phone.tenant + if @phone.phoneable if @phone.phoneable_type == 'Tenant' - tenant = @phone.phoneable language = tenant.language.code elsif @phone.phoneable_type == 'User' language = @phone.phoneable.language.code - tenant = @phone.phoneable.current_tenant end end diff --git a/app/controllers/config_snom_controller.rb b/app/controllers/config_snom_controller.rb index 74a117d..4d12082 100644 --- a/app/controllers/config_snom_controller.rb +++ b/app/controllers/config_snom_controller.rb @@ -49,6 +49,7 @@ class ConfigSnomController < ApplicationController @phone = tenant.phones.build @phone.mac_address = @mac_address @phone.hot_deskable = true + @phone.tenant = tenant mac_address_to_model = { '00041325' => 'Snom 300', @@ -130,20 +131,16 @@ class ConfigSnomController < ApplicationController return end - phone_sip_account = PhoneSipAccount.new() - phone_sip_account.phone_id = @phone.id - phone_sip_account.sip_account_id = @sip_account.id - - if ! phone_sip_account.save + @phone.fallback_sip_account = @sip_account + if ! @phone.save render( :status => 500, :layout => false, :content_type => 'text/plain', - :text => "", + :text => "", ) return end - end elsif ! params[:phone].blank? then @phone = Phone.where({ :id => params[:phone].to_i }).first @@ -238,9 +235,15 @@ class ConfigSnomController < ApplicationController @softkeys = Array.new() @sip_accounts = Array.new() + phone_sip_accounts = Array.new() if send_sensitve - @phone.sip_accounts.each do |sip_account| + 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 + 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 = { :id => sip_account.id, diff --git a/app/controllers/phones_controller.rb b/app/controllers/phones_controller.rb index d46bf86..0b765e8 100644 --- a/app/controllers/phones_controller.rb +++ b/app/controllers/phones_controller.rb @@ -14,7 +14,6 @@ class PhonesController < ApplicationController def new @phone = @phoneable.phones.build() - # Use the last phone.phone_model as the default. # @phone.phone_model_id = Phone.last.try(:phone_model).try(:id) @@ -22,6 +21,10 @@ class PhonesController < ApplicationController def create @phone = @phoneable.phones.build(params[:phone]) + if !@tenant + @tenant = @user.current_tenant + end + @phone.tenant = @tenant if @phone.save m = method( :"#{@phoneable.class.name.underscore}_phone_path" ) redirect_to m.( @phoneable, @phone ), :notice => t('phones.controller.successfuly_created') diff --git a/app/models/phone.rb b/app/models/phone.rb index 89371eb..bd6e3f6 100644 --- a/app/models/phone.rb +++ b/app/models/phone.rb @@ -14,6 +14,9 @@ class Phone < ActiveRecord::Base has_many :phone_sip_accounts, :dependent => :destroy, :uniq => true, :order => :position has_many :sip_accounts, :through => :phone_sip_accounts + belongs_to :tenant + belongs_to :fallback_sip_account, :class_name => "SipAccount" + # Validations # before_validation :sanitize_mac_address @@ -138,6 +141,8 @@ class Phone < ActiveRecord::Base end end + PhoneSipAccount.where(:phone_id => self.id).destroy_all + self.phoneable = user sip_accounts.each do |sip_account| if ! self.sip_accounts.where(:id => sip_account.id).first @@ -163,37 +168,21 @@ class Phone < ActiveRecord::Base # OPTIMIZE i18n translations def user_logout - if ! self.hot_deskable or self.phoneable_type == 'Tenant' + if ! self.hot_deskable errors.add(:hot_deskable, "Phone not hot-deskable") return false end sip_account = self.sip_accounts.where(:sip_accountable_type => self.phoneable_type).first - tenant_sip_account = self.sip_accounts.where(:sip_accountable_type => 'Tenant').first - if tenant_sip_account - tenant = tenant_sip_account.sip_accountable - end - - sip_account_ids = Array.new() - self.sip_accounts.where(:sip_accountable_type => 'User', :hotdeskable => true).each do |sip_account| - sip_account_ids.push(sip_account.id) - end - - if tenant - self.phoneable = tenant - @not_destroy_phones_sip_accounts = true + if self.tenant + self.phoneable = self.tenant if ! self.save errors.add(:phoneable, "Could not change owner") return false end end - if ! PhoneSipAccount.destroy_all(:sip_account_id => sip_account_ids) - errors.add(:sip_accounts, "Could not delete sip_accounts") - return false - end - sleep(0.5) if ! self.resync(true, sip_account) diff --git a/misc/freeswitch/scripts/dialplan/functions.lua b/misc/freeswitch/scripts/dialplan/functions.lua index c104f89..9a89857 100644 --- a/misc/freeswitch/scripts/dialplan/functions.lua +++ b/misc/freeswitch/scripts/dialplan/functions.lua @@ -31,7 +31,7 @@ function Functions.dialplan_function(self, caller, dialed_number) local fid = tostring(parameters[2]); local result = { continue = false, code = 404, phrase = 'Function not found', no_cdr = true }; - self.log:debug('DIALPLAN_DUNCTION - execute: ', dialed_number); + self.log:debug('DIALPLAN_FUNCTION - execute: ', dialed_number); if fid == "ta" then result = self:transfer_all(caller, parameters[3]); diff --git a/misc/freeswitch/scripts/phones/phone.lua b/misc/freeswitch/scripts/phones/phone.lua index 5cd210b..4a32c37 100644 --- a/misc/freeswitch/scripts/phones/phone.lua +++ b/misc/freeswitch/scripts/phones/phone.lua @@ -18,6 +18,26 @@ function Phone.new(self, arg) end +function Phone.list_by_sql(self, sql_query) + local account_phones = {}; + + self.database:query(sql_query, function(account_entry) + local phone = Phone:new(self, {object = parent_class}); + phone.record = account_entry; + phone.record.ieee_name = common.str.downcase(account_entry.ieee_name); + + if phone.record.ieee_name == 'snom technology ag' then + require 'phones.snom' + phone.model = phones.snom.Snom:new(); + elseif account_entry.ieee_name == 'siemens enterprise communicationsgmbh & co. kg' then + require 'phones.siemens' + phone.model = phones.siemens.Siemens:new(); + end + table.insert(account_phones, phone); + end) + + return account_phones; +end -- Find a hot-deskable phone by sip-account function Phone.find_all_hot_deskable_by_account(self, account_id) @@ -25,7 +45,7 @@ function Phone.find_all_hot_deskable_by_account(self, account_id) local sql_query = 'SELECT \ `b`.`id`, `b`.`mac_address`, `b`.`ip_address`, `b`.`http_user`, `b`.`http_password`, `b`.`phoneable_type`, `b`.`phoneable_id`, \ - `d`.`ieee_name` \ + `b`.`tenant_id`, `b`.`fallback_sip_account_id`, `d`.`ieee_name` \ FROM `phone_sip_accounts` `a` \ JOIN `phones` `b` ON `a`.`phone_id` = `b`.`id` \ JOIN `phone_models` `c` ON `b`.`phone_model_id` = `c`.`id` \ @@ -35,22 +55,21 @@ function Phone.find_all_hot_deskable_by_account(self, account_id) AND `d`.`state` = "active" \ AND `a`.`sip_account_id` = ' .. tonumber(account_id); - local account_phones = {}; + local account_phones = self:list_by_sql(sql_query); - self.database:query(sql_query, function(account_entry) - local phone = Phone:new(self, {object = parent_class}); - phone.record = account_entry; - phone.record.ieee_name = common.str.downcase(account_entry.ieee_name); + if #account_phones == 0 then + sql_query = 'SELECT `b`.`id`, `b`.`mac_address`, `b`.`ip_address`, `b`.`http_user`, `b`.`http_password`, `b`.`phoneable_type`, `b`.`phoneable_id`, \ + `b`.`tenant_id`, `b`.`fallback_sip_account_id`, `d`.`ieee_name` \ + FROM `phones` `b` \ + JOIN `phone_models` `c` ON `b`.`phone_model_id` = `c`.`id` \ + JOIN `manufacturers` `d` ON `c`.`manufacturer_id` = `d`.`id` \ + WHERE `b`.`hot_deskable` IS TRUE \ + AND `c`.`state` = "active" \ + AND `d`.`state` = "active" \ + AND `b`.`fallback_sip_account_id` = ' .. tonumber(account_id); - if phone.record.ieee_name == 'snom technology ag' then - require 'phones.snom' - phone.model = phones.snom.Snom:new(); - elseif account_entry.ieee_name == 'siemens enterprise communicationsgmbh & co. kg' then - require 'phones.siemens' - phone.model = phones.siemens.Siemens:new(); - end - table.insert(account_phones, phone); - end) + account_phones = self:list_by_sql(sql_query); + end return account_phones; end @@ -82,7 +101,7 @@ function Phone.phoneable_set(self, phoneable_id, phoneable_type) end function Phone.logout(self, account_id) - local tenant_id = self:tenant_id_get(); + local tenant_id = tonumber(self.record.tenant_id); if not tenant_id then self.log:info('PHONE_LOGOUT - tenant not found'); @@ -91,7 +110,12 @@ function Phone.logout(self, account_id) self:phoneable_set(tenant_id, 'Tenant'); - sql_query = 'DELETE FROM `phone_sip_accounts` WHERE `sip_account_id` = ' .. tonumber(account_id); + if account_id then + sql_query = 'DELETE FROM `phone_sip_accounts` WHERE `sip_account_id` = ' .. tonumber(account_id); + self.database:query(sql_query); + end + + sql_query = 'DELETE FROM `phone_sip_accounts` WHERE `phone_id` = ' .. self.record.id; return self.database:query(sql_query); end -- cgit v1.2.3 From eea25f2f08c37593d7057a8af78412cb6b72c671 Mon Sep 17 00:00:00 2001 From: spag Date: Sun, 23 Dec 2012 16:06:07 +0100 Subject: obsolete methods deleted --- misc/freeswitch/scripts/phones/phone.lua | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/misc/freeswitch/scripts/phones/phone.lua b/misc/freeswitch/scripts/phones/phone.lua index 4a32c37..bc2aa3d 100644 --- a/misc/freeswitch/scripts/phones/phone.lua +++ b/misc/freeswitch/scripts/phones/phone.lua @@ -80,20 +80,6 @@ function Phone.find_hot_deskable_by_account(self, account_id) end -function Phone.tenant_id_get(self) - local sql_query = 'SELECT `c`.`sip_accountable_id` \ - FROM `phones` `a` LEFT JOIN `phone_sip_accounts` `b` ON `a`.`id` = `b`.`phone_id` \ - JOIN `sip_accounts` `c` ON `b`.`sip_account_id` = `c`.`id` AND `sip_accountable_type` = "Tenant" \ - WHERE `a`.`id` = ' .. tonumber(self.record.id) .. ' LIMIT 1'; - - local tenant_id = nil; - self.database:query(sql_query, function(tenant_entry) - tenant_id = tenant_entry.sip_accountable_id; - end) - - return tenant_id; -end - function Phone.phoneable_set(self, phoneable_id, phoneable_type) sql_query = 'UPDATE `phones` SET `phoneable_type` = "' .. phoneable_type ..'", `phoneable_id` = ' .. phoneable_id .. ' \ WHERE `id` = ' .. tonumber(self.record.id); -- cgit v1.2.3 From e9dc7ef003b6adf68e6751b71a8347b843c54619 Mon Sep 17 00:00:00 2001 From: spag Date: Sun, 23 Dec 2012 18:36:05 +0100 Subject: save clir value --- misc/freeswitch/scripts/dialplan/dialplan.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/misc/freeswitch/scripts/dialplan/dialplan.lua b/misc/freeswitch/scripts/dialplan/dialplan.lua index f4dca9e..70edaa1 100644 --- a/misc/freeswitch/scripts/dialplan/dialplan.lua +++ b/misc/freeswitch/scripts/dialplan/dialplan.lua @@ -905,9 +905,8 @@ function Dialplan.run(self, destination) end end - self.log:info('DIALPLAN start - caller_id: ',self.caller.caller_id_number, ' "', self.caller.caller_id_name,'"', - ', number: ', destination.number); - + self.log:info('DIALPLAN start - caller_id: ',self.caller.caller_id_number, ' "', self.caller.caller_id_name, ', number: ', destination.number); + local result = { continue = false }; local loop = self.caller.loop_count; while self.caller:ready() and loop < self.max_loops do @@ -918,6 +917,7 @@ function Dialplan.run(self, destination) ' - destination: ', destination.type, '=', destination.id, '/', destination.uuid,'@', destination.node_id, ', number: ', destination.number); + self.caller:set_variable('gs_clir', self.caller.clir); self.caller:set_variable('gs_destination_type', destination.type); self.caller:set_variable('gs_destination_id', destination.id); self.caller:set_variable('gs_destination_uuid', destination.uuid); -- cgit v1.2.3 From 644af185f879b957d94b7e0207fdeff1d3132767 Mon Sep 17 00:00:00 2001 From: spag Date: Sun, 23 Dec 2012 18:36:45 +0100 Subject: save clir value --- misc/freeswitch/scripts/common/call_history.lua | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/misc/freeswitch/scripts/common/call_history.lua b/misc/freeswitch/scripts/common/call_history.lua index c5bc0bf..364cfbf 100644 --- a/misc/freeswitch/scripts/common/call_history.lua +++ b/misc/freeswitch/scripts/common/call_history.lua @@ -70,8 +70,6 @@ function CallHistory.insert_event(self, uuid, account_type, account_id, entry_ty call_history.callee_id_name = common.str.to_sql(event:getHeader('variable_effective_callee_id_name')); call_history.result = common.str.to_sql(event:getHeader('variable_hangup_cause')); call_history.start_stamp = 'FROM_UNIXTIME(' .. math.floor(common.str.to_i(event:getHeader('Caller-Channel-Created-Time')) / 1000000) .. ')'; - call_history.caller_account_type = common.str.to_sql(camelize_type(event:getHeader('variable_gs_caller_account_type') or event:getHeader('variable_gs_account_type'))); - call_history.caller_account_id = common.str.to_sql(event:getHeader('variable_gs_caller_account_id') or event:getHeader('variable_gs_account_id')); call_history.auth_account_type = common.str.to_sql(camelize_type(event:getHeader('variable_gs_auth_account_type'))); call_history.auth_account_id = common.str.to_sql(event:getHeader('variable_gs_auth_account_id')); call_history.callee_account_type = common.str.to_sql(camelize_type(event:getHeader('variable_gs_destination_type'))); @@ -79,6 +77,11 @@ function CallHistory.insert_event(self, uuid, account_type, account_id, entry_ty call_history.destination_number = common.str.to_sql(event:getHeader('variable_gs_destination_number')); call_history.forwarding_service = common.str.to_sql(event:getHeader('variable_gs_forwarding_service')); + if not common.str.to_b(event:getHeader('variable_gs_clir')) then + call_history.caller_account_type = common.str.to_sql(camelize_type(event:getHeader('variable_gs_caller_account_type') or event:getHeader('variable_gs_account_type'))); + call_history.caller_account_id = common.str.to_sql(event:getHeader('variable_gs_caller_account_id') or event:getHeader('variable_gs_account_id')); + end + if common.str.to_s(event:getHeader('variable_gs_call_service')) == 'pickup' then call_history.forwarding_service = common.str.to_sql('pickup'); end @@ -111,7 +114,7 @@ function CallHistory.insert_forwarded(self, uuid, account_type, account_id, call call_history.result = common.str.to_sql(result.cause or 'UNSPECIFIED'); call_history.start_stamp = 'FROM_UNIXTIME(' .. math.floor(caller:to_i('created_time') / 1000000) .. ')'; - if caller.account then + if caller.account and not common.str.to_b(event:getHeader('variable_gs_clir')) then call_history.caller_account_type = common.str.to_sql(camelize_type(caller.account.class)); call_history.caller_account_id = common.str.to_sql(caller.account.id); end -- cgit v1.2.3 From 98fe29192d3fb3f79ad8913b73c89b6e7f234eb4 Mon Sep 17 00:00:00 2001 From: spag Date: Mon, 24 Dec 2012 15:10:03 +0100 Subject: typo --- misc/freeswitch/scripts/dialplan/dialplan.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/misc/freeswitch/scripts/dialplan/dialplan.lua b/misc/freeswitch/scripts/dialplan/dialplan.lua index 70edaa1..bb4ad9f 100644 --- a/misc/freeswitch/scripts/dialplan/dialplan.lua +++ b/misc/freeswitch/scripts/dialplan/dialplan.lua @@ -905,7 +905,7 @@ function Dialplan.run(self, destination) end end - self.log:info('DIALPLAN start - caller_id: ',self.caller.caller_id_number, ' "', self.caller.caller_id_name, ', number: ', destination.number); + self.log:info('DIALPLAN start - caller_id: ',self.caller.caller_id_number, ' "', self.caller.caller_id_name, '" , number: ', destination.number); local result = { continue = false }; local loop = self.caller.loop_count; -- cgit v1.2.3 From b76b13bff13cd6bcb2d543386cae9868cd4d882f Mon Sep 17 00:00:00 2001 From: spag Date: Thu, 27 Dec 2012 14:09:53 +0100 Subject: Fallback sip account in phone views --- app/controllers/phones_controller.rb | 4 ++++ app/models/phone.rb | 2 +- app/views/phones/_form_core.html.haml | 1 + app/views/phones/show.html.haml | 5 +++++ config/locales/views/phones/de.yml | 4 ++++ config/locales/views/phones/en.yml | 4 ++++ 6 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app/controllers/phones_controller.rb b/app/controllers/phones_controller.rb index 0b765e8..b865cb1 100644 --- a/app/controllers/phones_controller.rb +++ b/app/controllers/phones_controller.rb @@ -13,6 +13,8 @@ class PhonesController < ApplicationController end def new + used_sip_account_ids = Phone.where('fallback_sip_account_id IS NOT NULL').collect {|r| r.fallback_sip_account } + @fallback_sip_accounts = SipAccount.where('sip_accountable_type = "Tenant" AND id NOT IN (?)', used_sip_account_ids).all @phone = @phoneable.phones.build() # Use the last phone.phone_model as the default. # @@ -34,6 +36,8 @@ class PhonesController < ApplicationController end def edit + used_sip_account_ids = Phone.where('fallback_sip_account_id IS NOT NULL AND id != ?', @phone.id).collect {|r| r.fallback_sip_account_id } + @fallback_sip_accounts = SipAccount.where('sip_accountable_type = "Tenant" AND id NOT IN (?)', used_sip_account_ids).all end def update diff --git a/app/models/phone.rb b/app/models/phone.rb index bd6e3f6..f78ebe2 100644 --- a/app/models/phone.rb +++ b/app/models/phone.rb @@ -4,7 +4,7 @@ class Phone < ActiveRecord::Base attr_accessible :mac_address, :ip_address, :http_user, :http_password, :phone_model_id, :hot_deskable, :nightly_reboot, - :provisioning_key, :provisioning_key_active + :provisioning_key, :provisioning_key_active, :fallback_sip_account_id, :tenant # Associations # diff --git a/app/views/phones/_form_core.html.haml b/app/views/phones/_form_core.html.haml index 51ceff5..96e53e6 100644 --- a/app/views/phones/_form_core.html.haml +++ b/app/views/phones/_form_core.html.haml @@ -2,6 +2,7 @@ = f.input :mac_address, :label => t('phones.form.mac_address.label'), :hint => conditional_hint('phones.form.mac_address.hint') = f.association :phone_model, :label => t('phones.form.phone_model_id.label'), :hint => conditional_hint('phones.form.phone_model_id.hint') = f.input :hot_deskable, :label => t('phones.form.hot_deskable.label'), :hint => conditional_hint('phones.form.hot_deskable.hint') + = f.association :fallback_sip_account, :collection => @fallback_sip_accounts, :label => t('phones.form.fallback_sip_account_id.label'), :hint => conditional_hint('phones.form.fallback_sip_account_id.hint'), :include_blank => true - if defined? NIGHTLY_REBOOT_OF_PHONES && 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 defined? PROVISIONING_KEY_LENGTH && PROVISIONING_KEY_LENGTH > 0 diff --git a/app/views/phones/show.html.haml b/app/views/phones/show.html.haml index 2664ffa..7629fb9 100644 --- a/app/views/phones/show.html.haml +++ b/app/views/phones/show.html.haml @@ -9,6 +9,11 @@ %p %strong= t('phones.show.hot_deskable') + ":" = @phone.hot_deskable + +%p + %strong= t('phones.show.fallback_sip_account_id') + ":" + = @phone.fallback_sip_account + - if defined? NIGHTLY_REBOOT_OF_PHONES && NIGHTLY_REBOOT_OF_PHONES == true %p %strong= t('phones.show.nightly_reboot') + ":" diff --git a/config/locales/views/phones/de.yml b/config/locales/views/phones/de.yml index 3a0adea..2b655bd 100644 --- a/config/locales/views/phones/de.yml +++ b/config/locales/views/phones/de.yml @@ -33,6 +33,7 @@ de: http_user: 'http user' http_password: 'http password' nightly_reboot: 'Nachts automatischer Reboot' + fallback_sip_account_id: 'Fallback SIP Account' actions: confirm: 'Sind Sie sicher, dass Sie diese Telefon aus Gemeinschaft entfernen möchten?' destroy: 'Löschen' @@ -71,6 +72,9 @@ de: provisioning_key_active: label: 'Provisioning Schlüssel aktiv' hint: '' + fallback_sip_account_id: + label: 'Fallback SIP Account' + hint: '' button: 'Absenden' sip_accounts: title: 'Auf dem Telefon eingetragene SIP-Konten' diff --git a/config/locales/views/phones/en.yml b/config/locales/views/phones/en.yml index afcf9b5..a441e34 100644 --- a/config/locales/views/phones/en.yml +++ b/config/locales/views/phones/en.yml @@ -33,6 +33,7 @@ en: http_password: 'http password' nightly_reboot: 'Nightly reboot' provisioning_key_active: 'Provisioning key active' + fallback_sip_account_id: 'Fallback SIP Account' actions: confirm: 'Are you sure you want to delete this phone?' destroy: 'Delete phone' @@ -71,6 +72,9 @@ en: provisioning_key_active: label: 'Provisioning key active' hint: '' + fallback_sip_account_id: + label: 'Fallback SIP Account' + hint: '' button: 'Submit' sip_accounts: title: 'Listing of connected SIP accounts' -- cgit v1.2.3 From 66e54fe90fa3a759a5e33cd018703992da475c63 Mon Sep 17 00:00:00 2001 From: spag Date: Thu, 27 Dec 2012 23:35:17 +0100 Subject: variable context fixed --- misc/freeswitch/scripts/common/call_history.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/misc/freeswitch/scripts/common/call_history.lua b/misc/freeswitch/scripts/common/call_history.lua index 364cfbf..7a9ac07 100644 --- a/misc/freeswitch/scripts/common/call_history.lua +++ b/misc/freeswitch/scripts/common/call_history.lua @@ -114,7 +114,7 @@ function CallHistory.insert_forwarded(self, uuid, account_type, account_id, call call_history.result = common.str.to_sql(result.cause or 'UNSPECIFIED'); call_history.start_stamp = 'FROM_UNIXTIME(' .. math.floor(caller:to_i('created_time') / 1000000) .. ')'; - if caller.account and not common.str.to_b(event:getHeader('variable_gs_clir')) then + if caller.account and not caller.clir then call_history.caller_account_type = common.str.to_sql(camelize_type(caller.account.class)); call_history.caller_account_id = common.str.to_sql(caller.account.id); end -- cgit v1.2.3 From 43199a00bcb0cc93775a3e3b71abea476a33a1a7 Mon Sep 17 00:00:00 2001 From: spag Date: Thu, 27 Dec 2012 23:54:40 +0100 Subject: save date and time to caller record --- misc/freeswitch/scripts/dialplan/dialplan.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/misc/freeswitch/scripts/dialplan/dialplan.lua b/misc/freeswitch/scripts/dialplan/dialplan.lua index bb4ad9f..391f5bf 100644 --- a/misc/freeswitch/scripts/dialplan/dialplan.lua +++ b/misc/freeswitch/scripts/dialplan/dialplan.lua @@ -872,6 +872,8 @@ function Dialplan.run(self, destination) self.caller:set_variable('gs_save_cdr', true); self.caller:set_variable('gs_call_service', 'dial'); self.caller.session:setAutoHangup(false); + self.caller.date = os.date('%y%m%d%w'); + self.caller.time = os.date('%H%M%S'); self.routes = common.configuration_file.get('/opt/freeswitch/scripts/ini/routes.ini'); self.caller.domain_local = self.domain; -- cgit v1.2.3 From 8dad9594fbcc8c236a350266c4538a92eeae2772 Mon Sep 17 00:00:00 2001 From: spag Date: Fri, 28 Dec 2012 12:07:58 +0100 Subject: fallback_sip_account_id should be unique --- app/models/phone.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/models/phone.rb b/app/models/phone.rb index f78ebe2..9e5766a 100644 --- a/app/models/phone.rb +++ b/app/models/phone.rb @@ -32,6 +32,8 @@ class Phone < ActiveRecord::Base validates_presence_of :phone_model validates_presence_of :phoneable + + validates_uniqueness_of :fallback_sip_account_id before_save :save_last_ip_address before_save :destroy_phones_sip_accounts_if_phoneable_changed -- cgit v1.2.3 From a6d6c880f909af56e345eff1bd33db4c4b76b63d Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Fri, 28 Dec 2012 12:08:03 +0100 Subject: Updates some needed attributes of old installations. closes #32 --- db/migrate/20121228101454_update_tenant_id.rb | 12 ++++++++++++ db/schema.rb | 4 +++- 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20121228101454_update_tenant_id.rb diff --git a/db/migrate/20121228101454_update_tenant_id.rb b/db/migrate/20121228101454_update_tenant_id.rb new file mode 100644 index 0000000..5c46b04 --- /dev/null +++ b/db/migrate/20121228101454_update_tenant_id.rb @@ -0,0 +1,12 @@ +class UpdateTenantId < ActiveRecord::Migration + def up + Phone.where(:hot_deskable => true).each do |phone| + phone.tenant_id = Tenant.last.id + phone.fallback_sip_account = phone.sip_accounts.where(:sip_accountable_type => 'Tenant').first + phone.save + end + end + + def down + end +end diff --git a/db/schema.rb b/db/schema.rb index 1395e1b..804ff5f 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20121125084447) do +ActiveRecord::Schema.define(:version => 20121228101454) do create_table "access_authorizations", :force => true do |t| t.string "access_authorizationable_type" @@ -738,6 +738,8 @@ ActiveRecord::Schema.define(:version => 20121125084447) do t.boolean "nightly_reboot" t.string "provisioning_key" t.boolean "provisioning_key_active" + t.integer "tenant_id" + t.integer "fallback_sip_account_id" end create_table "registrations", :id => false, :force => true do |t| -- cgit v1.2.3 From e19843740a9c45c47d6dd65bc337353bb6826d4d Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Fri, 28 Dec 2012 12:45:14 +0100 Subject: Fixed validation. --- app/models/phone.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/phone.rb b/app/models/phone.rb index 9e5766a..1f3c497 100644 --- a/app/models/phone.rb +++ b/app/models/phone.rb @@ -33,7 +33,7 @@ class Phone < ActiveRecord::Base validates_presence_of :phone_model validates_presence_of :phoneable - validates_uniqueness_of :fallback_sip_account_id + validates_uniqueness_of :fallback_sip_account_id, :allow_nil => true before_save :save_last_ip_address before_save :destroy_phones_sip_accounts_if_phoneable_changed -- cgit v1.2.3 From 9190c997fe17ed1c680d2b073c8d2e21ac864b57 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Fri, 28 Dec 2012 12:57:24 +0100 Subject: Update some Phone attributes. Which where introduced with 9101b20cc5ca4e0553cfb4a503f0d2d51863ba37 --- db/migrate/20121228101454_update_tenant_id.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/db/migrate/20121228101454_update_tenant_id.rb b/db/migrate/20121228101454_update_tenant_id.rb index 5c46b04..dc2f37c 100644 --- a/db/migrate/20121228101454_update_tenant_id.rb +++ b/db/migrate/20121228101454_update_tenant_id.rb @@ -1,7 +1,11 @@ class UpdateTenantId < ActiveRecord::Migration def up - Phone.where(:hot_deskable => true).each do |phone| + Phone.all.each do |phone| phone.tenant_id = Tenant.last.id + phone.save + end + + Phone.where(:hot_deskable => true).each do |phone| phone.fallback_sip_account = phone.sip_accounts.where(:sip_accountable_type => 'Tenant').first phone.save end -- cgit v1.2.3 From 3b07751150c0cd70eee4e750dd7a3670120a8675 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Fri, 28 Dec 2012 19:31:31 +0100 Subject: Fallback SIP Accounts are only shown when the hotdeskable field is checked. --- app/assets/javascripts/application.js | 1 + app/assets/javascripts/phones.js.coffee | 5 +++++ app/controllers/phones_controller.rb | 6 ++++-- app/views/layouts/application.html.haml | 1 - app/views/phones/_form_core.html.haml | 8 +++++--- app/views/phones/show.html.haml | 14 +++++++------- 6 files changed, 22 insertions(+), 13 deletions(-) create mode 100644 app/assets/javascripts/phones.js.coffee diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 2e0b0d8..1762043 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -10,4 +10,5 @@ //= require vendor/modernizr-2.0.6.min.js //= require vendor/jquery.condom.js //= require vendor/jquery.survival-kit +//= require phones //= require softkeys diff --git a/app/assets/javascripts/phones.js.coffee b/app/assets/javascripts/phones.js.coffee new file mode 100644 index 0000000..ff54777 --- /dev/null +++ b/app/assets/javascripts/phones.js.coffee @@ -0,0 +1,5 @@ +jQuery -> + $(".fallback_sip_account_dropdown").hide() + + $("#phone_hot_deskable").change -> + $(".fallback_sip_account_dropdown").show("slow") diff --git a/app/controllers/phones_controller.rb b/app/controllers/phones_controller.rb index b865cb1..b23a589 100644 --- a/app/controllers/phones_controller.rb +++ b/app/controllers/phones_controller.rb @@ -13,9 +13,11 @@ class PhonesController < ApplicationController end def new - used_sip_account_ids = Phone.where('fallback_sip_account_id IS NOT NULL').collect {|r| r.fallback_sip_account } - @fallback_sip_accounts = SipAccount.where('sip_accountable_type = "Tenant" AND id NOT IN (?)', used_sip_account_ids).all + used_sip_account_ids = Phone.where(:fallback_sip_account_id => SipAccount.pluck(:id)).pluck(:fallback_sip_account_id) + @fallback_sip_accounts = SipAccount.where(:sip_accountable_type => 'Tenant').where(:hotdeskable => true) - SipAccount.where(:id => used_sip_account_ids) + @phone = @phoneable.phones.build() + # Use the last phone.phone_model as the default. # @phone.phone_model_id = Phone.last.try(:phone_model).try(:id) diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index f2aff0a..8ab9039 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -20,7 +20,6 @@ %body #container = render :partial => "shared/header" - = render :partial => "shared/system_message" = render :partial => "shared/flash", :locals => { :flash => flash} #content{:role => 'main'} diff --git a/app/views/phones/_form_core.html.haml b/app/views/phones/_form_core.html.haml index 96e53e6..20ea054 100644 --- a/app/views/phones/_form_core.html.haml +++ b/app/views/phones/_form_core.html.haml @@ -1,8 +1,10 @@ .inputs = f.input :mac_address, :label => t('phones.form.mac_address.label'), :hint => conditional_hint('phones.form.mac_address.hint') - = f.association :phone_model, :label => t('phones.form.phone_model_id.label'), :hint => conditional_hint('phones.form.phone_model_id.hint') - = f.input :hot_deskable, :label => t('phones.form.hot_deskable.label'), :hint => conditional_hint('phones.form.hot_deskable.hint') - = f.association :fallback_sip_account, :collection => @fallback_sip_accounts, :label => t('phones.form.fallback_sip_account_id.label'), :hint => conditional_hint('phones.form.fallback_sip_account_id.hint'), :include_blank => true + = f.association :phone_model, :label => t('phones.form.phone_model_id.label'), :hint => conditional_hint('phones.form.phone_model_id.hint'), :include_blank => false + - if @fallback_sip_accounts.any? + = f.input :hot_deskable, :label => t('phones.form.hot_deskable.label'), :hint => conditional_hint('phones.form.hot_deskable.hint') + .fallback_sip_account_dropdown + = f.association :fallback_sip_account, :collection => @fallback_sip_accounts, :label => t('phones.form.fallback_sip_account_id.label'), :hint => conditional_hint('phones.form.fallback_sip_account_id.hint'), :include_blank => false - if defined? NIGHTLY_REBOOT_OF_PHONES && 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 defined? PROVISIONING_KEY_LENGTH && PROVISIONING_KEY_LENGTH > 0 diff --git a/app/views/phones/show.html.haml b/app/views/phones/show.html.haml index 7629fb9..090323e 100644 --- a/app/views/phones/show.html.haml +++ b/app/views/phones/show.html.haml @@ -6,13 +6,13 @@ %p %strong= t('phones.show.phone_model_id') + ":" = @phone.phone_model -%p - %strong= t('phones.show.hot_deskable') + ":" - = @phone.hot_deskable - -%p - %strong= t('phones.show.fallback_sip_account_id') + ":" - = @phone.fallback_sip_account +- if @phone.hot_deskable == true + %p + %strong= t('phones.show.hot_deskable') + ":" + = @phone.hot_deskable + %p + %strong= t('phones.show.fallback_sip_account_id') + ":" + = @phone.fallback_sip_account - if defined? NIGHTLY_REBOOT_OF_PHONES && NIGHTLY_REBOOT_OF_PHONES == true %p -- cgit v1.2.3 From 1985d77138ec8c3efe01673d019947a6cd3361af Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Fri, 28 Dec 2012 20:01:29 +0100 Subject: Improved the UI for a new phone. --- app/views/phones/_form_core.html.haml | 3 ++- app/views/phones/new.html.haml | 6 ++++++ config/locales/views/phones/de.yml | 1 + config/locales/views/phones/en.yml | 1 + 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/views/phones/_form_core.html.haml b/app/views/phones/_form_core.html.haml index 20ea054..fd69690 100644 --- a/app/views/phones/_form_core.html.haml +++ b/app/views/phones/_form_core.html.haml @@ -1,10 +1,11 @@ .inputs - = f.input :mac_address, :label => t('phones.form.mac_address.label'), :hint => conditional_hint('phones.form.mac_address.hint') + = f.input :mac_address, :label => t('phones.form.mac_address.label'), :hint => conditional_hint('phones.form.mac_address.hint'), :autofocus => true = f.association :phone_model, :label => t('phones.form.phone_model_id.label'), :hint => conditional_hint('phones.form.phone_model_id.hint'), :include_blank => false - if @fallback_sip_accounts.any? = f.input :hot_deskable, :label => t('phones.form.hot_deskable.label'), :hint => conditional_hint('phones.form.hot_deskable.hint') .fallback_sip_account_dropdown = f.association :fallback_sip_account, :collection => @fallback_sip_accounts, :label => t('phones.form.fallback_sip_account_id.label'), :hint => conditional_hint('phones.form.fallback_sip_account_id.hint'), :include_blank => false + - if defined? NIGHTLY_REBOOT_OF_PHONES && 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 defined? PROVISIONING_KEY_LENGTH && PROVISIONING_KEY_LENGTH > 0 diff --git a/app/views/phones/new.html.haml b/app/views/phones/new.html.haml index 61923cc..ae0a539 100644 --- a/app/views/phones/new.html.haml +++ b/app/views/phones/new.html.haml @@ -1,3 +1,9 @@ - title t("phones.new.page_title") +- if !@fallback_sip_accounts.any? && can?(:create, current_user.current_tenant.sip_accounts.build) + %p + = t("phones.new.you_need_to_have_at_least_one_available_fallback_sip_account_for_hotdesking") + = link_to t("sip_accounts.index.actions.create_for", :resource => current_user.current_tenant), new_tenant_sip_account_path(current_user.current_tenant) + = render "form" + diff --git a/config/locales/views/phones/de.yml b/config/locales/views/phones/de.yml index 2b655bd..e8221a9 100644 --- a/config/locales/views/phones/de.yml +++ b/config/locales/views/phones/de.yml @@ -42,6 +42,7 @@ de: new: page_title: 'Neues Telefon' actions: + you_need_to_have_at_least_one_available_fallback_sip_account_for_hotdesking: 'Sie benötigen mindestens einen nicht benutzen SIP-Account, damit die Option für Hotdesking in diesem Formular angezeigt wird. ' edit: page_title: 'Telefondaten bearbeiten' form: diff --git a/config/locales/views/phones/en.yml b/config/locales/views/phones/en.yml index a441e34..ecd5a91 100644 --- a/config/locales/views/phones/en.yml +++ b/config/locales/views/phones/en.yml @@ -42,6 +42,7 @@ en: new: page_title: 'New phone' actions: + you_need_to_have_at_least_one_available_fallback_sip_account_for_hotdesking: 'You need to have at least one unconnected SIP account to see a hotdesking option in this form. ' edit: page_title: 'Editing Phone' form: -- cgit v1.2.3 From 2cfe480a334019619d243823c030b9315cb3ea2a Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Fri, 28 Dec 2012 20:10:36 +0100 Subject: Refactored the controller. --- app/controllers/phones_controller.rb | 12 ++++++++---- config/locales/views/phones/de.yml | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/app/controllers/phones_controller.rb b/app/controllers/phones_controller.rb index b23a589..f1dcd3e 100644 --- a/app/controllers/phones_controller.rb +++ b/app/controllers/phones_controller.rb @@ -13,8 +13,7 @@ class PhonesController < ApplicationController end def new - used_sip_account_ids = Phone.where(:fallback_sip_account_id => SipAccount.pluck(:id)).pluck(:fallback_sip_account_id) - @fallback_sip_accounts = SipAccount.where(:sip_accountable_type => 'Tenant').where(:hotdeskable => true) - SipAccount.where(:id => used_sip_account_ids) + set_fallback_sip_accounts @phone = @phoneable.phones.build() @@ -33,13 +32,13 @@ class PhonesController < ApplicationController m = method( :"#{@phoneable.class.name.underscore}_phone_path" ) redirect_to m.( @phoneable, @phone ), :notice => t('phones.controller.successfuly_created') else + set_fallback_sip_accounts render :new end end def edit - used_sip_account_ids = Phone.where('fallback_sip_account_id IS NOT NULL AND id != ?', @phone.id).collect {|r| r.fallback_sip_account_id } - @fallback_sip_accounts = SipAccount.where('sip_accountable_type = "Tenant" AND id NOT IN (?)', used_sip_account_ids).all + set_fallback_sip_accounts end def update @@ -77,5 +76,10 @@ class PhonesController < ApplicationController add_breadcrumb @phone, method( :"#{@phone.phoneable.class.name.underscore}_phone_path" ).(@phone.phoneable, @phone) end end + + def set_fallback_sip_accounts + used_sip_account_ids = Phone.where(:fallback_sip_account_id => SipAccount.pluck(:id)).pluck(:fallback_sip_account_id) + @fallback_sip_accounts = SipAccount.where(:sip_accountable_type => 'Tenant').where(:hotdeskable => true) - SipAccount.where(:id => used_sip_account_ids) + end end diff --git a/config/locales/views/phones/de.yml b/config/locales/views/phones/de.yml index e8221a9..dafe279 100644 --- a/config/locales/views/phones/de.yml +++ b/config/locales/views/phones/de.yml @@ -42,7 +42,7 @@ de: new: page_title: 'Neues Telefon' actions: - you_need_to_have_at_least_one_available_fallback_sip_account_for_hotdesking: 'Sie benötigen mindestens einen nicht benutzen SIP-Account, damit die Option für Hotdesking in diesem Formular angezeigt wird. ' + you_need_to_have_at_least_one_available_fallback_sip_account_for_hotdesking: 'Sie benötigen mindestens einen nicht benutzen und hotdeskfähigen SIP-Account, damit die Option für Hotdesking in diesem Formular angezeigt wird. ' edit: page_title: 'Telefondaten bearbeiten' form: -- cgit v1.2.3 From 43ed8d1b73fe9e1d7ec93ca1d5264fe62d1cdbdb Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Fri, 28 Dec 2012 20:18:36 +0100 Subject: Added the version number in the footer. closes #9 --- app/views/layouts/application.html.haml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index 8ab9039..2c7faec 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -32,14 +32,16 @@ %footer#main %ul + %li + %a{:href => "http://amooma.de/gemeinschaft/gs5"} Gemeinschaft #{GEMEINSCHAFT_VERSION} - if GuiFunction.display?('amooma_commercial_support_link_in_footer', current_user) %li - %a{:href => "http://www.amooma.de"} Kommerzieller Support und Consulting + %a{:href => "http://amooma.de"} Kommerzieller Support und Consulting - if GuiFunction.display?('gemeinschaft_mailinglist_link_in_footer', current_user) %li %a{:href => "https://groups.google.com/group/gs5-users/"} Kostenlose Mailingliste .amooma-logo %span brought to you by - %a{ :target => '_blank', :href => "http://www.amooma.de/" } Amooma + %a{ :target => '_blank', :href => "http://amooma.de/" } Amooma -- cgit v1.2.3 From 8d20201910b1915cffa495e6474d50f9c8e8331d Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Fri, 28 Dec 2012 20:26:00 +0100 Subject: Release 5.0.1 --- config/initializers/gemeinschaft_parameters.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/initializers/gemeinschaft_parameters.rb b/config/initializers/gemeinschaft_parameters.rb index fbe9c56..ffb8fee 100644 --- a/config/initializers/gemeinschaft_parameters.rb +++ b/config/initializers/gemeinschaft_parameters.rb @@ -1,6 +1,6 @@ # Use this file to set generic parameters for Gemeinschaft -GEMEINSCHAFT_VERSION = '5.0' +GEMEINSCHAFT_VERSION = '5.0.1' SUPER_TENANT_NAME = 'Super-Tenant' # System defaults -- cgit v1.2.3