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);

Reply via email to