Bladeren bron

[frontend] Introduced a new error message popup (#3488)

Changes in few files to make the alert component work according to the new CUIX component aligned with the Cloudera design.

---------

Co-authored-by: Rajeshwari <rajeshwarikanchamreddy@gmail.com>
Co-authored-by: Johan Åhlén <johan@johanahlen.com>
Ananya_Agarwal 2 jaren geleden
bovenliggende
commit
d2eaa991f5
64 gewijzigde bestanden met toevoegingen van 532 en 378 verwijderingen
  1. 5 5
      apps/about/src/about/templates/admin_wizard.mako
  2. 1 1
      apps/beeswax/src/beeswax/static/beeswax/js/autocomplete.utils.js
  3. 1 1
      apps/beeswax/src/beeswax/static/beeswax/js/beeswax.vm.js
  4. 5 5
      apps/beeswax/src/beeswax/static/beeswax/js/stats.utils.js
  5. 6 6
      apps/beeswax/src/beeswax/templates/execute.mako
  6. 18 18
      apps/filebrowser/src/filebrowser/templates/listdir_components.mako
  7. 3 3
      apps/hbase/src/hbase/templates/app.mako
  8. 2 2
      apps/jobbrowser/src/jobbrowser/templates/job.mako
  9. 11 11
      apps/jobbrowser/src/jobbrowser/templates/job_browser.mako
  10. 3 3
      apps/jobbrowser/src/jobbrowser/templates/jobs.mako
  11. 6 6
      apps/metastore/src/metastore/templates/metastore.mako
  12. 4 4
      apps/oozie/src/oozie/static/oozie/js/bundle-editor.ko.js
  13. 6 6
      apps/oozie/src/oozie/static/oozie/js/coordinator-editor.ko.js
  14. 9 9
      apps/oozie/src/oozie/static/oozie/js/workflow-editor.ko.js
  15. 2 2
      apps/oozie/src/oozie/templates/dashboard/list_oozie_bundle.mako
  16. 4 4
      apps/oozie/src/oozie/templates/dashboard/list_oozie_bundles.mako
  17. 2 2
      apps/oozie/src/oozie/templates/dashboard/list_oozie_coordinator.mako
  18. 4 4
      apps/oozie/src/oozie/templates/dashboard/list_oozie_coordinators.mako
  19. 3 3
      apps/oozie/src/oozie/templates/dashboard/list_oozie_workflow.mako
  20. 4 4
      apps/oozie/src/oozie/templates/dashboard/list_oozie_workflows.mako
  21. 12 11
      apps/oozie/src/oozie/templates/editor/edit_workflow.mako
  22. 3 3
      apps/oozie/src/oozie/templates/editor2/list_editor_bundles.mako
  23. 3 3
      apps/oozie/src/oozie/templates/editor2/list_editor_coordinators.mako
  24. 3 3
      apps/oozie/src/oozie/templates/editor2/list_editor_workflows.mako
  25. 2 2
      apps/pig/src/pig/static/pig/js/pig.ko.js
  26. 4 4
      apps/rdbms/src/rdbms/static/rdbms/js/autocomplete.utils.js
  27. 2 2
      apps/rdbms/src/rdbms/templates/execute.mako
  28. 6 6
      apps/security/src/security/static/security/js/hdfs.ko.js
  29. 23 23
      apps/security/src/security/static/security/js/hive.ko.js
  30. 23 23
      apps/security/src/security/static/security/js/sentry.ko.js
  31. 4 4
      apps/sqoop/src/sqoop/templates/app.mako
  32. 2 1
      desktop/core/src/desktop/js/api/apiUtils.js
  33. 4 4
      desktop/core/src/desktop/js/apps/editor/notebook.js
  34. 7 7
      desktop/core/src/desktop/js/apps/editor/snippet.js
  35. 1 1
      desktop/core/src/desktop/js/apps/notebook/NotebookViewModel.js
  36. 8 8
      desktop/core/src/desktop/js/apps/notebook/notebook.js
  37. 17 14
      desktop/core/src/desktop/js/apps/notebook/snippet.js
  38. 3 3
      desktop/core/src/desktop/js/apps/tableBrowser/metastoreTable.js
  39. 3 1
      desktop/core/src/desktop/js/doc/hueFileEntry.js
  40. 2 2
      desktop/core/src/desktop/js/hue.js
  41. 3 3
      desktop/core/src/desktop/js/jquery/plugins/jquery.filechooser.js
  42. 2 1
      desktop/core/src/desktop/js/ko/bindings/ko.dropzone.js
  43. 13 13
      desktop/core/src/desktop/js/ko/components/ko.sentryPrivileges.js
  44. 82 0
      desktop/core/src/desktop/js/reactComponents/AlertComponent/AlertComponent.scss
  45. 60 0
      desktop/core/src/desktop/js/reactComponents/AlertComponent/AlertComponent.tsx
  46. 3 0
      desktop/core/src/desktop/js/reactComponents/imports.js
  47. 4 4
      desktop/core/src/desktop/static/desktop/js/share.vm.js
  48. 3 3
      desktop/core/src/desktop/static/desktop/js/share2.vm.js
  49. 2 2
      desktop/core/src/desktop/templates/common_footer_m.mako
  50. 1 1
      desktop/core/src/desktop/templates/common_header_footer_components.mako
  51. 2 2
      desktop/core/src/desktop/templates/common_import_export.mako
  52. 3 3
      desktop/core/src/desktop/templates/common_notebook_ko_components.mako
  53. 5 5
      desktop/core/src/desktop/templates/home.mako
  54. 2 1
      desktop/core/src/desktop/templates/hue.mako
  55. 2 2
      desktop/core/src/desktop/templates/logs.mako
  56. 2 2
      desktop/libs/dashboard/src/dashboard/static/dashboard/js/create-collections.ko.js
  57. 22 22
      desktop/libs/dashboard/src/dashboard/static/dashboard/js/search.ko.js
  58. 24 24
      desktop/libs/indexer/src/indexer/static/indexer/js/collections.js
  59. 24 24
      desktop/libs/indexer/src/indexer/static/indexer/js/indexes.ko.js
  60. 11 11
      desktop/libs/indexer/src/indexer/templates/importer.mako
  61. 3 3
      desktop/libs/indexer/src/indexer/templates/indexer.mako
  62. 14 14
      desktop/libs/indexer/src/indexer/templates/indexes.mako
  63. 12 12
      desktop/libs/indexer/src/indexer/templates/topics.mako
  64. 2 2
      desktop/libs/notebook/src/notebook/templates/notebooks.mako

+ 5 - 5
apps/about/src/about/templates/admin_wizard.mako

@@ -333,7 +333,7 @@ ${ layout.menubar(section='quick_start') }
             $(document).trigger('info', data.message);
           }
           if (data.errorMessage) {
-            $(document).trigger('error', data.errorMessage);
+            huePubSub.publish('hue.global.error', {message: data.errorMessage});
           }
           if (data.status == 0 && $(event.target).data("is-connector")) {
             huePubSub.publish('cluster.config.refresh.config');
@@ -358,7 +358,7 @@ ${ layout.menubar(section='quick_start') }
           huePubSub.publish('cluster.config.refresh.config');
         }
       } else {
-        $(document).trigger('error', data.message);
+        huePubSub.publish('hue.global.error', {message: data.message});
       }
     })
     .always(function(data) {
@@ -381,7 +381,7 @@ ${ layout.menubar(section='quick_start') }
         $("#check-config-section .info").removeClass('hide');
       })
       .fail(function() {
-        $(document).trigger('error', '${ _("Check config failed: ")}');
+        huePubSub.publish('hue.global.error', {message: '${ _("Check config failed: ")}'});
       });
     }
 
@@ -407,7 +407,7 @@ ${ layout.menubar(section='quick_start') }
       var calls = jQuery.map($(button).data("sample-data"), function(app) {
         return $.post($(button).data("sample-url"), {data: app}, function(data) {
           if (data.status != 0) {
-            $(document).trigger('error', data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
         });
       });
@@ -493,7 +493,7 @@ ${ layout.menubar(section='quick_start') }
         if (data.status == 0) {
           $(document).trigger('info', '${ _("Configuration updated") }');
         } else {
-          $(document).trigger('error', data.data);
+          huePubSub.publish('hue.global.error', {message: data.data});
         }
       });
     });

+ 1 - 1
apps/beeswax/src/beeswax/static/beeswax/js/autocomplete.utils.js

@@ -225,7 +225,7 @@ function hac_errorHandler(data) {
       $(document).trigger('info', data.error);
     }
     else {
-      $(document).trigger('error', data.error);
+      huePubSub.publish('hue.global.error', {message: data.error});
     }
   }
 }

+ 1 - 1
apps/beeswax/src/beeswax/static/beeswax/js/beeswax.vm.js

@@ -643,7 +643,7 @@ function BeeswaxViewModel(server, apiHelper) {
           self.setErrors(data.message, data.errors);
           self.design.isRunning(false);
           $(document).trigger('error.query');
-          $(document).trigger("error", data.message);
+          huePubSub.publish('hue.global.error', {message: data.message});
           if (typeof window.console !== 'undefined') {
             console.error(data.message);
           }

+ 5 - 5
apps/beeswax/src/beeswax/static/beeswax/js/stats.utils.js

@@ -75,14 +75,14 @@ function showStats(options) {
         }
       }
       else {
-        $(document).trigger("error", options.errorLabel);
+        huePubSub.publish('hue.global.error', {message: options.errorLabel});
         $("#tableAnalysis").hide();
         $("#columnAnalysis").hide();
       }
     },
     error: function (e) {
       if (e.status == 500) {
-        $(document).trigger("error", options.errorLabel);
+        huePubSub.publish('hue.global.error', {message: options.errorLabel});
         $("#tableAnalysis").hide();
         $("#columnAnalysis").hide();
       }
@@ -123,14 +123,14 @@ function loadTerms(options) {
         }
       }
       else {
-        $(document).trigger("error", options.errorLabel);
+        huePubSub.publish('hue.global.error', {message: options.errorLabel});
         $("#tableAnalysis").hide();
         $("#columnAnalysis").hide();
       }
     },
     error: function (e) {
       if (e.status == 500) {
-        $(document).trigger("error", options.errorLabel);
+        huePubSub.publish('hue.global.error', {message: options.errorLabel});
         $("#tableAnalysis").hide();
         $("#columnAnalysis").hide();
       }
@@ -180,7 +180,7 @@ function refreshLoop(el){
         }
       }
       else {
-        $(document).trigger("error", data.message);
+        huePubSub.publish('hue.global.error', {message: data.message});
       }
     }
   });

+ 6 - 6
apps/beeswax/src/beeswax/templates/execute.mako

@@ -2379,14 +2379,14 @@ function createNewQuery() {
 
 // Server error handling.
 $(document).on('server.error', function (e, data) {
-  $(document).trigger('error', "${_('Server error occurred: ')}" + data.message ? data.message : data.error);
+  huePubSub.publish('hue.global.error', {message: "${_('Server error occurred: ')}" + data.message ? data.message : data.error});
 });
 $(document).on('server.unmanageable_error', function (e, responseText) {
   var message = responseText;
   if (! message) {
     message = '${ _("Hue server is probably down.") }';
   }
-  $(document).trigger('error', "${_('Unmanageable server error occurred: ')}" + message);
+  huePubSub.publish('hue.global.error', {message: "${_('Unmanageable server error occurred: ')}" + message});
 });
 
 // Other
@@ -2418,7 +2418,7 @@ $(document).on('error_save.design', function (e, message) {
         if (message.saveform.description) {
           _message += " - ${_('Description')}: " + message.saveform.description.join(' ');
         }
-        $(document).trigger('error', _message);
+        huePubSub.publish('hue.global.error', {message: _message});
       }
     }
   }
@@ -2426,7 +2426,7 @@ $(document).on('error_save.design', function (e, message) {
     if (message) {
       _message += ": " + message;
     }
-    $(document).trigger('error', _message);
+    huePubSub.publish('hue.global.error', {message: _message});
   }
 });
 $(document).on('error_save.results', function (e, message) {
@@ -2434,10 +2434,10 @@ $(document).on('error_save.results', function (e, message) {
   if (message) {
     _message += ": " + message;
   }
-  $(document).trigger('error', _message);
+  huePubSub.publish('hue.global.error', {message: _message});
 });
 $(document).on('error_cancel.query', function (e, message) {
-  $(document).trigger("error", "${ _('Problem: ') }" + message);
+  huePubSub.publish('hue.global.error', {message: "${ _('Problem: ') }" + message});
 });
 $(document).on('cancelled.query', function (e) {
   $(document).trigger("info", "${ _('Query canceled!') }")

+ 18 - 18
apps/filebrowser/src/filebrowser/templates/listdir_components.mako

@@ -775,7 +775,7 @@ else:
           });
         },
         error: function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
           resetPrimaryButtonsStatus();
         }
       });
@@ -1210,11 +1210,11 @@ else:
             self.contentSummary(ko.mapping.fromJS(data.summary));
             self.isLoadingSummary(false);
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
             $("#contentSummaryModal").modal("hide");
           }
         }).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
           $("#contentSummaryModal").modal("hide");
         });
       }
@@ -1228,7 +1228,7 @@ else:
         const encodedSearchFilter = encodeURIComponent(self.searchQuery());
         $.getJSON(self.targetPath() + (self.targetPath().indexOf('?') > 0 ? '&' : '?') + "pagesize=" + self.recordsPerPage() + "&pagenum=" + self.targetPageNum() + "&filter=" + encodedSearchFilter + "&sortby=" + self.sortBy() + "&descending=" + self.sortDescending() + "&format=json", function (data) {
           if (data.error){
-            $(document).trigger("error", data.error);
+            huePubSub.publish('hue.global.error', {message: data.error});
             self.isLoading(false);
             return false;
           }
@@ -1651,7 +1651,7 @@ else:
               self.retrieveData(true);
             },
             error: function (xhr, textStatus, errorThrown) {
-              $(document).trigger("error", xhr.responseText);
+              huePubSub.publish('hue.global.error', {message: xhr.responseText});
               resetPrimaryButtonsStatus();
             }
           });
