Преглед на файлове

HUE-3843 [editor] Log panel does not auto scroll to the bottom when new logs arrive

Enrico Berti преди 9 години
родител
ревизия
44ee60a

+ 7 - 1
desktop/core/src/desktop/static/desktop/js/ko.hue-bindings.js

@@ -405,7 +405,7 @@
   };
 
   ko.bindingHandlers.logScroller = {
-    init: function (element, valueAccessor) {
+    init: function (element, valueAccessor, allBindings) {
       var $element = $(element);
 
       $element.on("scroll", function () {
@@ -432,6 +432,12 @@
         window.setTimeout(autoLogScroll, 200);
       });
 
+      if (typeof allBindings().logScrollerVisibilityEvent !== 'undefined'){
+        allBindings().logScrollerVisibilityEvent.subscribe(function () {
+          window.setTimeout(autoLogScroll, 0);
+        });
+      }
+
       autoLogScroll();
     }
   };

+ 1 - 1
desktop/libs/notebook/src/notebook/templates/editor_components.mako

@@ -999,7 +999,7 @@ ${ hueIcons.symbols() }
         <li><a data-bind="text: $.trim($data.name), attr: { href: $data.url }" target="_blank"></a></li>
       </ul>
       <pre data-bind="visible: result.logs().length == 0" class="logs logs-bigger">${ _('No logs available at this moment.') }</pre>
-      <pre data-bind="visible: result.logs().length > 0, text: result.logs, logScroller: result.logs" class="logs logs-bigger logs-populated"></pre>
+      <pre data-bind="visible: result.logs().length > 0, text: result.logs, logScroller: result.logs, logScrollerVisibilityEvent: showLogs" class="logs logs-bigger logs-populated"></pre>
     </div>
     <div class="snippet-log-resizer" data-bind="visible: result.logs().length > 0, logResizer: {parent: '.snippet-log-container', target: '.logs-populated', onStart: hideFixedHeaders, onResize: function(){ hideFixedHeaders(); redrawFixedHeaders(500); }}">
       <i class="fa fa-ellipsis-h"></i>