Browse Source

Fixes #3445: Admin sidebar scrolls up on click on translations menu

Bola Ahmed Buari 3 years ago
parent
commit
7ea27276b7
1 changed files with 9 additions and 4 deletions
  1. 9 4
      app/assets/javascripts/app/controllers/translation.coffee

+ 9 - 4
app/assets/javascripts/app/controllers/translation.coffee

@@ -5,6 +5,7 @@ class Translation extends App.ControllerSubContent
     'click .js-pushChanges': 'pushChanges'
     'click .js-resetChanges': 'resetChanges'
     'click .js-syncChanges': 'syncChanges'
+  initialRenderingDone: false
 
   constructor: ->
     super
@@ -38,6 +39,7 @@ class Translation extends App.ControllerSubContent
       url:   "#{@apiPath}/translations/admin/lang/#{@locale}"
       processData: true
       success: (data, status, xhr) =>
+        @initialRenderingDone = true
         @times                = []
         @stringsNotTranslated = []
         @stringsTranslated    = []
@@ -50,6 +52,8 @@ class Translation extends App.ControllerSubContent
             else
               @stringsTranslated.push item
 
+        @untranslatedAtLastRender = $.extend({}, App.i18n.getNotTranslated(@locale))
+
         if !@translationToDo || event is 'render'
           @translationToDo = new TranslationToDo(
             el:             @$('.js-ToDo')
@@ -80,12 +84,13 @@ class Translation extends App.ControllerSubContent
     )
 
   show: =>
+    return if @initialRenderingDone is false
+
     # see https://github.com/zammad/zammad/issues/2056
-    @untranslatedAtLastRender ||= $.extend({}, App.i18n.getNotTranslated(@locale))
-    return if _.isEqual(@untranslatedAtLastRender, App.i18n.getNotTranslated(@locale))
+    return if _.isEmpty(App.i18n.getNotTranslated(@locale))
+    return if @untranslatedAtLastRender && _.isEqual(@untranslatedAtLastRender, App.i18n.getNotTranslated(@locale))
 
-    @untranslatedAtLastRender = $.extend({}, App.i18n.getNotTranslated(@locale))
-    App.Event.trigger('ui:rerender')
+    @render()
 
   hide: =>
     @rerender()