You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by ch...@apache.org on 2018/01/26 06:37:04 UTC

kylin git commit: KYLIN 3116 Fix cardinality caculate checkbox issue when loading tables

Repository: kylin
Updated Branches:
  refs/heads/master b4d5a142a -> b6320da48


KYLIN 3116 Fix cardinality caculate checkbox issue when loading tables


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/b6320da4
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/b6320da4
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/b6320da4

Branch: refs/heads/master
Commit: b6320da48a66dba06e49ee69d0a7e71ab3fef087
Parents: b4d5a14
Author: chenzhx <ch...@apache.org>
Authored: Fri Jan 26 14:29:23 2018 +0800
Committer: chenzhx <ch...@apache.org>
Committed: Fri Jan 26 14:37:01 2018 +0800

----------------------------------------------------------------------
 webapp/app/js/controllers/query.js              |  2 +-
 webapp/app/js/controllers/sourceMeta.js         | 41 +++++++++++++++++---
 .../app/partials/tables/source_table_tree.html  |  2 +-
 webapp/app/partials/tables/table_detail.html    |  2 +-
 webapp/app/partials/tables/table_load.html      | 17 +++++++-
 5 files changed, 54 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/b6320da4/webapp/app/js/controllers/query.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/controllers/query.js b/webapp/app/js/controllers/query.js
index e7190cc..e9ea614 100644
--- a/webapp/app/js/controllers/query.js
+++ b/webapp/app/js/controllers/query.js
@@ -353,7 +353,7 @@ KylinApp
         }
 
         $scope.listCachedQueries = function () {
-          $scope.cachedQueries = storage.get("saved_queries");
+          $scope.cachedQueries = storage.get("saved_queries") || [];
           $scope.cachedFilterQueries = $scope.cachedQueries.filter(function (query) {
             return query.project === $scope.projectModel.selectedProject;
           });

http://git-wip-us.apache.org/repos/asf/kylin/blob/b6320da4/webapp/app/js/controllers/sourceMeta.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/controllers/sourceMeta.js b/webapp/app/js/controllers/sourceMeta.js
index 4f341f0..7deef76 100755
--- a/webapp/app/js/controllers/sourceMeta.js
+++ b/webapp/app/js/controllers/sourceMeta.js
@@ -107,11 +107,34 @@ KylinApp
       });
     };
 
+    $scope.openReloadModal = function () {
+      $modal.open({
+        templateUrl: 'reloadTable.html',
+        controller: ModalInstanceCtrl,
+        backdrop : 'static',
+        resolve: {
+          tableNames: function () {
+            return $scope.tableModel.selectedSrcTable.database + '.'+ $scope.tableModel.selectedSrcTable.name;
+          },
+          projectName: function () {
+            return $scope.projectModel.selectedProject;
+          },
+          isCalculate: function () {
+            return $scope.isCalculate;
+          },
+          scope: function () {
+            return $scope;
+          }
+        }
+      });
+    };
+
     $scope.openTreeModal = function () {
       if(!$scope.projectModel.selectedProject){
         SweetAlert.swal('Oops...', "Please select a project.", 'info');
         return;
       }
+
       $modal.open({
         templateUrl: 'addHiveTableFromTree.html',
         controller: ModalInstanceCtrl,
@@ -132,10 +155,10 @@ KylinApp
       });
     };
 
