#3151 query history and save query should be ssparated by project
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/18ac702a Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/18ac702a Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/18ac702a Branch: refs/heads/master Commit: 18ac702ade9e630d9baafc0b8c21920d1e44b05e Parents: 2ba22a9 Author: chenzhx <c...@apache.org> Authored: Sat Jan 6 17:43:58 2018 +0800 Committer: chenzhx <c...@apache.org> Committed: Sat Jan 6 17:43:58 2018 +0800 ---------------------------------------------------------------------- webapp/app/js/controllers/query.js | 31 ++++++++++++++++++++----------- webapp/app/partials/query/query.html | 12 ++++++------ 2 files changed, 26 insertions(+), 17 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/18ac702a/webapp/app/js/controllers/query.js ---------------------------------------------------------------------- diff --git a/webapp/app/js/controllers/query.js b/webapp/app/js/controllers/query.js index dea03f4..cac7ccb 100644 --- a/webapp/app/js/controllers/query.js +++ b/webapp/app/js/controllers/query.js @@ -48,13 +48,6 @@ KylinApp ]; $scope.statusFilter = null; $scope.savedQueries = null; - $scope.cachedQueries = storage.get("saved_queries"); - if (!$scope.cachedQueries) { - $scope.cachedQueries = []; - } - $scope.cachedQueries.curPage = 1; - $scope.cachedQueries.perPage = 3; - $scope.srcTables = []; $scope.srcColumns = []; @@ -130,7 +123,7 @@ KylinApp function getQuery(queries, query) { for (var i = 0; i < queries.length; i++) { - if (queries[i].sql == query.sql) { + if (queries[i].sql === query.sql && queries[i].project === query.project) { return queries[i]; } } @@ -338,7 +331,6 @@ KylinApp if ($scope.cachedQueries.length >= 99) { delete $scope.cachedQueries.splice(0, 1); - ; } $scope.cachedQueries.push({ @@ -351,13 +343,25 @@ KylinApp } $scope.listSavedQueries = function () { - QueryService.list({}, function (queries) { - $scope.savedQueries = queries; + QueryService.list({project: $scope.projectModel.selectedProject}, function (queries) { + $scope.savedQueries = queries $scope.savedQueries.curPage = 1; $scope.savedQueries.perPage = 3; }); } + $scope.listCachedQueries = function () { + $scope.cachedQueries = storage.get("saved_queries") + $scope.cachedFilterQueries = $scope.cachedQueries.filter(function (query) { + return query.project === $scope.projectModel.selectedProject + }); + if (!$scope.cachedFilterQueries) { + $scope.cachedFilterQueries = []; + } + $scope.cachedFilterQueries.curPage = 1; + $scope.cachedFilterQueries.perPage = 3; + } + $scope.removeSavedQuery = function (id) { QueryService.delete({subject_id: id}, function () { $scope.listSavedQueries(); @@ -404,6 +408,11 @@ KylinApp } } + $scope.$watch('projectModel.selectedProject', function (newValue, oldValue) { + $scope.listCachedQueries(); + $scope.listSavedQueries(); + }); + $scope.$on('$locationChangeStart', function (event, next, current) { var isExecuting = false; angular.forEach($scope.queries, function (query, index) { http://git-wip-us.apache.org/repos/asf/kylin/blob/18ac702a/webapp/app/partials/query/query.html ---------------------------------------------------------------------- diff --git a/webapp/app/partials/query/query.html b/webapp/app/partials/query/query.html index 87c43dc..e43f7c0 100644 --- a/webapp/app/partials/query/query.html +++ b/webapp/app/partials/query/query.html @@ -41,7 +41,7 @@ <a ng-click="mainPanel='saved';listSavedQueries()" style="cursor: pointer">Saved Queries</a> </li> <li class="{{mainPanel=='cached'?'active':''}}"> - <a ng-click="mainPanel='cached'" style="cursor: pointer">Query History</a> + <a ng-click="mainPanel='cached';listCachedQueries()" style="cursor: pointer">Query History</a> </li> </ul> @@ -138,12 +138,12 @@ </div> <div ng-show="mainPanel=='cached'"> - <div ng-if="cachedQueries.length==0"> + <div ng-if="cachedFilterQueries.length==0"> <div no-result text="No Query History."></div> </div> <table class="table table-hover table-striped list"> - <tr ng-repeat="query in cachedQueries | reverse track by $index" - ng-if="$index >= (cachedQueries.curPage-1)*cachedQueries.perPage && $index < cachedQueries.curPage*cachedQueries.perPage"> + <tr ng-repeat="query in cachedFilterQueries | reverse track by $index" + ng-if="$index >= (cachedFilterQueries.curPage-1)*cachedFilterQueries.perPage && $index < cachedFilterQueries.curPage*cachedFilterQueries.perPage"> <td> <span style="color: #808080;line-height: 25px">Queried At: {{query.savedAt}} </span><span ng-if="query.project">in Project: {{query.project}}</span> @@ -177,8 +177,8 @@ </td> </tr> </table> - <pagination total-items="cachedQueries.length" items-per-page="cachedQueries.perPage" max-size="5" - page="cachedQueries.curPage" class="pull-right"></pagination> + <pagination total-items="cachedFilterQueries.length" items-per-page="cachedFilterQueries.perPage" max-size="5" + page="cachedFilterQueries.curPage" class="pull-right"></pagination> </div> </div>