You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ak...@apache.org on 2015/09/09 05:29:00 UTC

ignite git commit: IGNITE-843 WIP linked Caches with Metadata.

Repository: ignite
Updated Branches:
  refs/heads/ignite-843 211b86527 -> c53103bfc


IGNITE-843 WIP linked Caches with Metadata.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/c53103bf
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/c53103bf
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/c53103bf

Branch: refs/heads/ignite-843
Commit: c53103bfceb0b60c78b4ed5356505b4fbe6affd7
Parents: 211b865
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Wed Sep 9 10:29:18 2015 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Wed Sep 9 10:29:18 2015 +0700

----------------------------------------------------------------------
 .../main/js/controllers/caches-controller.js    | 21 ++++-
 .../main/js/controllers/metadata-controller.js  | 90 +++++++++++++-------
 .../src/main/js/routes/caches.js                |  1 -
 3 files changed, 78 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/c53103bf/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 4d5fb1c..6543f9c 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
@@ -305,8 +305,8 @@ controlCenterModule.controller('cachesController', [
                                 if (restoredSelectedItem && _.isEqual(restoredItem.clusters, restoredSelectedItem.clusters)) {
                                     restoredItem.clusters = [];
 
-                                    _.forEach(cache.clusters, function (cache) {
-                                        restoredItem.clusters.push(cache)
+                                    _.forEach(cache.clusters, function (cluster) {
+                                        restoredItem.clusters.push(cluster)
                                     });
                                 }
                                 else {
@@ -318,6 +318,23 @@ controlCenterModule.controller('cachesController', [
                                     });
                                 }
 
+                                // Metadatas not changed by user. We should take metadatas from server as they could be changed on Metadata screen.
+                                if (restoredSelectedItem && _.isEqual(restoredItem.metadatas, restoredSelectedItem.metadatas)) {
+                                    restoredItem.metadatas = [];
+
+                                    _.forEach(cache.metadatas, function (meta) {
+                                        restoredItem.metadatas.push(meta)
+                                    });
+                                }
+                                else {
+                                    // Metadatas changed by user. We need to remove deleted metadatas (if any).
+                                    restoredItem.metadatas = _.filter(restoredItem.metadatas, function (metaId) {
+                                        return _.findIndex($scope.metadatas, function (scopeMeta) {
+                                                return scopeMeta.value == metaId;
+                                            }) >= 0;
+                                    });
+                                }
+
                                 $scope.selectItem(cache, restoredItem, sessionStorage.cacheBackupItemChanged);
                             }
                             else

http://git-wip-us.apache.org/repos/asf/ignite/blob/c53103bf/modules/control-center-web/src/main/js/controllers/metadata-controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/metadata-controller.js b/modules/control-center-web/src/main/js/controllers/metadata-controller.js
index 2620f81..7cc3b1c 100644
--- a/modules/control-center-web/src/main/js/controllers/metadata-controller.js
+++ b/modules/control-center-web/src/main/js/controllers/metadata-controller.js
@@ -202,32 +202,6 @@ controlCenterModule.controller('metadataController', [
                     $scope.selectItem($scope.metadatas[0]);
             }
 
-            function setSelectedAndBackupItem(sel, backup, changed) {
-                function setSelectedAndBackupItem() {
-                    $table.tableReset();
-
-                    $scope.selectedItem = sel;
-
-                    _.forEach(previews, function(preview) {
-                        preview.attractAttention = false;
-                    });
-
-                    $scope.backupItem = backup;
-
-                    $timeout(function () {
-                        if (changed)
-                            $common.markChanged($scope.ui.inputForm, 'metadataBackupItemChanged');
-                        else
-                            $common.markPristine($scope.ui.inputForm, 'metadataBackupItemChanged');
-                    }, 50);
-                }
-
-                $common.confirmUnsavedChanges($confirm, $scope.ui.inputForm, setSelectedAndBackupItem);
-
-                $scope.ui.formTitle = $common.isDefined($scope.backupItem) && $scope.backupItem._id ?
-                    'Selected metadata: ' + $scope.backupItem.name : 'New metadata';
-            }
-
             $scope.selectAllSchemas = function () {
                 var allSelected = $scope.loadMeta.allSchemasSelected;
 
@@ -589,7 +563,28 @@ controlCenterModule.controller('metadataController', [
                             });
 
                             if (idx >= 0) {
-                                setSelectedAndBackupItem($scope.metadatas[idx], restoredItem, sessionStorage.metadataBackupItemChanged);
+                                var meta = $scope.metadatas[idx];
+
+                                var restoredSelectedItem = angular.fromJson(sessionStorage.metadataSelectedItem);
+
+                                // Caches not changed by user. We should take caches from server as they could be changed on Caches screen.
+                                if (restoredSelectedItem && _.isEqual(restoredItem.caches, restoredSelectedItem.caches)) {
+                                    restoredItem.caches = [];
+
+                                    _.forEach(meta.caches, function (cache) {
+                                        restoredItem.caches.push(cache)
+                                    });
+                                }
+                                else {
+                                    // Caches changed by user. We need to remove deleted caches (if any).
+                                    restoredItem.caches = _.filter(restoredItem.caches, function (cacheId) {
+                                        return _.findIndex($scope.caches, function (scopeCache) {
+                                                return scopeCache.value == cacheId;
+                                            }) >= 0;
+                                    });
+                                }
+
+                                $scope.selectItem(meta, restoredItem, sessionStorage.metadataBackupItemChanged);
                             }
                             else {
                                 sessionStorage.removeItem('metadataBackupItem');
@@ -598,7 +593,7 @@ controlCenterModule.controller('metadataController', [
                             }
                         }
                         else
-                            setSelectedAndBackupItem(undefined, restoredItem, sessionStorage.metadataBackupItemChanged);
+                            $scope.selectItem(undefined, restoredItem, sessionStorage.metadataBackupItemChanged);
                     }
                     else
                         selectFirstItem();
@@ -638,8 +633,41 @@ controlCenterModule.controller('metadataController', [
                     $common.showError(errMsg);
                 });
 
-            $scope.selectItem = function (item) {
-                setSelectedAndBackupItem(item, angular.copy(item));
+            $scope.selectItem = function (item, backup, changed) {
+                function selectItem() {
+                    $table.tableReset();
+
+                    $scope.selectedItem = item;
+
+                    if (item)
+                        sessionStorage.metadataSelectedItem = angular.toJson(item);
+                    else
+                        sessionStorage.removeItem('metadataSelectedItem');
+
+                    _.forEach(previews, function(preview) {
+                        preview.attractAttention = false;
+                    });
+
+                    if (backup)
+                        $scope.backupItem = backup;
+                    else if (item)
+                        $scope.backupItem = angular.copy(item);
+                    else
+                        $scope.backupItem = undefined;
+
+                    $timeout(function () {
+                        if (changed)
+                            $common.markChanged($scope.ui.inputForm, 'metadataBackupItemChanged');
+                        else
+                            $common.markPristine($scope.ui.inputForm, 'metadataBackupItemChanged');
+                    }, 50);
+                }
+
+                $common.confirmUnsavedChanges($confirm, $scope.ui.inputForm, selectItem);
+
+                $scope.ui.formTitle = $common.isDefined($scope.backupItem) && $scope.backupItem._id
+                    ? 'Selected metadata: ' + $scope.backupItem.name
+                    : 'New metadata';
             };
 
             // Add new metadata.
@@ -650,7 +678,7 @@ controlCenterModule.controller('metadataController', [
                     $common.ensureActivePanel($scope.panels, 'metadata', 'metadataName');
                 });
 
-                setSelectedAndBackupItem(undefined, {space: $scope.spaces[0]._id, caches: []});
+                $scope.selectItem(undefined, {space: $scope.spaces[0]._id, caches: []});
             };
 
             function queryConfigured(item) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/c53103bf/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 e9f7a44..0875be5 100644
--- a/modules/control-center-web/src/main/js/routes/caches.js
+++ b/modules/control-center-web/src/main/js/routes/caches.js
@@ -49,7 +49,6 @@ 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 (db.processed(err, res)) {
-
                                     _.forEach(caches, function (cache) {
                                         // Remove deleted clusters.
                                         cache.clusters = _.filter(cache.clusters, function (clusterId) {