@@ -1689,7 +1689,7 @@ else:
               self.retrieveData(true);
             },
             error: function (xhr, textStatus, errorThrown) {
-              $(document).trigger("error", xhr.responseText);
+              huePubSub.publish('hue.global.error', {message: xhr.responseText});
               resetPrimaryButtonsStatus();
             }
           });
@@ -1751,7 +1751,7 @@ else:
             }, 1000);
           },
           error: function(xhr, textStatus, errorThrown) {
-            $(document).trigger("error", xhr.responseText);
+            huePubSub.publish('hue.global.error', {message: xhr.responseText});
             resetPrimaryButtonsStatus();
           }
         });
@@ -1841,10 +1841,10 @@ else:
             $.jHueNotify.info("${ _('Task ') }" + data.history_uuid + "${_(' submitted.') }");
             huePubSub.publish('notebook.task.submitted', data);
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
         }).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
         });
       };
 
@@ -1877,10 +1877,10 @@ else:
             $.jHueNotify.info("${ _('Task ') }" + data.history_uuid + "${_(' submitted.') }");
             huePubSub.publish('notebook.task.submitted', data);
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
         }).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
         });
       };
 
@@ -1928,7 +1928,7 @@ else:
             self.retrieveData(true);
           },
           error: function (xhr, textStatus, errorThrown) {
-            $(document).trigger("error", xhr.responseText);
+            huePubSub.publish('hue.global.error', {message: xhr.responseText});
             resetPrimaryButtonsStatus();
           }
         });
@@ -1959,7 +1959,7 @@ else:
             self.retrieveData(true);
           },
           error: function (xhr, textStatus, errorThrown) {
-            $(document).trigger("error", xhr.responseText);
+            huePubSub.publish('hue.global.error', {message: xhr.responseText});
             resetPrimaryButtonsStatus();
           }
         });
@@ -1989,7 +1989,7 @@ else:
             self.retrieveData(true);
           },
           error: function(xhr, textStatus, errorThrown) {
-            $(document).trigger("error", xhr.responseText);
+            huePubSub.publish('hue.global.error', {message: xhr.responseText});
             resetPrimaryButtonsStatus();
           }
         });
@@ -2057,7 +2057,7 @@ else:
           onComplete: function (id, fileName, response) {
             self.pendingUploads(self.pendingUploads() - 1);
             if (response.status != 0) {
-              $(document).trigger('error', "${ _('Error: ') }" + response.data);
+              huePubSub.publish('hue.global.error', {message: "${ _('Error: ') }" + response.data});
             }
             else {
               $(document).trigger('info', response.path + "${ _(' uploaded successfully.') }");
@@ -2270,7 +2270,7 @@ else:
                 var response = JSON.parse(data.xhr.response);
                 if (response && response.status != null) {
                   if (response.status != 0) {
-                    $(document).trigger('error', response.data);
+                    huePubSub.publish('hue.global.error', {message: response.data});
                   } else {
                     $(document).trigger('info', response.path + ' ' + I18n('uploaded successfully'));
                     fileBrowserViewModel.filesToHighlight.push(response.path);
@@ -2592,10 +2592,10 @@ else:
         error:function (x, e) {
           if (x.status == 500 && x.responseText.indexOf("jobbrowser") == -1) {
             if (x.responseJSON && x.responseJSON.detail) {
-              $(document).trigger("error", x.responseJSON.detail);
+              huePubSub.publish('hue.global.error', {message: x.responseJSON.detail});
             }
             else {
-              $(document).trigger("error", "${_('There was a problem with your request.')}");
+              huePubSub.publish('hue.global.error', {message: "${_('There was a problem with your request.')}"});
             }
             $("#hueBreadcrumbText").blur();
           }

+ 3 - 3
apps/hbase/src/hbase/templates/app.mako

@@ -763,7 +763,7 @@ ${ commonheader(None, "hbase", user, request) | n,unicode }
                 data.reload();
                 element.modal('hide');
               } else {
-                $(document).trigger("error", $(response.response).find('div.alert strong').text());
+                huePubSub.publish('hue.global.error', {message: $(response.response).find('div.alert strong').text()});
               }
             },
             onSubmit: function () {
@@ -991,7 +991,7 @@ ${ commonheader(None, "hbase", user, request) | n,unicode }
         var functionName = arguments.length > 0 ? arguments[0] : '';
         var handler = $.post(url, $_POST).fail(function (response) {
           if (functionName !== 'getColumnDescriptors') {
-            $(document).trigger("error", JSON.parse(response.responseText).message);
+            huePubSub.publish('hue.global.error', {message: JSON.parse(response.responseText).message});
           }
         });
         var doneHandle = handler.done;
@@ -2106,7 +2106,7 @@ ${ commonheader(None, "hbase", user, request) | n,unicode }
           multiple: false,
           onComplete: function (id, fileName, response) {
             if (response.response != null)
-              $(document).trigger("error", $(response.response).find('.alert strong').text());
+              huePubSub.publish('hue.global.error', {message: $(response.response).find('.alert strong').text()});
             else
               app.views.tabledata.reload();
           }

+ 2 - 2
apps/jobbrowser/src/jobbrowser/templates/job.mako

@@ -622,7 +622,7 @@ $(document).ready(function () {
   $(document).ajaxError(function (event, jqxhr, settings, exception) {
     if (jqxhr.status == 500) {
       window.clearInterval(_runningInterval);
-      $(document).trigger("error", "${_('There was a problem communicating with the server. Refresh the page.')}");
+      huePubSub.publish('hue.global.error', {message: "${_('There was a problem communicating with the server. Refresh the page.')}"});
     }
   });
 
@@ -762,7 +762,7 @@ $(document).ready(function () {
           _this.button("reset");
           $("#killModal").modal("hide");
           if (response.status != 0) {
-            $(document).trigger("error", "${ _('There was a problem killing this job.') }");
+            huePubSub.publish('hue.global.error', {message: "${ _('There was a problem killing this job.') }"});
           }
           else {
             callJobDetails({ url: _this.data("url")});

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

@@ -3089,7 +3089,7 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
               callback(data);
             }
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
         });
       };
@@ -3265,7 +3265,7 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
             vm.job().fetchLogs();
 
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
         }).always(function () {
           self.loadingJob(false);
@@ -3345,7 +3345,7 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
               $('.jb-panel pre:visible').css('overflow-y', 'auto').height(Math.max(200, $(window).height() - $('.jb-panel pre:visible').offset().top - $('.page-content').scrollTop() - 75));
             }
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
         });
         return lastFetchLogsRequest;
@@ -3402,7 +3402,7 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
               callback(data);
             }
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
         });
         return lastFetchProfileRequest;
@@ -3421,7 +3421,7 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
             self.progress(data.app.progress);
             self.canWrite(data.app.canWrite);
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
         });
         return lastFetchStatusRequest;
@@ -3460,10 +3460,10 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
             if (data.status == 0) {
               $.jHueNotify.info("${ _('Successfully updated Coordinator Job Properties') }");
             } else {
-              $(document).trigger("error", data.message);
+              huePubSub.publish('hue.global.error', {message: data.message});
             }
           }).fail(function (xhr, textStatus, errorThrown) {
-            $(document).trigger("error", xhr.responseText);
+            huePubSub.publish('hue.global.error', {message: xhr.responseText});
           });
 
         } else if (action == 'sync_workflow') {
@@ -3474,7 +3474,7 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
           }, function (data) {
             $(document).trigger("showSubmitPopup", data);
           }).fail(function (xhr, textStatus, errorThrown) {
-            $(document).trigger("error", xhr.responseText);
+            huePubSub.publish('hue.global.error', {message: xhr.responseText});
           });
         } else {
           vm.jobs._control([self.id()], action, function(data) {
@@ -3791,7 +3791,7 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
               callback(data);
             };
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
         });
       };
@@ -3979,7 +3979,7 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
               self.selectedJobs([]);
             }
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
         }).always(function () {
         });
@@ -4320,7 +4320,7 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
               if (id) {
                 openJob(id);
               } else {
-                $(document).trigger("error", '${ _("No log available") }');
+                huePubSub.publish('hue.global.error', {message: '${ _("No log available") }'});
               }
             }
           );

+ 3 - 3
apps/jobbrowser/src/jobbrowser/templates/jobs.mako

@@ -150,7 +150,7 @@ ${ components.menubar(hiveserver2_impersonation_enabled) }
     $(document).ajaxError(function (event, jqxhr, settings, exception) {
       if (jqxhr.status == 500) {
         window.clearInterval(_runningInterval);
-        $(document).trigger("error", "${_('There was a problem communicating with the server: ')}" + JSON.parse(jqxhr.responseText).message);
+        huePubSub.publish('hue.global.error', {message: "${_('There was a problem communicating with the server: ')}" + JSON.parse(jqxhr.responseText).message});
       }
     });
 
@@ -219,7 +219,7 @@ ${ components.menubar(hiveserver2_impersonation_enabled) }
                 }
                 $("a[data-row-selector='true']").jHueRowSelector();
               } catch (error) {
-                $(document).trigger("error", error);
+                huePubSub.publish('hue.global.error', {message: error});
               }
             } else {
               updateJobRow(job, foundRow);
@@ -408,7 +408,7 @@ ${ components.menubar(hiveserver2_impersonation_enabled) }
           _this.button("reset");
           $("#killModal").modal("hide");
           if (response.status != 0) {
-            $(document).trigger("error", "${ _('There was a problem killing this job.') }");
+            huePubSub.publish('hue.global.error', {message: "${ _('There was a problem killing this job.') }"});
           }
           else {
             callJobDetails({ url: _this.data("url")});

+ 6 - 6
apps/metastore/src/metastore/templates/metastore.mako

@@ -983,7 +983,7 @@ ${ components.menubar(is_embeddable) }
           huePubSub.publish('notebook.task.submitted', resp);
           huePubSub.publish('metastore.clear.selection');
         } else if (resp && resp.message) {
-          $(document).trigger("error", resp.message);
+          huePubSub.publish('hue.global.error', {message: resp.message});
         }
         $("#dropTable").modal('hide');
         $("#dropSingleTable").modal('hide');
@@ -991,7 +991,7 @@ ${ components.menubar(is_embeddable) }
         $("#dropPartition").modal('hide');
       },
       error: function (xhr) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       }
     });
   }
@@ -1003,10 +1003,10 @@ ${ components.menubar(is_embeddable) }
       if (resp.uri_path) {
         huePubSub.publish('open.link', resp.uri_path);
       } else if (resp.message) {
-        $(document).trigger("error", resp.message);
+        huePubSub.publish('hue.global.error', {message: resp.message});
       }
     }).fail(function (xhr) {
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
     });
   }
 
@@ -1020,10 +1020,10 @@ ${ components.menubar(is_embeddable) }
       if (resp.history_uuid) {
         huePubSub.publish('open.editor.query', resp);
       } else if (resp.message) {
-        $(document).trigger("error", resp.message);
+        huePubSub.publish('hue.global.error', {message: resp.message});
       }
     }).fail(function (xhr) {
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
     });
   }
 

+ 4 - 4
apps/oozie/src/oozie/static/oozie/js/bundle-editor.ko.js

@@ -47,7 +47,7 @@ var Bundle = function (vm, bundle) {
 
       self.coordinators.push(ko.mapping.fromJS(_var));
     }).fail(function (xhr, textStatus, errorThrown) {
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
     });
   };
 }
@@ -125,10 +125,10 @@ var BundleEditorViewModel = function (bundle_json, coordinators_json, can_edit_j
           hueUtils.changeURL('/hue/oozie/editor/bundle/edit/?bundle=' + data.id);
         }
         else {
-          $(document).trigger("error", data.message);
+          huePubSub.publish('hue.global.error', {message: data.message});
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       }).always(function () {
         self.isSaving(false);
       });
@@ -145,7 +145,7 @@ var BundleEditorViewModel = function (bundle_json, coordinators_json, can_edit_j
       }, function (data) {
         $(document).trigger("showSubmitPopup", data);
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     }
   };

+ 6 - 6
apps/oozie/src/oozie/static/oozie/js/coordinator-editor.ko.js

@@ -123,7 +123,7 @@ var CoordinatorEditorViewModel = (function () {
           });
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     }
 
@@ -266,10 +266,10 @@ var CoordinatorEditorViewModel = (function () {
             }
           }
           else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
         }).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
         }).always(function () {
           self.isSaving(false);
         });
@@ -287,10 +287,10 @@ var CoordinatorEditorViewModel = (function () {
           console.log(data.xml);
         }
         else {
-          $(document).trigger("error", data.message);
+          huePubSub.publish('hue.global.error', {message: data.message});
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     };
 
@@ -304,7 +304,7 @@ var CoordinatorEditorViewModel = (function () {
         }, function (data) {
           $(document).trigger("showSubmitPopup", data);
         }).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
         });
       }
     };

+ 9 - 9
apps/oozie/src/oozie/static/oozie/js/workflow-editor.ko.js

@@ -155,7 +155,7 @@ var Node = function (node, vm) {
           self.properties.parameters.push(ko.mapping.fromJS({'value': ''}));
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     }
   };
@@ -388,10 +388,10 @@ var Workflow = function (vm, workflow) {
 
         vm.currentlyCreatingFork = false;
       } else {
-        $(document).trigger("error", data.message);
+        huePubSub.publish('hue.global.error', {message: data.message});
       }
     }).fail(function (xhr, textStatus, errorThrown) {
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
     });
     hueAnalytics.log('oozie/editor/workflow', 'add_node');
   };
@@ -1218,10 +1218,10 @@ var WorkflowEditorViewModel = function (layout_json, workflow_json, credentials_
           huePubSub.publish('assist.document.refresh');
           hueUtils.changeURL('/hue/oozie/editor/workflow/edit/?workflow=' + data.id);
         } else {
-          $(document).trigger("error", data.message);
+          huePubSub.publish('hue.global.error', {message: data.message});
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       }).always(function () {
         self.isSaving(false);
       });
