Fixes #3567 - Invalid auto assignment conditions may break ticket view for unassigned tickets.
This commit is contained in:
parent
01b414f9fc
commit
8ca12c1685
4 changed files with 36 additions and 1 deletions
|
@ -22,7 +22,7 @@ class App.SettingTicketAutoAssignment extends App.ControllerSubContent
|
||||||
@html(App.view('settings/ticket_auto_assignment')())
|
@html(App.view('settings/ticket_auto_assignment')())
|
||||||
|
|
||||||
configure_attributes = [
|
configure_attributes = [
|
||||||
{ name: 'condition', display: 'Conditions for effected objects', tag: 'ticket_selector', null: false, preview: false, action: false, hasChanged: false },
|
{ name: 'condition', display: 'Conditions for effected objects', tag: 'ticket_selector', null: false, preview: false, action: false, hasChanged: false, article: false },
|
||||||
]
|
]
|
||||||
|
|
||||||
ticket_auto_assignment_selector = App.Setting.get('ticket_auto_assignment_selector')
|
ticket_auto_assignment_selector = App.Setting.get('ticket_auto_assignment_selector')
|
||||||
|
|
|
@ -62,6 +62,9 @@ class App.UiElement.ticket_selector
|
||||||
# merge config
|
# merge config
|
||||||
elements = {}
|
elements = {}
|
||||||
|
|
||||||
|
if attribute.article is false
|
||||||
|
delete groups.article
|
||||||
|
|
||||||
if attribute.action
|
if attribute.action
|
||||||
elements['ticket.action'] =
|
elements['ticket.action'] =
|
||||||
name: 'action'
|
name: 'action'
|
||||||
|
|
17
db/migrate/20210528092410_issue_3567_auto_assignment.rb
Normal file
17
db/migrate/20210528092410_issue_3567_auto_assignment.rb
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
class Issue3567AutoAssignment < ActiveRecord::Migration[5.2]
|
||||||
|
def change
|
||||||
|
return if !Setting.exists?(name: 'system_init_done')
|
||||||
|
|
||||||
|
setting = Setting.get('ticket_auto_assignment_selector')
|
||||||
|
return if setting.blank?
|
||||||
|
return if setting['condition'].blank?
|
||||||
|
|
||||||
|
setting['condition'].each_key do |key|
|
||||||
|
next if !key.start_with?('article.')
|
||||||
|
|
||||||
|
setting['condition'].delete(key)
|
||||||
|
end
|
||||||
|
|
||||||
|
Setting.set('ticket_auto_assignment_selector', setting)
|
||||||
|
end
|
||||||
|
end
|
15
spec/db/migrate/issue_3567_auto_assignment_spec.rb
Normal file
15
spec/db/migrate/issue_3567_auto_assignment_spec.rb
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
RSpec.describe Issue3567AutoAssignment, type: :db_migration, db_strategy: :reset do
|
||||||
|
context 'when setting contains article keys' do
|
||||||
|
before do
|
||||||
|
Setting.set('ticket_auto_assignment_selector', { 'condition'=>{ 'article.subject'=>{ 'operator' => 'contains', 'value' => 'test' } } })
|
||||||
|
migrate
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'config gets removed' do
|
||||||
|
config = Setting.get('ticket_auto_assignment_selector')
|
||||||
|
expect(config['condition']['article.subject']).to be nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue