Pārlūkot izejas kodu

[metastore] Use the new table stats for the columns table

Johan Ahlen 10 gadi atpakaļ
vecāks
revīzija
eacdfb2683

+ 13 - 3
apps/metastore/src/metastore/templates/describe_table.mako

@@ -74,7 +74,17 @@ ${ assist.assistPanel() }
         ## start at 0
         ## start at 0
         <td data-bind="text: $index()"></td>
         <td data-bind="text: $index()"></td>
         ## no stats for partition key type
         ## no stats for partition key type
-        <td><a href="javascript:void(0)"><i class="fa fa-bar-chart" title="${ _('View statistics') }"></i></a></td>
+        <td>
+         <span data-bind="component: { name: 'table-stats', params: {
+            statsVisible: true,
+            sourceType: 'hive',
+            databaseName: $root.activeDatabase(),
+            tableName: $root.activeTable(),
+            columnName: name,
+            fieldType: type,
+            assistHelper: $root.assistHelper
+          } }"></span>
+        </td>
         <td title="${ _("Scroll to the column") }">
         <td title="${ _("Scroll to the column") }">
           <a href="javascript:void(0)" class="column-selector" data-bind="text: name"></a>
           <a href="javascript:void(0)" class="column-selector" data-bind="text: name"></a>
         </td>
         </td>
@@ -455,7 +465,7 @@ ${ assist.assistPanel() }
       self.assistAvailable = ko.observable(true);
       self.assistAvailable = ko.observable(true);
       self.isLeftPanelVisible = ko.observable(self.assistAvailable() && $.totalStorage('spark_left_panel_visible') != null && $.totalStorage('spark_left_panel_visible'));
       self.isLeftPanelVisible = ko.observable(self.assistAvailable() && $.totalStorage('spark_left_panel_visible') != null && $.totalStorage('spark_left_panel_visible'));
 
 
-      self.activeDatabse = ko.observable('${database}');
+      self.activeDatabase = ko.observable('${database}');
       self.activeTable = ko.observable('${table.name}');
       self.activeTable = ko.observable('${table.name}');
 
 
       self.columns = ko.observableArray();
       self.columns = ko.observableArray();
@@ -465,7 +475,7 @@ ${ assist.assistPanel() }
 
 
       self.assistHelper.fetchFields({
       self.assistHelper.fetchFields({
         sourceType: 'hive',
         sourceType: 'hive',
-        databaseName: self.activeDatabse(),
+        databaseName: self.activeDatabase(),
         tableName: self.activeTable(),
         tableName: self.activeTable(),
         fields: [],
         fields: [],
         successCallback: function(data) {
         successCallback: function(data) {

+ 12 - 9
desktop/core/src/desktop/templates/table_stats.mako

@@ -84,11 +84,11 @@ from desktop.views import _ko
       </h3>
       </h3>
       <div class="popover-content">
       <div class="popover-content">
         <div class="alert" style="text-align: left; display:none" data-bind="visible: hasError">${ _('There is no analysis available') }</div>
         <div class="alert" style="text-align: left; display:none" data-bind="visible: hasError">${ _('There is no analysis available') }</div>
-        <!-- ko if: isComplexType && snippet.type() == 'impala' -->
+        <!-- ko if: isComplexType && sourceType == 'impala' -->
         <div class="alert" style="text-align: left">${ _('Column analysis is currently not supported for columns of type:') } <span data-bind="text: type"></span></div>
         <div class="alert" style="text-align: left">${ _('Column analysis is currently not supported for columns of type:') } <span data-bind="text: type"></span></div>
         <!-- /ko -->
         <!-- /ko -->
-        <!-- ko template: {if: column == null && ! hasError() && ! (isComplexType && snippet.type() == 'impala'), name: 'table-stats' } --><!-- /ko -->
-        <!-- ko template: {if: column != null && ! hasError() && ! (isComplexType && snippet.type() == 'impala'), name: 'column-stats' } --><!-- /ko -->
+        <!-- ko template: {if: column == null && ! hasError() && ! (isComplexType && sourceType == 'impala'), name: 'table-stats' } --><!-- /ko -->
+        <!-- ko template: {if: column != null && ! hasError() && ! (isComplexType && sourceType == 'impala'), name: 'column-stats' } --><!-- /ko -->
       </div>
       </div>
     </div>
     </div>
   </script>
   </script>
@@ -135,11 +135,15 @@ from desktop.views import _ko
           if ($targetElement.is(":visible")) {
           if ($targetElement.is(":visible")) {
             var newTop = $targetElement.offset().top - $(window).scrollTop();
             var newTop = $targetElement.offset().top - $(window).scrollTop();
             if (lastOffset.left != $targetElement.offset().left || lastOffset.top != newTop) {
             if (lastOffset.left != $targetElement.offset().left || lastOffset.top != newTop) {
-              lastOffset.left = $targetElement.offset().left;
-              lastOffset.top = newTop;
-              self.popoverTop(lastOffset.top - ($popover.length ? ($popover.outerHeight()-16) / 2 : 200));
-              self.popoverLeft(lastOffset.left + $targetElement.outerWidth());
-              if ((self.popoverTop()) < -130) {
+              lastOffset.left = $targetElement.offset().left + $targetElement.outerWidth();
+              if ($popover.length) {
+                lastOffset.top = newTop - ($popover.outerHeight() / 2) + ($targetElement.outerHeight() / 2)
+              } else {
+                lastOffset.top = newTop - 210;
+              }
+              self.popoverTop(lastOffset.top);
+              self.popoverLeft(lastOffset.left);
+              if (self.popoverTop() < -130) {
                 $popover.hide();
                 $popover.hide();
               } else {
               } else {
                 $popover.show();
                 $popover.show();
@@ -179,7 +183,6 @@ from desktop.views import _ko
             self.analysisStats(new TableStats({
             self.analysisStats(new TableStats({
               i18n: self.i18n,
               i18n: self.i18n,
               sourceType: self.params.sourceType,
               sourceType: self.params.sourceType,
-              snippet: self.params.snippet,
               databaseName: self.params.databaseName,
               databaseName: self.params.databaseName,
               tableName: self.params.tableName,
               tableName: self.params.tableName,
               columnName: self.params.columnName,
               columnName: self.params.columnName,