@@ -1238,10 +1238,10 @@ var WorkflowEditorViewModel = function (layout_json, workflow_json, credentials_
         console.log(data.xml);
       }
       else {
-        $(document).trigger("error", data.message);
+        huePubSub.publish('hue.global.error', {message: data.message});
       }
     }).fail(function (xhr, textStatus, errorThrown) {
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
     });
   };
 
@@ -1253,7 +1253,7 @@ var WorkflowEditorViewModel = function (layout_json, workflow_json, credentials_
     }, function (data) {
       $(document).trigger("showSubmitPopup", data);
     }).fail(function (xhr, textStatus, errorThrown) {
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
     });
   };
 
@@ -1264,7 +1264,7 @@ var WorkflowEditorViewModel = function (layout_json, workflow_json, credentials_
     }, function (data) {
       $(document).trigger("showSubmitPopup", data);
     }).fail(function (xhr, textStatus, errorThrown) {
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
     });
   };
 

+ 2 - 2
apps/oozie/src/oozie/templates/dashboard/list_oozie_bundle.mako

@@ -398,7 +398,7 @@ ${ layout.menubar(section='bundles', dashboard=True) }
         { 'notification': $(this).attr("data-message") },
         function(response) {
           if (response['status'] != 0) {
-            $(document).trigger("error", "${ _('Problem: ') }" + response['data']);
+            huePubSub.publish('hue.global.error', {message: "${ _('Problem: ') }" + response['data']});
             $("#confirmation a.btn-danger").button("reset");
           } else {
             window.location.reload();
@@ -414,7 +414,7 @@ ${ layout.menubar(section='bundles', dashboard=True) }
         { 'notification': $(this).data("message") },
         function(response) {
           if (response['status'] != 0) {
-            $(document).trigger("error", "${ _('Error: ') }" + response['data']);
+            huePubSub.publish('hue.global.error', {message: "${ _('Error: ') }" + response['data']});
             $("#confirmation a.btn-danger").button("reset");
           } else {
             window.location.reload();

+ 4 - 4
apps/oozie/src/oozie/templates/dashboard/list_oozie_bundles.mako

@@ -396,7 +396,7 @@ ${layout.menubar(section='bundles', dashboard=True)}
           { "notification":$(this).attr("data-message") },
           function (response) {
             if (response["status"] != 0) {
-              $(document).trigger("error", "${ _('Problem: ') }" + response["data"]);
+              huePubSub.publish('hue.global.error', {message: "${ _('Problem: ') }" + response["data"]});
               $("#confirmation a.btn-danger").button("reset");
             } else {
               window.location.reload();
@@ -464,7 +464,7 @@ ${layout.menubar(section='bundles', dashboard=True)}
                   ]);
                 }
                 catch (error) {
-                  $(document).trigger("error", error);
+                  huePubSub.publish('hue.global.error', {message: error});
                 }
               }
 
@@ -486,7 +486,7 @@ ${layout.menubar(section='bundles', dashboard=True)}
         ko.bindingHandlers.multiCheck.init(runningTable[0], function() { return '#' + runningTable[0].id})
         window.setTimeout(refreshRunning, 20000);
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseJSON['detail']);
+        huePubSub.publish('hue.global.error', {message: xhr.responseJSON['detail']});
       });
     }
 
@@ -531,7 +531,7 @@ ${layout.menubar(section='bundles', dashboard=True)}
             ], false);
           }
           catch (error) {
-            $(document).trigger("error", error);
+            huePubSub.publish('hue.global.error', {message: error});
           }
         });
         completedTable.fnDraw();

+ 2 - 2
apps/oozie/src/oozie/templates/dashboard/list_oozie_coordinator.mako

@@ -666,7 +666,7 @@ ${ layout.menubar(section='coordinators', dashboard=True) }
       $.post($(this).attr("data-url"), params,
           function (response) {
             if (response['status'] != 0) {
-              $(document).trigger("error", "${ _('Problem: ') }" + response['data']);
+              huePubSub.publish('hue.global.error', {message: "${ _('Problem: ') }" + response['data']});
               $("#confirmation a.btn-confirm").button("reset");
               $("#confirmation").modal("hide");
             } else {
@@ -683,7 +683,7 @@ ${ layout.menubar(section='coordinators', dashboard=True) }
           { 'notification': $(this).data("message") },
           function (response) {
             if (response['status'] != 0) {
-              $(document).trigger("error", "${ _('Error: ') }" + response['data']);
+              huePubSub.publish('hue.global.error', {message: "${ _('Error: ') }" + response['data']});
               $("#confirmation a.btn-confirm").button("reset");
             } else {
               window.location.reload();

+ 4 - 4
apps/oozie/src/oozie/templates/dashboard/list_oozie_coordinators.mako

@@ -435,7 +435,7 @@ ${layout.menubar(section='coordinators', dashboard=True)}
           { "notification":$(this).attr("data-message") },
           function (response) {
             if (response["status"] != 0) {
-              $(document).trigger("error", "${ _('Problem: ') }" + response["data"]);
+              huePubSub.publish('hue.global.error', {message: "${ _('Problem: ') }" + response["data"]});
               $("#confirmation a.btn-danger").button("reset");
             } else {
               window.location.reload();
@@ -520,7 +520,7 @@ ${layout.menubar(section='coordinators', dashboard=True)}
                   ]);
                 }
                 catch (error) {
-                  $(document).trigger("error", error);
+                  huePubSub.publish('hue.global.error', {message: error});
                 }
               }
             }
@@ -539,7 +539,7 @@ ${layout.menubar(section='coordinators', dashboard=True)}
         numRunning = data.jobs.length;
         window.setTimeout(refreshRunning, 20000);
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseJSON['detail']);
+        huePubSub.publish('hue.global.error', {message: xhr.responseJSON['detail']});
       });
     }
 
@@ -595,7 +595,7 @@ ${layout.menubar(section='coordinators', dashboard=True)}
             ], false);
           }
           catch (error) {
-            $(document).trigger("error", error);
+            huePubSub.publish('hue.global.error', {message: error});
           }
         });
         completedTable.fnDraw();

+ 3 - 3
apps/oozie/src/oozie/templates/dashboard/list_oozie_workflow.mako

@@ -592,7 +592,7 @@ ${ dashboard.import_layout() }
         { 'notification': $(this).data("message") },
         function(response) {
           if (response['status'] != 0) {
-            $(document).trigger("error", "${ _('Error: ') }" + response['data']);
+            huePubSub.publish('hue.global.error', {message: "${ _('Error: ') }" + response['data']});
             $("#confirmation a.btn-danger").button("reset");
           } else {
             window.location.reload();
@@ -608,7 +608,7 @@ ${ dashboard.import_layout() }
         { 'notification': $(this).data("message") },
         function(response) {
           if (response['status'] != 0) {
-            $(document).trigger("error", "${ _('Error: ') }" + response['data']);
+            huePubSub.publish('hue.global.error', {message: "${ _('Error: ') }" + response['data']});
             $("#confirmation a.btn-danger").button("reset");
           } else {
             window.location.reload();
@@ -624,7 +624,7 @@ ${ dashboard.import_layout() }
         { 'notification': $(this).data("message") },
         function(response) {
           if (response['status'] != 0) {
-            $(document).trigger("error", "${ _('Error: ') }" + response['data']);
+            huePubSub.publish('hue.global.error', {message: "${ _('Error: ') }" + response['data']});
             $("#confirmation a.btn-danger").button("reset");
           } else {
             window.location.reload();

+ 4 - 4
apps/oozie/src/oozie/templates/dashboard/list_oozie_workflows.mako

@@ -447,7 +447,7 @@ ${ layout.menubar(section='workflows', dashboard=True) }
           { "notification":$(this).attr("data-message") },
           function (response) {
             if (response["status"] != 0) {
-              $(document).trigger("error", "${ _('Problem: ') }" + response["data"]);
+              huePubSub.publish('hue.global.error', {message: "${ _('Problem: ') }" + response["data"]});
               $("#confirmation a.btn-danger").button("reset");
             } else {
               window.location.reload();
@@ -514,7 +514,7 @@ ${ layout.menubar(section='workflows', dashboard=True) }
                 ]);
               }
               catch (error) {
-                $(document).trigger("error", error);
+                huePubSub.publish('hue.global.error', {message: error});
               }
             }
           });
@@ -531,7 +531,7 @@ ${ layout.menubar(section='workflows', dashboard=True) }
         runningTimeout = window.setTimeout(refreshRunning, 5000);
         ko.bindingHandlers.multiCheck.init(runningTable[0], function() { return '#' + runningTable[0].id})
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseJSON['detail']);
+        huePubSub.publish('hue.global.error', {message: xhr.responseJSON['detail']});
       });
     }
 
@@ -597,7 +597,7 @@ ${ layout.menubar(section='workflows', dashboard=True) }
             ], false);
           }
           catch (error) {
-            $(document).trigger("error", error);
+            huePubSub.publish('hue.global.error', {message: error});
           }
         });
         completedTable.fnDraw();

+ 12 - 11
apps/oozie/src/oozie/templates/editor/edit_workflow.mako

@@ -620,7 +620,7 @@ function import_jobsub_load_success(data) {
   if (data.status == 0) {
     import_jobsub_action.initialize(data.data);
   } else {
-    $(document).trigger("error", interpret_server_error(data, "${ _('Received invalid response from server') } "));
+    huePubSub.publish('hue.global.error', {message: interpret_server_error(data, "${ _('Received invalid response from server') } ")});
   }
 }
 
@@ -628,13 +628,13 @@ function import_workflow_load_success(data) {
   if (data.status == 0) {
     import_workflow_action.initialize(data.data);
   } else {
-    $(document).trigger("error", interpret_server_error(data, "${ _('Received invalid response from server') } "));
+    huePubSub.publish('hue.global.error', {message: interpret_server_error(data, "${ _('Received invalid response from server') } ")});
   }
 }
 
 function workflow_save_success(data) {
   if (data.status != 0) {
-    $(document).trigger("error", interpret_server_error(data, "${ _('Could not save workflow') }"));
+    huePubSub.publish('hue.global.error', {message: interpret_server_error(data, "${ _('Could not save workflow') }")});
   } else {
     $(document).trigger("info", "${ _('Workflow saved') }");
     workflow.reload(data.data);
@@ -646,7 +646,7 @@ function workflow_save_success(data) {
 
 function workflow_save_error(jqXHR) {
   if (jqXHR.status !== 400) {
-    $(document).trigger("error", interpret_server_error(jqXHR.responseJSON, "${ _('Could not save workflow') }"));
+    huePubSub.publish('hue.global.error', {message: interpret_server_error(jqXHR.responseJSON, "${ _('Could not save workflow') }")});
   } else {
     ko.mapping.fromJS(jqXHR.responseJSON.details.errors, workflow.errors);
     workflow.loading(false);
@@ -655,7 +655,7 @@ function workflow_save_error(jqXHR) {
 }
 
 function workflow_read_only_handler() {
-  $(document).trigger("error", "${ _('Workflow is in read only mode.') }");
+  huePubSub.publish('hue.global.error', {message: "${ _('Workflow is in read only mode.') }"});
   workflow.loading(false);
 }
 
@@ -670,14 +670,14 @@ function workflow_load_success(data) {
     ko.applyBindings(kill_view_model, $('#editKill')[0]);
 
   } else {
-    $(document).trigger("error", interpret_server_error(data, "${ _('Error loading workflow') }"));
+    huePubSub.publish('hue.global.error', {message: interpret_server_error(data, "${ _('Error loading workflow') }")});
   }
   workflow.loading(false);
 }
 
 function workflow_load_error(jqXHR) {
   var data = jqXHR.responseJSON;
-  $(document).trigger("error", interpret_server_error(jqXHR.responseJSON, "${ _('Error loading workflow') }"));
+  huePubSub.publish('hue.global.error', {message:  interpret_server_error(jqXHR.responseJSON, "${ _('Error loading workflow') }")});
   workflow.loading(false);
 }
 
@@ -904,7 +904,7 @@ $('#importJobsub').on('click', '.action-row', function(e) {
           routie('editWorkflow');
           $(document).trigger("info", "${ _('Action imported at the top of the workflow.') } ");
         } else {
-          $(document).trigger("error", interpret_server_error(data, "${ _('Received invalid response from server') }"));
+          huePubSub.publish('hue.global.error', {message: interpret_server_error(data, "${ _('Received invalid response from server') }")});
         }
       }
     });
@@ -926,7 +926,7 @@ $('#importOozie').on('click', '.action-row', function(e) {
           import_view_model.oozie().initialize({nodes: data.data.actions});
           routie('importAction/oozie');
         } else {
-          $(document).trigger("error", interpret_server_error(data, "${ _('Received invalid response from server') }"));
+          huePubSub.publish('hue.global.error', {message: interpret_server_error(data, "${ _('Received invalid response from server') }")});
         }
       }
     });
@@ -1035,7 +1035,7 @@ $(document).ready(function () {
     $.post(_url, function (data) {
       window.location = data.url;
     }).fail(function(){
-      $(document).trigger("error", "${ _('There was a problem copying this workflow.') }");
+      huePubSub.publish('hue.global.error', {message: "${ _('There was a problem copying this workflow.') }"});
     });
   });
 
@@ -1068,7 +1068,8 @@ $(document).ready(function () {
         $('#submit-wf-modal').modal('show');
       }
     ).fail(function(){
-      $(document).trigger("error", "${ _('There was a problem submitting this workflow.') }");
+
+      huePubSub.publish('hue.global.error', {message: "${ _('There was a problem submitting this workflow.') }"});
     });
   }
 

+ 3 - 3
apps/oozie/src/oozie/templates/editor2/list_editor_bundles.mako

@@ -198,7 +198,7 @@ ${ utils.submit_popup_event() }
       }, function (data) {
         $(document).trigger("showSubmitPopup", data);
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     };
 
