Code cleanup.
This commit is contained in:
parent
00bc40e4cb
commit
33777c2bab
24 changed files with 99 additions and 85 deletions
|
@ -47,7 +47,7 @@ class ApplicationModel < ActiveRecord::Base
|
||||||
|
|
||||||
# do noting, use id as it is
|
# do noting, use id as it is
|
||||||
return if !Setting.get('system_init_done')
|
return if !Setting.get('system_init_done')
|
||||||
return if Setting.get('import_mode') && import_class_list.include?( self.class.to_s )
|
return if Setting.get('import_mode') && import_class_list.include?(self.class.to_s)
|
||||||
|
|
||||||
self[:id] = nil
|
self[:id] = nil
|
||||||
end
|
end
|
||||||
|
@ -589,7 +589,7 @@ returns
|
||||||
|
|
||||||
def self.latest_change
|
def self.latest_change
|
||||||
key = "#{new.class.name}_latest_change"
|
key = "#{new.class.name}_latest_change"
|
||||||
updated_at = Cache.get( key )
|
updated_at = Cache.get(key)
|
||||||
|
|
||||||
# if we do not have it cached, do lookup
|
# if we do not have it cached, do lookup
|
||||||
if !updated_at
|
if !updated_at
|
||||||
|
@ -739,11 +739,13 @@ class OwnModel < ApplicationModel
|
||||||
serve methode to configure and enable search index support for this model
|
serve methode to configure and enable search index support for this model
|
||||||
|
|
||||||
class Model < ApplicationModel
|
class Model < ApplicationModel
|
||||||
search_index_support ignore_attributes: {
|
search_index_support
|
||||||
|
ignore_attributes: {
|
||||||
create_article_type_id: true,
|
create_article_type_id: true,
|
||||||
create_article_sender_id: true,
|
create_article_sender_id: true,
|
||||||
article_count: true,
|
article_count: true,
|
||||||
}
|
},
|
||||||
|
ignore_ids: [1,2,4]
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -763,11 +765,13 @@ update search index, if configured - will be executed automatically
|
||||||
=end
|
=end
|
||||||
|
|
||||||
def search_index_update
|
def search_index_update
|
||||||
return if !self.class.search_index_support_config
|
config = self.class.search_index_support_config
|
||||||
|
return if !config
|
||||||
|
return if config[:ignore_ids] && config[:ignore_ids].include?(id)
|
||||||
|
|
||||||
# start background job to transfer data to search index
|
# start background job to transfer data to search index
|
||||||
return if !SearchIndexBackend.enabled?
|
return if !SearchIndexBackend.enabled?
|
||||||
Delayed::Job.enqueue( ApplicationModel::BackgroundJobSearchIndex.new( self.class.to_s, id ) )
|
Delayed::Job.enqueue(ApplicationModel::BackgroundJobSearchIndex.new(self.class.to_s, id))
|
||||||
end
|
end
|
||||||
|
|
||||||
=begin
|
=begin
|
||||||
|
@ -780,7 +784,10 @@ delete search index object, will be executed automatically
|
||||||
=end
|
=end
|
||||||
|
|
||||||
def search_index_destroy
|
def search_index_destroy
|
||||||
return if !self.class.search_index_support_config
|
config = self.class.search_index_support_config
|
||||||
|
return if !config
|
||||||
|
return if config[:ignore_ids] && config[:ignore_ids].include?(id)
|
||||||
|
|
||||||
SearchIndexBackend.remove(self.class.to_s, id)
|
SearchIndexBackend.remove(self.class.to_s, id)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -796,7 +803,7 @@ reload search index with full data
|
||||||
return if !@search_index_support_config
|
return if !@search_index_support_config
|
||||||
all_ids = select('id').all.order('created_at DESC')
|
all_ids = select('id').all.order('created_at DESC')
|
||||||
all_ids.each { |item_with_id|
|
all_ids.each { |item_with_id|
|
||||||
item = find( item_with_id.id )
|
item = find(item_with_id.id)
|
||||||
item.search_index_update_backend
|
item.search_index_update_backend
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
@ -979,10 +986,10 @@ log object update history with all updated attributes, if configured - will be e
|
||||||
value_id[0] = value[0]
|
value_id[0] = value[0]
|
||||||
value_id[1] = value[1]
|
value_id[1] = value[1]
|
||||||
|
|
||||||
if respond_to?( attribute_name ) && send(attribute_name)
|
if respond_to?(attribute_name) && send(attribute_name)
|
||||||
relation_class = send(attribute_name).class
|
relation_class = send(attribute_name).class
|
||||||
if relation_class && value_id[0]
|
if relation_class && value_id[0]
|
||||||
relation_model = relation_class.lookup( id: value_id[0] )
|
relation_model = relation_class.lookup(id: value_id[0])
|
||||||
if relation_model
|
if relation_model
|
||||||
if relation_model['name']
|
if relation_model['name']
|
||||||
value_str[0] = relation_model['name']
|
value_str[0] = relation_model['name']
|
||||||
|
@ -992,7 +999,7 @@ log object update history with all updated attributes, if configured - will be e
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if relation_class && value_id[1]
|
if relation_class && value_id[1]
|
||||||
relation_model = relation_class.lookup( id: value_id[1] )
|
relation_model = relation_class.lookup(id: value_id[1])
|
||||||
if relation_model
|
if relation_model
|
||||||
if relation_model['name']
|
if relation_model['name']
|
||||||
value_str[1] = relation_model['name']
|
value_str[1] = relation_model['name']
|
||||||
|
@ -1059,7 +1066,7 @@ store attachments for this object
|
||||||
self.attachments_buffer = attachments
|
self.attachments_buffer = attachments
|
||||||
|
|
||||||
# update if object already exists
|
# update if object already exists
|
||||||
return if !( id && id != 0 )
|
return if !(id && id != 0)
|
||||||
|
|
||||||
attachments_buffer_check
|
attachments_buffer_check
|
||||||
end
|
end
|
||||||
|
|
|
@ -6,7 +6,7 @@ module ApplicationModel::HistoryLogBase
|
||||||
create history entry for this object
|
create history entry for this object
|
||||||
|
|
||||||
organization = Organization.find(123)
|
organization = Organization.find(123)
|
||||||
result = organization.history_log( 'created', user_id )
|
result = organization.history_log('created', user_id)
|
||||||
|
|
||||||
returns
|
returns
|
||||||
|
|
||||||
|
@ -77,19 +77,19 @@ returns
|
||||||
|
|
||||||
def history_get(fulldata = false)
|
def history_get(fulldata = false)
|
||||||
if !fulldata
|
if !fulldata
|
||||||
return History.list( self.class.name, self['id'] )
|
return History.list(self.class.name, self['id'])
|
||||||
end
|
end
|
||||||
|
|
||||||
# get related objects
|
# get related objects
|
||||||
history = History.list( self.class.name, self['id'], nil, true )
|
history = History.list(self.class.name, self['id'], nil, true)
|
||||||
history[:list].each {|item|
|
history[:list].each {|item|
|
||||||
record = Kernel.const_get( item['object'] ).find( item['o_id'] )
|
record = Kernel.const_get(item['object']).find(item['o_id'])
|
||||||
|
|
||||||
history[:assets] = record.assets( history[:assets] )
|
history[:assets] = record.assets(history[:assets])
|
||||||
|
|
||||||
if item['related_object']
|
if item['related_object']
|
||||||
record = Kernel.const_get( item['related_object'] ).find( item['related_o_id'] )
|
record = Kernel.const_get(item['related_object']).find(item['related_o_id'])
|
||||||
history[:assets] = record.assets( history[:assets] )
|
history[:assets] = record.assets(history[:assets])
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
|
|
@ -74,7 +74,8 @@ returns
|
||||||
|
|
||||||
lookup name of ref. objects
|
lookup name of ref. objects
|
||||||
|
|
||||||
attributes = search_index_attribute_lookup(attributes, Ticket)
|
ticket = Ticket.find(123)
|
||||||
|
attributes = ticket.search_index_attribute_lookup(attributes, Ticket)
|
||||||
|
|
||||||
returns
|
returns
|
||||||
|
|
||||||
|
@ -95,14 +96,14 @@ returns
|
||||||
attribute_name = attribute_name[ 0, attribute_name.length - 3 ]
|
attribute_name = attribute_name[ 0, attribute_name.length - 3 ]
|
||||||
|
|
||||||
# check if attribute method exists
|
# check if attribute method exists
|
||||||
next if !ref_object.respond_to?( attribute_name )
|
next if !ref_object.respond_to?(attribute_name)
|
||||||
|
|
||||||
# check if method has own class
|
# check if method has own class
|
||||||
relation_class = ref_object.send(attribute_name).class
|
relation_class = ref_object.send(attribute_name).class
|
||||||
next if !relation_class
|
next if !relation_class
|
||||||
|
|
||||||
# lookup ref object
|
# lookup ref object
|
||||||
relation_model = relation_class.lookup( id: value )
|
relation_model = relation_class.lookup(id: value)
|
||||||
next if !relation_model
|
next if !relation_model
|
||||||
|
|
||||||
# get name of ref object
|
# get name of ref object
|
||||||
|
|
|
@ -10,7 +10,7 @@ class Authorization < ApplicationModel
|
||||||
validates :provider, presence: true
|
validates :provider, presence: true
|
||||||
|
|
||||||
def self.find_from_hash(hash)
|
def self.find_from_hash(hash)
|
||||||
auth = Authorization.find_by( provider: hash['provider'], uid: hash['uid'] )
|
auth = Authorization.find_by(provider: hash['provider'], uid: hash['uid'])
|
||||||
if auth
|
if auth
|
||||||
|
|
||||||
# update auth tokens
|
# update auth tokens
|
||||||
|
@ -28,7 +28,7 @@ class Authorization < ApplicationModel
|
||||||
|
|
||||||
# update image if needed
|
# update image if needed
|
||||||
if hash['info']['image']
|
if hash['info']['image']
|
||||||
user = User.find( auth.user_id )
|
user = User.find(auth.user_id)
|
||||||
|
|
||||||
# save/update avatar
|
# save/update avatar
|
||||||
avatar = Avatar.add(
|
avatar = Avatar.add(
|
||||||
|
|
|
@ -62,7 +62,7 @@ add a avatar
|
||||||
|
|
||||||
# lookups
|
# lookups
|
||||||
if data[:object]
|
if data[:object]
|
||||||
object_id = ObjectLookup.by_name( data[:object] )
|
object_id = ObjectLookup.by_name(data[:object])
|
||||||
end
|
end
|
||||||
|
|
||||||
# add initial avatar
|
# add initial avatar
|
||||||
|
@ -159,7 +159,7 @@ add a avatar
|
||||||
end
|
end
|
||||||
|
|
||||||
# check if avatar need to be updated
|
# check if avatar need to be updated
|
||||||
record[:store_hash] = Digest::MD5.hexdigest( data[:resize][:content] )
|
record[:store_hash] = Digest::MD5.hexdigest(data[:resize][:content])
|
||||||
if avatar_already_exists && avatar_already_exists.store_hash == record[:store_hash]
|
if avatar_already_exists && avatar_already_exists.store_hash == record[:store_hash]
|
||||||
avatar_already_exists.touch
|
avatar_already_exists.touch
|
||||||
return
|
return
|
||||||
|
@ -179,7 +179,7 @@ add a avatar
|
||||||
created_by_id: data[:created_by_id],
|
created_by_id: data[:created_by_id],
|
||||||
)
|
)
|
||||||
record[:store_full_id] = store_full.id
|
record[:store_full_id] = store_full.id
|
||||||
record[:store_hash] = Digest::MD5.hexdigest( data[:full][:content] )
|
record[:store_hash] = Digest::MD5.hexdigest(data[:full][:content])
|
||||||
end
|
end
|
||||||
if data[:resize]
|
if data[:resize]
|
||||||
store_resize = Store.add(
|
store_resize = Store.add(
|
||||||
|
@ -193,7 +193,7 @@ add a avatar
|
||||||
created_by_id: data[:created_by_id],
|
created_by_id: data[:created_by_id],
|
||||||
)
|
)
|
||||||
record[:store_resize_id] = store_resize.id
|
record[:store_resize_id] = store_resize.id
|
||||||
record[:store_hash] = Digest::MD5.hexdigest( data[:resize][:content] )
|
record[:store_hash] = Digest::MD5.hexdigest(data[:resize][:content] )
|
||||||
end
|
end
|
||||||
|
|
||||||
# update existing
|
# update existing
|
||||||
|
@ -218,8 +218,8 @@ set avatars as default
|
||||||
|
|
||||||
=end
|
=end
|
||||||
|
|
||||||
def self.set_default( object_name, o_id, avatar_id )
|
def self.set_default(object_name, o_id, avatar_id)
|
||||||
object_id = ObjectLookup.by_name( object_name )
|
object_id = ObjectLookup.by_name(object_name)
|
||||||
avatar = Avatar.find_by(
|
avatar = Avatar.find_by(
|
||||||
object_lookup_id: object_id,
|
object_lookup_id: object_id,
|
||||||
o_id: o_id,
|
o_id: o_id,
|
||||||
|
|
|
@ -9,15 +9,15 @@ class Observer::Ticket::Article::CommunicateEmail < ActiveRecord::Observer
|
||||||
return if Setting.get('import_mode')
|
return if Setting.get('import_mode')
|
||||||
|
|
||||||
# if sender is customer, do not communication
|
# if sender is customer, do not communication
|
||||||
sender = Ticket::Article::Sender.lookup( id: record.sender_id )
|
sender = Ticket::Article::Sender.lookup(id: record.sender_id)
|
||||||
return 1 if sender.nil?
|
return 1 if sender.nil?
|
||||||
return 1 if sender['name'] == 'Customer'
|
return 1 if sender['name'] == 'Customer'
|
||||||
|
|
||||||
# only apply on emails
|
# only apply on emails
|
||||||
type = Ticket::Article::Type.lookup( id: record.type_id )
|
type = Ticket::Article::Type.lookup(id: record.type_id)
|
||||||
return if type['name'] != 'email'
|
return if type['name'] != 'email'
|
||||||
|
|
||||||
# send background job
|
# send background job
|
||||||
Delayed::Job.enqueue( Observer::Ticket::Article::CommunicateEmail::BackgroundJob.new( record.id ) )
|
Delayed::Job.enqueue(Observer::Ticket::Article::CommunicateEmail::BackgroundJob.new(record.id))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -9,22 +9,22 @@ class Observer::Ticket::Article::FillupFromEmail < ActiveRecord::Observer
|
||||||
return if Setting.get('import_mode')
|
return if Setting.get('import_mode')
|
||||||
|
|
||||||
# if sender is customer, do not change anything
|
# if sender is customer, do not change anything
|
||||||
sender = Ticket::Article::Sender.lookup( id: record.sender_id )
|
sender = Ticket::Article::Sender.lookup(id: record.sender_id)
|
||||||
return if sender.nil?
|
return if sender.nil?
|
||||||
return if sender['name'] == 'Customer'
|
return if sender['name'] == 'Customer'
|
||||||
|
|
||||||
# set email attributes
|
# set email attributes
|
||||||
type = Ticket::Article::Type.lookup( id: record.type_id )
|
type = Ticket::Article::Type.lookup(id: record.type_id)
|
||||||
return if type['name'] != 'email'
|
return if type['name'] != 'email'
|
||||||
|
|
||||||
# set subject if empty
|
# set subject if empty
|
||||||
ticket = Ticket.lookup( id: record.ticket_id )
|
ticket = Ticket.lookup(id: record.ticket_id)
|
||||||
if !record.subject || record.subject == ''
|
if !record.subject || record.subject == ''
|
||||||
record.subject = ticket.title
|
record.subject = ticket.title
|
||||||
end
|
end
|
||||||
|
|
||||||
# clean subject
|
# clean subject
|
||||||
record.subject = ticket.subject_clean( record.subject )
|
record.subject = ticket.subject_clean(record.subject)
|
||||||
|
|
||||||
# generate message id, force it in prodution, in test allow to set it for testing reasons
|
# generate message id, force it in prodution, in test allow to set it for testing reasons
|
||||||
if !record.message_id || Rails.env.production?
|
if !record.message_id || Rails.env.production?
|
||||||
|
@ -43,7 +43,7 @@ class Observer::Ticket::Article::FillupFromEmail < ActiveRecord::Observer
|
||||||
system_sender = "#{email_address.realname} <#{email_address.email}>"
|
system_sender = "#{email_address.realname} <#{email_address.email}>"
|
||||||
if Setting.get('ticket_define_email_from') == 'AgentNameSystemAddressName'
|
if Setting.get('ticket_define_email_from') == 'AgentNameSystemAddressName'
|
||||||
seperator = Setting.get('ticket_define_email_from_seperator')
|
seperator = Setting.get('ticket_define_email_from_seperator')
|
||||||
sender = User.find( record.created_by_id )
|
sender = User.find(record.created_by_id)
|
||||||
record.from = "#{sender.firstname} #{sender.lastname} #{seperator} #{system_sender}"
|
record.from = "#{sender.firstname} #{sender.lastname} #{seperator} #{system_sender}"
|
||||||
else
|
else
|
||||||
record.from = system_sender
|
record.from = system_sender
|
||||||
|
|
|
@ -11,16 +11,16 @@ class Observer::Ticket::Article::SignatureDetection < ActiveRecord::Observer
|
||||||
return if Setting.get('import_mode')
|
return if Setting.get('import_mode')
|
||||||
|
|
||||||
# if sender is not customer, do not change anything
|
# if sender is not customer, do not change anything
|
||||||
sender = Ticket::Article::Sender.lookup( id: record.sender_id )
|
sender = Ticket::Article::Sender.lookup(id: record.sender_id)
|
||||||
return if !sender
|
return if !sender
|
||||||
return if sender['name'] != 'Customer'
|
return if sender['name'] != 'Customer'
|
||||||
|
|
||||||
# set email attributes
|
# set email attributes
|
||||||
type = Ticket::Article::Type.lookup( id: record.type_id )
|
type = Ticket::Article::Type.lookup(id: record.type_id)
|
||||||
return if type['name'] != 'email'
|
return if type['name'] != 'email'
|
||||||
|
|
||||||
# add queue job to update current signature of user id
|
# add queue job to update current signature of user id
|
||||||
Delayed::Job.enqueue( Observer::Ticket::Article::SignatureDetection::BackgroundJob.new( record.created_by_id ) )
|
Delayed::Job.enqueue(Observer::Ticket::Article::SignatureDetection::BackgroundJob.new(record.created_by_id))
|
||||||
|
|
||||||
# user
|
# user
|
||||||
user = User.lookup(id: record.created_by_id)
|
user = User.lookup(id: record.created_by_id)
|
||||||
|
|
|
@ -22,8 +22,8 @@ class Observer::Ticket::CloseTime < ActiveRecord::Observer
|
||||||
return true if record.close_time
|
return true if record.close_time
|
||||||
|
|
||||||
# check if ticket is closed now
|
# check if ticket is closed now
|
||||||
state = Ticket::State.lookup( id: record.state_id )
|
state = Ticket::State.lookup(id: record.state_id)
|
||||||
state_type = Ticket::StateType.lookup( id: state.state_type_id )
|
state_type = Ticket::StateType.lookup(id: state.state_type_id)
|
||||||
return true if state_type.name != 'closed'
|
return true if state_type.name != 'closed'
|
||||||
|
|
||||||
# set close_time
|
# set close_time
|
||||||
|
|
|
@ -27,7 +27,7 @@ class Observer::Ticket::Notification < ActiveRecord::Observer
|
||||||
list_objects.each {|_ticket_id, item|
|
list_objects.each {|_ticket_id, item|
|
||||||
|
|
||||||
# send background job
|
# send background job
|
||||||
Delayed::Job.enqueue( Observer::Ticket::Notification::BackgroundJob.new( item, via_web ) )
|
Delayed::Job.enqueue(Observer::Ticket::Notification::BackgroundJob.new(item, via_web))
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ class Observer::Ticket::Notification < ActiveRecord::Observer
|
||||||
|
|
||||||
# get current state of objects
|
# get current state of objects
|
||||||
if event[:name] == 'Ticket::Article'
|
if event[:name] == 'Ticket::Article'
|
||||||
article = Ticket::Article.lookup( id: event[:id] )
|
article = Ticket::Article.lookup(id: event[:id])
|
||||||
|
|
||||||
# next if article is already deleted
|
# next if article is already deleted
|
||||||
next if !article
|
next if !article
|
||||||
|
@ -76,7 +76,7 @@ class Observer::Ticket::Notification < ActiveRecord::Observer
|
||||||
end
|
end
|
||||||
|
|
||||||
elsif event[:name] == 'Ticket'
|
elsif event[:name] == 'Ticket'
|
||||||
ticket = Ticket.lookup( id: event[:id] )
|
ticket = Ticket.lookup(id: event[:id])
|
||||||
|
|
||||||
# next if ticket is already deleted
|
# next if ticket is already deleted
|
||||||
next if !ticket
|
next if !ticket
|
||||||
|
|
|
@ -83,7 +83,7 @@ class Observer::Ticket::Notification::BackgroundJob
|
||||||
|
|
||||||
# ignore if no changes has been done
|
# ignore if no changes has been done
|
||||||
changes = human_changes(user, ticket)
|
changes = human_changes(user, ticket)
|
||||||
next if @p[:type] == 'update' && !article && ( !changes || changes.empty? )
|
next if @p[:type] == 'update' && !article && (!changes || changes.empty?)
|
||||||
|
|
||||||
# check if today already notified
|
# check if today already notified
|
||||||
if @p[:type] == 'reminder_reached' || @p[:type] == 'escalation' || @p[:type] == 'escalation_warning'
|
if @p[:type] == 'reminder_reached' || @p[:type] == 'escalation' || @p[:type] == 'escalation_warning'
|
||||||
|
@ -241,10 +241,10 @@ class Observer::Ticket::Notification::BackgroundJob
|
||||||
value_id[0] = value[0]
|
value_id[0] = value[0]
|
||||||
value_id[1] = value[1]
|
value_id[1] = value[1]
|
||||||
|
|
||||||
if record.respond_to?( attribute_name ) && record.send(attribute_name)
|
if record.respond_to?(attribute_name) && record.send(attribute_name)
|
||||||
relation_class = record.send(attribute_name).class
|
relation_class = record.send(attribute_name).class
|
||||||
if relation_class && value_id[0]
|
if relation_class && value_id[0]
|
||||||
relation_model = relation_class.lookup( id: value_id[0] )
|
relation_model = relation_class.lookup(id: value_id[0])
|
||||||
if relation_model
|
if relation_model
|
||||||
if relation_model['name']
|
if relation_model['name']
|
||||||
value_str[0] = relation_model['name']
|
value_str[0] = relation_model['name']
|
||||||
|
@ -254,7 +254,7 @@ class Observer::Ticket::Notification::BackgroundJob
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if relation_class && value_id[1]
|
if relation_class && value_id[1]
|
||||||
relation_model = relation_class.lookup( id: value_id[1] )
|
relation_model = relation_class.lookup(id: value_id[1])
|
||||||
if relation_model
|
if relation_model
|
||||||
if relation_model['name']
|
if relation_model['name']
|
||||||
value_str[1] = relation_model['name']
|
value_str[1] = relation_model['name']
|
||||||
|
@ -271,7 +271,7 @@ class Observer::Ticket::Notification::BackgroundJob
|
||||||
if object_manager_attribute && object_manager_attribute[:display]
|
if object_manager_attribute && object_manager_attribute[:display]
|
||||||
|
|
||||||
# delete old key
|
# delete old key
|
||||||
changes.delete( display )
|
changes.delete(display)
|
||||||
|
|
||||||
# set new key
|
# set new key
|
||||||
display = object_manager_attribute[:display].to_s
|
display = object_manager_attribute[:display].to_s
|
||||||
|
|
|
@ -28,6 +28,6 @@ class Observer::Ticket::OnlineNotificationSeen < ActiveRecord::Observer
|
||||||
|
|
||||||
# set all online notifications to seen
|
# set all online notifications to seen
|
||||||
# send background job
|
# send background job
|
||||||
Delayed::Job.enqueue( Observer::Ticket::OnlineNotificationSeen::BackgroundJob.new( record.id, record.updated_by_id ) )
|
Delayed::Job.enqueue(Observer::Ticket::OnlineNotificationSeen::BackgroundJob.new(record.id, record.updated_by_id))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -12,17 +12,17 @@ class Observer::Ticket::ResetNewState < ActiveRecord::Observer
|
||||||
return true if record.internal
|
return true if record.internal
|
||||||
|
|
||||||
# if sender is agent
|
# if sender is agent
|
||||||
return true if Ticket::Article::Sender.lookup( id: record.sender_id ).name != 'Agent'
|
return true if Ticket::Article::Sender.lookup(id: record.sender_id).name != 'Agent'
|
||||||
|
|
||||||
# if article is a message to customer
|
# if article is a message to customer
|
||||||
return true if !Ticket::Article::Type.lookup( id: record.type_id ).communication
|
return true if !Ticket::Article::Type.lookup(id: record.type_id).communication
|
||||||
|
|
||||||
# if current ticket state is still new
|
# if current ticket state is still new
|
||||||
ticket = Ticket.lookup( id: record.ticket_id )
|
ticket = Ticket.lookup(id: record.ticket_id)
|
||||||
return true if ticket.state.state_type.name != 'new'
|
return true if ticket.state.state_type.name != 'new'
|
||||||
|
|
||||||
# TODO: add config option to state managment in UI
|
# TODO: add config option to state managment in UI
|
||||||
state = Ticket::State.lookup( name: 'open' )
|
state = Ticket::State.lookup(name: 'open')
|
||||||
return if !state
|
return if !state
|
||||||
|
|
||||||
# set ticket to open
|
# set ticket to open
|
||||||
|
|
|
@ -7,21 +7,21 @@ class Observer::Ticket::UserTicketCounter::BackgroundJob
|
||||||
def perform
|
def perform
|
||||||
|
|
||||||
# open ticket count
|
# open ticket count
|
||||||
state_open = Ticket::State.by_category( 'open' )
|
state_open = Ticket::State.by_category('open')
|
||||||
tickets_open = Ticket.where(
|
tickets_open = Ticket.where(
|
||||||
customer_id: @customer_id,
|
customer_id: @customer_id,
|
||||||
state_id: state_open,
|
state_id: state_open,
|
||||||
).count()
|
).count()
|
||||||
|
|
||||||
# closed ticket count
|
# closed ticket count
|
||||||
state_closed = Ticket::State.by_category( 'closed' )
|
state_closed = Ticket::State.by_category('closed')
|
||||||
tickets_closed = Ticket.where(
|
tickets_closed = Ticket.where(
|
||||||
customer_id: @customer_id,
|
customer_id: @customer_id,
|
||||||
state_id: state_closed,
|
state_id: state_closed,
|
||||||
).count()
|
).count()
|
||||||
|
|
||||||
# check if update is needed
|
# check if update is needed
|
||||||
customer = User.lookup( id: @customer_id )
|
customer = User.lookup(id: @customer_id)
|
||||||
need_update = false
|
need_update = false
|
||||||
if customer[:preferences][:tickets_open] != tickets_open
|
if customer[:preferences][:tickets_open] != tickets_open
|
||||||
need_update = true
|
need_update = true
|
||||||
|
|
|
@ -18,7 +18,7 @@ class Observer::User::Geo < ActiveRecord::Observer
|
||||||
|
|
||||||
# check if geo update is needed based on old/new location
|
# check if geo update is needed based on old/new location
|
||||||
if record.id
|
if record.id
|
||||||
current = User.find_by( id: record.id )
|
current = User.find_by(id: record.id)
|
||||||
return if !current
|
return if !current
|
||||||
|
|
||||||
current_location = {}
|
current_location = {}
|
||||||
|
@ -34,7 +34,7 @@ class Observer::User::Geo < ActiveRecord::Observer
|
||||||
}
|
}
|
||||||
|
|
||||||
# return if address hasn't changed and geo data is already available
|
# return if address hasn't changed and geo data is already available
|
||||||
return if ( current_location == next_location ) && record.preferences['lat'] && record.preferences['lng']
|
return if (current_location == next_location) && record.preferences['lat'] && record.preferences['lng']
|
||||||
|
|
||||||
# geo update
|
# geo update
|
||||||
geo_update(record)
|
geo_update(record)
|
||||||
|
@ -54,7 +54,7 @@ class Observer::User::Geo < ActiveRecord::Observer
|
||||||
return if address == ''
|
return if address == ''
|
||||||
|
|
||||||
# lookup
|
# lookup
|
||||||
latlng = Service::GeoLocation.geocode( address )
|
latlng = Service::GeoLocation.geocode(address)
|
||||||
return if !latlng
|
return if !latlng
|
||||||
|
|
||||||
# store data
|
# store data
|
||||||
|
|
|
@ -25,7 +25,7 @@ class Observer::User::RefObjectTouch < ActiveRecord::Observer
|
||||||
organization_id_changed = record.changes['organization_id']
|
organization_id_changed = record.changes['organization_id']
|
||||||
if organization_id_changed && organization_id_changed[0] != organization_id_changed[1]
|
if organization_id_changed && organization_id_changed[0] != organization_id_changed[1]
|
||||||
if organization_id_changed[0]
|
if organization_id_changed[0]
|
||||||
organization = Organization.find( organization_id_changed[0] )
|
organization = Organization.find(organization_id_changed[0])
|
||||||
organization.touch
|
organization.touch
|
||||||
member_ids = organization.member_ids
|
member_ids = organization.member_ids
|
||||||
end
|
end
|
||||||
|
|
|
@ -18,7 +18,7 @@ class Observer::User::TicketOrganization < ActiveRecord::Observer
|
||||||
return if !record.changes['organization_id']
|
return if !record.changes['organization_id']
|
||||||
|
|
||||||
# update last 100 tickets of user
|
# update last 100 tickets of user
|
||||||
tickets = Ticket.where( customer_id: record.id ).limit(100)
|
tickets = Ticket.where(customer_id: record.id).limit(100)
|
||||||
tickets.each {|ticket|
|
tickets.each {|ticket|
|
||||||
if ticket.organization_id != record.organization_id
|
if ticket.organization_id != record.organization_id
|
||||||
ticket.organization_id = record.organization_id
|
ticket.organization_id = record.organization_id
|
||||||
|
|
|
@ -8,7 +8,7 @@ class Organization
|
||||||
get all assets / related models for this organization
|
get all assets / related models for this organization
|
||||||
|
|
||||||
organization = Organization.find(123)
|
organization = Organization.find(123)
|
||||||
result = organization.assets( assets_if_exists )
|
result = organization.assets(assets_if_exists)
|
||||||
|
|
||||||
returns
|
returns
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ class Organization
|
||||||
check if user has access to user
|
check if user has access to user
|
||||||
|
|
||||||
user = Organization.find(123)
|
user = Organization.find(123)
|
||||||
result = organization.permission( :type => 'rw', :current_user => User.find(123) )
|
result = organization.permission(type: 'rw', current_user: User.find(123))
|
||||||
|
|
||||||
returns
|
returns
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,8 @@ class Organization
|
||||||
|
|
||||||
lookup name of ref. objects
|
lookup name of ref. objects
|
||||||
|
|
||||||
attributes = search_index_attribute_lookup(attributes, Ticket)
|
organization = Organization.find(123)
|
||||||
|
attributes = organization.search_index_attribute_lookup(attributes, Organization)
|
||||||
|
|
||||||
returns
|
returns
|
||||||
|
|
||||||
|
@ -26,14 +27,14 @@ returns
|
||||||
attribute_name = attribute_name[ 0, attribute_name.length - 3 ]
|
attribute_name = attribute_name[ 0, attribute_name.length - 3 ]
|
||||||
|
|
||||||
# check if attribute method exists
|
# check if attribute method exists
|
||||||
next if !ref_object.respond_to?( attribute_name )
|
next if !ref_object.respond_to?(attribute_name)
|
||||||
|
|
||||||
# check if method has own class
|
# check if method has own class
|
||||||
relation_class = ref_object.send(attribute_name).class
|
relation_class = ref_object.send(attribute_name).class
|
||||||
next if !relation_class
|
next if !relation_class
|
||||||
|
|
||||||
# lookup ref object
|
# lookup ref object
|
||||||
relation_model = relation_class.lookup( id: value )
|
relation_model = relation_class.lookup(id: value)
|
||||||
next if !relation_model
|
next if !relation_model
|
||||||
|
|
||||||
# get name of ref object
|
# get name of ref object
|
||||||
|
@ -50,7 +51,7 @@ returns
|
||||||
|
|
||||||
# add org member for search index data
|
# add org member for search index data
|
||||||
attributes['member'] = []
|
attributes['member'] = []
|
||||||
users = User.where( organization_id: id )
|
users = User.where(organization_id: id)
|
||||||
users.each { |user|
|
users.each { |user|
|
||||||
attributes['member'].push user.search_index_data
|
attributes['member'].push user.search_index_data
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,7 +70,8 @@ class User < ApplicationModel
|
||||||
source: true,
|
source: true,
|
||||||
login_failed: true,
|
login_failed: true,
|
||||||
preferences: true,
|
preferences: true,
|
||||||
}
|
},
|
||||||
|
ignore_ids: [1],
|
||||||
)
|
)
|
||||||
|
|
||||||
=begin
|
=begin
|
||||||
|
|
|
@ -8,7 +8,7 @@ class User
|
||||||
get all assets / related models for this user
|
get all assets / related models for this user
|
||||||
|
|
||||||
user = User.find(123)
|
user = User.find(123)
|
||||||
result = user.assets( assets_if_exists )
|
result = user.assets(assets_if_exists)
|
||||||
|
|
||||||
returns
|
returns
|
||||||
|
|
||||||
|
@ -63,8 +63,8 @@ returns
|
||||||
local_attributes['role_ids'] = local_role_ids
|
local_attributes['role_ids'] = local_role_ids
|
||||||
if local_role_ids
|
if local_role_ids
|
||||||
local_role_ids.each {|role_id|
|
local_role_ids.each {|role_id|
|
||||||
role = Role.lookup( id: role_id )
|
role = Role.lookup(id: role_id)
|
||||||
data = role.assets( data )
|
data = role.assets(data)
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -78,8 +78,9 @@ returns
|
||||||
local_attributes['group_ids'] = local_group_ids
|
local_attributes['group_ids'] = local_group_ids
|
||||||
if local_group_ids
|
if local_group_ids
|
||||||
local_group_ids.each {|group_id|
|
local_group_ids.each {|group_id|
|
||||||
group = Group.lookup( id: group_id )
|
group = Group.lookup(id: group_id)
|
||||||
data = group.assets( data )
|
next if !group
|
||||||
|
data = group.assets(data)
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -93,8 +94,9 @@ returns
|
||||||
local_attributes['organization_ids'] = local_organization_ids
|
local_attributes['organization_ids'] = local_organization_ids
|
||||||
if local_organization_ids
|
if local_organization_ids
|
||||||
local_organization_ids.each {|organization_id|
|
local_organization_ids.each {|organization_id|
|
||||||
organization = Organization.lookup( id: organization_id )
|
organization = Organization.lookup(id: organization_id)
|
||||||
data = organization.assets( data )
|
next if !organization
|
||||||
|
data = organization.assets(data)
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -104,8 +106,10 @@ returns
|
||||||
# add organization
|
# add organization
|
||||||
if self.organization_id
|
if self.organization_id
|
||||||
if !data[ Organization.to_app_model ] || !data[ Organization.to_app_model ][ self.organization_id ]
|
if !data[ Organization.to_app_model ] || !data[ Organization.to_app_model ][ self.organization_id ]
|
||||||
organization = Organization.lookup( id: self.organization_id )
|
organization = Organization.lookup(id: self.organization_id)
|
||||||
data = organization.assets( data )
|
if organization
|
||||||
|
data = organization.assets(data)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
%w(created_by_id updated_by_id).each {|local_user_id|
|
%w(created_by_id updated_by_id).each {|local_user_id|
|
||||||
|
|
|
@ -8,7 +8,7 @@ class User
|
||||||
check if user has access to user
|
check if user has access to user
|
||||||
|
|
||||||
user = User.find(123)
|
user = User.find(123)
|
||||||
result = user.permission( :type => 'rw', :current_user => User.find(123) )
|
result = user.permission(type: 'rw', current_user: User.find(123))
|
||||||
|
|
||||||
returns
|
returns
|
||||||
|
|
||||||
|
|
|
@ -70,7 +70,7 @@ returns
|
||||||
# - stip out * we already search for *query* -
|
# - stip out * we already search for *query* -
|
||||||
query.delete! '*'
|
query.delete! '*'
|
||||||
users = if params[:role_ids]
|
users = if params[:role_ids]
|
||||||
User.joins(:roles).where( 'roles.id' => params[:role_ids] ).where(
|
User.joins(:roles).where('roles.id' => params[:role_ids]).where(
|
||||||
'(users.firstname LIKE ? OR users.lastname LIKE ? OR users.email LIKE ? OR users.login LIKE ?) AND users.id != 1', "%#{query}%", "%#{query}%", "%#{query}%", "%#{query}%"
|
'(users.firstname LIKE ? OR users.lastname LIKE ? OR users.email LIKE ? OR users.login LIKE ?) AND users.id != 1', "%#{query}%", "%#{query}%", "%#{query}%", "%#{query}%"
|
||||||
).order('firstname').limit(limit)
|
).order('firstname').limit(limit)
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in a new issue