Browse Source

HUE-2011 [impala] Autocomplete a non existing table hangs

Added new type of quiet error
Removed spinner on error
Enrico Berti 11 years ago
parent
commit
4e27324

+ 5 - 1
apps/beeswax/src/beeswax/templates/execute.mako

@@ -948,7 +948,7 @@ ${layout.menubar(section='query')}
 var codeMirror, renderNavigator, resetNavigator, resizeNavigator, dataTable, renderRecent;
 var codeMirror, renderNavigator, resetNavigator, resizeNavigator, dataTable, renderRecent;
 
 
 var HIVE_AUTOCOMPLETE_BASE_URL = "${ autocomplete_base_url | n,unicode }";
 var HIVE_AUTOCOMPLETE_BASE_URL = "${ autocomplete_base_url | n,unicode }";
-var HIVE_AUTOCOMPLETE_FAILS_SILENTLY_ON = [500]; // error codes from beeswax/views.py - autocomplete
+var HIVE_AUTOCOMPLETE_FAILS_QUIETLY_ON = [500]; // error codes from beeswax/views.py - autocomplete
 
 
 var HIVE_AUTOCOMPLETE_GLOBAL_CALLBACK = function (data) {
 var HIVE_AUTOCOMPLETE_GLOBAL_CALLBACK = function (data) {
   if (data != null && data.error) {
   if (data != null && data.error) {
@@ -1348,6 +1348,10 @@ $(document).ready(function () {
     }
     }
   };
   };
 
 
+  $(document).on("error.autocomplete", function(){
+    $(".CodeMirror-spinner").remove();
+  });
+
   function splitStatements(hql) {
   function splitStatements(hql) {
     var statements = [];
     var statements = [];
     var current = "";
     var current = "";

+ 16 - 12
apps/beeswax/static/js/autocomplete.utils.js

@@ -84,9 +84,7 @@ function hac_getTableColumns(databaseName, tableName, textScanned, callback) {
             HIVE_AUTOCOMPLETE_GLOBAL_CALLBACK(data);
             HIVE_AUTOCOMPLETE_GLOBAL_CALLBACK(data);
           }
           }
           if (data.error) {
           if (data.error) {
-            if (typeof HIVE_AUTOCOMPLETE_FAILS_SILENTLY_ON == "undefined" || data.code == null || HIVE_AUTOCOMPLETE_FAILS_SILENTLY_ON.indexOf(data.code) == -1){
-              $(document).trigger('error', data.error);
-            }
+            hac_errorHandler(data);
           }
           }
           else {
           else {
             $.totalStorage('columns_' + databaseName + '_' + tableName, (data.columns ? "* " + data.columns.join(" ") : "*"));
             $.totalStorage('columns_' + databaseName + '_' + tableName, (data.columns ? "* " + data.columns.join(" ") : "*"));
@@ -106,9 +104,7 @@ function hac_getTableColumns(databaseName, tableName, textScanned, callback) {
           HIVE_AUTOCOMPLETE_GLOBAL_CALLBACK(data);
           HIVE_AUTOCOMPLETE_GLOBAL_CALLBACK(data);
         }
         }
         if (data.error) {
         if (data.error) {
-          if (typeof HIVE_AUTOCOMPLETE_FAILS_SILENTLY_ON == "undefined" || data.code == null || HIVE_AUTOCOMPLETE_FAILS_SILENTLY_ON.indexOf(data.code) == -1){
-            $(document).trigger('error', data.error);
-          }
+          hac_errorHandler(data);
         }
         }
         else {
         else {
           $.totalStorage('columns_' + databaseName + '_' + tableName, (data.columns ? "* " + data.columns.join(" ") : "*"));
           $.totalStorage('columns_' + databaseName + '_' + tableName, (data.columns ? "* " + data.columns.join(" ") : "*"));
@@ -142,9 +138,7 @@ function hac_getTables(databaseName, callback) {
             HIVE_AUTOCOMPLETE_GLOBAL_CALLBACK(data);
             HIVE_AUTOCOMPLETE_GLOBAL_CALLBACK(data);
           }
           }
           if (data.error) {
           if (data.error) {
-            if (typeof HIVE_AUTOCOMPLETE_FAILS_SILENTLY_ON == "undefined" || data.code == null || HIVE_AUTOCOMPLETE_FAILS_SILENTLY_ON.indexOf(data.code) == -1){
-              $(document).trigger('error', data.error);
-            }
+            hac_errorHandler(data);
           }
           }
           else {
           else {
             $.totalStorage('tables_' + databaseName, data.tables.join(" "));
             $.totalStorage('tables_' + databaseName, data.tables.join(" "));
@@ -162,9 +156,7 @@ function hac_getTables(databaseName, callback) {
           HIVE_AUTOCOMPLETE_GLOBAL_CALLBACK(data);
           HIVE_AUTOCOMPLETE_GLOBAL_CALLBACK(data);
         }
         }
         if (data.error) {
         if (data.error) {
-          if (typeof HIVE_AUTOCOMPLETE_FAILS_SILENTLY_ON == "undefined" || data.code == null || HIVE_AUTOCOMPLETE_FAILS_SILENTLY_ON.indexOf(data.code) == -1){
-            $(document).trigger('error', data.error);
-          }
+          hac_errorHandler(data);
         }
         }
         else {
         else {
           if (data.tables) {
           if (data.tables) {
@@ -177,3 +169,15 @@ function hac_getTables(databaseName, callback) {
     });
     });
   }
   }
 }
 }
+
+function hac_errorHandler(data) {
+  $(document).trigger('error.autocomplete');
+  if (typeof HIVE_AUTOCOMPLETE_FAILS_SILENTLY_ON == "undefined" || data.code == null || HIVE_AUTOCOMPLETE_FAILS_SILENTLY_ON.indexOf(data.code) == -1){
+    if (typeof HIVE_AUTOCOMPLETE_FAILS_QUIETLY_ON != "undefined" && HIVE_AUTOCOMPLETE_FAILS_QUIETLY_ON.indexOf(data.code) > -1){
+      $(document).trigger('info', data.error);
+    }
+    else {
+      $(document).trigger('error', data.error);
+    }
+  }
+}