Repository: ignite Updated Branches: refs/heads/master f2d800e59 -> 7ee1683e1
http://git-wip-us.apache.org/repos/asf/ignite/blob/7ee1683e/modules/web-console/frontend/package.json ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/package.json b/modules/web-console/frontend/package.json index 9c9738c..9101184 100644 --- a/modules/web-console/frontend/package.json +++ b/modules/web-console/frontend/package.json @@ -8,6 +8,7 @@ "dev": "npm start", "build": "webpack --config ./webpack/webpack.prod.babel.js", "test": "karma start ./test/karma.conf.js", + "test-watch": "npm test -- --no-single-run", "eslint": "eslint --format node_modules/eslint-friendly-formatter app/ controllers/ ignite_modules/ -- --eff-by-issue" }, "author": "", @@ -32,7 +33,10 @@ "win32" ], "dependencies": { - "@uirouter/angularjs": "1.0.10", + "@uirouter/angularjs": "^1.0.11", + "@uirouter/core": "^5.0.11", + "@uirouter/rx": "^0.4.1", + "@uirouter/visualizer": "^4.0.2", "angular": "1.6.6", "angular-acl": "0.1.10", "angular-animate": "1.6.6", @@ -51,11 +55,14 @@ "angular-translate": "2.16.0", "angular-tree-control": "0.2.28", "angular-ui-carousel": "0.1.10", - "angular-ui-grid": "4.0.11", + "angular-ui-grid": "^4.4.3", + "angular-ui-validate": "^1.2.3", + "angular1-async-filter": "^1.1.0", "babel-core": "6.25.0", "babel-eslint": "7.2.3", "babel-loader": "7.1.1", "babel-plugin-add-module-exports": "0.2.1", + "babel-plugin-transform-object-rest-spread": "^6.23.0", "babel-plugin-transform-runtime": "6.23.0", "babel-polyfill": "6.23.0", "babel-preset-es2015": "6.24.1", @@ -64,7 +71,7 @@ "bootstrap-sass": "3.3.7", "brace": "0.10.0", "browser-update": "2.1.9", - "bson-objectid": "1.1.5", + "bson-objectid": "^1.2.0", "copy-webpack-plugin": "4.0.1", "css-loader": "0.28.7", "eslint": "4.3.0", @@ -81,8 +88,10 @@ "jquery": "3.2.1", "json-bigint": "0.2.3", "json-loader": "0.5.7", + "jsondiffpatch": "^0.2.5", "jszip": "3.1.4", "lodash": "4.17.4", + "natural-compare-lite": "^1.4.0", "node-sass": "4.6.0", "nvd3": "1.8.4", "pako": "1.0.6", @@ -103,12 +112,20 @@ "worker-loader": "0.8.1" }, "devDependencies": { - "@types/angular": "1.6.43", + "@types/angular": "^1.6.32", + "@types/angular-animate": "^1.5.8", + "@types/angular-strap": "^2.3.1", + "@types/chai": "^4.0.4", + "@types/lodash": "^4.14.77", + "@types/mocha": "^2.2.44", + "@types/sinon": "^4.0.0", + "@types/ui-grid": "0.0.38", "app-root-path": "2.0.1", "chai": "4.1.0", "chalk": "2.1.0", "glob": "7.1.2", "globby": "8.0.1", + "ignore-loader": "^0.1.2", "jasmine-core": "2.6.4", "karma": "1.7.0", "karma-babel-preprocessor": "6.0.1", http://git-wip-us.apache.org/repos/asf/ignite/blob/7ee1683e/modules/web-console/frontend/public/images/checkbox-active.svg ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/public/images/checkbox-active.svg b/modules/web-console/frontend/public/images/checkbox-active.svg index 82e59c6..47c4d88 100644 --- a/modules/web-console/frontend/public/images/checkbox-active.svg +++ b/modules/web-console/frontend/public/images/checkbox-active.svg @@ -22,4 +22,4 @@ </g> </g> </g> -</svg> +</svg> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/7ee1683e/modules/web-console/frontend/public/images/collapse.svg ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/public/images/collapse.svg b/modules/web-console/frontend/public/images/collapse.svg new file mode 100644 index 0000000..86861a5 --- /dev/null +++ b/modules/web-console/frontend/public/images/collapse.svg @@ -0,0 +1,3 @@ +<svg version="1.1" viewBox="0 0 13 13" xmlns="http://www.w3.org/2000/svg"> + <path d="m2 0c-1.108 0-2 0.892-2 2v9c0 1.108 0.892 2 2 2h9c1.108 0 2-0.892 2-2v-9c0-1.108-0.892-2-2-2h-9zm1 6h7v1h-7v-1z" fill="#757575"/> +</svg> http://git-wip-us.apache.org/repos/asf/ignite/blob/7ee1683e/modules/web-console/frontend/public/images/expand.svg ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/public/images/expand.svg b/modules/web-console/frontend/public/images/expand.svg new file mode 100644 index 0000000..569c9c0 --- /dev/null +++ b/modules/web-console/frontend/public/images/expand.svg @@ -0,0 +1,3 @@ +<svg version="1.1" viewBox="0 0 13 13" xmlns="http://www.w3.org/2000/svg"> + <path d="m2 0c-1.108 0-2 0.892-2 2v9c0 1.108 0.892 2 2 2h9c1.108 0 2-0.892 2-2v-9c0-1.108-0.892-2-2-2zm4 3h1v3h3v1h-3v3h-1v-3h-3v-1h3z" fill="#757575" /> +</svg> http://git-wip-us.apache.org/repos/asf/ignite/blob/7ee1683e/modules/web-console/frontend/public/images/icons/collapse.svg ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/public/images/icons/collapse.svg b/modules/web-console/frontend/public/images/icons/collapse.svg index 86861a5..eb16b4c 100644 --- a/modules/web-console/frontend/public/images/icons/collapse.svg +++ b/modules/web-console/frontend/public/images/icons/collapse.svg @@ -1,3 +1,3 @@ <svg version="1.1" viewBox="0 0 13 13" xmlns="http://www.w3.org/2000/svg"> - <path d="m2 0c-1.108 0-2 0.892-2 2v9c0 1.108 0.892 2 2 2h9c1.108 0 2-0.892 2-2v-9c0-1.108-0.892-2-2-2h-9zm1 6h7v1h-7v-1z" fill="#757575"/> + <path d="m2 0c-1.108 0-2 0.892-2 2v9c0 1.108 0.892 2 2 2h9c1.108 0 2-0.892 2-2v-9c0-1.108-0.892-2-2-2h-9zm1 6h7v1h-7v-1z" fill="currentColor"/> </svg> http://git-wip-us.apache.org/repos/asf/ignite/blob/7ee1683e/modules/web-console/frontend/public/images/icons/expand.svg ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/public/images/icons/expand.svg b/modules/web-console/frontend/public/images/icons/expand.svg index 569c9c0..131378e 100644 --- a/modules/web-console/frontend/public/images/icons/expand.svg +++ b/modules/web-console/frontend/public/images/icons/expand.svg @@ -1,3 +1,3 @@ <svg version="1.1" viewBox="0 0 13 13" xmlns="http://www.w3.org/2000/svg"> - <path d="m2 0c-1.108 0-2 0.892-2 2v9c0 1.108 0.892 2 2 2h9c1.108 0 2-0.892 2-2v-9c0-1.108-0.892-2-2-2zm4 3h1v3h3v1h-3v3h-1v-3h-3v-1h3z" fill="#757575" /> + <path d="m2 0c-1.108 0-2 0.892-2 2v9c0 1.108 0.892 2 2 2h9c1.108 0 2-0.892 2-2v-9c0-1.108-0.892-2-2-2zm4 3h1v3h3v1h-3v3h-1v-3h-3v-1h3z" fill="currentColor" /> </svg> http://git-wip-us.apache.org/repos/asf/ignite/blob/7ee1683e/modules/web-console/frontend/public/images/icons/index.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/public/images/icons/index.js b/modules/web-console/frontend/public/images/icons/index.js index cd9ff1e..6d320a9 100644 --- a/modules/web-console/frontend/public/images/icons/index.js +++ b/modules/web-console/frontend/public/images/icons/index.js @@ -22,18 +22,18 @@ export clock from './clock.svg'; export manual from './manual.svg'; export download from './download.svg'; export filter from './filter.svg'; +export plus from './plus.svg'; export search from './search.svg'; -export refresh from './refresh.svg'; +export checkmark from './checkmark.svg'; export sort from './sort.svg'; export info from './info.svg'; +export connectedClusters from './connectedClusters.svg'; export check from './check.svg'; -export checkmark from './checkmark.svg'; +export structure from './structure.svg'; export alert from './alert.svg'; export attention from './attention.svg'; -export connectedClusters from './connectedClusters.svg'; export exclamation from './exclamation.svg'; export collapse from './collapse.svg'; export expand from './expand.svg'; -export plus from './plus.svg'; export home from './home.svg'; http://git-wip-us.apache.org/repos/asf/ignite/blob/7ee1683e/modules/web-console/frontend/public/images/icons/plus.svg ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/public/images/icons/plus.svg b/modules/web-console/frontend/public/images/icons/plus.svg index fe7f6a6..04cdc47 100644 --- a/modules/web-console/frontend/public/images/icons/plus.svg +++ b/modules/web-console/frontend/public/images/icons/plus.svg @@ -1,3 +1,2 @@ -<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"> - <path fill="#FFF" fill-rule="evenodd" d="M12 6.857H6.857V12H5.143V6.857H0V5.143h5.143V0h1.714v5.143H12v1.714"/> -</svg> +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 12"> +<polyline fill="currentColor" points="12,6.9 6.9,6.9 6.9,12 5.1,12 5.1,6.9 0,6.9 0,5.1 5.1,5.1 5.1,0 6.9,0 6.9,5.1 12,5.1 12,6.9 "/></svg> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/7ee1683e/modules/web-console/frontend/public/images/icons/structure.svg ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/public/images/icons/structure.svg b/modules/web-console/frontend/public/images/icons/structure.svg new file mode 100644 index 0000000..b83386e --- /dev/null +++ b/modules/web-console/frontend/public/images/icons/structure.svg @@ -0,0 +1,3 @@ +<svg version="1.1" viewBox="0 0 16 14" xmlns="http://www.w3.org/2000/svg"> + <path fill="currentColor" d="m0 0v3h1v3h4v2h2.0996v3.9004h3.9004v2.0996h5v-5h-5v1.9004h-2.9004v-2.9004h0.90039v-4h-4v1.0488l-3-0.048828v-2h1v-3h-3z"/> +</svg> http://git-wip-us.apache.org/repos/asf/ignite/blob/7ee1683e/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 fe1e94e..ae1e58c 100644 --- a/modules/web-console/frontend/public/stylesheets/style.scss +++ b/modules/web-console/frontend/public/stylesheets/style.scss @@ -23,6 +23,16 @@ @import "./blocks/error"; @import "./form-field"; +body { + overflow-y: scroll !important; +} + +.flex-full-height { + display: flex; + flex-direction: column; + flex: 1 0 auto; +} + hr { margin: 20px 0; } @@ -84,11 +94,6 @@ hr { color: $input-color-placeholder; } -.theme-line .summary-pojo-list > ul.dropdown-menu { - width: 100%; - max-width: none; -} - .tooltip { word-wrap: break-word; } @@ -270,7 +275,7 @@ body > .wrapper, body > .wrapper > ui-view { display: flex; flex-direction: column; - min-height: 100%; + min-height: 100vh; flex: 1 0 auto; .body-container { @@ -692,10 +697,6 @@ button.form-control { padding: 20px; } -.theme-line .main-content a.customize { - margin-left: 5px; -} - .theme-line .panel-collapse { margin: 0; } @@ -843,10 +844,6 @@ button.form-control { padding-bottom: 10px; } -.import-domain-model-wizard-page { - margin: 15px; -} - .scrollable-y { overflow-x: hidden; overflow-y: auto; @@ -1144,45 +1141,8 @@ button.form-control { } } -.theme-line .popover.summary-project-structure { - @extend .popover.settings; - - z-index: 1030; - min-width: 305px; - - .popover-title { - color: black; - - line-height: 27px; - - padding: 3px 5px 3px 10px; - - white-space: nowrap; - overflow: hidden; - -o-text-overflow: ellipsis; - text-overflow: ellipsis; - - .close { - float: right; - top: 0; - right: 0; - position: relative; - margin-left: 10px; - line-height: 27px; - } - } - - > .popover-content { - overflow: auto; - - white-space: nowrap; - - min-height: 300px; - max-height: 300px; - } -} - -.theme-line .popover.validation-error { +.popover.validation-error { + font-family: Roboto; white-space: pre-wrap; width: auto !important; max-width: 400px !important; @@ -1278,7 +1238,7 @@ label { margin-right: 5px; } -label.required:after { +.required:after { color: $brand-primary; content: ' *'; display: inline; @@ -1320,19 +1280,6 @@ label.required:after { } } -.summary-tabs { - margin-top: 0.65em; -} - -.summary-tab { - img { - margin-right: 5px; - height: 16px; - width: 16px; - float: left; - } -} - input[type="number"]::-webkit-outer-spin-button, input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; @@ -1489,16 +1436,6 @@ th[st-sort] { } } -.preview-panel, .summary-tabs { - .ace_hidden-cursors { - opacity: 0; - } - - .ace_cursor { - opacity: 0; - } -} - .preview-highlight-1 { position: absolute; background-color: #f7faff; @@ -1561,6 +1498,7 @@ th[st-sort] { .preview-panel { min-height: 28px; + position: relative; margin-left: 20px; @@ -1574,7 +1512,7 @@ th[st-sort] { top: -10px; right: 20px; position: absolute; - z-index: 900; + z-index: 2; a { color: $input-color-placeholder; @@ -1593,7 +1531,7 @@ th[st-sort] { } .preview-content-empty { - color: $input-color-placeholder; + color: #757575; display: table; width: 100%; height: 26px; @@ -1947,18 +1885,6 @@ treecontrol.tree-classic { border-bottom-width: 0; } -.summary-tabs { - .nav-tabs > li:first-child, - .nav-tabs > li:first-child.active { - & > a, - & > a:focus, - & > a:hover { - border-left: none; - border-top-left-radius: 0; - } - } -} - .ribbon-wrapper { width: 150px; height: 150px; @@ -2012,9 +1938,9 @@ treecontrol.tree-classic { } } -html,body,.splash-screen { +html, body { width: 100%; - height: 100%; + min-height: 100vh; } .splash { @@ -2117,14 +2043,6 @@ html,body,.splash-screen { } } -.domains-import-dialog { - .modal-body { - height: 325px; - margin: 0; - padding: 0; - } -} - // Fix for incorrect tooltip placement after fast show|hide. .tooltip.ng-leave { transition: none !important; /* Disable transitions. */ http://git-wip-us.apache.org/repos/asf/ignite/blob/7ee1683e/modules/web-console/frontend/tsconfig.json ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/tsconfig.json b/modules/web-console/frontend/tsconfig.json index a70845d..df18120 100644 --- a/modules/web-console/frontend/tsconfig.json +++ b/modules/web-console/frontend/tsconfig.json @@ -2,11 +2,9 @@ "compilerOptions": { "allowSyntheticDefaultImports": true, "target": "ES2017", + "moduleResolution": "Node", "allowJs": true, "checkJs": true, - "baseUrl": ".", - "paths": { - "*": ["*", "node_modules/*"] - } + "baseUrl": "." } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/7ee1683e/modules/web-console/frontend/views/base2.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/views/base2.pug b/modules/web-console/frontend/views/base2.pug index fd2331c..22028d5 100644 --- a/modules/web-console/frontend/views/base2.pug +++ b/modules/web-console/frontend/views/base2.pug @@ -20,7 +20,7 @@ web-console-header web-console-header-right include ./includes/header-right -.container.body-container - div(ui-view='') +.container.body-container.flex-full-height + div(ui-view='').flex-full-height web-console-footer \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/7ee1683e/modules/web-console/frontend/views/configuration/caches.tpl.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/views/configuration/caches.tpl.pug b/modules/web-console/frontend/views/configuration/caches.tpl.pug deleted file mode 100644 index 43b5d57..0000000 --- a/modules/web-console/frontend/views/configuration/caches.tpl.pug +++ /dev/null @@ -1,55 +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. - -include /app/helpers/jade/mixins - -.docs-header - h1 Configure Ignite Caches -.docs-body - ignite-information - ul - li Configure #[a(href='https://apacheignite.readme.io/docs/data-grid' target='_blank') memory] settings - li Configure persistence - div(ignite-loading='loadingCachesScreen' ignite-loading-text='Loading caches...' ignite-loading-position='top') - div(ng-show='ui.ready') - hr - +main-table('caches', 'caches', 'cacheName', 'selectItem(row)', '{{$index + 1}}) {{row.label}}', 'label') - .padding-top-dflt(bs-affix) - .panel-tip-container(data-placement='bottom' bs-tooltip='' data-title='Create new cache') - button.btn.btn-primary(id='new-item' ng-click='createItem()') Add cache - +save-remove-clone-undo-buttons('cache') - hr - .bs-affix-fix - div(bs-collapse='' data-allow-multiple='true' ng-model='ui.activePanels') - form.form-horizontal(name='ui.inputForm' novalidate ng-if='contentVisible()') - .panel-group - include /app/modules/states/configuration/caches/general - include /app/modules/states/configuration/caches/memory - include /app/modules/states/configuration/caches/query - include /app/modules/states/configuration/caches/store - - +advanced-options-toggle-default - - div(ng-show='ui.expanded') - include /app/modules/states/configuration/caches/affinity - include /app/modules/states/configuration/caches/concurrency - include /app/modules/states/configuration/caches/near-cache-client - include /app/modules/states/configuration/caches/near-cache-server - include /app/modules/states/configuration/caches/node-filter - include /app/modules/states/configuration/caches/rebalance - include /app/modules/states/configuration/caches/statistics - - +advanced-options-toggle-default http://git-wip-us.apache.org/repos/asf/ignite/blob/7ee1683e/modules/web-console/frontend/views/configuration/clusters.tpl.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/views/configuration/clusters.tpl.pug b/modules/web-console/frontend/views/configuration/clusters.tpl.pug deleted file mode 100644 index 19ed350..0000000 --- a/modules/web-console/frontend/views/configuration/clusters.tpl.pug +++ /dev/null @@ -1,95 +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. - -include /app/helpers/jade/mixins - -.docs-header - h1 Configure Ignite Clusters -.docs-body - ignite-information - ul - li Configure #[a(href='https://apacheignite.readme.io/docs/clustering' target='_blank') clusters] properties - li Associate clusters with caches and in-memory file systems - div(ignite-loading='loadingClustersScreen' ignite-loading-text='Loading clusters...' ignite-loading-position='top') - div(ng-show='ui.ready') - hr - +main-table('clusters', 'clusters', 'clusterName', 'selectItem(row)', '{{$index + 1}}) {{row.label}}', 'label') - .padding-top-dflt(bs-affix) - .panel-tip-container(data-placement='bottom' bs-tooltip='' data-title='Create new cluster') - button.btn.btn-primary(id='new-item' ng-click='createItem()') Add cluster - +save-remove-clone-undo-buttons('cluster') - hr - .bs-affix-fix - div(bs-collapse='' data-allow-multiple='true' ng-model='ui.activePanels') - form.form-horizontal(name='ui.inputForm' novalidate ng-if='contentVisible()') - .panel-group - include /app/modules/states/configuration/clusters/general - - +advanced-options-toggle-default - - div(ng-show='ui.expanded') - include /app/modules/states/configuration/clusters/atomic - include /app/modules/states/configuration/clusters/binary - include /app/modules/states/configuration/clusters/cache-key-cfg - include /app/modules/states/configuration/clusters/checkpoint - - //- Since ignite 2.3 - include /app/modules/states/configuration/clusters/client-connector - - include /app/modules/states/configuration/clusters/collision - include /app/modules/states/configuration/clusters/communication - include /app/modules/states/configuration/clusters/connector - include /app/modules/states/configuration/clusters/deployment - - //- Since ignite 2.3 - include /app/modules/states/configuration/clusters/data-storage - - include /app/modules/states/configuration/clusters/discovery - include /app/modules/states/configuration/clusters/events - include /app/modules/states/configuration/clusters/failover - include /app/modules/states/configuration/clusters/hadoop - include /app/modules/states/configuration/clusters/igfs - include /app/modules/states/configuration/clusters/load-balancing - include /app/modules/states/configuration/clusters/logger - include /app/modules/states/configuration/clusters/marshaller - - //- Since ignite 2.0, deprecated in ignite 2.3 - include /app/modules/states/configuration/clusters/memory - - include /app/modules/states/configuration/clusters/misc - include /app/modules/states/configuration/clusters/metrics - - //- Deprecated in ignite 2.1 - include /app/modules/states/configuration/clusters/odbc - - //- Since ignite 2.1, deprecated in ignite 2.3 - include /app/modules/states/configuration/clusters/persistence - - //- Deprecated in ignite 2.3 - include /app/modules/states/configuration/clusters/sql-connector - - include /app/modules/states/configuration/clusters/service - include /app/modules/states/configuration/clusters/ssl - - //- Removed in ignite 2.0 - include /app/modules/states/configuration/clusters/swap - - include /app/modules/states/configuration/clusters/thread - include /app/modules/states/configuration/clusters/time - include /app/modules/states/configuration/clusters/transactions - include /app/modules/states/configuration/clusters/attributes - - +advanced-options-toggle-default http://git-wip-us.apache.org/repos/asf/ignite/blob/7ee1683e/modules/web-console/frontend/views/configuration/domains.tpl.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/views/configuration/domains.tpl.pug b/modules/web-console/frontend/views/configuration/domains.tpl.pug index 9e3e297..89bd2ac 100644 --- a/modules/web-console/frontend/views/configuration/domains.tpl.pug +++ b/modules/web-console/frontend/views/configuration/domains.tpl.pug @@ -14,52 +14,45 @@ See the License for the specific language governing permissions and limitations under the License. -include /app/helpers/jade/mixins +pc-items-table( + table-title='::"My domain models"' + column-defs='$ctrl.modelsColumnDefs' + items='$ctrl.modelsTable' + on-action='$ctrl.onModelAction($event)' + selected-row-id='$ctrl.selectedItemIDs' + on-selection-change='$ctrl.selectionHook($event)' +) + footer-slot + div(style='font-style: italic' ng-hide='$ctrl.modelsTable.length') + | You have no domain models. #[a.link-success(ui-sref='base.configuration.tabs.advanced.models.model({modelID: "new"})') Create one?] + a.link-success(ui-sref='base.configuration.tabs.advanced.models.model({modelID: "new"})' ng-show='$ctrl.modelsTable.length') + Add new domain model -.docs-header - h1 Configure Domain Model And SQL Queries -.docs-body - ignite-information - ul: li Import database schemas - li Configure indexed types - div(ignite-loading='loadingDomainModelsScreen' ignite-loading-text='Loading domain models...' ignite-loading-position='top') - div(ng-show='ui.ready') - hr - .padding-bottom-dflt(ng-show='domains && domains.length > 0') - table.links(st-table='displayedRows' st-safe-src='domains') - thead - tr - th - .col-sm-9 - .col-sm-6 - lable.labelHeader.labelFormField {{domainModelTitle()}} - .col-sm-6 - .pull-right.labelLogin.additional-filter(ng-if='(domains | domainsValidation:false:true).length > 0') - a.labelFormField(ng-if='ui.showValid' ng-click='toggleValid()' bs-tooltip='' data-title='{{::ui.invalidKeyFieldsTooltip}}') Key fields should be configured: {{(displayedRows | domainsValidation:false:true).length}}  - a.labelFormField(ng-if='!ui.showValid' ng-click='toggleValid()') Show all domain models: {{displayedRows.length}}  - .col-sm-3 - input.form-control.pull-right(type='text' st-search='valueType' placeholder='Filter domain models...') - tbody - tr - td - .scrollable-y(ng-show='(displayedRows | domainsValidation:ui.showValid:true).length > 0' style='max-height: 200px') - table - tbody - tr(ng-repeat='row in (displayedRows | domainsValidation:ui.showValid:true) track by row._id' ignite-bs-affix-update) - td - a(ng-class='{active: row._id == selectedItem._id}' ng-click='selectItem(row)') {{$index + 1}}) {{row.valueType}} - label.placeholder(ng-show='(displayedRows | domainsValidation:ui.showValid:true).length == 0') No domain models found - .padding-top-dflt(bs-affix) - .panel-tip-container(data-placement='bottom' bs-tooltip='' data-title='Create new domain model') - button.btn.btn-primary(id='new-item' ng-click='createItem()') Add domain model - .panel-tip-container(bs-tooltip='' data-title='Import domain models from database' data-placement='bottom') - button.btn.btn-primary(ng-click='showImportDomainModal()') Import from database - +save-remove-clone-undo-buttons('domain model') - hr - .bs-affix-fix - div(bs-collapse='' data-allow-multiple='true' ng-model='ui.activePanels') - form.form-horizontal(name='ui.inputForm' novalidate ng-if='contentVisible()') - .panel-group - include /app/modules/states/configuration/domains/general - include /app/modules/states/configuration/domains/query - include /app/modules/states/configuration/domains/store +h2.pc-page-header(ng-if='$ctrl.selectedItemIDs.length !== 1') + | {{ $ctrl.selectedItemIDs.length ? 'Multiple' : 'No' }} domain models selected + span.pc-page-header-sub Select only one domain model to see settings and edit it + +h2.pc-page-header(ng-if='$ctrl.selectedItemIDs.length === 1') + | {{ $ctrl.$state.params.modelID !== 'new' ? 'Edit' : 'Create' }} domain model {{ backupItem.valueType ? 'for â'+backupItem.valueType+'â value type' : '' }} + +div(bs-collapse='' data-allow-multiple='true' ng-model='ui.activePanels' ng-class='{"pca-form-blocked": $ctrl.selectedItemIDs.length !== 1}') + form.form-horizontal(name='ui.inputForm' novalidate ) + include /app/modules/states/configuration/domains/general + include /app/modules/states/configuration/domains/query + include /app/modules/states/configuration/domains/store + +.pc-form-actions-panel(ng-class='{"pca-form-blocked": $ctrl.selectedItemIDs.length !== 1}') + button.btn-ignite.btn-ignite--success( + ng-click='showImportDomainModal()' + type='button' + ) Import from database + .pc-form-actions-panel__right-after + button.btn-ignite.btn-ignite--link-success( + type='button' + ng-disabled='!ui.inputForm.$dirty' + ng-click='ui.inputForm.$dirty && resetAll()' + ) + | Cancel + button.btn-ignite.btn-ignite--success( + ng-disabled='!ui.inputForm.$dirty' + ng-click='ui.inputForm.$dirty && $ctrl.saveItem(backupItem)' + ) Save http://git-wip-us.apache.org/repos/asf/ignite/blob/7ee1683e/modules/web-console/frontend/views/configuration/igfs.tpl.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/views/configuration/igfs.tpl.pug b/modules/web-console/frontend/views/configuration/igfs.tpl.pug deleted file mode 100644 index 46ee4c0..0000000 --- a/modules/web-console/frontend/views/configuration/igfs.tpl.pug +++ /dev/null @@ -1,54 +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. - -include /app/helpers/jade/mixins - -.docs-header - h1 Configure Ignite In-memory File Systems -.docs-body - ignite-information(data-title='Configure IGFS only if you are going to use In-memory File System') - ul - li Ignite File System (#[a(href='https://apacheignite-fs.readme.io/docs/in-memory-file-system' target='_blank') IGFS]) is an in-memory file system allowing work with files and directories over existing cache infrastructure - li IGFS can either work as purely in-memory file system, or delegate to another file system (e.g. various Hadoop file system implementations) acting as a caching layer (see #[a(href='https://apacheignite-fs.readme.io/docs/secondary-file-system' target='_blank') secondary file system] for more detail) - li In addition IGFS provides API to execute map-reduce tasks over file system data - div(ignite-loading='loadingIgfsScreen' ignite-loading-text='Loading IGFS screen...' ignite-loading-position='top') - div(ng-show='ui.ready') - hr - +main-table('IGFS', 'igfss', 'igfsName', 'selectItem(row)', '{{$index + 1}}) {{row.name}}', 'name') - .padding-top-dflt(bs-affix) - .panel-tip-container(data-placement='bottom' bs-tooltip='' data-title='Create new IGFS') - button.btn.btn-primary(id='new-item' ng-click='createItem()') Add IGFS - +save-remove-clone-undo-buttons('IGFS') - hr - .bs-affix-fix - div(bs-collapse='' data-allow-multiple='true' ng-model='ui.activePanels') - form.form-horizontal(name='ui.inputForm' novalidate ng-if='contentVisible()') - .panel-group - include /app/modules/states/configuration/igfs/general - - +advanced-options-toggle-default - - div(ng-show='ui.expanded') - include /app/modules/states/configuration/igfs/secondary - include /app/modules/states/configuration/igfs/ipc - include /app/modules/states/configuration/igfs/fragmentizer - - //- Removed in ignite 2.0 - include /app/modules/states/configuration/igfs/dual - - include /app/modules/states/configuration/igfs/misc - - +advanced-options-toggle-default http://git-wip-us.apache.org/repos/asf/ignite/blob/7ee1683e/modules/web-console/frontend/views/configuration/summary-project-structure.tpl.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/views/configuration/summary-project-structure.tpl.pug b/modules/web-console/frontend/views/configuration/summary-project-structure.tpl.pug deleted file mode 100644 index 31a557f..0000000 --- a/modules/web-console/frontend/views/configuration/summary-project-structure.tpl.pug +++ /dev/null @@ -1,28 +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. - -.popover.summary-project-structure - h3.popover-title - label.labelField Project structure - 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='node.type') - span(ng-switch-when='folder') - label {{node.name}} - span(ng-switch-when='file') - i.fa.fa-file-text-o - label {{node.name}} http://git-wip-us.apache.org/repos/asf/ignite/blob/7ee1683e/modules/web-console/frontend/views/configuration/summary-tabs.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/views/configuration/summary-tabs.pug b/modules/web-console/frontend/views/configuration/summary-tabs.pug deleted file mode 100644 index d05e3a9..0000000 --- a/modules/web-console/frontend/views/configuration/summary-tabs.pug +++ /dev/null @@ -1,25 +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. - -ul.nav(ng-class='$navClass' role='tablist') - li(role='presentation' ng-repeat='$pane in $panes track by $index' ng-class='[ $isActive($pane, $index) ? $activeClass : "", $pane.disabled ? "disabled" : "" ]') - a.summary-tab(ng-show='$pane.title != "POJO" || (cluster | hasPojo)' ng-switch='$pane.title' role='tab' data-toggle='tab' ng-click='!$pane.disabled && $setActive($pane.name || $index)' data-index='{{ $index }}' aria-controls='$pane.title') {{$pane.title}} - img(ng-switch-when='XML' src='/images/xml.png') - img(ng-switch-when='Java' src='/images/java.png') - img(ng-switch-when='POM' src='/images/xml.png') - img(ng-switch-when='POJO' src='/images/java.png') - img(ng-switch-when='Dockerfile' src='/images/docker.png') -.tab-content(ng-transclude style='fontSize: 12px; min-height: 25em') http://git-wip-us.apache.org/repos/asf/ignite/blob/7ee1683e/modules/web-console/frontend/views/configuration/summary.tpl.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/views/configuration/summary.tpl.pug b/modules/web-console/frontend/views/configuration/summary.tpl.pug deleted file mode 100644 index 6d6837f..0000000 --- a/modules/web-console/frontend/views/configuration/summary.tpl.pug +++ /dev/null @@ -1,87 +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. - -include /app/helpers/jade/mixins - -.docs-header - h1 Configurations Summary -.docs-body.summary - ignite-information - ul - li Preview XML configurations for #[a(href='https://apacheignite.readme.io/docs/clients-vs-servers' target='_blank') server and client] nodes - li Preview code configuration - li Preview #[a(href='https://apacheignite.readme.io/docs/docker-deployment' target='_blank') Docker file] - li Preview POM dependencies - li Download ready-to-use Maven project - hr - .padding-dflt(ng-if='ui.ready && (!clusters || clusters.length == 0)') - | You have no clusters configured. Please configure them #[a(ui-sref='base.configuration.tabs.advanced.clusters') here]. - - div(ng-show='clusters && clusters.length > 0' ignite-loading='summaryPage' ignite-loading-text='Loading summary screen...' ignite-loading-position='top') - +main-table('clusters', 'clustersView', 'clusterName', 'selectItem(row)', '{{$index + 1}}) {{row.name}}', 'name') - div(ng-show='selectedItem && contentVisible(displayedRows, selectedItem)') - .actions.padding-top-dflt(bs-affix) - div - button.btn.btn-primary(id='download' ng-click='downloadConfiguration()' bs-tooltip='' data-title='Download project' data-placement='bottom' ng-disabled='isPrepareDownloading') - div - i.fa.fa-fw.fa-download(ng-hide='isPrepareDownloading') - i.fa.fa-fw.fa-refresh.fa-spin(ng-show='isPrepareDownloading') - span.tipLabel Download project - span(bs-tooltip='' data-title='Preview generated project structure' data-placement='bottom') - button.btn.btn-primary(bs-popover data-template-url='{{ ctrl.summaryProjectStructureTemplateUrl }}', data-placement='bottom', data-trigger='click' data-auto-close='true') - i.fa.fa-sitemap - label.tipLabel Project structure - button.btn.btn-primary(id='proprietary-jdbc-drivers' ng-if='downloadJdbcDriversVisible()' ng-click='downloadJdbcDrivers()' bs-tooltip='' data-title='Open proprietary JDBC drivers download pages' data-placement='bottom') Download JDBC drivers - .actions-note(ng-show='ui.isSafari') - i.icon-note - label "Download project" is not fully supported in Safari. Please rename downloaded file from "Unknown" to "<project-name>.zip" - hr - .bs-affix-fix - .panel-group(bs-collapse ng-init='ui.activePanels=[0,1]' ng-model='ui.activePanels' data-allow-multiple='true') - .panel.panel-default - .panel-heading(role='tab' bs-collapse-toggle) - ignite-form-panel-chevron - label Server - - .panel-collapse(id='server' role='tabpanel' bs-collapse-target) - .summary-tabs(ignite-ui-ace-tabs) - div(bs-tabs data-bs-active-pane='tabsServer.activeTab' data-template='summary-tabs.html') - div(bs-pane title='XML') - 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-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-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-generator='igniteConfiguration' data-no-deep-watch ng-model='ctrl.data.docker') - - .panel.panel-default - .panel-heading(role='tab' bs-collapse-toggle) - ignite-form-panel-chevron - label Client - - .panel-collapse(id='client' role='tabpanel' bs-collapse-target) - .summary-tabs(ignite-ui-ace-tabs) - div(bs-tabs data-bs-active-pane='tabsClient.activeTab' data-template='summary-tabs.html') - div(bs-pane title='XML') - 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-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-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/7ee1683e/modules/web-console/frontend/views/includes/header-left.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/views/includes/header-left.pug b/modules/web-console/frontend/views/includes/header-left.pug index 3111eb5..2052bbc 100644 --- a/modules/web-console/frontend/views/includes/header-left.pug +++ b/modules/web-console/frontend/views/includes/header-left.pug @@ -14,9 +14,11 @@ See the License for the specific language governing permissions and limitations under the License. -.wch-nav-item - a(ui-sref='base.configuration.tabs' ui-sref-active='active') - | Configure +a.wch-nav-item( + ui-sref='base.configuration.overview' + ui-sref-active='{active: "base.configuration"}' +) + | Configure .wch-nav-item(ng-if='!$root.user.becomeUsed') a(ui-sref='base.sql.tabs' ui-sref-active='active') http://git-wip-us.apache.org/repos/asf/ignite/blob/7ee1683e/modules/web-console/frontend/views/templates/batch-confirm.tpl.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/views/templates/batch-confirm.tpl.pug b/modules/web-console/frontend/views/templates/batch-confirm.tpl.pug index 0b74a4e..ad8741b 100644 --- a/modules/web-console/frontend/views/templates/batch-confirm.tpl.pug +++ b/modules/web-console/frontend/views/templates/batch-confirm.tpl.pug @@ -14,21 +14,34 @@ See the License for the specific language governing permissions and limitations under the License. -.modal(tabindex='-1' role='dialog') +.modal.modal--ignite.theme--ignite(tabindex='-1' role='dialog') .modal-dialog .modal-content .modal-header - button.close(ng-click='cancel()' aria-hidden='true') × h4.modal-title - i.icon-confirm + svg(ignite-icon='attention') | Confirmation + button.close(type='button' aria-label='Close' ng-click='cancel()') + svg(ignite-icon="cross") .modal-body(ng-show='content') - p(ng-bind-html='content' style='text-align: center') + p(ng-bind-html='content') .modal-footer - .checkbox.labelField + .checkbox.labelField(style='margin-top: 7px') label input(type='checkbox' ng-model='applyToAll') | Apply to all - button.btn.btn-default(id='batch-confirm-btn-cancel' ng-click='cancel()') Cancel - button.btn.btn-default(id='batch-confirm-btn-skip' ng-click='skip(applyToAll)') Skip - button.btn.btn-primary(id='batch-confirm-btn-overwrite' ng-click='overwrite(applyToAll)') Overwrite + button.btn-ignite.btn-ignite--secondary( + id='batch-confirm-btn-cancel' + ng-click='cancel()' + type='button' + ) Cancel + button.btn-ignite.btn-ignite--secondary( + id='batch-confirm-btn-skip' + ng-click='skip(applyToAll)' + type='button' + ) Skip + button.btn-ignite.btn-ignite--success( + id='batch-confirm-btn-overwrite' + ng-click='overwrite(applyToAll)' + type='button' + ) Overwrite http://git-wip-us.apache.org/repos/asf/ignite/blob/7ee1683e/modules/web-console/frontend/views/templates/confirm.tpl.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/views/templates/confirm.tpl.pug b/modules/web-console/frontend/views/templates/confirm.tpl.pug index ccbcfae..1b1560c 100644 --- a/modules/web-console/frontend/views/templates/confirm.tpl.pug +++ b/modules/web-console/frontend/views/templates/confirm.tpl.pug @@ -15,7 +15,7 @@ limitations under the License. .modal.modal--ignite.theme--ignite(tabindex='-1' role='dialog') - .modal-dialog + .modal-dialog.modal-dialog--adjust-height .modal-content .modal-header h4.modal-title http://git-wip-us.apache.org/repos/asf/ignite/blob/7ee1683e/modules/web-console/frontend/webpack/webpack.common.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/webpack/webpack.common.js b/modules/web-console/frontend/webpack/webpack.common.js index a0d6d0c..8d21986 100644 --- a/modules/web-console/frontend/webpack/webpack.common.js +++ b/modules/web-console/frontend/webpack/webpack.common.js @@ -128,12 +128,12 @@ export default { }, { test: /\.(ttf|eot|svg|woff(2)?)(\?v=[\d.]+)?(\?[a-z0-9#-]+)?$/, - exclude: [contentBase], + exclude: [contentBase, IgniteModules], loader: 'file?name=assets/fonts/[name].[ext]' }, { test: /.*\.svg$/, - include: [contentBase], + include: [contentBase, IgniteModules], use: ['svg-sprite-loader'] }, { http://git-wip-us.apache.org/repos/asf/ignite/blob/7ee1683e/modules/web-console/frontend/webpack/webpack.dev.babel.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/webpack/webpack.dev.babel.js b/modules/web-console/frontend/webpack/webpack.dev.babel.js index 88bf5c6..78ff5e1 100644 --- a/modules/web-console/frontend/webpack/webpack.dev.babel.js +++ b/modules/web-console/frontend/webpack/webpack.dev.babel.js @@ -32,6 +32,7 @@ export default merge(commonCfg, { devtool: 'source-map', watch: true, module: { + exprContextCritical: false, rules: [ { test: /\.css$/, http://git-wip-us.apache.org/repos/asf/ignite/blob/7ee1683e/modules/web-console/frontend/webpack/webpack.test.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/webpack/webpack.test.js b/modules/web-console/frontend/webpack/webpack.test.js index 36d2650..7ce1fb4 100644 --- a/modules/web-console/frontend/webpack/webpack.test.js +++ b/modules/web-console/frontend/webpack/webpack.test.js @@ -29,5 +29,12 @@ export default merge(commonCfg, { entry: null, // Output system. - output: null + output: null, + module: { + rules: [ + {test: /\.scss$/, use: ['ignore-loader']}, + {test: /\.css$/, use: ['ignore-loader']}, + {test: /\.pug$/, use: ['ignore-loader']} + ] + } });
