You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2018/01/08 05:50:49 UTC

[3/6] kylin git commit: #3151 query history and save query should be ssparated by project

#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/KYLIN-2881-review
Commit: 18ac702ade9e630d9baafc0b8c21920d1e44b05e
Parents: 2ba22a9
Author: chenzhx <ch...@apache.org>
Authored: Sat Jan 6 17:43:58 2018 +0800
Committer: chenzhx <ch...@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>