浏览代码

HUE-3186 [metastore] There are no spinning spinners on load

Johan Ahlen 9 年之前
父节点
当前提交
5d477c9

+ 10 - 0
apps/metastore/src/metastore/static/metastore/js/metastore.ko.js

@@ -259,6 +259,8 @@
     self.loaded = ko.observable(false);
     self.loading = ko.observable(false);
 
+    self.loadingDetails = ko.observable(false);
+    self.loadingColumns = ko.observable(false);
     self.columns = ko.observableArray();
     self.favouriteColumns = ko.observableArray();
     self.samples = new MetastoreTableSamples({
@@ -311,12 +313,14 @@
 
     self.fetchFields = function () {
       var self = this;
+      self.loadingColumns(true);
       self.assistHelper.fetchFields({
         sourceType: "hive",
         databaseName: self.database.name,
         tableName: self.name,
         fields: [],
         successCallback: function (data) {
+          self.loadingColumns(false);
           self.columns($.map(data.extended_columns, function (column) {
             return new MetastoreColumn({
               extendedColumn: column,
@@ -324,17 +328,22 @@
             })
           }));
           self.favouriteColumns(self.columns().slice(0, 3));
+        },
+        errorCallback: function () {
+          self.loadingColumns(false);
         }
       })
     };
 
     self.fetchDetails = function () {
       var self = this;
+      self.loadingDetails(true);
       self.assistHelper.fetchTableDetails({
         sourceType: "hive",
         databaseName: self.database.name,
         tableName: self.name,
         successCallback: function (data) {
+          self.loadingDetails(false);
           if ((typeof data === 'object') && (data !== null)) {
             self.tableDetails(data);
             self.tableStats(data.details.stats);
@@ -357,6 +366,7 @@
         },
         errorCallback: function (data) {
           self.refreshingTableStats(false);
+          self.loadingDetails(false);
           self.loading(false);
         }
       })

+ 2 - 1
apps/metastore/src/metastore/templates/metastore.mako

@@ -216,6 +216,7 @@ ${ assist.assistPanel() }
 </script>
 
 <script type="text/html" id="metastore-table-properties">
+  <i data-bind="visible: loadingDetails" class="fa fa-spinner fa-spin fa-2x muted" style="display: none;"></i>
   <!-- ko with: tableDetails -->
   <h4>${ _('Properties') }</h4>
   <div class="row-fluid">
@@ -509,7 +510,7 @@ ${ assist.assistPanel() }
   </div>
 
   <div class="tile">
-    <h4>${ _('Columns') } (<span data-bind="text: columns().length"></span>)</h4>
+    <h4>${ _('Columns') } (<span data-bind="text: columns().length"></span>) <i data-bind="visible: loadingColumns" class="fa fa-spinner fa-spin" style="display: none;"></i></h4>
     <!-- ko with: favouriteColumns -->
     <!-- ko template: "metastore-columns-table" --><!-- /ko -->
     <!-- /ko -->