diff --git a/app/assets/javascripts/app/controllers/cti.coffee b/app/assets/javascripts/app/controllers/cti.coffee index 177a394f6..aa4a6ad54 100644 --- a/app/assets/javascripts/app/controllers/cti.coffee +++ b/app/assets/javascripts/app/controllers/cti.coffee @@ -136,6 +136,8 @@ class App.CTI extends App.Controller if item.start && item.end item.duration = format((Date.parse(item.end) - Date.parse(item.start))/1000) + + @userPopupsDestroy() @html App.view('cti/index')( list: @list ) diff --git a/app/models/cti/caller_id.rb b/app/models/cti/caller_id.rb index afa4fe3c3..33ba4586e 100644 --- a/app/models/cti/caller_id.rb +++ b/app/models/cti/caller_id.rb @@ -47,10 +47,22 @@ returns def self.lookup(caller_id) result = Cti::CallerId.where( caller_id: caller_id, - ).order('id DESC').limit(20) + level: 'known', + ).group(:user_id).order('id DESC').limit(20) + if !result[0] + result = Cti::CallerId.where( + caller_id: caller_id, + level: 'maybe', + ).group(:user_id).order('id DESC').limit(20) + end + if !result[0] + result = Cti::CallerId.where( + caller_id: caller_id, + ).order('id DESC').limit(20) + end - # in case do lookups in external databases - if result.empty? + # in case do lookups in external sources + if !result[0] # ... end diff --git a/test/unit/cti_caller_id_test.rb b/test/unit/cti_caller_id_test.rb index 5122a8ca7..b5a367730 100644 --- a/test/unit/cti_caller_id_test.rb +++ b/test/unit/cti_caller_id_test.rb @@ -151,15 +151,15 @@ class CtiCallerIdTest < ActiveSupport::TestCase Cti::CallerId.rebuild caller_ids = Cti::CallerId.lookup('491111222277') - assert_equal(0, caller_ids.count) + assert_equal(0, caller_ids.length) caller_ids = Cti::CallerId.lookup('491111222223') - assert_equal(1, caller_ids.count) + assert_equal(1, caller_ids.length) assert_equal(agent1.id, caller_ids[0].user_id) assert_equal('known', caller_ids[0].level) caller_ids = Cti::CallerId.lookup('492222222222') - assert_equal(2, caller_ids.count) + assert_equal(2, caller_ids.length) assert_equal(agent3.id, caller_ids[0].user_id) assert_equal('known', caller_ids[0].level) assert_equal(agent2.id, caller_ids[1].user_id) @@ -222,28 +222,115 @@ Mob: +49 333 1112222", Cti::CallerId.rebuild caller_ids = Cti::CallerId.lookup('491111222277') - assert_equal(0, caller_ids.count) + assert_equal(0, caller_ids.length) caller_ids = Cti::CallerId.lookup('491111222223') - assert_equal(1, caller_ids.count) + assert_equal(1, caller_ids.length) assert_equal(agent1.id, caller_ids[0].user_id) assert_equal('known', caller_ids[0].level) caller_ids = Cti::CallerId.lookup('492222222222') - assert_equal(2, caller_ids.count) + assert_equal(2, caller_ids.length) assert_equal(agent3.id, caller_ids[0].user_id) assert_equal('known', caller_ids[0].level) assert_equal(agent2.id, caller_ids[1].user_id) assert_equal('known', caller_ids[1].level) caller_ids = Cti::CallerId.lookup('492226112222') - assert_equal(1, caller_ids.count) + assert_equal(1, caller_ids.length) assert_equal(customer1.id, caller_ids[0].user_id) assert_equal('maybe', caller_ids[0].level) caller_ids = Cti::CallerId.lookup('492221112222') - assert_equal(0, caller_ids.count) + assert_equal(0, caller_ids.length) end + test '3 lookups' do + + Cti::CallerId.destroy_all + + Cti::CallerId.maybe_add( + caller_id: '4999999999', + level: 'maybe', + user_id: 2, + object: 'Ticket', + o_id: 2, + ) + + Cti::CallerId.maybe_add( + caller_id: '4912345678901', + comment: 'Hairdresser Bob Smith, San Francisco', + level: 'public', + user_id: 2, + object: 'GoYello', + o_id: 1, + ) + + caller_ids = Cti::CallerId.lookup('4912345678901') + assert_equal(1, caller_ids.length) + assert_equal('public', caller_ids[0].level) + assert_equal(2, caller_ids[0].user_id) + assert_equal('Hairdresser Bob Smith, San Francisco', caller_ids[0].comment) + + Cti::CallerId.maybe_add( + caller_id: '4912345678901', + level: 'maybe', + user_id: 2, + object: 'Ticket', + o_id: 2, + ) + + caller_ids = Cti::CallerId.lookup('4912345678901') + assert_equal(1, caller_ids.length) + assert_equal('maybe', caller_ids[0].level) + assert_equal(2, caller_ids[0].user_id) + assert_equal(nil, caller_ids[0].comment) + + Cti::CallerId.maybe_add( + caller_id: '4912345678901', + level: 'maybe', + user_id: 2, + object: 'Ticket', + o_id: 2, + ) + + caller_ids = Cti::CallerId.lookup('4912345678901') + assert_equal(1, caller_ids.length) + assert_equal('maybe', caller_ids[0].level) + assert_equal(2, caller_ids[0].user_id) + assert_equal(nil, caller_ids[0].comment) + + Cti::CallerId.maybe_add( + caller_id: '4912345678901', + level: 'maybe', + user_id: 3, + object: 'Ticket', + o_id: 2, + ) + + caller_ids = Cti::CallerId.lookup('4912345678901') + assert_equal(2, caller_ids.length) + assert_equal('maybe', caller_ids[0].level) + assert_equal(3, caller_ids[0].user_id) + assert_equal(nil, caller_ids[0].comment) + assert_equal('maybe', caller_ids[1].level) + assert_equal(2, caller_ids[1].user_id) + assert_equal(nil, caller_ids[1].comment) + + Cti::CallerId.maybe_add( + caller_id: '4912345678901', + level: 'known', + user_id: 3, + object: 'User', + o_id: 2, + ) + + caller_ids = Cti::CallerId.lookup('4912345678901') + assert_equal(1, caller_ids.length) + assert_equal('known', caller_ids[0].level) + assert_equal(3, caller_ids[0].user_id) + assert_equal(nil, caller_ids[0].comment) + + end end