Fixes #2669 - Pressing "Cancel" in a new ticket dialog doesn't close it's tab
This commit is contained in:
parent
17f457cb58
commit
2001ac6968
4 changed files with 44 additions and 3 deletions
|
@ -442,7 +442,9 @@ class App.TicketCreate extends App.Controller
|
||||||
|
|
||||||
cancel: (e) ->
|
cancel: (e) ->
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
@navigate '#'
|
|
||||||
|
worker = App.TaskManager.worker(@taskKey)
|
||||||
|
App.Event.trigger('taskClose', [worker.taskKey])
|
||||||
|
|
||||||
params: =>
|
params: =>
|
||||||
params = @formParam(@$('.main form'))
|
params = @formParam(@$('.main form'))
|
||||||
|
|
|
@ -59,6 +59,10 @@ class App.TaskbarWidget extends App.CollectionController
|
||||||
@controllerBind('taskCollectionOrderSet', (taskKeys) =>
|
@controllerBind('taskCollectionOrderSet', (taskKeys) =>
|
||||||
@collectionOrderSet(taskKeys)
|
@collectionOrderSet(taskKeys)
|
||||||
)
|
)
|
||||||
|
@controllerBind('taskClose', (tasks) =>
|
||||||
|
for task in tasks
|
||||||
|
@remove(null, task)
|
||||||
|
)
|
||||||
|
|
||||||
itemGet: (key) ->
|
itemGet: (key) ->
|
||||||
App.TaskManager.get(key)
|
App.TaskManager.get(key)
|
||||||
|
@ -74,8 +78,8 @@ class App.TaskbarWidget extends App.CollectionController
|
||||||
@locationVerify(e)
|
@locationVerify(e)
|
||||||
|
|
||||||
remove: (e, key = false, force = false) =>
|
remove: (e, key = false, force = false) =>
|
||||||
e.preventDefault()
|
e?.preventDefault()
|
||||||
e.stopPropagation()
|
e?.stopPropagation()
|
||||||
if !key
|
if !key
|
||||||
key = $(e.target).parents('a').data('key')
|
key = $(e.target).parents('a').data('key')
|
||||||
if !key
|
if !key
|
||||||
|
|
|
@ -43,3 +43,11 @@ end
|
||||||
Capybara.add_selector(:link_containing) do
|
Capybara.add_selector(:link_containing) do
|
||||||
xpath { |text| ".//a//*[text()[contains(.,\"#{text}\")]]" }
|
xpath { |text| ".//a//*[text()[contains(.,\"#{text}\")]]" }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Capybara.add_selector(:task_active) do
|
||||||
|
css { '.tasks .task.is-active' }
|
||||||
|
end
|
||||||
|
|
||||||
|
Capybara.add_selector(:task_with) do
|
||||||
|
css { |task_key| ".tasks .task[data-key='#{task_key}']" }
|
||||||
|
end
|
||||||
|
|
|
@ -449,4 +449,31 @@ RSpec.describe 'Ticket Create', type: :system do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# https://github.com/zammad/zammad/issues/2669
|
||||||
|
context 'when canceling new ticket creation' do
|
||||||
|
it 'closes the dialog' do
|
||||||
|
visit 'ticket/create'
|
||||||
|
|
||||||
|
task_key = find(:task_active)['data-key']
|
||||||
|
|
||||||
|
expect { click('.js-cancel') }.to change { has_selector?(:task_with, task_key, wait: 0) }.to(false)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'asks for confirmation if the dialog was modified' do
|
||||||
|
visit 'ticket/create'
|
||||||
|
|
||||||
|
task_key = find(:task_active)['data-key']
|
||||||
|
|
||||||
|
find('[name=title]').fill_in with: 'Title'
|
||||||
|
|
||||||
|
click '.js-cancel'
|
||||||
|
|
||||||
|
in_modal do
|
||||||
|
click '.js-submit'
|
||||||
|
end
|
||||||
|
|
||||||
|
expect(page).to have_no_selector(:task_with, task_key)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue