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 2016/12/23 09:34:50 UTC
[11/12] ignite git commit: Web console beta-7.
Web console beta-7.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/8e7c852b
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/8e7c852b
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/8e7c852b
Branch: refs/heads/master
Commit: 8e7c852b5ff4a3837f2f33f3d9adc0c2318dbdf8
Parents: 1e2469f
Author: Andrey Novikov <an...@gridgain.com>
Authored: Fri Dec 23 16:34:10 2016 +0700
Committer: Andrey Novikov <an...@gridgain.com>
Committed: Fri Dec 23 16:34:11 2016 +0700
----------------------------------------------------------------------
modules/web-console/backend/app/agent.js | 15 +
modules/web-console/backend/app/browser.js | 13 +
modules/web-console/backend/app/mongo.js | 24 +-
modules/web-console/backend/routes/demo.js | 17 +-
modules/web-console/backend/routes/profile.js | 3 +-
.../web-console/backend/services/notebooks.js | 14 +-
.../web-console/backend/services/sessions.js | 6 +-
modules/web-console/backend/services/spaces.js | 15 +
modules/web-console/frontend/app/app.js | 5 -
.../controllers/reset-password.controller.js | 14 +-
.../frontend/app/data/event-groups.json | 169 +
.../frontend/app/data/event-types.json | 169 -
.../frontend/app/data/pom-dependencies.json | 12 +-
.../ui-ace-docker/ui-ace-docker.controller.js | 2 +-
.../directives/ui-ace-docker/ui-ace-docker.jade | 2 +-
.../ui-ace-pojos/ui-ace-pojos.controller.js | 12 +-
.../ui-ace-pom/ui-ace-pom.controller.js | 4 +-
.../helpers/jade/form/form-field-dropdown.jade | 5 +-
.../helpers/jade/form/form-field-number.jade | 3 +-
.../app/helpers/jade/form/form-field-text.jade | 19 +-
.../frontend/app/helpers/jade/mixins.jade | 52 +-
.../frontend/app/modules/Demo/Demo.module.js | 6 +-
.../configuration/EventGroups.provider.js | 30 -
.../modules/configuration/Version.service.js | 6 +-
.../configuration/configuration.module.js | 63 +-
.../generator/AbstractTransformer.js | 17 +
.../modules/configuration/generator/Beans.js | 5 +
.../generator/ConfigurationGenerator.js | 2795 +++++++-------
.../configuration/generator/Custom.service.js | 23 +
.../configuration/generator/Docker.service.js | 4 +-
.../generator/JavaTransformer.service.js | 2318 +++++------
.../configuration/generator/Maven.service.js | 234 ++
.../configuration/generator/Pom.service.js | 233 --
.../generator/Properties.service.js | 2 +-
.../configuration/generator/Readme.service.js | 2 +-
.../generator/SharpTransformer.service.js | 437 ++-
.../generator/SpringTransformer.service.js | 497 ++-
.../defaults/Cache.platform.service.js | 56 +
.../generator/defaults/Cache.service.js | 131 +
.../defaults/Cluster.platform.service.js | 43 +
.../generator/defaults/Cluster.service.js | 289 ++
.../generator/defaults/Event-groups.service.js | 27 +
.../generator/defaults/IGFS.service.js | 64 +
.../defaults/cache.platform.provider.js | 60 -
.../generator/defaults/cache.provider.js | 137 -
.../defaults/cluster.platform.provider.js | 49 -
.../generator/defaults/cluster.provider.js | 293 --
.../generator/defaults/igfs.provider.js | 68 -
.../configuration/generator/generator-common.js | 625 ---
.../configuration/generator/generator-java.js | 3617 ------------------
.../generator/generator-optional.js | 25 -
.../configuration/generator/generator-spring.js | 2111 ----------
.../frontend/app/modules/sql/Notebook.data.js | 11 +-
.../app/modules/sql/Notebook.service.js | 2 +-
.../app/modules/sql/scan-filter-input.jade | 39 -
.../modules/sql/scan-filter-input.service.js | 51 -
.../frontend/app/modules/sql/sql.controller.js | 211 +-
.../frontend/app/modules/sql/sql.module.js | 2 -
.../app/modules/states/configuration.state.js | 2 +
.../configuration/caches/node-filter.jade | 2 +-
.../states/configuration/caches/query.jade | 3 +
.../states/configuration/caches/store.jade | 4 +-
.../configuration/clusters/checkpoint.jade | 11 +-
.../configuration/clusters/checkpoint/fs.jade | 8 +-
.../configuration/clusters/checkpoint/jdbc.jade | 8 +-
.../configuration/clusters/checkpoint/s3.jade | 25 +-
.../clusters/collision/custom.jade | 2 +-
.../clusters/collision/job-stealing.jade | 2 +-
.../configuration/clusters/deployment.jade | 129 +-
.../states/configuration/clusters/events.jade | 4 +-
.../states/configuration/clusters/failover.jade | 4 +-
.../clusters/general/discovery/zookeeper.jade | 2 +-
.../discovery/zookeeper/retrypolicy/custom.jade | 2 +-
.../configuration/clusters/load-balancing.jade | 23 +-
.../configuration/clusters/logger/custom.jade | 2 +-
.../states/configuration/clusters/ssl.jade | 2 +-
.../summary/summary-zipper.service.js | 37 +
.../configuration/summary/summary.controller.js | 103 +-
.../configuration/summary/summary.worker.js | 123 +
.../frontend/app/modules/user/Auth.service.js | 11 +-
.../frontend/app/services/JavaTypes.service.js | 13 +-
.../frontend/app/services/Messages.service.js | 17 +-
.../frontend/controllers/admin-controller.js | 211 +-
.../frontend/controllers/caches-controller.js | 22 +-
.../frontend/controllers/clusters-controller.js | 42 +-
.../frontend/controllers/domains-controller.js | 32 +-
.../frontend/controllers/igfs-controller.js | 20 +-
.../frontend/controllers/profile-controller.js | 3 +-
.../gulpfile.babel.js/webpack/common.js | 17 +-
.../webpack/environments/development.js | 14 +-
.../webpack/environments/production.js | 3 +-
.../webpack/plugins/progress.js | 82 -
modules/web-console/frontend/package.json | 178 +-
.../frontend/public/images/cache.png | Bin 23700 -> 24791 bytes
.../frontend/public/images/domains.png | Bin 23828 -> 22131 bytes
.../web-console/frontend/public/images/igfs.png | Bin 14307 -> 14139 bytes
.../frontend/public/images/query-chart.png | Bin 16637 -> 17142 bytes
.../frontend/public/images/query-metadata.png | Bin 32298 -> 39361 bytes
.../frontend/public/images/query-table.png | Bin 29189 -> 28065 bytes
.../frontend/public/images/summary.png | Bin 31997 -> 33650 bytes
.../stylesheets/_font-awesome-custom.scss | 23 +-
.../frontend/public/stylesheets/form-field.scss | 37 +
.../frontend/public/stylesheets/style.scss | 111 +-
.../frontend/test/unit/JavaTypes.test.js | 17 +-
.../frontend/test/unit/Version.test.js | 8 +-
.../views/configuration/domains-import.jade | 5 +-
.../frontend/views/configuration/summary.jade | 25 +-
.../frontend/views/settings/admin.jade | 85 +-
.../frontend/views/sql/notebook-new.jade | 2 +-
modules/web-console/frontend/views/sql/sql.jade | 235 +-
.../frontend/views/templates/alert.jade | 2 +-
.../frontend/views/templates/select.jade | 2 +-
112 files changed, 5577 insertions(+), 11296 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/backend/app/agent.js
----------------------------------------------------------------------
diff --git a/modules/web-console/backend/app/agent.js b/modules/web-console/backend/app/agent.js
index f74a3f2..791ea50 100644
--- a/modules/web-console/backend/app/agent.js
+++ b/modules/web-console/backend/app/agent.js
@@ -314,6 +314,21 @@ module.exports.factory = function(_, fs, path, JSZip, socketio, settings, mongo)
/**
* @param {Boolean} demo Is need run command on demo node.
+ * @param {Array.<String>} nids Node ids.
+ * @returns {Promise}
+ */
+ queryResetDetailMetrics(demo, nids) {
+ const cmd = new Command(demo, 'exe')
+ .addParam('name', 'org.apache.ignite.internal.visor.compute.VisorGatewayTask')
+ .addParam('p1', nids)
+ .addParam('p2', 'org.apache.ignite.internal.visor.cache.VisorCacheResetQueryDetailMetricsTask')
+ .addParam('p3', 'java.lang.Void');
+
+ return this.executeRest(cmd);
+ }
+
+ /**
+ * @param {Boolean} demo Is need run command on demo node.
* @param {String} cacheName Cache name.
* @returns {Promise}
*/
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/backend/app/browser.js
----------------------------------------------------------------------
diff --git a/modules/web-console/backend/app/browser.js b/modules/web-console/backend/app/browser.js
index 2710829..499d84d 100644
--- a/modules/web-console/backend/app/browser.js
+++ b/modules/web-console/backend/app/browser.js
@@ -162,6 +162,19 @@ module.exports.factory = (_, socketio, agentMgr, configure) => {
.catch((err) => cb(_errorToJson(err)));
});
+ // Collect cache query metrics and return result to browser.
+ socket.on('node:query:reset:metrics', (nids, cb) => {
+ agentMgr.findAgent(accountId())
+ .then((agent) => agent.queryResetDetailMetrics(demo, nids))
+ .then((data) => {
+ if (data.finished)
+ return cb(null, data.result);
+
+ cb(_errorToJson(data.error));
+ })
+ .catch((err) => cb(_errorToJson(err)));
+ });
+
// Return cache metadata from all nodes in grid.
socket.on('node:cache:metadata', (cacheName, cb) => {
agentMgr.findAgent(accountId())
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/backend/app/mongo.js
----------------------------------------------------------------------
diff --git a/modules/web-console/backend/app/mongo.js b/modules/web-console/backend/app/mongo.js
index 0f38eb2..58ab119 100644
--- a/modules/web-console/backend/app/mongo.js
+++ b/modules/web-console/backend/app/mongo.js
@@ -247,6 +247,7 @@ module.exports.factory = function(passportMongo, settings, pluginMongo, mongoose
longQueryWarningTimeout: Number,
sqlFunctionClasses: [String],
snapshotableIndex: Boolean,
+ queryDetailMetricsSize: Number,
statisticsEnabled: Boolean,
managementEnabled: Boolean,
readFromBackup: Boolean,
@@ -823,7 +824,24 @@ module.exports.factory = function(passportMongo, settings, pluginMongo, mongoose
Custom: {
className: String
}
- }]
+ }],
+ deploymentSpi: {
+ kind: {type: String, enum: ['URI', 'Local', 'Custom']},
+ URI: {
+ uriList: [String],
+ temporaryDirectoryPath: String,
+ scanners: [String],
+ listener: String,
+ checkMd5: Boolean,
+ encodeUri: Boolean
+ },
+ Local: {
+ listener: String
+ },
+ Custom: {
+ className: String
+ }
+ }
});
ClusterSchema.index({name: 1, space: 1}, {unique: true});
@@ -843,13 +861,15 @@ module.exports.factory = function(passportMongo, settings, pluginMongo, mongoose
result: {type: String, enum: ['none', 'table', 'bar', 'pie', 'line', 'area']},
pageSize: Number,
timeLineSpan: String,
+ maxPages: Number,
hideSystemColumns: Boolean,
cacheName: String,
chartsOptions: {barChart: {stacked: Boolean}, areaChart: {style: String}},
rate: {
value: Number,
unit: Number
- }
+ },
+ qryType: String
}]
});
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/backend/routes/demo.js
----------------------------------------------------------------------
diff --git a/modules/web-console/backend/routes/demo.js b/modules/web-console/backend/routes/demo.js
index ad4be6e..3f4166d 100644
--- a/modules/web-console/backend/routes/demo.js
+++ b/modules/web-console/backend/routes/demo.js
@@ -39,20 +39,17 @@ module.exports.factory = (_, express, settings, mongo, spacesService, errors) =>
router.post('/reset', (req, res) => {
spacesService.spaces(req.user._id, true)
.then((spaces) => {
- if (spaces.length) {
- const spaceIds = spaces.map((space) => space._id);
-
- return Promise.all([
- mongo.Cluster.remove({space: {$in: spaceIds}}).exec(),
- mongo.Cache.remove({space: {$in: spaceIds}}).exec(),
- mongo.DomainModel.remove({space: {$in: spaceIds}}).exec(),
- mongo.Igfs.remove({space: {$in: spaceIds}}).exec()
- ]).then(() => spaces[0]);
- }
+ const spaceIds = _.map(spaces, '_id');
+
+ return spacesService.cleanUp(spaceIds)
+ .then(() => mongo.Space.remove({_id: {$in: _.tail(spaceIds)}}).exec())
+ .then(() => _.head(spaces));
})
.catch((err) => {
if (err instanceof errors.MissingResourceException)
return spacesService.createDemoSpace(req.user._id);
+
+ throw err;
})
.then((space) => {
return Promise.all(_.map(clusters, (cluster) => {
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/backend/routes/profile.js
----------------------------------------------------------------------
diff --git a/modules/web-console/backend/routes/profile.js b/modules/web-console/backend/routes/profile.js
index 4d01cda..1d6fccb 100644
--- a/modules/web-console/backend/routes/profile.js
+++ b/modules/web-console/backend/routes/profile.js
@@ -45,7 +45,7 @@ module.exports.factory = function(_, express, mongo, usersService) {
usersService.save(req.body)
.then((user) => {
- const becomeUsed = req.session.viewedUser && user.admin;
+ const becomeUsed = req.session.viewedUser && req.user.admin;
if (becomeUsed) {
req.session.viewedUser = user;
@@ -64,6 +64,7 @@ module.exports.factory = function(_, express, mongo, usersService) {
});
});
})
+ .then(() => usersService.get(req.user, req.session.viewedUser))
.then(res.api.ok)
.catch(res.api.error);
});
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/backend/services/notebooks.js
----------------------------------------------------------------------
diff --git a/modules/web-console/backend/services/notebooks.js b/modules/web-console/backend/services/notebooks.js
index 8846d8e..9aa2c38 100644
--- a/modules/web-console/backend/services/notebooks.js
+++ b/modules/web-console/backend/services/notebooks.js
@@ -34,12 +34,14 @@ module.exports = {
module.exports.factory = (_, mongo, spacesService, errors) => {
/**
* Convert remove status operation to own presentation.
+ *
* @param {RemoveResult} result - The results of remove operation.
*/
const convertRemoveStatus = ({result}) => ({rowsAffected: result.n});
/**
- * Update existing notebook
+ * Update existing notebook.
+ *
* @param {Object} notebook - The notebook for updating
* @returns {Promise.<mongo.ObjectId>} that resolves cache id
*/
@@ -53,6 +55,7 @@ module.exports.factory = (_, mongo, spacesService, errors) => {
/**
* Create new notebook.
+ *
* @param {Object} notebook - The notebook for creation.
* @returns {Promise.<mongo.ObjectId>} that resolves cache id.
*/
@@ -67,6 +70,7 @@ module.exports.factory = (_, mongo, spacesService, errors) => {
class NotebooksService {
/**
* Create or update Notebook.
+ *
* @param {Object} notebook - The Notebook
* @returns {Promise.<mongo.ObjectId>} that resolves Notebook id of merge operation.
*/
@@ -78,16 +82,18 @@ module.exports.factory = (_, mongo, spacesService, errors) => {
}
/**
- * Get caches by spaces.
+ * Get notebooks by spaces.
+ *
* @param {mongo.ObjectId|String} spaceIds - The spaces ids that own caches.
- * @returns {Promise.<mongo.Cache[]>} - contains requested caches.
+ * @returns {Promise.<mongo.Notebook[]>} - contains requested caches.
*/
static listBySpaces(spaceIds) {
return mongo.Notebook.find({space: {$in: spaceIds}}).sort('name').lean().exec();
}
/**
- * Remove Notebook.
+ * Remove notebook.
+ *
* @param {mongo.ObjectId|String} notebookId - The Notebook id for remove.
* @returns {Promise.<{rowsAffected}>} - The number of affected rows.
*/
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/backend/services/sessions.js
----------------------------------------------------------------------
diff --git a/modules/web-console/backend/services/sessions.js b/modules/web-console/backend/services/sessions.js
index ff0e303..7f62a60 100644
--- a/modules/web-console/backend/services/sessions.js
+++ b/modules/web-console/backend/services/sessions.js
@@ -38,11 +38,11 @@ module.exports.factory = (_, mongo, errors) => {
* @param {mongo.ObjectId|String} viewedUserId - id of user to become.
*/
static become(session, viewedUserId) {
+ if (!session.req.user.admin)
+ return Promise.reject(new errors.IllegalAccessError('Became this user is not permitted. Only administrators can perform this actions.'));
+
return mongo.Account.findById(viewedUserId).lean().exec()
.then((viewedUser) => {
- if (!session.req.user.admin)
- throw new errors.IllegalAccessError('Became this user is not permitted. Only administrators can perform this actions.');
-
viewedUser.token = session.req.user.token;
session.viewedUser = viewedUser;
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/backend/services/spaces.js
----------------------------------------------------------------------
diff --git a/modules/web-console/backend/services/spaces.js b/modules/web-console/backend/services/spaces.js
index 863d57c..85f346e 100644
--- a/modules/web-console/backend/services/spaces.js
+++ b/modules/web-console/backend/services/spaces.js
@@ -68,6 +68,21 @@ module.exports.factory = (mongo, errors) => {
static createDemoSpace(userId) {
return new mongo.Space({name: 'Demo space', owner: userId, demo: true}).save();
}
+
+ /**
+ * Clean up spaces.
+ *
+ * @param {mongo.ObjectId|String} spaceIds - The space ids for clean up.
+ * @returns {Promise.<>}
+ */
+ static cleanUp(spaceIds) {
+ return Promise.all([
+ mongo.Cluster.remove({space: {$in: spaceIds}}).exec(),
+ mongo.Cache.remove({space: {$in: spaceIds}}).exec(),
+ mongo.DomainModel.remove({space: {$in: spaceIds}}).exec(),
+ mongo.Igfs.remove({space: {$in: spaceIds}}).exec()
+ ]);
+ }
}
return SpacesService;
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/app.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/app.js b/modules/web-console/frontend/app/app.js
index 3510743..4ecd9b5 100644
--- a/modules/web-console/frontend/app/app.js
+++ b/modules/web-console/frontend/app/app.js
@@ -99,11 +99,6 @@ import domainsValidation from './filters/domainsValidation.filter';
import duration from './filters/duration.filter';
import hasPojo from './filters/hasPojo.filter';
-// Generators
-import $generatorOptional from './modules/configuration/generator/generator-optional';
-
-window.$generatorOptional = $generatorOptional;
-
// Controllers
import admin from 'controllers/admin-controller';
import caches from 'controllers/caches-controller';
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/controllers/reset-password.controller.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/controllers/reset-password.controller.js b/modules/web-console/frontend/app/controllers/reset-password.controller.js
index da0c37b..f84a876 100644
--- a/modules/web-console/frontend/app/controllers/reset-password.controller.js
+++ b/modules/web-console/frontend/app/controllers/reset-password.controller.js
@@ -21,10 +21,10 @@ export default ['resetPassword', [
($scope, $modal, $http, $state, Messages, Focus) => {
if ($state.params.token) {
$http.post('/api/v1/password/validate/token', {token: $state.params.token})
- .success((res) => {
- $scope.email = res.email;
- $scope.token = res.token;
- $scope.error = res.error;
+ .then(({data}) => {
+ $scope.email = data.email;
+ $scope.token = data.token;
+ $scope.error = data.error;
if ($scope.token && !$scope.error)
Focus.move('user_password');
@@ -34,16 +34,16 @@ export default ['resetPassword', [
// Try to reset user password for provided token.
$scope.resetPassword = (reset_info) => {
$http.post('/api/v1/password/reset', reset_info)
- .success(() => {
+ .then(() => {
$state.go('signin');
Messages.showInfo('Password successfully changed');
})
- .error((err, state) => {
+ .catch(({data, state}) => {
if (state === 503)
$state.go('signin');
- Messages.showError(err);
+ Messages.showError(data);
});
};
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/data/event-groups.json
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/data/event-groups.json b/modules/web-console/frontend/app/data/event-groups.json
new file mode 100644
index 0000000..8d0c878
--- /dev/null
+++ b/modules/web-console/frontend/app/data/event-groups.json
@@ -0,0 +1,169 @@
+[
+ {
+ "label": "EVTS_CHECKPOINT",
+ "value": "EVTS_CHECKPOINT",
+ "class": "org.apache.ignite.events.EventType",
+ "events": [
+ "EVT_CHECKPOINT_SAVED",
+ "EVT_CHECKPOINT_LOADED",
+ "EVT_CHECKPOINT_REMOVED"
+ ]
+ },
+ {
+ "label": "EVTS_DEPLOYMENT",
+ "value": "EVTS_DEPLOYMENT",
+ "class": "org.apache.ignite.events.EventType",
+ "events": [
+ "EVT_CLASS_DEPLOYED",
+ "EVT_CLASS_UNDEPLOYED",
+ "EVT_CLASS_DEPLOY_FAILED",
+ "EVT_TASK_DEPLOYED",
+ "EVT_TASK_UNDEPLOYED",
+ "EVT_TASK_DEPLOY_FAILED"
+ ]
+ },
+ {
+ "label": "EVTS_ERROR",
+ "value": "EVTS_ERROR",
+ "class": "org.apache.ignite.events.EventType",
+ "events": [
+ "EVT_JOB_TIMEDOUT",
+ "EVT_JOB_FAILED",
+ "EVT_JOB_FAILED_OVER",
+ "EVT_JOB_REJECTED",
+ "EVT_JOB_CANCELLED",
+ "EVT_TASK_TIMEDOUT",
+ "EVT_TASK_FAILED",
+ "EVT_CLASS_DEPLOY_FAILED",
+ "EVT_TASK_DEPLOY_FAILED",
+ "EVT_TASK_DEPLOYED",
+ "EVT_TASK_UNDEPLOYED",
+ "EVT_CACHE_REBALANCE_STARTED",
+ "EVT_CACHE_REBALANCE_STOPPED"
+ ]
+ },
+ {
+ "label": "EVTS_DISCOVERY",
+ "value": "EVTS_DISCOVERY",
+ "class": "org.apache.ignite.events.EventType",
+ "events": [
+ "EVT_NODE_JOINED",
+ "EVT_NODE_LEFT",
+ "EVT_NODE_FAILED",
+ "EVT_NODE_SEGMENTED",
+ "EVT_CLIENT_NODE_DISCONNECTED",
+ "EVT_CLIENT_NODE_RECONNECTED"
+ ]
+ },
+ {
+ "label": "EVTS_JOB_EXECUTION",
+ "value": "EVTS_JOB_EXECUTION",
+ "class": "org.apache.ignite.events.EventType",
+ "events": [
+ "EVT_JOB_MAPPED",
+ "EVT_JOB_RESULTED",
+ "EVT_JOB_FAILED_OVER",
+ "EVT_JOB_STARTED",
+ "EVT_JOB_FINISHED",
+ "EVT_JOB_TIMEDOUT",
+ "EVT_JOB_REJECTED",
+ "EVT_JOB_FAILED",
+ "EVT_JOB_QUEUED",
+ "EVT_JOB_CANCELLED"
+ ]
+ },
+ {
+ "label": "EVTS_TASK_EXECUTION",
+ "value": "EVTS_TASK_EXECUTION",
+ "class": "org.apache.ignite.events.EventType",
+ "events": [
+ "EVT_TASK_STARTED",
+ "EVT_TASK_FINISHED",
+ "EVT_TASK_FAILED",
+ "EVT_TASK_TIMEDOUT",
+ "EVT_TASK_SESSION_ATTR_SET",
+ "EVT_TASK_REDUCED"
+ ]
+ },
+ {
+ "label": "EVTS_CACHE",
+ "value": "EVTS_CACHE",
+ "class": "org.apache.ignite.events.EventType",
+ "events": [
+ "EVT_CACHE_ENTRY_CREATED",
+ "EVT_CACHE_ENTRY_DESTROYED",
+ "EVT_CACHE_OBJECT_PUT",
+ "EVT_CACHE_OBJECT_READ",
+ "EVT_CACHE_OBJECT_REMOVED",
+ "EVT_CACHE_OBJECT_LOCKED",
+ "EVT_CACHE_OBJECT_UNLOCKED",
+ "EVT_CACHE_OBJECT_SWAPPED",
+ "EVT_CACHE_OBJECT_UNSWAPPED",
+ "EVT_CACHE_OBJECT_EXPIRED"
+ ]
+ },
+ {
+ "label": "EVTS_CACHE_REBALANCE",
+ "value": "EVTS_CACHE_REBALANCE",
+ "class": "org.apache.ignite.events.EventType",
+ "events": [
+ "EVT_CACHE_REBALANCE_STARTED",
+ "EVT_CACHE_REBALANCE_STOPPED",
+ "EVT_CACHE_REBALANCE_PART_LOADED",
+ "EVT_CACHE_REBALANCE_PART_UNLOADED",
+ "EVT_CACHE_REBALANCE_OBJECT_LOADED",
+ "EVT_CACHE_REBALANCE_OBJECT_UNLOADED",
+ "EVT_CACHE_REBALANCE_PART_DATA_LOST"
+ ]
+ },
+ {
+ "label": "EVTS_CACHE_LIFECYCLE",
+ "value": "EVTS_CACHE_LIFECYCLE",
+ "class": "org.apache.ignite.events.EventType",
+ "events": [
+ "EVT_CACHE_STARTED",
+ "EVT_CACHE_STOPPED",
+ "EVT_CACHE_NODES_LEFT"
+ ]
+ },
+ {
+ "label": "EVTS_CACHE_QUERY",
+ "value": "EVTS_CACHE_QUERY",
+ "class": "org.apache.ignite.events.EventType",
+ "events": [
+ "EVT_CACHE_QUERY_EXECUTED",
+ "EVT_CACHE_QUERY_OBJECT_READ"
+ ]
+ },
+ {
+ "label": "EVTS_SWAPSPACE",
+ "value": "EVTS_SWAPSPACE",
+ "class": "org.apache.ignite.events.EventType",
+ "events": [
+ "EVT_SWAP_SPACE_CLEARED",
+ "EVT_SWAP_SPACE_DATA_REMOVED",
+ "EVT_SWAP_SPACE_DATA_READ",
+ "EVT_SWAP_SPACE_DATA_STORED",
+ "EVT_SWAP_SPACE_DATA_EVICTED"
+ ]
+ },
+ {
+ "label": "EVTS_IGFS",
+ "value": "EVTS_IGFS",
+ "class": "org.apache.ignite.events.EventType",
+ "events": [
+ "EVT_IGFS_FILE_CREATED",
+ "EVT_IGFS_FILE_RENAMED",
+ "EVT_IGFS_FILE_DELETED",
+ "EVT_IGFS_FILE_OPENED_READ",
+ "EVT_IGFS_FILE_OPENED_WRITE",
+ "EVT_IGFS_FILE_CLOSED_WRITE",
+ "EVT_IGFS_FILE_CLOSED_READ",
+ "EVT_IGFS_FILE_PURGED",
+ "EVT_IGFS_META_UPDATED",
+ "EVT_IGFS_DIR_CREATED",
+ "EVT_IGFS_DIR_RENAMED",
+ "EVT_IGFS_DIR_DELETED"
+ ]
+ }
+]
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/data/event-types.json
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/data/event-types.json b/modules/web-console/frontend/app/data/event-types.json
deleted file mode 100644
index 8d0c878..0000000
--- a/modules/web-console/frontend/app/data/event-types.json
+++ /dev/null
@@ -1,169 +0,0 @@
-[
- {
- "label": "EVTS_CHECKPOINT",
- "value": "EVTS_CHECKPOINT",
- "class": "org.apache.ignite.events.EventType",
- "events": [
- "EVT_CHECKPOINT_SAVED",
- "EVT_CHECKPOINT_LOADED",
- "EVT_CHECKPOINT_REMOVED"
- ]
- },
- {
- "label": "EVTS_DEPLOYMENT",
- "value": "EVTS_DEPLOYMENT",
- "class": "org.apache.ignite.events.EventType",
- "events": [
- "EVT_CLASS_DEPLOYED",
- "EVT_CLASS_UNDEPLOYED",
- "EVT_CLASS_DEPLOY_FAILED",
- "EVT_TASK_DEPLOYED",
- "EVT_TASK_UNDEPLOYED",
- "EVT_TASK_DEPLOY_FAILED"
- ]
- },
- {
- "label": "EVTS_ERROR",
- "value": "EVTS_ERROR",
- "class": "org.apache.ignite.events.EventType",
- "events": [
- "EVT_JOB_TIMEDOUT",
- "EVT_JOB_FAILED",
- "EVT_JOB_FAILED_OVER",
- "EVT_JOB_REJECTED",
- "EVT_JOB_CANCELLED",
- "EVT_TASK_TIMEDOUT",
- "EVT_TASK_FAILED",
- "EVT_CLASS_DEPLOY_FAILED",
- "EVT_TASK_DEPLOY_FAILED",
- "EVT_TASK_DEPLOYED",
- "EVT_TASK_UNDEPLOYED",
- "EVT_CACHE_REBALANCE_STARTED",
- "EVT_CACHE_REBALANCE_STOPPED"
- ]
- },
- {
- "label": "EVTS_DISCOVERY",
- "value": "EVTS_DISCOVERY",
- "class": "org.apache.ignite.events.EventType",
- "events": [
- "EVT_NODE_JOINED",
- "EVT_NODE_LEFT",
- "EVT_NODE_FAILED",
- "EVT_NODE_SEGMENTED",
- "EVT_CLIENT_NODE_DISCONNECTED",
- "EVT_CLIENT_NODE_RECONNECTED"
- ]
- },
- {
- "label": "EVTS_JOB_EXECUTION",
- "value": "EVTS_JOB_EXECUTION",
- "class": "org.apache.ignite.events.EventType",
- "events": [
- "EVT_JOB_MAPPED",
- "EVT_JOB_RESULTED",
- "EVT_JOB_FAILED_OVER",
- "EVT_JOB_STARTED",
- "EVT_JOB_FINISHED",
- "EVT_JOB_TIMEDOUT",
- "EVT_JOB_REJECTED",
- "EVT_JOB_FAILED",
- "EVT_JOB_QUEUED",
- "EVT_JOB_CANCELLED"
- ]
- },
- {
- "label": "EVTS_TASK_EXECUTION",
- "value": "EVTS_TASK_EXECUTION",
- "class": "org.apache.ignite.events.EventType",
- "events": [
- "EVT_TASK_STARTED",
- "EVT_TASK_FINISHED",
- "EVT_TASK_FAILED",
- "EVT_TASK_TIMEDOUT",
- "EVT_TASK_SESSION_ATTR_SET",
- "EVT_TASK_REDUCED"
- ]
- },
- {
- "label": "EVTS_CACHE",
- "value": "EVTS_CACHE",
- "class": "org.apache.ignite.events.EventType",
- "events": [
- "EVT_CACHE_ENTRY_CREATED",
- "EVT_CACHE_ENTRY_DESTROYED",
- "EVT_CACHE_OBJECT_PUT",
- "EVT_CACHE_OBJECT_READ",
- "EVT_CACHE_OBJECT_REMOVED",
- "EVT_CACHE_OBJECT_LOCKED",
- "EVT_CACHE_OBJECT_UNLOCKED",
- "EVT_CACHE_OBJECT_SWAPPED",
- "EVT_CACHE_OBJECT_UNSWAPPED",
- "EVT_CACHE_OBJECT_EXPIRED"
- ]
- },
- {
- "label": "EVTS_CACHE_REBALANCE",
- "value": "EVTS_CACHE_REBALANCE",
- "class": "org.apache.ignite.events.EventType",
- "events": [
- "EVT_CACHE_REBALANCE_STARTED",
- "EVT_CACHE_REBALANCE_STOPPED",
- "EVT_CACHE_REBALANCE_PART_LOADED",
- "EVT_CACHE_REBALANCE_PART_UNLOADED",
- "EVT_CACHE_REBALANCE_OBJECT_LOADED",
- "EVT_CACHE_REBALANCE_OBJECT_UNLOADED",
- "EVT_CACHE_REBALANCE_PART_DATA_LOST"
- ]
- },
- {
- "label": "EVTS_CACHE_LIFECYCLE",
- "value": "EVTS_CACHE_LIFECYCLE",
- "class": "org.apache.ignite.events.EventType",
- "events": [
- "EVT_CACHE_STARTED",
- "EVT_CACHE_STOPPED",
- "EVT_CACHE_NODES_LEFT"
- ]
- },
- {
- "label": "EVTS_CACHE_QUERY",
- "value": "EVTS_CACHE_QUERY",
- "class": "org.apache.ignite.events.EventType",
- "events": [
- "EVT_CACHE_QUERY_EXECUTED",
- "EVT_CACHE_QUERY_OBJECT_READ"
- ]
- },
- {
- "label": "EVTS_SWAPSPACE",
- "value": "EVTS_SWAPSPACE",
- "class": "org.apache.ignite.events.EventType",
- "events": [
- "EVT_SWAP_SPACE_CLEARED",
- "EVT_SWAP_SPACE_DATA_REMOVED",
- "EVT_SWAP_SPACE_DATA_READ",
- "EVT_SWAP_SPACE_DATA_STORED",
- "EVT_SWAP_SPACE_DATA_EVICTED"
- ]
- },
- {
- "label": "EVTS_IGFS",
- "value": "EVTS_IGFS",
- "class": "org.apache.ignite.events.EventType",
- "events": [
- "EVT_IGFS_FILE_CREATED",
- "EVT_IGFS_FILE_RENAMED",
- "EVT_IGFS_FILE_DELETED",
- "EVT_IGFS_FILE_OPENED_READ",
- "EVT_IGFS_FILE_OPENED_WRITE",
- "EVT_IGFS_FILE_CLOSED_WRITE",
- "EVT_IGFS_FILE_CLOSED_READ",
- "EVT_IGFS_FILE_PURGED",
- "EVT_IGFS_META_UPDATED",
- "EVT_IGFS_DIR_CREATED",
- "EVT_IGFS_DIR_RENAMED",
- "EVT_IGFS_DIR_DELETED"
- ]
- }
-]
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/data/pom-dependencies.json
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/data/pom-dependencies.json b/modules/web-console/frontend/app/data/pom-dependencies.json
index acf2bc8..7d2bed0 100644
--- a/modules/web-console/frontend/app/data/pom-dependencies.json
+++ b/modules/web-console/frontend/app/data/pom-dependencies.json
@@ -10,11 +10,11 @@
"HadoopIgfsJcl": {"artifactId": "ignite-hadoop"},
"SLF4J": {"artifactId": "ignite-slf4j"},
- "Generic": {"groupId": "com.mchange", "artifactId": "c3p0", "version": "0.9.5.1"},
- "MySQL": {"groupId": "mysql", "artifactId": "mysql-connector-java", "version": "5.1.37"},
- "PostgreSQL": {"groupId": "org.postgresql", "artifactId": "postgresql", "version": "9.4-1204-jdbc42"},
+ "Generic": {"groupId": "com.mchange", "artifactId": "c3p0", "version": "0.9.5.2"},
+ "MySQL": {"groupId": "mysql", "artifactId": "mysql-connector-java", "version": "5.1.40"},
+ "PostgreSQL": {"groupId": "org.postgresql", "artifactId": "postgresql", "version": "9.4.1212.jre7"},
"H2": {"groupId": "com.h2database", "artifactId": "h2", "version": "1.4.191"},
- "Oracle": {"groupId": "oracle", "artifactId": "jdbc", "version": "11.2", "jar": "ojdbc6.jar"},
- "DB2": {"groupId": "ibm", "artifactId": "jdbc", "version": "4.19.26", "jar": "db2jcc4.jar"},
- "SQLServer": {"groupId": "microsoft", "artifactId": "jdbc", "version": "4.1", "jar": "sqljdbc41.jar"}
+ "Oracle": {"groupId": "com.oracle.jdbc", "artifactId": "ojdbc7", "version": "12.1.0.2", "jar": "ojdbc7.jar"},
+ "DB2": {"groupId": "ibm", "artifactId": "jdbc", "version": "4.21.29", "jar": "db2jcc4.jar"},
+ "SQLServer": {"groupId": "microsoft", "artifactId": "jdbc", "version": "4.2", "jar": "sqljdbc41.jar"}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/directives/ui-ace-docker/ui-ace-docker.controller.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/directives/ui-ace-docker/ui-ace-docker.controller.js b/modules/web-console/frontend/app/directives/ui-ace-docker/ui-ace-docker.controller.js
index 32feaf3..de335ae 100644
--- a/modules/web-console/frontend/app/directives/ui-ace-docker/ui-ace-docker.controller.js
+++ b/modules/web-console/frontend/app/directives/ui-ace-docker/ui-ace-docker.controller.js
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-export default ['$scope', 'GeneratorDocker', function($scope, docker) {
+export default ['$scope', 'IgniteDockerGenerator', function($scope, docker) {
const ctrl = this;
// Watchers definition.
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/directives/ui-ace-docker/ui-ace-docker.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/directives/ui-ace-docker/ui-ace-docker.jade b/modules/web-console/frontend/app/directives/ui-ace-docker/ui-ace-docker.jade
index 3b0e7b8..3a24cfb 100644
--- a/modules/web-console/frontend/app/directives/ui-ace-docker/ui-ace-docker.jade
+++ b/modules/web-console/frontend/app/directives/ui-ace-docker/ui-ace-docker.jade
@@ -20,7 +20,7 @@ mixin hard-link(ref, txt)
.panel-details-noborder
.details-row
p
- +hard-link('https://docs.docker.com/reference/builder', 'Docker')
+ +hard-link('https://docs.docker.com/engine/reference/builder/', 'Docker')
| file is a text file with instructions to create Docker image.<br/>
| To build image you have to store following Docker file with your Ignite XML configuration to the same directory.<br>
| Also you could use predefined
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/directives/ui-ace-pojos/ui-ace-pojos.controller.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/directives/ui-ace-pojos/ui-ace-pojos.controller.js b/modules/web-console/frontend/app/directives/ui-ace-pojos/ui-ace-pojos.controller.js
index 4e11874..61bf086 100644
--- a/modules/web-console/frontend/app/directives/ui-ace-pojos/ui-ace-pojos.controller.js
+++ b/modules/web-console/frontend/app/directives/ui-ace-pojos/ui-ace-pojos.controller.js
@@ -30,7 +30,7 @@ export default ['$scope', 'JavaTypes', 'JavaTransformer', function($scope, JavaT
const updatePojos = () => {
delete ctrl.pojos;
- if (!ctrl.cluster || !ctrl.cluster.caches)
+ if (_.isNil(ctrl.cluster) || _.isEmpty(ctrl.cluster.caches))
return;
ctrl.pojos = generator.pojos(ctrl.cluster.caches, ctrl.useConstructor, ctrl.includeKeyFields);
@@ -46,7 +46,7 @@ export default ['$scope', 'JavaTypes', 'JavaTransformer', function($scope, JavaT
const classes = ctrl.classes = [];
_.forEach(ctrl.pojos, (pojo) => {
- if (pojo.keyType && JavaTypes.nonBuiltInClass(pojo.keyType))
+ if (_.nonNil(pojo.keyClass))
classes.push(pojo.keyType);
classes.push(pojo.valueType);
@@ -55,17 +55,17 @@ export default ['$scope', 'JavaTypes', 'JavaTransformer', function($scope, JavaT
// Update pojos class.
const updateClass = (value) => {
- if (!value || !ctrl.pojos.length)
+ if (_.isEmpty(value))
return;
- const keyType = ctrl.pojos[0].keyType;
+ const pojo = value[0];
- ctrl.class = ctrl.class || (JavaTypes.nonBuiltInClass(keyType) ? keyType : null) || ctrl.pojos[0].valueType;
+ ctrl.class = ctrl.class || (pojo.keyClass ? pojo.keyType : pojo.valueType);
};
// Update pojos data.
const updatePojosData = (value) => {
- if (!value)
+ if (_.isNil(value))
return;
_.forEach(ctrl.pojos, (pojo) => {
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/directives/ui-ace-pom/ui-ace-pom.controller.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/directives/ui-ace-pom/ui-ace-pom.controller.js b/modules/web-console/frontend/app/directives/ui-ace-pom/ui-ace-pom.controller.js
index 2bf78c3..477cf20 100644
--- a/modules/web-console/frontend/app/directives/ui-ace-pom/ui-ace-pom.controller.js
+++ b/modules/web-console/frontend/app/directives/ui-ace-pom/ui-ace-pom.controller.js
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-export default ['$scope', 'GeneratorPom', 'IgniteVersion', function($scope, pom, Version) {
+export default ['$scope', 'IgniteMavenGenerator', 'IgniteVersion', function($scope, maven, Version) {
const ctrl = this;
// Watchers definition.
@@ -25,7 +25,7 @@ export default ['$scope', 'GeneratorPom', 'IgniteVersion', function($scope, pom,
if (!value)
return;
- ctrl.data = pom.generate($scope.cluster, Version.productVersion().ignite).asString();
+ ctrl.data = maven.generate($scope.cluster, Version.productVersion().ignite).asString();
};
// Setup watchers.
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/helpers/jade/form/form-field-dropdown.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/form/form-field-dropdown.jade b/modules/web-console/frontend/app/helpers/jade/form/form-field-dropdown.jade
index 298db52..33af6d1 100644
--- a/modules/web-console/frontend/app/helpers/jade/form/form-field-dropdown.jade
+++ b/modules/web-console/frontend/app/helpers/jade/form/form-field-dropdown.jade
@@ -28,7 +28,7 @@ mixin ignite-form-field-dropdown(label, model, name, disabled, required, multipl
data-ng-disabled=disabled && '#{disabled}' || '!#{options}.length'
bs-select
- bs-options='item.value as item.label for item in #{options}'
+ bs-options='item.value as item.label for item in #{options}'
data-multiple=multiple ? '1' : false
data-container='body > .wrapper'
@@ -41,7 +41,8 @@ mixin ignite-form-field-dropdown(label, model, name, disabled, required, multipl
.ignite-form-field
+ignite-form-field__label(label, name, required)
.ignite-form-field__control
- i.tipField.icon-help(bs-tooltip='' data-title=tip)
+ if tip
+ i.tipField.icon-help(bs-tooltip='' data-title=tip)
if block
block
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/helpers/jade/form/form-field-number.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/form/form-field-number.jade b/modules/web-console/frontend/app/helpers/jade/form/form-field-number.jade
index d48343c..58b0dcd 100644
--- a/modules/web-console/frontend/app/helpers/jade/form/form-field-number.jade
+++ b/modules/web-console/frontend/app/helpers/jade/form/form-field-number.jade
@@ -38,7 +38,8 @@ mixin ignite-form-field-number(label, model, name, disabled, required, placehold
.ignite-form-field
+ignite-form-field__label(label, name, required)
.ignite-form-field__control
- i.tipField.icon-help(bs-tooltip='' data-title=tip)
+ if tip
+ i.tipField.icon-help(bs-tooltip='' data-title=tip)
+form-field-feedback(name, 'required', 'This field could not be empty')
+form-field-feedback(name, 'min', 'Value is less than allowable minimum: '+ min || 0)
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/helpers/jade/form/form-field-text.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/form/form-field-text.jade b/modules/web-console/frontend/app/helpers/jade/form/form-field-text.jade
index 136d23b..1f93d3b 100644
--- a/modules/web-console/frontend/app/helpers/jade/form/form-field-text.jade
+++ b/modules/web-console/frontend/app/helpers/jade/form/form-field-text.jade
@@ -30,13 +30,30 @@ mixin ignite-form-field-input(name, model, disabled, required, placeholder)
data-ignite-form-panel-field=''
)&attributes(attributes ? attributes.attributes ? attributes.attributes : attributes: {})
+mixin ignite-form-field-url-input(name, model, disabled, required, placeholder)
+ input.form-control(
+ id='{{ #{name} }}Input'
+ name='{{ #{name} }}'
+ placeholder=placeholder
+ type='url'
+
+ data-ng-model=model
+
+ data-ng-required=required && '#{required}'
+ data-ng-disabled=disabled && '#{disabled}'
+ data-ng-focus='tableReset()'
+
+ data-ignite-form-panel-field=''
+ )&attributes(attributes ? attributes.attributes ? attributes.attributes : attributes: {})
+
mixin ignite-form-field-text(label, model, name, disabled, required, placeholder, tip)
-var errLbl = label.substring(0, label.length - 1)
.ignite-form-field
+ignite-form-field__label(label, name, required)
.ignite-form-field__control
- i.tipField.icon-help(bs-tooltip='' data-title=tip)
+ if tip
+ i.tipField.icon-help(bs-tooltip='' data-title=tip)
if block
block
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/helpers/jade/mixins.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/mixins.jade b/modules/web-console/frontend/app/helpers/jade/mixins.jade
index 92af1b0..6ca41f6 100644
--- a/modules/web-console/frontend/app/helpers/jade/mixins.jade
+++ b/modules/web-console/frontend/app/helpers/jade/mixins.jade
@@ -183,6 +183,14 @@ mixin text-enabled(lbl, model, name, enabled, required, placeholder, tip)
if block
block
+//- Mixin for text field with autofocus.
+mixin text-enabled-autofocus(lbl, model, name, enabled, required, placeholder, tip)
+ +ignite-form-field-text(lbl, model, name, enabledToDisabled(enabled), required, placeholder, tip)(
+ data-ignite-form-field-input-autofocus='true'
+ )
+ if block
+ block
+
//- Mixin for text field.
mixin text(lbl, model, name, required, placeholder, tip)
+ignite-form-field-text(lbl, model, name, false, required, placeholder, tip)
@@ -221,12 +229,28 @@ mixin dropdown-required-empty(lbl, model, name, enabled, required, placeholder,
if block
block
+//- Mixin for required dropdown field with autofocus.
+mixin dropdown-required-empty-autofocus(lbl, model, name, enabled, required, placeholder, placeholderEmpty, options, tip)
+ +ignite-form-field-dropdown(lbl, model, name, enabledToDisabled(enabled), required, false, placeholder, placeholderEmpty, options, tip)(
+ data-ignite-form-field-input-autofocus='true'
+ )
+ if block
+ block
+
//- Mixin for required dropdown field.
mixin dropdown-required(lbl, model, name, enabled, required, placeholder, options, tip)
+ignite-form-field-dropdown(lbl, model, name, enabledToDisabled(enabled), required, false, placeholder, '', options, tip)
if block
block
+//- Mixin for required dropdown field with autofocus.
+mixin dropdown-required-autofocus(lbl, model, name, enabled, required, placeholder, options, tip)
+ +ignite-form-field-dropdown(lbl, model, name, enabledToDisabled(enabled), required, false, placeholder, '', options, tip)(
+ data-ignite-form-field-input-autofocus='true'
+ )
+ if block
+ block
+
//- Mixin for dropdown field.
mixin dropdown(lbl, model, name, enabled, placeholder, options, tip)
+ignite-form-field-dropdown(lbl, model, name, enabledToDisabled(enabled), false, false, placeholder, '', options, tip)
@@ -324,6 +348,28 @@ mixin table-java-package-field(name, model, items, valid, save, newItem)
ignite-on-escape=onEscape
)
+//- Mixin for table java package field.
+mixin table-url-field(name, model, items, valid, save, newItem)
+ -var resetOnEnter = newItem ? '(stopblur = true) && (group.add = [{}])' : '(field.edit = false)'
+ -var onEnter = valid + ' && (' + save + '); ' + valid + ' && ' + resetOnEnter + ';'
+
+ -var onEscape = newItem ? 'group.add = []' : 'field.edit = false'
+
+ -var resetOnBlur = newItem ? '!stopblur && (group.add = [])' : 'field.edit = false'
+ -var onBlur = valid + ' && ( ' + save + '); ' + resetOnBlur + ';'
+
+ div(ignite-on-focus-out=onBlur)
+ if block
+ block
+
+ .input-tip
+ +ignite-form-field-url-input(name, model, false, 'true', 'Enter URL')(
+ data-ignite-unique=items
+ data-ignite-form-field-input-autofocus='true'
+
+ ignite-on-enter=onEnter
+ ignite-on-escape=onEscape
+ )
//- Mixin for table address field.
mixin table-address-field(name, model, items, valid, save, newItem, portRange)
@@ -393,17 +439,17 @@ mixin table-save-button(valid, save, newItem)
)
//- Mixin for table remove button.
-mixin table-remove-conditional-button(items, show, tip)
+mixin table-remove-conditional-button(items, show, tip, row)
i.tipField.fa.fa-remove(
ng-hide='!#{show} || field.edit'
bs-tooltip
data-title=tip
- ng-click='#{items}.splice(#{items}.indexOf(model), 1)'
+ ng-click='#{items}.splice(#{items}.indexOf(#{row}), 1)'
)
//- Mixin for table remove button.
mixin table-remove-button(items, tip)
- +table-remove-conditional-button(items, 'true', tip)
+ +table-remove-conditional-button(items, 'true', tip, 'model')
//- Mixin for cache mode.
mixin cacheMode(lbl, model, name, placeholder)
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/modules/Demo/Demo.module.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/Demo/Demo.module.js b/modules/web-console/frontend/app/modules/Demo/Demo.module.js
index 83d55ed..a3700ca 100644
--- a/modules/web-console/frontend/app/modules/Demo/Demo.module.js
+++ b/modules/web-console/frontend/app/modules/Demo/Demo.module.js
@@ -41,11 +41,11 @@ angular
url: '/demo/reset',
controller: ['$state', '$http', 'IgniteMessages', ($state, $http, Messages) => {
$http.post('/api/v1/demo/reset')
- .success(() => $state.go('base.configuration.clusters'))
- .error((err) => {
+ .then(() => $state.go('base.configuration.clusters'))
+ .catch((res) => {
$state.go('base.configuration.clusters');
- Messages.showError(err);
+ Messages.showError(res);
});
}],
metaTags: {}
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/modules/configuration/EventGroups.provider.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/configuration/EventGroups.provider.js b/modules/web-console/frontend/app/modules/configuration/EventGroups.provider.js
deleted file mode 100644
index 61f3188..0000000
--- a/modules/web-console/frontend/app/modules/configuration/EventGroups.provider.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// Events groups.
-import GROUPS from 'app/data/event-types.json';
-
-export default ['igniteEventGroups', function() {
- const groups = GROUPS;
-
- this.push = (data) => groups.push(data);
-
- this.$get = [() => {
- return groups;
- }];
-}];
-
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/modules/configuration/Version.service.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/configuration/Version.service.js b/modules/web-console/frontend/app/modules/configuration/Version.service.js
index 06efdda..f0e9c4c 100644
--- a/modules/web-console/frontend/app/modules/configuration/Version.service.js
+++ b/modules/web-console/frontend/app/modules/configuration/Version.service.js
@@ -22,7 +22,7 @@ const VERSION_MATCHER = /(\d+)\.(\d+)\.(\d+)([-.]([^0123456789][^-]+)(-SNAPSHOT)
const numberComparator = (a, b) => a > b ? 1 : a < b ? -1 : 0;
-export default class Version {
+export default class IgniteVersion {
/**
* Tries to parse product version from it's string representation.
*
@@ -70,7 +70,7 @@ export default class Version {
if (res !== 0)
return res;
- return numberComparator(pa.revTs, pb.maintenance);
+ return numberComparator(pa.revTs, pb.revTs);
}
/**
@@ -79,7 +79,7 @@ export default class Version {
*/
productVersion() {
return {
- ignite: '1.7.0'
+ ignite: '1.8.0'
};
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/modules/configuration/configuration.module.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/configuration/configuration.module.js b/modules/web-console/frontend/app/modules/configuration/configuration.module.js
index 27f7bef..4288ff7 100644
--- a/modules/web-console/frontend/app/modules/configuration/configuration.module.js
+++ b/modules/web-console/frontend/app/modules/configuration/configuration.module.js
@@ -17,26 +17,28 @@
import angular from 'angular';
-import igniteEventGroups from './EventGroups.provider';
+
import igniteSidebar from './Sidebar.provider';
-import Version from './Version.service';
+import IgniteVersion from './Version.service';
-import clusterDefaults from './generator/defaults/cluster.provider';
-import clusterPlatformDefaults from './generator/defaults/cluster.platform.provider';
-import cacheDefaults from './generator/defaults/cache.provider';
-import cachePlatformDefaults from './generator/defaults/cache.platform.provider';
-import igfsDefaults from './generator/defaults/igfs.provider';
+import IgniteClusterDefaults from './generator/defaults/Cluster.service';
+import IgniteClusterPlatformDefaults from './generator/defaults/Cluster.platform.service';
+import IgniteCacheDefaults from './generator/defaults/Cache.service';
+import IgniteCachePlatformDefaults from './generator/defaults/Cache.platform.service';
+import IgniteIGFSDefaults from './generator/defaults/IGFS.service';
+import IgniteEventGroups from './generator/defaults/Event-groups.service';
-import ConfigurationGenerator from './generator/ConfigurationGenerator';
-import PlatformGenerator from './generator/PlatformGenerator';
+import IgniteConfigurationGenerator from './generator/ConfigurationGenerator';
+import IgnitePlatformGenerator from './generator/PlatformGenerator';
-import SpringTransformer from './generator/SpringTransformer.service';
-import JavaTransformer from './generator/JavaTransformer.service';
+import IgniteSpringTransformer from './generator/SpringTransformer.service';
+import IgniteJavaTransformer from './generator/JavaTransformer.service';
import SharpTransformer from './generator/SharpTransformer.service';
-import GeneratorDocker from './generator/Docker.service';
-import GeneratorPom from './generator/Pom.service';
-import GeneratorProperties from './generator/Properties.service';
-import GeneratorReadme from './generator/Readme.service';
+import IgniteDockerGenerator from './generator/Docker.service';
+import IgniteMavenGenerator from './generator/Maven.service';
+import IgniteGeneratorProperties from './generator/Properties.service';
+import IgniteReadmeGenerator from './generator/Readme.service';
+import IgniteCustomGenerator from './generator/Custom.service';
import igniteSidebarDirective from './sidebar.directive';
@@ -45,21 +47,22 @@ angular
.module('ignite-console.configuration', [
])
-.provider('igniteClusterDefaults', clusterDefaults)
-.provider('igniteClusterPlatformDefaults', clusterPlatformDefaults)
-.provider('igniteCacheDefaults', cacheDefaults)
-.provider('igniteCachePlatformDefaults', cachePlatformDefaults)
-.provider('igniteIgfsDefaults', igfsDefaults)
-.provider(...igniteEventGroups)
.provider(...igniteSidebar)
.directive(...igniteSidebarDirective)
-.service('IgniteVersion', Version)
-.service('IgniteConfigurationGenerator', ConfigurationGenerator)
-.service('IgnitePlatformGenerator', PlatformGenerator)
-.service('SpringTransformer', SpringTransformer)
-.service('JavaTransformer', JavaTransformer)
+.service('IgniteConfigurationGenerator', IgniteConfigurationGenerator)
+.service('IgnitePlatformGenerator', IgnitePlatformGenerator)
+.service('SpringTransformer', IgniteSpringTransformer)
+.service('JavaTransformer', IgniteJavaTransformer)
.service('IgniteSharpTransformer', SharpTransformer)
-.service('IgnitePropertiesGenerator', GeneratorProperties)
-.service('IgniteReadmeGenerator', GeneratorReadme)
-.service(...GeneratorDocker)
-.service(...GeneratorPom);
+.service('IgniteVersion', IgniteVersion)
+.service('IgniteEventGroups', IgniteEventGroups)
+.service('IgniteClusterDefaults', IgniteClusterDefaults)
+.service('IgniteClusterPlatformDefaults', IgniteClusterPlatformDefaults)
+.service('IgniteCacheDefaults', IgniteCacheDefaults)
+.service('IgniteCachePlatformDefaults', IgniteCachePlatformDefaults)
+.service('IgniteIGFSDefaults', IgniteIGFSDefaults)
+.service('IgnitePropertiesGenerator', IgniteGeneratorProperties)
+.service('IgniteReadmeGenerator', IgniteReadmeGenerator)
+.service('IgniteDockerGenerator', IgniteDockerGenerator)
+.service('IgniteMavenGenerator', IgniteMavenGenerator)
+.service('IgniteCustomGenerator', IgniteCustomGenerator);
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/modules/configuration/generator/AbstractTransformer.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/configuration/generator/AbstractTransformer.js b/modules/web-console/frontend/app/modules/configuration/generator/AbstractTransformer.js
index 6244a53..f5afe59 100644
--- a/modules/web-console/frontend/app/modules/configuration/generator/AbstractTransformer.js
+++ b/modules/web-console/frontend/app/modules/configuration/generator/AbstractTransformer.js
@@ -17,7 +17,24 @@
import StringBuilder from './StringBuilder';
+import IgniteConfigurationGenerator from './ConfigurationGenerator';
+import IgniteEventGroups from './defaults/Event-groups.service';
+
+import IgniteClusterDefaults from './defaults/Cluster.service';
+import IgniteCacheDefaults from './defaults/Cache.service';
+import IgniteIGFSDefaults from './defaults/IGFS.service';
+
+import JavaTypes from '../../../services/JavaTypes.service';
+
+const clusterDflts = new IgniteClusterDefaults();
+const cacheDflts = new IgniteCacheDefaults();
+const igfsDflts = new IgniteIGFSDefaults();
+
export default class AbstractTransformer {
+ static generator = IgniteConfigurationGenerator;
+ static javaTypes = new JavaTypes(clusterDflts, cacheDflts, igfsDflts);
+ static eventGroups = new IgniteEventGroups();
+
// Append comment with time stamp.
static mainComment(sb, ...lines) {
lines.push(sb.generatedBy());
http://git-wip-us.apache.org/repos/asf/ignite/blob/8e7c852b/modules/web-console/frontend/app/modules/configuration/generator/Beans.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/configuration/generator/Beans.js b/modules/web-console/frontend/app/modules/configuration/generator/Beans.js
index 2750626..ca19342 100644
--- a/modules/web-console/frontend/app/modules/configuration/generator/Beans.js
+++ b/modules/web-console/frontend/app/modules/configuration/generator/Beans.js
@@ -17,6 +17,11 @@
import _ from 'lodash';
+_.mixin({
+ nonNil: _.negate(_.isNil),
+ nonEmpty: _.negate(_.isEmpty)
+});
+
export class EmptyBean {
/**
* @param {String} clsName