|
@@ -203,9 +203,22 @@ class App.TicketZoom extends App.Controller
|
|
|
# set all notifications to seen
|
|
|
App.OnlineNotification.seen('Ticket', @ticket_id)
|
|
|
|
|
|
+ scrollToPosition = (position, delay) =>
|
|
|
+ scrollToDelay = =>
|
|
|
+ if position is 'article'
|
|
|
+ @scrollToArticle(@last_article_id)
|
|
|
+ return
|
|
|
+ @scrollToBottom()
|
|
|
+ @delay(scrollToDelay, delay, 'scrollToPosition')
|
|
|
+
|
|
|
+ # scroll to article if given
|
|
|
+ if params.article_id && params.article_id isnt @last_article_id
|
|
|
+ @last_article_id = params.article_id
|
|
|
+ scrollToPosition('article', 300)
|
|
|
+
|
|
|
# if controller is executed twice, go to latest article (e. g. click on notification)
|
|
|
if @activeState
|
|
|
- @scrollToBottom()
|
|
|
+ scrollToPosition('bottom', 300)
|
|
|
return
|
|
|
@activeState = true
|
|
|
|
|
@@ -217,7 +230,7 @@ class App.TicketZoom extends App.Controller
|
|
|
App.Event.trigger('ui::ticket::shown', { ticket_id: @ticket_id })
|
|
|
|
|
|
# scroll to end of page
|
|
|
- @scrollToBottom()
|
|
|
+ scrollToPosition('bottom', 100)
|
|
|
|
|
|
@positionPageHeaderStart()
|
|
|
@autosaveStart()
|
|
@@ -434,7 +447,8 @@ class App.TicketZoom extends App.Controller
|
|
|
if @shown
|
|
|
|
|
|
# scroll to article if given
|
|
|
- if @article_id
|
|
|
+ if @article_id && @article_id isnt @last_article_id
|
|
|
+ @last_article_id = @article_id
|
|
|
scrollTo = =>
|
|
|
@scrollToArticle(@article_id)
|
|
|
@delay(scrollTo, 300)
|