From 88487ca3d9f4c8ab7539a68ac649a2e043984e73 Mon Sep 17 00:00:00 2001 From: Martin Edenhofer Date: Thu, 8 Sep 2016 08:41:04 +0200 Subject: [PATCH] Fetch tickets after new ws connection has been established. --- .../app/controllers/ticket_zoom.coffee | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/app/controllers/ticket_zoom.coffee b/app/assets/javascripts/app/controllers/ticket_zoom.coffee index 617531723..c51f96a1e 100644 --- a/app/assets/javascripts/app/controllers/ticket_zoom.coffee +++ b/app/assets/javascripts/app/controllers/ticket_zoom.coffee @@ -48,6 +48,11 @@ class App.TicketZoom extends App.Controller @fetchMayBe(data) ) + # after a new websocket connection, check if ticket has changed + @bind('spool:sent', => + @fetch() + ) + fetchMayBe: (data) => if @ticketUpdatedAtLastCall if new Date(data.updated_at).getTime() is new Date(@ticketUpdatedAtLastCall).getTime() @@ -59,7 +64,7 @@ class App.TicketZoom extends App.Controller fetchDelayed = => @fetch() - @delay(fetchDelayed, 1200, "ticket-zoom-#{@ticket_id}") + @delay(fetchDelayed, 1000, "ticket-zoom-#{@ticket_id}") fetch: => return if !@Session.get() @@ -70,6 +75,7 @@ class App.TicketZoom extends App.Controller type: 'GET' url: "#{@apiPath}/tickets/#{@ticket_id}?all=true" processData: true + queue: true success: (data, status, xhr) => # check if ticket has changed @@ -152,9 +158,6 @@ class App.TicketZoom extends App.Controller @ticket = App.Ticket.fullLocal(@ticket_id) @ticket.article = undefined - # remember current data - @ticketUpdatedAtLastCall = @ticket.updated_at - # render page @render() @@ -702,6 +705,11 @@ class App.TicketZoom extends App.Controller data: JSON.stringify(ticket.attributes()) processData: true success: (data) => + + # remember current data + newTicketRaw = data.assets.Ticket[ticket.id] + @ticketUpdatedAtLastCall = newTicketRaw.updated_at + App.SessionStorage.set(@key, data) @load(data)