@@ -209,7 +209,7 @@ ${ utils.submit_popup_event() }
         window.location.reload();
         $('#deleteWf').modal('hide');
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.status == 500 ? JSON.parse(xhr.responseText).message : xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.status == 500 ? JSON.parse(xhr.responseText).message : xhr.responseText});
       });
     };
 
@@ -219,7 +219,7 @@ ${ utils.submit_popup_event() }
       }, function(data) {
         window.location.reload();
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     };
 

+ 3 - 3
apps/oozie/src/oozie/templates/editor2/list_editor_coordinators.mako

@@ -197,7 +197,7 @@ ${ utils.submit_popup_event() }
       }, function (data) {
         $(document).trigger("showSubmitPopup", data);
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     };
 
@@ -207,7 +207,7 @@ ${ utils.submit_popup_event() }
       }, function() {
         window.location.reload();
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.status == 500 ? JSON.parse(xhr.responseText).message : xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.status == 500 ? JSON.parse(xhr.responseText).message : xhr.responseText});
       });
     };
 
@@ -217,7 +217,7 @@ ${ utils.submit_popup_event() }
       }, function(data) {
         window.location.reload();
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     };
 

+ 3 - 3
apps/oozie/src/oozie/templates/editor2/list_editor_workflows.mako

@@ -196,7 +196,7 @@ ${ utils.submit_popup_event() }
       }, function (data) {
         $(document).trigger("showSubmitPopup", data);
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     };
 
@@ -207,7 +207,7 @@ ${ utils.submit_popup_event() }
         window.location.reload();
         $('#deleteWf').modal('hide');
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.status == 500 ? JSON.parse(xhr.responseText).message : xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.status == 500 ? JSON.parse(xhr.responseText).message : xhr.responseText});
       });
     };
 
@@ -217,7 +217,7 @@ ${ utils.submit_popup_event() }
       }, function(data) {
         window.location.reload();
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     };
 

+ 2 - 2
apps/pig/src/pig/static/pig/js/pig.ko.js

@@ -535,7 +535,7 @@ var PigViewModel = function (props) {
           self.updateScripts();
           $(document).trigger("saved");
         }, "json").fail( function(xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
         });
   }
 
@@ -567,7 +567,7 @@ var PigViewModel = function (props) {
           $(document).trigger("startLogsRefresh");
           self.updateScripts();
         }, "json").fail( function(xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
         });
   }
 

+ 4 - 4
apps/rdbms/src/rdbms/static/rdbms/js/autocomplete.utils.js

@@ -96,7 +96,7 @@ function rdbms_getTableColumns(serverName, databaseName, tableName, textScanned,
           }
           if (data.error) {
             if (typeof RDBMS_AUTOCOMPLETE_FAILS_SILENTLY_ON == "undefined" || data.code === null || RDBMS_AUTOCOMPLETE_FAILS_SILENTLY_ON.indexOf(data.code) == -1){
-              $(document).trigger('error', data.error);
+              huePubSub.publish('hue.global.error', {message: data.error});
             }
           }
           else {
@@ -119,7 +119,7 @@ function rdbms_getTableColumns(serverName, databaseName, tableName, textScanned,
         }
         if (data.error) {
           if (typeof RDBMS_AUTOCOMPLETE_FAILS_SILENTLY_ON == "undefined" || data.code === null || RDBMS_AUTOCOMPLETE_FAILS_SILENTLY_ON.indexOf(data.code) == -1){
-            $(document).trigger('error', data.error);
+            huePubSub.publish('hue.global.error', {message: data.error});
           }
         }
         else {
@@ -146,7 +146,7 @@ function rdbms_getTables(serverName, databaseName, callback) {
           }
           if (data.error) {
             if (typeof RDBMS_AUTOCOMPLETE_FAILS_SILENTLY_ON == "undefined" || data.code === null || RDBMS_AUTOCOMPLETE_FAILS_SILENTLY_ON.indexOf(data.code) == -1){
-              $(document).trigger('error', data.error);
+              huePubSub.publish('hue.global.error', {message: data.error});
             }
           }
           else {
@@ -167,7 +167,7 @@ function rdbms_getTables(serverName, databaseName, callback) {
         }
         if (data.error) {
           if (typeof RDBMS_AUTOCOMPLETE_FAILS_SILENTLY_ON == "undefined" || data.code === null || RDBMS_AUTOCOMPLETE_FAILS_SILENTLY_ON.indexOf(data.code) == -1){
-            $(document).trigger('error', data.error);
+            huePubSub.publish('hue.global.error', {message: data.error});
           }
         }
         else {

+ 2 - 2
apps/rdbms/src/rdbms/templates/execute.mako

@@ -907,10 +907,10 @@ ${ commonshare() | n,unicode }
 
   // Server error handling.
   $(document).on('server.error', function(e, data) {
-    $(document).trigger('error', "${_('Server error occurred: ')}" + data.error);
+    huePubSub.publish('hue.global.error', {message: "${_('Server error occurred: ')}" + data.error});
   });
   $(document).on('server.unmanageable_error', function(e, responseText) {
-    $(document).trigger('error', "${_('Unmanageable server error occurred: ')}" + responseText);
+    huePubSub.publish('hue.global.error', {message: "${_('Unmanageable server error occurred: ')}" + responseText});
   });
 
 </script>

+ 6 - 6
apps/security/src/security/static/security/js/hdfs.ko.js

@@ -421,7 +421,7 @@ var HdfsViewModel = (function () {
               }
           }
        }).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
        });
     };
 
@@ -455,7 +455,7 @@ var HdfsViewModel = (function () {
         }
       }).fail(function (xhr, textStatus, errorThrown) {
         if (xhr.responseText.search('FileNotFoundException') == -1) { // TODO only fetch on existing path
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
           self.isLoadingAcls(false);
         }
       });
@@ -485,7 +485,7 @@ var HdfsViewModel = (function () {
             $(document).trigger("updatedAcls");
           }
       ).fail(function (xhr, textStatus, errorThrown) {
-         $(document).trigger("error", JSON.parse(xhr.responseText).message);
+         huePubSub.publish('hue.global.error', {message: JSON.parse(xhr.responseText).message});
       });
     }
 
@@ -524,7 +524,7 @@ var HdfsViewModel = (function () {
             $(document).trigger("deletedBulkAcls");
           }
       ).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", JSON.parse(xhr.responseText).message);
+        huePubSub.publish('hue.global.error', {message: JSON.parse(xhr.responseText).message});
       });
     }
 
@@ -544,7 +544,7 @@ var HdfsViewModel = (function () {
             $(document).trigger("addedBulkAcls");
           }
       ).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", JSON.parse(xhr.responseText).message);
+        huePubSub.publish('hue.global.error', {message: JSON.parse(xhr.responseText).message});
       });
     }
 
@@ -564,7 +564,7 @@ var HdfsViewModel = (function () {
             $(document).trigger("syncdBulkAcls");
           }
       ).fail(function (xhr, textStatus, errorThrown) {
-         $(document).trigger("error", JSON.parse(xhr.responseText).message);
+         huePubSub.publish('hue.global.error', {message: JSON.parse(xhr.responseText).message});
       });
     }
   }

+ 23 - 23
apps/security/src/security/static/security/js/hive.ko.js

@@ -272,10 +272,10 @@ var HiveViewModel = (function () {
             self.originalGroups.push(group);
           });
         } else {
-          $(document).trigger("error", data.message);
+          huePubSub.publish('hue.global.error', {message: data.message});
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     }
 
@@ -296,10 +296,10 @@ var HiveViewModel = (function () {
             vm.list_sentry_privileges_by_authorizable();
             $(document).trigger("createdRole");
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
         }).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
         }).always(function () {
           self.isLoading(false);
         });
@@ -319,10 +319,10 @@ var HiveViewModel = (function () {
             vm.list_sentry_privileges_by_authorizable();
             $(document).trigger("createdRole");
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
         }).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
         }).always(function () {
           self.isLoading(false);
         });
@@ -340,10 +340,10 @@ var HiveViewModel = (function () {
           vm.list_sentry_privileges_by_authorizable();
           $(document).trigger("removedRole");
         } else {
-          $(document).trigger("error", data.message);
+          huePubSub.publish('hue.global.error', {message: data.message});
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       }).always(function () {
         self.isLoading(false);
       });
@@ -358,10 +358,10 @@ var HiveViewModel = (function () {
           vm.list_sentry_privileges_by_authorizable();
           $(document).trigger("createdRole");
         } else {
-          $(document).trigger("error", data.message);
+          huePubSub.publish('hue.global.error', {message: data.message});
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     }
   }
@@ -804,7 +804,7 @@ var HiveViewModel = (function () {
           cache: false
         };
         $.ajax(request).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
         });
       }
       else {
@@ -1016,7 +1016,7 @@ var HiveViewModel = (function () {
         },
         success: function (data) {
           if (typeof data.status !== "undefined" && data.status == -1) {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
           else {
             self.roles.removeAll();
@@ -1032,7 +1032,7 @@ var HiveViewModel = (function () {
           }
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       }).always(function () {
         self.isLoadingRoles(false);
       });
@@ -1064,7 +1064,7 @@ var HiveViewModel = (function () {
         },
         success: function (data) {
           if (typeof data.status !== "undefined" && data.status == -1) {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
           else {
             role.privileges.removeAll();
@@ -1080,7 +1080,7 @@ var HiveViewModel = (function () {
           }
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     };
 
@@ -1136,11 +1136,11 @@ var HiveViewModel = (function () {
             self.clearTempRoles();
             $(document).trigger("createdRole");
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     }
 
@@ -1208,11 +1208,11 @@ var HiveViewModel = (function () {
             }
             self.assist.loadData(self.assist.growingTree());
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       }).always(function () {
         self.isLoadingPrivileges(false);
       });
@@ -1250,10 +1250,10 @@ var HiveViewModel = (function () {
             $(document).trigger("deletedBulkPrivileges");
           }
         } else {
-          $(document).trigger("error", data.message);
+          huePubSub.publish('hue.global.error', {message: data.message});
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     }
 
@@ -1270,10 +1270,10 @@ var HiveViewModel = (function () {
           self.list_sentry_privileges_by_authorizable(); // Refresh
           $(document).trigger("addedBulkPrivileges");
         } else {
-          $(document).trigger("error", data.message);
+          huePubSub.publish('hue.global.error', {message: data.message});
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     }
 

+ 23 - 23
apps/security/src/security/static/security/js/sentry.ko.js

@@ -291,10 +291,10 @@ var SentryViewModel = (function () {
             self.originalGroups.push(group);
           });
         } else {
-          $(document).trigger("error", data.message);
+          huePubSub.publish('hue.global.error', {message: data.message});
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     }
 
@@ -315,10 +315,10 @@ var SentryViewModel = (function () {
             vm.list_sentry_privileges_by_authorizable();
             $(document).trigger("createdRole");
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
         }).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
         });
       }
     }
@@ -336,10 +336,10 @@ var SentryViewModel = (function () {
             vm.list_sentry_privileges_by_authorizable();
             $(document).trigger("createdRole");
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
         }).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
         });
       }
     }
