Fixed issue #1012 - Gui stuck / Error on random switching through overviews.
This commit is contained in:
parent
7a1df2e400
commit
9f990f8352
5 changed files with 63 additions and 10 deletions
|
@ -921,7 +921,7 @@ class Table extends App.Controller
|
|||
# get ticket list
|
||||
ticketListShow = []
|
||||
for ticket in tickets
|
||||
ticketListShow.push App.Ticket.fullLocal(ticket.id)
|
||||
ticketListShow.push App.Ticket.find(ticket.id)
|
||||
|
||||
# if customer and no ticket exists, show the following message only
|
||||
if !ticketListShow[0] && @permissionCheck('ticket.customer')
|
||||
|
|
|
@ -11,11 +11,21 @@ class Sessions::Backend::Base
|
|||
|
||||
def asset_needed?(record)
|
||||
class_name = record.class.to_s
|
||||
if !@asset_lookup || !@asset_lookup[class_name] || !@asset_lookup[class_name][record.id] || @asset_lookup[class_name][record.id] < record.updated_at
|
||||
if !@asset_lookup[class_name]
|
||||
@asset_lookup[class_name] = {}
|
||||
if !@asset_lookup || !@asset_lookup[class_name] || !@asset_lookup[class_name][record.id]
|
||||
@asset_lookup[class_name] ||= {}
|
||||
@asset_lookup[class_name][record.id] = {
|
||||
updated_at: record.updated_at,
|
||||
pushed_at: Time.zone.now,
|
||||
}
|
||||
return true
|
||||
end
|
||||
@asset_lookup[class_name][record.id] = record.updated_at
|
||||
|
||||
if (!@asset_lookup[class_name][record.id][:updated_at] || @asset_lookup[class_name][record.id][:updated_at] < record.updated_at) ||
|
||||
(!@asset_lookup[class_name][record.id][:pushed_at] || @asset_lookup[class_name][record.id][:pushed_at] > Time.zone.now - 45.seconds)
|
||||
@asset_lookup[class_name][record.id] = {
|
||||
updated_at: record.updated_at,
|
||||
pushed_at: Time.zone.now,
|
||||
}
|
||||
return true
|
||||
end
|
||||
false
|
||||
|
|
|
@ -3,7 +3,7 @@ require 'test_helper'
|
|||
|
||||
class SessionCollectionsTest < ActiveSupport::TestCase
|
||||
|
||||
test 'c collections' do
|
||||
test 'a collections' do
|
||||
|
||||
UserInfo.current_user_id = 1
|
||||
|
||||
|
@ -168,4 +168,43 @@ class SessionCollectionsTest < ActiveSupport::TestCase
|
|||
nil
|
||||
end
|
||||
|
||||
test 'b assets' do
|
||||
# create users
|
||||
roles = Role.where(name: %w(Agent Admin))
|
||||
groups = Group.all
|
||||
|
||||
UserInfo.current_user_id = 2
|
||||
agent1 = User.create_or_update(
|
||||
login: 'sessions-assets-1',
|
||||
firstname: 'Session',
|
||||
lastname: "activity stream #{rand(99_999)}",
|
||||
email: 'sessions-assets1@example.com',
|
||||
password: 'agentpw',
|
||||
active: true,
|
||||
roles: roles,
|
||||
groups: groups,
|
||||
)
|
||||
assert(agent1.save, 'create/update agent1')
|
||||
|
||||
assets = {}
|
||||
client1 = Sessions::Backend::Collections::Group.new(agent1, assets, false, '123-1', 2)
|
||||
data = client1.push
|
||||
assert(data[:collection][:Group][groups.first.id])
|
||||
assert(data[:assets][:Group][groups.first.id])
|
||||
travel 10.seconds
|
||||
|
||||
client1 = Sessions::Backend::Collections::Group.new(agent1, assets, false, '123-1', 2)
|
||||
data = client1.push
|
||||
assert(data[:collection][:Group][groups.first.id])
|
||||
assert(data[:assets][:Group][groups.first.id])
|
||||
|
||||
travel 2.minutes
|
||||
client1 = Sessions::Backend::Collections::Group.new(agent1, assets, false, '123-1', 2)
|
||||
data = client1.push
|
||||
assert(data[:collection][:Group][groups.first.id])
|
||||
assert_nil(data[:assets][:Group])
|
||||
|
||||
travel_back
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -309,7 +309,11 @@ class SessionEnhancedTest < ActiveSupport::TestCase
|
|||
}
|
||||
#puts "c: #{collections_result.inspect}"
|
||||
collections_orig.each { |key, _value|
|
||||
if collections_orig[key].nil?
|
||||
assert_nil(collections_result[key], "collection message for #{key} #{type}-check (client_id #{client_id})")
|
||||
else
|
||||
assert_equal(collections_orig[key], collections_result[key], "collection message for #{key} #{type}-check (client_id #{client_id})")
|
||||
end
|
||||
}
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue