Repository: incubator-ignite Updated Branches: refs/heads/ignite-843 e828e466c -> dc2cee3d7
IGNITE-843: Fixed special cases of linking clusters an caches. Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/a3d2f826 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/a3d2f826 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/a3d2f826 Branch: refs/heads/ignite-843 Commit: a3d2f826f650ad59cdbf0acbccb1ce7283e3797e Parents: e828e46 Author: AKuznetsov <akuznet...@gridgain.com> Authored: Tue Aug 18 15:15:04 2015 +0700 Committer: AKuznetsov <akuznet...@gridgain.com> Committed: Tue Aug 18 15:15:04 2015 +0700 ---------------------------------------------------------------------- .../main/js/controllers/caches-controller.js | 39 +++++++++++--------- .../main/js/controllers/clusters-controller.js | 33 ++++++++++------- .../src/main/js/routes/caches.js | 11 +++++- 3 files changed, 52 insertions(+), 31 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a3d2f826/modules/control-center-web/src/main/js/controllers/caches-controller.js ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/controllers/caches-controller.js b/modules/control-center-web/src/main/js/controllers/caches-controller.js index 6cd0727..604a39e 100644 --- a/modules/control-center-web/src/main/js/controllers/caches-controller.js +++ b/modules/control-center-web/src/main/js/controllers/caches-controller.js @@ -220,8 +220,7 @@ controlCenterModule.controller('cachesController', [ }); } - $scope.selectedItem = cache; - $scope.backupItem = restoredItem; + $scope.selectItem(cache, restoredItem); } else sessionStorage.removeItem('cacheBackupItem'); @@ -241,13 +240,22 @@ controlCenterModule.controller('cachesController', [ $common.showError(errMsg); }); - $scope.selectItem = function (item) { + $scope.selectItem = function (item, backup) { $table.tableReset(); $scope.selectedItem = item; - $scope.backupItem = angular.copy(item); - sessionStorage.cacheSelectedItem = angular.toJson(item); + if (backup) + $scope.backupItem = backup; + else if (item) + $scope.backupItem = angular.copy(item); + else + $scope.backupItem = undefined; + + if (item) + sessionStorage.cacheSelectedItem = angular.toJson(item); + else + sessionStorage.removeItem(cacheSelectedItem); }; // Add new cache. @@ -255,19 +263,18 @@ controlCenterModule.controller('cachesController', [ $table.tableReset(); $common.ensureActivePanel($scope.panels, 'general-data'); - $scope.selectedItem = undefined; - - $scope.backupItem = { + var newItem = { + space: $scope.spaces[0]._id, mode: 'PARTITIONED', atomicityMode: 'ATOMIC', readFromBackup: true, - copyOnRead: true + copyOnRead: true, + clusters: [], + queryMetadata: [], + spaceMetadata: [] }; - $scope.backupItem.space = $scope.spaces[0]._id; - $scope.backupItem.clusters = []; - $scope.backupItem.queryMetadata = []; - $scope.backupItem.spaceMetadata = []; + $scope.selectItem(undefined, newItem); }; // Check cache logical consistency. @@ -370,10 +377,8 @@ controlCenterModule.controller('cachesController', [ if (caches.length > 0) $scope.selectItem(caches[0]); - else { - $scope.selectedItem = undefined; - $scope.backupItem = undefined; - } + else + $scope.selectItem(undefined, undefined); } }) .error(function (errMsg) { http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a3d2f826/modules/control-center-web/src/main/js/controllers/clusters-controller.js ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/controllers/clusters-controller.js b/modules/control-center-web/src/main/js/controllers/clusters-controller.js index ef4bff5..9b47cd3 100644 --- a/modules/control-center-web/src/main/js/controllers/clusters-controller.js +++ b/modules/control-center-web/src/main/js/controllers/clusters-controller.js @@ -194,8 +194,7 @@ controlCenterModule.controller('clustersController', ['$scope', '$http', '$commo }); } - $scope.selectedItem = cluster; - $scope.backupItem = restoredItem; + $scope.selectItem(cluster, restoredItem); } else sessionStorage.removeItem('clusterBackupItem'); @@ -215,13 +214,23 @@ controlCenterModule.controller('clustersController', ['$scope', '$http', '$commo $common.showError(errMsg); }); - $scope.selectItem = function (item) { + $scope.selectItem = function (item, backup) { $table.tableReset(); $scope.selectedItem = item; - $scope.backupItem = angular.copy(item); - sessionStorage.clusterSelectedItem = angular.toJson(item); + if (backup) + $scope.backupItem = backup; + else if (item) + $scope.backupItem = angular.copy(item); + else + $scope.backupItem = undefined; + + + if (item) + sessionStorage.clusterSelectedItem = angular.toJson(item); + else + sessionStorage.removeItem('clusterSelectedItem'); }; // Add new cluster. @@ -229,11 +238,11 @@ controlCenterModule.controller('clustersController', ['$scope', '$http', '$commo $table.tableReset(); $common.ensureActivePanel($scope.panels, "general-data"); - $scope.selectedItem = undefined; + var newItem = angular.copy($scope.template); + newItem.caches = []; + newItem.space = $scope.spaces[0]._id; - $scope.backupItem = angular.copy($scope.template); - $scope.backupItem.caches = []; - $scope.backupItem.space = $scope.spaces[0]._id; + $scope.selectItem(undefined, newItem); }; $scope.indexOfCache = function (cacheId) { @@ -370,10 +379,8 @@ controlCenterModule.controller('clustersController', ['$scope', '$http', '$commo if (clusters.length > 0) $scope.selectItem(clusters[0]); - else { - $scope.selectedItem = undefined; - $scope.backupItem = undefined; - } + else + $scope.selectItem(undefined, undefined); } }) .error(function (errMsg) { http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a3d2f826/modules/control-center-web/src/main/js/routes/caches.js ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/routes/caches.js b/modules/control-center-web/src/main/js/routes/caches.js index a1fea66..9f3e255 100644 --- a/modules/control-center-web/src/main/js/routes/caches.js +++ b/modules/control-center-web/src/main/js/routes/caches.js @@ -59,14 +59,23 @@ router.post('/list', function (req, res) { // Get all caches for spaces. db.Cache.find({space: {$in: space_ids}}).sort('name').exec(function (err, caches) { if (_processed(err, res)) { - // Remove deleted metadata. + _.forEach(caches, function (cache) { + // Remove deleted clusters. + cache.clusters = _.filter(cache.clusters, function (clusterId) { + return _.findIndex(clusters, function (cluster) { + return cluster._id.equals(clusterId); + }) >= 0; + }); + + // Remove deleted metadata. cache.queryMetadata = _.filter(cache.queryMetadata, function (metaId) { return _.findIndex(metadatas, function (meta) { return meta._id.equals(metaId); }) >= 0; }); + // Remove deleted metadata. cache.storeMetadata = _.filter(cache.storeMetadata, function (metaId) { return _.findIndex(metadatas, function (meta) { return meta._id.equals(metaId);