Prechádzať zdrojové kódy

HUE-6808 [editor] Open logs job links on the mini JB

Enrico Berti 8 rokov pred
rodič
commit
f11c1d7

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

@@ -2305,17 +2305,16 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
 
     $(document).ready(function () {
       var jobBrowserViewModel = new JobBrowserViewModel();
+      function openJob(id) {
+        if (jobBrowserViewModel.job() == null) {
+          jobBrowserViewModel.job(new Job(jobBrowserViewModel, {}));
+        }
+        jobBrowserViewModel.job().id(id);
+        jobBrowserViewModel.job().fetchJob();
+      }
       % if not is_mini:
         ko.applyBindings(jobBrowserViewModel, $('#jobbrowserComponents')[0]);
 
-        function openJob(id) {
-          if (jobBrowserViewModel.job() == null) {
-            jobBrowserViewModel.job(new Job(jobBrowserViewModel, {}));
-          }
-          jobBrowserViewModel.job().id(id);
-          jobBrowserViewModel.job().fetchJob();
-        }
-
         huePubSub.subscribe('oozie.action.logs.click', function (widget) {
           var jobId = widget.logsURL().match(/jobbrowser\/jobs\/(.+?)\/single_logs$/i);
           if (jobId) {
@@ -2374,6 +2373,7 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
           $('#jobsPanel .nav-pills li[data-interface="' + interface + '"]').addClass('active');
           jobBrowserViewModel.selectInterface(interface);
         });
+        huePubSub.subscribe('mini.jb.open.job', openJob);
         huePubSub.subscribe('mini.jb.expand', function () {
           if (jobBrowserViewModel.job()) {
             huePubSub.publish('open.link', '/jobbrowser/#!id=' + jobBrowserViewModel.job().id());

+ 4 - 1
desktop/core/src/desktop/templates/ko_components.mako

@@ -410,10 +410,13 @@ from desktop.views import _ko
           $('#jobsPanel').hide();
         });
 
-        huePubSub.subscribe('show.jobs.panel', function () {
+        huePubSub.subscribe('show.jobs.panel', function (id) {
           huePubSub.publish('hide.history.panel');
           $('#jobsPanel').show();
           huePubSub.publish('mini.jb.navigate');
+          if (id) {
+            huePubSub.publish('mini.jb.open.job', id);
+          }
         });
 
         huePubSub.subscribe('toggle.jobs.panel', function () {

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

@@ -608,7 +608,12 @@ from notebook.conf import ENABLE_QUERY_BUILDER, ENABLE_QUERY_SCHEDULING, ENABLE_
   <div class="snippet-log-container margin-bottom-10" data-bind="visible: showLogs() && status() != 'ready' && status() != 'loading'" style="display: none;">
     <div data-bind="delayedOverflow, css: resultsKlass" style="margin-top: 5px; position: relative;">
       <ul data-bind="visible: jobs().length > 0, foreach: jobs" class="unstyled jobs-overlay">
-        <li data-bind="attr: {'id': $data.name.substr(4)}"><a data-bind="text: $.trim($data.name), hueLink: $data.url"></a>
+        <li data-bind="attr: {'id': $data.name.substr(4)}">
+          %if is_embeddable:
+            <a class="pointer" data-bind="text: $.trim($data.name), click: function() { huePubSub.publish('show.jobs.panel', $data.name); }, clickBubble: false"></a>
+          %else:
+            <a data-bind="text: $.trim($data.name), hueLink: $data.url"></a>
+          %endif
           <!-- ko if: typeof percentJob !== 'undefined' && percentJob() > -1 -->
           <div class="progress-job progress pull-left" style="background-color: #FFF; width: 100%" data-bind="css: {'progress-warning': percentJob() < 100, 'progress-success': percentJob() === 100}">
             <div class="bar" data-bind="style: {'width': percentJob() + '%'}"></div>