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 <c...@apache.org> Authored: Fri Jan 26 14:29:23 2018 +0800 Committer: chenzhx <c...@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> 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> 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> 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>