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/18 06:15:29 UTC
ignite git commit: IGNITE-843 Implemented batch load for metadata.
Repository: ignite
Updated Branches:
refs/heads/ignite-843 e754fa8a9 -> d3d35bddf
IGNITE-843 Implemented batch load for metadata.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/d3d35bdd
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/d3d35bdd
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/d3d35bdd
Branch: refs/heads/ignite-843
Commit: d3d35bddf6aa15db64d9f7c3eb8d170134d13d62
Parents: e754fa8
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Fri Sep 18 11:15:21 2015 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Fri Sep 18 11:15:21 2015 +0700
----------------------------------------------------------------------
modules/control-center-web/src/main/js/app.js | 3 +
.../src/main/js/controllers/common-module.js | 77 ++++++++++---------
.../main/js/controllers/metadata-controller.js | 81 ++++++++++----------
.../main/js/views/templates/batch-confirm.jade | 12 +--
4 files changed, 91 insertions(+), 82 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/d3d35bdd/modules/control-center-web/src/main/js/app.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app.js b/modules/control-center-web/src/main/js/app.js
index 2fc69b3..4eb5edb 100644
--- a/modules/control-center-web/src/main/js/app.js
+++ b/modules/control-center-web/src/main/js/app.js
@@ -46,6 +46,9 @@ var app = express();
app.use(compress());
+app.use(bodyParser.json({limit: '50mb'}));
+app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));
+
// Views engine setup.
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
http://git-wip-us.apache.org/repos/asf/ignite/blob/d3d35bdd/modules/control-center-web/src/main/js/controllers/common-module.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/common-module.js b/modules/control-center-web/src/main/js/controllers/common-module.js
index 53e7cce..4b776a6 100644
--- a/modules/control-center-web/src/main/js/controllers/common-module.js
+++ b/modules/control-center-web/src/main/js/controllers/common-module.js
@@ -857,7 +857,7 @@ controlCenterModule.service('$common', [
controlCenterModule.service('$confirm', function ($modal, $rootScope, $q) {
var scope = $rootScope.$new();
- var deferred = $q.defer();
+ var deferred;
// Configure title of cancel button.
scope.cancelTitle = 'Cancel';
@@ -873,6 +873,8 @@ controlCenterModule.service('$confirm', function ($modal, $rootScope, $q) {
confirmModal.confirm = function (content) {
scope.content = content || 'Confirm deletion?';
+ deferred = $q.defer();
+
confirmModal.show();
return deferred.promise;
@@ -882,20 +884,16 @@ controlCenterModule.service('$confirm', function ($modal, $rootScope, $q) {
});
// Service for confirm or skip several steps.
-controlCenterModule.service('$stepConfirm', function ($rootScope, $modal, $q) {
+controlCenterModule.service('$confirmBatch', function ($rootScope, $modal, $q) {
var scope = $rootScope.$new();
- scope.ui = {batchConfirmApplyToAll: false};
-
var contentGenerator = function () {
return 'No content';
};
- var items = [];
+ var deferred;
- var curIx = 0;
-
- var deferred = $q.defer();
+ var stepConfirmModal = $modal({templateUrl: '/confirm/batch', scope: scope, placement: 'center', show: false});
function _done(cancel) {
if (cancel)
@@ -906,44 +904,49 @@ controlCenterModule.service('$stepConfirm', function ($rootScope, $modal, $q) {
stepConfirmModal.hide();
}
+ var items = [];
+ var curIx = 0;
+
function _nextElement(skip) {
items[curIx].skip = skip;
curIx++;
if (curIx < items.length)
- scope.content = contentGenerator(itemsToConfirm = [curIx]);
+ scope.batchConfirm.content = contentGenerator(items[curIx]);
else
_done();
}
- /**
- * Generate reject event on cancel for special event processing.
- */
- scope.batchConfirmCancel = function () {
- _done(true);
- };
-
- scope.batchConfirmSkip = function () {
- if (scope.ui.batchConfirmApplyToAll) {
- for (var i = curIx; i < itemsToConfirm.length; i++)
- itemsToConfirm[i].skip = true;
+ scope.batchConfirm = {
+ applyToAll: false,
+ cancel: function () {
+ _done(true);
+ },
+ skip: function () {
+ if (this.applyToAll) {
+ for (var i = curIx; i < items.length; i++)
+ items[i].skip = true;
- _done();
+ _done();
+ }
+ else
+ _nextElement(true);
+ },
+ overwrite: function () {
+ if (this.applyToAll)
+ _done();
+ else
+ _nextElement(false);
+ },
+ reset: function (itemsToConfirm) {
+ items = itemsToConfirm;
+ curIx = 0;
+ this.applyToAll = false;
+ this.content = (items && items.length > 0) ? contentGenerator(items[0]) : undefined;
}
- else
- _nextElement(true);
};
- scope.batchConfirmOverwrite = function () {
- if (scope.ui.batchConfirmApplyToAll)
- _done();
- else
- _nextElement(false);
- };
-
- var stepConfirmModal = $modal({templateUrl: '/confirm/batch', scope: scope, placement: 'center', show: false});
-
/**
* Show confirm all dialog.
*
@@ -953,11 +956,9 @@ controlCenterModule.service('$stepConfirm', function ($rootScope, $modal, $q) {
stepConfirmModal.confirm = function (confirmMessageFx, itemsToConfirm) {
contentGenerator = confirmMessageFx;
- items = itemsToConfirm;
-
- scope.content = contentGenerator(items[0]);
+ scope.batchConfirm.reset(itemsToConfirm);
- scope.ui.batchConfirmAll = false;
+ deferred = $q.defer();
stepConfirmModal.show();
@@ -971,7 +972,7 @@ controlCenterModule.service('$stepConfirm', function ($rootScope, $modal, $q) {
controlCenterModule.service('$copy', function ($modal, $rootScope, $q) {
var scope = $rootScope.$new();
- var deferred = $q.defer();
+ var deferred;
scope.ok = function (newName) {
deferred.resolve(newName);
@@ -984,6 +985,8 @@ controlCenterModule.service('$copy', function ($modal, $rootScope, $q) {
copyModal.confirm = function (oldName) {
scope.newName = oldName + '(1)';
+ deferred = $q.defer();
+
copyModal.show();
return deferred.promise;
http://git-wip-us.apache.org/repos/asf/ignite/blob/d3d35bdd/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 4ad7ec2..cb70fcf 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
@@ -17,8 +17,8 @@
// Controller for Metadata screen.
controlCenterModule.controller('metadataController', [
- '$scope', '$controller', '$http', '$modal', '$common', '$timeout', '$focus', '$confirm', '$copy', '$table', '$preview', '$stepConfirm', '$loading',
- function ($scope, $controller, $http, $modal, $common, $timeout, $focus, $confirm, $copy, $table, $preview, $stepConfirm, $loading) {
+ '$scope', '$controller', '$http', '$modal', '$common', '$timeout', '$focus', '$confirm', '$confirmBatch', '$copy', '$table', '$preview', '$loading',
+ function ($scope, $controller, $http, $modal, $common, $timeout, $focus, $confirm, $confirmBatch, $copy, $table, $preview, $loading) {
// Initialize the super class and extend it.
angular.extend(this, $controller('save-remove', {$scope: $scope}));
@@ -342,46 +342,50 @@ controlCenterModule.controller('metadataController', [
$scope.ui.packageName = $scope.user.email.replace('@', '.').split('.').reverse().join('.');
function _saveBatch(batch) {
- $loading.start('loadingMetadataFromDb');
+ if (batch && batch.length > 0) {
+ $loading.start('loadingMetadataFromDb');
- $http.post('metadata/save/batch', batch)
- .success(function (savedBatch) {
- var lastItem = undefined;
- var newItems = [];
+ $http.post('metadata/save/batch', batch)
+ .success(function (savedBatch) {
+ var lastItem = undefined;
+ var newItems = [];
- _.forEach(savedBatch, function (savedItem) {
- var idx = _.findIndex($scope.metadatas, function (meta) {
- return meta._id == savedItem._id;
- });
+ _.forEach(savedBatch, function (savedItem) {
+ var idx = _.findIndex($scope.metadatas, function (meta) {
+ return meta._id == savedItem._id;
+ });
- if (idx >= 0)
- $scope.metadatas[idx] = savedItem;
- else
- newItems.push(savedItem);
+ if (idx >= 0)
+ $scope.metadatas[idx] = savedItem;
+ else
+ newItems.push(savedItem);
- lastItem = savedItem;
- });
+ lastItem = savedItem;
+ });
- _.forEach(newItems, function (item) {
- $scope.metadatas.push(item);
- });
+ _.forEach(newItems, function (item) {
+ $scope.metadatas.push(item);
+ });
- if (!lastItem && $scope.metadatas.length > 0)
- lastItem = $scope.metadatas[0];
+ if (!lastItem && $scope.metadatas.length > 0)
+ lastItem = $scope.metadatas[0];
- $scope.selectItem(lastItem);
- $scope.ui.markPristine(1);
+ $scope.selectItem(lastItem);
+ $scope.ui.markPristine(1);
- $common.showInfo('Cache type metadata loaded from database.');
- })
- .error(function (errMsg) {
- $common.showError(errMsg);
- })
- .finally(function() {
- $loading.finish('loadingMetadataFromDb');
+ $common.showInfo('Cache type metadata loaded from database.');
+ })
+ .error(function (errMsg) {
+ $common.showError(errMsg);
+ })
+ .finally(function() {
+ $loading.finish('loadingMetadataFromDb');
- loadMetaModal.hide();
- });
+ loadMetaModal.hide();
+ });
+ }
+ else
+ loadMetaModal.hide();
}
function _saveMetadata() {
@@ -484,7 +488,8 @@ controlCenterModule.controller('metadataController', [
};
if ($common.isDefined(metaFound)) {
- meta = metaFound;
+ meta._id = metaFound._id;
+ meta.caches = metaFound.caches;
meta.confirm = true;
}
@@ -517,13 +522,11 @@ controlCenterModule.controller('metadataController', [
'</span>';
}
- var itemsToConfirm = _.filter(batch, function (item) {
- return item.confirm;
- });
+ var itemsToConfirm = _.filter(batch, function (item) { return item.confirm; });
if (itemsToConfirm.length > 0)
- $stepConfirm.confirm(overwriteMessage, itemsToConfirm).then(function () {
- _saveBatch(batch);
+ $confirmBatch.confirm(overwriteMessage, itemsToConfirm).then(function () {
+ _saveBatch(_.filter(batch, function (item) {return !item.skip}));
}, function () {
$common.showError('Cache type metadata loading interrupted by user.');
});
http://git-wip-us.apache.org/repos/asf/ignite/blob/d3d35bdd/modules/control-center-web/src/main/js/views/templates/batch-confirm.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/templates/batch-confirm.jade b/modules/control-center-web/src/main/js/views/templates/batch-confirm.jade
index 6e26b61..a73d374 100644
--- a/modules/control-center-web/src/main/js/views/templates/batch-confirm.jade
+++ b/modules/control-center-web/src/main/js/views/templates/batch-confirm.jade
@@ -20,13 +20,13 @@
.modal-header
button.close(type='button' ng-click='cancel()' aria-hidden='true') ×
h4.modal-title Confirmation
- .modal-body(ng-show='content')
- p(ng-bind-html='content' style='text-align: center;')
+ .modal-body(ng-show='batchConfirm.content')
+ p(ng-bind-html='batchConfirm.content' style='text-align: center')
.modal-footer
.checkbox.labelField
label
- input(type='checkbox' ng-model='ui.forAll')
+ input(type='checkbox' ng-model='batchConfirm.applyToAll')
| Apply to all
- button.btn.btn-default(id='batch-confirm-btn-cancel' type='button' ng-click='batchConfirmCancel()') Cancel
- button.btn.btn-default(id='batch-confirm-btn-cancel' type='button' ng-click='batchConfirmSkip()') Skip
- button.btn.btn-primary(id='batch-confirm-btn-overwrite' type='button' ng-click='batchConfirmOverwrite()') Overwrite
+ button.btn.btn-default(id='batch-confirm-btn-cancel' type='button' ng-click='batchConfirm.cCancel()') Cancel
+ button.btn.btn-default(id='batch-confirm-btn-cancel' type='button' ng-click='batchConfirm.skip()') Skip
+ button.btn.btn-primary(id='batch-confirm-btn-overwrite' type='button' ng-click='batchConfirm.overwrite()') Overwrite