From beb9e66a5b4e2744435f2c1f301828b68a58c96a Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Sun, 10 Mar 2013 19:11:13 +0100 Subject: Indicate a new voicemail in the navigation bar. --- app/controllers/trigger_controller.rb | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'app/controllers/trigger_controller.rb') diff --git a/app/controllers/trigger_controller.rb b/app/controllers/trigger_controller.rb index 5e836c4..1a5bfca 100644 --- a/app/controllers/trigger_controller.rb +++ b/app/controllers/trigger_controller.rb @@ -42,6 +42,10 @@ class TriggerController < ApplicationController end end + # Indicate a new voicemail in the navigation bar. + # + PrivatePub.publish_to("/users/#{user.id}/messages/new", "$('#new_voicemail_indicator').hide.delay(250).show('slow').hide.delay(250).show('slow');") + render( :status => 200, :layout => false, -- cgit v1.2.3 From 8cbf5e8f740383c56c1c92de85df3421b0e1a5d0 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Mon, 11 Mar 2013 11:37:27 +0100 Subject: Fax indicator test. --- app/controllers/trigger_controller.rb | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'app/controllers/trigger_controller.rb') diff --git a/app/controllers/trigger_controller.rb b/app/controllers/trigger_controller.rb index 1a5bfca..2e97711 100644 --- a/app/controllers/trigger_controller.rb +++ b/app/controllers/trigger_controller.rb @@ -110,6 +110,13 @@ class TriggerController < ApplicationController end if errors.count == 0 + # Indicate a new fax in the navigation bar. + # + if fax_document.fax_accountable.class == User + user = fax_document.fax_accountable + PrivatePub.publish_to("/users/#{user.id}/messages/new", "$('#new_voicemail_indicator').hide.delay(250).show('slow').hide.delay(250).show('slow');") + end + render( :status => 200, :layout => false, -- cgit v1.2.3 From 685b8dc4987965e1450627e831ea40847bb5b19c Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Mon, 11 Mar 2013 11:52:01 +0100 Subject: JavaScript fix --- app/controllers/trigger_controller.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'app/controllers/trigger_controller.rb') diff --git a/app/controllers/trigger_controller.rb b/app/controllers/trigger_controller.rb index 2e97711..7ab90c2 100644 --- a/app/controllers/trigger_controller.rb +++ b/app/controllers/trigger_controller.rb @@ -44,7 +44,7 @@ class TriggerController < ApplicationController # Indicate a new voicemail in the navigation bar. # - PrivatePub.publish_to("/users/#{user.id}/messages/new", "$('#new_voicemail_indicator').hide.delay(250).show('slow').hide.delay(250).show('slow');") + PrivatePub.publish_to("/users/#{user.id}/messages/new", "$('#new_voicemail_indicator').hide('fast').show('slow');") render( :status => 200, @@ -114,7 +114,7 @@ class TriggerController < ApplicationController # if fax_document.fax_accountable.class == User user = fax_document.fax_accountable - PrivatePub.publish_to("/users/#{user.id}/messages/new", "$('#new_voicemail_indicator').hide.delay(250).show('slow').hide.delay(250).show('slow');") + PrivatePub.publish_to("/users/#{user.id}/messages/new", "$('#new_voicemail_indicator').hide('fast').show('slow');") end render( -- cgit v1.2.3 From aa46f61cc84043a81f760c961ec53786671e7e50 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Mon, 11 Mar 2013 12:12:36 +0100 Subject: Moved the voicemail and fax indicator. --- app/controllers/trigger_controller.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'app/controllers/trigger_controller.rb') diff --git a/app/controllers/trigger_controller.rb b/app/controllers/trigger_controller.rb index 7ab90c2..db379f9 100644 --- a/app/controllers/trigger_controller.rb +++ b/app/controllers/trigger_controller.rb @@ -44,7 +44,7 @@ class TriggerController < ApplicationController # Indicate a new voicemail in the navigation bar. # - PrivatePub.publish_to("/users/#{user.id}/messages/new", "$('#new_voicemail_indicator').hide('fast').show('slow');") + PrivatePub.publish_to("/users/#{user.id}/messages/new", "$('#new_voicemail_or_fax_indicator').hide('fast').show('slow');") render( :status => 200, @@ -114,7 +114,7 @@ class TriggerController < ApplicationController # if fax_document.fax_accountable.class == User user = fax_document.fax_accountable - PrivatePub.publish_to("/users/#{user.id}/messages/new", "$('#new_voicemail_indicator').hide('fast').show('slow');") + PrivatePub.publish_to("/users/#{user.id}/messages/new", "$('#new_voicemail_or_fax_indicator').hide('fast').show('slow');") end render( -- cgit v1.2.3 From 64afdeacb1444b319abfcad6c9a8cfd656fe2dd4 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Mon, 11 Mar 2013 12:19:57 +0100 Subject: Reload FaxDocument#show when a fax was send. --- app/controllers/trigger_controller.rb | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'app/controllers/trigger_controller.rb') diff --git a/app/controllers/trigger_controller.rb b/app/controllers/trigger_controller.rb index db379f9..0de9223 100644 --- a/app/controllers/trigger_controller.rb +++ b/app/controllers/trigger_controller.rb @@ -110,6 +110,10 @@ class TriggerController < ApplicationController end if errors.count == 0 + # Reload FaxDocument#show + # + PrivatePub.publish_to("/fax_documents/#{fax_document.id}", "location.reload();") + # Indicate a new fax in the navigation bar. # if fax_document.fax_accountable.class == User -- cgit v1.2.3 From 525c216dc6c64821d0273dd4a63b9716dc52e715 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Mon, 11 Mar 2013 13:14:13 +0100 Subject: Bugfix --- app/controllers/trigger_controller.rb | 4 ---- 1 file changed, 4 deletions(-) (limited to 'app/controllers/trigger_controller.rb') diff --git a/app/controllers/trigger_controller.rb b/app/controllers/trigger_controller.rb index 0de9223..db379f9 100644 --- a/app/controllers/trigger_controller.rb +++ b/app/controllers/trigger_controller.rb @@ -110,10 +110,6 @@ class TriggerController < ApplicationController end if errors.count == 0 - # Reload FaxDocument#show - # - PrivatePub.publish_to("/fax_documents/#{fax_document.id}", "location.reload();") - # Indicate a new fax in the navigation bar. # if fax_document.fax_accountable.class == User -- cgit v1.2.3 From f274393cd7e9ed81084661ccefa1a2e53c49b50a Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Mon, 11 Mar 2013 13:46:24 +0100 Subject: Bugfix --- app/controllers/trigger_controller.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'app/controllers/trigger_controller.rb') diff --git a/app/controllers/trigger_controller.rb b/app/controllers/trigger_controller.rb index db379f9..a1bab65 100644 --- a/app/controllers/trigger_controller.rb +++ b/app/controllers/trigger_controller.rb @@ -91,6 +91,8 @@ class TriggerController < ApplicationController if fax_document.save Notifications.new_fax(fax_document).deliver + @last_fax_document = fax_document + begin File.delete(pdf_file) rescue => e @@ -112,8 +114,8 @@ class TriggerController < ApplicationController if errors.count == 0 # Indicate a new fax in the navigation bar. # - if fax_document.fax_accountable.class == User - user = fax_document.fax_accountable + if @last_fax_document.fax_account.fax_accountable.class == User + user = @last_fax_document.fax_account.fax_accountable PrivatePub.publish_to("/users/#{user.id}/messages/new", "$('#new_voicemail_or_fax_indicator').hide('fast').show('slow');") end -- cgit v1.2.3 From 220e5e76996a4071c9645b3026abfc0592f6af0b Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Mon, 11 Mar 2013 16:47:34 +0100 Subject: Bugfix for #236 --- app/controllers/trigger_controller.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'app/controllers/trigger_controller.rb') diff --git a/app/controllers/trigger_controller.rb b/app/controllers/trigger_controller.rb index a1bab65..fb53c37 100644 --- a/app/controllers/trigger_controller.rb +++ b/app/controllers/trigger_controller.rb @@ -16,6 +16,10 @@ class TriggerController < ApplicationController next end + # Indicate a new voicemail in the navigation bar. + # + PrivatePub.publish_to("/users/#{user.id}/messages/new", "$('#new_voicemail_or_fax_indicator').hide('fast').show('slow');") + if user.email.blank? next end @@ -42,10 +46,6 @@ class TriggerController < ApplicationController end end - # Indicate a new voicemail in the navigation bar. - # - PrivatePub.publish_to("/users/#{user.id}/messages/new", "$('#new_voicemail_or_fax_indicator').hide('fast').show('slow');") - render( :status => 200, :layout => false, -- cgit v1.2.3 From 3c5a0511d228fb3dc00ae860ade1b8ff032cc42f Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Tue, 12 Mar 2013 11:23:20 +0100 Subject: Refactoring --- app/controllers/trigger_controller.rb | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'app/controllers/trigger_controller.rb') diff --git a/app/controllers/trigger_controller.rb b/app/controllers/trigger_controller.rb index fb53c37..e3fc524 100644 --- a/app/controllers/trigger_controller.rb +++ b/app/controllers/trigger_controller.rb @@ -63,6 +63,18 @@ class TriggerController < ApplicationController end end + def fax_has_been_sent + fax_document = FaxDocument.find(params[:id]) + + if fax_document + # push the partial to the webbrowser + # + new_html = render_to_string("fax_documents/_fax_document", :layout => false, :locals => {:fax_document => fax_document}) + PrivatePub.publish_to("/fax_documents/#{fax_document.id}", "$('#fax_document_" + fax_document.id.to_s + "').replaceWith(escape_javascript(" + new_html + "));") + end + + end + def fax if !params[:fax_account_id].blank? fax_account = FaxAccount.where(:id => params[:fax_account_id].to_i).first -- cgit v1.2.3 From d11a8692e742720435c4286e3752c8c136cc88cf Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Tue, 12 Mar 2013 12:32:32 +0100 Subject: jquery replaceWith for FaxDocument#view after sending the fax --- app/controllers/trigger_controller.rb | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'app/controllers/trigger_controller.rb') diff --git a/app/controllers/trigger_controller.rb b/app/controllers/trigger_controller.rb index e3fc524..3bd75a1 100644 --- a/app/controllers/trigger_controller.rb +++ b/app/controllers/trigger_controller.rb @@ -69,10 +69,24 @@ class TriggerController < ApplicationController if fax_document # push the partial to the webbrowser # - new_html = render_to_string("fax_documents/_fax_document", :layout => false, :locals => {:fax_document => fax_document}) - PrivatePub.publish_to("/fax_documents/#{fax_document.id}", "$('#fax_document_" + fax_document.id.to_s + "').replaceWith(escape_javascript(" + new_html + "));") + new_html = ActionController::Base.helpers.escape_javascript(render_to_string("fax_documents/_fax_document", :layout => false, :locals => {:fax_document => fax_document})) + Rails.logger.debug new_html + PrivatePub.publish_to("/fax_documents/#{fax_document.id}", "$('#" + fax_document.id.to_s + ".fax_document').replaceWith('#{new_html}');") + + render( + :status => 200, + :layout => false, + :content_type => 'text/plain', + :text => "", + ) + else + render( + :status => 501, + :layout => false, + :content_type => 'text/plain', + :text => "", + ) end - end def fax -- cgit v1.2.3 From f788a35cd1a70ba08effb3807bbb313744324c85 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Tue, 12 Mar 2013 13:17:44 +0100 Subject: Add a * to the page title when a new voicemail or fax was received. --- app/controllers/trigger_controller.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'app/controllers/trigger_controller.rb') diff --git a/app/controllers/trigger_controller.rb b/app/controllers/trigger_controller.rb index 3bd75a1..df6f39f 100644 --- a/app/controllers/trigger_controller.rb +++ b/app/controllers/trigger_controller.rb @@ -19,6 +19,7 @@ class TriggerController < ApplicationController # Indicate a new voicemail in the navigation bar. # PrivatePub.publish_to("/users/#{user.id}/messages/new", "$('#new_voicemail_or_fax_indicator').hide('fast').show('slow');") + PrivatePub.publish_to("/users/#{user.id}/messages/new", "document.title = '* ' + document.title.replace( '* ' , '');") if user.email.blank? next @@ -70,7 +71,6 @@ class TriggerController < ApplicationController # push the partial to the webbrowser # new_html = ActionController::Base.helpers.escape_javascript(render_to_string("fax_documents/_fax_document", :layout => false, :locals => {:fax_document => fax_document})) - Rails.logger.debug new_html PrivatePub.publish_to("/fax_documents/#{fax_document.id}", "$('#" + fax_document.id.to_s + ".fax_document').replaceWith('#{new_html}');") render( @@ -143,6 +143,7 @@ class TriggerController < ApplicationController if @last_fax_document.fax_account.fax_accountable.class == User user = @last_fax_document.fax_account.fax_accountable PrivatePub.publish_to("/users/#{user.id}/messages/new", "$('#new_voicemail_or_fax_indicator').hide('fast').show('slow');") + PrivatePub.publish_to("/users/#{user.id}/messages/new", "document.title = '* ' + document.title.replace( '* ' , '');") end render( -- cgit v1.2.3 From 5d3eeec6962010eb0b9cbcb9d3bb87d016bce199 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Tue, 12 Mar 2013 13:40:18 +0100 Subject: Added sip_account_update trigger --- app/controllers/trigger_controller.rb | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'app/controllers/trigger_controller.rb') diff --git a/app/controllers/trigger_controller.rb b/app/controllers/trigger_controller.rb index df6f39f..3445802 100644 --- a/app/controllers/trigger_controller.rb +++ b/app/controllers/trigger_controller.rb @@ -89,6 +89,31 @@ class TriggerController < ApplicationController end end + def sip_account_update + sip_account = SipAccount.find(params[:id]) + + if sip_account + # push the partial to the webbrowser + # + # new_html = ActionController::Base.helpers.escape_javascript(render_to_string("fax_documents/_fax_document", :layout => false, :locals => {:fax_document => fax_document})) + # PrivatePub.publish_to("/fax_documents/#{fax_document.id}", "$('#" + fax_document.id.to_s + ".fax_document').replaceWith('#{new_html}');") + + render( + :status => 200, + :layout => false, + :content_type => 'text/plain', + :text => "", + ) + else + render( + :status => 501, + :layout => false, + :content_type => 'text/plain', + :text => "", + ) + end + end + def fax if !params[:fax_account_id].blank? fax_account = FaxAccount.where(:id => params[:fax_account_id].to_i).first -- cgit v1.2.3 From 3ca9b0e7af3dd475c4e69512cf49abfef4ddd0aa Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Tue, 12 Mar 2013 14:31:37 +0100 Subject: Replace SwitchboardEntry when the SipAccount gets updated. --- app/controllers/trigger_controller.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'app/controllers/trigger_controller.rb') diff --git a/app/controllers/trigger_controller.rb b/app/controllers/trigger_controller.rb index 3445802..b8db4c9 100644 --- a/app/controllers/trigger_controller.rb +++ b/app/controllers/trigger_controller.rb @@ -95,8 +95,10 @@ class TriggerController < ApplicationController if sip_account # push the partial to the webbrowser # - # new_html = ActionController::Base.helpers.escape_javascript(render_to_string("fax_documents/_fax_document", :layout => false, :locals => {:fax_document => fax_document})) - # PrivatePub.publish_to("/fax_documents/#{fax_document.id}", "$('#" + fax_document.id.to_s + ".fax_document').replaceWith('#{new_html}');") + sip_account.switchboard_entries.each do |switchboard_entry| + new_html = ActionController::Base.helpers.escape_javascript(render_to_string("switchboard_entries/_switchboard_entry", :layout => false, :locals => {:switchboard_entry => switchboard_entry})) + PrivatePub.publish_to("/switchboards/#{switchboard_entry.switchboard.id}", "$('#switchboard_entry_id_" + switchboard_entry.id.to_s + ".replaceWith('#{new_html}');") + end render( :status => 200, -- cgit v1.2.3 From 40d8290361bff123e0b44defa0f199708b89093b Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Thu, 14 Mar 2013 18:34:57 +0100 Subject: Adds a new remote_ip_address methode to figure out the remote IP address. #245 --- app/controllers/trigger_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/controllers/trigger_controller.rb') diff --git a/app/controllers/trigger_controller.rb b/app/controllers/trigger_controller.rb index b8db4c9..623ea94 100644 --- a/app/controllers/trigger_controller.rb +++ b/app/controllers/trigger_controller.rb @@ -97,7 +97,7 @@ class TriggerController < ApplicationController # sip_account.switchboard_entries.each do |switchboard_entry| new_html = ActionController::Base.helpers.escape_javascript(render_to_string("switchboard_entries/_switchboard_entry", :layout => false, :locals => {:switchboard_entry => switchboard_entry})) - PrivatePub.publish_to("/switchboards/#{switchboard_entry.switchboard.id}", "$('#switchboard_entry_id_" + switchboard_entry.id.to_s + ".replaceWith('#{new_html}');") + PrivatePub.publish_to("/switchboards/#{switchboard_entry.switchboard.id}", "$('#switchboard_entry_id_" + switchboard_entry.id.to_s + "').replaceWith('#{new_html}');") end render( -- cgit v1.2.3 From f476fb7648fd235642233b2bbe5bb90cb57e8549 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Thu, 14 Mar 2013 18:57:24 +0100 Subject: Bugfix --- app/controllers/trigger_controller.rb | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) (limited to 'app/controllers/trigger_controller.rb') diff --git a/app/controllers/trigger_controller.rb b/app/controllers/trigger_controller.rb index 623ea94..0c635b9 100644 --- a/app/controllers/trigger_controller.rb +++ b/app/controllers/trigger_controller.rb @@ -92,28 +92,21 @@ class TriggerController < ApplicationController def sip_account_update sip_account = SipAccount.find(params[:id]) - if sip_account + if sip_account && sip_account.switchboard_entries.any? # push the partial to the webbrowser # sip_account.switchboard_entries.each do |switchboard_entry| new_html = ActionController::Base.helpers.escape_javascript(render_to_string("switchboard_entries/_switchboard_entry", :layout => false, :locals => {:switchboard_entry => switchboard_entry})) PrivatePub.publish_to("/switchboards/#{switchboard_entry.switchboard.id}", "$('#switchboard_entry_id_" + switchboard_entry.id.to_s + "').replaceWith('#{new_html}');") - end - - render( - :status => 200, - :layout => false, - :content_type => 'text/plain', - :text => "", - ) - else - render( - :status => 501, - :layout => false, - :content_type => 'text/plain', - :text => "", - ) + end end + + render( + :status => 200, + :layout => false, + :content_type => 'text/plain', + :text => "", + ) end def fax -- cgit v1.2.3 From 3a0ea10cdd6084a8beb235f5c1573c22a5d733f0 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Thu, 14 Mar 2013 20:21:59 +0100 Subject: Added a dashboard for Switchboard. --- app/controllers/trigger_controller.rb | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'app/controllers/trigger_controller.rb') diff --git a/app/controllers/trigger_controller.rb b/app/controllers/trigger_controller.rb index 0c635b9..fc0556b 100644 --- a/app/controllers/trigger_controller.rb +++ b/app/controllers/trigger_controller.rb @@ -92,15 +92,18 @@ class TriggerController < ApplicationController def sip_account_update sip_account = SipAccount.find(params[:id]) - if sip_account && sip_account.switchboard_entries.any? - # push the partial to the webbrowser - # - sip_account.switchboard_entries.each do |switchboard_entry| - new_html = ActionController::Base.helpers.escape_javascript(render_to_string("switchboard_entries/_switchboard_entry", :layout => false, :locals => {:switchboard_entry => switchboard_entry})) - PrivatePub.publish_to("/switchboards/#{switchboard_entry.switchboard.id}", "$('#switchboard_entry_id_" + switchboard_entry.id.to_s + "').replaceWith('#{new_html}');") - end + # TO-DO: Only update the neccessary entries. + # + SwitchboardEntry.all.each do |switchboard_entry| + new_html = ActionController::Base.helpers.escape_javascript(render_to_string("switchboard_entries/_switchboard_entry", :layout => false, :locals => {:switchboard_entry => switchboard_entry})) + PrivatePub.publish_to("/switchboards/#{switchboard_entry.switchboard.id}", "$('#switchboard_entry_id_" + switchboard_entry.id.to_s + "').replaceWith('#{new_html}');") end - + + Switchboard.all.each do |switchboard| + new_html = ActionController::Base.helpers.escape_javascript(render_to_string("switchboards/_current_user_dashboard", :layout => false, :locals => {:current_user => switchboard.user})) + PrivatePub.publish_to("/switchboards/#{switchboard.id}", "$('.dashboard').replaceWith('#{new_html}');") + end + render( :status => 200, :layout => false, -- cgit v1.2.3 From 0b4e3dfd031b21c26f7bc9c7c05cd931950ecbd6 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Thu, 14 Mar 2013 21:34:06 +0100 Subject: Switchboard stuff --- app/controllers/trigger_controller.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'app/controllers/trigger_controller.rb') diff --git a/app/controllers/trigger_controller.rb b/app/controllers/trigger_controller.rb index fc0556b..a858e33 100644 --- a/app/controllers/trigger_controller.rb +++ b/app/controllers/trigger_controller.rb @@ -100,8 +100,11 @@ class TriggerController < ApplicationController end Switchboard.all.each do |switchboard| - new_html = ActionController::Base.helpers.escape_javascript(render_to_string("switchboards/_current_user_dashboard", :layout => false, :locals => {:current_user => switchboard.user})) - PrivatePub.publish_to("/switchboards/#{switchboard.id}", "$('.dashboard').replaceWith('#{new_html}');") + if sip_account.call_legs.where(:sip_account_id => switchboard.user.sip_account_ids).any? || + sip_account.b_call_legs.where(:sip_account_id => switchboard.user.sip_account_ids).any? + new_html = ActionController::Base.helpers.escape_javascript(render_to_string("switchboards/_current_user_dashboard", :layout => false, :locals => {:current_user => switchboard.user})) + PrivatePub.publish_to("/switchboards/#{switchboard.id}", "$('.dashboard').replaceWith('#{new_html}');") + end end render( -- cgit v1.2.3 From 0ed2894ca7371199788c202b61f53a3f73c4b03b Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Sun, 17 Mar 2013 12:44:33 +0100 Subject: Reduce the push load. --- app/controllers/trigger_controller.rb | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) (limited to 'app/controllers/trigger_controller.rb') diff --git a/app/controllers/trigger_controller.rb b/app/controllers/trigger_controller.rb index a858e33..6b58d6a 100644 --- a/app/controllers/trigger_controller.rb +++ b/app/controllers/trigger_controller.rb @@ -92,19 +92,26 @@ class TriggerController < ApplicationController def sip_account_update sip_account = SipAccount.find(params[:id]) - # TO-DO: Only update the neccessary entries. - # - SwitchboardEntry.all.each do |switchboard_entry| - new_html = ActionController::Base.helpers.escape_javascript(render_to_string("switchboard_entries/_switchboard_entry", :layout => false, :locals => {:switchboard_entry => switchboard_entry})) - PrivatePub.publish_to("/switchboards/#{switchboard_entry.switchboard.id}", "$('#switchboard_entry_id_" + switchboard_entry.id.to_s + "').replaceWith('#{new_html}');") - end + if sip_account.updated_at < Time.now - Switchboard.all.each do |switchboard| - if sip_account.call_legs.where(:sip_account_id => switchboard.user.sip_account_ids).any? || - sip_account.b_call_legs.where(:sip_account_id => switchboard.user.sip_account_ids).any? - new_html = ActionController::Base.helpers.escape_javascript(render_to_string("switchboards/_current_user_dashboard", :layout => false, :locals => {:current_user => switchboard.user})) - PrivatePub.publish_to("/switchboards/#{switchboard.id}", "$('.dashboard').replaceWith('#{new_html}');") + # Push an update to sip_account.switchboard_entries + # + sip_account.switchboard_entries.each do |switchboard_entry| + escaped_switchboard_entry_partial = ActionController::Base.helpers.escape_javascript(render_to_string("switchboard_entries/_switchboard_entry", :layout => false, :locals => {:switchboard_entry => switchboard_entry})) + PrivatePub.publish_to("/switchboards/#{switchboard_entry.switchboard.id}", "$('#switchboard_entry_id_" + switchboard_entry.id.to_s + "').replaceWith('#{escaped_switchboard_entry_partial}');") end + + # Push an update to the needed switchboards + # + Switchboard.where(:user_id => sip_account.sip_accountable.id).each do |switchboard| + if sip_account.call_legs.where(:sip_account_id => switchboard.user.sip_account_ids).any? || + sip_account.b_call_legs.where(:sip_account_id => switchboard.user.sip_account_ids).any? + escaped_switchboard_partial = ActionController::Base.helpers.escape_javascript(render_to_string("switchboards/_current_user_dashboard", :layout => false, :locals => {:current_user => switchboard.user})) + PrivatePub.publish_to("/switchboards/#{switchboard.id}", "$('.dashboard').replaceWith('#{escaped_switchboard_partial}');") + end + end + + sip_account.touch end render( -- cgit v1.2.3