Bladeren bron

HUE-8758 [connectors] Prevent js exception for "missing snippets" on jobs update

Johan Ahlen 5 jaren geleden
bovenliggende
commit
a5327836e8
2 gewijzigde bestanden met toevoegingen van 58 en 56 verwijderingen
  1. 29 28
      desktop/core/src/desktop/js/apps/notebook/app.js
  2. 29 28
      desktop/core/src/desktop/js/apps/notebook2/app.js

+ 29 - 28
desktop/core/src/desktop/js/apps/notebook/app.js

@@ -1267,36 +1267,37 @@ if (window.ENABLE_NOTEBOOK_2) {
       huePubSub.subscribe(
         'jobbrowser.data',
         jobs => {
-          const snippet = viewModel.selectedNotebook().snippets()[0];
-          if (!snippet || snippet.type() === 'impala') {
-            return;
-          }
-          if (jobs.length > 0) {
-            let progress = 0;
-            let parent;
-            jobs.forEach(job => {
-              const id = job.shortId || job.id;
-              const el = $('.jobs-overlay li:contains(' + id + ')');
-              if (!el.length) {
-                return;
-              }
-              const context = ko.contextFor(el[0]);
-              parent = context.$parent;
-              const _job = context.$data;
-              progress = parseInt(job.mapsPercentComplete);
-              if (isNaN(progress)) {
-                progress = parseInt(job.progress);
-              }
-              if (!isNaN(progress)) {
-                _job.percentJob(progress);
-              } else {
-                progress = 0;
+          viewModel.withActiveSnippet(snippet => {
+            if (!snippet || snippet.type() === 'impala') {
+              return;
+            }
+            if (jobs.length > 0) {
+              let progress = 0;
+              let parent;
+              jobs.forEach(job => {
+                const id = job.shortId || job.id;
+                const el = $('.jobs-overlay li:contains(' + id + ')');
+                if (!el.length) {
+                  return;
+                }
+                const context = ko.contextFor(el[0]);
+                parent = context.$parent;
+                const _job = context.$data;
+                progress = parseInt(job.mapsPercentComplete);
+                if (isNaN(progress)) {
+                  progress = parseInt(job.progress);
+                }
+                if (!isNaN(progress)) {
+                  _job.percentJob(progress);
+                } else {
+                  progress = 0;
+                }
+              });
+              if (parent && parent.jobs().length === 1) {
+                parent.progress(Math.max(progress, parent.progress()));
               }
-            });
-            if (parent && parent.jobs().length === 1) {
-              parent.progress(Math.max(progress, parent.progress()));
             }
-          }
+          });
         },
         HUE_PUB_SUB_EDITOR_ID
       );

+ 29 - 28
desktop/core/src/desktop/js/apps/notebook2/app.js

@@ -725,36 +725,37 @@ export const initNotebook2 = () => {
       huePubSub.subscribe(
         'jobbrowser.data',
         jobs => {
-          const snippet = viewModel.selectedNotebook().snippets()[0];
-          if (!snippet || snippet.dialect() === DIALECT.impala) {
-            return;
-          }
-          if (jobs.length > 0) {
-            let progress = 0;
-            let parent;
-            jobs.forEach(job => {
-              const id = job.shortId || job.id;
-              const el = $('.jobs-overlay li:contains(' + id + ')');
-              if (!el.length) {
-                return;
-              }
-              const context = ko.contextFor(el[0]);
-              parent = context.$parent;
-              const _job = context.$data;
-              progress = parseInt(job.mapsPercentComplete);
-              if (isNaN(progress)) {
-                progress = parseInt(job.progress);
-              }
-              if (!isNaN(progress)) {
-                _job.percentJob(progress);
-              } else {
-                progress = 0;
+          viewModel.withActiveSnippet(snippet => {
+            if (!snippet || snippet.dialect() === DIALECT.impala) {
+              return;
+            }
+            if (jobs.length > 0) {
+              let progress = 0;
+              let parent;
+              jobs.forEach(job => {
+                const id = job.shortId || job.id;
+                const el = $('.jobs-overlay li:contains(' + id + ')');
+                if (!el.length) {
+                  return;
+                }
+                const context = ko.contextFor(el[0]);
+                parent = context.$parent;
+                const _job = context.$data;
+                progress = parseInt(job.mapsPercentComplete);
+                if (isNaN(progress)) {
+                  progress = parseInt(job.progress);
+                }
+                if (!isNaN(progress)) {
+                  _job.percentJob(progress);
+                } else {
+                  progress = 0;
+                }
+              });
+              if (parent && parent.jobs().length === 1) {
+                parent.progress(Math.max(progress, parent.progress()));
               }
-            });
-            if (parent && parent.jobs().length === 1) {
-              parent.progress(Math.max(progress, parent.progress()));
             }
-          }
+          });
         },
         HUE_PUB_SUB_EDITOR_ID
       );