IGNITE-5697 Web Console: Upgrade dependencies.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/f277530a Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/f277530a Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/f277530a Branch: refs/heads/ignite-5757 Commit: f277530ab6a9a6f03fd66f95a7a4d91a3506dcf5 Parents: 39fa8fa Author: Andrey Novikov <[email protected]> Authored: Tue Jul 25 15:24:13 2017 +0700 Committer: Andrey Novikov <[email protected]> Committed: Tue Jul 25 15:24:13 2017 +0700 ---------------------------------------------------------------------- modules/web-console/backend/.eslintrc | 39 ++++++------ modules/web-console/backend/package.json | 27 ++++---- modules/web-console/frontend/.eslintrc | 40 +++++------- modules/web-console/frontend/app/app.js | 37 ++++++----- .../components/activities-user-dialog/index.js | 28 ++++----- .../page-configure-advanced/controller.js | 9 +-- .../components/page-configure-basic/service.js | 8 +-- .../app/components/page-configure/controller.js | 12 +--- .../page-configure/controller.spec.js | 48 -------------- .../page-configure/services/PageConfigure.js | 18 +++--- .../components/web-console-header/component.js | 12 ++-- .../app/components/web-console-header/index.js | 4 +- .../frontend/app/modules/ace.module.js | 6 +- .../app/modules/branding/branding.module.js | 16 +++-- .../generator/ConfigurationGenerator.js | 2 +- .../generator/PlatformGenerator.js | 4 +- .../frontend/app/modules/demo/Demo.module.js | 10 +-- .../app/modules/dialog/dialog.controller.js | 4 -- .../app/modules/form/field/label.directive.js | 4 +- .../app/modules/form/field/tooltip.directive.js | 4 +- .../frontend/app/modules/sql/sql.controller.js | 2 +- .../frontend/app/modules/sql/sql.module.js | 66 ++++++++++---------- .../frontend/app/modules/states/admin.state.js | 6 +- .../app/modules/states/configuration.state.js | 35 ++++++----- .../summary/summary-zipper.service.js | 2 +- .../frontend/app/modules/states/errors.state.js | 4 +- .../frontend/app/modules/states/logout.state.js | 12 ++-- .../app/modules/states/password.state.js | 4 +- .../app/modules/states/profile.state.js | 9 ++- .../frontend/app/modules/states/signin.state.js | 32 +++++----- .../app/modules/user/AclRoute.provider.js | 6 +- .../frontend/app/modules/user/user.module.js | 30 ++++++++- .../app/services/CopyToClipboard.service.js | 4 +- .../app/services/LegacyTable.service.js | 2 +- modules/web-console/frontend/app/vendor.js | 8 ++- modules/web-console/frontend/package.json | 57 ++++++++--------- modules/web-console/frontend/views/index.pug | 14 +---- 37 files changed, 292 insertions(+), 333 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/backend/.eslintrc ---------------------------------------------------------------------- diff --git a/modules/web-console/backend/.eslintrc b/modules/web-console/backend/.eslintrc index 7eb04b7..1915518 100644 --- a/modules/web-console/backend/.eslintrc +++ b/modules/web-console/backend/.eslintrc @@ -3,19 +3,21 @@ env: node: true mocha: true -ecmaFeatures: - arrowFunctions: true - blockBindings: true - classes: true - defaultParams: true - destructuring: true - module: true - objectLiteralComputedProperties: true - objectLiteralShorthandMethods: true - objectLiteralShorthandProperties: true - spread: true - templateStrings: true - experimentalObjectRestSpread: true +parserOptions: + sourceType: module + ecmaFeatures: + arrowFunctions: true + blockBindings: true + classes: true + defaultParams: true + destructuring: true + module: true + objectLiteralComputedProperties: true + objectLiteralShorthandMethods: true + objectLiteralShorthandProperties: true + spread: true + templateStrings: true + experimentalObjectRestSpread: true globals: _: true @@ -47,7 +49,7 @@ rules: guard-for-in: 1 handle-callback-err: 0 id-length: [2, {"min": 1, "max": 60}] - indent: [2, 4, {"SwitchCase": 1}] + indent: [2, 4, {"SwitchCase": 1, "MemberExpression": "off", "CallExpression": {"arguments": "off"}}] key-spacing: [2, { "beforeColon": false, "afterColon": true }] lines-around-comment: 0 linebreak-style: [0, "unix"] @@ -104,7 +106,7 @@ rules: no-loop-func: 2 no-mixed-requires: [0, false] no-mixed-spaces-and-tabs: [2, true] - no-multi-spaces: 2 + no-multi-spaces: ["error", {"exceptions": { "VariableDeclarator": true }}] no-multi-str: 2 no-multiple-empty-lines: [0, {"max": 2}] no-native-reassign: 2 @@ -130,7 +132,7 @@ rules: no-script-url: 0 no-self-compare: 2 no-sequences: 2 - no-shadow: 2 + no-shadow: 0 no-shadow-restricted-names: 2 no-spaced-func: 2 no-sparse-arrays: 1 @@ -162,7 +164,7 @@ rules: prefer-const: 1 prefer-spread: 2 quote-props: [2, "as-needed"] - quotes: [2, "single"] + quotes: [2, "single", {"allowTemplateLiterals": true}] radix: 1 semi: [2, "always"] semi-spacing: [2, {"before": false, "after": true}] @@ -181,6 +183,3 @@ rules: wrap-iife: 0 wrap-regex: 0 yoda: [2, "never"] - -parserOptions: - sourceType: module http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/backend/package.json ---------------------------------------------------------------------- diff --git a/modules/web-console/backend/package.json b/modules/web-console/backend/package.json index 2af7787..837f41c 100644 --- a/modules/web-console/backend/package.json +++ b/modules/web-console/backend/package.json @@ -29,19 +29,19 @@ "win32" ], "dependencies": { - "body-parser": "1.17.1", + "body-parser": "1.17.2", "connect-mongo": "1.3.2", - "cookie-parser": "~1.4.0", - "express": "4.15.2", - "express-session": "1.15.2", + "cookie-parser": "1.4.3", + "express": "4.15.3", + "express-session": "1.15.4", "fire-up": "1.0.0", - "glob": "7.1.1", + "glob": "7.1.2", "jszip": "3.1.3", "lodash": "4.17.4", - "mongoose": "4.9.4", - "morgan": "1.8.1", + "mongoose": "4.11.4", + "morgan": "1.8.2", "nconf": "0.8.4", - "nodemailer": "3.1.4", + "nodemailer": "4.0.1", "passport": "0.3.2", "passport-local": "1.0.0", "passport-local-mongoose": "4.0.0", @@ -49,12 +49,11 @@ "socket.io": "1.7.3" }, "devDependencies": { - "chai": "3.5.0", - "cross-env": "4.0.0", - "eslint": "3.19.0", - "eslint-friendly-formatter": "2.0.7", - "jasmine-core": "2.5.2", - "mocha": "3.2.0", + "chai": "4.1.0", + "cross-env": "5.0.1", + "eslint": "4.3.0", + "eslint-friendly-formatter": "3.0.0", + "mocha": "3.4.2", "mocha-teamcity-reporter": "1.1.1", "mockgoose": "6.0.8", "supertest": "3.0.0" http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/.eslintrc ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/.eslintrc b/modules/web-console/frontend/.eslintrc index d88fb97..4e24d0b 100644 --- a/modules/web-console/frontend/.eslintrc +++ b/modules/web-console/frontend/.eslintrc @@ -6,20 +6,21 @@ plugins: env: es6: true browser: true - -ecmaFeatures: - arrowFunctions: true - blockBindings: true - classes: true - defaultParams: true - destructuring: true - module: true - objectLiteralComputedProperties: true - objectLiteralShorthandMethods: true - objectLiteralShorthandProperties: true - spread: true - templateStrings: true - experimentalObjectRestSpread: true +parserOptions: + sourceType: module + ecmaFeatures: + arrowFunctions: true + blockBindings: true + classes: true + defaultParams: true + destructuring: true + module: true + objectLiteralComputedProperties: true + objectLiteralShorthandMethods: true + objectLiteralShorthandProperties: true + spread: true + templateStrings: true + experimentalObjectRestSpread: true globals: _: true @@ -29,10 +30,6 @@ globals: window: true global: true angular: true - $generatorCommon: true - $generatorSpring: true - $generatorJava: true - $generatorOptional: true saveAs: true process: true require: true @@ -63,7 +60,7 @@ rules: guard-for-in: 1 handle-callback-err: 0 id-length: [2, {"min": 1, "max": 60}] - indent: [2, 4, {"SwitchCase": 1}] + indent: [2, 4, {"SwitchCase": 1, "MemberExpression": "off", "CallExpression": {"arguments": "off"}}] key-spacing: [2, { "beforeColon": false, "afterColon": true }] lines-around-comment: 0 linebreak-style: [0, "unix"] @@ -138,7 +135,7 @@ rules: no-path-concat: 0 no-plusplus: 0 no-process-env: 0 - no-process-exit: 1 + no-process-exit: 0 no-proto: 2 no-redeclare: 2 no-regex-spaces: 1 @@ -198,6 +195,3 @@ rules: wrap-regex: 0 yoda: [2, "never"] babel/semi: 2 - -parserOptions: - sourceType: module http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/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 0667e8f..e2d609a 100644 --- a/modules/web-console/frontend/app/app.js +++ b/modules/web-console/frontend/app/app.js @@ -133,8 +133,7 @@ import IgniteModules from 'IgniteModules/index'; import baseTemplate from 'views/base.pug'; -angular -.module('ignite-console', [ +angular.module('ignite-console', [ // Optional AngularJS modules. 'ngAnimate', 'ngSanitize', @@ -143,6 +142,7 @@ angular 'btford.socket-io', 'mgcrea.ngStrap', 'ui.router', + 'ui.router.state.events', 'gridster', 'dndLists', 'nvd3', @@ -278,33 +278,32 @@ angular $urlRouterProvider.otherwise('/404'); $locationProvider.html5Mode(true); }]) -.run(['$rootScope', '$state', 'MetaTags', 'gettingStarted', ($root, $state, $meta, gettingStarted) => { +.run(['$rootScope', '$state', 'gettingStarted', ($root, $state, gettingStarted) => { $root._ = _; $root.$state = $state; - $root.$meta = $meta; $root.gettingStarted = gettingStarted; }]) .run(['$rootScope', 'AgentManager', ($root, agentMgr) => { $root.$on('user', () => agentMgr.connect()); }]) -.run(['$rootScope', ($root) => { - $root.$on('$stateChangeStart', () => { +.run(['$transitions', ($transitions) => { + $transitions.onStart({ }, () => { _.forEach(angular.element('.modal'), (m) => angular.element(m).scope().$hide()); }); - if (!$root.IgniteDemoMode) { - $root.$on('$stateChangeSuccess', (event, {name, unsaved}, params) => { - try { - if (unsaved) - localStorage.removeItem('lastStateChangeSuccess'); - else - localStorage.setItem('lastStateChangeSuccess', JSON.stringify({name, params})); - } - catch (ignored) { - // No-op. - } - }); - } + $transitions.onSuccess({ }, (trans) => { + try { + const {name, params, unsaved} = trans.$to(); + + if (unsaved) + localStorage.removeItem('lastStateChangeSuccess'); + else + localStorage.setItem('lastStateChangeSuccess', JSON.stringify({name, params})); + } + catch (ignored) { + // No-op. + } + }); }]) .run(['$rootScope', '$http', '$state', 'IgniteMessages', 'User', 'IgniteNotebookData', ($root, $http, $state, Messages, User, Notebook) => { // eslint-disable-line no-shadow http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/components/activities-user-dialog/index.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/activities-user-dialog/index.js b/modules/web-console/frontend/app/components/activities-user-dialog/index.js index 02c7c1e..13c1d95 100644 --- a/modules/web-console/frontend/app/components/activities-user-dialog/index.js +++ b/modules/web-console/frontend/app/components/activities-user-dialog/index.js @@ -15,20 +15,20 @@ * limitations under the License. */ - import controller from './activities-user-dialog.controller'; - import templateUrl from './activities-user-dialog.tpl.pug'; +import controller from './activities-user-dialog.controller'; +import templateUrl from './activities-user-dialog.tpl.pug'; - export default ['$modal', ($modal) => ({ show = true, user }) => { - const ActivitiesUserDialog = $modal({ - templateUrl, - show, - resolve: { - user: () => user - }, - controller, - controllerAs: 'ctrl' - }); +export default ['$modal', ($modal) => ({ show = true, user }) => { + const ActivitiesUserDialog = $modal({ + templateUrl, + show, + resolve: { + user: () => user + }, + controller, + controllerAs: 'ctrl' + }); - return ActivitiesUserDialog.$promise + return ActivitiesUserDialog.$promise .then(() => ActivitiesUserDialog); - }]; +}]; http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/components/page-configure-advanced/controller.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/controller.js b/modules/web-console/frontend/app/components/page-configure-advanced/controller.js index 0e73ae3..da20527 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/controller.js +++ b/modules/web-console/frontend/app/components/page-configure-advanced/controller.js @@ -16,7 +16,7 @@ */ export default class PageConfigureAdvancedController { - static $inject = ['PageConfigureAdvanced', '$scope']; + static $inject = ['$scope']; static menuItems = [ { text: 'Clusters', sref: 'base.configuration.tabs.advanced.clusters' }, @@ -26,14 +26,11 @@ export default class PageConfigureAdvancedController { { text: 'Summary', sref: 'base.configuration.tabs.advanced.summary' } ]; - constructor(PageConfigureAdvanced, $scope) { - Object.assign(this, {PageConfigureAdvanced, $scope}); + constructor($scope) { + Object.assign(this, {$scope}); } $onInit() { this.menuItems = this.constructor.menuItems; - this.$scope.$on('$stateChangeSuccess', (e, toState) => { - this.PageConfigureAdvanced.onStateEnterRedirect(toState); - }); } } http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/components/page-configure-basic/service.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-basic/service.js b/modules/web-console/frontend/app/components/page-configure-basic/service.js index 4db61ea..0032106 100644 --- a/modules/web-console/frontend/app/components/page-configure-basic/service.js +++ b/modules/web-console/frontend/app/components/page-configure-basic/service.js @@ -50,7 +50,7 @@ export default class PageConfigureBasic { const noFakeIDCaches = caches.map(stripFakeID); cluster = cloneDeep(stripFakeID(cluster)); return this.$q.all(noFakeIDCaches.map((cache) => ( - this.caches.saveCache(cache) + this.caches.saveCache(cache) .then( ({data}) => data, (e) => { @@ -58,7 +58,7 @@ export default class PageConfigureBasic { return this.$q.resolve(null); } ) - ))) + ))) .then((cacheIDs) => { // Make sure we don't loose new IDs even if some requests fail this.pageConfigure.upsertCaches( @@ -115,8 +115,8 @@ export default class PageConfigureBasic { setCluster(_id) { this.ConfigureState.dispatchAction( isNewItem({_id}) - ? {type: SET_CLUSTER, _id, cluster: this.clusters.getBlankCluster()} - : {type: SET_CLUSTER, _id} + ? {type: SET_CLUSTER, _id, cluster: this.clusters.getBlankCluster()} + : {type: SET_CLUSTER, _id} ); } http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/components/page-configure/controller.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure/controller.js b/modules/web-console/frontend/app/components/page-configure/controller.js index 3dcd14e..5ead0bb 100644 --- a/modules/web-console/frontend/app/components/page-configure/controller.js +++ b/modules/web-console/frontend/app/components/page-configure/controller.js @@ -16,15 +16,9 @@ */ export default class PageConfigureController { - static $inject = ['$scope', 'PageConfigure']; + static $inject = ['$scope']; - constructor($scope, PageConfigure) { - Object.assign(this, {$scope, PageConfigure}); - } - - $onInit() { - this.$scope.$on('$stateChangeSuccess', (e, toState) => { - this.PageConfigure.onStateEnterRedirect(toState); - }); + constructor($scope) { + Object.assign(this, {$scope}); } } http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/components/page-configure/controller.spec.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure/controller.spec.js b/modules/web-console/frontend/app/components/page-configure/controller.spec.js deleted file mode 100644 index e30eb65..0000000 --- a/modules/web-console/frontend/app/components/page-configure/controller.spec.js +++ /dev/null @@ -1,48 +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. - */ - -import {suite, test} from 'mocha'; -import {assert} from 'chai'; -import {spy} from 'sinon'; - -import Controller from './controller'; - -const mocks = () => new Map([ - ['$scope', { - $on: spy() - }], - ['PageConfigure', { - onStateEnterRedirect: spy() - }] -]); - -suite('page-configure component controller', () => { - test('State change success redirect', () => { - const c = new Controller(...mocks().values()); - c.$onInit(); - c.$scope.$on.getCall(0).args[1](null, {name: 'base.items'}); - assert.isOk( - c.PageConfigure.onStateEnterRedirect.calledOnce, - 'calls PageConfigure.onStateEnterRedirect every $stateChangeSuccess' - ); - assert.deepEqual( - c.PageConfigure.onStateEnterRedirect.getCall(0).args, - [{name: 'base.items'}], - 'calls PageConfigure.onStateEnterRedirect with correct arguments' - ); - }); -}); http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/components/page-configure/services/PageConfigure.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure/services/PageConfigure.js b/modules/web-console/frontend/app/components/page-configure/services/PageConfigure.js index a712aca..34a292a 100644 --- a/modules/web-console/frontend/app/components/page-configure/services/PageConfigure.js +++ b/modules/web-console/frontend/app/components/page-configure/services/PageConfigure.js @@ -31,15 +31,17 @@ export default class PageConfigure { } onStateEnterRedirect(toState) { - if (toState.name !== 'base.configuration.tabs') return this.$q.resolve(); + if (toState.name !== 'base.configuration.tabs') + return this.$q.resolve(); + return this.configuration.read() - .then((data) => { - this.loadList(data); - const nextState = data.clusters.length - ? 'base.configuration.tabs.advanced' - : 'base.configuration.tabs.basic'; - return this.$state.go(nextState, null, {location: 'replace'}); - }); + .then((data) => { + this.loadList(data); + + return this.$q.resolve(data.clusters.length + ? 'base.configuration.tabs.advanced' + : 'base.configuration.tabs.basic'); + }); } loadList(list) { http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/components/web-console-header/component.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/web-console-header/component.js b/modules/web-console/frontend/app/components/web-console-header/component.js index d4c5c4b..66f09e9 100644 --- a/modules/web-console/frontend/app/components/web-console-header/component.js +++ b/modules/web-console/frontend/app/components/web-console-header/component.js @@ -33,11 +33,15 @@ export default { Object.assign(this, {$rootScope, $scope, $state, branding, UserNotifications}); } + setWebAgentDownloadVisible() { + this.isWebAgentDownloadVisible = + this.constructor.webAgentDownloadVisibleStates.some((state) => this.$state.includes(state)); + } + $onInit() { - this.$scope.$on('$stateChangeSuccess', () => { - this.isWebAgentDownloadVisible = - this.constructor.webAgentDownloadVisibleStates.some((state) => this.$state.includes(state)); - }); + this.setWebAgentDownloadVisible(); + + this.$scope.$on('$stateChangeSuccess', () => this.setWebAgentDownloadVisible()); } }, transclude: { http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/components/web-console-header/index.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/web-console-header/index.js b/modules/web-console/frontend/app/components/web-console-header/index.js index 36caa3d..e41e1cc 100644 --- a/modules/web-console/frontend/app/components/web-console-header/index.js +++ b/modules/web-console/frontend/app/components/web-console-header/index.js @@ -19,5 +19,5 @@ import angular from 'angular'; import component from './component'; export default angular - .module('ignite-console.web-console-header', []) - .component('webConsoleHeader', component); + .module('ignite-console.web-console-header', []) + .component('webConsoleHeader', component); http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/modules/ace.module.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/ace.module.js b/modules/web-console/frontend/app/modules/ace.module.js index 4920a6f..a28536a 100644 --- a/modules/web-console/frontend/app/modules/ace.module.js +++ b/modules/web-console/frontend/app/modules/ace.module.js @@ -184,10 +184,10 @@ angular return (e) => { const newValue = session.getValue(); + // HACK make sure to only trigger the apply outside of the + // digest loop 'cause ACE is actually using this callback + // for any text transformation ! if (ngModel && newValue !== ngModel.$viewValue && - // HACK make sure to only trigger the apply outside of the - // digest loop 'cause ACE is actually using this callback - // for any text transformation ! !scope.$$phase && !scope.$root.$$phase) scope.$eval(() => ngModel.$setViewValue(newValue)); http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/modules/branding/branding.module.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/branding/branding.module.js b/modules/web-console/frontend/app/modules/branding/branding.module.js index cae7c91..9c4a5e5 100644 --- a/modules/web-console/frontend/app/modules/branding/branding.module.js +++ b/modules/web-console/frontend/app/modules/branding/branding.module.js @@ -28,14 +28,18 @@ import ignitePoweredByApache from './powered-by-apache.directive'; angular .module('ignite-console.branding', [ - 'ui.router.metatags' + 'tf.metatags' ]) .provider(...IgniteBranding) -.config(['UIRouterMetatagsProvider', (UIRouterMetatagsProvider) => { - UIRouterMetatagsProvider - .setDefaultTitle('Apache Ignite - Management Tool and Configuration Wizard') - .setTitleSuffix(' â Apache Ignite Web Console') - .setDefaultDescription('The Apache Ignite Web Console is an interactive management tool and configuration wizard which walks you through the creation of config files. Try it now.'); +.config(['tfMetaTagsProvider', (tfMetaTagsProvider) => { + tfMetaTagsProvider.setDefaults({ + title: 'Apache Ignite - Management Tool and Configuration Wizard', + properties: { + description: 'The Apache Ignite Web Console is an interactive management tool and configuration wizard which walks you through the creation of config files. Try it now.' + } + }); + + tfMetaTagsProvider.setTitleSuffix(' â Apache Ignite Web Console'); }]) .directive(...ignitePoweredByApache) .directive(...igniteHeaderLogo) http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/modules/configuration/generator/ConfigurationGenerator.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/configuration/generator/ConfigurationGenerator.js b/modules/web-console/frontend/app/modules/configuration/generator/ConfigurationGenerator.js index 8299b9b..a14bfd3 100644 --- a/modules/web-console/frontend/app/modules/configuration/generator/ConfigurationGenerator.js +++ b/modules/web-console/frontend/app/modules/configuration/generator/ConfigurationGenerator.js @@ -887,7 +887,7 @@ export default class IgniteConfigurationGenerator { cfg.intProperty('peerClassLoadingMissedResourcesCacheSize') .intProperty('peerClassLoadingThreadPoolSize') .varArgProperty('p2pLocClsPathExcl', 'peerClassLoadingLocalClassPathExclude', - cluster.peerClassLoadingLocalClassPathExclude); + cluster.peerClassLoadingLocalClassPathExclude); } // Since ignite 2.0 http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/modules/configuration/generator/PlatformGenerator.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/configuration/generator/PlatformGenerator.js b/modules/web-console/frontend/app/modules/configuration/generator/PlatformGenerator.js index b076193..234c7ec 100644 --- a/modules/web-console/frontend/app/modules/configuration/generator/PlatformGenerator.js +++ b/modules/web-console/frontend/app/modules/configuration/generator/PlatformGenerator.js @@ -168,7 +168,7 @@ export default ['JavaTypes', 'igniteClusterPlatformDefaults', 'igniteCachePlatfo .intProperty('unacknowledgedMessagesBufferSize') // .intProperty('socketWriteTimeout') .intProperty('selectorsCount'); - // .emptyBeanProperty('addressResolver'); + // .emptyBeanProperty('addressResolver'); if (commSpi.nonEmpty()) cfg.beanProperty('CommunicationSpi', commSpi); @@ -176,7 +176,7 @@ export default ['JavaTypes', 'igniteClusterPlatformDefaults', 'igniteCachePlatfo cfg.intProperty('networkTimeout', 'NetworkTimeout') .intProperty('networkSendRetryDelay') .intProperty('networkSendRetryCount'); - // .intProperty('discoveryStartupDelay'); + // .intProperty('discoveryStartupDelay'); return cfg; } http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/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 d75beda..2445461 100644 --- a/modules/web-console/frontend/app/modules/demo/Demo.module.js +++ b/modules/web-console/frontend/app/modules/demo/Demo.module.js @@ -24,7 +24,7 @@ angular .module('ignite-console.demo', [ 'ignite-console.socket' ]) -.config(['$stateProvider', 'AclRouteProvider', ($stateProvider, AclRoute) => { +.config(['$stateProvider', ($stateProvider) => { $stateProvider .state('demo', { abstract: true, @@ -33,17 +33,17 @@ angular }) .state('demo.resume', { url: '/resume', - onEnter: AclRoute.checkAccess('demo'), + permission: 'demo', controller: ['$state', ($state) => { $state.go('base.configuration.tabs.advanced.clusters'); }], - metaTags: { + tfMetaTags: { title: 'Demo resume' } }) .state('demo.reset', { url: '/reset', - onEnter: AclRoute.checkAccess('demo'), + permission: 'demo', controller: ['$state', '$http', 'IgniteMessages', ($state, $http, Messages) => { $http.post('/api/v1/demo/reset') .then(() => $state.go('base.configuration.tabs.advanced.clusters')) @@ -53,7 +53,7 @@ angular Messages.showError(res); }); }], - metaTags: { + tfMetaTags: { title: 'Demo reset' } }); http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/modules/dialog/dialog.controller.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/dialog/dialog.controller.js b/modules/web-console/frontend/app/modules/dialog/dialog.controller.js index 05518d3..0256b84 100644 --- a/modules/web-console/frontend/app/modules/dialog/dialog.controller.js +++ b/modules/web-console/frontend/app/modules/dialog/dialog.controller.js @@ -33,8 +33,4 @@ export default ['$rootScope', '$scope', 'IgniteDialog', function($root, $scope, $scope.$watch(() => ctrl.content, () => { $scope.content = ctrl.content; }); - - $root.$on('$stateChangeStart', () => { - dialog.hide(); - }); }]; http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/modules/form/field/label.directive.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/form/field/label.directive.js b/modules/web-console/frontend/app/modules/form/field/label.directive.js index 97ba598..94f7889 100644 --- a/modules/web-console/frontend/app/modules/form/field/label.directive.js +++ b/modules/web-console/frontend/app/modules/form/field/label.directive.js @@ -20,7 +20,7 @@ export default ['igniteFormFieldLabel', [() => { restrict: 'E', compile() { return { - post($scope, $element, $attrs, [form, field], $transclude) { + post($scope, $element, $attrs, [field], $transclude) { $transclude($scope, function(clone) { const text = clone.text(); @@ -42,6 +42,6 @@ export default ['igniteFormFieldLabel', [() => { }, replace: true, transclude: true, - require: ['^form', '?^igniteFormField'] + require: ['?^igniteFormField'] }; }]]; http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/modules/form/field/tooltip.directive.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/form/field/tooltip.directive.js b/modules/web-console/frontend/app/modules/form/field/tooltip.directive.js index 4f440a1..9e764bc 100644 --- a/modules/web-console/frontend/app/modules/form/field/tooltip.directive.js +++ b/modules/web-console/frontend/app/modules/form/field/tooltip.directive.js @@ -18,7 +18,7 @@ const template = '<i class="tipField icon-help"></i>'; export default ['igniteFormFieldTooltip', ['$tooltip', ($tooltip) => { - const link = ($scope, $element, $attrs, [form, field], $transclude) => { + const link = ($scope, $element, $attrs, [field], $transclude) => { const content = Array.prototype.slice .apply($transclude($scope)) .reduce((html, el) => html += el.outerHTML || el.textContent || el, ''); @@ -44,6 +44,6 @@ export default ['igniteFormFieldTooltip', ['$tooltip', ($tooltip) => { link, replace: true, transclude: true, - require: ['^form', '?^igniteFormField'] + require: ['?^igniteFormField'] }; }]]; http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/modules/sql/sql.controller.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/sql/sql.controller.js b/modules/web-console/frontend/app/modules/sql/sql.controller.js index 633f167..3d38634 100644 --- a/modules/web-console/frontend/app/modules/sql/sql.controller.js +++ b/modules/web-console/frontend/app/modules/sql/sql.controller.js @@ -1247,7 +1247,7 @@ export default ['$rootScope', '$scope', '$http', '$q', '$timeout', '$interval', const chartHistory = paragraph.chartHistory; - // Clear history on query change. + // Clear history on query change. if (clearChart) { chartHistory.length = 0; http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/modules/sql/sql.module.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/sql/sql.module.js b/modules/web-console/frontend/app/modules/sql/sql.module.js index 79614c2..da9955c 100644 --- a/modules/web-console/frontend/app/modules/sql/sql.module.js +++ b/modules/web-console/frontend/app/modules/sql/sql.module.js @@ -27,37 +27,35 @@ import sqlTplUrl from 'app/../views/sql/sql.tpl.pug'; angular.module('ignite-console.sql', [ 'ui.router' ]) - .config(['$stateProvider', 'AclRouteProvider', - ($stateProvider, AclRoute) => { - // set up the states - $stateProvider - .state('base.sql', { - url: '/queries', - abstract: true, - template: '<ui-view></ui-view>' - }) - .state('base.sql.notebook', { - url: '/notebook/{noteId}', - templateUrl: sqlTplUrl, - onEnter: AclRoute.checkAccess('query'), - metaTags: { - title: 'Query notebook' - }, - controller, - controllerAs: '$ctrl' - }) - .state('base.sql.demo', { - url: '/demo', - templateUrl: sqlTplUrl, - onEnter: AclRoute.checkAccess('query'), - metaTags: { - title: 'SQL demo' - }, - controller, - controllerAs: '$ctrl' - }); - }] - ) - .service('IgniteNotebookData', NotebookData) - .service('IgniteNotebook', Notebook) - .controller('notebookController', notebook); +.config(['$stateProvider', ($stateProvider) => { + // set up the states + $stateProvider + .state('base.sql', { + url: '/queries', + abstract: true, + template: '<ui-view></ui-view>' + }) + .state('base.sql.notebook', { + url: '/notebook/{noteId}', + templateUrl: sqlTplUrl, + permission: 'query', + tfMetaTags: { + title: 'Query notebook' + }, + controller, + controllerAs: '$ctrl' + }) + .state('base.sql.demo', { + url: '/demo', + templateUrl: sqlTplUrl, + permission: 'query', + tfMetaTags: { + title: 'SQL demo' + }, + controller, + controllerAs: '$ctrl' + }); +}]) +.service('IgniteNotebookData', NotebookData) +.service('IgniteNotebook', Notebook) +.controller('notebookController', notebook); http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/modules/states/admin.state.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/states/admin.state.js b/modules/web-console/frontend/app/modules/states/admin.state.js index 7189508..65e13aa 100644 --- a/modules/web-console/frontend/app/modules/states/admin.state.js +++ b/modules/web-console/frontend/app/modules/states/admin.state.js @@ -24,7 +24,7 @@ angular .module('ignite-console.states.admin', [ 'ui.router' ]) -.config(['$stateProvider', 'AclRouteProvider', function($stateProvider, AclRoute) { +.config(['$stateProvider', function($stateProvider) { // set up the states $stateProvider .state('base.settings.admin', { @@ -50,8 +50,8 @@ angular } }, // templateUrl, - onEnter: AclRoute.checkAccess('admin_page'), - metaTags: { + permission: 'admin_page', + tfMetaTags: { title: 'Admin panel' } }); http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/modules/states/configuration.state.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/states/configuration.state.js b/modules/web-console/frontend/app/modules/states/configuration.state.js index faf9315..d2c1410 100644 --- a/modules/web-console/frontend/app/modules/states/configuration.state.js +++ b/modules/web-console/frontend/app/modules/states/configuration.state.js @@ -51,7 +51,7 @@ angular.module('ignite-console.states.configuration', ['ui.router']) $templateCache.put('summary-tabs.html', summaryTabsTemplateUrl); }]) // Configure state provider. - .config(['$stateProvider', 'AclRouteProvider', ($stateProvider, AclRoute) => { + .config(['$stateProvider', ($stateProvider) => { // Setup the states. $stateProvider .state('base.configuration', { @@ -64,15 +64,21 @@ angular.module('ignite-console.states.configuration', ['ui.router']) }) .state('base.configuration.tabs', { url: '/configuration', + permission: 'configuration', template: '<page-configure></page-configure>', - metaTags: { + redirectTo: (trans) => { + const PageConfigure = trans.injector().get('PageConfigure'); + + return PageConfigure.onStateEnterRedirect(trans.to()); + }, + tfMetaTags: { title: 'Configuration' } }) .state('base.configuration.tabs.basic', { url: '/basic', template: '<page-configure-basic></page-configure-basic>', - metaTags: { + tfMetaTags: { title: 'Basic Configuration' }, resolve: { @@ -88,13 +94,14 @@ angular.module('ignite-console.states.configuration', ['ui.router']) }) .state('base.configuration.tabs.advanced', { url: '/advanced', - template: '<page-configure-advanced></page-configure-advanced>' + template: '<page-configure-advanced></page-configure-advanced>', + redirectTo: 'base.configuration.tabs.advanced.clusters' }) .state('base.configuration.tabs.advanced.clusters', { url: '/clusters', templateUrl: clustersTpl, - onEnter: AclRoute.checkAccess('configuration'), - metaTags: { + permission: 'configuration', + tfMetaTags: { title: 'Configure Clusters' }, controller: clustersCtrl, @@ -103,8 +110,8 @@ angular.module('ignite-console.states.configuration', ['ui.router']) .state('base.configuration.tabs.advanced.caches', { url: '/caches', templateUrl: cachesTpl, - onEnter: AclRoute.checkAccess('configuration'), - metaTags: { + permission: 'configuration', + tfMetaTags: { title: 'Configure Caches' }, controller: cachesCtrl, @@ -113,8 +120,8 @@ angular.module('ignite-console.states.configuration', ['ui.router']) .state('base.configuration.tabs.advanced.domains', { url: '/domains', templateUrl: domainsTpl, - onEnter: AclRoute.checkAccess('configuration'), - metaTags: { + permission: 'configuration', + tfMetaTags: { title: 'Configure Domain Model' }, controller: domainsCtrl, @@ -123,8 +130,8 @@ angular.module('ignite-console.states.configuration', ['ui.router']) .state('base.configuration.tabs.advanced.igfs', { url: '/igfs', templateUrl: igfsTpl, - onEnter: AclRoute.checkAccess('configuration'), - metaTags: { + permission: 'configuration', + tfMetaTags: { title: 'Configure IGFS' }, controller: igfsCtrl, @@ -133,10 +140,10 @@ angular.module('ignite-console.states.configuration', ['ui.router']) .state('base.configuration.tabs.advanced.summary', { url: '/summary', templateUrl: summaryTpl, - onEnter: AclRoute.checkAccess('configuration'), + permission: 'configuration', controller: ConfigurationSummaryCtrl, controllerAs: 'ctrl', - metaTags: { + tfMetaTags: { title: 'Configurations Summary' } }); http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/modules/states/configuration/summary/summary-zipper.service.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/states/configuration/summary/summary-zipper.service.js b/modules/web-console/frontend/app/modules/states/configuration/summary/summary-zipper.service.js index 0259d39..47ce9ad 100644 --- a/modules/web-console/frontend/app/modules/states/configuration/summary/summary-zipper.service.js +++ b/modules/web-console/frontend/app/modules/states/configuration/summary/summary-zipper.service.js @@ -15,7 +15,7 @@ * limitations under the License. */ -import Worker from 'worker?inline=true!./summary.worker'; +import Worker from 'worker!./summary.worker'; export default ['$q', function($q) { return function(message) { http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/modules/states/errors.state.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/states/errors.state.js b/modules/web-console/frontend/app/modules/states/errors.state.js index e3d4d41..3cc03be 100644 --- a/modules/web-console/frontend/app/modules/states/errors.state.js +++ b/modules/web-console/frontend/app/modules/states/errors.state.js @@ -29,7 +29,7 @@ angular .state('404', { url: '/404', templateUrl: templateNotFoundPage, - metaTags: { + tfMetaTags: { title: 'Page not found' }, unsaved: true @@ -37,7 +37,7 @@ angular .state('403', { url: '/403', templateUrl: templateNotAuthorizedPage, - metaTags: { + tfMetaTags: { title: 'Not authorized' }, unsaved: true http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/modules/states/logout.state.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/states/logout.state.js b/modules/web-console/frontend/app/modules/states/logout.state.js index 42795ea..9f9c7c6 100644 --- a/modules/web-console/frontend/app/modules/states/logout.state.js +++ b/modules/web-console/frontend/app/modules/states/logout.state.js @@ -17,18 +17,16 @@ import angular from 'angular'; -angular -.module('ignite-console.states.logout', [ +angular.module('ignite-console.states.logout', [ 'ui.router' ]) -.config(['$stateProvider', 'AclRouteProvider', function($stateProvider, AclRoute) { +.config(['$stateProvider', function($stateProvider) { // set up the states - $stateProvider - .state('logout', { + $stateProvider.state('logout', { url: '/logout', - onEnter: AclRoute.checkAccess('logout'), + permission: 'logout', controller: ['Auth', (Auth) => Auth.logout()], - metaTags: { + tfMetaTags: { title: 'Logout' } }); http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/modules/states/password.state.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/states/password.state.js b/modules/web-console/frontend/app/modules/states/password.state.js index 587f83d..8e326bf 100644 --- a/modules/web-console/frontend/app/modules/states/password.state.js +++ b/modules/web-console/frontend/app/modules/states/password.state.js @@ -34,14 +34,14 @@ angular .state('password.reset', { url: '/reset?{token}', templateUrl, - metaTags: { + tfMetaTags: { title: 'Reset password' } }) .state('password.send', { url: '/send', templateUrl, - metaTags: { + tfMetaTags: { title: 'Password Send' } }); http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/modules/states/profile.state.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/states/profile.state.js b/modules/web-console/frontend/app/modules/states/profile.state.js index 3298bdc..87d1d02 100644 --- a/modules/web-console/frontend/app/modules/states/profile.state.js +++ b/modules/web-console/frontend/app/modules/states/profile.state.js @@ -23,14 +23,13 @@ angular .module('ignite-console.states.profile', [ 'ui.router' ]) -.config(['$stateProvider', 'AclRouteProvider', function($stateProvider, AclRoute) { +.config(['$stateProvider', 'AclRouteProvider', function($stateProvider) { // set up the states - $stateProvider - .state('base.settings.profile', { + $stateProvider.state('base.settings.profile', { url: '/profile', templateUrl, - onEnter: AclRoute.checkAccess('profile'), - metaTags: { + permission: 'profile', + tfMetaTags: { title: 'User profile' } }); http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/modules/states/signin.state.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/states/signin.state.js b/modules/web-console/frontend/app/modules/states/signin.state.js index b7be51d..f5a4964 100644 --- a/modules/web-console/frontend/app/modules/states/signin.state.js +++ b/modules/web-console/frontend/app/modules/states/signin.state.js @@ -24,30 +24,26 @@ angular // services 'ignite-console.user' ]) -.config(['$stateProvider', 'AclRouteProvider', function($stateProvider) { +.config(['$stateProvider', function($stateProvider) { // set up the states $stateProvider .state('signin', { url: '/', templateUrl, - resolve: { - user: ['$state', 'User', ($state, User) => { - return User.read() - .then(() => { - try { - const {name, params} = JSON.parse(localStorage.getItem('lastStateChangeSuccess')); + redirectTo: (trans) => { + return trans.injector().get('User').read() + .then(() => { + try { + const {name, params} = JSON.parse(localStorage.getItem('lastStateChangeSuccess')); - $state.go(name, params); - } catch (ignored) { - $state.go('base.configuration.tabs'); - } - }) - .catch(() => {}); - }] - }, - controllerAs: '$ctrl', - controller() {}, - metaTags: { + const restored = trans.router.stateService.target(name, params); + + return restored.valid() ? restored : 'base.configuration.tabs'; + } catch (ignored) { + return 'base.configuration.tabs'; + } + }) + .catch(() => true); } }); }]); http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/modules/user/AclRoute.provider.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/user/AclRoute.provider.js b/modules/web-console/frontend/app/modules/user/AclRoute.provider.js index 4225bc4..f5556ff 100644 --- a/modules/web-console/frontend/app/modules/user/AclRoute.provider.js +++ b/modules/web-console/frontend/app/modules/user/AclRoute.provider.js @@ -17,11 +17,9 @@ export default [() => { class AclRoute { - static checkAccess(permissions, failState) { - failState = failState || '403'; - + static checkAccess(permissions, failState = '403') { return ['$q', '$state', 'AclService', 'User', 'IgniteActivitiesData', function($q, $state, AclService, User, Activities) { - const action = this.name ? $state.href(this.name) : null; + const action = ''; return User.read() .catch(() => { http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/modules/user/user.module.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/user/user.module.js b/modules/web-console/frontend/app/modules/user/user.module.js index b86a62e..721d07f 100644 --- a/modules/web-console/frontend/app/modules/user/user.module.js +++ b/modules/web-console/frontend/app/modules/user/user.module.js @@ -50,7 +50,7 @@ angular.module('ignite-console.user', [ .service(...Auth) .service(...User) .provider('AclRoute', AclRouteProvider) -.run(['$rootScope', 'AclService', ($root, AclService) => { +.run(['$rootScope', '$transitions', 'AclService', 'User', 'IgniteActivitiesData', ($root, $transitions, AclService, User, Activities) => { AclService.setAbilities(aclData); AclService.attachRole('guest'); @@ -70,4 +70,32 @@ angular.module('ignite-console.user', [ AclService.attachRole(role); }); + + $transitions.onBefore({}, (t) => { + const $state = t.router.stateService; + const {name, permission} = t.to(); + + return User.read() + .catch(() => { + User.clean(); + + if (name !== 'signin') + return $state.target('signin'); + + return true; + }) + .then(() => { + if (_.isEmpty(permission)) + return true; + + if (AclService.can(permission)) { + Activities.post({action: $state.href(name, t.params('to'))}); + + return true; + } + + return $state.target(t.to().failState || '403'); + }); + + }); }]); http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/services/CopyToClipboard.service.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/services/CopyToClipboard.service.js b/modules/web-console/frontend/app/services/CopyToClipboard.service.js index 74c4764..df0bb8a 100644 --- a/modules/web-console/frontend/app/services/CopyToClipboard.service.js +++ b/modules/web-console/frontend/app/services/CopyToClipboard.service.js @@ -38,10 +38,10 @@ export default ['IgniteCopyToClipboard', ['$window', 'IgniteMessages', ($window, if (document.execCommand('copy')) Messages.showInfo('Value copied to clipboard'); else - window.prompt('Copy to clipboard: Ctrl+C, Enter', toCopy); // eslint-disable-line no-alert + window.prompt('Copy to clipboard: Ctrl+C, Enter', toCopy); // eslint-disable-line no-alert } catch (err) { - window.prompt('Copy to clipboard: Ctrl+C, Enter', toCopy); // eslint-disable-line no-alert + window.prompt('Copy to clipboard: Ctrl+C, Enter', toCopy); // eslint-disable-line no-alert } textArea.remove(); http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/services/LegacyTable.service.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/services/LegacyTable.service.js b/modules/web-console/frontend/app/services/LegacyTable.service.js index a024a3b..ab95164 100644 --- a/modules/web-console/frontend/app/services/LegacyTable.service.js +++ b/modules/web-console/frontend/app/services/LegacyTable.service.js @@ -25,7 +25,7 @@ export default ['IgniteLegacyTable', return item; path = path.replace(/\[(\w+)\]/g, '.$1'); // convert indexes to properties - path = path.replace(/^\./, ''); // strip a leading dot + path = path.replace(/^\./, ''); // strip a leading dot const segs = path.split('.'); let root = item; http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/app/vendor.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/vendor.js b/modules/web-console/frontend/app/vendor.js index 3bbb322..ea0f63c 100644 --- a/modules/web-console/frontend/app/vendor.js +++ b/modules/web-console/frontend/app/vendor.js @@ -24,9 +24,12 @@ import 'angular-strap'; import 'angular-strap/dist/angular-strap.tpl'; import 'angular-socket-io'; import 'angular-retina'; -import 'angular-ui-router'; + +import '@uirouter/angularjs'; +import '@uirouter/angularjs/lib/legacy/stateEvents'; + +import 'tf-metatags'; import 'angular-translate'; -import 'ui-router-metatags/dist/ui-router-metatags'; import 'angular-smart-table'; import 'angular-ui-grid/ui-grid'; import 'angular-drag-and-drop-lists'; @@ -49,6 +52,7 @@ import 'file-saver'; import 'jszip'; import 'nvd3'; import 'lodash'; + import 'angular-gridster/dist/angular-gridster.min.css'; import 'angular-tree-control/css/tree-control-attribute.css'; import 'angular-tree-control/css/tree-control.css'; http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/package.json ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/package.json b/modules/web-console/frontend/package.json index 05c6eec..6b049ff 100644 --- a/modules/web-console/frontend/package.json +++ b/modules/web-console/frontend/package.json @@ -8,7 +8,7 @@ "dev": "npm start", "build": "webpack --config ./webpack/webpack.prod.babel.js", "test": "karma start ./test/karma.conf.js", - "eslint": "eslint --format node_modules/eslint-friendly-formatter gulpfile.babel.js/ app/ controllers/ ignite_modules/ -- --eff-by-issue" + "eslint": "eslint --format node_modules/eslint-friendly-formatter app/ controllers/ ignite_modules/ -- --eff-by-issue" }, "author": "", "contributors": [ @@ -45,13 +45,13 @@ "angular-socket-io": "0.7.0", "angular-strap": "2.3.12", "angular-touch": "1.5.11", - "angular-translate": "2.15.1", + "angular-translate": "2.15.2", "angular-tree-control": "0.2.28", - "angular-ui-grid": "4.0.4", - "angular-ui-router": "0.4.2", - "babel-core": "6.24.1", + "angular-ui-grid": "4.0.6", + "@uirouter/angularjs": "1.0.5", + "babel-core": "6.25.0", "babel-eslint": "7.2.3", - "babel-loader": "7.0.0", + "babel-loader": "7.1.1", "babel-plugin-add-module-exports": "0.2.1", "babel-plugin-transform-runtime": "6.23.0", "babel-polyfill": "6.23.0", @@ -61,45 +61,46 @@ "bootstrap-sass": "3.3.7", "brace": "0.10.0", "copy-webpack-plugin": "4.0.1", - "css-loader": "0.28.3", - "eslint": "3.19.0", + "css-loader": "0.28.4", + "eslint": "4.3.0", "eslint-friendly-formatter": "3.0.0", - "eslint-loader": "1.7.1", - "eslint-plugin-babel": "^4.1.1", + "eslint-loader": "1.9.0", + "eslint-plugin-babel": "4.1.1", "expose-loader": "0.7.3", - "extract-text-webpack-plugin": "2.1.0", - "file-loader": "0.11.1", + "extract-text-webpack-plugin": "3.0.0", + "file-loader": "0.11.2", "file-saver": "1.3.3", "font-awesome": "4.7.0", "glob": "7.1.2", "html-loader": "0.4.5", - "html-webpack-plugin": "2.28.0", + "html-webpack-plugin": "2.29.0", "jquery": "3.2.1", - "json-loader": "0.5.4", + "json-loader": "0.5.7", "jszip": "3.1.3", "lodash": "4.17.4", "node-sass": "4.5.3", "nvd3": "1.8.4", - "progress-bar-webpack-plugin": "1.9.3", + "progress-bar-webpack-plugin": "1.10.0", "pug-html-loader": "1.1.0", "pug-loader": "2.3.0", "raleway-webfont": "3.0.1", - "resolve-url-loader": "2.0.2", + "resolve-url-loader": "2.1.0", "roboto-font": "0.1.0", - "rxjs": "5.4.0", - "sass-loader": "6.0.5", + "rxjs": "5.4.2", + "sass-loader": "6.0.6", "socket.io-client": "1.7.3", - "style-loader": "0.18.1", - "svg-sprite-loader": "^3.0.5", - "ui-router-metatags": "1.0.3", - "webpack": "2.6.1", - "webpack-dev-server": "2.4.5", + "style-loader": "0.18.2", + "svg-sprite-loader": "3.0.7", + "tf-metatags": "2.0.0", + "webpack": "3.3.0", + "webpack-dev-server": "2.6.1", "webpack-merge": "4.1.0", - "worker-loader": "0.8.0" + "worker-loader": "0.8.1" }, "devDependencies": { - "chai": "4.0.2", - "jasmine-core": "2.6.2", + "chai": "4.1.0", + "type-detect": "4.0.3", + "jasmine-core": "2.6.4", "karma": "1.7.0", "karma-babel-preprocessor": "6.0.1", "karma-jasmine": "1.1.0", @@ -107,10 +108,10 @@ "karma-mocha-reporter": "2.2.3", "karma-phantomjs-launcher": "1.0.4", "karma-teamcity-reporter": "1.0.0", - "karma-webpack": "2.0.3", + "karma-webpack": "2.0.4", "mocha": "3.4.2", "mocha-teamcity-reporter": "1.1.1", "phantomjs-prebuilt": "2.1.14", - "sinon": "2.3.4" + "sinon": "2.3.8" } } http://git-wip-us.apache.org/repos/asf/ignite/blob/f277530a/modules/web-console/frontend/views/index.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/views/index.pug b/modules/web-console/frontend/views/index.pug index f8f13dd..1881b38 100644 --- a/modules/web-console/frontend/views/index.pug +++ b/modules/web-console/frontend/views/index.pug @@ -23,23 +23,13 @@ html(ng-app='ignite-console' id='app' ng-strict-di) meta(http-equiv='content-language' content='en') meta(http-equiv='X-UA-Compatible' content='IE=Edge') - title(ng-bind='$meta.title') + title(ng-bind='tfMetaTags.title') + meta(ng-repeat='(key, value) in tfMetaTags.properties' name='{{::key}}' content='{{::value}}') meta(name='fragment' content='!') - meta(name='description' content='{{$meta.description}}') - meta(name='keywords' content='{{$meta.keywords}}') - meta(ng-repeat='(key, value) in $meta.properties' name='{{::key}}' content='{{::value}}') body.theme-line.body-overlap - .splash.splash-max-foreground(hide-on-state-change) - .splash-wrapper - .spinner - .bounce1 - .bounce2 - .bounce3 - - .splash-wellcome Loading... .ribbon-wrapper.right(ng-cloak) .ribbon(ng-style='IgniteDemoMode && {"background": "#1b6d88"}')