@@ -355,10 +355,10 @@ var SentryViewModel = (function () {
           vm.list_sentry_privileges_by_authorizable();
           $(document).trigger("removedRole");
         } else {
-          $(document).trigger("error", data.message);
+          huePubSub.publish('hue.global.error', {message: data.message});
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     }
 
@@ -372,10 +372,10 @@ var SentryViewModel = (function () {
           vm.list_sentry_privileges_by_authorizable();
           $(document).trigger("createdRole");
         } else {
-          $(document).trigger("error", data.message);
+          huePubSub.publish('hue.global.error', {message: data.message});
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     }
   }
@@ -843,7 +843,7 @@ var SentryViewModel = (function () {
           cache: false
         };
         $.ajax(request).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
         });
       }
       else {
@@ -1064,7 +1064,7 @@ var SentryViewModel = (function () {
         },
         success: function (data) {
           if (typeof data.status !== "undefined" && data.status == -1) {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
           else {
             self.roles.removeAll();
@@ -1080,7 +1080,7 @@ var SentryViewModel = (function () {
           }
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       }).always(function() {
         self.isLoadingRoles(false);
       });
@@ -1114,7 +1114,7 @@ var SentryViewModel = (function () {
         },
         success: function (data) {
           if (typeof data.status !== "undefined" && data.status == -1) {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
           else {
             role.privileges.removeAll();
@@ -1130,7 +1130,7 @@ var SentryViewModel = (function () {
           }
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     };
 
@@ -1204,11 +1204,11 @@ var SentryViewModel = (function () {
             self.clearTempRoles();
             $(document).trigger("createdRole");
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     }
 
@@ -1278,11 +1278,11 @@ var SentryViewModel = (function () {
             }
             self.assist.loadData(self.assist.growingTree());
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       }).always(function() {
         self.isLoadingPrivileges(false);
       });
@@ -1321,10 +1321,10 @@ var SentryViewModel = (function () {
             $(document).trigger("deletedBulkPrivileges");
           }
         } else {
-          $(document).trigger("error", data.message);
+          huePubSub.publish('hue.global.error', {message: data.message});
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     }
 
@@ -1342,10 +1342,10 @@ var SentryViewModel = (function () {
           self.list_sentry_privileges_by_authorizable(); // Refresh
           $(document).trigger("addedBulkPrivileges");
         } else {
-          $(document).trigger("error", data.message);
+          huePubSub.publish('hue.global.error', {message: data.message});
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     }
 

+ 4 - 4
apps/sqoop/src/sqoop/templates/app.mako

@@ -766,7 +766,7 @@ function handle_form_errors(e, node, options, data) {
   switch(data.status) {
     case 1:
     $.each(errors, function(index, err) {
-      $(document).trigger("error", err);
+      huePubSub.publish('hue.global.error', {message: err});
     });
     break;
     case 100:
@@ -831,7 +831,7 @@ $(document).on('started.job', function(e, job, options, submission_dict) {
 });
 
 $(document).on('start_fail.job', function(e, job, options, error) {
-  $(document).trigger("error", "${ _('Error: ') }" + (typeof error.exception != "undefined" ? error.exception : error));
+  huePubSub.publish('hue.global.error', {message: "${ _('Error: ') }" + (typeof error.exception != "undefined" ? error.exception : error)});
 });
 
 $(document).on('stopped.job', function(e, job, options, submission_dict) {
@@ -839,11 +839,11 @@ $(document).on('stopped.job', function(e, job, options, submission_dict) {
 });
 
 $(document).on('stop_fail.job', function(e, job, options, submission_dict) {
-  $(document).trigger("error", "${ _('Could not stop job.') }");
+  huePubSub.publish('hue.global.error', {message: "${ _('Could not stop job.') }"});
 });
 
 $(document).one('load_fail.job', function() {
-  $(document).trigger("error", "${ _('Could not load node.') }");
+  huePubSub.publish('hue.global.error', {message: "${ _('Could not load node.') }"});
 });
 
 $(document).on('save_fail.job', handle_form_errors);

+ 2 - 1
desktop/core/src/desktop/js/api/apiUtils.js

@@ -17,6 +17,7 @@
 import $ from 'jquery';
 
 import logError from 'utils/logError';
+import huePubSub from 'utils/huePubSub';
 
 /**
  * @param {Object} [response]
@@ -76,7 +77,7 @@ export const assistErrorCallback = options => {
     if (!options || !options.silenceErrors) {
       logError(errorResponse);
       if (errorMessage && errorMessage.indexOf('AuthorizationException') === -1) {
-        $(document).trigger('error', errorMessage);
+        huePubSub.publish('hue.global.error', { message: errorMessage });
       }
     }
 

+ 4 - 4
desktop/core/src/desktop/js/apps/editor/notebook.js

@@ -273,7 +273,7 @@ export default class Notebook {
           }
         ).fail(xhr => {
           if (xhr.status !== 502) {
-            $(document).trigger('error', xhr.responseText);
+            huePubSub.publish('hue.global.error', { message: xhr.responseText });
           }
         });
       };
@@ -368,12 +368,12 @@ export default class Notebook {
           callback();
         }
       } else {
-        $(document).trigger('error', data.message);
+        huePubSub.publish('hue.global.error', { message: data.message });
       }
     } catch (err) {
       console.error(err);
       if (err && err.status !== 502) {
-        $(document).trigger('error', err.responseText);
+        huePubSub.publish('hue.global.error', { message: err.responseText });
       }
     }
   }
@@ -405,7 +405,7 @@ export default class Notebook {
       }
     ).fail(xhr => {
       if (xhr.status !== 502) {
-        $(document).trigger('error', xhr.responseText);
+        huePubSub.publish('hue.global.error', { message: xhr.responseText });
       }
     });
   }

+ 7 - 7
desktop/core/src/desktop/js/apps/editor/snippet.js

@@ -871,7 +871,7 @@ export default class Snippet {
           // eslint-disable-next-line no-restricted-syntax
           console.log(data.statement_similarity);
         } else {
-          $(document).trigger('error', data.message);
+          huePubSub.publish('hue.global.error', { message: data.message });
         }
       })
       .catch(() => {});
@@ -911,7 +911,7 @@ export default class Snippet {
     } else if (data.status === 1 || data.status === -1) {
       this.status(STATUS.failed);
     } else {
-      $(document).trigger('error', data.message);
+      huePubSub.publish('hue.global.error', { message: data.message });
       this.status(STATUS.failed);
     }
   }
@@ -1031,12 +1031,12 @@ export default class Snippet {
           this.showSqlAnalyzer(true);
           this.hasSuggestion(true);
         } else {
-          $(document).trigger('error', data.message);
+          huePubSub.publish('hue.global.error', { message: data.message });
         }
       })
       .catch(xhr => {
         if (xhr.status !== 502) {
-          $(document).trigger('error', xhr.responseText);
+          huePubSub.publish('hue.global.error', { message: xhr.responseText });
         }
       })
       .finally(() => {
@@ -1145,7 +1145,7 @@ export default class Snippet {
         );
         this.watchUploadStatus(data.upload_history[this.dialect()].status.workloadId);
       } else {
-        $(document).trigger('error', data.message);
+        huePubSub.publish('hue.global.error', { message: data.message });
       }
     });
   }
@@ -1182,7 +1182,7 @@ export default class Snippet {
             this.watchUploadStatus(data.upload_table_ddl.status.workloadId, options.showProgress);
           }
         } else if (options.showProgress) {
-          $(document).trigger('error', data.message);
+          huePubSub.publish('hue.global.error', { message: data.message });
         }
       }
     ).always(() => {
@@ -1217,7 +1217,7 @@ export default class Snippet {
           );
         }
       } else if (showProgress) {
-        $(document).trigger('error', data.message);
+        huePubSub.publish('hue.global.error', { message: data.message });
       }
     });
   }

+ 1 - 1
desktop/core/src/desktop/js/apps/notebook/NotebookViewModel.js

@@ -617,7 +617,7 @@ export default class NotebookViewModel {
             }
             deferredOpen.resolve();
           } else {
-            $(document).trigger('error', data.message);
+            huePubSub.publish('hue.global.error', { message: data.message });
             deferredOpen.reject();
             self.newNotebook();
           }

+ 8 - 8
desktop/core/src/desktop/js/apps/notebook/notebook.js

@@ -363,7 +363,7 @@ class Notebook {
         $.each(self.getSnippets(session.type()), (index, snippet) => {
           snippet.status('failed');
         });
-        $(document).trigger('error', message);
+        huePubSub.publish('hue.global.error', { message: message });
         if (failCallback) {
           failCallback();
         }
@@ -555,12 +555,12 @@ class Notebook {
               callback();
             }
           } else {
-            $(document).trigger('error', data.message);
+            huePubSub.publish('hue.global.error', { message: data.message });
           }
         }
       ).fail((xhr, textStatus, errorThrown) => {
         if (xhr.status !== 502) {
-          $(document).trigger('error', xhr.responseText);
+          huePubSub.publish('hue.global.error', { message: xhr.responseText });
         }
       });
     };
@@ -613,7 +613,7 @@ class Notebook {
         },
         data => {
           if (!silent && data && data.status != 0 && data.status != -2 && data.message) {
-            $(document).trigger('error', data.message);
+            huePubSub.publish('hue.global.error', { message: data.message });
           }
 
           if (callback) {
@@ -622,7 +622,7 @@ class Notebook {
         }
       ).fail(xhr => {
         if (!silent && xhr.status !== 502) {
-          $(document).trigger('error', xhr.responseText);
+          huePubSub.publish('hue.global.error', { message: xhr.responseText });
         }
       });
     };
@@ -757,7 +757,7 @@ class Notebook {
         }
       ).fail(xhr => {
         if (xhr.status !== 502) {
-          $(document).trigger('error', xhr.responseText);
+          huePubSub.publish('hue.global.error', { message: xhr.responseText });
         }
       });
       $(document).trigger('hideHistoryModal');
@@ -829,7 +829,7 @@ class Notebook {
             }
           ).fail(xhr => {
             if (xhr.status !== 502) {
-              $(document).trigger('error', xhr.responseText);
+              huePubSub.publish('hue.global.error', { message: xhr.responseText });
             }
           });
         };
@@ -865,7 +865,7 @@ class Notebook {
         }
       ).fail((xhr, textStatus, errorThrown) => {
         if (xhr.status !== 502) {
-          $(document).trigger('error', xhr.responseText);
+          huePubSub.publish('hue.global.error', { message: xhr.responseText });
         }
       });
     };

+ 17 - 14
desktop/core/src/desktop/js/apps/notebook/snippet.js

@@ -1654,7 +1654,7 @@ class Snippet {
           });
         }
       } else {
-        $(document).trigger('error', data.message);
+        huePubSub.publish('hue.global.error', { message: data.message });
         self.status('failed');
       }
     };
@@ -1936,7 +1936,7 @@ class Snippet {
         .fail((xhr, textStatus, errorThrown) => {
           if (self.statusForButtons() != 'canceled' && xhr.status !== 502) {
             // No error when manually canceled
-            $(document).trigger('error', xhr.responseText);
+            huePubSub.publish('hue.global.error', { message: xhr.responseText });
           }
           self.status('failed');
           self.statusForButtons('executed');
@@ -2120,13 +2120,13 @@ class Snippet {
             self.showSqlAnalyzer(true);
             self.hasSuggestion(true);
           } else {
-            $(document).trigger('error', data.message);
+            huePubSub.publish('hue.global.error', { message: data.message });
           }
         }
       )
         .fail((xhr, textStatus, errorThrown) => {
           if (xhr.status !== 502) {
-            $(document).trigger('error', xhr.responseText);
+            huePubSub.publish('hue.global.error', { message: xhr.responseText });
           }
         })
         .always(() => {
@@ -2192,7 +2192,7 @@ class Snippet {
           )
             .fail((xhr, textStatus, errorThrown) => {
               if (xhr.status !== 502) {
-                $(document).trigger('error', xhr.responseText);
+                huePubSub.publish('hue.global.error', { message: xhr.responseText });
               }
             })
             .always(() => {
@@ -2286,12 +2286,12 @@ class Snippet {
           if (data.status == 0) {
             self.result.meta(data.result.meta);
           } else {
-            $(document).trigger('error', data.message);
+            huePubSub.publish('hue.global.error', { message: data.message });
           }
         }
       ).fail((xhr, textStatus, errorThrown) => {
         if (xhr.status !== 502) {
-          $(document).trigger('error', xhr.responseText);
+          huePubSub.publish('hue.global.error', { message: xhr.responseText });
         }
         self.status('failed');
       });
@@ -2319,11 +2319,13 @@ class Snippet {
               // No supported yet for this snippet
             } else {
               //$(document).trigger("error", data.message);
+              //huePubSub.publish('hue.global.error', {message: data.message});
             }
           }
         }
       ).fail((xhr, textStatus, errorThrown) => {
         //$(document).trigger("error", xhr.responseText);
+        //huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     };
 
@@ -2400,7 +2402,7 @@ class Snippet {
         ).fail((xhr, textStatus, errorThrown) => {
           if (xhr.stausText !== 'abort') {
             if (xhr.status !== 502) {
-              $(document).trigger('error', xhr.responseText || textStatus);
+              huePubSub.publish('hue.global.error', { message: xhr.responseText || textStatus });
             }
             self.status('failed');
             notebook.isExecutingAll(false);
@@ -2475,7 +2477,7 @@ class Snippet {
         )
           .fail((xhr, textStatus, errorThrown) => {
             if (xhr.status !== 502) {
-              $(document).trigger('error', xhr.responseText);
+              huePubSub.publish('hue.global.error', { message: xhr.responseText });
             }
             self.statusForButtons('canceled');
             self.status('failed');
@@ -2506,6 +2508,7 @@ class Snippet {
       ).fail((xhr, textStatus, errorThrown) => {
         if (xhr.status !== 502) {
           // $(document).trigger("error", xhr.responseText);
+          //huePubSub.publish('hue.global.error', {message: xhr.responseText});
         }
         // self.status('failed'); // Can conflict with slow close and new query execution
       });
@@ -2612,7 +2615,7 @@ class Snippet {
       ).fail((xhr, textStatus, errorThrown) => {
         if (xhr.statusText !== 'abort') {
           if (xhr.status !== 502) {
-            $(document).trigger('error', xhr.responseText || textStatus);
+            huePubSub.publish('hue.global.error', { message: xhr.responseText || textStatus });
           }
           self.status('failed');
         }
@@ -2639,7 +2642,7 @@ class Snippet {
             );
             self.watchUploadStatus(data.upload_history[self.type()].status.workloadId);
           } else {
-            $(document).trigger('error', data.message);
+            huePubSub.publish('hue.global.error', { message: data.message });
           }
         }
       );
@@ -2686,7 +2689,7 @@ class Snippet {
               self.watchUploadStatus(data.upload_table_ddl.status.workloadId, options.showProgress);
             }
           } else if (options.showProgress) {
-            $(document).trigger('error', data.message);
+            huePubSub.publish('hue.global.error', { message: data.message });
           }
         }
       ).always(() => {
@@ -2724,7 +2727,7 @@ class Snippet {
               );
             }
           } else if (showProgress) {
-            $(document).trigger('error', data.message);
+            huePubSub.publish('hue.global.error', { message: data.message });
           }
         }
       );
@@ -2745,7 +2748,7 @@ class Snippet {
             // eslint-disable-next-line no-restricted-syntax
             console.log(data.statement_similarity);
           } else {
-            $(document).trigger('error', data.message);
+            huePubSub.publish('hue.global.error', { message: data.message });
           }
         }
       );

+ 3 - 3
desktop/core/src/desktop/js/apps/tableBrowser/metastoreTable.js

@@ -365,7 +365,7 @@ class MetastoreTable {
         if (resp.history_uuid) {
           huePubSub.publish('notebook.task.submitted', resp);
         } else {
-          $(document).trigger('error', resp.message);
+          huePubSub.publish('hue.global.error', { message: resp.message });
         }
       });
     };
@@ -378,7 +378,7 @@ class MetastoreTable {
           if (data && data.status === 0) {
             this.relationshipsDetails(ko.mapping.fromJS(data));
           } else {
-            $(document).trigger('error', data.message);
+            huePubSub.publish('hue.global.error', { message: data.message });
           }
         })
         .fail(xhr => {
@@ -422,7 +422,7 @@ class MetastoreTable {
         $('#import-data-modal').html(data['data']);
       })
       .fail(xhr => {
-        $(document).trigger('error', xhr.responseText);
+        huePubSub.publish('hue.global.error', { message: xhr.responseText });
       });
   }
 

+ 3 - 1
desktop/core/src/desktop/js/doc/hueFileEntry.js

@@ -134,7 +134,9 @@ class HueFileEntry {
         }
         this.selectedDocsWithDependents(docsWithDependents);
       }).fail(response => {
-        $(document).trigger('error', 'Error getting document data: ' + response.responseText);
+        huePubSub.publish('hue.global.error', {
+          message: 'Error getting document data: ' + response.responseText
+        });
       });
     };
 

+ 2 - 2
desktop/core/src/desktop/js/hue.js

@@ -150,11 +150,11 @@ $(document).ready(async () => {
         if (resp.history_uuid) {
           huePubSub.publish('open.editor.query', resp);
         } else if (resp.message) {
-          $(document).trigger('error', resp.message);
+          huePubSub.publish('hue.global.error', { message: resp.message });
         }
       }
     ).fail(xhr => {
-      $(document).trigger('error', xhr.responseText);
+      huePubSub.publish('hue.global.error', { message: xhr.responseText });
     });
   });
 

+ 3 - 3
desktop/core/src/desktop/js/jquery/plugins/jquery.filechooser.js

@@ -759,7 +759,7 @@ Plugin.prototype.navigateTo = function (path) {
                 }
               },
               error: function (xhr) {
-                $(document).trigger('error', xhr.responseText);
+                huePubSub.publish('hue.global.error', { message: xhr.responseText });
               }
             });
           }
@@ -799,7 +799,7 @@ Plugin.prototype.navigateTo = function (path) {
       );
     } else {
       console.error(e);
-      $(document).trigger('error', e.statusText);
+      huePubSub.publish('hue.global.error', { message: e.statusText });
     }
   });
 };
@@ -817,7 +817,7 @@ function initUploader(path, _parent, el, labels) {
     onComplete: function (id, fileName, responseJSON) {
       num_of_pending_uploads--;
       if (responseJSON.status == -1) {
-        $(document).trigger('error', responseJSON.data);
+        huePubSub.publish('hue.global.error', { message: responseJSON.data });
       } else if (!num_of_pending_uploads) {
         _parent.navigateTo(path);
         huePubSub.publish('assist.' + getFs(getScheme(path)) + '.refresh');

+ 2 - 1
desktop/core/src/desktop/js/ko/bindings/ko.dropzone.js

@@ -18,6 +18,7 @@ import Dropzone from 'dropzone';
 import $ from 'jquery';
 import * as ko from 'knockout';
 
+import huePubSub from 'utils/huePubSub';
 import I18n from 'utils/i18n';
 
 // TODO: Depends on Dropzone
@@ -77,7 +78,7 @@ ko.bindingHandlers.dropzone = {
           const response = JSON.parse(file.xhr.response);
           if (response && response.status != null) {
             if (response.status !== 0) {
-              $(document).trigger('error', response.data);
+              huePubSub.publish('hue.global.error', { message: response.data });
               if (value.onError) {
                 value.onError(file.name);
               }

+ 13 - 13
desktop/core/src/desktop/js/ko/components/ko.sentryPrivileges.js

@@ -19,9 +19,9 @@ import * as ko from 'knockout';
 import koMapping from 'knockout.mapping';
 
 import componentUtils from './componentUtils';
+import huePubSub from 'utils/huePubSub';
 import I18n from 'utils/i18n';
 import UUID from 'utils/string/UUID';
-
 export const NAME = 'hue-sentry-privileges';
 
 const TEMPLATE = `
@@ -483,11 +483,11 @@ class Role {
               self.originalGroups.push(group);
             });
           } else {
-            $(document).trigger('error', data.message);
+            huePubSub.publish('hue.global.error', { message: data.message });
           }
         }
       ).fail(xhr => {
-        $(document).trigger('error', xhr.responseText);
+        huePubSub.publish('hue.global.error', { message: xhr.responseText });
       });
     };
 
@@ -511,12 +511,12 @@ class Role {
               vm.listSentryPrivilegesByAuthorizable();
               $(document).trigger('createdRole');
             } else {
-              $(document).trigger('error', data.message);
+              huePubSub.publish('hue.global.error', { message: data.message });
             }
           }
         )
           .fail(xhr => {
-            $(document).trigger('error', xhr.responseText);
+            huePubSub.publish('hue.global.error', { message: xhr.responseText });
           })
           .always(() => {
             self.isLoading(false);
@@ -540,12 +540,12 @@ class Role {
               vm.listSentryPrivilegesByAuthorizable();
               $(document).trigger('createdRole');
             } else {
-              $(document).trigger('error', data.message);
+              huePubSub.publish('hue.global.error', { message: data.message });
             }
           }
         )
           .fail(xhr => {
-            $(document).trigger('error', xhr.responseText);
+            huePubSub.publish('hue.global.error', { message: xhr.responseText });
           })
           .always(() => {
             self.isLoading(false);
@@ -567,12 +567,12 @@ class Role {
             vm.listSentryPrivilegesByAuthorizable();
             $(document).trigger('removedRole');
           } else {
-            $(document).trigger('error', data.message);
+            huePubSub.publish('hue.global.error', { message: data.message });
           }
         }
       )
         .fail(xhr => {
-          $(document).trigger('error', xhr.responseText);
+          huePubSub.publish('hue.global.error', { message: xhr.responseText });
         })
         .always(() => {
           self.isLoading(false);
@@ -591,11 +591,11 @@ class Role {
             vm.listSentryPrivilegesByAuthorizable();
             $(document).trigger('createdRole');
           } else {
-            $(document).trigger('error', data.message);
+            huePubSub.publish('hue.global.error', { message: data.message });
           }
         }
       ).fail(xhr => {
-        $(document).trigger('error', xhr.responseText);
+        huePubSub.publish('hue.global.error', { message: xhr.responseText });
       });
     };
   }
@@ -748,12 +748,12 @@ class SentryPrivilegesViewModel {
               self.privileges(_privileges);
             }
           } else {
-            $(document).trigger('error', data.message);
+            huePubSub.publish('hue.global.error', { message: data.message });
           }
         }
       })
         .fail(xhr => {
-          $(document).trigger('error', xhr.responseText);
+          huePubSub.publish('hue.global.error', { message: xhr.responseText });
         })
         .always(() => {
           self.isLoadingPrivileges(false);

+ 82 - 0
desktop/core/src/desktop/js/reactComponents/AlertComponent/AlertComponent.scss

@@ -0,0 +1,82 @@
+// Licensed to Cloudera, Inc. under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  Cloudera, Inc. licenses this file
+// to you under the Apache License, Version 2.0 (the
+// 'License'); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an 'AS IS' BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+@import '../../components/styles/variables';
+
+.hue-alert {
+  position: fixed;
+  width: 30%;
+  z-index: 9999;
+  top: 7px;
+  right: 0;
+  margin-right: 24px;
+  display: flex;
+  flex-flow: column;
+  row-gap: 10px;
+
+  button:hover,
+  button:focus {
+    background-color: unset;
+  }
+
+  button span {
+    font-size: $font-size-sm;
+    padding-top: 5px;
+  }
+
+  button svg.cdp-icon-close {
+    height: 16px;
+  }
+
+  .hue-alert--warning {
+    color: $fluidx-orange-900;
+    background: $fluidx-orange-050;
+    border: 1px solid $fluidx-orange-500;
+
+    button {
+      color: $fluidx-green-800;
+    }
+  }
+
+  .hue-alert--success {
+    color: $fluidx-green-900;
+    background: $fluidx-green-050;
+    border: 1px solid $fluidx-green-600;
+
+    button {
+      color: $fluidx-green-800;
+    }
+  }
+
+  .hue-alert--error {
+    color: $fluidx-orange-900;
+    background: $fluidx-red-050;
+    border: 1px solid $fluidx-red-500;
+    display: flex;
+    align-items: flex-start;
+
+    button {
+      color: $fluidx-red-800;
+      position: absolute;
+      top: 0.5rem;
+      right: 3%;
+    }
+  }
+
+  .hue-alert--message {
+    margin-right: 1rem;
+  }
+}

+ 60 - 0
desktop/core/src/desktop/js/reactComponents/AlertComponent/AlertComponent.tsx

@@ -0,0 +1,60 @@
+// Licensed to Cloudera, Inc. under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  Cloudera, Inc. licenses this file
+// to you under the Apache License, Version 2.0 (the
+// 'License'); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an 'AS IS' BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+import React, { useEffect, useState } from 'react';
+import Alert from 'cuix/dist/components/Alert/Alert';
+
+import huePubSub from 'utils/huePubSub';
+import './AlertComponent.scss';
+
+interface ErrorAlert {
+  message: string;
+}
+
+const AlertComponent: React.FC = () => {
+  const [errors, setErrors] = useState<ErrorAlert[]>([]);
+
+  useEffect(() => {
+    const hueSub = huePubSub.subscribe('hue.global.error', (errorObj: ErrorAlert) => {
+      setErrors(prevData => [...prevData, errorObj]);
+    });
+    return () => {
+      hueSub.remove();
+    };
+  }, []);
+
+  const handleClose = (errorObj: ErrorAlert) => {
+    const filteredErrors = errors.filter(errorObj => errorObj !== errorObj);
+    setErrors(filteredErrors);
+  };
+
+  //TODO: add support for warnings and success messages
+  return (
+    <div className="flash-messages cuix antd">
+      {errors.map((errorObj, index) => (
+        <Alert
+          key={index}
+          type="error"
+          message={errorObj.message}
+          closable={true}
+          onClose={() => handleClose(errorObj, index)}
+        />
+      ))}
+    </div>
+  );
+};
+
+export default AlertComponent;

+ 3 - 0
desktop/core/src/desktop/js/reactComponents/imports.js

@@ -14,6 +14,9 @@ export async function loadComponent(name) {
     case 'AppBanner':
       return (await import('./AppBanner/AppBanner')).default;
 
+    case 'AlertComponent':
+      return (await import('./AlertComponent/AlertComponent')).default;
+
     case 'ReactExampleGlobal':
       return (await import('./ReactExampleGlobal/ReactExampleGlobal')).default;
 

+ 4 - 4
desktop/core/src/desktop/static/desktop/js/share.vm.js

@@ -52,7 +52,7 @@ function ShareViewModel(updateDocF) {
     $.get('/desktop/api/doc/get', { id : docId }, function (data) {
       shareViewModel.selectedDoc(data)
     }).fail(function (response) {
-      $(document).trigger("error", "There was an error processing your action: " + response.responseText);
+      huePubSub.publish('hue.global.error', {message: "There was an error processing your action: " + response.responseText});
     });
   }
 }
@@ -166,7 +166,7 @@ function setupSharing(id, updateFunc) {
         id();
       }
     }).fail(function (response) {
-      $(document).trigger("error", "There was an error processing your action: " + response.responseText);
+      huePubSub.publish('hue.global.error', {message: "There was an error processing your action: " + response.responseText});
     });
 
     $("#documentShareAddBtn").on("click", function () {
@@ -263,13 +263,13 @@ function shareDocFinal() {
   }, function (response) {
     if (response != null) {
       if (response.status != 0) {
-        $(document).trigger("error", "There was an error processing your action: " + response.message);
+        huePubSub.publish('hue.global.error', {message: "There was an error processing your action: " + response.message});
       }
       else {
         shareViewModel.updateDoc(response.doc);
       }
     }
   }).fail(function (response) {
-    $(document).trigger("error", "There was an error processing your action: " + response.responseText);
+    huePubSub.publish('hue.global.error', {message: "There was an error processing your action: " + response.responseText});
   });
 }

+ 3 - 3
desktop/core/src/desktop/static/desktop/js/share2.vm.js

@@ -19,7 +19,7 @@ var shareViewModel;
 
 
 var errorCallback = function(response) {
-  $(document).trigger("error", "There was an error processing your action: " + response.responseText);
+  huePubSub.publish('hue.global.error', {message: "There was an error processing your action: " + response.responseText});
 };
 
 function ShareViewModel(updateDocF) {
@@ -262,13 +262,13 @@ function shareDocFinal() {
   }, function (response) {
     if (response != null) {
       if (response.status != 0) {
-        $(document).trigger("error", "There was an error processing your action: " + response.message);
+        huePubSub.publish('hue.global.error', {message: "There was an error processing your action: " + response.message});
       }
       else {
         shareViewModel.setDocUuid(shareViewModel.docUuid);
       }
     }
   }).fail(function (response) {
-    $(document).trigger("error", "There was an error processing your action: " + response.responseText);
+    huePubSub.publish('hue.global.error', {message: "There was an error processing your action: " + response.responseText});
   });
 }

+ 2 - 2
desktop/core/src/desktop/templates/common_footer_m.mako

@@ -42,9 +42,9 @@ else:
     %if messages:
       %for message in messages:
         %if message.tags == 'error':
-          $(document).trigger('error', '${ escapejs(escape(message)) }');
+          huePubSub.publish('hue.global.error', {message: '${ escapejs(escape(message))}'});
         %elif message.tags == 'warning':
-          $(document).trigger('warn', '${ escapejs(escape(message)) }');
+          $(document).trigger('warn', '${ escapejs(escape(message))' });
         %else:
           $(document).trigger('info', '${ escapejs(escape(message)) }');
         %endif

+ 1 - 1
desktop/core/src/desktop/templates/common_header_footer_components.mako

@@ -396,7 +396,7 @@ else:
     %if messages:
       %for message in messages:
         %if message.tags == 'error':
-          $(document).trigger('error', '${ escapejs(escape(message)) }');
+          huePubSub.publish('hue.global.error', {message: '${ escapejs(escape(message)) }'});
         %elif message.tags == 'warning':
           $(document).trigger('warn', '${ escapejs(escape(message)) }');
         %else:

+ 2 - 2
desktop/core/src/desktop/templates/common_import_export.mako

@@ -144,11 +144,11 @@ else:
           if (data.status == 0) {
             self.importedDocSummary(data);
           } else {
-            $(document).trigger('error', data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
         },
         error: function () {
-          $(document).trigger('error', "${_('An unexpected error occurred while importing your documents')}");
+          huePubSub.publish('hue.global.error', {message: "${_('An unexpected error occurred while importing your documents')}"});
           $('#import-document-data').modal('hide');
         }
       });

+ 3 - 3
desktop/core/src/desktop/templates/common_notebook_ko_components.mako

@@ -464,13 +464,13 @@ else:
                 $(self.saveResultsModalId).modal('hide');
                 huePubSub.publish('notebook.task.submitted', resp);
               } else if (resp && resp.message) {
-                $(document).trigger("error", resp.message);
+                huePubSub.publish('hue.global.error', {message: resp.message});
               }
             } else {
-              $(document).trigger('error', resp.message);
+              huePubSub.publish('hue.global.error', {message: resp.message});
             }
           }).fail(function (xhr, textStatus, errorThrown) {
-            $(document).trigger("error", xhr.responseText);
+            huePubSub.publish('hue.global.error', {message: xhr.responseText});
           }).done(function() {
             $(self.saveResultsModalId + ' button.btn-primary').button('reset');
             $(self.saveResultsModalId + ' .loader').hide();

+ 5 - 5
desktop/core/src/desktop/templates/home.mako

@@ -424,7 +424,7 @@ ${ commonshare() | n,unicode }
           $("#addTagModal").modal("hide");
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", "${_("There was an error processing your action: ")}" + xhr.responseText); // reserved name, duplicate etc
+        huePubSub.publish('hue.global.error', {message: "${_("There was an error processing your action: ")}" + xhr.responseText}); // reserved name, duplicate etc
       });
     });
 
@@ -460,11 +460,11 @@ ${ commonshare() | n,unicode }
           viewModel.filterDocs(viewModel.history());
         }
         else {
-          $(document).trigger("error", "${_("There was an error processing your action: ")}" + response.message);
+          huePubSub.publish('hue.global.error', {message: "${_("There was an error processing your action: ")}" + response.message});
         }
       }
     }).fail(function (response) {
-      $(document).trigger("error", "${_("There was an error processing your action: ")}" + response.responseText);
+      huePubSub.publish('hue.global.error', {message: "${_("There was an error processing your action: ")}" + response.responseText});
     });
   }
 
@@ -487,7 +487,7 @@ ${ commonshare() | n,unicode }
     }, function (response) {
       if (response != null) {
         if (response.status != 0) {
-          $(document).trigger("error", "${_("There was an error processing your action: ")}" + response.message);
+          huePubSub.publish('hue.global.error', {message: "${_("There was an error processing your action: ")}" + response.message});
         }
         else {
           $(document).trigger("info", "${ _("Project updated successfully.") }");
@@ -496,7 +496,7 @@ ${ commonshare() | n,unicode }
       }
       $("#documentMoveModal").modal("hide");
     }).fail(function (response) {
-      $(document).trigger("error", "${_("There was an error processing your action: ")}" + response.responseText);
+      huePubSub.publish('hue.global.error', {message: "${_("There was an error processing your action: ")}" + response.responseText});
     });
   }
 

+ 2 - 1
desktop/core/src/desktop/templates/hue.mako

@@ -131,7 +131,7 @@
 
 <div id="jHueNotify" class="alert hide">
   <button class="close">&times;</button>
-  <div class="message"></div>
+  <div class="message"></div> 
 </div>
 
 
@@ -146,6 +146,7 @@ ${ hueIcons.symbols() }
 
   <div class="main-page">
     <AppBanner data-reactcomponent='AppBanner'></AppBanner>
+    <AlertComponent data-reactcomponent='AlertComponent' ></AlertComponent> 
 
     <nav class="navbar navbar-default">
       <div class="navbar-inner top-nav">

+ 2 - 2
desktop/core/src/desktop/templates/logs.mako

@@ -134,10 +134,10 @@ ${ layout.menubar(section='log_view') }
 
       $.post(_url, {}, function(data) {
         if (data,status != 0) {
-          $(document).trigger("error", data.message);
+          huePubSub.publish('hue.global.error', {message: data.message});
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     };
   }

+ 2 - 2
desktop/libs/dashboard/src/dashboard/static/dashboard/js/create-collections.ko.js

@@ -170,11 +170,11 @@ var CreateCollectionViewModel = function(steps) {
         if (data.status == 0) {
           $(document).trigger("info", data.message);
         } else {
-          $(document).trigger("error", data.message);
+          huePubSub.publish('hue.global.error', {message: data.message});
         }
       })
       .fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseTex});
       });
     }
   };

+ 22 - 22
desktop/libs/dashboard/src/dashboard/static/dashboard/js/search.ko.js

@@ -509,11 +509,11 @@ var FieldAnalysis = function (vm, fieldName, fieldType) {
         self.terms.data.push({'key': 'Error', 'val': data.message});
       }
       else {
-        $(document).trigger("error", data.message);
+        huePubSub.publish('hue.global.error', {message: data.message});
       }
       self.isLoading(false);
     }, "text").fail(function (xhr, textStatus, errorThrown) {
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
     });
   };
 
@@ -537,11 +537,11 @@ var FieldAnalysis = function (vm, fieldName, fieldType) {
         self.stats.data.push({'key': 'Error', 'val': data.message});
       }
       else {
-        $(document).trigger("error", data.message);
+        huePubSub.publish('hue.global.error', {message: data.message});
       }
       self.isLoading(false);
     }, "text").fail(function (xhr, textStatus, errorThrown) {
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
     });
   };
 }
@@ -1216,7 +1216,7 @@ var Collection = function (vm, collection) {
           huePubSub.publish('search.facet.added', facet);
           vm.search();
         } else {
-          $(document).trigger("error", data.message);
+          huePubSub.publish('hue.global.error', {message: data.message});
         }
         if (callback) {
           callback();
@@ -1939,10 +1939,10 @@ var NewTemplate = function (vm, initial) {
           });
         }
         else {
-          $(document).trigger("error", data.message);
+          huePubSub.publish('hue.global.error', {message: data.message});
         }
     }).fail(function (xhr, textStatus, errorThrown) {
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
     }).done(function() {
       vm.isSyncingCollections(false);
       self.inited(true);
@@ -2324,11 +2324,11 @@ var SearchViewModel = function (collection_json, query_json, initial_json, has_g
             facet.queryResult().status('expired');
           } else {
             //self._ajaxError(data); // common?
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText || textStatus);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText || textStatus});
         facet.queryResult().status('failed');
       });
     };
@@ -2351,7 +2351,7 @@ var SearchViewModel = function (collection_json, query_json, initial_json, has_g
             //self._ajaxError(data);
           }
         }).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
           self.queryResult().status('failed');
         }).always(function () {
           self.isCanceling(false);
@@ -2370,7 +2370,7 @@ var SearchViewModel = function (collection_json, query_json, initial_json, has_g
           //self._ajaxError(data);
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
         facet.queryResult().status('failed');
       });
     };
@@ -2417,10 +2417,10 @@ var SearchViewModel = function (collection_json, query_json, initial_json, has_g
         } else if (data.status == 5) {
           // No supported yet for this snippet
         } else {
-          $(document).trigger("error", data.message);
+          huePubSub.publish('hue.global.error', {message: data.message});
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     };
 
@@ -2570,7 +2570,7 @@ var SearchViewModel = function (collection_json, query_json, initial_json, has_g
         }
       })
       .fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       })
       .always(function () {
         if (!self.collection.async()) {
@@ -2595,7 +2595,7 @@ var SearchViewModel = function (collection_json, query_json, initial_json, has_g
       self.response(data);
 
       if (data.error) {
-        $(document).trigger("error", data.error);
+        huePubSub.publish('hue.global.error', {message: data.error});
       }
       else {
         var _resultsHash = ko.mapping.toJSON(data.response.docs) + (data.response.moreLikeThis ? '/moreLikeThis' : '');
@@ -2796,7 +2796,7 @@ var SearchViewModel = function (collection_json, query_json, initial_json, has_g
           callback();
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     };
 
@@ -2878,7 +2878,7 @@ var SearchViewModel = function (collection_json, query_json, initial_json, has_g
             }
           });
         } else {
-          $(document).trigger("error", data.message);
+          huePubSub.publish('hue.global.error', {message: data.message});
         }
 
         doc.details(details);
@@ -2887,7 +2887,7 @@ var SearchViewModel = function (collection_json, query_json, initial_json, has_g
           callback(details);
         }
       }, "text").fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     };
 
@@ -2912,10 +2912,10 @@ var SearchViewModel = function (collection_json, query_json, initial_json, has_g
           doc.originalDetails(ko.toJSON(doc.details()));
         }
         else {
-          $(document).trigger("error", data.message);
+          huePubSub.publish('hue.global.error', {message: data.message});
         }
       }, "text").fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     };
 
@@ -2972,10 +2972,10 @@ var SearchViewModel = function (collection_json, query_json, initial_json, has_g
           }
         }
         else {
-          $(document).trigger("error", data.message);
+          huePubSub.publish('hue.global.error', {message: data.message});
         }
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     };
 

+ 24 - 24
desktop/libs/indexer/src/indexer/static/indexer/js/collections.js

@@ -114,7 +114,7 @@ var HiveViewModel = function() {
       }
     })
     .fail(function (xhr, textStatus, errorThrown) {
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
     });
   };
 
@@ -126,7 +126,7 @@ var HiveViewModel = function() {
       }
     })
     .fail(function (xhr, textStatus, errorThrown) {
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
     });
   };
 
@@ -137,7 +137,7 @@ var HiveViewModel = function() {
       }
     })
     .fail(function (xhr, textStatus, errorThrown) {
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
     });
   };
 
@@ -164,7 +164,7 @@ var HBaseViewModel = function() {
       }
     })
     .fail(function (xhr, textStatus, errorThrown) {
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
     });
   };
 
@@ -177,7 +177,7 @@ var HBaseViewModel = function() {
       }
     })
     .fail(function (xhr, textStatus, errorThrown) {
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
     });
   };
 
@@ -226,11 +226,11 @@ var CreateCollectionViewModel = function() {
           chooseUniqueKey(self.collection);
           chooseDefaultField(self.collection);
         } else {
-          $(document).trigger("error", data.message);
+          huePubSub.publish('hue.global.error', {message: data.message});
         }
         self.isLoading(false);
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
         self.isLoading(false);
       });
     }
@@ -258,11 +258,11 @@ var CreateCollectionViewModel = function() {
             huePubSub.publish('open.link', '/hue/indexer');// Can't open on collection name as no collections refresh yet
           } else {
             self.isLoading(false);
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
         })
         .fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
           self.isLoading(false);
         });
 
@@ -276,12 +276,12 @@ var CreateCollectionViewModel = function() {
           if (data.status == 0) {
             huePubSub.publish('open.link', '/hue/indexer');// Can't open on collection name as no collections refresh yet
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
           self.isLoading(false);
         })
         .fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
           self.isLoading(false);
         });
       }
@@ -319,12 +319,12 @@ var EditCollectionViewModel = function() {
           self.collection().uniqueKeyField(data.unique_key);
           self.sourceType(data.type);
         } else {
-          $(document).trigger("error", data.message);
+          huePubSub.publish('hue.global.error', {message: data.message});
         }
         self.isLoading(false);
       })
       .fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
         self.isLoading(false);
       });
     }
@@ -339,12 +339,12 @@ var EditCollectionViewModel = function() {
       if (data.status == 0) {
         window.location.reload();
       } else {
-        $(document).trigger("error", data.message);
+        huePubSub.publish('hue.global.error', {message: data.message});
       }
       self.isLoading(false);
     })
     .fail(function (xhr, textStatus, errorThrown) {
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
       self.isLoading(false);
     });
   };
@@ -359,12 +359,12 @@ var EditCollectionViewModel = function() {
       if (data.status == 0) {
         $(document).trigger("info", data.message);
       } else {
-        $(document).trigger("error", data.message);
+        huePubSub.publish('hue.global.error', {message: data.message});
       }
       self.isLoading(false);
     })
     .fail(function (xhr, textStatus, errorThrown) {
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
       self.isLoading(false);
     });
   };
@@ -386,12 +386,12 @@ var EditCollectionViewModel = function() {
           huePubSub.publish('open.link', '/hue/indexer');
         } else {
           self.isLoading(false);
-          $(document).trigger("error", data.message);
+          huePubSub.publish('hue.global.error', {message: data.message});
         }
       })
       .fail(function (xhr, textStatus, errorThrown) {
         self.isLoading(false);
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     }
   };
@@ -457,7 +457,7 @@ var ManageCollectionsViewModel = function() {
     })
     .fail(function (xhr, textStatus, errorThrown) {
       self.isLoading(false);
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
     });
   };
 
@@ -482,12 +482,12 @@ var ManageCollectionsViewModel = function() {
         self.collections(collections);
         self.hasLoadedOnce(true);
       } else {
-        $(document).trigger("error", data.message);
+        huePubSub.publish('hue.global.error', {message: data.message});
       }
       self.isLoading(false);
     })
     .fail(function (xhr, textStatus, errorThrown) {
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
       self.isLoading(false);
     });
   };
@@ -525,12 +525,12 @@ var ManageCollectionsViewModel = function() {
           self.isLoading(false);
         }
       } else {
-        $(document).trigger("error", data.message);
+        huePubSub.publish('hue.global.error', {message: data.message});
         self.isLoading(false);
       }
     })
     .fail(function (xhr, textStatus, errorThrown) {
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
       self.isLoading(false);
     });
   };

+ 24 - 24
desktop/libs/indexer/src/indexer/static/indexer/js/indexes.ko.js

@@ -114,7 +114,7 @@ var HiveViewModel = function() {
       }
     })
     .fail(function (xhr, textStatus, errorThrown) {
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
     });
   };
 
@@ -126,7 +126,7 @@ var HiveViewModel = function() {
       }
     })
     .fail(function (xhr, textStatus, errorThrown) {
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
     });
   };
 
@@ -137,7 +137,7 @@ var HiveViewModel = function() {
       }
     })
     .fail(function (xhr, textStatus, errorThrown) {
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
     });
   };
 
@@ -164,7 +164,7 @@ var HBaseViewModel = function() {
       }
     })
     .fail(function (xhr, textStatus, errorThrown) {
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
     });
   };
 
@@ -177,7 +177,7 @@ var HBaseViewModel = function() {
       }
     })
     .fail(function (xhr, textStatus, errorThrown) {
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
     });
   };
 
@@ -226,11 +226,11 @@ var CreateCollectionViewModel = function() {
           chooseUniqueKey(self.collection);
           chooseDefaultField(self.collection);
         } else {
-          $(document).trigger("error", data.message);
+          huePubSub.publish('hue.global.error', {message: data.message});
         }
         self.isLoading(false);
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
         self.isLoading(false);
       });
     }
@@ -258,11 +258,11 @@ var CreateCollectionViewModel = function() {
             huePubSub.publish('open.link', '/indexer');
           } else {
             self.isLoading(false);
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
         })
         .fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
           self.isLoading(false);
         });
 
@@ -276,12 +276,12 @@ var CreateCollectionViewModel = function() {
           if (data.status == 0) {
             huePubSub.publish('open.link', '/indexer');
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
           self.isLoading(false);
         })
         .fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
           self.isLoading(false);
         });
       }
@@ -319,12 +319,12 @@ var EditCollectionViewModel = function() {
           self.collection().uniqueKeyField(data.unique_key);
           self.sourceType(data.type);
         } else {
-          $(document).trigger("error", data.message);
+          huePubSub.publish('hue.global.error', {message: data.message});
         }
         self.isLoading(false);
       })
       .fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
         self.isLoading(false);
       });
     }
@@ -339,12 +339,12 @@ var EditCollectionViewModel = function() {
       if (data.status == 0) {
         huePubSub.publish('open.link', '/indexer');
       } else {
-        $(document).trigger("error", data.message);
+        huePubSub.publish('hue.global.error', {message: data.message});
       }
       self.isLoading(false);
     })
     .fail(function (xhr, textStatus, errorThrown) {
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
       self.isLoading(false);
     });
   };
@@ -359,12 +359,12 @@ var EditCollectionViewModel = function() {
       if (data.status == 0) {
         $(document).trigger("info", data.message);
       } else {
-        $(document).trigger("error", data.message);
+        huePubSub.publish('hue.global.error', {message: data.message});
       }
       self.isLoading(false);
     })
     .fail(function (xhr, textStatus, errorThrown) {
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
       self.isLoading(false);
     });
   };
@@ -386,12 +386,12 @@ var EditCollectionViewModel = function() {
           huePubSub.publish('open.link', '/indexer');
         } else {
           self.isLoading(false);
-          $(document).trigger("error", data.message);
+          huePubSub.publish('hue.global.error', {message: data.message});
         }
       })
       .fail(function (xhr, textStatus, errorThrown) {
         self.isLoading(false);
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     }
   };
@@ -457,7 +457,7 @@ var ManageCollectionsViewModel = function() {
     })
     .fail(function (xhr, textStatus, errorThrown) {
       self.isLoading(false);
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
     });
   };
 
@@ -482,12 +482,12 @@ var ManageCollectionsViewModel = function() {
         self.collections(collections);
         self.hasLoadedOnce(true);
       } else {
-        $(document).trigger("error", data.message);
+        huePubSub.publish('hue.global.error', {message: data.message});
       }
       self.isLoading(false);
     })
     .fail(function (xhr, textStatus, errorThrown) {
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
       self.isLoading(false);
     });
   };
@@ -520,12 +520,12 @@ var ManageCollectionsViewModel = function() {
           self.collections.splice(index, 1);
         });
       } else {
-        $(document).trigger("error", data.message);
+        huePubSub.publish('hue.global.error', {message: data.message});
       }
       self.isLoading(false);
     })
     .fail(function (xhr, textStatus, errorThrown) {
-      $(document).trigger("error", xhr.responseText);
+      huePubSub.publish('hue.global.error', {message: xhr.responseText});
       self.isLoading(false);
     });
   };

+ 11 - 11
desktop/libs/indexer/src/indexer/templates/importer.mako

@@ -2040,7 +2040,7 @@ ${ commonheader(_("Importer"), "indexer", user, request, "60px") | n,unicode }
             self.rdbmsDbIsValid(true);
             self.rdbmsDatabaseNames(resp.data);
           } else if (resp.status === 1) {
-            $(document).trigger("error", "${ _('Connection Failed: ') }" + resp.message);
+            huePubSub.publish('hue.global.error', {message: "${ _('Connection Failed: ') }" + resp.message});
             self.rdbmsDbIsValid(false);
           }
         }).always(function(){
@@ -2110,7 +2110,7 @@ ${ commonheader(_("Importer"), "indexer", user, request, "60px") | n,unicode }
             if (resp.status === 0 && resp.hosts) {
               self.channelSourceHosts(resp.hosts);
             } else {
-              $(document).trigger("error", "${ _('Error getting hosts') }" + resp.message);
+              huePubSub.publish('hue.global.error', {message: "${ _('Error getting hosts') }" + resp.message});
             }
           });
         }
@@ -2204,7 +2204,7 @@ ${ commonheader(_("Importer"), "indexer", user, request, "60px") | n,unicode }
           if (resp.status === 0 && resp.data) {
             huePubSub.publish('notebook.task.submitted', resp);
           } else if (resp.status === 1) {
-            $(document).trigger("error", "${ _('Connection Failed: ') }" + resp.message);
+            huePubSub.publish('hue.global.error', {message: "${ _('Connection Failed: ') }" + resp.message});
             self.rdbmsDbIsValid(false);
           }
         });
@@ -2336,7 +2336,7 @@ ${ commonheader(_("Importer"), "indexer", user, request, "60px") | n,unicode }
                 return {'name': config, 'value': config};
               }));
             } else {
-              $(document).trigger("error", data.message);
+              huePubSub.publish('hue.global.error', {message: data.message});
             }
           });
         }
@@ -2893,7 +2893,7 @@ ${ commonheader(_("Importer"), "indexer", user, request, "60px") | n,unicode }
           "fileFormat": ko.mapping.toJSON(self.source)
         }, function (resp) {
           if (resp.status !== 0) {
-            $(document).trigger("error", resp.message);
+            huePubSub.publish('hue.global.error', {message: resp.message});
           } else {
             var newFormat = ko.mapping.fromJS(new FileType(resp['type'], resp));
             self.source.format(newFormat);
@@ -2917,7 +2917,7 @@ ${ commonheader(_("Importer"), "indexer", user, request, "60px") | n,unicode }
           self.isGuessingFormat(false);
           viewModel.wizardEnabled(true);
         }).fail(function (xhr) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
           viewModel.isLoading(false);
           self.isGuessingFormat(false);
         });
@@ -2938,7 +2938,7 @@ ${ commonheader(_("Importer"), "indexer", user, request, "60px") | n,unicode }
           guessFieldTypesXhr = null;
         }).fail(function (xhr) {
           self.loadSampleData({sample_cols: [], columns: [], sample: []});
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
           self.isGuessingFieldTypes(false);
           viewModel.isLoading(false);
           guessFieldTypesXhr = null;
@@ -2997,7 +2997,7 @@ ${ commonheader(_("Importer"), "indexer", user, request, "60px") | n,unicode }
           "destination": ko.mapping.toJSON(self.destination)
         }, function (resp) {
           if (resp.status !== 0) {
-            $(document).trigger("error", resp.message);
+            huePubSub.publish('hue.global.error', {message: resp.message});
             self.indexingStarted(false);
             self.isIndexing(false);
           } else if (resp.on_success_url) {
@@ -3086,7 +3086,7 @@ ${ commonheader(_("Importer"), "indexer", user, request, "60px") | n,unicode }
           }
           viewModel.isLoading(false);
         }).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
           viewModel.isLoading(false);
           self.indexingStarted(false);
           self.isIndexing(false);
@@ -3117,11 +3117,11 @@ ${ commonheader(_("Importer"), "indexer", user, request, "60px") | n,unicode }
               $('#showCommandsModal').modal('show');
             }
           } else {
-            $(document).trigger("error", resp && resp.message ? resp.message : '${ _("Error importing") }');
+            huePubSub.publish('hue.global.error', {message: resp && resp.message ? resp.message : '${ _("Error importing") }'});
           }
         }).fail(function (xhr) {
           self.indexingStarted(false);
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
         });
 % endif
 

+ 3 - 3
desktop/libs/indexer/src/indexer/templates/indexer.mako

@@ -802,7 +802,7 @@ ${ commonheader(_("Solr Indexes"), "search", user, request, "60px") | n,unicode
           viewModel.wizardEnabled(true);
           viewModel.currentStep(2);
         }).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
           viewModel.isLoading(false);
         });
       };
@@ -823,7 +823,7 @@ ${ commonheader(_("Solr Indexes"), "search", user, request, "60px") | n,unicode
           self.isGuessingFieldTypes(false);
           self.sample(resp.sample);
         }).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
           self.isGuessingFieldTypes(false);
           viewModel.isLoading(false);
         });
@@ -876,7 +876,7 @@ ${ commonheader(_("Solr Indexes"), "search", user, request, "60px") | n,unicode
           });
           viewModel.isLoading(false);
         }).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
           viewModel.isLoading(false);
           self.indexingStarted(false);
           self.isIndexing(false);

+ 14 - 14
desktop/libs/indexer/src/indexer/templates/indexes.mako

@@ -538,11 +538,11 @@ ${ commonheader(_("Index Browser"), "search", user, request, "60px") | n,unicode
             vm.indexes.push(ko.mapping.fromJS(data.alias));
             huePubSub.publish('assist.collections.refresh');
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
           $('#createAlias').modal('hide');
         }).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
         });
         hueAnalytics.log('indexes', 'create_alias');
       }
@@ -596,10 +596,10 @@ ${ commonheader(_("Index Browser"), "search", user, request, "60px") | n,unicode
           if (data.status == 0) {
             self.sample(data.sample);
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
         }).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
         }).always(function () {
           self.loadingSample(false);
         });
@@ -613,10 +613,10 @@ ${ commonheader(_("Index Browser"), "search", user, request, "60px") | n,unicode
           if (data.status == 0) {
             self.config(data.config);
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
         }).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
         }).always(function () {
           self.loadingConfig(false);
         });
@@ -632,11 +632,11 @@ ${ commonheader(_("Index Browser"), "search", user, request, "60px") | n,unicode
             huePubSub.publish('assist.collections.refresh');
             vm.showIndexes(false);
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
           $('#deleteIndex').modal('hide');
         }).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
         });
         hueAnalytics.log('indexes', 'delete_index');
       };
@@ -796,10 +796,10 @@ ${ commonheader(_("Index Browser"), "search", user, request, "60px") | n,unicode
               callback();
             }
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message})
           }
         }).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
         }).always(function () {
           self.isLoading(false);
         });
@@ -828,10 +828,10 @@ ${ commonheader(_("Index Browser"), "search", user, request, "60px") | n,unicode
             self.section('list-index');
             self.tab('index-overview');
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
         }).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
         });
         hueAnalytics.log('indexes', 'list_index');
       };
@@ -844,11 +844,11 @@ ${ commonheader(_("Index Browser"), "search", user, request, "60px") | n,unicode
             self.indexes.removeAll(self.selectedIndexes());
             huePubSub.publish('assist.collections.refresh');
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
           $('#deleteIndexes').modal('hide');
         }).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
         });
         hueAnalytics.log('indexes', 'delete_indexes');
       };

+ 12 - 12
desktop/libs/indexer/src/indexer/templates/topics.mako

@@ -487,11 +487,11 @@ ${ commonheader(_("Streams Browser"), "search", user, request, "60px") | n,unico
             vm.indexes.push(ko.mapping.fromJS(data.topic));
             huePubSub.publish('assist.collections.refresh');
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
           $('#createAlias').modal('hide');
         }).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
         });
         hueAnalytics.log('kafka', 'create_topic');
       }
@@ -544,10 +544,10 @@ ${ commonheader(_("Streams Browser"), "search", user, request, "60px") | n,unico
           if (data.status == 0) {
             self.sample(data.sample);
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
         }).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
         }).always(function () {
           self.loadingSample(false);
         });
@@ -563,11 +563,11 @@ ${ commonheader(_("Streams Browser"), "search", user, request, "60px") | n,unico
             huePubSub.publish('assist.collections.refresh');
             vm.showIndexes(false);
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
           $('#deleteIndex').modal('hide');
         }).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
         });
         hueAnalytics.log('indexes', 'delete_index');
       };
@@ -727,10 +727,10 @@ ${ commonheader(_("Streams Browser"), "search", user, request, "60px") | n,unico
               callback();
             }
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
         }).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
         }).always(function () {
           self.isLoading(false);
         });
@@ -758,10 +758,10 @@ ${ commonheader(_("Streams Browser"), "search", user, request, "60px") | n,unico
             self.section('list-index');
             self.tab('index-overview');
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
         }).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
         });
         hueAnalytics.log('kafka', 'list_topic');
       };
@@ -774,11 +774,11 @@ ${ commonheader(_("Streams Browser"), "search", user, request, "60px") | n,unico
             self.indexes.removeAll(self.selectedIndexes());
             huePubSub.publish('assist.collections.refresh');
           } else {
-            $(document).trigger("error", data.message);
+            huePubSub.publish('hue.global.error', {message: data.message});
           }
           $('#deleteIndexes').modal('hide');
         }).fail(function (xhr, textStatus, errorThrown) {
-          $(document).trigger("error", xhr.responseText);
+          huePubSub.publish('hue.global.error', {message: xhr.responseText});
         });
         hueAnalytics.log('indexes', 'delete_indexes');
       };

+ 2 - 2
desktop/libs/notebook/src/notebook/templates/notebooks.mako

@@ -208,7 +208,7 @@ ${ commonimportexport(request) | n,unicode }
         window.location.reload();
         $('#deleteNotebook').modal('hide');
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     };
 
@@ -218,7 +218,7 @@ ${ commonimportexport(request) | n,unicode }
       }, function(data) {
         window.location.reload();
       }).fail(function (xhr, textStatus, errorThrown) {
-        $(document).trigger("error", xhr.responseText);
+        huePubSub.publish('hue.global.error', {message: xhr.responseText});
       });
     };