Fixed session backend of ticket overview list.

This commit is contained in:
Martin Edenhofer 2014-07-14 07:26:22 +02:00
parent 1a8a9047b7
commit daf3656914
4 changed files with 119 additions and 67 deletions

View file

@ -93,7 +93,7 @@ returns
self.roles.each { |role| self.roles.each { |role|
return role if role.name == role_name return role if role.name == role_name
} }
return false false
end end
=begin =begin

View file

@ -12,17 +12,27 @@ class Sessions::Backend::TicketOverviewList
overviews = Ticket::Overviews.all( overviews = Ticket::Overviews.all(
:current_user => @user, :current_user => @user,
) )
result = []
overviews.each { |overview|
overview_data = Ticket::Overviews.list(
:view => overview.link,
:current_user => @user,
:array => true,
)
data = { :list => overview_data, :index => overview }
result.push data
}
# no data exists # no data exists
return if !overviews return if !result || result.empty?
# no change exists # no change exists
return if @last_change == overviews return if @last_change == result
# remember last state # remember last state
@last_change = overviews @last_change = result
overviews result
end end
def client_key def client_key
@ -36,20 +46,17 @@ class Sessions::Backend::TicketOverviewList
return if timeout return if timeout
# set new timeout # set new timeout
Sessions::CacheIn.set( self.client_key, true, { :expires_in => 5.seconds } ) Sessions::CacheIn.set( self.client_key, true, { :expires_in => 6.seconds } )
overviews = self.load items = self.load
return if !overviews return if !items
# push overviews # push overviews
overviews.each { |overview| results = []
items.each { |item|
overview_data = Ticket::Overviews.list( overview_data = item[:list]
:view => overview.link,
:current_user => @user,
:array => true,
)
assets = {} assets = {}
overview_data[:ticket_ids].each {|ticket_id| overview_data[:ticket_ids].each {|ticket_id|
@ -82,11 +89,12 @@ class Sessions::Backend::TicketOverviewList
} }
if !@client if !@client
return { result = {
:event => 'navupdate_ticket_overview', :event => 'navupdate_ticket_overview',
:data => overview, :data => item[:index],
} }
end results.push result
else
@client.log 'notify', "push overview_list for user #{ @user.id }" @client.log 'notify', "push overview_list for user #{ @user.id }"
@ -106,9 +114,12 @@ class Sessions::Backend::TicketOverviewList
}, },
}, },
:event => [ 'ticket_overview_rebuild' ], :event => [ 'ticket_overview_rebuild' ],
:collection => 'ticket_overview_' + overview.link.to_s, :collection => 'ticket_overview_' + item[:index].link.to_s,
}) })
end
} }
return results if !@client
nil
end end
end end

View file

