From 0feb52c684a9325a1de38fcf4338c0e1df83fe75 Mon Sep 17 00:00:00 2001 From: Sam Gamgee Date: Mon, 21 Aug 2017 13:33:31 +0300 Subject: [PATCH] [FIX] Fixed a potential memory leak. --- csp/src/controller/filters.js | 62 +++++++++++++++++++---------------- csp/src/view/sql.html | 13 +++++--- package.json | 2 +- 3 files changed, 43 insertions(+), 34 deletions(-) diff --git a/csp/src/controller/filters.js b/csp/src/controller/filters.js index 32690e0..4bd98ea 100644 --- a/csp/src/controller/filters.js +++ b/csp/src/controller/filters.js @@ -60,6 +60,8 @@ } function checkDepends(cur_filter) { + var dep = false; //The result of the dependency test. + if (cur_filter.active) { cur_filter.dependsOn = ""; return; @@ -68,40 +70,42 @@ for (var i = 0; i < $scope.model.filters.length; i++) { if ($scope.model.filters[i].dependsOn) { if ($scope.model.filters[i].active && !$scope.model.filters[i].dependsOn.localeCompare(cur_filter.name)) { + dep = true; + break; + } + } + } - var instance = $uibModal.open({ - templateUrl: 'src/view/warningModal.html', - controller: 'warning', - ariaLabelledBy: 'modal-title', - ariaDescribedBy: 'modal-body', - animation: true, - size: 'sm', - resolve: { - filter: function () { - return cur_filter; - } - } - }); - - instance.result.then(function () { + if (dep) { + var instance = $uibModal.open({ + templateUrl: 'src/view/warningModal.html', + controller: 'warning', + ariaLabelledBy: 'modal-title', + ariaDescribedBy: 'modal-body', + animation: true, + size: 'sm', + resolve: { + filter: function () { + return cur_filter; + } + } + }); - for (var i = 0; i < $scope.model.filters.length; i++) { - if ($scope.model.filters[i].dependsOn === null) { - $scope.model.filters[i].dependsOn = ""; - } - } - }, function () { + instance.result.then(function () { - for (var i = 0; i < $scope.model.filters.length; i++) { - if ($scope.model.filters[i].dependsOn === null) { - $scope.model.filters[i].dependsOn = cur_filter.name; - } - } - }); + for (var i = 0; i < $scope.model.filters.length; i++) { + if ($scope.model.filters[i].dependsOn === null) { + $scope.model.filters[i].dependsOn = ""; + } + } + }, function () { - break; + for (var i = 0; i < $scope.model.filters.length; i++) { + if ($scope.model.filters[i].dependsOn === null) { + $scope.model.filters[i].dependsOn = cur_filter.name; + } } - } + }); } } diff --git a/csp/src/view/sql.html b/csp/src/view/sql.html index a72480d..9134f6e 100644 --- a/csp/src/view/sql.html +++ b/csp/src/view/sql.html @@ -3,10 +3,15 @@
- The first column of the query will be used as the KPI Series. +
+ The first column of the query will be used as the KPI Series. +
+
+ Please, don't use aliases in your SQL queries, otherwise the operation of dynamically generated filters may be incorrect. +
diff --git a/package.json b/package.json index bf95291..e79ece4 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "SQLKPI", "author": "Makarov S.D", - "version": "0.1.0", + "version": "0.1.1", "devDependencies": { "del": "^3.0.0", "gulp": "github:gulpjs/gulp#4.0",