From 14da4be11fe13d4fcd55143c39b73c0d086b901b Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Tue, 25 Jun 2013 13:09:07 +0200 Subject: Show transfer buttons only for switchable incoming calls. --- app/models/switchboard.rb | 6 +++--- app/serializers/switchboard_serializer.rb | 1 + app/views/switchboards/show.html.erb | 8 ++++---- public/js/app.js | 25 +++++++++++++++++++++++++ 4 files changed, 33 insertions(+), 7 deletions(-) diff --git a/app/models/switchboard.rb b/app/models/switchboard.rb index 73219e8..d62657f 100644 --- a/app/models/switchboard.rb +++ b/app/models/switchboard.rb @@ -25,7 +25,7 @@ class Switchboard < ActiveRecord::Base } belongs_to :user, :touch => true - + has_many :switchboard_entries, :dependent => :destroy has_many :switchable_switchboard_entries, :class_name => "SwitchboardEntry", :conditions => {:switchable => true} @@ -41,11 +41,11 @@ class Switchboard < ActiveRecord::Base end def active_calls - Call.where("sip_account_id = ? or b_sip_account_id = ?", self.switchable_sip_account_ids, self.switchable_sip_account_ids) + Call.where("sip_account_id = ? or b_sip_account_id = ?", self.switchable_sip_account_ids, self.switchable_sip_account_ids).order(:start_stamp) end def dispatchable_incoming_calls - Call.where("b_sip_account_id = ?", self.switchable_sip_account_ids) + Call.where("b_sip_account_id = ?", self.switchable_sip_account_ids).order(:start_stamp) end private diff --git a/app/serializers/switchboard_serializer.rb b/app/serializers/switchboard_serializer.rb index 6d39667..7c21f82 100644 --- a/app/serializers/switchboard_serializer.rb +++ b/app/serializers/switchboard_serializer.rb @@ -6,4 +6,5 @@ class SwitchboardSerializer < ActiveModel::Serializer has_many :sip_accounts, :through => :switchboard_entries has_many :phone_numbers has_many :active_calls + has_many :dispatchable_incoming_calls end diff --git a/app/views/switchboards/show.html.erb b/app/views/switchboards/show.html.erb index f3304cf..69b0ed6 100644 --- a/app/views/switchboards/show.html.erb +++ b/app/views/switchboards/show.html.erb @@ -46,11 +46,11 @@ {{phoneNumber.number}} - {{#if activeCalls.length}} + {{#if dispatchableIncomingCalls.length}}

- {{#each activeCall in activeCalls}} - - + {{#each dispatchableIncomingCall in dispatchableIncomingCalls}} + + {{/each}}

{{/if}} diff --git a/public/js/app.js b/public/js/app.js index efc0752..1dee270 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -51,6 +51,7 @@ DS.RESTAdapter.reopen({ App.Switchboard = DS.Model.extend({ switchboardEntrys: DS.hasMany('App.SwitchboardEntry'), activeCalls: DS.hasMany('App.ActiveCall'), + dispatchableIncomingCalls: DS.hasMany('App.DispatchableIncomingCall'), name: DS.attr('string') }); @@ -87,6 +88,30 @@ App.ActiveCall = DS.Model.extend({ }.property('b_callstate') }); +App.DispatchableIncomingCall = DS.Model.extend({ + start_stamp: DS.attr('number'), + callstate: DS.attr('string'), + b_callstate: DS.attr('string'), + destination: DS.attr('string'), + b_caller_id_number: DS.attr('string'), + + isActive: function() { + if (this.get('b_callstate') == 'ACTIVE') { + return true + } else { + return false + } + }.property('b_callstate'), + + isRinging: function() { + if (this.get('b_callstate') == 'RINGING') { + return true + } else { + return false + } + }.property('b_callstate') +}); + App.Adapter = DS.RESTAdapter.extend(); App.store = App.Store.create({ -- cgit v1.2.3