You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2016/11/09 08:38:37 UTC
[23/50] [abbrv] ignite git commit: Web console beta-5.
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/gulpfile.babel.js/paths.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/gulpfile.babel.js/paths.js b/modules/web-console/frontend/gulpfile.babel.js/paths.js
index 9134e44..6ebfbad 100644
--- a/modules/web-console/frontend/gulpfile.babel.js/paths.js
+++ b/modules/web-console/frontend/gulpfile.babel.js/paths.js
@@ -24,17 +24,20 @@ const destDir = path.resolve('build');
const igniteModulesDir = process.env.IGNITE_MODULES ? path.join(path.normalize(process.env.IGNITE_MODULES), 'frontend') : './ignite_modules';
const igniteModulesTemp = path.resolve('ignite_modules_temp');
-const jadePaths = [
- './views/*.jade',
+const jadeViewsPaths = [
'./views/**/*.jade',
- './app/helpers/**/*.jade',
- './app/modules/states/configuration/**/*.jade',
- './app/modules/sql/*.jade'
+ '!./views/configuration/*.jade'
];
-const resourcePaths = [
- './public/**/*.png',
- './public/*.ico'
+const jadeAppModulePaths = [
+ './app/modules/states/configuration/**/*.jade',
+ './app/modules/sql/*.jade',
+ './views/**/*.jade',
+ '!./views/*.jade',
+ '!./views/includes/*.jade',
+ '!./views/settings/*.jade',
+ '!./views/sql/*.jade',
+ '!./views/templates/*.jade'
];
const jadeModulePaths = [
@@ -53,6 +56,11 @@ const appModulePaths = [
igniteModulesDir + '/**/app/data/*.json'
];
+const resourcePaths = [
+ './public/**/*.png',
+ './public/*.ico'
+];
+
const resourceModulePaths = [
igniteModulesDir + '/**/images/*.png',
igniteModulesDir + '/*.ico'
@@ -65,10 +73,11 @@ export {
igniteModulesDir,
igniteModulesTemp,
- jadePaths,
- resourcePaths,
-
+ jadeViewsPaths,
+ jadeAppModulePaths,
jadeModulePaths,
+
+ resourcePaths,
resourceModulePaths,
appModulePaths
};
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/gulpfile.babel.js/tasks/jade.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/gulpfile.babel.js/tasks/jade.js b/modules/web-console/frontend/gulpfile.babel.js/tasks/jade.js
index b150373..fe8bb09 100644
--- a/modules/web-console/frontend/gulpfile.babel.js/tasks/jade.js
+++ b/modules/web-console/frontend/gulpfile.babel.js/tasks/jade.js
@@ -16,19 +16,28 @@
*/
import gulp from 'gulp';
+import ll from 'gulp-ll';
import jade from 'gulp-jade';
-import sequence from 'gulp-sequence';
-import { jadePaths, jadeModulePaths, destDir } from '../paths';
+import { jadeViewsPaths, jadeAppModulePaths, jadeModulePaths, destDir } from '../paths';
const jadeOptions = {
- basedir: './'
+ basedir: './',
+ cache: true
};
-gulp.task('jade', (cb) => sequence('jade:source', 'jade:ignite_modules', cb));
+ll.tasks(['jade:views', 'jade:app', 'jade:ignite_modules']);
-gulp.task('jade:source', () =>
- gulp.src(jadePaths)
+gulp.task('jade', ['jade:views', 'jade:app', 'jade:ignite_modules']);
+
+gulp.task('jade:views', () =>
+ gulp.src(jadeViewsPaths)
+ .pipe(jade(jadeOptions))
+ .pipe(gulp.dest(destDir))
+);
+
+gulp.task('jade:app', () =>
+ gulp.src(jadeAppModulePaths)
.pipe(jade(jadeOptions))
.pipe(gulp.dest(destDir))
);
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/gulpfile.babel.js/tasks/watch.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/gulpfile.babel.js/tasks/watch.js b/modules/web-console/frontend/gulpfile.babel.js/tasks/watch.js
index c179f9c..dfaa1a3 100644
--- a/modules/web-console/frontend/gulpfile.babel.js/tasks/watch.js
+++ b/modules/web-console/frontend/gulpfile.babel.js/tasks/watch.js
@@ -18,13 +18,15 @@
import gulp from 'gulp';
import sequence from 'gulp-sequence';
-import { jadePaths, jadeModulePaths, resourcePaths, resourceModulePaths, appModulePaths } from '../paths';
+import { jadeViewsPaths, jadeAppModulePaths, jadeModulePaths, resourcePaths, resourceModulePaths, appModulePaths } from '../paths';
gulp.task('watch:ignite-modules', (cb) => sequence('clean:ignite-modules-temp', 'ignite:modules', cb));
// Build + watch task.
gulp.task('watch', ['build'], () => {
- gulp.watch(jadePaths.concat(jadeModulePaths), ['jade']);
+ gulp.watch(jadeViewsPaths, ['jade:views']);
+ gulp.watch(jadeAppModulePaths.concat('./app/helpers/**/*.jade'), ['jade:app']);
+ gulp.watch(jadeModulePaths.concat('./app/helpers/**/*.jade'), ['jade:ignite_modules']);
gulp.watch(resourcePaths, ['copy:resource:app']);
gulp.watch(resourceModulePaths, ['copy:resource:ignite_modules']);
gulp.watch(appModulePaths, ['watch:ignite-modules']);
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/gulpfile.babel.js/webpack/common.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/gulpfile.babel.js/webpack/common.js b/modules/web-console/frontend/gulpfile.babel.js/webpack/common.js
index e3d88b3..f6c2d87 100644
--- a/modules/web-console/frontend/gulpfile.babel.js/webpack/common.js
+++ b/modules/web-console/frontend/gulpfile.babel.js/webpack/common.js
@@ -43,7 +43,7 @@ try {
}
export default () => {
- const assetsLoader = development ? 'url-loader' : 'file-loader';
+ const assetsLoader = 'file-loader';
return {
cache: true,
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/development.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/development.js b/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/development.js
index 229760e..1550dfa 100644
--- a/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/development.js
+++ b/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/development.js
@@ -20,6 +20,10 @@ import webpack from 'webpack';
import {destDir, rootDir, srcDir} from '../../paths';
+const devServerHost = 'localhost';
+const devServerPort = 9000;
+const devServerUrl = `http://${devServerHost}:${devServerPort}/`;
+
export default () => {
const plugins = [
new webpack.HotModuleReplacementPlugin()
@@ -27,9 +31,12 @@ export default () => {
return {
entry: {
- webpack: 'webpack-dev-server/client?http://localhost:9000/',
+ webpack: `webpack-dev-server/client?${devServerUrl}`,
app: [path.join(srcDir, 'app.js'), 'webpack/hot/only-dev-server']
},
+ output: {
+ publicPath: devServerUrl
+ },
context: rootDir,
debug: true,
devtool: 'source-map',
@@ -60,10 +67,12 @@ export default () => {
aggregateTimeout: 1000,
poll: 2000
},
- stats: {colors: true},
- port: 9000
+ stats: {
+ colors: true,
+ chunks: false
+ },
+ port: devServerPort
},
- stats: {colors: true},
plugins
};
};
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/test.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/test.js b/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/test.js
new file mode 100644
index 0000000..1c37196
--- /dev/null
+++ b/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/test.js
@@ -0,0 +1,52 @@
+/*
+ * 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.
+ */
+
+import webpack from 'webpack';
+
+const NODE_ENV = process.env.NODE_ENV || 'production';
+
+export default () => {
+
+ return {
+ cache: true,
+ node: {
+ fs: 'empty'
+ },
+
+ module: {
+ preLoaders: null
+ },
+
+ // Entry points.
+ entry: null,
+
+ // Output system.
+ output: null,
+ eslint: null,
+
+ // Load plugins.
+ plugins: [
+ new webpack.ProvidePlugin({
+ $: 'jquery',
+ jQuery: 'jquery',
+ _: 'lodash',
+ nv: 'nvd3'
+ }),
+ new webpack.DefinePlugin({NODE_ENV: JSON.stringify(NODE_ENV)})
+ ]
+ };
+};
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/gulpfile.babel.js/webpack/index.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/gulpfile.babel.js/webpack/index.js b/modules/web-console/frontend/gulpfile.babel.js/webpack/index.js
index 6682f9c..9b344dd 100644
--- a/modules/web-console/frontend/gulpfile.babel.js/webpack/index.js
+++ b/modules/web-console/frontend/gulpfile.babel.js/webpack/index.js
@@ -19,13 +19,15 @@ import _ from 'lodash';
import commonConfig from './common';
import devConfig from './environments/development';
import prodConfig from './environments/production';
+import testConfig from './environments/test';
const env = process.env.NODE_ENV || 'production';
// Config by environments.
const configs = {
production: prodConfig,
- development: devConfig
+ development: devConfig,
+ test: testConfig
};
// Load config file by environment
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/package.json
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/package.json b/modules/web-console/frontend/package.json
index 7ea2893..fe8c295 100644
--- a/modules/web-console/frontend/package.json
+++ b/modules/web-console/frontend/package.json
@@ -5,9 +5,9 @@
"private": true,
"scripts": {
"dev": "cross-env NODE_ENV=development gulp watch",
- "build": "cross-env NODE_ENV=production gulp build",
- "test": "karma start ./test/karma.conf.js",
- "eslint": "eslint --format node_modules/eslint-friendly-formatter gulpfile.babel.js/ app/ controllers/ generator/ ignite_modules/ ignite_modules_temp/ -- --eff-by-issue"
+ "build": "cross-env NODE_ENV=production gulp build --no-ll",
+ "test": "cross-env NODE_ENV=test karma start ./test/karma.conf.js",
+ "eslint": "eslint --format node_modules/eslint-friendly-formatter gulpfile.babel.js/ app/ controllers/ ignite_modules/ ignite_modules_temp/ -- --eff-by-issue"
},
"author": "",
"contributors": [
@@ -57,7 +57,6 @@
"jszip": "^3.0.0",
"lodash": "^4.8.2",
"nvd3": "^1.8.3",
- "query-command-supported": "^1.0.0",
"raleway-webfont": "^3.0.1",
"roboto-font": "^0.1.0",
"socket.io-client": "^1.4.6",
@@ -67,7 +66,7 @@
"assets-webpack-plugin": "^3.2.0",
"autoprefixer-core": "^6.0.1",
"babel-core": "^6.7.6",
- "babel-eslint": "^6.0.4",
+ "babel-eslint": "^7.0.0",
"babel-loader": "^6.2.4",
"babel-plugin-add-module-exports": "^0.2.1",
"babel-plugin-transform-builtin-extend": "^1.1.0",
@@ -79,16 +78,17 @@
"chai": "^3.5.0",
"cross-env": "^1.0.7",
"css-loader": "^0.23.0",
- "eslint": "^2.9.0",
+ "eslint": "^3.0.0",
"eslint-friendly-formatter": "^2.0.5",
"eslint-loader": "^1.0.0",
"expose-loader": "^0.7.1",
"extract-text-webpack-plugin": "^1.0.1",
"file-loader": "^0.9.0",
"gulp": "^3.9.1",
- "gulp-eslint": "^2.0.0",
+ "gulp-eslint": "^3.0.0",
"gulp-inject": "^4.0.0",
"gulp-jade": "^1.1.0",
+ "gulp-ll": "^1.0.4",
"gulp-rimraf": "^0.2.0",
"gulp-sequence": "^0.4.1",
"gulp-util": "^3.0.7",
@@ -102,6 +102,7 @@
"karma-babel-preprocessor": "^6.0.1",
"karma-jasmine": "^1.0.2",
"karma-mocha": "^1.0.1",
+ "karma-mocha-reporter": "^2.2.0",
"karma-phantomjs-launcher": "^1.0.0",
"karma-teamcity-reporter": "^1.0.0",
"karma-webpack": "^1.7.0",
@@ -115,7 +116,6 @@
"require-dir": "^0.3.0",
"resolve-url-loader": "^1.4.3",
"sass-loader": "^3.1.1",
- "should": "^9.0.2",
"style-loader": "^0.13.1",
"url": "^0.11.0",
"url-loader": "^0.5.6",
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/public/stylesheets/style.scss
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/public/stylesheets/style.scss b/modules/web-console/frontend/public/stylesheets/style.scss
index 0784560..0f8f49a 100644
--- a/modules/web-console/frontend/public/stylesheets/style.scss
+++ b/modules/web-console/frontend/public/stylesheets/style.scss
@@ -82,6 +82,11 @@ hr {
vertical-align: middle;
}
+.table .ui-grid-settings {
+ float: left;
+ padding-right: 10px;
+}
+
ul.navbar-nav, .sidebar-nav {
li.active > a {
color: $link-color;
@@ -359,6 +364,13 @@ h1, h2, h3, h4, h5, h6 {
margin-right: -2px;
}
+// Modal icon
+.modal-header h4 > i.fa {
+ cursor: default;
+ float: left;
+ line-height: $modal-title-line-height;
+}
+
.modal .modal-dialog {
width: 650px;
}
@@ -623,7 +635,7 @@ button.form-control {
margin-top: 30px;
}
- .btn-group {
+ .btn-group:last-of-type {
margin-right: 0;
}
@@ -665,6 +677,16 @@ button.form-control {
border-top: 1px solid $ignite-border-color;
padding: 10px 10px;
+
+ input[type="checkbox"] {
+ line-height: 20px;
+ margin-right: 5px;
+ }
+
+ label {
+ line-height: 20px !important;
+ vertical-align: middle;
+ }
}
.sql-result {
@@ -686,6 +708,16 @@ button.form-control {
.total {
padding: 10px 10px;
+
+ input[type="checkbox"] {
+ line-height: 20px;
+ margin-right: 5px;
+ }
+
+ label {
+ line-height: 20px !important;
+ vertical-align: middle;
+ }
}
.table {
@@ -1318,12 +1350,6 @@ label {
margin: 0 5px;
}
-.fieldButton {
- float: right;
- margin-left: 5px;
- margin-right: 0;
-}
-
.fa {
cursor: pointer;
}
@@ -1639,13 +1665,18 @@ th[st-sort] {
z-index: 900;
a {
+ color: $input-color-placeholder;
background-color: white;
margin-left: 5px;
font-size: 0.9em;
}
- .inactive {
- color: $input-color-placeholder;
+ a + a {
+ margin-left: 10px
+ }
+
+ a.active {
+ color: $brand-primary;
}
}
@@ -2170,3 +2201,29 @@ html,body,.splash-screen {
padding: 0;
}
}
+
+// Fix for incorrect tooltip placement after fast show|hide.
+.tooltip.ng-leave {
+ transition: none !important; /* Disable transitions. */
+ animation: none 0s !important; /* Disable keyframe animations. */
+}
+
+// Fix for incorrect dropdown placement.
+.select.dropdown-menu.ng-leave {
+ transition: none !important; /* Disable transitions. */
+ animation: none 0s !important; /* Disable keyframe animations. */
+}
+.disable-animations {
+ // Use this for transitions
+ &.ng-enter,
+ &.ng-leave,
+ &.ng-animate {
+ -webkit-transition: none !important;
+ transition: none !important;
+ }
+ // Use this for keyframe animations
+ &.ng-animate {
+ -webkit-animation: none 0s;
+ animation: none 0s;
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/test/karma.conf.babel.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/test/karma.conf.babel.js b/modules/web-console/frontend/test/karma.conf.babel.js
new file mode 100644
index 0000000..76a0ba0
--- /dev/null
+++ b/modules/web-console/frontend/test/karma.conf.babel.js
@@ -0,0 +1,91 @@
+/*
+ * 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.
+ */
+
+import webpackConfig from '../gulpfile.babel.js/webpack';
+import path from 'path';
+
+const basePath = path.resolve('./');
+
+export default (config) => {
+ config.set({
+ // Base path that will be used to resolve all patterns (eg. files, exclude).
+ basePath: basePath,
+
+ // Frameworks to use available frameworks: https://npmjs.org/browse/keyword/karma-adapter
+ frameworks: ['mocha'],
+
+ // List of files / patterns to load in the browser.
+ files: [
+ 'test/**/*.test.js'
+ ],
+
+ plugins: [
+ require('karma-phantomjs-launcher'),
+ require('karma-teamcity-reporter'),
+ require('karma-mocha-reporter'),
+ require('karma-webpack'),
+ require('karma-mocha')
+ ],
+
+ // Preprocess matching files before serving them to the browser
+ // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor.
+ preprocessors: {
+ 'test/**/*.js': ['webpack']
+ },
+ webpack: webpackConfig,
+
+ webpackMiddleware: {
+ noInfo: true
+ },
+
+ // Test results reporter to use
+ // possible values: 'dots', 'progress'
+ // available reporters: https://npmjs.org/browse/keyword/karma-reporter.
+ reporters: ['mocha'],
+
+ // web server port
+ port: 9876,
+
+ // enable / disable colors in the output (reporters and logs)
+ colors: true,
+
+ // level of logging
+ // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
+ logLevel: config.LOG_INFO,
+
+ // enable / disable watching file and executing tests whenever any file changes
+ autoWatch: true,
+
+ // start these browsers
+ // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
+ browsers: ['PhantomJS'],
+
+ // Continuous Integration mode
+ // if true, Karma captures browsers, runs the tests and exits
+ singleRun: true,
+
+ // Concurrency level
+ // how many browser should be started simultaneous
+ concurrency: Infinity,
+
+ client: {
+ mocha: {
+ ui: 'tdd'
+ }
+ }
+ });
+};
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/test/karma.conf.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/test/karma.conf.js b/modules/web-console/frontend/test/karma.conf.js
index e13ba00..a8b1b11 100644
--- a/modules/web-console/frontend/test/karma.conf.js
+++ b/modules/web-console/frontend/test/karma.conf.js
@@ -15,99 +15,5 @@
* limitations under the License.
*/
-const path = require('path');
-const webpack = require('webpack');
-
-const basePath = path.resolve('./');
-
-module.exports = function(config) {
- config.set({
- // Base path that will be used to resolve all patterns (eg. files, exclude).
- basePath: basePath,
-
- // Frameworks to use available frameworks: https://npmjs.org/browse/keyword/karma-adapter
- frameworks: ['mocha'],
-
- // List of files / patterns to load in the browser.
- files: [
- 'test/**/*.test.js'
- ],
-
- plugins: [
- require('karma-phantomjs-launcher'),
- require('karma-teamcity-reporter'),
- require('karma-webpack'),
- require('karma-mocha')
- ],
-
- // Preprocess matching files before serving them to the browser
- // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor.
- preprocessors: {
- 'test/**/*.js': ['webpack']
- },
-
- webpack: {
- module: {
- loaders: [
- {
- test: /\.json$/,
- loader: 'json'
- },
- {
- test: /\.js$/,
- loader: 'babel',
- exclude: /node_modules/
- }
- ]
- },
- resolve: {
- extensions: ["", ".js"]
- },
- plugins: [
- new webpack.ProvidePlugin({
- _: 'lodash'
- })
- ]
- },
-
- webpackMiddleware: {
- noInfo: true
- },
-
- // Test results reporter to use
- // possible values: 'dots', 'progress'
- // available reporters: https://npmjs.org/browse/keyword/karma-reporter.
- reporters: ['teamcity'],
-
- // web server port
- port: 9876,
-
- // enable / disable colors in the output (reporters and logs)
- colors: true,
-
- // level of logging
- // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
- logLevel: config.LOG_INFO,
-
- // enable / disable watching file and executing tests whenever any file changes
- autoWatch: true,
-
- // start these browsers
- // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
- browsers: ['PhantomJS'],
-
- // Continuous Integration mode
- // if true, Karma captures browsers, runs the tests and exits
- singleRun: true,
-
- // Concurrency level
- // how many browser should be started simultaneous
- concurrency: Infinity,
-
- client: {
- mocha: {
- ui: 'tdd'
- }
- }
- });
-};
+require('babel-core/register');
+module.exports = require('./karma.conf.babel.js').default;
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/test/unit/JavaTransformer.test.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/test/unit/JavaTransformer.test.js b/modules/web-console/frontend/test/unit/JavaTransformer.test.js
new file mode 100644
index 0000000..3f39000
--- /dev/null
+++ b/modules/web-console/frontend/test/unit/JavaTransformer.test.js
@@ -0,0 +1,57 @@
+/*
+ * 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.
+ */
+
+import JavaTypes from '../../app/services/JavaTypes.service.js';
+
+import generator from '../../app/modules/configuration/generator/ConfigurationGenerator';
+import transformer from '../../app/modules/configuration/generator/JavaTransformer.service';
+
+import { assert } from 'chai';
+
+suite.skip('JavaTransformerTestsSuite', () => {
+ test('AtomicConfiguration', () => {
+ const ConfigurationGenerator = generator[1]();
+ const JavaTransformer = transformer[1][2](JavaTypes[1](), ConfigurationGenerator);
+
+ const acfg = {
+ atomicSequenceReserveSize: 1001,
+ backups: 1,
+ cacheMode: 'LOCAL'
+ };
+
+ const bean = ConfigurationGenerator.clusterAtomics(acfg);
+
+ console.log(JavaTransformer.generateSection(bean));
+ });
+
+ test('IgniteConfiguration', () => {
+ const ConfigurationGenerator = generator[1]();
+ const JavaTransformer = transformer[1][2](JavaTypes[1](), ConfigurationGenerator);
+
+ const clusterCfg = {
+ atomics: {
+ atomicSequenceReserveSize: 1001,
+ backups: 1,
+ cacheMode: 'LOCAL'
+ }
+ };
+
+ const bean = ConfigurationGenerator.igniteConfiguration(clusterCfg);
+
+ console.log(JavaTransformer.toClassFile(bean, 'config', 'ServerConfigurationFactory', null));
+ });
+});
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/test/unit/JavaTypes.test.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/test/unit/JavaTypes.test.js b/modules/web-console/frontend/test/unit/JavaTypes.test.js
index 7b12168..2df8c6a 100644
--- a/modules/web-console/frontend/test/unit/JavaTypes.test.js
+++ b/modules/web-console/frontend/test/unit/JavaTypes.test.js
@@ -17,7 +17,11 @@
import JavaTypes from '../../app/services/JavaTypes.service.js';
-const INSTANCE = new JavaTypes();
+import ClusterDflts from '../../app/modules/configuration/generator/defaults/cluster.provider';
+import CacheDflts from '../../app/modules/configuration/generator/defaults/cache.provider';
+import IgfsDflts from '../../app/modules/configuration/generator/defaults/igfs.provider';
+
+const INSTANCE = new JavaTypes((new ClusterDflts()).$get[0](), (new CacheDflts()).$get[0](), (new IgfsDflts()).$get[0]());
import { assert } from 'chai';
@@ -43,6 +47,23 @@ suite('JavaTypesTestsSuite', () => {
assert.equal(INSTANCE.nonBuiltInClass('my.package.CustomClass'), true);
});
+ test('nonEnum', () => {
+ assert.equal(INSTANCE.nonEnum('org.apache.ignite.cache.CacheMode'), false);
+ assert.equal(INSTANCE.nonEnum('org.apache.ignite.transactions.TransactionConcurrency'), false);
+ assert.equal(INSTANCE.nonEnum('org.apache.ignite.cache.CacheWriteSynchronizationMode'), false);
+ assert.equal(INSTANCE.nonEnum('org.apache.ignite.igfs.IgfsIpcEndpointType'), false);
+ assert.equal(INSTANCE.nonEnum('java.io.Serializable'), true);
+ assert.equal(INSTANCE.nonEnum('BigDecimal'), true);
+ });
+
+ test('shortClassName', () => {
+ assert.equal(INSTANCE.shortClassName('java.math.BigDecimal'), 'BigDecimal');
+ assert.equal(INSTANCE.shortClassName('int'), 'int');
+ assert.equal(INSTANCE.shortClassName('java.lang.Integer'), 'Integer');
+ assert.equal(INSTANCE.shortClassName('java.util.UUID'), 'UUID');
+ assert.equal(INSTANCE.shortClassName('Abstract'), 'Abstract');
+ });
+
test('fullClassName', () => {
assert.equal(INSTANCE.fullClassName('BigDecimal'), 'java.math.BigDecimal');
});
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/test/unit/SharpTransformer.test.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/test/unit/SharpTransformer.test.js b/modules/web-console/frontend/test/unit/SharpTransformer.test.js
new file mode 100644
index 0000000..20de266
--- /dev/null
+++ b/modules/web-console/frontend/test/unit/SharpTransformer.test.js
@@ -0,0 +1,55 @@
+/*
+ * 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.
+ */
+
+import generator from '../../app/modules/configuration/generator/PlatformGenerator';
+import transformer from '../../app/modules/configuration/generator/SharpTransformer.service';
+
+import { assert } from 'chai';
+
+suite.skip('SharpTransformerTestsSuite', () => {
+ test('AtomicConfiguration', () => {
+ const PlatformGenerator = generator[1]();
+ const SharpTransformer = transformer[1](PlatformGenerator);
+
+ const acfg = {
+ atomicSequenceReserveSize: 1001,
+ backups: 1,
+ cacheMode: 'LOCAL'
+ };
+
+ const bean = PlatformGenerator.clusterAtomics(acfg);
+
+ console.log(SharpTransformer.generateSection(bean));
+ });
+
+ test('IgniteConfiguration', () => {
+ const PlatformGenerator = generator[1]();
+ const SharpTransformer = transformer[1](PlatformGenerator);
+
+ const clusterCfg = {
+ atomics: {
+ atomicSequenceReserveSize: 1001,
+ backups: 1,
+ cacheMode: 'LOCAL'
+ }
+ };
+
+ const bean = PlatformGenerator.igniteConfiguration(clusterCfg);
+
+ console.log(SharpTransformer.toClassFile(bean, 'config', 'ServerConfigurationFactory', null));
+ });
+});
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/test/unit/SpringTransformer.test.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/test/unit/SpringTransformer.test.js b/modules/web-console/frontend/test/unit/SpringTransformer.test.js
new file mode 100644
index 0000000..7998f66
--- /dev/null
+++ b/modules/web-console/frontend/test/unit/SpringTransformer.test.js
@@ -0,0 +1,57 @@
+/*
+ * 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.
+ */
+
+import JavaTypes from '../../app/services/JavaTypes.service.js';
+
+import generator from '../../app/modules/configuration/generator/ConfigurationGenerator';
+import transformer from '../../app/modules/configuration/generator/SpringTransformer.service';
+
+import { assert } from 'chai';
+
+suite.skip('SpringTransformerTestsSuite', () => {
+ test('AtomicConfiguration', () => {
+ const ConfigurationGenerator = generator[1]();
+ const SpringTransformer = transformer[1][2](JavaTypes[1](), ConfigurationGenerator);
+
+ const acfg = {
+ atomicSequenceReserveSize: 1001,
+ backups: 1,
+ cacheMode: 'LOCAL'
+ };
+
+ const bean = ConfigurationGenerator.clusterAtomics(acfg);
+
+ console.log(SpringTransformer.generateSection(bean));
+ });
+
+ test('IgniteConfiguration', () => {
+ const ConfigurationGenerator = generator[1]();
+ const SpringTransformer = transformer[1][2](JavaTypes[1](), ConfigurationGenerator);
+
+ const cfg = {
+ atomics: {
+ atomicSequenceReserveSize: 1001,
+ backups: 1,
+ cacheMode: 'LOCAL'
+ }
+ };
+
+ const bean = ConfigurationGenerator.igniteConfiguration(cfg);
+
+ console.log(SpringTransformer.generate(bean));
+ });
+});
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/test/unit/SqlTypes.test.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/test/unit/SqlTypes.test.js b/modules/web-console/frontend/test/unit/SqlTypes.test.js
index 3cfaafc..2d54bdf 100644
--- a/modules/web-console/frontend/test/unit/SqlTypes.test.js
+++ b/modules/web-console/frontend/test/unit/SqlTypes.test.js
@@ -15,23 +15,6 @@
* limitations under the License.
*/
-/*
- * 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.
- */
-
import SqlTypes from '../../app/services/SqlTypes.service.js';
const INSTANCE = new SqlTypes();
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/test/unit/Version.test.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/test/unit/Version.test.js b/modules/web-console/frontend/test/unit/Version.test.js
new file mode 100644
index 0000000..a67fde8
--- /dev/null
+++ b/modules/web-console/frontend/test/unit/Version.test.js
@@ -0,0 +1,82 @@
+/*
+ * 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.
+ */
+
+import VersionService from '../../app/modules/configuration/Version.service.js';
+
+const INSTANCE = new VersionService();
+
+import { assert } from 'chai';
+
+suite('VersionServiceTestsSuite', () => {
+ test('Check patch version', () => {
+ assert.equal(INSTANCE.compare('1.7.2', '1.7.1'), 1);
+ });
+
+ test('Check minor version', () => {
+ assert.equal(INSTANCE.compare('1.8.1', '1.7.1'), 1);
+ });
+
+ test('Check major version', () => {
+ assert.equal(INSTANCE.compare('2.7.1', '1.7.1'), 1);
+ });
+
+ test('Version a > b', () => {
+ assert.equal(INSTANCE.compare('1.7.0', '1.5.0'), 1);
+ });
+
+ test('Version a = b', () => {
+ assert.equal(INSTANCE.compare('1.7.0', '1.7.0'), 0);
+ });
+
+ test('Version a < b', () => {
+ assert.equal(INSTANCE.compare('1.5.1', '1.5.2'), -1);
+ });
+
+ test('Check since call', () => {
+ assert.equal(INSTANCE.since('1.6.0', '1.5.0'), true);
+ });
+
+ test('Check wrong since call', () => {
+ assert.equal(INSTANCE.since('1.3.0', '1.5.0'), false);
+ });
+
+ test('Parse 1.7.0-SNAPSHOT', () => {
+ const version = INSTANCE.parse('1.7.0-SNAPSHOT');
+ assert.equal(version.major, 1);
+ assert.equal(version.minor, 7);
+ assert.equal(version.maintenance, 0);
+ assert.equal(version.stage, 'SNAPSHOT');
+ assert.equal(version.revTs, 0);
+ assert.isNull(version.revHash);
+ });
+
+ test('Parse strip -DEV 1.7.0-DEV', () => {
+ const version = INSTANCE.parse('1.7.0-DEV');
+ assert.equal(version.major, 1);
+ assert.equal(version.minor, 7);
+ assert.equal(version.maintenance, 0);
+ assert.equal(version.stage, '');
+ });
+
+ test('Parse strip -n/a 1.7.0-n/a', () => {
+ const version = INSTANCE.parse('1.7.0-n/a');
+ assert.equal(version.major, 1);
+ assert.equal(version.minor, 7);
+ assert.equal(version.maintenance, 0);
+ assert.equal(version.stage, '');
+ });
+});
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/test/unit/defaultName.filter.test.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/test/unit/defaultName.filter.test.js b/modules/web-console/frontend/test/unit/defaultName.filter.test.js
new file mode 100644
index 0000000..5f28290
--- /dev/null
+++ b/modules/web-console/frontend/test/unit/defaultName.filter.test.js
@@ -0,0 +1,38 @@
+/*
+ * 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.
+ */
+
+import defaultName from '../../app/filters/default-name.filter';
+
+import { assert } from 'chai';
+
+const INSTANCE = defaultName[0]();
+
+suite('defaultName', () => {
+ test('defaultName filter', () => {
+ assert.equal(INSTANCE(''), '<default>');
+ assert.equal(INSTANCE(null), '<default>');
+ assert.equal(INSTANCE(undefined), '<default>');
+ assert.equal(INSTANCE('', false), '<default>');
+ assert.equal(INSTANCE(null, false), '<default>');
+ assert.equal(INSTANCE(undefined, false), '<default>');
+ assert.equal(INSTANCE('', true), '<default>');
+ assert.equal(INSTANCE(null, true), '<default>');
+ assert.equal(INSTANCE(undefined, true), '<default>');
+ assert.equal(INSTANCE("name", false), 'name');
+ assert.equal(INSTANCE("name", true), 'name');
+ });
+});
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/views/configuration/caches.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/configuration/caches.jade b/modules/web-console/frontend/views/configuration/caches.jade
index a1218ec..74d5505 100644
--- a/modules/web-console/frontend/views/configuration/caches.jade
+++ b/modules/web-console/frontend/views/configuration/caches.jade
@@ -45,9 +45,10 @@ include ../../app/helpers/jade/mixins.jade
div(ng-show='ui.expanded')
include ../../app/modules/states/configuration/caches/concurrency.jade
+ include ../../app/modules/states/configuration/caches/near-cache-client.jade
+ include ../../app/modules/states/configuration/caches/near-cache-server.jade
include ../../app/modules/states/configuration/caches/node-filter.jade
include ../../app/modules/states/configuration/caches/rebalance.jade
- include ../../app/modules/states/configuration/caches/server-near-cache.jade
include ../../app/modules/states/configuration/caches/statistics.jade
+advanced-options-toggle-default
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/views/configuration/clusters.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/configuration/clusters.jade b/modules/web-console/frontend/views/configuration/clusters.jade
index b79b1ea..8a3a194 100644
--- a/modules/web-console/frontend/views/configuration/clusters.jade
+++ b/modules/web-console/frontend/views/configuration/clusters.jade
@@ -41,10 +41,10 @@ include ../../app/helpers/jade/mixins.jade
+advanced-options-toggle-default
div(ng-show='ui.expanded')
-
include ../../app/modules/states/configuration/clusters/atomic.jade
include ../../app/modules/states/configuration/clusters/binary.jade
include ../../app/modules/states/configuration/clusters/cache-key-cfg.jade
+ include ../../app/modules/states/configuration/clusters/checkpoint.jade
include ../../app/modules/states/configuration/clusters/collision.jade
include ../../app/modules/states/configuration/clusters/communication.jade
include ../../app/modules/states/configuration/clusters/connector.jade
@@ -53,6 +53,7 @@ include ../../app/helpers/jade/mixins.jade
include ../../app/modules/states/configuration/clusters/events.jade
include ../../app/modules/states/configuration/clusters/failover.jade
include ../../app/modules/states/configuration/clusters/igfs.jade
+ include ../../app/modules/states/configuration/clusters/load-balancing.jade
include ../../app/modules/states/configuration/clusters/logger.jade
include ../../app/modules/states/configuration/clusters/marshaller.jade
include ../../app/modules/states/configuration/clusters/metrics.jade
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/views/configuration/domains-import.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/configuration/domains-import.jade b/modules/web-console/frontend/views/configuration/domains-import.jade
index e2eaf97..99014bc 100644
--- a/modules/web-console/frontend/views/configuration/domains-import.jade
+++ b/modules/web-console/frontend/views/configuration/domains-import.jade
@@ -28,8 +28,10 @@ mixin td-ellipses-lbl(w, lbl)
.modal-content(ignite-loading='importDomainFromDb' ignite-loading-text='{{importDomain.loadingOptions.text}}')
#errors-container.modal-header.header
button.close(ng-click='$hide()' aria-hidden='true') ×
- h4.modal-title(ng-if='!importDomain.demo') Import domain models from database
- h4.modal-title(ng-if='importDomain.demo') Import domain models from demo database
+ h4.modal-title()
+ i.fa.fa-database
+ span(ng-if='!importDomain.demo') Import domain models from database
+ span(ng-if='importDomain.demo') Import domain models from demo database
.modal-body
.import-domain-model-wizard-page(ng-if='importDomain.action == "drivers" && !importDomain.jdbcDriversNotFound')
.import-domain-model-wizard-page(ng-if='importDomain.action == "drivers" && importDomain.jdbcDriversNotFound')
@@ -144,14 +146,16 @@ mixin td-ellipses-lbl(w, lbl)
-var form = 'optionsForm'
form.form-horizontal(name=form novalidate)
- .settings-row.settings-row_small-label
- +java-package('Package:', 'ui.packageName', '"domainPackageName"', true, true, 'Package that will be used for POJOs generation')(data-container='.modal-domain-import')
.settings-row
+checkbox('Use Java built-in types for keys', 'ui.builtinKeys', '"domainBuiltinKeys"', 'Use Java built-in types like "Integer", "Long", "String" instead of POJO generation in case when table primary key contains only one field')
.settings-row
+checkbox('Use primitive types for NOT NULL table columns', 'ui.usePrimitives', '"domainUsePrimitives"', 'Use primitive types like "int", "long", "double" for POJOs fields generation in case of NOT NULL columns')
.settings-row
+checkbox('Generate aliases for query fields', 'ui.generateAliases', '"domainGenerateAliases"', 'Generate aliases for query fields with database field names when database field name differ from Java field name')
+ .settings-row
+ +checkbox('Generate POJO classes', 'ui.generatePojo', '"domainGeneratePojo"', 'If selected then POJO classes will be generated from database tables')
+ .settings-row.settings-row_small-label(ng-show='ui.generatePojo')
+ +java-package('Package:', 'ui.packageName', '"domainPackageName"', true, true, 'Package that will be used for POJOs generation')(data-container='.modal-domain-import')
.settings-row.settings-row_small-label
+ignite-form-field-dropdown('Clusters:', 'ui.generatedCachesClusters', '"generatedCachesClusters"', false, false, true,
'Choose clusters for generated caches', '', 'clusters',
@@ -160,4 +164,4 @@ mixin td-ellipses-lbl(w, lbl)
.modal-footer
label(ng-hide='importDomain.action == "drivers" || (importDomain.action == "connect" && importDomain.demo)').labelField {{importDomain.info}}
a.btn.btn-primary(ng-hide='importDomain.action == "drivers" || importDomain.action == "connect"' ng-click='importDomainPrev()' bs-tooltip='' data-title='{{prevTooltipText()}}' data-placement='bottom') Prev
- a.btn.btn-primary(ng-click='importDomainNext()' ng-disabled='!importDomainNextAvailable()' bs-tooltip='' data-title='{{nextTooltipText()}}' data-placement='bottom') {{importDomain.button}}
+ a.btn.btn-primary(ng-click='importDomainNext(optionsForm)' ng-disabled='!importDomainNextAvailable()' bs-tooltip='' data-title='{{nextTooltipText()}}' data-placement='bottom') {{importDomain.button}}
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/views/configuration/summary-project-structure.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/configuration/summary-project-structure.jade b/modules/web-console/frontend/views/configuration/summary-project-structure.jade
index aa09437..29d4538 100644
--- a/modules/web-console/frontend/views/configuration/summary-project-structure.jade
+++ b/modules/web-console/frontend/views/configuration/summary-project-structure.jade
@@ -19,7 +19,7 @@
button.close(id='summary-project-structure-close' ng-click='$hide()') ×
.popover-content
treecontrol.tree-classic(tree-model='projectStructure' options='projectStructureOptions' expanded-nodes='projectStructureExpanded')
- span(ng-switch='' on='node.type')
+ span(ng-switch='node.type')
span(ng-switch-when='folder')
label {{node.name}}
span(ng-switch-when='file')
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/views/configuration/summary.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/configuration/summary.jade b/modules/web-console/frontend/views/configuration/summary.jade
index 0d30df8..d041fea 100644
--- a/modules/web-console/frontend/views/configuration/summary.jade
+++ b/modules/web-console/frontend/views/configuration/summary.jade
@@ -53,16 +53,16 @@ mixin hard-link(ref, txt)
label Server
.panel-collapse(id='server' role='tabpanel' bs-collapse-target)
- ignite-ui-ace-tabs.summary-tabs
+ .summary-tabs(ignite-ui-ace-tabs)
div(bs-tabs data-bs-active-pane="tabsServer.activeTab" template='configuration/summary-tabs.html')
div(bs-pane title='XML')
- ignite-ui-ace-xml(ng-if='tabsServer.activeTab == 0 || tabsServer.init[0]' ng-init='tabsServer.init[0] = true' data-master='cluster' data-no-deep-watch)
+ ignite-ui-ace-spring(ng-if='tabsServer.activeTab == 0 || tabsServer.init[0]' ng-init='tabsServer.init[0] = true' data-master='cluster' data-generator='igniteConfiguration' data-no-deep-watch)
div(bs-pane title='Java')
- ignite-ui-ace-java(ng-if='tabsServer.activeTab == 1 || tabsServer.init[1]' ng-init='tabsServer.init[1] = true' data-master='cluster' data-no-deep-watch)
+ ignite-ui-ace-java(ng-if='tabsServer.activeTab == 1 || tabsServer.init[1]' ng-init='tabsServer.init[1] = true' data-master='cluster' data-generator='igniteConfiguration' data-no-deep-watch)
div(bs-pane title='POM')
- ignite-ui-ace-pom(ng-if='tabsServer.activeTab == 2 || tabsServer.init[2]' ng-init='tabsServer.init[2] = true' data-cluster='cluster' data-no-deep-watch)
+ ignite-ui-ace-pom(ng-if='tabsServer.activeTab == 2 || tabsServer.init[2]' ng-init='tabsServer.init[2] = true' data-cluster='cluster' data-generator='igniteConfiguration' data-no-deep-watch)
div(bs-pane title='Dockerfile')
- ignite-ui-ace-docker(ng-if='tabsServer.activeTab == 3 || tabsServer.init[3]' ng-init='tabsServer.init[3] = true' data-cluster='cluster' data-no-deep-watch ng-model='ctrl.data.docker')
+ ignite-ui-ace-docker(ng-if='tabsServer.activeTab == 3 || tabsServer.init[3]' ng-init='tabsServer.init[3] = true' data-cluster='cluster' data-generator='igniteConfiguration' data-no-deep-watch ng-model='ctrl.data.docker')
.panel.panel-default
.panel-heading(role='tab' bs-collapse-toggle)
@@ -70,53 +70,14 @@ mixin hard-link(ref, txt)
label Client
.panel-collapse(id='client' role='tabpanel' bs-collapse-target)
- -var form = 'clientForm'
- form(name=form novalidate)
- -var nearCfg = 'ctrl.cluster.clientNearCfg'
- -var nearCfgEvictionPolicy = nearCfg + '.nearEvictionPolicy[' + nearCfg + '.nearEvictionPolicy.kind]'
-
- .group-content
- .settings-row(ng-if='true')
- .col-xs-8.col-sm-8.col-md-7
- +ignite-form-field-number('Near cache start size:', nearCfg + '.nearStartSize', '"nearStartSize"', false, false, '375000', false, false, false, 'Initial cache size for near cache which will be used to pre-create internal hash table after start')
-
- .settings-row(ng-if='true')
- .col-xs-8.col-sm-8.col-md-7
- +ignite-form-field-dropdown('Near cache eviction policy', nearCfg + '.nearEvictionPolicy.kind', '"evictionPolicies"', false, false, false, 'Not set', false, '[\
- {value: "LRU", label: "LRU"},\
- {value: "FIFO", label: "FIFO"},\
- {value: "SORTED", label: "Sorted"},\
- {value: undefined, label: "Not set"}\
- ]', 'Near cache eviction policy')
-
- span(ng-if='#{nearCfg}.nearEvictionPolicy.kind')
- a.customize(
- ng-show='ctrl.__form.expanded'
- ng-click='ctrl.__form.expanded = false'
- ) Hide settings
- a.customize(
- ng-hide='ctrl.__form.expanded'
- ng-click='ctrl.__form.expanded = true'
- ) Show settings
-
- .settings-row
- .panel-details.col-xs-12.col-sm-12.col-md-7(ng-if='ctrl.__form.expanded && #{nearCfg}.nearEvictionPolicy.kind')
- .details-row
- +ignite-form-field-number('Batch size:', nearCfgEvictionPolicy + '.batchSize', '"batchSize"', false, false, '1', false, false, false, 'Number of entries to remove on shrink')
-
- .details-row
- +ignite-form-field-number('Max memory size:', nearCfgEvictionPolicy + '.maxMemorySize', '"maxMemorySize"', false, false, '0', false, false, false, 'Maximum allowed cache size in bytes')
-
- .details-row
- +ignite-form-field-number('Max size:', nearCfgEvictionPolicy + '.maxSize', '"maxSize"', false, false, '100000', false, false, false, 'Maximum allowed size of cache before entry will start getting evicted')
-
.summary-tabs(ignite-ui-ace-tabs)
div(bs-tabs data-bs-active-pane="tabsClient.activeTab" template='configuration/summary-tabs.html')
div(bs-pane title='XML')
- ignite-ui-ace-xml(ng-if='tabsClient.activeTab == 0 || tabsClient.init[0]' ng-init='tabsClient.init[0] = true' data-master='cluster' data-no-deep-watch data-cluster-cfg='#{nearCfg}')
+ ignite-ui-ace-spring(ng-if='tabsClient.activeTab == 0 || tabsClient.init[0]' ng-init='tabsClient.init[0] = true' data-master='cluster' data-generator='igniteConfiguration' data-client='true' data-no-deep-watch)
div(bs-pane title='Java')
- ignite-ui-ace-java(ng-if='tabsClient.activeTab == 1 || tabsClient.init[1]' ng-init='tabsClient.init[1] = true' data-master='cluster' data-no-deep-watch data-cluster-cfg='#{nearCfg}')
+ ignite-ui-ace-java(ng-if='tabsClient.activeTab == 1 || tabsClient.init[1]' ng-init='tabsClient.init[1] = true' data-master='cluster' data-generator='igniteConfiguration' data-client='true' data-no-deep-watch)
div(bs-pane title='POM')
- ignite-ui-ace-pom(ng-if='tabsClient.activeTab == 2 || tabsClient.init[2]' ng-init='tabsClient.init[2] = true' data-cluster='cluster' data-no-deep-watch)
+ ignite-ui-ace-pom(ng-if='tabsClient.activeTab == 2 || tabsClient.init[2]' ng-init='tabsClient.init[2] = true' data-cluster='cluster' data-generator='igniteConfiguration' data-client='true' data-no-deep-watch)
div(bs-pane title='POJO' ng-if='cluster | hasPojo')
ignite-ui-ace-pojos(ng-if='tabsClient.activeTab == 3 || tabsClient.init[3]' ng-init='tabsClient.init[3] = true' data-cluster='cluster' data-no-deep-watch ng-model='ctrl.data.pojos')
+
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/views/sql/cache-metadata.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/sql/cache-metadata.jade b/modules/web-console/frontend/views/sql/cache-metadata.jade
index 450c178..385960a 100644
--- a/modules/web-console/frontend/views/sql/cache-metadata.jade
+++ b/modules/web-console/frontend/views/sql/cache-metadata.jade
@@ -21,7 +21,7 @@
input.form-control(type='text' ng-model='metaFilter' placeholder='Filter metadata...')
.popover-content(ng-if='metadata && metadata.length > 0')
treecontrol.tree-classic(tree-model='metadata' options='metaOptions' filter-expression='metaFilter')
- span(ng-switch='' on='node.type')
+ span(ng-switch='node.type')
span(ng-switch-when='type' ng-dblclick='dblclickMetadata(paragraph, node)')
i.fa.fa-table
label.clickable(ng-bind='node.displayName')
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/views/sql/notebook-new.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/sql/notebook-new.jade b/modules/web-console/frontend/views/sql/notebook-new.jade
index 09b2dae..8d9e8c4 100644
--- a/modules/web-console/frontend/views/sql/notebook-new.jade
+++ b/modules/web-console/frontend/views/sql/notebook-new.jade
@@ -19,7 +19,9 @@
.modal-content
.modal-header
button.close(ng-click='$hide()') ×
- h4.modal-title New SQL notebook
+ h4.modal-title
+ i.fa.fa-file-o
+ | New SQL notebook
form.form-horizontal.modal-body.row(name='ui.inputForm' novalidate)
div
.col-sm-2
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/views/sql/sql.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/sql/sql.jade b/modules/web-console/frontend/views/sql/sql.jade
index 81acdfd..4a596b9 100644
--- a/modules/web-console/frontend/views/sql/sql.jade
+++ b/modules/web-console/frontend/views/sql/sql.jade
@@ -14,6 +14,8 @@
See the License for the specific language governing permissions and
limitations under the License.
+include ../../app/directives/ui-grid-settings/ui-grid-settings.jade
+
mixin btn-toolbar(btn, click, tip, focusId)
i.btn.btn-default.fa(class=btn ng-click=click bs-tooltip='' data-title=tip ignite-on-click-focus=focusId data-trigger='hover' data-placement='bottom')
@@ -82,36 +84,70 @@ mixin paragraph-rename
.input-tip
input.form-control(id='paragraph-name-{{paragraph.id}}' ng-model='paragraph.editName' required ng-click='$event.stopPropagation();' ignite-on-enter='renameParagraph(paragraph, paragraph.editName)' ignite-on-escape='paragraph.edit = false')
+mixin query-settings
+ label.tipLabel Refresh rate:
+ button.btn.btn-default.fa.fa-clock-o.tipLabel(title='Click to show refresh rate dialog' ng-class='{"btn-info": paragraph.rate && paragraph.rate.installed}' bs-popover data-template-url='/sql/paragraph-rate.html' data-placement='left' data-auto-close='1' data-trigger='click') {{rateAsString(paragraph)}}
+ label.tipLabel Page size:
+ button.btn.btn-default.select-toggle.tipLabel(ng-model='paragraph.pageSize' bs-options='item for item in pageSizes' bs-select bs-tooltip data-placement='bottom-right' data-title='Max number of rows to show in query result as one page')
+ label.margin-left-dflt(title='Fetch first page of results only')
+ input(type='checkbox' ng-model='paragraph.firstPageOnly')
+ span Fetch first page only
+ label.margin-left-dflt(title='Execute query locally on selected node.\nNode selection dialog will be shown before query execution.')
+ input(type='checkbox' ng-model='paragraph.localQry')
+ span Local query
+
+mixin query-actions
+ .btn-group(bs-tooltip='' data-title='{{actionTooltip(paragraph, "execute", true)}}' data-placement='bottom')
+ button.btn.btn-primary(ng-disabled='!actionAvailable(paragraph, true)' ng-click='execute(paragraph)') Execute
+ button.btn.btn-primary.dropdown-toggle(
+ ng-disabled='!actionAvailable(paragraph, true)'
+ bs-dropdown=''
+ data-container='body'
+ data-placement='bottom-right'
+ )
+ span.caret
+ ul.dropdown-menu(role='menu')
+ li #[a(href='javascript:void(0)' ng-click='execute(paragraph)') Execute]
+ li #[a(href='javascript:void(0)' ng-if='nonCollocatedJoinsAvailable(paragraph)' ng-click='execute(paragraph, true)') Execute non collocated joins]
+ .btn-group(bs-tooltip='' data-title='{{actionTooltip(paragraph, "execute scan", false)}}' data-placement='bottom')
+ button.btn.btn-primary(ng-disabled='!actionAvailable(paragraph, false)' ng-click='scan(paragraph)') Scan
+ button.btn.btn-primary.dropdown-toggle(
+ ng-disabled='!actionAvailable(paragraph, false)'
+ bs-dropdown=''
+ data-container='body'
+ data-placement='bottom-right'
+ )
+ span.caret
+ ul.dropdown-menu(role='menu')
+ li #[a(href='javascript:void(0)' ng-click='scan(paragraph)') Scan]
+ li #[a(href='javascript:void(0)' ng-click='actionAvailable(paragraph, false) && scanWithFilter(paragraph)') Scan with filter]
+ a.btn.btn-default(ng-disabled='!actionAvailable(paragraph, true)' ng-click='explain(paragraph)' data-placement='bottom' bs-tooltip='' data-title='{{actionTooltip(paragraph, "explain", true)}}') Explain
+
mixin query-controls
.sql-controls
- a.btn.btn-primary(ng-disabled='!actionAvailable(paragraph, true)' ng-click='execute(paragraph)' data-placement='bottom' bs-tooltip='' data-title='{{actionTooltip(paragraph, "execute", true)}}') Execute
- a.btn.btn-primary(ng-disabled='!actionAvailable(paragraph, true)' ng-click='explain(paragraph)' data-placement='bottom' bs-tooltip='' data-title='{{actionTooltip(paragraph, "explain", true)}}') Explain
- .btn-group(bs-tooltip='' data-title='{{actionTooltip(paragraph, "execute scan", false)}}' data-placement='bottom')
- a.btn.btn-primary.fieldButton(ng-disabled='!actionAvailable(paragraph, false)' ng-click='scan(paragraph)') Scan
- a.btn.btn-primary(ng-disabled='!actionAvailable(paragraph, false)' data-toggle='dropdown' data-container='body' bs-dropdown='[{ text: "Scan with filter", click: "actionAvailable(paragraph, false) && scanWithFilter(paragraph)" }]')
- span.caret
-
+ +query-actions()
.pull-right
- label.tipLabel System columns:
- a.btn.btn-default.fa.fa-bars.tipLabel(ng-class='{"btn-info": paragraph.systemColumns}' ng-click='toggleSystemColumns(paragraph)' ng-disabled='paragraph.disabledSystemColumns' bs-tooltip data-title='Show "_KEY", "_VAL" columns')
- label.tipLabel Refresh rate:
- button.btn.btn-default.fa.fa-clock-o.tipLabel(title='Click to show refresh rate dialog' ng-class='{"btn-info": paragraph.rate && paragraph.rate.installed}' bs-popover data-template-url='/sql/paragraph-rate.html' data-placement='left' data-auto-close='1' data-trigger='click') {{rateAsString(paragraph)}}
- label.tipLabel Page size:
- button.select-toggle.fieldButton.btn.btn-default(ng-model='paragraph.pageSize' bs-options='item for item in pageSizes' bs-select bs-tooltip data-placement='bottom-right' data-title='Max number of rows to show in query result as one page')
+ +query-settings()
mixin table-result
.total.row
.col-xs-4
+ +ui-grid-settings
label Page: #[b {{paragraph.page}}]
label.margin-left-dflt Results so far: #[b {{paragraph.rows.length + paragraph.total}}]
label.margin-left-dflt Duration: #[b {{paragraph.duration | duration}}]
.col-xs-4
+result-toolbar
.col-xs-4
- .btn-group.pull-right(ng-disabled='paragraph.loading')
- button.btn.btn-primary.fieldButton(ng-click='exportCsv(paragraph)' bs-tooltip data-title='{{actionTooltip(paragraph, "export", false)}}') Export
- button.btn.btn-primary(id='export-item-dropdown' data-toggle='dropdown' data-container='body' bs-dropdown='exportDropdown' data-placement='bottom-right')
- span.caret
+ .pull-right
+ label(style='margin-right: 10px;')
+ input(type='checkbox' ng-model='paragraph.systemColumns' ng-change='toggleSystemColumns(paragraph)' ng-disabled='paragraph.disabledSystemColumns')
+ span Show _KEY, _VAL columns
+ .btn-group(ng-disabled='paragraph.loading')
+ button.btn.btn-primary(ng-click='exportCsv(paragraph)' bs-tooltip data-title='{{actionTooltip(paragraph, "export", false)}}') Export
+ button.btn.btn-primary.dropdown-toggle(id='export-item-dropdown' data-toggle='dropdown' data-container='body' bs-dropdown='exportDropdown' data-placement='bottom-right')
+ span.caret
+
.grid(ui-grid='paragraph.gridOptions' ui-grid-resize-columns ui-grid-exporter)
mixin chart-result
@@ -161,15 +197,15 @@ mixin chart-result
.col-xs-4.col-sm-3
div(ng-show='caches.length > 0' style='padding: 5px 10px' st-table='displayedCaches' st-safe-src='caches')
lable.labelField.labelFormField Caches:
- i.fa.fa-database.tipField(title='Click to show cache types metadata dialog' bs-popover data-template-url='/sql/cache-metadata.html' data-placement='bottom' data-trigger='click' data-container='#{{ paragraph.id}}')
+ i.fa.fa-database.tipField(title='Click to show cache types metadata dialog' bs-popover data-template-url='/sql/cache-metadata.html' data-placement='bottom' data-trigger='click' data-container='#{{ paragraph.id }}')
.input-tip
input.form-control(type='text' st-search='label' placeholder='Filter caches...')
table.links
tbody.scrollable-y(style='max-height: 15em; display: block;')
tr(ng-repeat='cache in displayedCaches track by cache.name')
td(style='width: 100%')
- input.labelField(id='cache{{$index}}' type='radio' value='{{cache.name}}' ng-model='paragraph.cacheName')
- label(for='cache{{$index}}' ng-bind='cache.label')
+ input.labelField(id='cache_{{ [paragraph.id, $index].join("_") }}' type='radio' value='{{cache.name}}' ng-model='paragraph.cacheName')
+ label(for='cache_{{ [paragraph.id, $index].join("_") }} ' ng-bind='cache.label')
.empty-caches(ng-show='displayedCaches.length == 0 && caches.length != 0')
label Wrong caches filter
.empty-caches(ng-show='caches.length == 0')
@@ -183,10 +219,10 @@ mixin chart-result
+table-result
.chart(ng-switch-when='chart')
+chart-result
- .footer.clearfix(ng-show='paragraph.nonRefresh()')
+ .footer.clearfix
a.pull-left(ng-click='showResultQuery(paragraph)') Show query
- -var nextVisibleCondition = 'paragraph.queryId && (paragraph.table() || paragraph.chart() && (paragraph.timeLineSupported() || !paragraph.chartTimeLineEnabled()))'
+ -var nextVisibleCondition = 'paragraph.resultType() != "error" && paragraph.queryId && paragraph.nonRefresh() && (paragraph.table() || paragraph.chart() && !paragraph.scanExplain())'
.pull-right(ng-show=nextVisibleCondition ng-class='{disabled: paragraph.loading}' ng-click='!paragraph.loading && nextPage(paragraph)')
i.fa.fa-chevron-circle-right
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/views/templates/agent-download.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/agent-download.jade b/modules/web-console/frontend/views/templates/agent-download.jade
index 864694b..a6da3d1 100644
--- a/modules/web-console/frontend/views/templates/agent-download.jade
+++ b/modules/web-console/frontend/views/templates/agent-download.jade
@@ -18,8 +18,10 @@
.modal-dialog
.modal-content
#errors-container.modal-header.header
- h4.modal-title(ng-if='!hasAgents') Connection to Ignite Web Agent is not established
- h4.modal-title(ng-if='hasAgents') Connection to Ignite Node is not established
+ h4.modal-title
+ i.fa.fa-download
+ span(ng-if='!hasAgents') Connection to Ignite Web Agent is not established
+ span(ng-if='hasAgents') Connection to Ignite Node is not established
.agent-download(ng-if='!hasAgents')
p Please download and run #[a(href='javascript:void(0)' ng-click='downloadAgent()') ignite-web-agent] in order to {{::agentGoal}}
p For run:
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/views/templates/batch-confirm.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/batch-confirm.jade b/modules/web-console/frontend/views/templates/batch-confirm.jade
index 7451314..c5d3775 100644
--- a/modules/web-console/frontend/views/templates/batch-confirm.jade
+++ b/modules/web-console/frontend/views/templates/batch-confirm.jade
@@ -19,7 +19,9 @@
.modal-content
.modal-header
button.close(ng-click='cancel()' aria-hidden='true') ×
- h4.modal-title Confirmation
+ h4.modal-title
+ i.fa.fa-question
+ | Confirmation
.modal-body(ng-show='content')
p(ng-bind-html='content' style='text-align: center')
.modal-footer
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/views/templates/clone.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/clone.jade b/modules/web-console/frontend/views/templates/clone.jade
index d68bf45..6cf93ca 100644
--- a/modules/web-console/frontend/views/templates/clone.jade
+++ b/modules/web-console/frontend/views/templates/clone.jade
@@ -21,7 +21,9 @@ include ../../app/helpers/jade/mixins.jade
.modal-content
.modal-header
button.close(ng-click='$hide()') ×
- h4.modal-title Clone
+ h4.modal-title
+ i.fa.fa-clone
+ | Clone
form.form-horizontal.modal-body.row(name='ui.inputForm' novalidate)
div
.col-sm-2
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/views/templates/confirm.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/confirm.jade b/modules/web-console/frontend/views/templates/confirm.jade
index 26af061..f9f966b 100644
--- a/modules/web-console/frontend/views/templates/confirm.jade
+++ b/modules/web-console/frontend/views/templates/confirm.jade
@@ -19,7 +19,9 @@
.modal-content
.modal-header
button.close(ng-click='confirmCancel()' aria-hidden='true') ×
- h4.modal-title Confirmation
+ h4.modal-title
+ i.fa.fa-question-circle-o
+ | Confirmation
.modal-body(ng-show='content')
p(ng-bind-html='content' style='text-align: center;')
.modal-footer
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/views/templates/demo-info.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/demo-info.jade b/modules/web-console/frontend/views/templates/demo-info.jade
index 100e806..44c091c 100644
--- a/modules/web-console/frontend/views/templates/demo-info.jade
+++ b/modules/web-console/frontend/views/templates/demo-info.jade
@@ -19,7 +19,9 @@
.modal-content
#errors-container.modal-header.header
button.close(ng-click='close()' aria-hidden='true') ×
- h4.modal-title {{title}}
+ h4.modal-title
+ i.fa.fa-info-circle
+ | {{title}}
.modal-body
div(ng-bind-html='message')
div(ng-hide='hasAgents')
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/views/templates/getting-started.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/getting-started.jade b/modules/web-console/frontend/views/templates/getting-started.jade
index 98bc265..3a89035 100644
--- a/modules/web-console/frontend/views/templates/getting-started.jade
+++ b/modules/web-console/frontend/views/templates/getting-started.jade
@@ -19,7 +19,9 @@
.modal-content
#errors-container.modal-header.header
button.close(ng-click='close()' aria-hidden='true') ×
- h4.modal-title {{title}}
+ h4.modal-title
+ i.fa.fa-book
+ | {{title}}
.getting-started
.col-xs-12(ng-bind-html='message')
.modal-footer
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/views/templates/message.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/message.jade b/modules/web-console/frontend/views/templates/message.jade
index 6dcf445..6eff74b 100644
--- a/modules/web-console/frontend/views/templates/message.jade
+++ b/modules/web-console/frontend/views/templates/message.jade
@@ -19,7 +19,9 @@
.modal-content
.modal-header
button.close(ng-click='$hide()' aria-hidden='true') ×
- h4.modal-title {{title}}
+ h4.modal-title
+ i.fa.fa-info-circle
+ | {{title}}
.modal-body(ng-show='content')
p(ng-bind-html='content.join("<br/>")' style='text-align: left;')
.modal-footer
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/frontend/views/templates/select.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/select.jade b/modules/web-console/frontend/views/templates/select.jade
index 3feee61..5b6cc01 100644
--- a/modules/web-console/frontend/views/templates/select.jade
+++ b/modules/web-console/frontend/views/templates/select.jade
@@ -21,6 +21,6 @@ ul.select.dropdown-menu(tabindex='-1' ng-show='$isVisible()' role='select')
hr(style='margin: 5px 0')
li(role='presentation' ng-repeat='match in $matches')
hr(ng-if='match.value == undefined' style='margin: 5px 0')
- a(id='li-dropdown-item-{{$index}}' role='menuitem' tabindex='-1' ng-class='{active: $isActive($index)}' ng-click='$select($index, $event)' bs-tooltip='widthIsSufficient && !widthIsSufficient("li-dropdown-item-{{$index}}", $index, match.label) ? match.label : ""' data-placement='bottom')
+ a(id='li-dropdown-item-{{$index}}' role='menuitem' tabindex='-1' ng-class='{active: $isActive($index)}' ng-click='$select($index, $event)' bs-tooltip='widthIsSufficient && !widthIsSufficient("li-dropdown-item-{{$index}}", $index, match.label) ? match.label : ""' data-placement='right auto')
i(class='{{$iconCheckmark}}' ng-if='$isActive($index)' ng-class='{active: $isActive($index)}')
span(ng-bind='match.label')
http://git-wip-us.apache.org/repos/asf/ignite/blob/087f6405/modules/web-console/web-agent/src/main/java/org/apache/ignite/console/demo/AgentClusterDemo.java
----------------------------------------------------------------------
diff --git a/modules/web-console/web-agent/src/main/java/org/apache/ignite/console/demo/AgentClusterDemo.java b/modules/web-console/web-agent/src/main/java/org/apache/ignite/console/demo/AgentClusterDemo.java
index 09189b5..2fb9f56 100644
--- a/modules/web-console/web-agent/src/main/java/org/apache/ignite/console/demo/AgentClusterDemo.java
+++ b/modules/web-console/web-agent/src/main/java/org/apache/ignite/console/demo/AgentClusterDemo.java
@@ -333,7 +333,7 @@ public class AgentClusterDemo {
private static IgniteConfiguration igniteConfiguration(int gridIdx, boolean client) {
IgniteConfiguration cfg = new IgniteConfiguration();
- cfg.setGridName((client ? "demo-server-" : "demo-client-") + gridIdx);
+ cfg.setGridName((client ? "demo-client-" : "demo-server-" ) + gridIdx);
cfg.setLocalHost("127.0.0.1");
cfg.setIncludeEventTypes(EVTS_DISCOVERY);