-    $scope.reloadTable = function (tableName){
+    $scope.reloadTable = function (tableName, isCalculate){
       var delay = $q.defer();
       loadingRequest.show();
-      TableService.loadHiveTable({tableName: tableName, action: $scope.projectModel.selectedProject}, {calculate: $scope.isCalculate}, function (result) {
+      TableService.loadHiveTable({tableName: tableName, action: $scope.projectModel.selectedProject}, {calculate: isCalculate}, function (result) {
         var loadTableInfo = "";
         angular.forEach(result['result.loaded'], function (table) {
           loadTableInfo += "\n" + table;
@@ -169,7 +192,6 @@ KylinApp
     }
 
 
-
     $scope.unloadTable = function (tableName) {
       SweetAlert.swal({
             title: "",
@@ -222,8 +244,11 @@ KylinApp
 
     var ModalInstanceCtrl = function ($scope, $location, $modalInstance, tableNames, MessageService, projectName, isCalculate, scope, kylinConfig) {
       $scope.tableNames = "";
+      $scope.selectTable = tableNames;
       $scope.projectName = projectName;
-      $scope.isCalculate = isCalculate;
+      $scope.isCalculate = {
+        val: true
+      }
 
       $scope.cancel = function () {
         $modalInstance.dismiss('cancel');
@@ -387,7 +412,11 @@ KylinApp
         $scope.loadHive();
       }
 
-
+      $scope.confirmReload = function() {
+        scope.reloadTable($scope.selectTable, $scope.isCalculate.val).then(function() {
+          $scope.cancel();
+        })
+      }
 
 
       $scope.add = function () {
@@ -411,7 +440,7 @@ KylinApp
         }
 
         $scope.cancel();
-        scope.reloadTable($scope.tableNames).then(function(){
+        scope.reloadTable($scope.tableNames, $scope.isCalculate.val).then(function(){
              scope.aceSrcTbLoaded(true);
            });
       }

http://git-wip-us.apache.org/repos/asf/kylin/blob/b6320da4/webapp/app/partials/tables/source_table_tree.html
----------------------------------------------------------------------
diff --git a/webapp/app/partials/tables/source_table_tree.html b/webapp/app/partials/tables/source_table_tree.html
index b5c55d1..30cfc8b 100755
--- a/webapp/app/partials/tables/source_table_tree.html
+++ b/webapp/app/partials/tables/source_table_tree.html
@@ -63,7 +63,7 @@
       <button class="btn btn-xs btn-primary" ng-if="node.label==''&&node.id==65535" ng-click="showAllClicked($parentNode)">Show All</button>
       {{node.label}}
     </treecontrol>
-    <label> <input type="checkbox" ng-model="$parent.isCalculate" >Calculate column cardinality</label>
+    <label><input type="checkbox" ng-model="isCalculate.val" > Calculate column cardinality</label>
   </div>
 
   <div class="modal-footer">

http://git-wip-us.apache.org/repos/asf/kylin/blob/b6320da4/webapp/app/partials/tables/table_detail.html
----------------------------------------------------------------------
diff --git a/webapp/app/partials/tables/table_detail.html b/webapp/app/partials/tables/table_detail.html
index 9e28194..33fdf70 100644
--- a/webapp/app/partials/tables/table_detail.html
+++ b/webapp/app/partials/tables/table_detail.html
@@ -20,7 +20,7 @@
   <div class="col-xs-12" ng-show="tableModel.selectedSrcDb&&tableModel.selectedSrcTable.name">
     <h3 class="text-info">Table Schema:{{ tableModel.selectedSrcTable.name}}</h3>
     <a class="btn btn-primary pull-right" ng-if="userService.hasRole('ROLE_ADMIN') || hasPermission('project',projectModel, permissions.ADMINISTRATION.mask)" ng-click="unloadTable(tableModel.selectedSrcTable.database+'.'+tableModel.selectedSrcTable.name)" style="margin-left:10px;" ><span class="fa fa-remove"></span>&nbsp;Unload Table</a>
-    <a class="btn btn-success pull-right" ng-if="tableModel.selectedSrcTable.source_type==0&&(userService.hasRole('ROLE_ADMIN') || hasPermission('project',projectModel, permissions.ADMINISTRATION.mask))"  ng-click="reloadTable(tableModel.selectedSrcTable.database+'.'+tableModel.selectedSrcTable.name)" style="margin-left:10px;" ><span class="fa fa-download"></span>&nbsp;Reload Table</a>
+    <a class="btn btn-success pull-right" ng-if="tableModel.selectedSrcTable.source_type==0&&(userService.hasRole('ROLE_ADMIN') || hasPermission('project',projectModel, permissions.ADMINISTRATION.mask))"  ng-click="openReloadModal(tableModel.selectedSrcTable.database+'.'+tableModel.selectedSrcTable.name)" style="margin-left:10px;" ><span class="fa fa-download"></span>&nbsp;Reload Table</a>
     <div class="tabbable nav-tabs-custom">
       <ul class="nav nav-tabs">
         <li class="active">

http://git-wip-us.apache.org/repos/asf/kylin/blob/b6320da4/webapp/app/partials/tables/table_load.html
----------------------------------------------------------------------
diff --git a/webapp/app/partials/tables/table_load.html b/webapp/app/partials/tables/table_load.html
index c998ded..fe954ce 100644
--- a/webapp/app/partials/tables/table_load.html
+++ b/webapp/app/partials/tables/table_load.html
@@ -25,7 +25,7 @@
       <label for="tables"> Table Names:(Separate with comma)</label>
             <textarea ng-model="$parent.tableNames" class="form-control" id="tables"
                       placeholder="table1,table2  By default,system will choose 'Default' as database,you can specify database like this 'database.table'"></textarea>
-      <label> <input type="checkbox" ng-model="$parent.isCalculate" >Calculate column cardinality</label>
+      <label> <input type="checkbox" ng-model="isCalculate.val" > Calculate column cardinality</label>
     </div>
     <div class="modal-footer">
       <button class="btn btn-primary" ng-click="add()">Sync</button>
@@ -101,3 +101,18 @@
     </div>
   </div>
 </script>
+
+<script type="text/ng-template" id="reloadTable.html">
+  <div class="modal-header">
+    <h4>Reload Table Metadata</h4>
+  </div>
+  <div class="modal-body">
+    <span><strong>Project: {{ $parent.projectName!=null?$parent.projectName:'NULL'}}</strong></span><br/>
+    <label for="tables"> Are you sure to reload table {{selectTable}} ?</label><br/>
+    <label><input type="checkbox" ng-model="isCalculate.val" > Calculate column cardinality</label>
+  </div>
+  <div class="modal-footer">
+    <button class="btn btn-primary" ng-click="confirmReload()">Sync</button>
+    <button class="btn btn-primary" ng-click="cancel()">Cancel</button>
+  </div>
+</script>