# ignite-843 Fixed save as.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/dc895c63 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/dc895c63 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/dc895c63 Branch: refs/heads/ignite-1121 Commit: dc895c63732525746674bf78c3c462f7cada4947 Parents: b9da5fa Author: Andrey <anovi...@gridgain.com> Authored: Thu Jul 16 13:43:47 2015 +0700 Committer: Andrey <anovi...@gridgain.com> Committed: Thu Jul 16 13:43:47 2015 +0700 ---------------------------------------------------------------------- .../nodejs/controllers/caches-controller.js | 20 ++++++++++---------- .../nodejs/controllers/clusters-controller.js | 20 ++++++++++---------- .../nodejs/controllers/summary-controller.js | 2 +- .../web-control-center/nodejs/routes/caches.js | 14 ++++++++++---- .../nodejs/routes/clusters.js | 14 ++++++++++---- .../nodejs/routes/metadata.js | 14 ++++++++++---- .../nodejs/routes/persistence.js | 14 ++++++++++---- .../web-control-center/nodejs/routes/summary.js | 10 +++++----- .../nodejs/views/configuration/summary.jade | 2 +- 9 files changed, 67 insertions(+), 43 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dc895c63/modules/web-control-center/nodejs/controllers/caches-controller.js ---------------------------------------------------------------------- diff --git a/modules/web-control-center/nodejs/controllers/caches-controller.js b/modules/web-control-center/nodejs/controllers/caches-controller.js index c724db9..b6cadcf 100644 --- a/modules/web-control-center/nodejs/controllers/caches-controller.js +++ b/modules/web-control-center/nodejs/controllers/caches-controller.js @@ -156,7 +156,7 @@ controlCenterModule.controller('cachesController', ['$scope', '$http', '$saveAs' }; // Check cache logical consistency. - $scope.checkItem = function (item) { + function validate(item) { var cacheStoreFactorySelected = item.cacheStoreFactory && item.cacheStoreFactory.kind; if (cacheStoreFactorySelected && !(item.readThrough || item.writeThrough)) { @@ -178,10 +178,10 @@ controlCenterModule.controller('cachesController', ['$scope', '$http', '$saveAs' } return true; - }; + } // Save cache into database. - $scope.saveItemToDb = function (item) { + function save(item) { $http.post('caches/save', item) .success(function (_id) { var idx = _.findIndex($scope.caches, function (cache) { @@ -203,26 +203,26 @@ controlCenterModule.controller('cachesController', ['$scope', '$http', '$saveAs' .error(function (errMsg) { commonFunctions.showError(errMsg); }); - }; + } // Save cache. $scope.saveItem = function () { var item = $scope.backupItem; - if ($scope.checkItem(item)) - $scope.saveItemToDb(item); + if (validate(item)) + save(item); }; // Save cache with new name. $scope.saveItemAs = function () { - var item = $scope.backupItem; - - if ($scope.checkItem(item)) + if (validate($scope.backupItem)) $saveAs.show($scope.backupItem.name).then(function (newName) { + var item = angular.copy($scope.backupItem); + item._id = undefined; item.name = newName; - $scope.saveItemToDb(item); + save(item); }); }; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dc895c63/modules/web-control-center/nodejs/controllers/clusters-controller.js ---------------------------------------------------------------------- diff --git a/modules/web-control-center/nodejs/controllers/clusters-controller.js b/modules/web-control-center/nodejs/controllers/clusters-controller.js index 94be0ad..af0e0d5 100644 --- a/modules/web-control-center/nodejs/controllers/clusters-controller.js +++ b/modules/web-control-center/nodejs/controllers/clusters-controller.js @@ -152,7 +152,7 @@ controlCenterModule.controller('clustersController', ['$scope', '$http', '$saveA }; // Check cluster logical consistency. - $scope.checkItem = function (item) { + function validate(item) { if (!item.swapSpaceSpi || !item.swapSpaceSpi.kind) { for (var i = 0; i < item.caches.length; i++) { var idx = $scope.indexOfCache(item.caches[i]); @@ -170,10 +170,10 @@ controlCenterModule.controller('clustersController', ['$scope', '$http', '$saveA } return true; - }; + } // Save cluster in database. - $scope.saveItemToDb = function (item) { + function save(item) { $http.post('clusters/save', item) .success(function (_id) { var idx = _.findIndex($scope.clusters, function (cluster) { @@ -195,26 +195,26 @@ controlCenterModule.controller('clustersController', ['$scope', '$http', '$saveA .error(function (errMsg) { commonFunctions.showError(errMsg); }); - }; + } // Save cluster. $scope.saveItem = function () { var item = $scope.backupItem; - if ($scope.checkItem(item)) - $scope.saveItemToDb(item); + if (validate(item)) + save(item); }; // Save cluster with new name. $scope.saveItemAs = function () { - var item = $scope.backupItem; - - if ($scope.checkItem(item)) + if (validate($scope.backupItem)) $saveAs.show($scope.backupItem.name).then(function (newName) { + var item = angular.copy($scope.backupItem); + item._id = undefined; item.name = newName; - $scope.saveItemToDb(item); + save(item); }); }; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dc895c63/modules/web-control-center/nodejs/controllers/summary-controller.js ---------------------------------------------------------------------- diff --git a/modules/web-control-center/nodejs/controllers/summary-controller.js b/modules/web-control-center/nodejs/controllers/summary-controller.js index 9da6f59..8679665 100644 --- a/modules/web-control-center/nodejs/controllers/summary-controller.js +++ b/modules/web-control-center/nodejs/controllers/summary-controller.js @@ -121,7 +121,7 @@ controlCenterModule.controller('summaryController', ['$scope', '$http', 'commonF }; $scope.generateClient = function() { - $http.post('summary/generator', {_id: $scope.selectedItem._id, javaClass: $scope.javaClassClient, clientTemplate: $scope.backupItem}) + $http.post('summary/generator', {_id: $scope.selectedItem._id, javaClass: $scope.javaClassClient, clientCache: $scope.backupItem}) .success(function (data) { $("<pre class='brush:xml'/>").text(data.xmlClient).appendTo($('#xmlClient').empty()); $("<pre class='brush:java'/>").text(data.javaClient).appendTo($('#javaClient').empty()); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dc895c63/modules/web-control-center/nodejs/routes/caches.js ---------------------------------------------------------------------- diff --git a/modules/web-control-center/nodejs/routes/caches.js b/modules/web-control-center/nodejs/routes/caches.js index 9e8b0d4..3fefd37 100644 --- a/modules/web-control-center/nodejs/routes/caches.js +++ b/modules/web-control-center/nodejs/routes/caches.js @@ -63,13 +63,19 @@ router.post('/save', function (req, res) { res.send(req.body._id); }); else { - var cache = new db.Cache(req.body); - - cache.save(function (err, cache) { + db.Cache.findOne({name: req.body.name}, function (err, cache) { if (err) return res.status(500).send(err.message); - res.send(cache._id); + if (cache) + return res.status(500).send('Cache with name: "' + cache.name + '" already exist.'); + + (new db.Cache(req.body)).save(function (err, cache) { + if (err) + return res.status(500).send(err.message); + + res.send(cache._id); + }); }); } }); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dc895c63/modules/web-control-center/nodejs/routes/clusters.js ---------------------------------------------------------------------- diff --git a/modules/web-control-center/nodejs/routes/clusters.js b/modules/web-control-center/nodejs/routes/clusters.js index a95f500..182130d 100644 --- a/modules/web-control-center/nodejs/routes/clusters.js +++ b/modules/web-control-center/nodejs/routes/clusters.js @@ -72,13 +72,19 @@ router.post('/save', function (req, res) { res.send(req.body._id); }); else { - var cluster = new db.Cluster(req.body); - - cluster.save(function (err, cluster) { + db.Cluster.findOne({name: req.body.name}, function (err, cluster) { if (err) return res.status(500).send(err.message); - res.send(cluster._id); + if (cluster) + return res.status(500).send('Cluster with name: "' + cluster.name + '" already exist.'); + + (new db.Cluster(req.body)).save(function (err, cluster) { + if (err) + return res.status(500).send(err.message); + + res.send(cluster._id); + }); }); } }); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dc895c63/modules/web-control-center/nodejs/routes/metadata.js ---------------------------------------------------------------------- diff --git a/modules/web-control-center/nodejs/routes/metadata.js b/modules/web-control-center/nodejs/routes/metadata.js index 97a4bb1..283f85e 100644 --- a/modules/web-control-center/nodejs/routes/metadata.js +++ b/modules/web-control-center/nodejs/routes/metadata.js @@ -63,13 +63,19 @@ router.post('/save', function (req, res) { res.send(req.body._id); }); else { - var metadata = new db.CacheTypeMetadata(req.body); - - metadata.save(function (err, metadata) { + db.CacheTypeMetadata.findOne({name: req.body.name}, function (err, metadata) { if (err) return res.status(500).send(err.message); - res.send(metadata._id); + if (metadata) + return res.status(500).send('Cache type metadata with name: "' + metadata.name + '" already exist.'); + + (new db.CacheTypeMetadata(req.body)).save(function (err, metadata) { + if (err) + return res.status(500).send(err.message); + + res.send(metadata._id); + }); }); } }); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dc895c63/modules/web-control-center/nodejs/routes/persistence.js ---------------------------------------------------------------------- diff --git a/modules/web-control-center/nodejs/routes/persistence.js b/modules/web-control-center/nodejs/routes/persistence.js index bf1ff8f..44d8b69 100644 --- a/modules/web-control-center/nodejs/routes/persistence.js +++ b/modules/web-control-center/nodejs/routes/persistence.js @@ -64,13 +64,19 @@ router.post('/save', function (req, res) { res.send(req.body._id); }); else { - var persistence = new db.Persistence(req.body); - - persistence.save(function (err, persistence) { + db.CacheTypeMetadata.findOne({name: req.body.name}, function (err, persistence) { if (err) return res.status(500).send(err.message); - res.send(persistence._id); + if (persistence) + return res.status(500).send('Persistence with name: "' + persistence.name + '" already exist.'); + + (new db.Persistence(req.body)).save(function (err, persistence) { + if (err) + return res.status(500).send(err.message); + + res.send(persistence._id); + }); }); } }); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dc895c63/modules/web-control-center/nodejs/routes/summary.js ---------------------------------------------------------------------- diff --git a/modules/web-control-center/nodejs/routes/summary.js b/modules/web-control-center/nodejs/routes/summary.js index 144184f..33af50f 100644 --- a/modules/web-control-center/nodejs/routes/summary.js +++ b/modules/web-control-center/nodejs/routes/summary.js @@ -37,12 +37,12 @@ router.post('/generator', function (req, res) { if (!cluster) return res.sendStatus(404); - var clientTemplate = req.body.clientTemplate; + var clientCache = req.body.clientCache; - if (clientTemplate) + if (clientCache) return res.send({ - xmlClient: generatorXml.generateClusterConfiguration(cluster, clientTemplate), - javaClient: generatorJava.generateClusterConfiguration(cluster, req.body.javaClass, clientTemplate) + xmlClient: generatorXml.generateClusterConfiguration(cluster, clientCache), + javaClient: generatorJava.generateClusterConfiguration(cluster, req.body.javaClass, clientCache) }); return res.send({ @@ -63,7 +63,7 @@ router.post('/download', function (req, res) { if (!cluster) return res.sendStatus(404); - var clientCache = req.body.clientTemplate; + var clientCache = req.body.clientCache; var archiver = require('archiver'); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dc895c63/modules/web-control-center/nodejs/views/configuration/summary.jade ---------------------------------------------------------------------- diff --git a/modules/web-control-center/nodejs/views/configuration/summary.jade b/modules/web-control-center/nodejs/views/configuration/summary.jade index f8128a7..93f27a8 100644 --- a/modules/web-control-center/nodejs/views/configuration/summary.jade +++ b/modules/web-control-center/nodejs/views/configuration/summary.jade @@ -107,7 +107,7 @@ block content form.panel-heading(role='tab' method='post' action='summary/download') input(type="hidden" name="_id" value="{{selectedItem._id}}") input(type="hidden" name="javaClass" value="{{javaClassClient}}") - input(type="hidden" name="clientTemplate" value="{{backupItem}}") + input(type="hidden" name="clientCache" value="{{backupItem}}") h3 a(bs-collapse-toggle) Client