From 498e5ba487e9840e3e3fdee9e5eb3be74e3194d0 Mon Sep 17 00:00:00 2001 From: Mantas Date: Sun, 15 Nov 2020 07:55:20 +0200 Subject: [PATCH] Fixes #3267 - Issue opened in overview doesn't have previous/next buttons if it was opened before --- .../app/controllers/ticket_zoom.coffee | 20 +++++++---- spec/system/ticket/zoom_spec.rb | 36 +++++++++++++++++++ 2 files changed, 50 insertions(+), 6 deletions(-) diff --git a/app/assets/javascripts/app/controllers/ticket_zoom.coffee b/app/assets/javascripts/app/controllers/ticket_zoom.coffee index 08abc2158..6834c11ec 100644 --- a/app/assets/javascripts/app/controllers/ticket_zoom.coffee +++ b/app/assets/javascripts/app/controllers/ticket_zoom.coffee @@ -19,7 +19,7 @@ class App.TicketZoom extends App.Controller @authenticateCheckRedirect() @formMeta = undefined - @ticket_id = params.ticket_id + @ticket_id = parseInt(params.ticket_id) @article_id = params.article_id @sidebarState = {} @@ -254,6 +254,11 @@ class App.TicketZoom extends App.Controller return if !@attributeBar @attributeBar.start() + if @renderDone && params.overview_id? && @overview_id != params.overview_id + @overview_id = params.overview_id + + @renderOverviewNavigator(@el) + # scroll to article if given scrollToPosition: (position, delay, article_id) => scrollToDelay = => @@ -429,11 +434,7 @@ class App.TicketZoom extends App.Controller dir: App.i18n.dir() ) - new App.TicketZoomOverviewNavigator( - el: elLocal.find('.js-overviewNavigatorContainer') - ticket_id: @ticket_id - overview_id: @overview_id - ) + @renderOverviewNavigator(elLocal) new App.TicketZoomTitle( object_id: @ticket_id @@ -1035,6 +1036,13 @@ class App.TicketZoom extends App.Controller article: {} App.TaskManager.update(@taskKey, { 'state': @localTaskData }) + renderOverviewNavigator: (parentEl) -> + new App.TicketZoomOverviewNavigator( + el: parentEl.find('.js-overviewNavigatorContainer') + ticket_id: @ticket_id + overview_id: @overview_id + ) + class TicketZoomRouter extends App.ControllerPermanent requiredPermission: ['ticket.agent', 'ticket.customer'] constructor: (params) -> diff --git a/spec/system/ticket/zoom_spec.rb b/spec/system/ticket/zoom_spec.rb index 5f440ad1a..c40bdc1c4 100644 --- a/spec/system/ticket/zoom_spec.rb +++ b/spec/system/ticket/zoom_spec.rb @@ -1094,6 +1094,7 @@ RSpec.describe 'Ticket zoom', type: :system do end end +<<<<<<< HEAD # https://github.com/zammad/zammad/issues/3260 describe 'next in overview macro changes URL', authenticated_as: :authenticate do let(:ticket_a) { create(:ticket, title: 'ticket a', group: Group.first) } @@ -1167,4 +1168,39 @@ RSpec.describe 'Ticket zoom', type: :system do end end end + + # https://github.com/zammad/zammad/issues/3267 + describe 'previous/next buttons are added when open ticket is opened from overview' do + let(:ticket_a) { create(:ticket, title: 'ticket a', group: Group.first) } + let(:ticket_b) { create(:ticket, title: 'ticket b', group: Group.first) } + + # prepare an opened ticket and go to overview + before do + ticket_a && ticket_b + + visit "ticket/zoom/#{ticket_a.id}" + + await_empty_ajax_queue + + visit 'ticket/view/all_unassigned' + end + + it 'adds previous/next buttons to existing ticket' do + within :active_content do + click_on ticket_a.title + + expect(page).to have_css('.pagination-counter') + end + end + + it 'keeps previous/next buttons when navigating to overview ticket from elsewhere' do + within :active_content do + click_on ticket_a.title + visit 'dashboard' + visit "ticket/zoom/#{ticket_a.id}" + + expect(page).to have_css('.pagination-counter') + end + end + end end