@ -47,6 +47,8 @@ class SessionBasicTest < ActiveSupport::TestCase
test 'b collections group' do test 'b collections group' do
require 'sessions/backend/collections/group.rb' require 'sessions/backend/collections/group.rb'
UserInfo.current_user_id = 1
user = User.lookup(:id => 1) user = User.lookup(:id => 1)
collection_client1 = Sessions::Backend::Collections::Group.new(user, false, '123-1') collection_client1 = Sessions::Backend::Collections::Group.new(user, false, '123-1')
collection_client2 = Sessions::Backend::Collections::Group.new(user, false, '234-2') collection_client2 = Sessions::Backend::Collections::Group.new(user, false, '234-2')
@ -88,7 +90,7 @@ class SessionBasicTest < ActiveSupport::TestCase
assert_equal( result1, result2, "check collections" ) assert_equal( result1, result2, "check collections" )
# change collection # change collection
group = Group.create( :name => 'SomeGroup::' + rand(999999).to_s, :active => true, :created_by_id => 1, :updated_by_id => 1 ) group = Group.create( :name => 'SomeGroup::' + rand(999999).to_s, :active => true )
sleep 12 sleep 12
# get whole collections # get whole collections
@ -137,6 +139,7 @@ class SessionBasicTest < ActiveSupport::TestCase
test 'b collections organization' do test 'b collections organization' do
require 'sessions/backend/collections/organization.rb' require 'sessions/backend/collections/organization.rb'
UserInfo.current_user_id = 1
Organization.destroy_all Organization.destroy_all
user = User.lookup(:id => 1) user = User.lookup(:id => 1)
@ -159,7 +162,7 @@ class SessionBasicTest < ActiveSupport::TestCase
assert( !result2, "check collections - recall" ) assert( !result2, "check collections - recall" )
# change collection # change collection
org = Organization.create( :name => 'SomeOrg::' + rand(999999).to_s, :active => true, :created_by_id => 1, :updated_by_id => 1 ) org = Organization.create( :name => 'SomeOrg::' + rand(999999).to_s, :active => true )
sleep 16 sleep 16
# get whole collections # get whole collections
@ -209,6 +212,8 @@ class SessionBasicTest < ActiveSupport::TestCase
test 'b activity stream' do test 'b activity stream' do
UserInfo.current_user_id = 1
# create users # create users
roles = Role.where( :name => [ 'Agent', 'Admin'] ) roles = Role.where( :name => [ 'Agent', 'Admin'] )
groups = Group.all groups = Group.all
@ -244,7 +249,7 @@ class SessionBasicTest < ActiveSupport::TestCase
assert( !result1, "check as - recall 2" ) assert( !result1, "check as - recall 2" )
agent1.update_attribute( :email, 'activity-stream-agent11@example.com' ) agent1.update_attribute( :email, 'activity-stream-agent11@example.com' )
ticket = Ticket.create(:title => '12323', :updated_by_id => 1, :created_by_id => 1, :group_id => 1, :priority_id => 1, :state_id => 1, :customer_id => 1) ticket = Ticket.create(:title => '12323', :group_id => 1, :priority_id => 1, :state_id => 1, :customer_id => 1 )
sleep 32 sleep 32
@ -285,6 +290,7 @@ class SessionBasicTest < ActiveSupport::TestCase
test 'b ticket_create' do test 'b ticket_create' do
UserInfo.current_user_id = 1
user = User.lookup(:id => 1) user = User.lookup(:id => 1)
ticket_create_client1 = Sessions::Backend::TicketCreate.new(user, false, '123-1') ticket_create_client1 = Sessions::Backend::TicketCreate.new(user, false, '123-1')
@ -302,7 +308,7 @@ class SessionBasicTest < ActiveSupport::TestCase
result1 = ticket_create_client1.push result1 = ticket_create_client1.push
assert( !result1, "check ticket_create - recall 2" ) assert( !result1, "check ticket_create - recall 2" )
Group.create( :name => 'SomeTicketCreateGroup::' + rand(999999).to_s, :active => true, :created_by_id => 1, :updated_by_id => 1 ) Group.create( :name => 'SomeTicketCreateGroup::' + rand(999999).to_s, :active => true )
sleep 26 sleep 26
@ -311,32 +317,4 @@ class SessionBasicTest < ActiveSupport::TestCase
assert( result1, "check ticket_create - recall 3" ) assert( result1, "check ticket_create - recall 3" )
end end
test 'b ticket_overview_index' do
user = User.lookup(:id => 1)
ticket_overview_index_client1 = Sessions::Backend::TicketOverviewIndex.new(user, false, '123-1')
# get as stream
result1 = ticket_overview_index_client1.push
assert( result1, "check ticket_overview_index" )
sleep 1
# next check should be empty
result1 = ticket_overview_index_client1.push
assert( !result1, "check ticket_overview_index - recall" )
# next check should be empty
sleep 10
result1 = ticket_overview_index_client1.push
assert( !result1, "check ticket_overview_index - recall 2" )
ticket = Ticket.create( :title => '12323', :updated_by_id => 1, :created_by_id => 1, :group_id => 1, :priority_id => 1, :state_id => 1, :customer_id => 1)
sleep 10
# get as stream
result1 = ticket_overview_index_client1.push
assert( result1, "check ticket_overview_index - recall 3" )
end
end end

View file

@ -0,0 +1,63 @@
# encoding: utf-8
require 'test_helper'
class SessionBasicTicketTest < ActiveSupport::TestCase
test 'b ticket_overview_index' do
UserInfo.current_user_id = 1
user = User.lookup(:id => 1)
client1 = Sessions::Backend::TicketOverviewIndex.new(user, false, '123-1')
# get as stream
result1 = client1.push
assert( result1, "check ticket_overview_index" )
sleep 1
# next check should be empty
result1 = client1.push
assert( !result1, "check ticket_overview_index - recall" )
# next check should be empty
sleep 10
result1 = client1.push
assert( !result1, "check ticket_overview_index - recall 2" )
ticket = Ticket.create( :title => '12323', :group_id => 1, :priority_id => 1, :state_id => 1, :customer_id => 1 )
sleep 10
# get as stream
result1 = client1.push
assert( result1, "check ticket_overview_index - recall 3" )
end
test 'b ticket_overview_list' do
UserInfo.current_user_id = 1
user = User.lookup(:id => 1)
client1 = Sessions::Backend::TicketOverviewList.new(user, false, '123-1')
# get as stream
result1 = client1.push
assert( result1, "check ticket_overview_list" )
sleep 1
# next check should be empty
result1 = client1.push
assert( !result1, "check ticket_overview_list - recall" )
# next check should be empty
sleep 10
result1 = client1.push
assert( !result1, "check ticket_overview_list - recall 2" )
ticket = Ticket.create( :title => '12323', :group_id => 1, :priority_id => 1, :state_id => 1, :customer_id => 1 )
sleep 10
# get as stream
result1 = client1.push
puts "RR: #{result1.inspect}"
assert( result1, "check ticket_overview_list - recall 3" )
end
end