瀏覽代碼

HUE-6499 [jb] Improve arrow rendering on the main JB page and remove graph from the JB mini

Enrico Berti 8 年之前
父節點
當前提交
910a917
共有 1 個文件被更改,包括 25 次插入8 次删除
  1. 25 8
      apps/jobbrowser/src/jobbrowser/templates/job_browser.mako

+ 25 - 8
apps/jobbrowser/src/jobbrowser/templates/job_browser.mako

@@ -899,7 +899,9 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
     <div data-bind="css:{'span10': !$root.isMini(), 'span12': $root.isMini() }">
     <div data-bind="css:{'span10': !$root.isMini(), 'span12': $root.isMini() }">
 
 
       <ul class="nav nav-pills margin-top-20">
       <ul class="nav nav-pills margin-top-20">
+        %if not is_mini:
         <li class="active"><a href="#workflow-page-graph${ SUFFIX }" data-toggle="tab">${ _('Graph') }</a></li>
         <li class="active"><a href="#workflow-page-graph${ SUFFIX }" data-toggle="tab">${ _('Graph') }</a></li>
+        %endif
         <li><a href="#workflow-page-metadata${ SUFFIX }" data-bind="click: function(){ fetchProfile('properties'); $('a[href=\'#workflow-page-metadata${ SUFFIX }\']').tab('show'); }">${ _('Properties') }</a></li>
         <li><a href="#workflow-page-metadata${ SUFFIX }" data-bind="click: function(){ fetchProfile('properties'); $('a[href=\'#workflow-page-metadata${ SUFFIX }\']').tab('show'); }">${ _('Properties') }</a></li>
         <li><a class="jb-logs-link" href="#workflow-page-logs${ SUFFIX }" data-toggle="tab">${ _('Logs') }</a></li>
         <li><a class="jb-logs-link" href="#workflow-page-logs${ SUFFIX }" data-toggle="tab">${ _('Logs') }</a></li>
         <li><a href="#workflow-page-tasks${ SUFFIX }" data-toggle="tab">${ _('Tasks') }</a></li>
         <li><a href="#workflow-page-tasks${ SUFFIX }" data-toggle="tab">${ _('Tasks') }</a></li>
@@ -911,8 +913,9 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
 
 
 
 
       <div class="tab-content">
       <div class="tab-content">
-        <div class="tab-pane active dashboard-container" id="workflow-page-graph${ SUFFIX }">
-        </div>
+        %if not is_mini:
+        <div class="tab-pane active dashboard-container" id="workflow-page-graph${ SUFFIX }"></div>
+        %endif
 
 
         <div class="tab-pane" id="workflow-page-logs${ SUFFIX }">
         <div class="tab-pane" id="workflow-page-logs${ SUFFIX }">
           <pre data-bind="html: logs, logScroller: logs"></pre>
           <pre data-bind="html: logs, logScroller: logs"></pre>
@@ -1392,9 +1395,11 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
       var self = this;
       var self = this;
 
 
       self.id = ko.observableDefault(job.id);
       self.id = ko.observableDefault(job.id);
+      %if not is_mini:
       self.id.subscribe(function () {
       self.id.subscribe(function () {
         huePubSub.publish('graph.stop.refresh.view');
         huePubSub.publish('graph.stop.refresh.view');
       });
       });
+      %endif
       self.doc_url = ko.observableDefault(job.doc_url);
       self.doc_url = ko.observableDefault(job.doc_url);
       self.name = ko.observableDefault(job.name || job.id);
       self.name = ko.observableDefault(job.name || job.id);
       self.type = ko.observableDefault(job.type);
       self.type = ko.observableDefault(job.type);
@@ -1587,9 +1592,16 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
             crumbs.push({'id': vm.job().id(), 'name': vm.job().name(), 'type': vm.job().type()});
             crumbs.push({'id': vm.job().id(), 'name': vm.job().name(), 'type': vm.job().type()});
             vm.resetBreadcrumbs(crumbs);
             vm.resetBreadcrumbs(crumbs);
 
 
+            %if not is_mini:
             if (vm.job().type() === 'workflow' && !vm.job().workflowGraphLoaded) {
             if (vm.job().type() === 'workflow' && !vm.job().workflowGraphLoaded) {
               vm.job().updateWorkflowGraph();
               vm.job().updateWorkflowGraph();
             }
             }
