You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by an...@apache.org on 2015/06/04 12:04:11 UTC
[2/2] incubator-ignite git commit: # ignite-843 Add cache selection
in cluster. Fixed dropdown.
# ignite-843 Add cache selection in cluster. Fixed dropdown.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/d4f63cf5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/d4f63cf5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/d4f63cf5
Branch: refs/heads/ignite-843
Commit: d4f63cf5d103ac4492235c61fae95b80560b3339
Parents: 9a545b1
Author: Andrey <an...@gridgain.com>
Authored: Thu Jun 4 17:04:17 2015 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Thu Jun 4 17:04:17 2015 +0700
----------------------------------------------------------------------
modules/webconfig/nodejs/db.js | 35 +++++++-------------
.../public/javascripts/controllers/clusters.js | 10 +++---
.../public/javascripts/controllers/common.js | 7 ++++
modules/webconfig/nodejs/routes/clusters.js | 17 +++++++---
modules/webconfig/nodejs/views/caches.jade | 2 +-
modules/webconfig/nodejs/views/clusters.jade | 7 ++--
.../nodejs/views/templates/select.jade | 10 +++---
7 files changed, 45 insertions(+), 43 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d4f63cf5/modules/webconfig/nodejs/db.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/db.js b/modules/webconfig/nodejs/db.js
index f84b322..929467e 100644
--- a/modules/webconfig/nodejs/db.js
+++ b/modules/webconfig/nodejs/db.js
@@ -52,6 +52,17 @@ var DiscoveryObj = {
addresses: [String]
};
+// Define cache model.
+var CacheSchema = new Schema({
+ space: { type: ObjectId, ref: 'Space' },
+ name: String,
+ mode: { type: String, enum: ['PARTITIONED', 'REPLICATED', 'LOCAL'] },
+ backups: Number,
+ atomicity: { type: String, enum: ['ATOMIC', 'TRANSACTIONAL'] }
+});
+
+exports.Cache = mongoose.model('Cache', CacheSchema);
+
// Define discovery model.
exports.Discovery = mongoose.model('Discovery', new Schema(DiscoveryObj));
@@ -62,6 +73,7 @@ var ClusterSchema = new Schema({
kind: { type: String, enum: ['Vm', 'Multicast', 'S3', 'Cloud', 'GoogleStorage', 'Jdbc', 'SharedFs'] },
addresses: [String]
},
+ caches: [{ type: ObjectId, ref: 'Cache' }],
pubPoolSize: Number,
sysPoolSize: Number,
mgmtPoolSize: Number,
@@ -71,29 +83,6 @@ var ClusterSchema = new Schema({
// Define cluster model.
exports.Cluster = mongoose.model('Cluster', ClusterSchema);
-ClusterSchema.pre('remove', function(next) {
- var discovery = false;
-
- if (this._doc && this._doc.discovery) discovery = {_id:this._doc.discovery._id};
-
- Discovery.remove(discovery, function(err) {
- if (err)
- next(err);
-
- next();
- });
-});
-
-// Define cache model.
-exports.Cache = mongoose.model('Cache', new Schema({
- space: { type: ObjectId, ref: 'Space' },
- name: String,
- mode: { type: String, enum: ['PARTITIONED', 'REPLICATED', 'LOCAL'] },
- backups: Number,
- atomicity: { type: String, enum: ['ATOMIC', 'TRANSACTIONAL'] },
- clusters: [{ type: ObjectId, ref: 'Cluster' }]
-}));
-
exports.upsert = function(model, data, cb){
if (data._id) {
var id = data._id;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d4f63cf5/modules/webconfig/nodejs/public/javascripts/controllers/clusters.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/public/javascripts/controllers/clusters.js b/modules/webconfig/nodejs/public/javascripts/controllers/clusters.js
index 50e6388..db9a22a 100644
--- a/modules/webconfig/nodejs/public/javascripts/controllers/clusters.js
+++ b/modules/webconfig/nodejs/public/javascripts/controllers/clusters.js
@@ -47,11 +47,10 @@ configuratorModule.controller('clustersController', ['$scope', '$modal', '$http'
{value: 'EVTS_IGFS', label: 'Igfs'}
];
- $scope.caches = [
- {value: '1', label: 'Cache1'},
- {value: '2', label: 'Cache2'},
- {value: '3', label: 'Cache3'},
- {value: '4', label: 'Cache4'}
+ $scope.cacheModes = [
+ {value: 'LOCAL', label: 'LOCAL'},
+ {value: 'REPLICATED', label: 'REPLICATED'},
+ {value: 'PARTITIONED', label: 'PARTITIONED'}
];
$scope.clusters = [];
@@ -71,6 +70,7 @@ configuratorModule.controller('clustersController', ['$scope', '$modal', '$http'
// When landing on the page, get clusters and show them.
$http.get('/rest/clusters')
.success(function(data) {
+ $scope.caches = data.caches;
$scope.spaces = data.spaces;
$scope.clusters = data.clusters;
});
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d4f63cf5/modules/webconfig/nodejs/public/javascripts/controllers/common.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/public/javascripts/controllers/common.js b/modules/webconfig/nodejs/public/javascripts/controllers/common.js
index 8457b86..b1fa0af 100644
--- a/modules/webconfig/nodejs/public/javascripts/controllers/common.js
+++ b/modules/webconfig/nodejs/public/javascripts/controllers/common.js
@@ -17,6 +17,13 @@
var configuratorModule = angular.module('ignite-web-configurator', ['smart-table', 'mgcrea.ngStrap']);
+configuratorModule.config(function($selectProvider) {
+ angular.extend($selectProvider.defaults, {
+ allText: 'Select All',
+ noneText: 'Clear All'
+ });
+});
+
// Decode name using map(value, label).
configuratorModule.filter('displayValue', function () {
return function (v, m, dflt) {
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d4f63cf5/modules/webconfig/nodejs/routes/clusters.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/routes/clusters.js b/modules/webconfig/nodejs/routes/clusters.js
index cd33d5e..b8f123b 100644
--- a/modules/webconfig/nodejs/routes/clusters.js
+++ b/modules/webconfig/nodejs/routes/clusters.js
@@ -32,16 +32,25 @@ function selectAll(req, res) {
if (err)
return res.status(500).send(err);
- var space_ids = spaces.map(function(value, index) {
+ var space_ids = spaces.map(function(value) {
return value._id;
});
- // Get all clusters for spaces.
- db.Cluster.find({space: {$in: space_ids}}, function (err, clusters) {
+ db.Cache.find({space: {$in: space_ids}}, '_id name', function (err, caches) {
if (err)
return res.status(500).send(err);
- res.json({spaces: spaces, clusters: clusters});
+ // Get all clusters for spaces.
+ db.Cluster.find({space: {$in: space_ids}}, function (err, clusters) {
+ if (err)
+ return res.status(500).send(err);
+
+ var cachesJson = caches.map(function(cache) {
+ return {value: cache._id, label: cache.name};
+ });
+
+ res.json({spaces: spaces, caches: cachesJson, clusters: clusters});
+ });
});
});
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d4f63cf5/modules/webconfig/nodejs/views/caches.jade
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/views/caches.jade b/modules/webconfig/nodejs/views/caches.jade
index 4da18ab..b0b7a71 100644
--- a/modules/webconfig/nodejs/views/caches.jade
+++ b/modules/webconfig/nodejs/views/caches.jade
@@ -33,7 +33,7 @@ block content
table.col-sm-12(st-table='rowCollection' st-safe-src='caches')
tbody
tr(ng-repeat='row in rowCollection')
- td.col-sm-6(ng-class="{active: row == selectedItem}")
+ td.col-sm-6(ng-class="{active: row._id == selectedItem._id}")
a(ng-click='selectItem(row)') {{$index + 1}}. {{row.name}}, {{row.mode | displayValue:modes:'Cache mode not set'}}, {{row.atomicity | displayValue:atomicities:'Cache atomicity not set'}}
.row.col-sm-12
hr
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d4f63cf5/modules/webconfig/nodejs/views/clusters.jade
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/views/clusters.jade b/modules/webconfig/nodejs/views/clusters.jade
index eed2029..63eaa90 100644
--- a/modules/webconfig/nodejs/views/clusters.jade
+++ b/modules/webconfig/nodejs/views/clusters.jade
@@ -33,11 +33,8 @@ block content
table.col-sm-12(st-table='rowCollection' st-safe-src='clusters')
tbody
tr(ng-repeat='row in rowCollection')
- td.col-sm-6(ng-class="{active: row == selectedItem}")
+ td.col-sm-6(ng-class="{active: row._id == selectedItem._id}")
a(ng-click='selectItem(row)') {{$index + 1}}. {{row.name}}, {{row.discovery.kind | displayValue:discoveries:'Discovery not set'}}
- //td
- // span(type='button' ng-click='removeItem(row)')
- // i(class=['fa', 'fa-remove'])
.row.col-sm-12
hr
form.form-horizontal(name='editForm' ng-if='backupItem')
@@ -62,7 +59,7 @@ block content
.settings-row
span.col-sm-2 Cache mode:
.col-sm-3
- input.form-control(type='text' ng-model='backupItem.atomic.cacheMode' placeholder='PARTITIONED')
+ button.form-control(style='text-align: left' ng-model='backupItem.atomic.cacheMode' data-template='/select' data-placeholder='PARTITIONED' bs-options='item.value as item.label for item in cacheModes' bs-select)
.settings-row
span.col-sm-2 Sequence reserve size:
.col-sm-3
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d4f63cf5/modules/webconfig/nodejs/views/templates/select.jade
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/views/templates/select.jade b/modules/webconfig/nodejs/views/templates/select.jade
index 7f93bfd..1f9ad9f 100644
--- a/modules/webconfig/nodejs/views/templates/select.jade
+++ b/modules/webconfig/nodejs/views/templates/select.jade
@@ -15,11 +15,11 @@
limitations under the License.
ul.select.dropdown-menu(tabindex='-1', ng-show='$isVisible()', role='select')
- li(ng-if='$showAllNoneButtons')
- .btn-group(style='margin-left: 5px')
- button.btn.btn-default.btn-xs(type='button', ng-click='$selectAll()') {{$allText}}
- button.btn.btn-default.btn-xs(type='button', ng-click='$selectNone()') {{$noneText}}
li(role='presentation', ng-repeat='match in $matches')
a(style='cursor: default;', role='menuitem', tabindex='-1', ng-click='$select($index, $event)')
i.pull-right(class='{{$iconCheckmark}}', ng-if='$isMultiple && $isActive($index)')
- span(ng-bind='match.label')
\ No newline at end of file
+ span(ng-bind='match.label')
+ li(ng-if='$showAllNoneButtons || $matches.length > 5')
+ hr(style='margin: 5px 0')
+ a(ng-click='$selectAll()') {{$allText}}
+ a(ng-click='$selectNone()') {{$noneText}}
\ No newline at end of file