+            %else:
+            if (vm.job().type() === 'workflow') {
+              vm.job().fetchProfile('properties');
+              $('a[href="#workflow-page-metadata${ SUFFIX }"]').tab('show');
+            }
+            %endif
 
 
             vm.job().fetchLogs();
             vm.job().fetchLogs();
 
 
@@ -1705,7 +1717,7 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
         }
         }
       }
       }
 
 
-      self.updateArrowsTimeout = -1;
+      self.updateArrowsInterval = -1;
       self.updateArrows = function() {
       self.updateArrows = function() {
         if ($('canvas').length > 0 && $('canvas').position().top !== self.lastArrowsPosition.top && $('canvas').position().left !== self.lastArrowsPosition.left) {
         if ($('canvas').length > 0 && $('canvas').position().top !== self.lastArrowsPosition.top && $('canvas').position().left !== self.lastArrowsPosition.left) {
           self.lastArrowsPosition = $('canvas').position();
           self.lastArrowsPosition = $('canvas').position();
@@ -1718,7 +1730,6 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
         else {
         else {
           $('canvas').remove();
           $('canvas').remove();
         }
         }
-        self.updateArrowsTimeout = window.setTimeout(self.updateArrows, 100);
       }
       }
 
 
       self.updateWorkflowGraph = function() {
       self.updateWorkflowGraph = function() {
@@ -1731,7 +1742,6 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
             opts.callback(opts.response);
             opts.callback(opts.response);
           });
           });
         }
         }
-
         if (vm.job().type() === 'workflow') {
         if (vm.job().type() === 'workflow') {
           $('#workflow-page-graph${ SUFFIX }').html('<div class="hue-spinner"><i class="fa fa-spinner fa-spin hue-spinner-center hue-spinner-xlarge"></i></div>');
           $('#workflow-page-graph${ SUFFIX }').html('<div class="hue-spinner"><i class="fa fa-spinner fa-spin hue-spinner-center hue-spinner-xlarge"></i></div>');
           $.ajax({
           $.ajax({
@@ -1752,9 +1762,9 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
                 response: response,
                 response: response,
                 callback: function (r) {
                 callback: function (r) {
                   $('#workflow-page-graph${ SUFFIX }').html(r);
                   $('#workflow-page-graph${ SUFFIX }').html(r);
-                  window.clearTimeout(self.updateArrowsTimeout);
+                  window.clearInterval(self.updateArrowsInterval);
                   self.initialArrowsDrawing();
                   self.initialArrowsDrawing();
-                  self.updateArrows();
+                  self.updateArrowsInterval = window.setInterval(self.updateArrows, 100, 'jobbrowser');
                 }
                 }
               });
               });
             }
             }
@@ -2102,11 +2112,11 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
         }
         }
       };
       };
       self.selectInterface = function(interface) {
       self.selectInterface = function(interface) {
-        huePubSub.publish('graph.stop.refresh.view');
         interface = self.isValidInterface(interface);
         interface = self.isValidInterface(interface);
         self.interface(interface);
         self.interface(interface);
         self.resetBreadcrumbs();
         self.resetBreadcrumbs();
         % if not is_mini:
         % if not is_mini:
+        huePubSub.publish('graph.stop.refresh.view');
         hueUtils.changeURL('#!' + interface);
         hueUtils.changeURL('#!' + interface);
         % endif
         % endif
         self.job(null);
         self.job(null);
@@ -2168,7 +2178,9 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
 
 
       self.load = function() {
       self.load = function() {
         var h = window.location.hash;
         var h = window.location.hash;
+        %if not is_mini:
         huePubSub.publish('graph.stop.refresh.view');
         huePubSub.publish('graph.stop.refresh.view');
+        %endif
 
 
         h = h.indexOf('#!') === 0 ? h.substr(2) : '';
         h = h.indexOf('#!') === 0 ? h.substr(2) : '';
         switch (h) {
         switch (h) {
@@ -2219,6 +2231,11 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
         jobBrowserViewModel.isMini(true);
         jobBrowserViewModel.isMini(true);
       % endif
       % endif
 
 
+      huePubSub.subscribe('app.gained.focus', function (app) {
+        if (app === 'jobbrowser') {
+          huePubSub.publish('graph.draw.arrows');
+        }
+      }, 'jobbrowser');
 
 
       var loadHash = function () {
       var loadHash = function () {
         if (window.location.pathname.indexOf('jobbrowser') > -1) {
         if (window.location.pathname.indexOf('jobbrowser') > -1) {