You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by an...@apache.org on 2017/03/02 09:05:36 UTC
[01/15] ignite git commit: IGNITE-4659 Migration to Webpack 2.
Upgrade template engine from jade to pug.
Repository: ignite
Updated Branches:
refs/heads/master f71e4b47a -> 1080e6861
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/sql/sql.tpl.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/sql/sql.tpl.pug b/modules/web-console/frontend/views/sql/sql.tpl.pug
new file mode 100644
index 0000000..931d632
--- /dev/null
+++ b/modules/web-console/frontend/views/sql/sql.tpl.pug
@@ -0,0 +1,278 @@
+//-
+ 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
+include /app/components/ui-grid-settings/ui-grid-settings
+
+mixin btn-toolbar(btn, click, tip, focusId)
+ i.btn.btn-default.fa(class=btn ng-click=click bs-tooltip='' data-title=tip ignite-on-click-focus=focusId data-trigger='hover' data-placement='bottom')
+
+mixin btn-toolbar-data(btn, kind, tip)
+ i.btn.btn-default.fa(class=btn ng-click=`setResult(paragraph, '${kind}')` ng-class=`{active: resultEq(paragraph, '${kind}')}` bs-tooltip='' data-title=tip data-trigger='hover' data-placement='bottom')
+
+mixin result-toolbar
+ .btn-group(ng-model='paragraph.result' ng-click='$event.stopPropagation()' style='left: 50%; margin: 0 0 0 -70px;display: block;')
+ +btn-toolbar-data('fa-table', 'table', 'Show data in tabular form')
+ +btn-toolbar-data('fa-bar-chart', 'bar', 'Show bar chart<br/>By default first column - X values, second column - Y values<br/>In case of one column it will be treated as Y values')
+ +btn-toolbar-data('fa-pie-chart', 'pie', 'Show pie chart<br/>By default first column - pie labels, second column - pie values<br/>In case of one column it will be treated as pie values')
+ +btn-toolbar-data('fa-line-chart', 'line', 'Show line chart<br/>By default first column - X values, second column - Y values<br/>In case of one column it will be treated as Y values')
+ +btn-toolbar-data('fa-area-chart', 'area', 'Show area chart<br/>By default first column - X values, second column - Y values<br/>In case of one column it will be treated as Y values')
+
+mixin chart-settings
+ .total.row
+ .col-xs-4
+ .chart-settings-link(ng-show='paragraph.chart && paragraph.chartColumns.length > 0')
+ a(title='Click to show chart settings dialog' ng-click='$event.stopPropagation()' bs-popover data-template-url='{{ $ctrl.chartSettingsTemplateUrl }}' data-placement='bottom' data-auto-close='1' data-trigger='click')
+ i.fa.fa-bars
+ | Chart settings
+ div(ng-show='paragraphTimeSpanVisible(paragraph)')
+ label Show
+ button.select-manual-caret.btn.btn-default(ng-model='paragraph.timeLineSpan' ng-change='applyChartSettings(paragraph)' bs-options='item for item in timeLineSpans' bs-select data-caret-html='<span class="caret"></span>')
+ label min
+ .col-xs-4
+ +result-toolbar
+
+mixin notebook-rename
+ .docs-header.notebook-header
+ h1.col-sm-6(ng-hide='notebook.edit')
+ label(style='max-width: calc(100% - 60px)') {{notebook.name}}
+ .btn-group(ng-if='!demo')
+ +btn-toolbar('fa-pencil', 'notebook.edit = true;notebook.editName = notebook.name', 'Rename notebook')
+ +btn-toolbar('fa-trash', 'removeNotebook(notebook)', 'Remove notebook')
+ h1.col-sm-6(ng-show='notebook.edit')
+ i.btn.fa.fa-floppy-o(ng-show='notebook.editName' ng-click='renameNotebook(notebook.editName)' bs-tooltip data-title='Save notebook name' data-trigger='hover')
+ .input-tip
+ input.form-control(ng-model='notebook.editName' required ignite-on-enter='renameNotebook(notebook.editName)' ignite-on-escape='notebook.edit = false;')
+ h1.pull-right
+ a.dropdown-toggle(style='margin-right: 20px' data-toggle='dropdown' bs-dropdown='scrollParagraphs' data-placement='bottom-right') Scroll to query
+ span.caret
+ button.btn.btn-default(style='margin-top: 2px' ng-click='addQuery()' ignite-on-click-focus=focusId)
+ i.fa.fa-fw.fa-plus
+ | Add query
+
+ button.btn.btn-default(style='margin-top: 2px' ng-click='addScan()' ignite-on-click-focus=focusId)
+ i.fa.fa-fw.fa-plus
+ | Add scan
+
+mixin notebook-error
+ h2 Failed to load notebook
+ label.col-sm-12 Notebook not accessible any more. Go back to configuration or open to another notebook.
+ button.h3.btn.btn-primary(ui-sref='base.configuration.clusters') Back to configuration
+
+mixin paragraph-rename
+ .col-sm-6(ng-hide='paragraph.edit')
+ i.fa(ng-class='paragraphExpanded(paragraph) ? "fa-chevron-circle-down" : "fa-chevron-circle-right"')
+ label {{paragraph.name}}
+
+ .btn-group(ng-hide='notebook.paragraphs.length > 1')
+ +btn-toolbar('fa-pencil', 'paragraph.edit = true; paragraph.editName = paragraph.name; $event.stopPropagation();', 'Rename query', 'paragraph-name-{{paragraph.id}}')
+
+ .btn-group(ng-show='notebook.paragraphs.length > 1' ng-click='$event.stopPropagation();')
+ +btn-toolbar('fa-pencil', 'paragraph.edit = true; paragraph.editName = paragraph.name;', 'Rename query', 'paragraph-name-{{paragraph.id}}')
+ +btn-toolbar('fa-remove', 'removeParagraph(paragraph)', 'Remove query')
+
+ .col-sm-6(ng-show='paragraph.edit')
+ i.tipLabel.fa(style='float: left;' ng-class='paragraphExpanded(paragraph) ? "fa-chevron-circle-down" : "fa-chevron-circle-right"')
+ i.tipLabel.fa.fa-floppy-o(style='float: right;' ng-show='paragraph.editName' ng-click='renameParagraph(paragraph, paragraph.editName); $event.stopPropagation();' bs-tooltip data-title='Save query name' data-trigger='hover')
+ .input-tip
+ input.form-control(id='paragraph-name-{{paragraph.id}}' ng-model='paragraph.editName' required ng-click='$event.stopPropagation();' ignite-on-enter='renameParagraph(paragraph, paragraph.editName)' ignite-on-escape='paragraph.edit = false')
+
+mixin query-settings
+ label.tipLabel(bs-tooltip data-placement='bottom' data-title='Configure periodical execution of last successfully executed query') Refresh rate:
+ button.btn.btn-default.fa.fa-clock-o.tipLabel(ng-class='{"btn-info": paragraph.rate && paragraph.rate.installed}' bs-popover data-template-url='{{ $ctrl.paragraphRateTemplateUrl }}' data-placement='left' data-auto-close='1' data-trigger='click') {{rateAsString(paragraph)}}
+
+ label.tipLabel(bs-tooltip data-placement='bottom' data-title='Max number of rows to show in query result as one page') Page size:
+ button.btn.btn-default.select-toggle.tipLabel(ng-model='paragraph.pageSize' bs-select bs-options='item for item in pageSizes')
+
+ label.tipLabel(bs-tooltip data-placement='bottom' data-title='Limit query max results to specified number of pages') Max pages:
+ button.btn.btn-default.select-toggle.tipLabel(ng-model='paragraph.maxPages' bs-select bs-options='item.value as item.label for item in maxPages')
+
+ label.tipLabel(ng-if='nonCollocatedJoinsAvailable(paragraph)' bs-tooltip data-placement='bottom' data-title='Non-collocated joins is a special mode that allow to join data across cluster without collocation.<br/>\
+ Nested joins are not supported for now.<br/>\
+ <b>NOTE</b>: In some cases it may consume more heap memory or may take a long time than collocated joins.' data-trigger='hover')
+ input(type='checkbox' ng-model='paragraph.nonCollocatedJoins')
+ span Allow non-collocated joins
+
+mixin query-actions
+ button.btn.btn-primary(ng-disabled='!actionAvailable(paragraph, true)' ng-click='execute(paragraph)') Execute
+ button.btn.btn-primary(ng-disabled='!actionAvailable(paragraph, true)' ng-click='execute(paragraph, true)') Execute on selected node
+
+ a.btn.btn-default(ng-disabled='!actionAvailable(paragraph, true)' ng-click='explain(paragraph)' data-placement='bottom' bs-tooltip='' data-title='{{actionTooltip(paragraph, "explain", true)}}') Explain
+
+mixin table-result-heading-query
+ .total.row
+ .col-xs-4
+ +ui-grid-settings
+ label Page: #[b {{paragraph.page}}]
+ label.margin-left-dflt Results so far: #[b {{paragraph.rows.length + paragraph.total}}]
+ label.margin-left-dflt Duration: #[b {{paragraph.duration | duration}}]
+ .col-xs-4
+ div(ng-if='paragraph.qryType === "query"')
+ +result-toolbar
+ .col-xs-4
+ .pull-right
+ .btn-group(ng-disabled='paragraph.loading')
+ button.btn.btn-primary(ng-click='exportCsv(paragraph)' bs-tooltip data-title='{{actionTooltip(paragraph, "export", false)}}') Export
+ button.btn.btn-primary.dropdown-toggle(id='export-item-dropdown' data-toggle='dropdown' data-container='body' bs-dropdown='exportDropdown' data-placement='bottom-right')
+ span.caret
+
+mixin table-result-heading-scan
+ .total.row
+ .col-xs-4
+ +ui-grid-settings
+ label Page: #[b {{paragraph.page}}]
+ label.margin-left-dflt Results so far: #[b {{paragraph.rows.length + paragraph.total}}]
+ label.margin-left-dflt Duration: #[b {{paragraph.duration | duration}}]
+ .col-xs-4
+ div(ng-if='paragraph.qryType === "query"')
+ +result-toolbar
+ .col-xs-4
+ .pull-right
+ .btn-group(ng-disabled='paragraph.loading')
+ button.btn.btn-primary(ng-click='exportCsv(paragraph)' bs-tooltip data-title='{{actionTooltip(paragraph, "export", false)}}') Export
+ button.btn.btn-primary.dropdown-toggle(id='export-item-dropdown' data-toggle='dropdown' data-container='body' bs-dropdown='exportDropdown' data-placement='bottom-right')
+ span.caret
+
+mixin table-result-body
+ .grid(ui-grid='paragraph.gridOptions' ui-grid-resize-columns ui-grid-exporter)
+
+mixin chart-result
+ div(ng-hide='paragraph.scanExplain()')
+ +chart-settings
+ .empty(ng-show='paragraph.chartColumns.length > 0 && !paragraph.chartColumnsConfigured()') Cannot display chart. Please configure axis using #[b Chart settings]
+ .empty(ng-show='paragraph.chartColumns.length == 0') Cannot display chart. Result set must contain Java build-in type columns. Please change query and execute it again.
+ div(ng-show='paragraph.chartColumnsConfigured()')
+ div(ng-show='paragraph.timeLineSupported() || !paragraph.chartTimeLineEnabled()')
+ div(ng-repeat='chart in paragraph.charts')
+ nvd3(options='chart.options' data='chart.data' api='chart.api')
+ .empty(ng-show='!paragraph.timeLineSupported() && paragraph.chartTimeLineEnabled()') Pie chart does not support 'TIME_LINE' column for X-axis. Please use another column for X-axis or switch to another chart.
+ .empty(ng-show='paragraph.scanExplain()')
+ .row
+ .col-xs-4.col-xs-offset-4
+ +result-toolbar
+ label.margin-top-dflt Charts do not support #[b Explain] and #[b Scan] query
+
+mixin paragraph-scan
+ .panel-heading(bs-collapse-toggle)
+ .row
+ +paragraph-rename
+ .panel-collapse(role='tabpanel' bs-collapse-target)
+ .col-sm-12.sql-controls
+ .col-sm-3
+ +dropdown-required('Cache:', 'paragraph.cacheName', '"cache"', 'true', 'false', 'Choose cache', 'caches')
+ .col-sm-3
+ +text-enabled('Filter:', 'paragraph.filter', '"filter"', true, false, 'Enter filter')
+ label.btn.btn-default.ignite-form-field__btn(ng-click='paragraph.caseSensitive = !paragraph.caseSensitive')
+ input(type='checkbox' ng-model='paragraph.caseSensitive')
+ span(bs-tooltip data-title='Select this checkbox for case sensitive search') Cs
+ label.tipLabel(bs-tooltip data-placement='bottom' data-title='Max number of rows to show in query result as one page') Page size:
+ button.btn.btn-default.select-toggle.tipLabel(ng-model='paragraph.pageSize' bs-select bs-options='item for item in pageSizes')
+
+ .col-sm-12.sql-controls
+ button.btn.btn-primary(ng-disabled='!actionAvailable(paragraph, false)' ng-click='scan(paragraph)')
+ | Scan
+ button.btn.btn-primary(ng-disabled='!actionAvailable(paragraph, false)' ng-click='scan(paragraph, true)')
+ | Scan on selected node
+
+ .col-sm-12.sql-result(ng-if='paragraph.queryExecuted()' ng-switch='paragraph.resultType()')
+ .error(ng-switch-when='error') Error: {{paragraph.errMsg}}
+ .empty(ng-switch-when='empty') Result set is empty
+ .table(ng-switch-when='table')
+ +table-result-heading-scan
+ +table-result-body
+ .footer.clearfix()
+ .pull-left
+ | Showing results for scan of #[b {{ paragraph.queryArgs.cacheName | defaultName }}]
+ span(ng-if='paragraph.queryArgs.filter') with filter: #[b {{ paragraph.queryArgs.filter }}]
+ span(ng-if='paragraph.queryArgs.localNid') on node: #[b {{ paragraph.queryArgs.localNid | limitTo:8 }}]
+
+ -var nextVisibleCondition = 'paragraph.resultType() != "error" && paragraph.queryId && paragraph.nonRefresh() && (paragraph.table() || paragraph.chart() && !paragraph.scanExplain())'
+
+ .pull-right(ng-show=`${nextVisibleCondition}` ng-class='{disabled: paragraph.loading}' ng-click='!paragraph.loading && nextPage(paragraph)')
+ i.fa.fa-chevron-circle-right
+ a Next
+
+mixin paragraph-query
+ .row.panel-heading(bs-collapse-toggle)
+ +paragraph-rename
+ .panel-collapse(role='tabpanel' bs-collapse-target)
+ .col-sm-12
+ .col-xs-8.col-sm-9(style='border-right: 1px solid #eee')
+ .sql-editor(ignite-ace='{onLoad: aceInit(paragraph), theme: "chrome", mode: "sql", require: ["ace/ext/language_tools"],' +
+ 'advanced: {enableSnippets: false, enableBasicAutocompletion: true, enableLiveAutocompletion: true}}'
+ ng-model='paragraph.query')
+ .col-xs-4.col-sm-3
+ div(ng-show='caches.length > 0' style='padding: 5px 10px' st-table='displayedCaches' st-safe-src='caches')
+ lable.labelField.labelFormField Caches:
+ i.fa.fa-database.tipField(title='Click to show cache types metadata dialog' bs-popover data-template-url='{{ $ctrl.cacheMetadataTemplateUrl }}' data-placement='bottom' data-trigger='click' data-container='#{{ paragraph.id }}')
+ .input-tip
+ input.form-control(type='text' st-search='label' placeholder='Filter caches...')
+ table.links
+ tbody.scrollable-y(style='max-height: 15em; display: block;')
+ tr(ng-repeat='cache in displayedCaches track by cache.name')
+ td(style='width: 100%')
+ input.labelField(id='cache_{{ [paragraph.id, $index].join("_") }}' type='radio' value='{{cache.name}}' ng-model='paragraph.cacheName')
+ label(for='cache_{{ [paragraph.id, $index].join("_") }} ' ng-bind-html='cache.label')
+ .empty-caches(ng-show='displayedCaches.length == 0 && caches.length != 0')
+ label Wrong caches filter
+ .empty-caches(ng-show='caches.length == 0')
+ label No caches
+ .col-sm-12.sql-controls
+ +query-actions
+
+ .pull-right
+ +query-settings
+ .col-sm-12.sql-result(ng-if='paragraph.queryExecuted()' ng-switch='paragraph.resultType()')
+ .error(ng-switch-when='error') Error: {{paragraph.errMsg}}
+ .empty(ng-switch-when='empty') Result set is empty
+ .table(ng-switch-when='table')
+ +table-result-heading-query
+ +table-result-body
+ .chart(ng-switch-when='chart')
+ +chart-result
+ .footer.clearfix
+ a.pull-left(ng-click='showResultQuery(paragraph)') Show query
+
+ -var nextVisibleCondition = 'paragraph.resultType() != "error" && paragraph.queryId && paragraph.nonRefresh() && (paragraph.table() || paragraph.chart() && !paragraph.scanExplain())'
+
+ .pull-right(ng-show=`${nextVisibleCondition}` ng-class='{disabled: paragraph.loading}' ng-click='!paragraph.loading && nextPage(paragraph)')
+ i.fa.fa-chevron-circle-right
+ a Next
+
+.row
+ .docs-content
+ .row(ng-if='notebook' bs-affix style='margin-bottom: 20px;')
+ +notebook-rename
+
+ ignite-information(data-title='With query notebook you can' style='margin-top: 0; margin-bottom: 30px')
+ ul
+ li Create any number of queries
+ li Execute and explain SQL queries
+ li Execute scan queries
+ li View data in tabular form and as charts
+
+ div(ng-if='notebookLoadFailed' style='text-align: center')
+ +notebook-error
+
+ div(ng-if='notebook' ignite-loading='sqlLoading' ignite-loading-text='{{ loadingText }}' ignite-loading-position='top')
+ .docs-body.paragraphs
+ .panel-group(bs-collapse ng-model='notebook.expandedParagraphs' data-allow-multiple='true' data-start-collapsed='false')
+
+ .panel-paragraph(ng-repeat='paragraph in notebook.paragraphs' id='{{paragraph.id}}' ng-form='form_{{paragraph.id}}')
+ .panel.panel-default(ng-if='paragraph.qryType === "scan"')
+ +paragraph-scan
+ .panel.panel-default(ng-if='paragraph.qryType === "query"')
+ +paragraph-query
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/templates/agent-download.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/agent-download.jade b/modules/web-console/frontend/views/templates/agent-download.jade
deleted file mode 100644
index b913636..0000000
--- a/modules/web-console/frontend/views/templates/agent-download.jade
+++ /dev/null
@@ -1,50 +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.
-
-.modal.center(tabindex='-1' role='dialog')
- .modal-dialog
- .modal-content
- #errors-container.modal-header.header
- h4.modal-title
- i.fa.fa-download
- span(ng-if='!hasAgents') Connection to Ignite Web Agent is not established
- span(ng-if='hasAgents') Connection to Ignite Node is not established
- .agent-download(ng-if='!hasAgents')
- p Please download and run #[a(href='/api/v1/agent/download/zip' target='_self') ignite-web-agent] in order to {{::agentGoal}}
- p For run:
- ul
- li Download and unzip #[a(href='/api/v1/agent/download/zip' target='_self') ignite-web-agent] archive
- li Run shell file #[b ignite-web-agent.{sh|bat}]
- p Refer to #[b README.txt] in agent folder for more information
- .modal-advanced-options
- i.fa.fa-chevron-circle-down(ng-show='agentLoad.showToken' ng-click='agentLoad.showToken = ! agentLoad.showToken')
- i.fa.fa-chevron-circle-right(ng-show='!agentLoad.showToken' ng-click='agentLoad.showToken = ! agentLoad.showToken')
- a(ng-click='agentLoad.showToken = ! agentLoad.showToken') {{agentLoad.showToken ? 'Hide security token...' : 'Show security token...'}}
- .details-row(ng-show='agentLoad.showToken')
- label.labelField Security token: {{user.becameToken || user.token}}
- i.tipLabel.fa.fa-clipboard(ignite-copy-to-clipboard='{{user.becameToken || user.token}}' bs-tooltip='' data-title='Copy security token to clipboard')
- i.tipLabel.icon-help(ng-if=lines bs-tooltip='' data-title='The security token is used for authorization of web agent')
- .agent-download(ng-if='hasAgents')
- p Connection to Ignite Web Agent is established, but agent failed to connect to Ignite Node
- p Please check the following:
- ul
- li Ignite Grid is up and Ignite REST server started (copy "ignite-rest-http" folder from libs/optional/ to libs/)
- li In agent settings check URI for connect to Ignite REST server
- li Check agent logs for errors
- li Refer to #[b README.txt] in agent folder for more information
- .modal-footer
- button.btn.btn-default(ng-click='back()') {{::backText}}
- a.btn.btn-primary(ng-if='!hasAgents' href='/api/v1/agent/download/zip' target='_self') Download agent
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/templates/agent-download.tpl.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/agent-download.tpl.pug b/modules/web-console/frontend/views/templates/agent-download.tpl.pug
new file mode 100644
index 0000000..b913636
--- /dev/null
+++ b/modules/web-console/frontend/views/templates/agent-download.tpl.pug
@@ -0,0 +1,50 @@
+//-
+ 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.
+
+.modal.center(tabindex='-1' role='dialog')
+ .modal-dialog
+ .modal-content
+ #errors-container.modal-header.header
+ h4.modal-title
+ i.fa.fa-download
+ span(ng-if='!hasAgents') Connection to Ignite Web Agent is not established
+ span(ng-if='hasAgents') Connection to Ignite Node is not established
+ .agent-download(ng-if='!hasAgents')
+ p Please download and run #[a(href='/api/v1/agent/download/zip' target='_self') ignite-web-agent] in order to {{::agentGoal}}
+ p For run:
+ ul
+ li Download and unzip #[a(href='/api/v1/agent/download/zip' target='_self') ignite-web-agent] archive
+ li Run shell file #[b ignite-web-agent.{sh|bat}]
+ p Refer to #[b README.txt] in agent folder for more information
+ .modal-advanced-options
+ i.fa.fa-chevron-circle-down(ng-show='agentLoad.showToken' ng-click='agentLoad.showToken = ! agentLoad.showToken')
+ i.fa.fa-chevron-circle-right(ng-show='!agentLoad.showToken' ng-click='agentLoad.showToken = ! agentLoad.showToken')
+ a(ng-click='agentLoad.showToken = ! agentLoad.showToken') {{agentLoad.showToken ? 'Hide security token...' : 'Show security token...'}}
+ .details-row(ng-show='agentLoad.showToken')
+ label.labelField Security token: {{user.becameToken || user.token}}
+ i.tipLabel.fa.fa-clipboard(ignite-copy-to-clipboard='{{user.becameToken || user.token}}' bs-tooltip='' data-title='Copy security token to clipboard')
+ i.tipLabel.icon-help(ng-if=lines bs-tooltip='' data-title='The security token is used for authorization of web agent')
+ .agent-download(ng-if='hasAgents')
+ p Connection to Ignite Web Agent is established, but agent failed to connect to Ignite Node
+ p Please check the following:
+ ul
+ li Ignite Grid is up and Ignite REST server started (copy "ignite-rest-http" folder from libs/optional/ to libs/)
+ li In agent settings check URI for connect to Ignite REST server
+ li Check agent logs for errors
+ li Refer to #[b README.txt] in agent folder for more information
+ .modal-footer
+ button.btn.btn-default(ng-click='back()') {{::backText}}
+ a.btn.btn-primary(ng-if='!hasAgents' href='/api/v1/agent/download/zip' target='_self') Download agent
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/templates/alert.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/alert.jade b/modules/web-console/frontend/views/templates/alert.jade
deleted file mode 100644
index d30d2fd..0000000
--- a/modules/web-console/frontend/views/templates/alert.jade
+++ /dev/null
@@ -1,21 +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.
-
-.alert(ng-show='type' ng-class='[type ? "alert-" + type : null]')
- button.close(type='button', ng-if='dismissable', ng-click='$hide()') ×
- i.alert-icon(ng-if='icon' ng-class='[icon]')
- span.alert-title(ng-bind-html='title')
- span.alert-content(ng-bind-html='content')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/templates/alert.tpl.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/alert.tpl.pug b/modules/web-console/frontend/views/templates/alert.tpl.pug
new file mode 100644
index 0000000..d30d2fd
--- /dev/null
+++ b/modules/web-console/frontend/views/templates/alert.tpl.pug
@@ -0,0 +1,21 @@
+//-
+ 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.
+
+.alert(ng-show='type' ng-class='[type ? "alert-" + type : null]')
+ button.close(type='button', ng-if='dismissable', ng-click='$hide()') ×
+ i.alert-icon(ng-if='icon' ng-class='[icon]')
+ span.alert-title(ng-bind-html='title')
+ span.alert-content(ng-bind-html='content')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/templates/batch-confirm.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/batch-confirm.jade b/modules/web-console/frontend/views/templates/batch-confirm.jade
deleted file mode 100644
index 0b74a4e..0000000
--- a/modules/web-console/frontend/views/templates/batch-confirm.jade
+++ /dev/null
@@ -1,34 +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.
-
-.modal(tabindex='-1' role='dialog')
- .modal-dialog
- .modal-content
- .modal-header
- button.close(ng-click='cancel()' aria-hidden='true') ×
- h4.modal-title
- i.icon-confirm
- | Confirmation
- .modal-body(ng-show='content')
- p(ng-bind-html='content' style='text-align: center')
- .modal-footer
- .checkbox.labelField
- 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
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/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
new file mode 100644
index 0000000..0b74a4e
--- /dev/null
+++ b/modules/web-console/frontend/views/templates/batch-confirm.tpl.pug
@@ -0,0 +1,34 @@
+//-
+ 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.
+
+.modal(tabindex='-1' role='dialog')
+ .modal-dialog
+ .modal-content
+ .modal-header
+ button.close(ng-click='cancel()' aria-hidden='true') ×
+ h4.modal-title
+ i.icon-confirm
+ | Confirmation
+ .modal-body(ng-show='content')
+ p(ng-bind-html='content' style='text-align: center')
+ .modal-footer
+ .checkbox.labelField
+ 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
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/templates/clone.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/clone.jade b/modules/web-console/frontend/views/templates/clone.jade
deleted file mode 100644
index 99ec58b..0000000
--- a/modules/web-console/frontend/views/templates/clone.jade
+++ /dev/null
@@ -1,39 +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.jade
-
-.modal(tabindex='-1' role='dialog')
- .modal-dialog
- .modal-content
- .modal-header
- button.close(ng-click='$hide()') ×
- h4.modal-title
- i.fa.fa-clone
- | Clone
- form.form-horizontal.modal-body.row(name='ui.inputForm' novalidate)
- div
- .col-sm-2
- label.required.labelFormField New name:
- .col-sm-10
- .input-tip
- +ignite-form-field-input('"copy-new-name"','newName', false, 'true', 'Enter new name')(
- data-ignite-form-field-input-autofocus='true'
- ignite-on-enter='form.$valid && ok(newName)'
- )
- .modal-footer
- button.btn.btn-default(id='copy-btn-cancel' ng-click='$hide()') Cancel
- button.btn.btn-primary(id='copy-btn-confirm' ng-disabled='ui.inputForm.$invalid' ng-click='ok(newName)') Confirm
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/templates/clone.tpl.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/clone.tpl.pug b/modules/web-console/frontend/views/templates/clone.tpl.pug
new file mode 100644
index 0000000..e62cb18
--- /dev/null
+++ b/modules/web-console/frontend/views/templates/clone.tpl.pug
@@ -0,0 +1,39 @@
+//-
+ 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
+
+.modal(tabindex='-1' role='dialog')
+ .modal-dialog
+ .modal-content
+ .modal-header
+ button.close(ng-click='$hide()') ×
+ h4.modal-title
+ i.fa.fa-clone
+ | Clone
+ form.form-horizontal.modal-body.row(name='ui.inputForm' novalidate)
+ div
+ .col-sm-2
+ label.required.labelFormField New name:
+ .col-sm-10
+ .input-tip
+ +ignite-form-field-input('"copy-new-name"','newName', false, 'true', 'Enter new name')(
+ data-ignite-form-field-input-autofocus='true'
+ ignite-on-enter='form.$valid && ok(newName)'
+ )
+ .modal-footer
+ button.btn.btn-default(id='copy-btn-cancel' ng-click='$hide()') Cancel
+ button.btn.btn-primary(id='copy-btn-confirm' ng-disabled='ui.inputForm.$invalid' ng-click='ok(newName)') Confirm
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/templates/confirm.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/confirm.jade b/modules/web-console/frontend/views/templates/confirm.jade
deleted file mode 100644
index 0031498..0000000
--- a/modules/web-console/frontend/views/templates/confirm.jade
+++ /dev/null
@@ -1,33 +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.
-
-.modal(tabindex='-1' role='dialog')
- .modal-dialog
- .modal-content
- .modal-header
- button.close(ng-click='confirmCancel()' aria-hidden='true') ×
- h4.modal-title
- i.icon-confirm
- | Confirmation
- .modal-body(ng-show='content')
- p(ng-bind-html='content' style='text-align: center;')
- .modal-footer
- button#confirm-btn-cancel.btn.btn-default(ng-click='confirmCancel()') Cancel
-
- button#confirm-btn-no.btn.btn-default(ng-if='yesNo' ng-click='confirmNo()') No
- button#confirm-btn-yes.btn.btn-primary(ng-if='yesNo' ng-click='confirmYes()') Yes
-
- button#confirm-btn-ok.btn.btn-primary(ng-if='!yesNo' ng-click='confirmYes()') Confirm
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/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
new file mode 100644
index 0000000..0031498
--- /dev/null
+++ b/modules/web-console/frontend/views/templates/confirm.tpl.pug
@@ -0,0 +1,33 @@
+//-
+ 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.
+
+.modal(tabindex='-1' role='dialog')
+ .modal-dialog
+ .modal-content
+ .modal-header
+ button.close(ng-click='confirmCancel()' aria-hidden='true') ×
+ h4.modal-title
+ i.icon-confirm
+ | Confirmation
+ .modal-body(ng-show='content')
+ p(ng-bind-html='content' style='text-align: center;')
+ .modal-footer
+ button#confirm-btn-cancel.btn.btn-default(ng-click='confirmCancel()') Cancel
+
+ button#confirm-btn-no.btn.btn-default(ng-if='yesNo' ng-click='confirmNo()') No
+ button#confirm-btn-yes.btn.btn-primary(ng-if='yesNo' ng-click='confirmYes()') Yes
+
+ button#confirm-btn-ok.btn.btn-primary(ng-if='!yesNo' ng-click='confirmYes()') Confirm
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/templates/demo-info.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/demo-info.jade b/modules/web-console/frontend/views/templates/demo-info.jade
deleted file mode 100644
index 44c091c..0000000
--- a/modules/web-console/frontend/views/templates/demo-info.jade
+++ /dev/null
@@ -1,47 +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.
-
-.modal.center(role='dialog')
- .modal-dialog
- .modal-content
- #errors-container.modal-header.header
- button.close(ng-click='close()' aria-hidden='true') ×
- h4.modal-title
- i.fa.fa-info-circle
- | {{title}}
- .modal-body
- div(ng-bind-html='message')
- div(ng-hide='hasAgents')
- p
- div
- h4
- i.fa.fa-download.fa-cursor-default
- | How To Start Demo
- ul
- li
- a(ng-click='downloadAgent()') #[b Download]
- | and unzip ignite-web-agent archive
- li #[b Run] shell file ignite-web-agent.{sh|bat}
- div(ng-show='hasAgents')
- h4
- i.fa.fa-star-o.fa-cursor-default
- | Start Demo
- ul
- li Web Agent is already started
- li Close dialog and try Web Console
- .modal-footer
- button.btn.btn-default(ng-class='hasAgents ? "btn-primary" : "btn-default"' ng-click='close()') Close
- button.btn.btn-primary(ng-hide='hasAgents' ng-click='downloadAgent()') Download agent
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/templates/demo-info.tpl.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/demo-info.tpl.pug b/modules/web-console/frontend/views/templates/demo-info.tpl.pug
new file mode 100644
index 0000000..44c091c
--- /dev/null
+++ b/modules/web-console/frontend/views/templates/demo-info.tpl.pug
@@ -0,0 +1,47 @@
+//-
+ 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.
+
+.modal.center(role='dialog')
+ .modal-dialog
+ .modal-content
+ #errors-container.modal-header.header
+ button.close(ng-click='close()' aria-hidden='true') ×
+ h4.modal-title
+ i.fa.fa-info-circle
+ | {{title}}
+ .modal-body
+ div(ng-bind-html='message')
+ div(ng-hide='hasAgents')
+ p
+ div
+ h4
+ i.fa.fa-download.fa-cursor-default
+ | How To Start Demo
+ ul
+ li
+ a(ng-click='downloadAgent()') #[b Download]
+ | and unzip ignite-web-agent archive
+ li #[b Run] shell file ignite-web-agent.{sh|bat}
+ div(ng-show='hasAgents')
+ h4
+ i.fa.fa-star-o.fa-cursor-default
+ | Start Demo
+ ul
+ li Web Agent is already started
+ li Close dialog and try Web Console
+ .modal-footer
+ button.btn.btn-default(ng-class='hasAgents ? "btn-primary" : "btn-default"' ng-click='close()') Close
+ button.btn.btn-primary(ng-hide='hasAgents' ng-click='downloadAgent()') Download agent
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/templates/dropdown.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/dropdown.jade b/modules/web-console/frontend/views/templates/dropdown.jade
deleted file mode 100644
index 2ee8616..0000000
--- a/modules/web-console/frontend/views/templates/dropdown.jade
+++ /dev/null
@@ -1,24 +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.dropdown-menu(tabindex='-1' role='menu' ng-show='content && content.length')
- li(role='presentation' ui-sref-active='active' ng-class='{divider: item.divider, active: item.active}' ng-repeat='item in content')
- a(role='menuitem' tabindex='-1' ui-sref='{{item.sref}}' ng-if='!item.action && !item.divider && item.sref' ng-bind='item.text')
- a(role='menuitem' tabindex='-1' ng-href='{{item.href}}' ng-if='!item.action && !item.divider && item.href' target='{{item.target || ""}}' ng-bind='item.text')
- a(role='menuitem' tabindex='-1' href='javascript:void(0)' ng-if='!item.action && !item.divider && item.click' ng-click='$eval(item.click);$hide()' ng-bind='item.text')
- div(role='menuitem' ng-if='item.action')
- i.fa.pull-right(class='{{ item.action.icon }}' ng-click='item.action.click(item.data)' bs-tooltip data-title='{{ item.action.tooltip }}' data-trigger='hover' data-placement='bottom')
- div: a(ui-sref='{{ item.sref }}' ng-bind='item.text')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/templates/dropdown.tpl.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/dropdown.tpl.pug b/modules/web-console/frontend/views/templates/dropdown.tpl.pug
new file mode 100644
index 0000000..2ee8616
--- /dev/null
+++ b/modules/web-console/frontend/views/templates/dropdown.tpl.pug
@@ -0,0 +1,24 @@
+//-
+ 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.dropdown-menu(tabindex='-1' role='menu' ng-show='content && content.length')
+ li(role='presentation' ui-sref-active='active' ng-class='{divider: item.divider, active: item.active}' ng-repeat='item in content')
+ a(role='menuitem' tabindex='-1' ui-sref='{{item.sref}}' ng-if='!item.action && !item.divider && item.sref' ng-bind='item.text')
+ a(role='menuitem' tabindex='-1' ng-href='{{item.href}}' ng-if='!item.action && !item.divider && item.href' target='{{item.target || ""}}' ng-bind='item.text')
+ a(role='menuitem' tabindex='-1' href='javascript:void(0)' ng-if='!item.action && !item.divider && item.click' ng-click='$eval(item.click);$hide()' ng-bind='item.text')
+ div(role='menuitem' ng-if='item.action')
+ i.fa.pull-right(class='{{ item.action.icon }}' ng-click='item.action.click(item.data)' bs-tooltip data-title='{{ item.action.tooltip }}' data-trigger='hover' data-placement='bottom')
+ div: a(ui-sref='{{ item.sref }}' ng-bind='item.text')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/templates/getting-started.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/getting-started.jade b/modules/web-console/frontend/views/templates/getting-started.jade
deleted file mode 100644
index 3a89035..0000000
--- a/modules/web-console/frontend/views/templates/getting-started.jade
+++ /dev/null
@@ -1,34 +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.
-
-.modal.center(role='dialog')
- .modal-dialog
- .modal-content
- #errors-container.modal-header.header
- button.close(ng-click='close()' aria-hidden='true') ×
- h4.modal-title
- i.fa.fa-book
- | {{title}}
- .getting-started
- .col-xs-12(ng-bind-html='message')
- .modal-footer
- .checkbox
- label
- input(type='checkbox' ng-model='ui.showGettingStarted')
- | Show getting started on next login
- a.btn.btn-primary(ng-disabled='isFirst()' ng-click='!isFirst() && prev()') Prev
- a.btn.btn-primary(ng-disabled='isLast()' ng-click='!isLast() && next()') Next
- a.btn.btn-primary(ng-click='close()') Close
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/templates/getting-started.tpl.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/getting-started.tpl.pug b/modules/web-console/frontend/views/templates/getting-started.tpl.pug
new file mode 100644
index 0000000..3a89035
--- /dev/null
+++ b/modules/web-console/frontend/views/templates/getting-started.tpl.pug
@@ -0,0 +1,34 @@
+//-
+ 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.
+
+.modal.center(role='dialog')
+ .modal-dialog
+ .modal-content
+ #errors-container.modal-header.header
+ button.close(ng-click='close()' aria-hidden='true') ×
+ h4.modal-title
+ i.fa.fa-book
+ | {{title}}
+ .getting-started
+ .col-xs-12(ng-bind-html='message')
+ .modal-footer
+ .checkbox
+ label
+ input(type='checkbox' ng-model='ui.showGettingStarted')
+ | Show getting started on next login
+ a.btn.btn-primary(ng-disabled='isFirst()' ng-click='!isFirst() && prev()') Prev
+ a.btn.btn-primary(ng-disabled='isLast()' ng-click='!isLast() && next()') Next
+ a.btn.btn-primary(ng-click='close()') Close
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/templates/message.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/message.jade b/modules/web-console/frontend/views/templates/message.jade
deleted file mode 100644
index 6eff74b..0000000
--- a/modules/web-console/frontend/views/templates/message.jade
+++ /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.
-
-.modal(tabindex='-1' role='dialog')
- .modal-dialog
- .modal-content
- .modal-header
- button.close(ng-click='$hide()' aria-hidden='true') ×
- h4.modal-title
- i.fa.fa-info-circle
- | {{title}}
- .modal-body(ng-show='content')
- p(ng-bind-html='content.join("<br/>")' style='text-align: left;')
- .modal-footer
- button.btn.btn-primary(id='confirm-btn-confirm' ng-click='$hide()') Ok
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/templates/message.tpl.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/message.tpl.pug b/modules/web-console/frontend/views/templates/message.tpl.pug
new file mode 100644
index 0000000..6eff74b
--- /dev/null
+++ b/modules/web-console/frontend/views/templates/message.tpl.pug
@@ -0,0 +1,28 @@
+//-
+ 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.
+
+.modal(tabindex='-1' role='dialog')
+ .modal-dialog
+ .modal-content
+ .modal-header
+ button.close(ng-click='$hide()' aria-hidden='true') ×
+ h4.modal-title
+ i.fa.fa-info-circle
+ | {{title}}
+ .modal-body(ng-show='content')
+ p(ng-bind-html='content.join("<br/>")' style='text-align: left;')
+ .modal-footer
+ button.btn.btn-primary(id='confirm-btn-confirm' ng-click='$hide()') Ok
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/templates/pagination.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/pagination.jade b/modules/web-console/frontend/views/templates/pagination.jade
deleted file mode 100644
index 08ced60..0000000
--- a/modules/web-console/frontend/views/templates/pagination.jade
+++ /dev/null
@@ -1,32 +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.
-
-nav(ng-if='numPages && pages.length >= 2')
- ul.pagination
- li(ng-if='currentPage > 1')
- a(href='javascript:void(0);' ng-click='selectPage(1)' bs-tooltip='' data-title='First page' data-placement='bottom')
- i.fa.fa-angle-double-left
- li(ng-if='currentPage > 1')
- a(href='javascript:void(0);' ng-click='selectPage(currentPage-1)' bs-tooltip='' data-title='Previous page' data-placement='bottom')
- i.fa.fa-angle-left
- li(ng-repeat='page in pages' ng-class='{active: page==currentPage}')
- a(href='javascript:void(0);' ng-click='selectPage(page)') {{page}}
- li(ng-if='currentPage < numPages')
- a(href='javascript:void(0);' ng-click='selectPage(currentPage+1)' bs-tooltip='' data-title='Next page' data-placement='bottom')
- i.fa.fa-angle-right
- li(ng-if='currentPage < numPages')
- a(href='javascript:void(0);' ng-click='selectPage(numPages)' bs-tooltip='' data-title='Last page' data-placement='bottom')
- i.fa.fa-angle-double-right
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/templates/select.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/select.jade b/modules/web-console/frontend/views/templates/select.jade
deleted file mode 100644
index aa6a2ef..0000000
--- a/modules/web-console/frontend/views/templates/select.jade
+++ /dev/null
@@ -1,26 +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.select.dropdown-menu(tabindex='-1' ng-show='$isVisible()' role='select')
- li(ng-if='$showAllNoneButtons || ($isMultiple && $matches.length > 2)')
- a(id='li-dropdown-select-all' ng-click='$selectAll()') {{$allText}} ({{$matches.length}})
- a(id='li-dropdown-select-none' ng-click='$selectNone()') {{$noneText}}
- hr(style='margin: 5px 0')
- li(role='presentation' ng-repeat='match in $matches')
- hr(ng-if='match.value == undefined' style='margin: 5px 0')
- a(id='li-dropdown-item-{{$index}}' role='menuitem' tabindex='-1' ng-class='{active: $isActive($index)}' ng-click='$select($index, $event)' bs-tooltip='widthIsSufficient && !widthIsSufficient("li-dropdown-item-{{$index}}", $index, match.label) ? match.label : ""' data-placement='right auto')
- i(class='{{$iconCheckmark}}' ng-if='$isActive($index)' ng-class='{active: $isActive($index)}')
- span(ng-bind-html='match.label')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/templates/select.tpl.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/select.tpl.pug b/modules/web-console/frontend/views/templates/select.tpl.pug
new file mode 100644
index 0000000..aa6a2ef
--- /dev/null
+++ b/modules/web-console/frontend/views/templates/select.tpl.pug
@@ -0,0 +1,26 @@
+//-
+ 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.select.dropdown-menu(tabindex='-1' ng-show='$isVisible()' role='select')
+ li(ng-if='$showAllNoneButtons || ($isMultiple && $matches.length > 2)')
+ a(id='li-dropdown-select-all' ng-click='$selectAll()') {{$allText}} ({{$matches.length}})
+ a(id='li-dropdown-select-none' ng-click='$selectNone()') {{$noneText}}
+ hr(style='margin: 5px 0')
+ li(role='presentation' ng-repeat='match in $matches')
+ hr(ng-if='match.value == undefined' style='margin: 5px 0')
+ a(id='li-dropdown-item-{{$index}}' role='menuitem' tabindex='-1' ng-class='{active: $isActive($index)}' ng-click='$select($index, $event)' bs-tooltip='widthIsSufficient && !widthIsSufficient("li-dropdown-item-{{$index}}", $index, match.label) ? match.label : ""' data-placement='right auto')
+ i(class='{{$iconCheckmark}}' ng-if='$isActive($index)' ng-class='{active: $isActive($index)}')
+ span(ng-bind-html='match.label')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/templates/validation-error.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/validation-error.jade b/modules/web-console/frontend/views/templates/validation-error.jade
deleted file mode 100644
index 13deb9b..0000000
--- a/modules/web-console/frontend/views/templates/validation-error.jade
+++ /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.
-
-.popover.validation-error
- .arrow
- .popover-content
- table
- tr
- td
- label {{content}}  
- td
- button.close(id='popover-btn-close' ng-click='$hide()') ×
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/templates/validation-error.tpl.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/templates/validation-error.tpl.pug b/modules/web-console/frontend/views/templates/validation-error.tpl.pug
new file mode 100644
index 0000000..13deb9b
--- /dev/null
+++ b/modules/web-console/frontend/views/templates/validation-error.tpl.pug
@@ -0,0 +1,25 @@
+//-
+ 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.validation-error
+ .arrow
+ .popover-content
+ table
+ tr
+ td
+ label {{content}}  
+ td
+ button.close(id='popover-btn-close' ng-click='$hide()') ×
[11/15] ignite git commit: IGNITE-4659 Migration to Webpack 2.
Upgrade template engine from jade to pug.
Posted by an...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/caches/statistics.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/statistics.pug b/modules/web-console/frontend/app/modules/states/configuration/caches/statistics.pug
new file mode 100644
index 0000000..1eeea84
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/caches/statistics.pug
@@ -0,0 +1,39 @@
+//-
+ 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
+
+-var form = 'statistics'
+-var model = 'backupItem'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle='' ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Statistics
+ ignite-form-field-tooltip.tipLabel
+ | Cache statistics and management settings
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +checkbox('Statistics enabled', `${model}.statisticsEnabled`, '"statisticsEnabled"', 'Flag indicating whether statistics gathering is enabled on this cache')
+ .settings-row
+ +checkbox('Management enabled', `${model}.managementEnabled`, '"managementEnabled"',
+ 'Flag indicating whether management is enabled on this cache<br/>\
+ If enabled the CacheMXBean for each cache is registered in the platform MBean server')
+ .col-sm-6
+ +preview-xml-java(model, 'cacheStatistics')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/caches/store.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/store.jade b/modules/web-console/frontend/app/modules/states/configuration/caches/store.jade
deleted file mode 100644
index ea350f2..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/caches/store.jade
+++ /dev/null
@@ -1,250 +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.jade
-
--var form = 'store'
--var model = 'backupItem'
-
-mixin hibernateField(name, model, items, valid, save, newItem)
- -var resetOnEnter = newItem ? '(stopblur = true) && (group.add = [{}])' : '(field.edit = false)'
- -var onEnter = valid + ' && (' + save + '); ' + valid + ' && ' + resetOnEnter + ';'
-
- -var onEscape = newItem ? 'group.add = []' : 'field.edit = false'
-
- -var resetOnBlur = newItem ? '!stopblur && (group.add = [])' : 'field.edit = false'
- -var onBlur = valid + ' && ( ' + save + '); ' + resetOnBlur + ';'
-
- div(ignite-on-focus-out=onBlur)
- if block
- block
-
- .input-tip
- +ignite-form-field-input(name, model, false, 'true', 'key=value')(
- data-ignite-property-unique=items
- data-ignite-property-value-specified
- data-ignite-form-field-input-autofocus='true'
-
- ignite-on-enter=onEnter
- ignite-on-escape=onEscape
- )
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle='' ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Store
- ignite-form-field-tooltip.tipLabel
- | Cache store settings#[br]
- | #[a(href="https://apacheignite.readme.io/docs/persistent-store" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- -var storeFactory = model + '.cacheStoreFactory';
- -var storeFactoryKind = storeFactory + '.kind';
-
- +dropdown('Store factory:', storeFactoryKind, '"cacheStoreFactory"', 'true', 'Not set',
- '[\
- {value: "CacheJdbcPojoStoreFactory", label: "JDBC POJO store factory"},\
- {value: "CacheJdbcBlobStoreFactory", label: "JDBC BLOB store factory"},\
- {value: "CacheHibernateBlobStoreFactory", label: "Hibernate BLOB store factory"},\
- {value: undefined, label: "Not set"}\
- ]',
- 'Factory for persistent storage for cache data\
- <ul>\
- <li>JDBC POJO store factory - Objects are stored in underlying database by using java beans mapping description via reflection backed by JDBC</li>\
- <li>JDBC BLOB store factory - Objects are stored in underlying database in BLOB format backed by JDBC</li>\
- <li>Hibernate BLOB store factory - Objects are stored in underlying database in BLOB format backed by Hibernate</li>\
- </ul>'
- )
- span(ng-show=storeFactoryKind ng-init='__.expanded = true')
- a.customize(ng-show='__.expanded' ng-click='__.expanded = false') Hide settings
- a.customize(ng-hide='__.expanded' ng-click='__.expanded = true') Show settings
- .panel-details(ng-show='__.expanded')
- div(ng-show='#{storeFactoryKind} === "CacheJdbcPojoStoreFactory"')
- -var pojoStoreFactory = storeFactory + '.CacheJdbcPojoStoreFactory'
- -var required = storeFactoryKind + ' === "CacheJdbcPojoStoreFactory"'
-
- .details-row
- +text('Data source bean name:', pojoStoreFactory + '.dataSourceBean',
- '"pojoDataSourceBean"', required, 'Input bean name',
- 'Name of the data source bean in Spring context')
- .details-row
- +dialect('Dialect:', pojoStoreFactory + '.dialect', '"pojoDialect"', required,
- 'Dialect of SQL implemented by a particular RDBMS:', 'Generic JDBC dialect',
- 'Choose JDBC dialect')
- .details-row
- +number('Batch size:', pojoStoreFactory + '.batchSize', '"pojoBatchSize"', true, '512', '1',
- 'Maximum batch size for writeAll and deleteAll operations')
- .details-row
- +number('Thread count:', pojoStoreFactory + '.maximumPoolSize', '"pojoMaximumPoolSize"', true, 'availableProcessors', '1',
- 'Maximum workers thread count.<br/>\
- These threads are responsible for load cache.')
- .details-row
- +number('Maximum write attempts:', pojoStoreFactory + '.maximumWriteAttempts', '"pojoMaximumWriteAttempts"', true, '2', '0',
- 'Maximum write attempts in case of database error')
- .details-row
- +number('Parallel load threshold:', pojoStoreFactory + '.parallelLoadCacheMinimumThreshold', '"pojoParallelLoadCacheMinimumThreshold"', true, '512', '0',
- 'Parallel load cache minimum threshold.<br/>\
- If <b>0</b> then load sequentially.')
- .details-row
- +java-class('Hasher', pojoStoreFactory + '.hasher', '"pojoHasher"', 'true', 'false', 'Hash calculator', required)
- .details-row
- +java-class('Transformer', pojoStoreFactory + '.transformer', '"pojoTransformer"', 'true', 'false', 'Types transformer', required)
- .details-row
- +checkbox('Escape table and filed names', pojoStoreFactory + '.sqlEscapeAll', '"sqlEscapeAll"',
- 'If enabled than all schema, table and field names will be escaped with double quotes (for example: "tableName"."fieldName").<br/>\
- This enforces case sensitivity for field names and also allows having special characters in table and field names.<br/>\
- Escaped names will be used for CacheJdbcPojoStore internal SQL queries.')
- div(ng-show='#{storeFactoryKind} === "CacheJdbcBlobStoreFactory"')
- -var blobStoreFactory = storeFactory + '.CacheJdbcBlobStoreFactory'
- -var blobStoreFactoryVia = blobStoreFactory + '.connectVia'
-
- .details-row
- +dropdown('Connect via:', blobStoreFactoryVia, '"connectVia"', 'true', 'Choose connection method',
- '[\
- {value: "URL", label: "URL"},\
- {value: "DataSource", label: "Data source"}\
- ]',
- 'You can connect to database via:\
- <ul>\
- <li>JDBC URL, for example: jdbc:h2:mem:myDatabase</li>\
- <li>Configured data source</li>\
- </ul>')
- div(ng-show='#{blobStoreFactoryVia} === "URL"')
- -var required = storeFactoryKind + ' === "CacheJdbcBlobStoreFactory" && ' + blobStoreFactoryVia + ' === "URL"'
-
- .details-row
- +text('Connection URL:', blobStoreFactory + '.connectionUrl', '"connectionUrl"', required, 'Input URL',
- 'URL for database access, for example: jdbc:h2:mem:myDatabase')
- .details-row
- +text('User:', blobStoreFactory + '.user', '"user"', required, 'Input user name', 'User name for database access')
- .details-row
- label Note, password will be generated as stub
- div(ng-show='#{blobStoreFactoryVia} !== "URL"')
- -var required = storeFactoryKind + ' === "CacheJdbcBlobStoreFactory" && ' + blobStoreFactoryVia + '!== "URL"'
-
- .details-row
- +text('Data source bean name:', blobStoreFactory + '.dataSourceBean', '"blobDataSourceBean"', required, 'Input bean name',
- 'Name of the data source bean in Spring context')
- .details-row
- +dialect('Database:', blobStoreFactory + '.dialect', '"blobDialect"', required, 'Supported databases:', 'Generic database', 'Choose database')
- .details-row
- +checkbox('Init schema', blobStoreFactory + '.initSchema', '"initSchema"',
- 'Flag indicating whether DB schema should be initialized by Ignite (default behaviour) or was explicitly created by user')
- .details-row
- +text('Create query:', blobStoreFactory + '.createTableQuery', '"createTableQuery"', 'false', 'SQL for table creation',
- 'Query for table creation in underlying database<br/>\
- Default value: create table if not exists ENTRIES (key binary primary key, val binary)')
- .details-row
- +text('Load query:', blobStoreFactory + '.loadQuery', '"loadQuery"', 'false', 'SQL for load entry',
- 'Query for entry load from underlying database<br/>\
- Default value: select * from ENTRIES where key=?')
- .details-row
- +text('Insert query:', blobStoreFactory + '.insertQuery', '"insertQuery"', 'false', 'SQL for insert entry',
- 'Query for insert entry into underlying database<br/>\
- Default value: insert into ENTRIES (key, val) values (?, ?)')
- .details-row
- +text('Update query:', blobStoreFactory + '.updateQuery', '"updateQuery"', 'false', 'SQL for update entry',
- 'Query for update entry in underlying database<br/>\
- Default value: update ENTRIES set val=? where key=?')
- .details-row
- +text('Delete query:', blobStoreFactory + '.deleteQuery', '"deleteQuery"', 'false', 'SQL for delete entry',
- 'Query for delete entry from underlying database<br/>\
- Default value: delete from ENTRIES where key=?')
-
- div(ng-show='#{storeFactoryKind} === "CacheHibernateBlobStoreFactory"')
- -var hibernateStoreFactory = storeFactory + '.CacheHibernateBlobStoreFactory'
- -var hibernateProperties = hibernateStoreFactory + '.hibernateProperties'
-
- .details-row
- +ignite-form-group(ng-form=form ng-model=hibernateProperties)
- ignite-form-field-label
- | Hibernate properties
- ignite-form-group-tooltip
- | List of Hibernate properties#[br]
- | For example: connection.url=jdbc:h2:mem:exampleDb
- ignite-form-group-add(ng-click='tableNewItem(hibernatePropsTbl)')
- | Add new Hibernate property
-
- -var tipUnique = 'Property with such key already exists!'
- -var tipPropertySpecified = 'Property should be present in format key=value!'
-
- .group-content-empty(ng-if='!((#{hibernateProperties} && #{hibernateProperties}.length > 0) || tableNewItemActive(hibernatePropsTbl))')
- | Not defined
- .group-content(ng-show='(#{hibernateProperties} && #{hibernateProperties}.length > 0) || tableNewItemActive(hibernatePropsTbl)')
- table.links-edit(id='hibernateProps' st-table=hibernateProperties)
- tbody
- tr(ng-repeat='item in #{hibernateProperties}')
- td.col-sm-12(ng-hide='tableEditing(hibernatePropsTbl, $index)')
- a.labelFormField(ng-click='tableStartEdit(backupItem, hibernatePropsTbl, $index)') {{item.name}} = {{item.value}}
- +btn-remove('tableRemove(backupItem, hibernatePropsTbl, $index)', '"Remove Property"')
- td.col-sm-12(ng-if='tableEditing(hibernatePropsTbl, $index)')
- +table-pair-edit('hibernatePropsTbl', 'cur', 'Property name', 'Property value', false, false, '{{::hibernatePropsTbl.focusId + $index}}', '$index', '=')
- tfoot(ng-show='tableNewItemActive(hibernatePropsTbl)')
- tr
- td.col-sm-12
- +table-pair-edit('hibernatePropsTbl', 'new', 'Property name', 'Property value', false, false, '{{::hibernatePropsTbl.focusId + $index}}', '-1', '=')
-
-
- .settings-row
- +checkbox('Keep binary in store', model + '.storeKeepBinary', '"storeKeepBinary"',
- 'Flag indicating that CacheStore implementation is working with binary objects instead of Java objects')
- .settings-row
- +checkbox('Load previous value', model + '.loadPreviousValue', '"loadPreviousValue"',
- 'Flag indicating whether value should be loaded from store if it is not in the cache for following cache operations: \
- <ul> \
- <li>IgniteCache.putIfAbsent()</li> \
- <li>IgniteCache.replace()</li> \
- <li>IgniteCache.remove()</li> \
- <li>IgniteCache.getAndPut()</li> \
- <li>IgniteCache.getAndRemove()</li> \
- <li>IgniteCache.getAndReplace()</li> \
- <li> IgniteCache.getAndPutIfAbsent()</li>\
- </ul>')
- .settings-row
- +checkbox('Read-through', model + '.readThrough', '"readThrough"', 'Flag indicating whether read-through caching should be used')
- .settings-row
- +checkbox('Write-through', model + '.writeThrough', '"writeThrough"', 'Flag indicating whether write-through caching should be used')
- .settings-row
- +ignite-form-group
- ignite-form-field-label
- | Write-behind
- ignite-form-group-tooltip
- | Cache write-behind settings#[br]
- | Write-behind is a special mode when updates to cache accumulated and then asynchronously flushed to persistent store as a bulk operation
- .group-content
- -var enabled = model + '.writeBehindEnabled'
-
- .details-row
- +checkbox('Enabled', enabled, '"writeBehindEnabled"', 'Flag indicating whether Ignite should use write-behind behaviour for the cache store')
- .details-row
- +number('Batch size:', model + '.writeBehindBatchSize', '"writeBehindBatchSize"', enabled, '512', '1',
- 'Maximum batch size for write-behind cache store operations<br/>\
- Store operations(get or remove) are combined in a batch of this size to be passed to cache store')
- .details-row
- +number('Flush size:', model + '.writeBehindFlushSize', '"writeBehindFlushSize"', enabled, '10240', '0',
- 'Maximum size of the write-behind cache<br/>\
- If cache size exceeds this value, all cached items are flushed to the cache store and write cache is cleared')
- .details-row
- +number('Flush frequency:', model + '.writeBehindFlushFrequency', '"writeBehindFlushFrequency"', enabled, '5000', '0',
- 'Frequency with which write-behind cache is flushed to the cache store in milliseconds')
- .details-row
- +number('Flush threads count:', model + '.writeBehindFlushThreadCount', '"writeBehindFlushThreadCount"', enabled, '1', '1',
- 'Number of threads that will perform cache flushing')
- .col-sm-6
- +preview-xml-java(model, 'cacheStore', 'domains')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/caches/store.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/store.pug b/modules/web-console/frontend/app/modules/states/configuration/caches/store.pug
new file mode 100644
index 0000000..f09bc0b
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/caches/store.pug
@@ -0,0 +1,250 @@
+//-
+ 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
+
+-var form = 'store'
+-var model = 'backupItem'
+
+mixin hibernateField(name, model, items, valid, save, newItem)
+ -var resetOnEnter = newItem ? '(stopblur = true) && (group.add = [{}])' : '(field.edit = false)'
+ -var onEnter = `${valid} && (${save}); ${valid} && ${resetOnEnter};`
+
+ -var onEscape = newItem ? 'group.add = []' : 'field.edit = false'
+
+ -var resetOnBlur = newItem ? '!stopblur && (group.add = [])' : 'field.edit = false'
+ -var onBlur = `${valid} && (${save}); ${resetOnBlur};`
+
+ div(ignite-on-focus-out=onBlur)
+ if block
+ block
+
+ .input-tip
+ +ignite-form-field-input(name, model, false, 'true', 'key=value')(
+ data-ignite-property-unique=items
+ data-ignite-property-value-specified
+ data-ignite-form-field-input-autofocus='true'
+
+ ignite-on-enter=onEnter
+ ignite-on-escape=onEscape
+ )
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle='' ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Store
+ ignite-form-field-tooltip.tipLabel
+ | Cache store settings#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/persistent-store" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ -var storeFactory = `${model}.cacheStoreFactory`;
+ -var storeFactoryKind = `${storeFactory}.kind`;
+
+ +dropdown('Store factory:', storeFactoryKind, '"cacheStoreFactory"', 'true', 'Not set',
+ '[\
+ {value: "CacheJdbcPojoStoreFactory", label: "JDBC POJO store factory"},\
+ {value: "CacheJdbcBlobStoreFactory", label: "JDBC BLOB store factory"},\
+ {value: "CacheHibernateBlobStoreFactory", label: "Hibernate BLOB store factory"},\
+ {value: undefined, label: "Not set"}\
+ ]',
+ 'Factory for persistent storage for cache data\
+ <ul>\
+ <li>JDBC POJO store factory - Objects are stored in underlying database by using java beans mapping description via reflection backed by JDBC</li>\
+ <li>JDBC BLOB store factory - Objects are stored in underlying database in BLOB format backed by JDBC</li>\
+ <li>Hibernate BLOB store factory - Objects are stored in underlying database in BLOB format backed by Hibernate</li>\
+ </ul>'
+ )
+ span(ng-show=storeFactoryKind ng-init='__.expanded = true')
+ a.customize(ng-show='__.expanded' ng-click='__.expanded = false') Hide settings
+ a.customize(ng-hide='__.expanded' ng-click='__.expanded = true') Show settings
+ .panel-details(ng-show='__.expanded')
+ div(ng-show=`${storeFactoryKind} === 'CacheJdbcPojoStoreFactory'`)
+ -var pojoStoreFactory = `${storeFactory}.CacheJdbcPojoStoreFactory`
+ -var required = `${storeFactoryKind} === 'CacheJdbcPojoStoreFactory'`
+
+ .details-row
+ +text('Data source bean name:', `${pojoStoreFactory}.dataSourceBean`,
+ '"pojoDataSourceBean"', required, 'Input bean name',
+ 'Name of the data source bean in Spring context')
+ .details-row
+ +dialect('Dialect:', `${pojoStoreFactory}.dialect`, '"pojoDialect"', required,
+ 'Dialect of SQL implemented by a particular RDBMS:', 'Generic JDBC dialect',
+ 'Choose JDBC dialect')
+ .details-row
+ +number('Batch size:', `${pojoStoreFactory}.batchSize`, '"pojoBatchSize"', true, '512', '1',
+ 'Maximum batch size for writeAll and deleteAll operations')
+ .details-row
+ +number('Thread count:', `${pojoStoreFactory}.maximumPoolSize`, '"pojoMaximumPoolSize"', true, 'availableProcessors', '1',
+ 'Maximum workers thread count.<br/>\
+ These threads are responsible for load cache.')
+ .details-row
+ +number('Maximum write attempts:', `${pojoStoreFactory}.maximumWriteAttempts`, '"pojoMaximumWriteAttempts"', true, '2', '0',
+ 'Maximum write attempts in case of database error')
+ .details-row
+ +number('Parallel load threshold:', `${pojoStoreFactory}.parallelLoadCacheMinimumThreshold`, '"pojoParallelLoadCacheMinimumThreshold"', true, '512', '0',
+ 'Parallel load cache minimum threshold.<br/>\
+ If <b>0</b> then load sequentially.')
+ .details-row
+ +java-class('Hasher', `${pojoStoreFactory}.hasher`, '"pojoHasher"', 'true', 'false', 'Hash calculator', required)
+ .details-row
+ +java-class('Transformer', `${pojoStoreFactory}.transformer`, '"pojoTransformer"', 'true', 'false', 'Types transformer', required)
+ .details-row
+ +checkbox('Escape table and filed names', `${pojoStoreFactory}.sqlEscapeAll`, '"sqlEscapeAll"',
+ 'If enabled than all schema, table and field names will be escaped with double quotes (for example: "tableName"."fieldName").<br/>\
+ This enforces case sensitivity for field names and also allows having special characters in table and field names.<br/>\
+ Escaped names will be used for CacheJdbcPojoStore internal SQL queries.')
+ div(ng-show=`${storeFactoryKind} === 'CacheJdbcBlobStoreFactory'`)
+ -var blobStoreFactory = `${storeFactory}.CacheJdbcBlobStoreFactory`
+ -var blobStoreFactoryVia = `${blobStoreFactory}.connectVia`
+
+ .details-row
+ +dropdown('Connect via:', blobStoreFactoryVia, '"connectVia"', 'true', 'Choose connection method',
+ '[\
+ {value: "URL", label: "URL"},\
+ {value: "DataSource", label: "Data source"}\
+ ]',
+ 'You can connect to database via:\
+ <ul>\
+ <li>JDBC URL, for example: jdbc:h2:mem:myDatabase</li>\
+ <li>Configured data source</li>\
+ </ul>')
+ div(ng-show=`${blobStoreFactoryVia} === 'URL'`)
+ -var required = `${storeFactoryKind} === 'CacheJdbcBlobStoreFactory' && ${blobStoreFactoryVia} === 'URL'`
+
+ .details-row
+ +text('Connection URL:', `${blobStoreFactory}.connectionUrl`, '"connectionUrl"', required, 'Input URL',
+ 'URL for database access, for example: jdbc:h2:mem:myDatabase')
+ .details-row
+ +text('User:', `${blobStoreFactory}.user`, '"user"', required, 'Input user name', 'User name for database access')
+ .details-row
+ label Note, password will be generated as stub
+ div(ng-show=`${blobStoreFactoryVia} !== 'URL'`)
+ -var required = `${storeFactoryKind} === 'CacheJdbcBlobStoreFactory' && ${blobStoreFactoryVia} !== 'URL'`
+
+ .details-row
+ +text('Data source bean name:', `${blobStoreFactory}.dataSourceBean`, '"blobDataSourceBean"', required, 'Input bean name',
+ 'Name of the data source bean in Spring context')
+ .details-row
+ +dialect('Database:', `${blobStoreFactory}.dialect`, '"blobDialect"', required, 'Supported databases:', 'Generic database', 'Choose database')
+ .details-row
+ +checkbox('Init schema', `${blobStoreFactory}.initSchema`, '"initSchema"',
+ 'Flag indicating whether DB schema should be initialized by Ignite (default behaviour) or was explicitly created by user')
+ .details-row
+ +text('Create query:', `${blobStoreFactory}.createTableQuery`, '"createTableQuery"', 'false', 'SQL for table creation',
+ 'Query for table creation in underlying database<br/>\
+ Default value: create table if not exists ENTRIES (key binary primary key, val binary)')
+ .details-row
+ +text('Load query:', `${blobStoreFactory}.loadQuery`, '"loadQuery"', 'false', 'SQL for load entry',
+ 'Query for entry load from underlying database<br/>\
+ Default value: select * from ENTRIES where key=?')
+ .details-row
+ +text('Insert query:', `${blobStoreFactory}.insertQuery`, '"insertQuery"', 'false', 'SQL for insert entry',
+ 'Query for insert entry into underlying database<br/>\
+ Default value: insert into ENTRIES (key, val) values (?, ?)')
+ .details-row
+ +text('Update query:', `${blobStoreFactory}.updateQuery`, '"updateQuery"', 'false', 'SQL for update entry',
+ 'Query for update entry in underlying database<br/>\
+ Default value: update ENTRIES set val=? where key=?')
+ .details-row
+ +text('Delete query:', `${blobStoreFactory}.deleteQuery`, '"deleteQuery"', 'false', 'SQL for delete entry',
+ 'Query for delete entry from underlying database<br/>\
+ Default value: delete from ENTRIES where key=?')
+
+ div(ng-show=`${storeFactoryKind} === 'CacheHibernateBlobStoreFactory'`)
+ -var hibernateStoreFactory = `${storeFactory}.CacheHibernateBlobStoreFactory`
+ -var hibernateProperties = `${hibernateStoreFactory}.hibernateProperties`
+
+ .details-row
+ +ignite-form-group(ng-form=form ng-model=hibernateProperties)
+ ignite-form-field-label
+ | Hibernate properties
+ ignite-form-group-tooltip
+ | List of Hibernate properties#[br]
+ | For example: connection.url=jdbc:h2:mem:exampleDb
+ ignite-form-group-add(ng-click='tableNewItem(hibernatePropsTbl)')
+ | Add new Hibernate property
+
+ -var tipUnique = 'Property with such key already exists!'
+ -var tipPropertySpecified = 'Property should be present in format key=value!'
+
+ .group-content-empty(ng-if=`!((${hibernateProperties} && ${hibernateProperties}.length > 0) || tableNewItemActive(hibernatePropsTbl))`)
+ | Not defined
+ .group-content(ng-show=`(${hibernateProperties} && ${hibernateProperties}.length > 0) || tableNewItemActive(hibernatePropsTbl)`)
+ table.links-edit(id='hibernateProps' st-table=hibernateProperties)
+ tbody
+ tr(ng-repeat=`item in ${hibernateProperties}`)
+ td.col-sm-12(ng-hide='tableEditing(hibernatePropsTbl, $index)')
+ a.labelFormField(ng-click='tableStartEdit(backupItem, hibernatePropsTbl, $index)') {{item.name}} = {{item.value}}
+ +btn-remove('tableRemove(backupItem, hibernatePropsTbl, $index)', '"Remove Property"')
+ td.col-sm-12(ng-if='tableEditing(hibernatePropsTbl, $index)')
+ +table-pair-edit('hibernatePropsTbl', 'cur', 'Property name', 'Property value', false, false, '{{::hibernatePropsTbl.focusId + $index}}', '$index', '=')
+ tfoot(ng-show='tableNewItemActive(hibernatePropsTbl)')
+ tr
+ td.col-sm-12
+ +table-pair-edit('hibernatePropsTbl', 'new', 'Property name', 'Property value', false, false, '{{::hibernatePropsTbl.focusId + $index}}', '-1', '=')
+
+
+ .settings-row
+ +checkbox('Keep binary in store', `${model}.storeKeepBinary`, '"storeKeepBinary"',
+ 'Flag indicating that CacheStore implementation is working with binary objects instead of Java objects')
+ .settings-row
+ +checkbox('Load previous value', `${model}.loadPreviousValue`, '"loadPreviousValue"',
+ 'Flag indicating whether value should be loaded from store if it is not in the cache for following cache operations: \
+ <ul> \
+ <li>IgniteCache.putIfAbsent()</li> \
+ <li>IgniteCache.replace()</li> \
+ <li>IgniteCache.remove()</li> \
+ <li>IgniteCache.getAndPut()</li> \
+ <li>IgniteCache.getAndRemove()</li> \
+ <li>IgniteCache.getAndReplace()</li> \
+ <li> IgniteCache.getAndPutIfAbsent()</li>\
+ </ul>')
+ .settings-row
+ +checkbox('Read-through', `${model}.readThrough`, '"readThrough"', 'Flag indicating whether read-through caching should be used')
+ .settings-row
+ +checkbox('Write-through', `${model}.writeThrough`, '"writeThrough"', 'Flag indicating whether write-through caching should be used')
+ .settings-row
+ +ignite-form-group
+ ignite-form-field-label
+ | Write-behind
+ ignite-form-group-tooltip
+ | Cache write-behind settings#[br]
+ | Write-behind is a special mode when updates to cache accumulated and then asynchronously flushed to persistent store as a bulk operation
+ .group-content
+ -var enabled = `${model}.writeBehindEnabled`
+
+ .details-row
+ +checkbox('Enabled', enabled, '"writeBehindEnabled"', 'Flag indicating whether Ignite should use write-behind behaviour for the cache store')
+ .details-row
+ +number('Batch size:', `${model}.writeBehindBatchSize`, '"writeBehindBatchSize"', enabled, '512', '1',
+ 'Maximum batch size for write-behind cache store operations<br/>\
+ Store operations(get or remove) are combined in a batch of this size to be passed to cache store')
+ .details-row
+ +number('Flush size:', `${model}.writeBehindFlushSize`, '"writeBehindFlushSize"', enabled, '10240', '0',
+ 'Maximum size of the write-behind cache<br/>\
+ If cache size exceeds this value, all cached items are flushed to the cache store and write cache is cleared')
+ .details-row
+ +number('Flush frequency:', `${model}.writeBehindFlushFrequency`, '"writeBehindFlushFrequency"', enabled, '5000', '0',
+ 'Frequency with which write-behind cache is flushed to the cache store in milliseconds')
+ .details-row
+ +number('Flush threads count:', `${model}.writeBehindFlushThreadCount`, '"writeBehindFlushThreadCount"', enabled, '1', '1',
+ 'Number of threads that will perform cache flushing')
+ .col-sm-6
+ +preview-xml-java(model, 'cacheStore', 'domains')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/atomic.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/atomic.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/atomic.jade
deleted file mode 100644
index 412ca3a..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/atomic.jade
+++ /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.jade
-
--var form = 'atomics'
--var model = 'backupItem.atomicConfiguration'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle='' ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Atomic configuration
- ignite-form-field-tooltip.tipLabel
- | Configuration for atomic data structures#[br]
- | Atomics are distributed across the cluster, essentially enabling performing atomic operations (such as increment-and-get or compare-and-set) with the same globally-visible value#[br]
- | #[a(href="https://apacheignite.readme.io/docs/atomic-types" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target='' id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +dropdown('Cache mode:', model + '.cacheMode', '"cacheMode"', 'true', 'PARTITIONED',
- '[\
- {value: "LOCAL", label: "LOCAL"},\
- {value: "REPLICATED", label: "REPLICATED"},\
- {value: "PARTITIONED", label: "PARTITIONED"}\
- ]',
- 'Cache modes:\
- <ul>\
- <li>Partitioned - in this mode the overall key set will be divided into partitions and all partitions will be split equally between participating nodes</li>\
- <li>Replicated - in this mode all the keys are distributed to all participating nodes</li>\
- <li>Local - in this mode caches residing on different grid nodes will not know about each other</li>\
- </ul>')
- .settings-row
- +number('Sequence reserve:', model + '.atomicSequenceReserveSize', '"atomicSequenceReserveSize"', 'true', '1000', '0',
- 'Default number of sequence values reserved for IgniteAtomicSequence instances<br/>\
- After a certain number has been reserved, consequent increments of sequence will happen locally, without communication with other nodes, until the next reservation has to be made')
- .settings-row(ng-show='!(#{model}.cacheMode && #{model}.cacheMode != "PARTITIONED")')
- +number('Backups:', model + '.backups', '"backups"', 'true', '0', '0', 'Number of backup nodes')
- .col-sm-6
- +preview-xml-java(model, 'clusterAtomics')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/atomic.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/atomic.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/atomic.pug
new file mode 100644
index 0000000..61532ab
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/atomic.pug
@@ -0,0 +1,54 @@
+//-
+ 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
+
+-var form = 'atomics'
+-var model = 'backupItem.atomicConfiguration'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle='' ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Atomic configuration
+ ignite-form-field-tooltip.tipLabel
+ | Configuration for atomic data structures#[br]
+ | Atomics are distributed across the cluster, essentially enabling performing atomic operations (such as increment-and-get or compare-and-set) with the same globally-visible value#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/atomic-types" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target='' id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +dropdown('Cache mode:', `${model}.cacheMode`, '"cacheMode"', 'true', 'PARTITIONED',
+ '[\
+ {value: "LOCAL", label: "LOCAL"},\
+ {value: "REPLICATED", label: "REPLICATED"},\
+ {value: "PARTITIONED", label: "PARTITIONED"}\
+ ]',
+ 'Cache modes:\
+ <ul>\
+ <li>Partitioned - in this mode the overall key set will be divided into partitions and all partitions will be split equally between participating nodes</li>\
+ <li>Replicated - in this mode all the keys are distributed to all participating nodes</li>\
+ <li>Local - in this mode caches residing on different grid nodes will not know about each other</li>\
+ </ul>')
+ .settings-row
+ +number('Sequence reserve:', `${model}.atomicSequenceReserveSize`, '"atomicSequenceReserveSize"', 'true', '1000', '0',
+ 'Default number of sequence values reserved for IgniteAtomicSequence instances<br/>\
+ After a certain number has been reserved, consequent increments of sequence will happen locally, without communication with other nodes, until the next reservation has to be made')
+ .settings-row(ng-show=`!(${model}.cacheMode && ${model}.cacheMode != "PARTITIONED")`)
+ +number('Backups:', model + '.backups', '"backups"', 'true', '0', '0', 'Number of backup nodes')
+ .col-sm-6
+ +preview-xml-java(model, 'clusterAtomics')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/attributes.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/attributes.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/attributes.jade
deleted file mode 100644
index 0366ed8..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/attributes.jade
+++ /dev/null
@@ -1,57 +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.jade
-
--var form = 'attributes'
--var model = 'backupItem'
--var userAttributes = model + '.attributes'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label User attributes
- ignite-form-field-tooltip.tipLabel
- | Configuration for Ignite user attributes
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +ignite-form-group(ng-model='#{userAttributes}' ng-form='#{form}')
- ignite-form-field-label
- | User attributes
- ignite-form-group-tooltip
- | User-defined attributes to add to node
- ignite-form-group-add(ng-click='tableNewItem(attributesTbl)')
- | Add user attribute
- .group-content-empty(ng-if='!((#{userAttributes} && #{userAttributes}.length > 0) || tableNewItemActive(attributesTbl))')
- | Not defined
- .group-content(ng-show='(#{userAttributes} && #{userAttributes}.length > 0) || tableNewItemActive(attributesTbl)')
- table.links-edit(id='attributes' st-table=userAttributes)
- tbody
- tr(ng-repeat='item in #{userAttributes} track by $index')
- td.col-sm-12(ng-hide='tableEditing(attributesTbl, $index)')
- a.labelFormField(ng-click='tableStartEdit(backupItem, attributesTbl, $index)') {{item.name}} = {{item.value}}
- +btn-remove('tableRemove(backupItem, attributesTbl, $index)', '"Remove attribute"')
- td.col-sm-12(ng-show='tableEditing(attributesTbl, $index)')
- +table-pair-edit('attributesTbl', 'cur', 'Attribute name', 'Attribute value', false, false, '{{::attributesTbl.focusId + $index}}', '$index', '=')
- tfoot(ng-show='tableNewItemActive(attributesTbl)')
- tr
- td.col-sm-12
- +table-pair-edit('attributesTbl', 'new', 'Attribute name', 'Attribute value', false, false, '{{::attributesTbl.focusId + $index}}', '-1', '=')
- .col-sm-6
- +preview-xml-java(model, 'clusterUserAttributes')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/attributes.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/attributes.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/attributes.pug
new file mode 100644
index 0000000..cac122b
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/attributes.pug
@@ -0,0 +1,57 @@
+//-
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+include /app/helpers/jade/mixins
+
+-var form = 'attributes'
+-var model = 'backupItem'
+-var userAttributes = model + '.attributes'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label User attributes
+ ignite-form-field-tooltip.tipLabel
+ | Configuration for Ignite user attributes
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +ignite-form-group(ng-model=`${userAttributes}` ng-form=form)
+ ignite-form-field-label
+ | User attributes
+ ignite-form-group-tooltip
+ | User-defined attributes to add to node
+ ignite-form-group-add(ng-click='tableNewItem(attributesTbl)')
+ | Add user attribute
+ .group-content-empty(ng-if=`!((${userAttributes} && ${userAttributes}.length > 0) || tableNewItemActive(attributesTbl))`)
+ | Not defined
+ .group-content(ng-show=`(${userAttributes} && ${userAttributes}.length > 0) || tableNewItemActive(attributesTbl)`)
+ table.links-edit(id='attributes' st-table=userAttributes)
+ tbody
+ tr(ng-repeat=`item in ${userAttributes} track by $index`)
+ td.col-sm-12(ng-hide='tableEditing(attributesTbl, $index)')
+ a.labelFormField(ng-click='tableStartEdit(backupItem, attributesTbl, $index)') {{item.name}} = {{item.value}}
+ +btn-remove('tableRemove(backupItem, attributesTbl, $index)', '"Remove attribute"')
+ td.col-sm-12(ng-show='tableEditing(attributesTbl, $index)')
+ +table-pair-edit('attributesTbl', 'cur', 'Attribute name', 'Attribute value', false, false, '{{::attributesTbl.focusId + $index}}', '$index', '=')
+ tfoot(ng-show='tableNewItemActive(attributesTbl)')
+ tr
+ td.col-sm-12
+ +table-pair-edit('attributesTbl', 'new', 'Attribute name', 'Attribute value', false, false, '{{::attributesTbl.focusId + $index}}', '-1', '=')
+ .col-sm-6
+ +preview-xml-java(model, 'clusterUserAttributes')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/binary.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/binary.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/binary.jade
deleted file mode 100644
index f8ec8f9..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/binary.jade
+++ /dev/null
@@ -1,77 +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.jade
-
--var form = 'binary'
--var model = 'backupItem.binaryConfiguration'
--var types = model + '.typeConfigurations'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Binary configuration
- ignite-form-field-tooltip.tipLabel
- | Configuration of specific binary types#[br]
- | #[a(href="https://apacheignite.readme.io/docs/binary-marshaller" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +java-class('ID mapper:', model + '.idMapper', '"idMapper"', 'true', 'false',
- 'Maps given from BinaryNameMapper type and filed name to ID that will be used by Ignite in internals<br/>\
- Ignite never writes full strings for field or type names. Instead, for performance reasons, Ignite writes integer hash codes for type/class and field names. It has been tested that hash code conflicts for the type/class names or the field names within the same type are virtually non - existent and, to gain performance, it is safe to work with hash codes. For the cases when hash codes for different types or fields actually do collide <b>BinaryIdMapper</b> allows to override the automatically generated hash code IDs for the type and field names')
- .settings-row
- +java-class('Name mapper:', model + '.nameMapper', '"nameMapper"', 'true', 'false', 'Maps type/class and field names to different names')
- .settings-row
- +java-class('Serializer:', model + '.serializer', '"serializer"', 'true', 'false', 'Class with custom serialization logic for binary objects')
- .settings-row
- +ignite-form-group()
- ignite-form-field-label
- | Type configurations
- ignite-form-group-tooltip
- | Configuration properties for binary types
- ignite-form-group-add(ng-click='#{types}.push({})')
- | Add new type configuration.
- .group-content-empty(ng-if='!#{types}.length')
- | Not defined
- .group-content(ng-repeat='model in #{types} track by $index')
- hr(ng-if='$index !== 0')
- .settings-row
- +java-class-autofocus('Type name:', 'model.typeName', '"typeName" + $index', 'true', 'true', 'true', 'Type name')
- +table-remove-button(types, 'Remove type configuration')
- .settings-row
- +java-class('ID mapper:', 'model.idMapper', '"idMapper" + $index', 'true', 'false',
- 'Maps given from BinaryNameMapper type and filed name to ID that will be used by Ignite in internals<br/>\
- Ignite never writes full strings for field or type/class names.\
- Instead, for performance reasons, Ignite writes integer hash codes for type/class and field names.\
- It has been tested that hash code conflicts for the type/class names or the field names within the same type are virtually non - existent and,\
- to gain performance, it is safe to work with hash codes.\
- For the cases when hash codes for different types or fields actually do collide <b>BinaryIdMapper</b> allows to override the automatically generated hash code IDs for the type and field names')
- .settings-row
- +java-class('Name mapper:', 'model.nameMapper', '"nameMapper" + $index', 'true', 'false',
- 'Maps type/class and field names to different names')
- .settings-row
- +java-class('Serializer:', 'model.serializer', '"serializer" + $index', 'true', 'false',
- 'Class with custom serialization logic for binary object')
- .settings-row
- +checkbox('Enum', 'model.enum', 'enum', 'Flag indicating that this type is the enum')
-
- .settings-row
- +checkbox('Compact footer', model + '.compactFooter', '"compactFooter"', 'When enabled, Ignite will not write fields metadata when serializing objects(this will increase serialization performance), because internally #[b BinaryMarshaller] already distribute metadata inside cluster')
- .col-sm-6
- +preview-xml-java(model, 'clusterBinary')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/binary.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/binary.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/binary.pug
new file mode 100644
index 0000000..ee9f37b
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/binary.pug
@@ -0,0 +1,77 @@
+//-
+ 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
+
+-var form = 'binary'
+-var model = 'backupItem.binaryConfiguration'
+-var types = model + '.typeConfigurations'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Binary configuration
+ ignite-form-field-tooltip.tipLabel
+ | Configuration of specific binary types#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/binary-marshaller" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +java-class('ID mapper:', model + '.idMapper', '"idMapper"', 'true', 'false',
+ 'Maps given from BinaryNameMapper type and filed name to ID that will be used by Ignite in internals<br/>\
+ Ignite never writes full strings for field or type names. Instead, for performance reasons, Ignite writes integer hash codes for type/class and field names. It has been tested that hash code conflicts for the type/class names or the field names within the same type are virtually non - existent and, to gain performance, it is safe to work with hash codes. For the cases when hash codes for different types or fields actually do collide <b>BinaryIdMapper</b> allows to override the automatically generated hash code IDs for the type and field names')
+ .settings-row
+ +java-class('Name mapper:', model + '.nameMapper', '"nameMapper"', 'true', 'false', 'Maps type/class and field names to different names')
+ .settings-row
+ +java-class('Serializer:', model + '.serializer', '"serializer"', 'true', 'false', 'Class with custom serialization logic for binary objects')
+ .settings-row
+ +ignite-form-group()
+ ignite-form-field-label
+ | Type configurations
+ ignite-form-group-tooltip
+ | Configuration properties for binary types
+ ignite-form-group-add(ng-click=`${types}.push({})`)
+ | Add new type configuration.
+ .group-content-empty(ng-if=`!${types}.length`)
+ | Not defined
+ .group-content(ng-repeat=`model in ${types} track by $index`)
+ hr(ng-if='$index !== 0')
+ .settings-row
+ +java-class-autofocus('Type name:', 'model.typeName', '"typeName" + $index', 'true', 'true', 'true', 'Type name')
+ +table-remove-button(types, 'Remove type configuration')
+ .settings-row
+ +java-class('ID mapper:', 'model.idMapper', '"idMapper" + $index', 'true', 'false',
+ 'Maps given from BinaryNameMapper type and filed name to ID that will be used by Ignite in internals<br/>\
+ Ignite never writes full strings for field or type/class names.\
+ Instead, for performance reasons, Ignite writes integer hash codes for type/class and field names.\
+ It has been tested that hash code conflicts for the type/class names or the field names within the same type are virtually non - existent and,\
+ to gain performance, it is safe to work with hash codes.\
+ For the cases when hash codes for different types or fields actually do collide <b>BinaryIdMapper</b> allows to override the automatically generated hash code IDs for the type and field names')
+ .settings-row
+ +java-class('Name mapper:', 'model.nameMapper', '"nameMapper" + $index', 'true', 'false',
+ 'Maps type/class and field names to different names')
+ .settings-row
+ +java-class('Serializer:', 'model.serializer', '"serializer" + $index', 'true', 'false',
+ 'Class with custom serialization logic for binary object')
+ .settings-row
+ +checkbox('Enum', 'model.enum', 'enum', 'Flag indicating that this type is the enum')
+
+ .settings-row
+ +checkbox('Compact footer', model + '.compactFooter', '"compactFooter"', 'When enabled, Ignite will not write fields metadata when serializing objects(this will increase serialization performance), because internally #[b BinaryMarshaller] already distribute metadata inside cluster')
+ .col-sm-6
+ +preview-xml-java(model, 'clusterBinary')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/cache-key-cfg.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/cache-key-cfg.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/cache-key-cfg.jade
deleted file mode 100644
index 41a72c1..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/cache-key-cfg.jade
+++ /dev/null
@@ -1,50 +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.jade
-
--var form = 'cacheKeyCfg'
--var model = 'backupItem.cacheKeyConfiguration'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Cache key configuration
- ignite-form-field-tooltip.tipLabel
- | Cache key configuration allows to collocate objects in a partitioned cache based on field in cache key without explicit usage of annotations on user classes
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +ignite-form-group()
- ignite-form-field-label
- | Cache key configuration
- ignite-form-group-tooltip
- | Cache key configuration
- ignite-form-group-add(ng-click='#{model}.push({})')
- | Add new cache key configuration
- .group-content-empty(ng-if='!#{model}.length')
- | Not defined
- .group-content(ng-repeat='model in #{model} track by $index')
- hr(ng-if='$index !== 0')
- .settings-row
- +java-class-autofocus('Type name:', 'model.typeName', '"cacheKeyTypeName" + $index', 'true', 'true', 'true', 'Type name')
- +table-remove-button(model, 'Remove cache key configuration')
- .settings-row
- +text('Affinity key field name:', 'model.affinityKeyFieldName', '"affinityKeyFieldName" + $index', true, 'Enter field name', 'Affinity key field name')
- .col-sm-6
- +preview-xml-java(model, 'clusterCacheKeyConfiguration')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/cache-key-cfg.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/cache-key-cfg.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/cache-key-cfg.pug
new file mode 100644
index 0000000..c2926f5
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/cache-key-cfg.pug
@@ -0,0 +1,50 @@
+//-
+ 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
+
+-var form = 'cacheKeyCfg'
+-var model = 'backupItem.cacheKeyConfiguration'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Cache key configuration
+ ignite-form-field-tooltip.tipLabel
+ | Cache key configuration allows to collocate objects in a partitioned cache based on field in cache key without explicit usage of annotations on user classes
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +ignite-form-group()
+ ignite-form-field-label
+ | Cache key configuration
+ ignite-form-group-tooltip
+ | Cache key configuration
+ ignite-form-group-add(ng-click=`${model}.push({})`)
+ | Add new cache key configuration
+ .group-content-empty(ng-if=`!${model}.length`)
+ | Not defined
+ .group-content(ng-repeat=`model in ${model} track by $index`)
+ hr(ng-if='$index !== 0')
+ .settings-row
+ +java-class-autofocus('Type name:', 'model.typeName', '"cacheKeyTypeName" + $index', 'true', 'true', 'true', 'Type name')
+ +table-remove-button(model, 'Remove cache key configuration')
+ .settings-row
+ +text('Affinity key field name:', 'model.affinityKeyFieldName', '"affinityKeyFieldName" + $index', true, 'Enter field name', 'Affinity key field name')
+ .col-sm-6
+ +preview-xml-java(model, 'clusterCacheKeyConfiguration')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint.jade
deleted file mode 100644
index 259909e..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint.jade
+++ /dev/null
@@ -1,86 +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.jade
-
--var form = 'checkpoint'
--var model = 'backupItem.checkpointSpi'
--var CustomCheckpoint = 'model.kind === "Custom"'
--var CacheCheckpoint = 'model.kind === "Cache"'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Checkpointing
- ignite-form-field-tooltip.tipLabel
- | Checkpointing provides an ability to save an intermediate job state#[br]
- | #[a(href="http://apacheignite.readme.io/docs/checkpointing" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row(ng-init='checkpointSpiTbl={type: "checkpointSpi", model: "checkpointSpi", focusId: "kind", ui: "checkpoint-table"}')
- +ignite-form-group()
- ignite-form-field-label
- | Checkpoint SPI configurations
- ignite-form-group-tooltip
- | Checkpoint SPI configurations
- ignite-form-group-add(ng-click='tableNewItem(checkpointSpiTbl)')
- | Add checkpoint SPI
- .group-content-empty(ng-if='!(#{model} && #{model}.length > 0)')
- | Not defined
- .group-content(ng-show='#{model} && #{model}.length > 0' ng-repeat='model in #{model} track by $index')
- hr(ng-if='$index != 0')
- .settings-row
- +dropdown-required-autofocus('Checkpoint SPI:', 'model.kind', '"checkpointKind" + $index', 'true', 'true', 'Choose checkpoint configuration variant', '[\
- {value: "FS", label: "File System"},\
- {value: "Cache", label: "Cache"},\
- {value: "S3", label: "Amazon S3"},\
- {value: "JDBC", label: "Database"},\
- {value: "Custom", label: "Custom"}\
- ]',
- 'Provides an ability to save an intermediate job state\
- <ul>\
- <li>File System - Uses a shared file system to store checkpoints</li>\
- <li>Cache - Uses a cache to store checkpoints</li>\
- <li>Amazon S3 - Uses Amazon S3 to store checkpoints</li>\
- <li>Database - Uses a database to store checkpoints</li>\
- <li>Custom - Custom checkpoint SPI implementation</li>\
- </ul>')
- +table-remove-button(model, 'Remove Checkpoint SPI')
-
- div(ng-show='model.kind === "FS"')
- include ./checkpoint/fs.jade
-
- div(ng-show=CacheCheckpoint)
- .settings-row
- +dropdown-required-empty('Cache:', 'model.Cache.cache', '"checkpointCacheCache"+ $index', 'true', CacheCheckpoint,
- 'Choose cache', 'No caches configured for current cluster', 'clusterCaches', 'Cache to use for storing checkpoints')
- .settings-row
- +java-class('Listener:', 'model.Cache.checkpointListener', '"checkpointCacheListener" + $index', 'true', 'false',
- 'Checkpoint listener implementation class name', CacheCheckpoint)
-
- div(ng-show='model.kind === "S3"')
- include ./checkpoint/s3.jade
-
- div(ng-show='model.kind === "JDBC"')
- include ./checkpoint/jdbc.jade
-
- .settings-row(ng-show=CustomCheckpoint)
- +java-class('Class name:', 'model.Custom.className', '"checkpointCustomClassName" + $index', 'true', CustomCheckpoint,
- 'Custom CheckpointSpi implementation class', CustomCheckpoint)
- .col-sm-6
- +preview-xml-java('backupItem', 'clusterCheckpoint', 'caches')
[02/15] ignite git commit: IGNITE-4659 Migration to Webpack 2.
Upgrade template engine from jade to pug.
Posted by an...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/reset.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/reset.jade b/modules/web-console/frontend/views/reset.jade
deleted file mode 100644
index 9098105..0000000
--- a/modules/web-console/frontend/views/reset.jade
+++ /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.
-
-header#header.header
- table.container
- tr
- td.col-xs-3.col-sm-3.col-md-2
- ignite-header-logo
- td
- ignite-header-title
-
-.container.body-container
- .main-content(ng-controller='resetPassword')
- .row
- .text-center(ng-if='!token')
- p Further instructions for password reset have been sent to your e-mail address.
- .text-center(ng-if='error')
- p {{::error}}
- div(ng-if='token && !error')
- form.form-horizontal(name='resetForm' ng-init='reset_info.token = token')
- .settings-row
- label.col-sm-1 E-mail:
- label {{::email}}
- .settings-row
- label.col-sm-1.required Password:
- .col-sm-3
- input#user_password.form-control(ignite-on-enter-focus-move='user_confirm' type='password' ng-model='reset_info.password' placeholder='New password' required)
- .settings-row
- label.col-sm-1.required Confirm:
- .col-sm-3
- input#user_confirm.form-control(type='password' ng-model='reset_info.confirm' ignite-match='reset_info.password' placeholder='Confirm new password' required ignite-on-enter='resetForm.$valid && resetPassword(user_info)')
- .settings-row
- button.btn.btn-primary(ng-disabled='resetForm.$invalid' ng-click='resetPassword(reset_info)') Reset Password
-
-include includes/footer
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/reset.tpl.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/reset.tpl.pug b/modules/web-console/frontend/views/reset.tpl.pug
new file mode 100644
index 0000000..9098105
--- /dev/null
+++ b/modules/web-console/frontend/views/reset.tpl.pug
@@ -0,0 +1,48 @@
+//-
+ 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.
+
+header#header.header
+ table.container
+ tr
+ td.col-xs-3.col-sm-3.col-md-2
+ ignite-header-logo
+ td
+ ignite-header-title
+
+.container.body-container
+ .main-content(ng-controller='resetPassword')
+ .row
+ .text-center(ng-if='!token')
+ p Further instructions for password reset have been sent to your e-mail address.
+ .text-center(ng-if='error')
+ p {{::error}}
+ div(ng-if='token && !error')
+ form.form-horizontal(name='resetForm' ng-init='reset_info.token = token')
+ .settings-row
+ label.col-sm-1 E-mail:
+ label {{::email}}
+ .settings-row
+ label.col-sm-1.required Password:
+ .col-sm-3
+ input#user_password.form-control(ignite-on-enter-focus-move='user_confirm' type='password' ng-model='reset_info.password' placeholder='New password' required)
+ .settings-row
+ label.col-sm-1.required Confirm:
+ .col-sm-3
+ input#user_confirm.form-control(type='password' ng-model='reset_info.confirm' ignite-match='reset_info.password' placeholder='Confirm new password' required ignite-on-enter='resetForm.$valid && resetPassword(user_info)')
+ .settings-row
+ button.btn.btn-primary(ng-disabled='resetForm.$invalid' ng-click='resetPassword(reset_info)') Reset Password
+
+include includes/footer
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/settings/admin.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/settings/admin.jade b/modules/web-console/frontend/views/settings/admin.jade
deleted file mode 100644
index a09fda9..0000000
--- a/modules/web-console/frontend/views/settings/admin.jade
+++ /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.
-
-.admin-page.row
- .docs-content.greedy
- .docs-header
- h1 Admin panel
- hr
- .docs-body
- .row
- .col-xs-12
- ignite-list-of-registered-users(data-options='ctrl.data')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/settings/admin.tpl.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/settings/admin.tpl.pug b/modules/web-console/frontend/views/settings/admin.tpl.pug
new file mode 100644
index 0000000..a09fda9
--- /dev/null
+++ b/modules/web-console/frontend/views/settings/admin.tpl.pug
@@ -0,0 +1,25 @@
+//-
+ 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.
+
+.admin-page.row
+ .docs-content.greedy
+ .docs-header
+ h1 Admin panel
+ hr
+ .docs-body
+ .row
+ .col-xs-12
+ ignite-list-of-registered-users(data-options='ctrl.data')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/settings/profile.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/settings/profile.jade b/modules/web-console/frontend/views/settings/profile.jade
deleted file mode 100644
index 6f91f8f..0000000
--- a/modules/web-console/frontend/views/settings/profile.jade
+++ /dev/null
@@ -1,76 +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.
-
-mixin lbl(txt)
- label.col-sm-2.required.labelFormField #{txt}
-
-.row(ng-controller='profileController')
- .docs-content.greedy
- .docs-header
- h1 User profile
- hr
- .docs-body
- form.form-horizontal(name='profileForm' novalidate)
- .col-sm-10(style='padding: 0')
- .details-row
- +lbl('First name:')
- .col-xs-5.col-sm-4
- input#profile-firstname.form-control(ignite-on-enter-focus-move='profile-lastname' type='text' ng-model='user.firstName' placeholder='Input first name' required ignite-auto-focus)
- .details-row
- +lbl('Last name:')
- .col-xs-5.col-sm-4
- input#profile-lastname.form-control(ignite-on-enter-focus-move='profile-email' type='text' ng-model='user.lastName' placeholder='Input last name' required)
- .details-row
- +lbl('Email:')
- .col-xs-5.col-sm-4
- input#profile-email.form-control(ignite-on-enter-focus-move='profile-company' type='email' ng-model='user.email' placeholder='Input email' required)
- .details-row
- +lbl('Company:')
- .col-xs-5.col-sm-4
- input#profile-company.form-control(ignite-on-enter-focus-move='profile-country' type='text' ng-model='user.company' placeholder='Input company name' required)
- .details-row
- +lbl('Country:')
- .col-xs-5.col-sm-4
- button#profile-country.select-toggle.form-control(bs-select bs-options='item.name as item.name for item in countries' type='text' ng-model='user.country' placeholder='Choose your country' ng-required='true')
- .details-row
- .advanced-options
- i.fa(
- ng-click='toggleToken()'
- ng-class='expandedToken ? "fa-chevron-circle-down" : "fa-chevron-circle-right"')
- a(ng-click='toggleToken()') {{expandedToken ? 'Cancel security token changing...' : 'Show security token...'}}
- div(ng-if='expandedToken')
- +lbl('Security token:')
- label {{user.token || 'No security token. Regenerate please.'}}
- i.tipLabel.fa.fa-refresh(ng-click='generateToken()' bs-tooltip='' data-title='Generate random security token')
- i.tipLabel.fa.fa-clipboard(ignite-copy-to-clipboard='{{user.token}}' bs-tooltip='' data-title='Copy security token to clipboard')
- i.tipLabel.icon-help(ng-if=lines bs-tooltip='' data-title='The security token is used for authorization of web agent')
- .details-row
- .advanced-options
- i.fa(
- ng-click='togglePassword()'
- ng-class='expandedPassword ? "fa-chevron-circle-down" : "fa-chevron-circle-right"')
- a(ng-click='togglePassword()') {{expandedPassword ? 'Cancel password changing...' : 'Change password...'}}
- div(ng-if='expandedPassword')
- .details-row
- +lbl('New password:')
- .col-xs-5.col-sm-4
- input#profile_password.form-control(ignite-on-enter-focus-move='profile_confirm' type='password' ng-model='user.password' placeholder='New password')
- .details-row
- +lbl('Confirm:')
- .col-xs-5.col-sm-4
- input#profile_confirm.form-control(type='password' ng-model='user.confirm' ignite-match='user.password' placeholder='Confirm new password')
- .col-xs-12.col-sm-12.details-row
- a.btn.btn-primary(ng-disabled='!profileCouldBeSaved()' ng-click='profileCouldBeSaved() && saveUser()' bs-tooltip='' data-title='{{saveBtnTipText()}}' data-placement='bottom' data-trigger='hover') Save
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/settings/profile.tpl.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/settings/profile.tpl.pug b/modules/web-console/frontend/views/settings/profile.tpl.pug
new file mode 100644
index 0000000..6f91f8f
--- /dev/null
+++ b/modules/web-console/frontend/views/settings/profile.tpl.pug
@@ -0,0 +1,76 @@
+//-
+ 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.
+
+mixin lbl(txt)
+ label.col-sm-2.required.labelFormField #{txt}
+
+.row(ng-controller='profileController')
+ .docs-content.greedy
+ .docs-header
+ h1 User profile
+ hr
+ .docs-body
+ form.form-horizontal(name='profileForm' novalidate)
+ .col-sm-10(style='padding: 0')
+ .details-row
+ +lbl('First name:')
+ .col-xs-5.col-sm-4
+ input#profile-firstname.form-control(ignite-on-enter-focus-move='profile-lastname' type='text' ng-model='user.firstName' placeholder='Input first name' required ignite-auto-focus)
+ .details-row
+ +lbl('Last name:')
+ .col-xs-5.col-sm-4
+ input#profile-lastname.form-control(ignite-on-enter-focus-move='profile-email' type='text' ng-model='user.lastName' placeholder='Input last name' required)
+ .details-row
+ +lbl('Email:')
+ .col-xs-5.col-sm-4
+ input#profile-email.form-control(ignite-on-enter-focus-move='profile-company' type='email' ng-model='user.email' placeholder='Input email' required)
+ .details-row
+ +lbl('Company:')
+ .col-xs-5.col-sm-4
+ input#profile-company.form-control(ignite-on-enter-focus-move='profile-country' type='text' ng-model='user.company' placeholder='Input company name' required)
+ .details-row
+ +lbl('Country:')
+ .col-xs-5.col-sm-4
+ button#profile-country.select-toggle.form-control(bs-select bs-options='item.name as item.name for item in countries' type='text' ng-model='user.country' placeholder='Choose your country' ng-required='true')
+ .details-row
+ .advanced-options
+ i.fa(
+ ng-click='toggleToken()'
+ ng-class='expandedToken ? "fa-chevron-circle-down" : "fa-chevron-circle-right"')
+ a(ng-click='toggleToken()') {{expandedToken ? 'Cancel security token changing...' : 'Show security token...'}}
+ div(ng-if='expandedToken')
+ +lbl('Security token:')
+ label {{user.token || 'No security token. Regenerate please.'}}
+ i.tipLabel.fa.fa-refresh(ng-click='generateToken()' bs-tooltip='' data-title='Generate random security token')
+ i.tipLabel.fa.fa-clipboard(ignite-copy-to-clipboard='{{user.token}}' bs-tooltip='' data-title='Copy security token to clipboard')
+ i.tipLabel.icon-help(ng-if=lines bs-tooltip='' data-title='The security token is used for authorization of web agent')
+ .details-row
+ .advanced-options
+ i.fa(
+ ng-click='togglePassword()'
+ ng-class='expandedPassword ? "fa-chevron-circle-down" : "fa-chevron-circle-right"')
+ a(ng-click='togglePassword()') {{expandedPassword ? 'Cancel password changing...' : 'Change password...'}}
+ div(ng-if='expandedPassword')
+ .details-row
+ +lbl('New password:')
+ .col-xs-5.col-sm-4
+ input#profile_password.form-control(ignite-on-enter-focus-move='profile_confirm' type='password' ng-model='user.password' placeholder='New password')
+ .details-row
+ +lbl('Confirm:')
+ .col-xs-5.col-sm-4
+ input#profile_confirm.form-control(type='password' ng-model='user.confirm' ignite-match='user.password' placeholder='Confirm new password')
+ .col-xs-12.col-sm-12.details-row
+ a.btn.btn-primary(ng-disabled='!profileCouldBeSaved()' ng-click='profileCouldBeSaved() && saveUser()' bs-tooltip='' data-title='{{saveBtnTipText()}}' data-placement='bottom' data-trigger='hover') Save
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/signin.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/signin.jade b/modules/web-console/frontend/views/signin.jade
deleted file mode 100644
index a6c64a8..0000000
--- a/modules/web-console/frontend/views/signin.jade
+++ /dev/null
@@ -1,163 +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.
-
-mixin lblRequired(txt)
- label.col-xs-3.col-md-3.required #{txt}
-
-header#header.header
- table.container
- tr
- td.col-xs-3.col-sm-3.col-md-2
- ignite-header-logo
- td
- ignite-header-title
-
-.container.body-container
- .main-content(ng-controller='auth')
- .row.home
- .signin-greedy
- .col-xs-12.col-md-6
- form(name='form' novalidate)
- .modal-body.row(style='padding: 0 0 10px 0; margin: 0')
- .settings-row(ng-if='action == "signup"')
- h3.login-header Sign Up
- .settings-row(ng-if='action == "signin"')
- h3.login-header Sign In
- .settings-row(ng-if='action == "password/forgot"')
- h3.login-header Forgot password?
- .settings-row
- p.col-xs-12.col-md-11(ng-show='action == "password/forgot"')
- | That's ok! Simply enter your email below and a reset password link will be sent to you via email. You can then follow that link and select a new password.
- .settings-row(ng-show='action == "signin"')
- +lblRequired('Email:')
- .col-xs-9.col-md-8
- input#signin_email.form-control(ignite-on-enter-focus-move='user_password' type='email' ng-model='ui.email' placeholder='Input email' required)
- .settings-row(ng-show='action == "signup"')
- +lblRequired('Email:')
- .col-xs-9.col-md-8
- input#signup_email.form-control(ignite-on-enter-focus-move='user_password' type='email' ng-model='ui.email' placeholder='Input email' required)
- .settings-row(ng-show='action != "password/forgot"')
- +lblRequired('Password:')
- .col-xs-9.col-md-8
- input#user_password.form-control(ignite-on-enter-focus-move='user_confirm' type='password' ng-model='ui.password' placeholder='Password' ng-required='action != "password/forgot"' ignite-on-enter='action == "signin" && form.$valid && auth(action, ui)')
- .settings-row(ng-if='action == "signup"')
- +lblRequired('Confirm:')
- .col-xs-9.col-md-8
- input#user_confirm.form-control(ignite-on-enter-focus-move='first_name' type='password' ng-model='ui_exclude.confirm' ignite-match='ui.password' placeholder='Confirm password' ng-required='action == "signup"')
- .settings-row(ng-show='action == "signup"')
- +lblRequired('First Name:')
- .col-xs-9.col-md-8
- input#first_name.form-control(ignite-on-enter-focus-move='last_name' type='text' ng-model='ui.firstName' placeholder='Input first name' ng-required='action=="signup"')
- .settings-row(ng-show='action == "signup"')
- +lblRequired('Last Name:')
- .col-xs-9.col-md-8
- input#last_name.form-control(ignite-on-enter-focus-move='company' type='text' ng-model='ui.lastName' placeholder='Input last name' ng-required='action=="signup"')
- .settings-row(ng-show='action == "password/forgot"')
- +lblRequired('Email:')
- .col-xs-9.col-md-8
- input#forgot_email.form-control(ignite-on-enter='form.$valid && forgotPassword(ui)' type='email' ng-model='ui.email' placeholder='Input email' required)
- .settings-row(ng-show='action == "signup"')
- +lblRequired('Company:')
- .col-xs-9.col-md-8
- input#company.form-control(ignite-on-enter-focus-move='country' type='text' ng-model='ui.company' placeholder='Input company name' ng-required='action=="signup"')
- .settings-row(ng-show='action == "signup"')
- +lblRequired('Country:')
- .col-xs-9.col-md-8
- button#country.select-toggle.form-control(ignite-on-enter-focus-move='signup' bs-select bs-options='item.name as item.name for item in countries' type='text' ng-model='ui.country' placeholder='Choose your country' ng-required='action=="signup"')
- .settings-row(ignite-terms)
- .col-md-offset-3(ng-if='action == "signup" && terms.termsState')
- label
- input(type='checkbox' ng-model='ui_exclude.agree', ng-required='true')
- | I agree to the #[a(ui-sref='{{::terms.termsState}}' target='_blank') terms and conditions]
- .col-xs-12.col-md-11
- .login-footer(ng-show='action == "signup"')
- a.labelField(ng-click='action = "password/forgot"' ignite-on-click-focus='signin_email') Forgot password?
- a.labelLogin(ng-click='action = "signin"' ignite-on-click-focus='signin_email') Sign In
- button#signup.btn.btn-primary(ng-click='auth(action, ui)' ng-disabled='form.$invalid') Sign Up
- .col-xs-12.col-md-11
- .login-footer(ng-show='action == "password/forgot"')
- a.labelField(ng-click='action = "signin"' ignite-on-click-focus='signin_email') Sign In
- button#forgot.btn.btn-primary(ng-click='forgotPassword(ui)' ng-disabled='form.$invalid') Send it to me
- .col-xs-12.col-md-11
- .login-footer(ng-show='action == "signin"')
- a.labelField(ng-click='action = "password/forgot"' ignite-on-click-focus='signin_email') Forgot password?
- a.labelLogin(ng-click='action = "signup"' ignite-on-click-focus='first_name') Sign Up
- button#login.btn.btn-primary(ng-click='auth(action, ui)' ng-disabled='form.$invalid') Sign In
-
- .col-xs-12.col-md-11.home-panel
- ignite-features
- .col-xs-12.col-md-6
- #carousel.carousel.slide
- // Indicators
- ol.carousel-indicators
- li.active(data-target='#carousel', data-slide-to='0')
- li(data-target='#carousel', data-slide-to='1')
- li(data-target='#carousel', data-slide-to='2')
- li(data-target='#carousel', data-slide-to='3')
- li(data-target='#carousel', data-slide-to='4')
- li(data-target='#carousel', data-slide-to='5')
- li(data-target='#carousel', data-slide-to='6')
- // Wrapper for slides
- .carousel-inner(role='listbox')
- .item.active
- img(src='/images/cluster.png', alt='Clusters screen')
- .carousel-caption
- h3 Clusters screen
- p Configure clusters, link clusters to caches
- .item
- img(src='/images/cache.png', alt='Caches screen')
- .carousel-caption
- h3 Caches screen
- p Configure caches, link domain models to caches, link caches to clusters
- .item
- img(src='/images/domains.png', alt='Domain model screen')
- .carousel-caption
- h3 Domain model screen
- p Manually enter domain model or import from database
- .item
- img(src='/images/summary.png', alt='Summary screen')
- .carousel-caption
- h3 Summary screen
- p Preview XML config, JAVA code,Docker file and download project
- .item
- img(src='/images/query-table.png', alt='Query')
- .carousel-caption
- h3 Query
- p Explain SQL, execute, scan queries
- .item
- img(src='/images/query-metadata.png', alt='Cache metadata')
- .carousel-caption
- h3 Cache metadata
- p View cache type metadata
- .item
- img(src='/images/query-chart.png', alt='Query chart')
- .carousel-caption
- h3 Query chart
- p View data in tabular form and as charts
- // Controls
- a.left.carousel-control(href='#carousel', ng-click='$event.preventDefault()', role='button', data-slide='prev')
- span.fa.fa-chevron-left(aria-hidden='true')
- span.sr-only Previous
- a.right.carousel-control(href='#carousel', ng-click='$event.preventDefault()', role='button', data-slide='next')
- span.fa.fa-chevron-right(aria-hidden='true')
- span.sr-only Next
-
-include includes/footer
-
-script.
- $('.carousel').carousel()
-
-
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/signin.tpl.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/signin.tpl.pug b/modules/web-console/frontend/views/signin.tpl.pug
new file mode 100644
index 0000000..a6c64a8
--- /dev/null
+++ b/modules/web-console/frontend/views/signin.tpl.pug
@@ -0,0 +1,163 @@
+//-
+ 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.
+
+mixin lblRequired(txt)
+ label.col-xs-3.col-md-3.required #{txt}
+
+header#header.header
+ table.container
+ tr
+ td.col-xs-3.col-sm-3.col-md-2
+ ignite-header-logo
+ td
+ ignite-header-title
+
+.container.body-container
+ .main-content(ng-controller='auth')
+ .row.home
+ .signin-greedy
+ .col-xs-12.col-md-6
+ form(name='form' novalidate)
+ .modal-body.row(style='padding: 0 0 10px 0; margin: 0')
+ .settings-row(ng-if='action == "signup"')
+ h3.login-header Sign Up
+ .settings-row(ng-if='action == "signin"')
+ h3.login-header Sign In
+ .settings-row(ng-if='action == "password/forgot"')
+ h3.login-header Forgot password?
+ .settings-row
+ p.col-xs-12.col-md-11(ng-show='action == "password/forgot"')
+ | That's ok! Simply enter your email below and a reset password link will be sent to you via email. You can then follow that link and select a new password.
+ .settings-row(ng-show='action == "signin"')
+ +lblRequired('Email:')
+ .col-xs-9.col-md-8
+ input#signin_email.form-control(ignite-on-enter-focus-move='user_password' type='email' ng-model='ui.email' placeholder='Input email' required)
+ .settings-row(ng-show='action == "signup"')
+ +lblRequired('Email:')
+ .col-xs-9.col-md-8
+ input#signup_email.form-control(ignite-on-enter-focus-move='user_password' type='email' ng-model='ui.email' placeholder='Input email' required)
+ .settings-row(ng-show='action != "password/forgot"')
+ +lblRequired('Password:')
+ .col-xs-9.col-md-8
+ input#user_password.form-control(ignite-on-enter-focus-move='user_confirm' type='password' ng-model='ui.password' placeholder='Password' ng-required='action != "password/forgot"' ignite-on-enter='action == "signin" && form.$valid && auth(action, ui)')
+ .settings-row(ng-if='action == "signup"')
+ +lblRequired('Confirm:')
+ .col-xs-9.col-md-8
+ input#user_confirm.form-control(ignite-on-enter-focus-move='first_name' type='password' ng-model='ui_exclude.confirm' ignite-match='ui.password' placeholder='Confirm password' ng-required='action == "signup"')
+ .settings-row(ng-show='action == "signup"')
+ +lblRequired('First Name:')
+ .col-xs-9.col-md-8
+ input#first_name.form-control(ignite-on-enter-focus-move='last_name' type='text' ng-model='ui.firstName' placeholder='Input first name' ng-required='action=="signup"')
+ .settings-row(ng-show='action == "signup"')
+ +lblRequired('Last Name:')
+ .col-xs-9.col-md-8
+ input#last_name.form-control(ignite-on-enter-focus-move='company' type='text' ng-model='ui.lastName' placeholder='Input last name' ng-required='action=="signup"')
+ .settings-row(ng-show='action == "password/forgot"')
+ +lblRequired('Email:')
+ .col-xs-9.col-md-8
+ input#forgot_email.form-control(ignite-on-enter='form.$valid && forgotPassword(ui)' type='email' ng-model='ui.email' placeholder='Input email' required)
+ .settings-row(ng-show='action == "signup"')
+ +lblRequired('Company:')
+ .col-xs-9.col-md-8
+ input#company.form-control(ignite-on-enter-focus-move='country' type='text' ng-model='ui.company' placeholder='Input company name' ng-required='action=="signup"')
+ .settings-row(ng-show='action == "signup"')
+ +lblRequired('Country:')
+ .col-xs-9.col-md-8
+ button#country.select-toggle.form-control(ignite-on-enter-focus-move='signup' bs-select bs-options='item.name as item.name for item in countries' type='text' ng-model='ui.country' placeholder='Choose your country' ng-required='action=="signup"')
+ .settings-row(ignite-terms)
+ .col-md-offset-3(ng-if='action == "signup" && terms.termsState')
+ label
+ input(type='checkbox' ng-model='ui_exclude.agree', ng-required='true')
+ | I agree to the #[a(ui-sref='{{::terms.termsState}}' target='_blank') terms and conditions]
+ .col-xs-12.col-md-11
+ .login-footer(ng-show='action == "signup"')
+ a.labelField(ng-click='action = "password/forgot"' ignite-on-click-focus='signin_email') Forgot password?
+ a.labelLogin(ng-click='action = "signin"' ignite-on-click-focus='signin_email') Sign In
+ button#signup.btn.btn-primary(ng-click='auth(action, ui)' ng-disabled='form.$invalid') Sign Up
+ .col-xs-12.col-md-11
+ .login-footer(ng-show='action == "password/forgot"')
+ a.labelField(ng-click='action = "signin"' ignite-on-click-focus='signin_email') Sign In
+ button#forgot.btn.btn-primary(ng-click='forgotPassword(ui)' ng-disabled='form.$invalid') Send it to me
+ .col-xs-12.col-md-11
+ .login-footer(ng-show='action == "signin"')
+ a.labelField(ng-click='action = "password/forgot"' ignite-on-click-focus='signin_email') Forgot password?
+ a.labelLogin(ng-click='action = "signup"' ignite-on-click-focus='first_name') Sign Up
+ button#login.btn.btn-primary(ng-click='auth(action, ui)' ng-disabled='form.$invalid') Sign In
+
+ .col-xs-12.col-md-11.home-panel
+ ignite-features
+ .col-xs-12.col-md-6
+ #carousel.carousel.slide
+ // Indicators
+ ol.carousel-indicators
+ li.active(data-target='#carousel', data-slide-to='0')
+ li(data-target='#carousel', data-slide-to='1')
+ li(data-target='#carousel', data-slide-to='2')
+ li(data-target='#carousel', data-slide-to='3')
+ li(data-target='#carousel', data-slide-to='4')
+ li(data-target='#carousel', data-slide-to='5')
+ li(data-target='#carousel', data-slide-to='6')
+ // Wrapper for slides
+ .carousel-inner(role='listbox')
+ .item.active
+ img(src='/images/cluster.png', alt='Clusters screen')
+ .carousel-caption
+ h3 Clusters screen
+ p Configure clusters, link clusters to caches
+ .item
+ img(src='/images/cache.png', alt='Caches screen')
+ .carousel-caption
+ h3 Caches screen
+ p Configure caches, link domain models to caches, link caches to clusters
+ .item
+ img(src='/images/domains.png', alt='Domain model screen')
+ .carousel-caption
+ h3 Domain model screen
+ p Manually enter domain model or import from database
+ .item
+ img(src='/images/summary.png', alt='Summary screen')
+ .carousel-caption
+ h3 Summary screen
+ p Preview XML config, JAVA code,Docker file and download project
+ .item
+ img(src='/images/query-table.png', alt='Query')
+ .carousel-caption
+ h3 Query
+ p Explain SQL, execute, scan queries
+ .item
+ img(src='/images/query-metadata.png', alt='Cache metadata')
+ .carousel-caption
+ h3 Cache metadata
+ p View cache type metadata
+ .item
+ img(src='/images/query-chart.png', alt='Query chart')
+ .carousel-caption
+ h3 Query chart
+ p View data in tabular form and as charts
+ // Controls
+ a.left.carousel-control(href='#carousel', ng-click='$event.preventDefault()', role='button', data-slide='prev')
+ span.fa.fa-chevron-left(aria-hidden='true')
+ span.sr-only Previous
+ a.right.carousel-control(href='#carousel', ng-click='$event.preventDefault()', role='button', data-slide='next')
+ span.fa.fa-chevron-right(aria-hidden='true')
+ span.sr-only Next
+
+include includes/footer
+
+script.
+ $('.carousel').carousel()
+
+
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/sql/cache-metadata.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/sql/cache-metadata.jade b/modules/web-console/frontend/views/sql/cache-metadata.jade
deleted file mode 100644
index 385960a..0000000
--- a/modules/web-console/frontend/views/sql/cache-metadata.jade
+++ /dev/null
@@ -1,40 +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.cache-metadata(tabindex='-1' ignite-loading='loadingCacheMetadata' ignite-loading-text='Loading metadata...' ng-init='importMetadata()')
- h3.popover-title
- label.labelField Metadata for caches:
- button.close(id='cache-metadata-close' ng-click='$hide()') ×
- .input-tip
- input.form-control(type='text' ng-model='metaFilter' placeholder='Filter metadata...')
- .popover-content(ng-if='metadata && metadata.length > 0')
- treecontrol.tree-classic(tree-model='metadata' options='metaOptions' filter-expression='metaFilter')
- span(ng-switch='node.type')
- span(ng-switch-when='type' ng-dblclick='dblclickMetadata(paragraph, node)')
- i.fa.fa-table
- label.clickable(ng-bind='node.displayName')
- span(ng-switch-when='plain')
- label {{node.name}}
- span(ng-switch-when='field' ng-dblclick='dblclickMetadata(paragraph, node)')
- i.fa(ng-class='node.system ? "fa-file-text-o" : "fa-file-o"')
- label.clickable {{node.name}} [{{node.clazz}}]
- label(ng-switch-when='indexes') {{node.name}}
- label(ng-switch-when='index') {{node.name}}
- span(ng-switch-when='index-field' ng-dblclick='dblclickMetadata(paragraph, node)')
- i.fa(ng-class='node.order ? "fa-sort-amount-desc" : "fa-sort-amount-asc"')
- label.clickable {{node.name}}
- .popover-content(ng-if='!metadata || metadata.length == 0')
- label.content-empty No types found
- h3.popover-footer Double click to paste into editor
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/sql/cache-metadata.tpl.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/sql/cache-metadata.tpl.pug b/modules/web-console/frontend/views/sql/cache-metadata.tpl.pug
new file mode 100644
index 0000000..385960a
--- /dev/null
+++ b/modules/web-console/frontend/views/sql/cache-metadata.tpl.pug
@@ -0,0 +1,40 @@
+//-
+ 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.cache-metadata(tabindex='-1' ignite-loading='loadingCacheMetadata' ignite-loading-text='Loading metadata...' ng-init='importMetadata()')
+ h3.popover-title
+ label.labelField Metadata for caches:
+ button.close(id='cache-metadata-close' ng-click='$hide()') ×
+ .input-tip
+ input.form-control(type='text' ng-model='metaFilter' placeholder='Filter metadata...')
+ .popover-content(ng-if='metadata && metadata.length > 0')
+ treecontrol.tree-classic(tree-model='metadata' options='metaOptions' filter-expression='metaFilter')
+ span(ng-switch='node.type')
+ span(ng-switch-when='type' ng-dblclick='dblclickMetadata(paragraph, node)')
+ i.fa.fa-table
+ label.clickable(ng-bind='node.displayName')
+ span(ng-switch-when='plain')
+ label {{node.name}}
+ span(ng-switch-when='field' ng-dblclick='dblclickMetadata(paragraph, node)')
+ i.fa(ng-class='node.system ? "fa-file-text-o" : "fa-file-o"')
+ label.clickable {{node.name}} [{{node.clazz}}]
+ label(ng-switch-when='indexes') {{node.name}}
+ label(ng-switch-when='index') {{node.name}}
+ span(ng-switch-when='index-field' ng-dblclick='dblclickMetadata(paragraph, node)')
+ i.fa(ng-class='node.order ? "fa-sort-amount-desc" : "fa-sort-amount-asc"')
+ label.clickable {{node.name}}
+ .popover-content(ng-if='!metadata || metadata.length == 0')
+ label.content-empty No types found
+ h3.popover-footer Double click to paste into editor
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/sql/chart-settings.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/sql/chart-settings.jade b/modules/web-console/frontend/views/sql/chart-settings.jade
deleted file mode 100644
index 5a1ceed..0000000
--- a/modules/web-console/frontend/views/sql/chart-settings.jade
+++ /dev/null
@@ -1,40 +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.settings(tabindex='-1' style='width: 300px')
- .arrow
- h3.popover-title(style='color: black') Chart settings
- button.close(id='chart-settings-close' ng-click='$hide()') ×
- .popover-content
- form.form-horizontal.chart-settings(name='chartSettingsForm' novalidate)
- .form-group.chart-settings
- -var btnClass = 'col.value < 0 ? "btn-success" : "btn-default"'
-
- label All columns (drag columns to axis)
- ul.chart-settings-columns-list(dnd-list='paragraph.chartColumns' dnd-allowed-types='[]')
- li(ng-repeat='col in paragraph.chartColumns track by $index')
- .btn.btn-default.btn-chart-column-movable(ng-class=btnClass dnd-draggable='col' dnd-effect-allowed='copy') {{col.label}}
- label X axis (accept only one column)
- ul.chart-settings-columns-list(dnd-list='paragraph.chartKeyCols' dnd-drop='chartAcceptKeyColumn(paragraph, item)')
- li(ng-repeat='col in paragraph.chartKeyCols track by $index')
- .btn.btn-default.btn-chart-column(ng-class=btnClass) {{col.label}}
- i.fa.fa-close(ng-click='chartRemoveKeyColumn(paragraph, $index)')
- label Y axis (accept only numeric columns)
- ul.chart-settings-columns-list(dnd-list='paragraph.chartValCols' dnd-drop='chartAcceptValColumn(paragraph, item)')
- li(ng-repeat='col in paragraph.chartValCols track by $index')
- .btn.btn-default.btn-chart-column(ng-style='chartColor($index)') {{col.label}}
- button.btn-chart-column-agg-fx.select-toggle(ng-change='applyChartSettings(paragraph)' ng-show='paragraphTimeSpanVisible(paragraph)' ng-style='chartColor($index)' ng-model='col.aggFx' placeholder='...' bs-select bs-options='item for item in aggregateFxs' data-container='false' tabindex='-1')
- i.fa.fa-close(ng-click='chartRemoveValColumn(paragraph, $index)')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/sql/chart-settings.tpl.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/sql/chart-settings.tpl.pug b/modules/web-console/frontend/views/sql/chart-settings.tpl.pug
new file mode 100644
index 0000000..5a1ceed
--- /dev/null
+++ b/modules/web-console/frontend/views/sql/chart-settings.tpl.pug
@@ -0,0 +1,40 @@
+//-
+ 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.settings(tabindex='-1' style='width: 300px')
+ .arrow
+ h3.popover-title(style='color: black') Chart settings
+ button.close(id='chart-settings-close' ng-click='$hide()') ×
+ .popover-content
+ form.form-horizontal.chart-settings(name='chartSettingsForm' novalidate)
+ .form-group.chart-settings
+ -var btnClass = 'col.value < 0 ? "btn-success" : "btn-default"'
+
+ label All columns (drag columns to axis)
+ ul.chart-settings-columns-list(dnd-list='paragraph.chartColumns' dnd-allowed-types='[]')
+ li(ng-repeat='col in paragraph.chartColumns track by $index')
+ .btn.btn-default.btn-chart-column-movable(ng-class=btnClass dnd-draggable='col' dnd-effect-allowed='copy') {{col.label}}
+ label X axis (accept only one column)
+ ul.chart-settings-columns-list(dnd-list='paragraph.chartKeyCols' dnd-drop='chartAcceptKeyColumn(paragraph, item)')
+ li(ng-repeat='col in paragraph.chartKeyCols track by $index')
+ .btn.btn-default.btn-chart-column(ng-class=btnClass) {{col.label}}
+ i.fa.fa-close(ng-click='chartRemoveKeyColumn(paragraph, $index)')
+ label Y axis (accept only numeric columns)
+ ul.chart-settings-columns-list(dnd-list='paragraph.chartValCols' dnd-drop='chartAcceptValColumn(paragraph, item)')
+ li(ng-repeat='col in paragraph.chartValCols track by $index')
+ .btn.btn-default.btn-chart-column(ng-style='chartColor($index)') {{col.label}}
+ button.btn-chart-column-agg-fx.select-toggle(ng-change='applyChartSettings(paragraph)' ng-show='paragraphTimeSpanVisible(paragraph)' ng-style='chartColor($index)' ng-model='col.aggFx' placeholder='...' bs-select bs-options='item for item in aggregateFxs' data-container='false' tabindex='-1')
+ i.fa.fa-close(ng-click='chartRemoveValColumn(paragraph, $index)')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/sql/notebook-new.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/sql/notebook-new.jade b/modules/web-console/frontend/views/sql/notebook-new.jade
deleted file mode 100644
index 9585e92..0000000
--- a/modules/web-console/frontend/views/sql/notebook-new.jade
+++ /dev/null
@@ -1,33 +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.
-
-.modal(tabindex='-1' role='dialog')
- .modal-dialog
- .modal-content
- .modal-header
- button.close(ng-click='$hide()') ×
- h4.modal-title
- i.fa.fa-file-o
- | New query notebook
- form.form-horizontal.modal-body.row(name='ui.inputForm' novalidate)
- div
- .col-sm-2
- label.required.labelFormField Name:
- .col-sm-10
- input.form-control(id='create-notebook' type='text' ng-model='name' required ignite-on-enter='ui.inputForm.$valid && create(name)' ignite-auto-focus)
- .modal-footer
- button.btn.btn-default(id='copy-btn-cancel' ng-click='$hide()') Cancel
- button.btn.btn-primary(id='copy-btn-confirm' ng-disabled='ui.inputForm.$invalid' ng-click='create(name)') Create
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/sql/notebook-new.tpl.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/sql/notebook-new.tpl.pug b/modules/web-console/frontend/views/sql/notebook-new.tpl.pug
new file mode 100644
index 0000000..9585e92
--- /dev/null
+++ b/modules/web-console/frontend/views/sql/notebook-new.tpl.pug
@@ -0,0 +1,33 @@
+//-
+ 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.
+
+.modal(tabindex='-1' role='dialog')
+ .modal-dialog
+ .modal-content
+ .modal-header
+ button.close(ng-click='$hide()') ×
+ h4.modal-title
+ i.fa.fa-file-o
+ | New query notebook
+ form.form-horizontal.modal-body.row(name='ui.inputForm' novalidate)
+ div
+ .col-sm-2
+ label.required.labelFormField Name:
+ .col-sm-10
+ input.form-control(id='create-notebook' type='text' ng-model='name' required ignite-on-enter='ui.inputForm.$valid && create(name)' ignite-auto-focus)
+ .modal-footer
+ button.btn.btn-default(id='copy-btn-cancel' ng-click='$hide()') Cancel
+ button.btn.btn-primary(id='copy-btn-confirm' ng-disabled='ui.inputForm.$invalid' ng-click='create(name)') Create
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/sql/paragraph-rate.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/sql/paragraph-rate.jade b/modules/web-console/frontend/views/sql/paragraph-rate.jade
deleted file mode 100644
index 03c6497..0000000
--- a/modules/web-console/frontend/views/sql/paragraph-rate.jade
+++ /dev/null
@@ -1,31 +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.settings(tabindex='-1' style='width: 200px')
- .arrow
- h3.popover-title(style='color: black') Refresh rate
- button.close(id='paragraph-rate-close' ng-click='$hide()') ×
- .popover-content
- form(name='popoverForm' novalidate)
- .form-group(style='padding: 5px')
- .col-sm-4
- input.form-control(id='paragraph-rate' ng-init='value = paragraph.rate.value' ng-model='value' type='number' min='1' required ignite-auto-focus)
- .col-sm-8(style='padding-left: 5px')
- button.form-control.select-toggle(id='paragraph-unit' ng-init='unit = paragraph.rate.unit' ng-model='unit' required placeholder='Time unit' bs-select bs-options='item.value as item.label for item in timeUnit' data-container='false' tabindex='0')
- .form-actions(style='margin-top: 30px; padding: 5px')
- button.btn.btn-primary(id='paragraph-rate-start' ng-disabled='popoverForm.$invalid' ng-click='startRefresh(paragraph, value, unit); $hide()') Start
- button.btn.btn-primary.btn-default(id='paragraph-rate-stop' ng-click='stopRefresh(paragraph); $hide()' ng-disabled='!paragraph.rate.installed') Stop
-
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/sql/paragraph-rate.tpl.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/sql/paragraph-rate.tpl.pug b/modules/web-console/frontend/views/sql/paragraph-rate.tpl.pug
new file mode 100644
index 0000000..03c6497
--- /dev/null
+++ b/modules/web-console/frontend/views/sql/paragraph-rate.tpl.pug
@@ -0,0 +1,31 @@
+//-
+ 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.settings(tabindex='-1' style='width: 200px')
+ .arrow
+ h3.popover-title(style='color: black') Refresh rate
+ button.close(id='paragraph-rate-close' ng-click='$hide()') ×
+ .popover-content
+ form(name='popoverForm' novalidate)
+ .form-group(style='padding: 5px')
+ .col-sm-4
+ input.form-control(id='paragraph-rate' ng-init='value = paragraph.rate.value' ng-model='value' type='number' min='1' required ignite-auto-focus)
+ .col-sm-8(style='padding-left: 5px')
+ button.form-control.select-toggle(id='paragraph-unit' ng-init='unit = paragraph.rate.unit' ng-model='unit' required placeholder='Time unit' bs-select bs-options='item.value as item.label for item in timeUnit' data-container='false' tabindex='0')
+ .form-actions(style='margin-top: 30px; padding: 5px')
+ button.btn.btn-primary(id='paragraph-rate-start' ng-disabled='popoverForm.$invalid' ng-click='startRefresh(paragraph, value, unit); $hide()') Start
+ button.btn.btn-primary.btn-default(id='paragraph-rate-stop' ng-click='stopRefresh(paragraph); $hide()' ng-disabled='!paragraph.rate.installed') Stop
+
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/sql/sql.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/sql/sql.jade b/modules/web-console/frontend/views/sql/sql.jade
deleted file mode 100644
index 61d5b30..0000000
--- a/modules/web-console/frontend/views/sql/sql.jade
+++ /dev/null
@@ -1,278 +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.jade
-include /app/components/ui-grid-settings/ui-grid-settings.jade
-
-mixin btn-toolbar(btn, click, tip, focusId)
- i.btn.btn-default.fa(class=btn ng-click=click bs-tooltip='' data-title=tip ignite-on-click-focus=focusId data-trigger='hover' data-placement='bottom')
-
-mixin btn-toolbar-data(btn, kind, tip)
- i.btn.btn-default.fa(class=btn ng-click='setResult(paragraph, "#{kind}")' ng-class='{active: resultEq(paragraph, "#{kind}")}' bs-tooltip='' data-title=tip data-trigger='hover' data-placement='bottom')
-
-mixin result-toolbar
- .btn-group(ng-model='paragraph.result' ng-click='$event.stopPropagation()' style='left: 50%; margin: 0 0 0 -70px;display: block;')
- +btn-toolbar-data('fa-table', 'table', 'Show data in tabular form')
- +btn-toolbar-data('fa-bar-chart', 'bar', 'Show bar chart<br/>By default first column - X values, second column - Y values<br/>In case of one column it will be treated as Y values')
- +btn-toolbar-data('fa-pie-chart', 'pie', 'Show pie chart<br/>By default first column - pie labels, second column - pie values<br/>In case of one column it will be treated as pie values')
- +btn-toolbar-data('fa-line-chart', 'line', 'Show line chart<br/>By default first column - X values, second column - Y values<br/>In case of one column it will be treated as Y values')
- +btn-toolbar-data('fa-area-chart', 'area', 'Show area chart<br/>By default first column - X values, second column - Y values<br/>In case of one column it will be treated as Y values')
-
-mixin chart-settings
- .total.row
- .col-xs-4
- .chart-settings-link(ng-show='paragraph.chart && paragraph.chartColumns.length > 0')
- a(title='Click to show chart settings dialog' ng-click='$event.stopPropagation()' bs-popover data-template-url='/sql/chart-settings.html' data-placement='bottom' data-auto-close='1' data-trigger='click')
- i.fa.fa-bars
- | Chart settings
- div(ng-show='paragraphTimeSpanVisible(paragraph)')
- label Show
- button.select-manual-caret.btn.btn-default(ng-model='paragraph.timeLineSpan' ng-change='applyChartSettings(paragraph)' bs-options='item for item in timeLineSpans' bs-select data-caret-html='<span class="caret"></span>')
- label min
- .col-xs-4
- +result-toolbar
-
-mixin notebook-rename
- .docs-header.notebook-header
- h1.col-sm-6(ng-hide='notebook.edit')
- label(style='max-width: calc(100% - 60px)') {{notebook.name}}
- .btn-group(ng-if='!demo')
- +btn-toolbar('fa-pencil', 'notebook.edit = true;notebook.editName = notebook.name', 'Rename notebook')
- +btn-toolbar('fa-trash', 'removeNotebook(notebook)', 'Remove notebook')
- h1.col-sm-6(ng-show='notebook.edit')
- i.btn.fa.fa-floppy-o(ng-show='notebook.editName' ng-click='renameNotebook(notebook.editName)' bs-tooltip data-title='Save notebook name' data-trigger='hover')
- .input-tip
- input.form-control(ng-model='notebook.editName' required ignite-on-enter='renameNotebook(notebook.editName)' ignite-on-escape='notebook.edit = false;')
- h1.pull-right
- a.dropdown-toggle(style='margin-right: 20px' data-toggle='dropdown' bs-dropdown='scrollParagraphs' data-placement='bottom-right') Scroll to query
- span.caret
- button.btn.btn-default(style='margin-top: 2px' ng-click='addQuery()' ignite-on-click-focus=focusId)
- i.fa.fa-fw.fa-plus
- | Add query
-
- button.btn.btn-default(style='margin-top: 2px' ng-click='addScan()' ignite-on-click-focus=focusId)
- i.fa.fa-fw.fa-plus
- | Add scan
-
-mixin notebook-error
- h2 Failed to load notebook
- label.col-sm-12 Notebook not accessible any more. Go back to configuration or open to another notebook.
- button.h3.btn.btn-primary(ui-sref='base.configuration.clusters') Back to configuration
-
-mixin paragraph-rename
- .col-sm-6(ng-hide='paragraph.edit')
- i.fa(ng-class='paragraphExpanded(paragraph) ? "fa-chevron-circle-down" : "fa-chevron-circle-right"')
- label {{paragraph.name}}
-
- .btn-group(ng-hide='notebook.paragraphs.length > 1')
- +btn-toolbar('fa-pencil', 'paragraph.edit = true; paragraph.editName = paragraph.name; $event.stopPropagation();', 'Rename query', 'paragraph-name-{{paragraph.id}}')
-
- .btn-group(ng-show='notebook.paragraphs.length > 1' ng-click='$event.stopPropagation();')
- +btn-toolbar('fa-pencil', 'paragraph.edit = true; paragraph.editName = paragraph.name;', 'Rename query', 'paragraph-name-{{paragraph.id}}')
- +btn-toolbar('fa-remove', 'removeParagraph(paragraph)', 'Remove query')
-
- .col-sm-6(ng-show='paragraph.edit')
- i.tipLabel.fa(style='float: left;' ng-class='paragraphExpanded(paragraph) ? "fa-chevron-circle-down" : "fa-chevron-circle-right"')
- i.tipLabel.fa.fa-floppy-o(style='float: right;' ng-show='paragraph.editName' ng-click='renameParagraph(paragraph, paragraph.editName); $event.stopPropagation();' bs-tooltip data-title='Save query name' data-trigger='hover')
- .input-tip
- input.form-control(id='paragraph-name-{{paragraph.id}}' ng-model='paragraph.editName' required ng-click='$event.stopPropagation();' ignite-on-enter='renameParagraph(paragraph, paragraph.editName)' ignite-on-escape='paragraph.edit = false')
-
-mixin query-settings
- label.tipLabel(bs-tooltip data-placement='bottom' data-title='Configure periodical execution of last successfully executed query') Refresh rate:
- button.btn.btn-default.fa.fa-clock-o.tipLabel(ng-class='{"btn-info": paragraph.rate && paragraph.rate.installed}' bs-popover data-template-url='/sql/paragraph-rate.html' data-placement='left' data-auto-close='1' data-trigger='click') {{rateAsString(paragraph)}}
-
- label.tipLabel(bs-tooltip data-placement='bottom' data-title='Max number of rows to show in query result as one page') Page size:
- button.btn.btn-default.select-toggle.tipLabel(ng-model='paragraph.pageSize' bs-select bs-options='item for item in pageSizes')
-
- label.tipLabel(bs-tooltip data-placement='bottom' data-title='Limit query max results to specified number of pages') Max pages:
- button.btn.btn-default.select-toggle.tipLabel(ng-model='paragraph.maxPages' bs-select bs-options='item.value as item.label for item in maxPages')
-
- label.tipLabel(ng-if='nonCollocatedJoinsAvailable(paragraph)' bs-tooltip data-placement='bottom' data-title='Non-collocated joins is a special mode that allow to join data across cluster without collocation.<br/>\
- Nested joins are not supported for now.<br/>\
- <b>NOTE</b>: In some cases it may consume more heap memory or may take a long time than collocated joins.' data-trigger='hover')
- input(type='checkbox' ng-model='paragraph.nonCollocatedJoins')
- span Allow non-collocated joins
-
-mixin query-actions
- button.btn.btn-primary(ng-disabled='!actionAvailable(paragraph, true)' ng-click='execute(paragraph)') Execute
- button.btn.btn-primary(ng-disabled='!actionAvailable(paragraph, true)' ng-click='execute(paragraph, true)') Execute on selected node
-
- a.btn.btn-default(ng-disabled='!actionAvailable(paragraph, true)' ng-click='explain(paragraph)' data-placement='bottom' bs-tooltip='' data-title='{{actionTooltip(paragraph, "explain", true)}}') Explain
-
-mixin table-result-heading-query
- .total.row
- .col-xs-4
- +ui-grid-settings
- label Page: #[b {{paragraph.page}}]
- label.margin-left-dflt Results so far: #[b {{paragraph.rows.length + paragraph.total}}]
- label.margin-left-dflt Duration: #[b {{paragraph.duration | duration}}]
- .col-xs-4
- div(ng-if='paragraph.qryType === "query"')
- +result-toolbar
- .col-xs-4
- .pull-right
- .btn-group(ng-disabled='paragraph.loading')
- button.btn.btn-primary(ng-click='exportCsv(paragraph)' bs-tooltip data-title='{{actionTooltip(paragraph, "export", false)}}') Export
- button.btn.btn-primary.dropdown-toggle(id='export-item-dropdown' data-toggle='dropdown' data-container='body' bs-dropdown='exportDropdown' data-placement='bottom-right')
- span.caret
-
-mixin table-result-heading-scan
- .total.row
- .col-xs-4
- +ui-grid-settings
- label Page: #[b {{paragraph.page}}]
- label.margin-left-dflt Results so far: #[b {{paragraph.rows.length + paragraph.total}}]
- label.margin-left-dflt Duration: #[b {{paragraph.duration | duration}}]
- .col-xs-4
- div(ng-if='paragraph.qryType === "query"')
- +result-toolbar
- .col-xs-4
- .pull-right
- .btn-group(ng-disabled='paragraph.loading')
- button.btn.btn-primary(ng-click='exportCsv(paragraph)' bs-tooltip data-title='{{actionTooltip(paragraph, "export", false)}}') Export
- button.btn.btn-primary.dropdown-toggle(id='export-item-dropdown' data-toggle='dropdown' data-container='body' bs-dropdown='exportDropdown' data-placement='bottom-right')
- span.caret
-
-mixin table-result-body
- .grid(ui-grid='paragraph.gridOptions' ui-grid-resize-columns ui-grid-exporter)
-
-mixin chart-result
- div(ng-hide='paragraph.scanExplain()')
- +chart-settings
- .empty(ng-show='paragraph.chartColumns.length > 0 && !paragraph.chartColumnsConfigured()') Cannot display chart. Please configure axis using #[b Chart settings]
- .empty(ng-show='paragraph.chartColumns.length == 0') Cannot display chart. Result set must contain Java build-in type columns. Please change query and execute it again.
- div(ng-show='paragraph.chartColumnsConfigured()')
- div(ng-show='paragraph.timeLineSupported() || !paragraph.chartTimeLineEnabled()')
- div(ng-repeat='chart in paragraph.charts')
- nvd3(options='chart.options' data='chart.data' api='chart.api')
- .empty(ng-show='!paragraph.timeLineSupported() && paragraph.chartTimeLineEnabled()') Pie chart does not support 'TIME_LINE' column for X-axis. Please use another column for X-axis or switch to another chart.
- .empty(ng-show='paragraph.scanExplain()')
- .row
- .col-xs-4.col-xs-offset-4
- +result-toolbar
- label.margin-top-dflt Charts do not support #[b Explain] and #[b Scan] query
-
-mixin paragraph-scan
- .panel-heading(bs-collapse-toggle)
- .row
- +paragraph-rename
- .panel-collapse(role='tabpanel' bs-collapse-target)
- .col-sm-12.sql-controls
- .col-sm-3
- +dropdown-required('Cache:', 'paragraph.cacheName', '"cache"', 'true', 'false', 'Choose cache', 'caches')
- .col-sm-3
- +text-enabled('Filter:', 'paragraph.filter', '"filter"', true, false, 'Enter filter')
- label.btn.btn-default.ignite-form-field__btn(ng-click='paragraph.caseSensitive = !paragraph.caseSensitive')
- input(type='checkbox' ng-model='paragraph.caseSensitive')
- span(bs-tooltip data-title='Select this checkbox for case sensitive search') Cs
- label.tipLabel(bs-tooltip data-placement='bottom' data-title='Max number of rows to show in query result as one page') Page size:
- button.btn.btn-default.select-toggle.tipLabel(ng-model='paragraph.pageSize' bs-select bs-options='item for item in pageSizes')
-
- .col-sm-12.sql-controls
- button.btn.btn-primary(ng-disabled='!actionAvailable(paragraph, false)' ng-click='scan(paragraph)')
- | Scan
- button.btn.btn-primary(ng-disabled='!actionAvailable(paragraph, false)' ng-click='scan(paragraph, true)')
- | Scan on selected node
-
- .col-sm-12.sql-result(ng-if='paragraph.queryExecuted()' ng-switch='paragraph.resultType()')
- .error(ng-switch-when='error') Error: {{paragraph.errMsg}}
- .empty(ng-switch-when='empty') Result set is empty
- .table(ng-switch-when='table')
- +table-result-heading-scan
- +table-result-body
- .footer.clearfix()
- .pull-left
- | Showing results for scan of #[b {{ paragraph.queryArgs.cacheName | defaultName }}]
- span(ng-if='paragraph.queryArgs.filter') with filter: #[b {{ paragraph.queryArgs.filter }}]
- span(ng-if='paragraph.queryArgs.localNid') on node: #[b {{ paragraph.queryArgs.localNid | limitTo:8 }}]
-
- -var nextVisibleCondition = 'paragraph.resultType() != "error" && paragraph.queryId && paragraph.nonRefresh() && (paragraph.table() || paragraph.chart() && !paragraph.scanExplain())'
-
- .pull-right(ng-show='#{nextVisibleCondition}' ng-class='{disabled: paragraph.loading}' ng-click='!paragraph.loading && nextPage(paragraph)')
- i.fa.fa-chevron-circle-right
- a Next
-
-mixin paragraph-query
- .row.panel-heading(bs-collapse-toggle)
- +paragraph-rename
- .panel-collapse(role='tabpanel' bs-collapse-target)
- .col-sm-12
- .col-xs-8.col-sm-9(style='border-right: 1px solid #eee')
- .sql-editor(ignite-ace='{onLoad: aceInit(paragraph), theme: "chrome", mode: "sql", require: ["ace/ext/language_tools"],' +
- 'advanced: {enableSnippets: false, enableBasicAutocompletion: true, enableLiveAutocompletion: true}}'
- ng-model='paragraph.query')
- .col-xs-4.col-sm-3
- div(ng-show='caches.length > 0' style='padding: 5px 10px' st-table='displayedCaches' st-safe-src='caches')
- lable.labelField.labelFormField Caches:
- i.fa.fa-database.tipField(title='Click to show cache types metadata dialog' bs-popover data-template-url='/sql/cache-metadata.html' data-placement='bottom' data-trigger='click' data-container='#{{ paragraph.id }}')
- .input-tip
- input.form-control(type='text' st-search='label' placeholder='Filter caches...')
- table.links
- tbody.scrollable-y(style='max-height: 15em; display: block;')
- tr(ng-repeat='cache in displayedCaches track by cache.name')
- td(style='width: 100%')
- input.labelField(id='cache_{{ [paragraph.id, $index].join("_") }}' type='radio' value='{{cache.name}}' ng-model='paragraph.cacheName')
- label(for='cache_{{ [paragraph.id, $index].join("_") }} ' ng-bind-html='cache.label')
- .empty-caches(ng-show='displayedCaches.length == 0 && caches.length != 0')
- label Wrong caches filter
- .empty-caches(ng-show='caches.length == 0')
- label No caches
- .col-sm-12.sql-controls
- +query-actions
-
- .pull-right
- +query-settings
- .col-sm-12.sql-result(ng-if='paragraph.queryExecuted()' ng-switch='paragraph.resultType()')
- .error(ng-switch-when='error') Error: {{paragraph.errMsg}}
- .empty(ng-switch-when='empty') Result set is empty
- .table(ng-switch-when='table')
- +table-result-heading-query
- +table-result-body
- .chart(ng-switch-when='chart')
- +chart-result
- .footer.clearfix
- a.pull-left(ng-click='showResultQuery(paragraph)') Show query
-
- -var nextVisibleCondition = 'paragraph.resultType() != "error" && paragraph.queryId && paragraph.nonRefresh() && (paragraph.table() || paragraph.chart() && !paragraph.scanExplain())'
-
- .pull-right(ng-show='#{nextVisibleCondition}' ng-class='{disabled: paragraph.loading}' ng-click='!paragraph.loading && nextPage(paragraph)')
- i.fa.fa-chevron-circle-right
- a Next
-
-.row(ng-controller='sqlController')
- .docs-content
- .row(ng-if='notebook' bs-affix style='margin-bottom: 20px;')
- +notebook-rename
-
- ignite-information(data-title='With query notebook you can' style='margin-top: 0; margin-bottom: 30px')
- ul
- li Create any number of queries
- li Execute and explain SQL queries
- li Execute scan queries
- li View data in tabular form and as charts
-
- div(ng-if='notebookLoadFailed' style='text-align: center')
- +notebook-error
-
- div(ng-if='notebook' ignite-loading='sqlLoading' ignite-loading-text='{{ loadingText }}' ignite-loading-position='top')
- .docs-body.paragraphs
- .panel-group(bs-collapse ng-model='notebook.expandedParagraphs' data-allow-multiple='true' data-start-collapsed='false')
-
- .panel-paragraph(ng-repeat='paragraph in notebook.paragraphs' id='{{paragraph.id}}' ng-form='form_{{paragraph.id}}')
- .panel.panel-default(ng-if='paragraph.qryType === "scan"')
- +paragraph-scan
- .panel.panel-default(ng-if='paragraph.qryType === "query"')
- +paragraph-query
[14/15] ignite git commit: IGNITE-4659 Migration to Webpack 2.
Upgrade template engine from jade to pug.
Posted by an...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/directives/ui-ace-spring/ui-ace-spring.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/directives/ui-ace-spring/ui-ace-spring.jade b/modules/web-console/frontend/app/directives/ui-ace-spring/ui-ace-spring.jade
deleted file mode 100644
index 0dd627a..0000000
--- a/modules/web-console/frontend/app/directives/ui-ace-spring/ui-ace-spring.jade
+++ /dev/null
@@ -1,17 +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.
-
-div(ng-if='ctrl.data' ignite-ace='{onLoad: onLoad, onChange: onChange, mode: "xml"}' ng-model='ctrl.data')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/directives/ui-ace-spring/ui-ace-spring.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/directives/ui-ace-spring/ui-ace-spring.pug b/modules/web-console/frontend/app/directives/ui-ace-spring/ui-ace-spring.pug
new file mode 100644
index 0000000..0dd627a
--- /dev/null
+++ b/modules/web-console/frontend/app/directives/ui-ace-spring/ui-ace-spring.pug
@@ -0,0 +1,17 @@
+//-
+ 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.
+
+div(ng-if='ctrl.data' ignite-ace='{onLoad: onLoad, onChange: onChange, mode: "xml"}' ng-model='ctrl.data')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/helpers/jade/form.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/form.jade b/modules/web-console/frontend/app/helpers/jade/form.jade
deleted file mode 100644
index c0c558d..0000000
--- a/modules/web-console/frontend/app/helpers/jade/form.jade
+++ /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.
-
-include ./form/form-field-feedback.jade
-include ./form/form-field-label.jade
-include ./form/form-field-text.jade
-include ./form/form-field-password.jade
-include ./form/form-field-dropdown.jade
-include ./form/form-field-datalist.jade
-include ./form/form-field-checkbox.jade
-include ./form/form-field-number.jade
-include ./form/form-field-up.jade
-include ./form/form-field-down.jade
-
-include ./form/form-group.jade
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/helpers/jade/form.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/form.pug b/modules/web-console/frontend/app/helpers/jade/form.pug
new file mode 100644
index 0000000..6fddbf6
--- /dev/null
+++ b/modules/web-console/frontend/app/helpers/jade/form.pug
@@ -0,0 +1,28 @@
+//-
+ 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 ./form/form-field-feedback
+include ./form/form-field-label
+include ./form/form-field-text
+include ./form/form-field-password
+include ./form/form-field-dropdown
+include ./form/form-field-datalist
+include ./form/form-field-checkbox
+include ./form/form-field-number
+include ./form/form-field-up
+include ./form/form-field-down
+
+include ./form/form-group
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/helpers/jade/form/form-field-checkbox.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/form/form-field-checkbox.jade b/modules/web-console/frontend/app/helpers/jade/form/form-field-checkbox.jade
deleted file mode 100644
index 222ecfe..0000000
--- a/modules/web-console/frontend/app/helpers/jade/form/form-field-checkbox.jade
+++ /dev/null
@@ -1,38 +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.
-
-mixin form-field-checkbox(label, model, name, disabled, required, tip)
- div.checkbox.col-xs-12.col-sm-12.col-md-12
- label(id='{{ #{name} }}Label')
- .input-tip
- if block
- block
- else
- input(
- id='{{ #{name} }}Input'
- name='{{ #{name} }}'
- type='checkbox'
-
- data-ng-model=model
- data-ng-required=required && '#{required}'
- data-ng-disabled=disabled && '#{disabled}'
-
- data-ng-focus='tableReset()'
-
- data-ignite-form-panel-field=''
- )
- span #{label}
- i.tipLabel.icon-help(bs-tooltip='' data-title=tip)
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/helpers/jade/form/form-field-checkbox.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/form/form-field-checkbox.pug b/modules/web-console/frontend/app/helpers/jade/form/form-field-checkbox.pug
new file mode 100644
index 0000000..68a2dd2
--- /dev/null
+++ b/modules/web-console/frontend/app/helpers/jade/form/form-field-checkbox.pug
@@ -0,0 +1,38 @@
+//-
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+mixin form-field-checkbox(label, model, name, disabled, required, tip)
+ div.checkbox.col-xs-12.col-sm-12.col-md-12
+ label(id=`{{ ${name} }}Label`)
+ .input-tip
+ if block
+ block
+ else
+ input(
+ id=`{{ ${name} }}Input`
+ name=`{{ ${name} }}`
+ type='checkbox'
+
+ data-ng-model=model
+ data-ng-required=required && `${required}`
+ data-ng-disabled=disabled && `${disabled}`
+
+ data-ng-focus='tableReset()'
+
+ data-ignite-form-panel-field=''
+ )
+ span #{label}
+ i.tipLabel.icon-help(bs-tooltip='' data-title=tip)
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/helpers/jade/form/form-field-datalist.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/form/form-field-datalist.jade b/modules/web-console/frontend/app/helpers/jade/form/form-field-datalist.jade
deleted file mode 100644
index 4c1970e..0000000
--- a/modules/web-console/frontend/app/helpers/jade/form/form-field-datalist.jade
+++ /dev/null
@@ -1,51 +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.
-
-mixin form-field-datalist(label, model, name, disabled, required, placeholder, options, tip)
- -var errLbl = label.substring(0, label.length - 1)
-
- mixin form-field-input()
- input.form-control(
- id='{{ #{name} }}Input'
- name='{{ #{name} }}'
- placeholder=placeholder
-
- data-ng-model=model
-
- data-ng-required=required && '#{required}'
- data-ng-disabled=disabled && '#{disabled}' || '!#{options}.length'
-
- bs-typeahead
- bs-options='item for item in #{options}'
- container='body'
- data-min-length='1'
- ignite-retain-selection
-
- data-ignite-form-panel-field=''
- )&attributes(attributes.attributes)
-
- .ignite-form-field
- +ignite-form-field__label(label, name, required)
- .ignite-form-field__control
- i.tipField.fa.icon-help(bs-tooltip='' data-title=tip)
-
- +form-field-feedback(name, 'required', errLbl + ' could not be empty!')
-
- if block
- block
-
- .input-tip
- +form-field-input(attributes=attributes)
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/helpers/jade/form/form-field-datalist.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/form/form-field-datalist.pug b/modules/web-console/frontend/app/helpers/jade/form/form-field-datalist.pug
new file mode 100644
index 0000000..e4b71af
--- /dev/null
+++ b/modules/web-console/frontend/app/helpers/jade/form/form-field-datalist.pug
@@ -0,0 +1,51 @@
+//-
+ 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.
+
+mixin form-field-datalist(label, model, name, disabled, required, placeholder, options, tip)
+ -var errLbl = label.substring(0, label.length - 1)
+
+ mixin form-field-input()
+ input.form-control(
+ id=`{{ ${name} }}Input`
+ name=`{{ ${name} }}`
+ placeholder=placeholder
+
+ data-ng-model=model
+
+ data-ng-required=required && `${required}`
+ data-ng-disabled=disabled && `${disabled}` || `!${options}.length`
+
+ bs-typeahead
+ bs-options=`item for item in ${options}`
+ container='body'
+ data-min-length='1'
+ ignite-retain-selection
+
+ data-ignite-form-panel-field=''
+ )&attributes(attributes.attributes)
+
+ .ignite-form-field
+ +ignite-form-field__label(label, name, required)
+ .ignite-form-field__control
+ i.tipField.fa.icon-help(bs-tooltip='' data-title=tip)
+
+ +form-field-feedback(name, 'required', errLbl + ' could not be empty!')
+
+ if block
+ block
+
+ .input-tip
+ +form-field-input(attributes=attributes)
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/helpers/jade/form/form-field-down.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/form/form-field-down.jade b/modules/web-console/frontend/app/helpers/jade/form/form-field-down.jade
deleted file mode 100644
index cd10ebe..0000000
--- a/modules/web-console/frontend/app/helpers/jade/form/form-field-down.jade
+++ /dev/null
@@ -1,18 +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.
-
-mixin ignite-form-field-down()
- i.tipField.fa.fa-arrow-down(ignite-form-field-down ng-click="$ctrl.down()")&attributes(attributes)
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/helpers/jade/form/form-field-down.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/form/form-field-down.pug b/modules/web-console/frontend/app/helpers/jade/form/form-field-down.pug
new file mode 100644
index 0000000..9361650
--- /dev/null
+++ b/modules/web-console/frontend/app/helpers/jade/form/form-field-down.pug
@@ -0,0 +1,18 @@
+//-
+ 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.
+
+mixin ignite-form-field-down()
+ i.tipField.fa.fa-arrow-down(ignite-form-field-down ng-click='$ctrl.down()')&attributes(attributes)
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/helpers/jade/form/form-field-dropdown.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/form/form-field-dropdown.jade b/modules/web-console/frontend/app/helpers/jade/form/form-field-dropdown.jade
deleted file mode 100644
index 33af6d1..0000000
--- a/modules/web-console/frontend/app/helpers/jade/form/form-field-dropdown.jade
+++ /dev/null
@@ -1,51 +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.
-
-mixin ignite-form-field-dropdown(label, model, name, disabled, required, multiple, placeholder, placeholderEmpty, options, tip)
- mixin form-field-input()
- button.select-toggle.form-control(
- id='{{ #{name} }}Input'
- name='{{ #{name} }}'
-
- data-placeholder=placeholderEmpty ? '{{ #{options}.length > 0 ? "#{placeholder}" : "#{placeholderEmpty}" }}' : placeholder
-
- data-ng-model=model
-
- data-ng-required=required && '#{required}'
- data-ng-disabled=disabled && '#{disabled}' || '!#{options}.length'
-
- bs-select
- bs-options='item.value as item.label for item in #{options}'
-
- data-multiple=multiple ? '1' : false
- data-container='body > .wrapper'
-
- tabindex='0'
-
- data-ignite-form-panel-field=''
- )&attributes(attributes.attributes)
-
- .ignite-form-field
- +ignite-form-field__label(label, name, required)
- .ignite-form-field__control
- if tip
- i.tipField.icon-help(bs-tooltip='' data-title=tip)
-
- if block
- block
-
- .input-tip
- +form-field-input(attributes=attributes)
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/helpers/jade/form/form-field-dropdown.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/form/form-field-dropdown.pug b/modules/web-console/frontend/app/helpers/jade/form/form-field-dropdown.pug
new file mode 100644
index 0000000..d7bd0fd
--- /dev/null
+++ b/modules/web-console/frontend/app/helpers/jade/form/form-field-dropdown.pug
@@ -0,0 +1,51 @@
+//-
+ 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.
+
+mixin ignite-form-field-dropdown(label, model, name, disabled, required, multiple, placeholder, placeholderEmpty, options, tip)
+ mixin form-field-input()
+ button.select-toggle.form-control(
+ id=`{{ ${name} }}Input`
+ name=`{{ ${name} }}`
+
+ data-placeholder=placeholderEmpty ? `{{ ${options}.length > 0 ? '${placeholder}' : '${placeholderEmpty}' }}` : placeholder
+
+ data-ng-model=model
+
+ data-ng-required=required && `${required}`
+ data-ng-disabled=disabled && `${disabled}` || `!${options}.length`
+
+ bs-select
+ bs-options=`item.value as item.label for item in ${options}`
+
+ data-multiple=multiple ? '1' : false
+ data-container='body > .wrapper'
+
+ tabindex='0'
+
+ data-ignite-form-panel-field=''
+ )&attributes(attributes.attributes)
+
+ .ignite-form-field
+ +ignite-form-field__label(label, name, required)
+ .ignite-form-field__control
+ if tip
+ i.tipField.icon-help(bs-tooltip='' data-title=tip)
+
+ if block
+ block
+
+ .input-tip
+ +form-field-input(attributes=attributes)
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/helpers/jade/form/form-field-feedback.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/form/form-field-feedback.jade b/modules/web-console/frontend/app/helpers/jade/form/form-field-feedback.jade
deleted file mode 100644
index ac1f080..0000000
--- a/modules/web-console/frontend/app/helpers/jade/form/form-field-feedback.jade
+++ /dev/null
@@ -1,32 +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.
-
-mixin form-field-feedback(name, error, message)
- -var __field = form + '[' + name + ']'
- -var __error = __field + '.$error.' + error
- -var __pristine = __field + '.$pristine'
-
- i.fa.fa-exclamation-triangle.form-field-feedback(
- ng-if='!#{__pristine} && #{__error}'
- name='{{ #{name} }}'
-
- bs-tooltip
- data-title=message
-
- ignite-error=error
- ignite-error-message=message
- ignite-restore-input-focus
- )
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/helpers/jade/form/form-field-feedback.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/form/form-field-feedback.pug b/modules/web-console/frontend/app/helpers/jade/form/form-field-feedback.pug
new file mode 100644
index 0000000..c70e7a3
--- /dev/null
+++ b/modules/web-console/frontend/app/helpers/jade/form/form-field-feedback.pug
@@ -0,0 +1,32 @@
+//-
+ 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.
+
+mixin form-field-feedback(name, error, message)
+ -var __field = `${form}[${name}]`
+ -var __error = `${__field}.$error.${error}`
+ -var __pristine = `${__field}.$pristine`
+
+ i.fa.fa-exclamation-triangle.form-field-feedback(
+ ng-if=`!${__pristine} && ${__error}`
+ name=`{{ ${name} }}`
+
+ bs-tooltip
+ data-title=message
+
+ ignite-error=error
+ ignite-error-message=message
+ ignite-restore-input-focus
+ )
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/helpers/jade/form/form-field-label.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/form/form-field-label.jade b/modules/web-console/frontend/app/helpers/jade/form/form-field-label.jade
deleted file mode 100644
index d6aef81..0000000
--- a/modules/web-console/frontend/app/helpers/jade/form/form-field-label.jade
+++ /dev/null
@@ -1,23 +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.
-
-mixin ignite-form-field__label(label, name, required)
- label.ignite-form-field__label(
- id='{{ #{name} }}Label'
- for='{{ #{name} }}Input'
- class="{{ #{required} ? 'required' : '' }}"
- )
- span !{label}
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/helpers/jade/form/form-field-label.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/form/form-field-label.pug b/modules/web-console/frontend/app/helpers/jade/form/form-field-label.pug
new file mode 100644
index 0000000..d0275c9
--- /dev/null
+++ b/modules/web-console/frontend/app/helpers/jade/form/form-field-label.pug
@@ -0,0 +1,23 @@
+//-
+ 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.
+
+mixin ignite-form-field__label(label, name, required)
+ label.ignite-form-field__label(
+ id=`{{ ${name} }}Label`
+ for=`{{ ${name} }}Input`
+ class=`{{ ${required} ? 'required' : '' }}`
+ )
+ span !{label}
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/helpers/jade/form/form-field-number.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/form/form-field-number.jade b/modules/web-console/frontend/app/helpers/jade/form/form-field-number.jade
deleted file mode 100644
index 58b0dcd..0000000
--- a/modules/web-console/frontend/app/helpers/jade/form/form-field-number.jade
+++ /dev/null
@@ -1,53 +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.
-
-mixin ignite-form-field-number(label, model, name, disabled, required, placeholder, min, max, step, tip)
- mixin form-field-input()
- input.form-control(
- id='{{ #{name} }}Input'
- name='{{ #{name} }}'
- placeholder=placeholder
- type='number'
-
- min=min ? min : '0'
- max=max ? max : '{{ Number.MAX_VALUE }}'
- step=step ? step : '1'
-
- data-ng-model=model
-
- data-ng-required=required && '#{required}'
- data-ng-disabled=disabled && '#{disabled}'
- data-ng-focus='tableReset()'
-
- data-ignite-form-panel-field=''
- )&attributes(attributes.attributes)
-
- .ignite-form-field
- +ignite-form-field__label(label, name, required)
- .ignite-form-field__control
- if tip
- i.tipField.icon-help(bs-tooltip='' data-title=tip)
-
- +form-field-feedback(name, 'required', 'This field could not be empty')
- +form-field-feedback(name, 'min', 'Value is less than allowable minimum: '+ min || 0)
- +form-field-feedback(name, 'max', 'Value is more than allowable maximum: '+ max)
- +form-field-feedback(name, 'number', 'Only numbers allowed')
-
- if block
- block
-
- .input-tip
- +form-field-input(attributes=attributes)
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/helpers/jade/form/form-field-number.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/form/form-field-number.pug b/modules/web-console/frontend/app/helpers/jade/form/form-field-number.pug
new file mode 100644
index 0000000..dd41849
--- /dev/null
+++ b/modules/web-console/frontend/app/helpers/jade/form/form-field-number.pug
@@ -0,0 +1,53 @@
+//-
+ 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.
+
+mixin ignite-form-field-number(label, model, name, disabled, required, placeholder, min, max, step, tip)
+ mixin form-field-input()
+ input.form-control(
+ id=`{{ ${name} }}Input`
+ name=`{{ ${name} }}`
+ placeholder=placeholder
+ type='number'
+
+ min=min ? min : '0'
+ max=max ? max : '{{ Number.MAX_VALUE }}'
+ step=step ? step : '1'
+
+ data-ng-model=model
+
+ data-ng-required=required && `${required}`
+ data-ng-disabled=disabled && `${disabled}`
+ data-ng-focus='tableReset()'
+
+ data-ignite-form-panel-field=''
+ )&attributes(attributes.attributes)
+
+ .ignite-form-field
+ +ignite-form-field__label(label, name, required)
+ .ignite-form-field__control
+ if tip
+ i.tipField.icon-help(bs-tooltip='' data-title=tip)
+
+ +form-field-feedback(name, 'required', 'This field could not be empty')
+ +form-field-feedback(name, 'min', 'Value is less than allowable minimum: '+ min || 0)
+ +form-field-feedback(name, 'max', 'Value is more than allowable maximum: '+ max)
+ +form-field-feedback(name, 'number', 'Only numbers allowed')
+
+ if block
+ block
+
+ .input-tip
+ +form-field-input(attributes=attributes)
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/helpers/jade/form/form-field-password.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/form/form-field-password.jade b/modules/web-console/frontend/app/helpers/jade/form/form-field-password.jade
deleted file mode 100644
index e5e7bc8..0000000
--- a/modules/web-console/frontend/app/helpers/jade/form/form-field-password.jade
+++ /dev/null
@@ -1,47 +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.
-
-mixin ignite-form-field-password-input(name, model, disabled, required, placeholder)
- input.form-control(
- id='{{ #{name} }}Input'
- name='{{ #{name} }}'
- placeholder=placeholder
- type='password'
-
- data-ng-model=model
-
- data-ng-required=required && '#{required}'
- data-ng-disabled=disabled && '#{disabled}'
- data-ng-focus='tableReset()'
-
- data-ignite-form-panel-field=''
- )&attributes(attributes ? attributes.attributes ? attributes.attributes : attributes : {})
-
-mixin ignite-form-field-password(label, model, name, disabled, required, placeholder, tip)
- -var errLbl = label.substring(0, label.length - 1)
-
- .ignite-form-field
- +ignite-form-field__label(label, name, required)
- .ignite-form-field__control
- i.tipField.icon-help(bs-tooltip='' data-title=tip)
-
- if block
- block
-
- +form-field-feedback(name, 'required', errLbl + ' could not be empty!')
-
- .input-tip
- +ignite-form-field-password-input(name, model, disabled, required, placeholder)(attributes=attributes)
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/helpers/jade/form/form-field-password.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/form/form-field-password.pug b/modules/web-console/frontend/app/helpers/jade/form/form-field-password.pug
new file mode 100644
index 0000000..a12982f
--- /dev/null
+++ b/modules/web-console/frontend/app/helpers/jade/form/form-field-password.pug
@@ -0,0 +1,47 @@
+//-
+ 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.
+
+mixin ignite-form-field-password-input(name, model, disabled, required, placeholder)
+ input.form-control(
+ id=`{{ ${name} }}Input`
+ name=`{{ ${name} }}`
+ placeholder=placeholder
+ type='password'
+
+ data-ng-model=model
+
+ data-ng-required=required && `${required}`
+ data-ng-disabled=disabled && `${disabled}`
+ data-ng-focus='tableReset()'
+
+ data-ignite-form-panel-field=''
+ )&attributes(attributes ? attributes.attributes ? attributes.attributes : attributes : {})
+
+mixin ignite-form-field-password(label, model, name, disabled, required, placeholder, tip)
+ -var errLbl = label.substring(0, label.length - 1)
+
+ .ignite-form-field
+ +ignite-form-field__label(label, name, required)
+ .ignite-form-field__control
+ i.tipField.icon-help(bs-tooltip='' data-title=tip)
+
+ if block
+ block
+
+ +form-field-feedback(name, 'required', errLbl + ' could not be empty!')
+
+ .input-tip
+ +ignite-form-field-password-input(name, model, disabled, required, placeholder)(attributes=attributes)
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/helpers/jade/form/form-field-text.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/form/form-field-text.jade b/modules/web-console/frontend/app/helpers/jade/form/form-field-text.jade
deleted file mode 100644
index 1f93d3b..0000000
--- a/modules/web-console/frontend/app/helpers/jade/form/form-field-text.jade
+++ /dev/null
@@ -1,64 +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.
-
-mixin ignite-form-field-input(name, model, disabled, required, placeholder)
- input.form-control(
- id='{{ #{name} }}Input'
- name='{{ #{name} }}'
- placeholder=placeholder
- type='text'
-
- data-ng-model=model
-
- data-ng-required=required && '#{required}'
- data-ng-disabled=disabled && '#{disabled}'
- data-ng-focus='tableReset()'
-
- data-ignite-form-panel-field=''
- )&attributes(attributes ? attributes.attributes ? attributes.attributes : attributes: {})
-
-mixin ignite-form-field-url-input(name, model, disabled, required, placeholder)
- input.form-control(
- id='{{ #{name} }}Input'
- name='{{ #{name} }}'
- placeholder=placeholder
- type='url'
-
- data-ng-model=model
-
- data-ng-required=required && '#{required}'
- data-ng-disabled=disabled && '#{disabled}'
- data-ng-focus='tableReset()'
-
- data-ignite-form-panel-field=''
- )&attributes(attributes ? attributes.attributes ? attributes.attributes : attributes: {})
-
-mixin ignite-form-field-text(label, model, name, disabled, required, placeholder, tip)
- -var errLbl = label.substring(0, label.length - 1)
-
- .ignite-form-field
- +ignite-form-field__label(label, name, required)
- .ignite-form-field__control
- if tip
- i.tipField.icon-help(bs-tooltip='' data-title=tip)
-
- if block
- block
-
- +form-field-feedback(name, 'required', errLbl + ' could not be empty!')
-
- .input-tip
- +ignite-form-field-input(name, model, disabled, required, placeholder)(attributes=attributes)
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/helpers/jade/form/form-field-text.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/form/form-field-text.pug b/modules/web-console/frontend/app/helpers/jade/form/form-field-text.pug
new file mode 100644
index 0000000..76ea6e6
--- /dev/null
+++ b/modules/web-console/frontend/app/helpers/jade/form/form-field-text.pug
@@ -0,0 +1,64 @@
+//-
+ 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.
+
+mixin ignite-form-field-input(name, model, disabled, required, placeholder)
+ input.form-control(
+ id=`{{ ${name} }}Input`
+ name=`{{ ${name} }}`
+ placeholder=placeholder
+ type='text'
+
+ data-ng-model=model
+
+ data-ng-required=required && `${required}`
+ data-ng-disabled=disabled && `${disabled}`
+ data-ng-focus='tableReset()'
+
+ data-ignite-form-panel-field=''
+ )&attributes(attributes ? attributes.attributes ? attributes.attributes : attributes: {})
+
+mixin ignite-form-field-url-input(name, model, disabled, required, placeholder)
+ input.form-control(
+ id=`{{ ${name} }}Input`
+ name=`{{ ${name} }}`
+ placeholder=placeholder
+ type='url'
+
+ data-ng-model=model
+
+ data-ng-required=required && `${required}`
+ data-ng-disabled=disabled && `${disabled}`
+ data-ng-focus='tableReset()'
+
+ data-ignite-form-panel-field=''
+ )&attributes(attributes ? attributes.attributes ? attributes.attributes : attributes: {})
+
+mixin ignite-form-field-text(label, model, name, disabled, required, placeholder, tip)
+ -var errLbl = label.substring(0, label.length - 1)
+
+ .ignite-form-field
+ +ignite-form-field__label(label, name, required)
+ .ignite-form-field__control
+ if tip
+ i.tipField.icon-help(bs-tooltip='' data-title=tip)
+
+ if block
+ block
+
+ +form-field-feedback(name, 'required', errLbl + ' could not be empty!')
+
+ .input-tip
+ +ignite-form-field-input(name, model, disabled, required, placeholder)(attributes=attributes)
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/helpers/jade/form/form-field-up.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/form/form-field-up.jade b/modules/web-console/frontend/app/helpers/jade/form/form-field-up.jade
deleted file mode 100644
index c66cd0e..0000000
--- a/modules/web-console/frontend/app/helpers/jade/form/form-field-up.jade
+++ /dev/null
@@ -1,18 +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.
-
-mixin ignite-form-field-up()
- i.tipField.fa.fa-arrow-up.ng-scope(ignite-form-field-up ng-click="$ctrl.up()")&attributes(attributes)
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/helpers/jade/form/form-field-up.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/form/form-field-up.pug b/modules/web-console/frontend/app/helpers/jade/form/form-field-up.pug
new file mode 100644
index 0000000..5b65201
--- /dev/null
+++ b/modules/web-console/frontend/app/helpers/jade/form/form-field-up.pug
@@ -0,0 +1,18 @@
+//-
+ 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.
+
+mixin ignite-form-field-up()
+ i.tipField.fa.fa-arrow-up.ng-scope(ignite-form-field-up ng-click='$ctrl.up()')&attributes(attributes)
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/helpers/jade/form/form-group.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/form/form-group.jade b/modules/web-console/frontend/app/helpers/jade/form/form-group.jade
deleted file mode 100644
index 8fb7b1f..0000000
--- a/modules/web-console/frontend/app/helpers/jade/form/form-group.jade
+++ /dev/null
@@ -1,23 +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.
-
-mixin ignite-form-group()
- .group-section(ignite-form-group)&attributes(attributes)
- .group(ng-if='true' ng-init='group = {}')
- .group-legend
- label {{::group.label}}
- if block
- block
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/helpers/jade/form/form-group.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/form/form-group.pug b/modules/web-console/frontend/app/helpers/jade/form/form-group.pug
new file mode 100644
index 0000000..8fb7b1f
--- /dev/null
+++ b/modules/web-console/frontend/app/helpers/jade/form/form-group.pug
@@ -0,0 +1,23 @@
+//-
+ 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.
+
+mixin ignite-form-group()
+ .group-section(ignite-form-group)&attributes(attributes)
+ .group(ng-if='true' ng-init='group = {}')
+ .group-legend
+ label {{::group.label}}
+ if block
+ block
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/helpers/jade/mixins.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/mixins.jade b/modules/web-console/frontend/app/helpers/jade/mixins.jade
deleted file mode 100644
index 6ca41f6..0000000
--- a/modules/web-console/frontend/app/helpers/jade/mixins.jade
+++ /dev/null
@@ -1,609 +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 ./form.jade
-
-//- Mixin for advanced options toggle.
-mixin advanced-options-toggle(click, cond, showMessage, hideMessage)
- .advanced-options
- i.fa(ng-click='#{click}' ng-class='#{cond} ? "fa-chevron-circle-down" : "fa-chevron-circle-right"')
- a(ng-click=click) {{#{cond} ? '#{hideMessage}' : '#{showMessage}'}}
-
-//- Mixin for advanced options toggle with default settings.
-mixin advanced-options-toggle-default
- +advanced-options-toggle('toggleExpanded()', 'ui.expanded', 'Show advanced settings...', 'Hide advanced settings...')
-
-//- Mixin for main table on screen with list of items.
-mixin main-table(title, rows, focusId, click, rowTemplate, searchField)
- .padding-bottom-dflt(ng-show='#{rows} && #{rows}.length > 0')
- table.links(st-table='displayedRows' st-safe-src='#{rows}')
- thead
- tr
- th
- lable.labelHeader.labelFormField #{title}:
- .col-sm-3.pull-right(style='padding: 0')
- input.form-control(type='text' st-search='#{searchField}' placeholder='Filter #{title}...')
- tbody
- tr
- td
- .scrollable-y(ng-show='displayedRows.length > 0' style='max-height: 200px')
- table
- tbody
- tr(ng-repeat='row in displayedRows track by row._id' ignite-bs-affix-update)
- td
- a(ng-class='{active: row._id == selectedItem._id}' ignite-on-click-focus=focusId ng-click=click) #{rowTemplate}
- label.placeholder(ng-show='displayedRows.length == 0') No #{title} found
-
-//- Mixin with save, remove, clone and undo buttons.
-mixin save-remove-clone-undo-buttons(objectName)
- -var removeTip = '"Remove current ' + objectName + '"'
- -var cloneTip = '"Clone current ' + objectName + '"'
- -var undoTip = '"Undo all changes for current ' + objectName + '"'
-
- div(ng-show='contentVisible()' style='display: inline-block;')
- .panel-tip-container(ng-hide='!backupItem || backupItem._id')
- a.btn.btn-primary(ng-disabled='!ui.inputForm.$dirty' ng-click='ui.inputForm.$dirty && saveItem()' bs-tooltip='' data-title='{{saveBtnTipText(ui.inputForm.$dirty, "#{objectName}")}}' data-placement='bottom' data-trigger='hover') Save
- .panel-tip-container(ng-show='backupItem._id')
- a.btn.btn-primary(id='save-item' ng-disabled='!ui.inputForm.$dirty' ng-click='ui.inputForm.$dirty && saveItem()' bs-tooltip='' data-title='{{saveBtnTipText(ui.inputForm.$dirty, "#{objectName}")}}' data-placement='bottom' data-trigger='hover') Save
- .panel-tip-container(ng-show='backupItem._id')
- a.btn.btn-primary(id='clone-item' ng-click='cloneItem()' bs-tooltip=cloneTip data-placement='bottom' data-trigger='hover') Clone
- .btn-group.panel-tip-container(ng-show='backupItem._id')
- button.btn.btn-primary(id='remove-item' ng-click='removeItem()' bs-tooltip=removeTip data-placement='bottom' data-trigger='hover') Remove
- button.btn.dropdown-toggle.btn-primary(id='remove-item-dropdown' data-toggle='dropdown' data-container='body' bs-dropdown='[{ text: "Remove All", click: "removeAllItems()" }]' data-placement='bottom-right')
- span.caret
- .panel-tip-container(ng-show='backupItem')
- i.btn.btn-primary.fa.fa-undo(id='undo-item' ng-disabled='!ui.inputForm.$dirty' ng-click='ui.inputForm.$dirty && resetAll()' bs-tooltip=undoTip data-placement='bottom' data-trigger='hover')
-
-//- Mixin for feedback on specified error.
-mixin error-feedback(visible, error, errorMessage, name)
- i.fa.fa-exclamation-triangle.form-control-feedback(
- ng-if=visible
- bs-tooltip='"#{errorMessage}"'
- ignite-error=error
- ignite-error-message=errorMessage
- name=name
- )
-
-//- Mixin for feedback on unique violation.
-mixin unique-feedback(name, errorMessage)
- +form-field-feedback(name, 'igniteUnique', errorMessage)
-
-//- Mixin for feedback on IP address violation.
-mixin ipaddress-feedback(name)
- +form-field-feedback(name, 'ipaddress', 'Invalid address!')
-
-//- Mixin for feedback on port of IP address violation.
-mixin ipaddress-port-feedback(name)
- +form-field-feedback(name, 'ipaddressPort', 'Invalid port!')
-
-//- Mixin for feedback on port range violation.
-mixin ipaddress-port-range-feedback(name)
- +form-field-feedback(name, 'ipaddressPortRange', 'Invalid port range!')
-
-//- Mixin for feedback on UUID violation.
-mixin uuid-feedback(name)
- +form-field-feedback(name, 'uuid', 'Invalid node ID!')
-
-//- Function that convert enabled state to corresponding disabled state.
--var enabledToDisabled = function (enabled) {
-- return (enabled === false || enabled === true) ? !enabled : '!(' + enabled + ')';
--}
-
-//- Mixin for checkbox.
-mixin checkbox(lbl, model, name, tip)
- +form-field-checkbox(lbl, model, name, false, false, tip)
-
-//- Mixin for checkbox with enabled condition.
-mixin checkbox-enabled(lbl, model, name, enabled, tip)
- +form-field-checkbox(lbl, model, name, enabledToDisabled(enabled), false, tip)
-
-//- Mixin for Java class name field with auto focus condition.
-mixin java-class-autofocus-placholder(lbl, model, name, enabled, required, autofocus, placeholder, tip, validationActive)
- -var errLbl = lbl.substring(0, lbl.length - 1)
-
- +ignite-form-field-text(lbl, model, name, enabledToDisabled(enabled), required, placeholder, tip)(
- data-java-identifier='true'
- data-java-package-specified='true'
- data-java-keywords='true'
- data-java-built-in-class='true'
- data-ignite-form-field-input-autofocus=autofocus
- data-validation-active=validationActive ? '{{ #{validationActive} }}' : '"always"'
- )
- if block
- block
-
- +form-field-feedback(name, 'javaBuiltInClass', errLbl + ' should not be the Java built-in class!')
- +form-field-feedback(name, 'javaKeywords', errLbl + ' could not contains reserved Java keyword!')
- +form-field-feedback(name, 'javaPackageSpecified', errLbl + ' does not have package specified!')
- +form-field-feedback(name, 'javaIdentifier', errLbl + ' is invalid Java identifier!')
-
-//- Mixin for Java class name field with auto focus condition.
-mixin java-class-autofocus(lbl, model, name, enabled, required, autofocus, tip, validationActive)
- +java-class-autofocus-placholder(lbl, model, name, enabled, required, autofocus, 'Enter fully qualified class name', tip, validationActive)
- if block
- block
-
-//- Mixin for Java class name field.
-mixin java-class(lbl, model, name, enabled, required, tip, validationActive)
- +java-class-autofocus(lbl, model, name, enabled, required, 'false', tip, validationActive)
- if block
- block
-
-//- Mixin for text field with enabled condition with options.
-mixin java-class-typeahead(lbl, model, name, options, enabled, required, placeholder, tip, validationActive)
- -var errLbl = lbl.substring(0, lbl.length - 1)
-
- +form-field-datalist(lbl, model, name, enabledToDisabled(enabled), required, placeholder, options, tip)(
- data-java-identifier='true'
- data-java-package-specified='allow-built-in'
- data-java-keywords='true'
- data-validation-active=validationActive ? '{{ #{validationActive} }}' : '"always"'
- )
- +form-field-feedback(name, 'javaKeywords', errLbl + ' could not contains reserved Java keyword!')
- +form-field-feedback(name, 'javaPackageSpecified', errLbl + ' does not have package specified!')
- +form-field-feedback(name, 'javaIdentifier', errLbl + ' is invalid Java identifier!')
-
-//- Mixin for java package field with enabled condition.
-mixin java-package(lbl, model, name, enabled, required, tip)
- +ignite-form-field-text(lbl, model, name, enabledToDisabled(enabled), required, 'Enter package name', tip)(
- data-java-keywords='true'
- data-java-package-name='package-only'
- )
- +form-field-feedback(name, 'javaPackageName', 'Package name is invalid')
- +form-field-feedback(name, 'javaKeywords', 'Package name could not contains reserved java keyword')
-
-//- Mixin for text field with IP address check.
-mixin text-ip-address(lbl, model, name, enabled, placeholder, tip)
- +ignite-form-field-text(lbl, model, name, enabledToDisabled(enabled), false, placeholder, tip)(data-ipaddress='true')
- +ipaddress-feedback(name)
-
-//- Mixin for text field with IP address and port range check.
-mixin text-ip-address-with-port-range(lbl, model, name, enabled, placeholder, tip)
- +ignite-form-field-text(lbl, model, name, enabledToDisabled(enabled), false, placeholder, tip)(data-ipaddress='true' data-ipaddress-with-port='true' data-ipaddress-with-port-range='true')
- +ipaddress-feedback(name)
- +ipaddress-port-feedback(name)
- +ipaddress-port-range-feedback(name)
-
-//- Mixin for text field.
-mixin text-enabled(lbl, model, name, enabled, required, placeholder, tip)
- +ignite-form-field-text(lbl, model, name, enabledToDisabled(enabled), required, placeholder, tip)
- if block
- block
-
-//- Mixin for text field with autofocus.
-mixin text-enabled-autofocus(lbl, model, name, enabled, required, placeholder, tip)
- +ignite-form-field-text(lbl, model, name, enabledToDisabled(enabled), required, placeholder, tip)(
- data-ignite-form-field-input-autofocus='true'
- )
- if block
- block
-
-//- Mixin for text field.
-mixin text(lbl, model, name, required, placeholder, tip)
- +ignite-form-field-text(lbl, model, name, false, required, placeholder, tip)
- if block
- block
-
-//- Mixin for password field.
-mixin password(lbl, model, name, required, placeholder, tip)
- +ignite-form-field-password(lbl, model, name, false, required, placeholder, tip)
- if block
- block
-
-//- Mixin for text field with enabled condition with options.
-mixin text-options(lbl, model, name, options, enabled, required, placeholder, tip)
- +form-field-datalist(lbl, model, name, enabledToDisabled(enabled), required, placeholder, options, tip)
-
-//- Mixin for required numeric field.
-mixin number-required(lbl, model, name, enabled, required, placeholder, min, tip)
- +ignite-form-field-number(lbl, model, name, enabledToDisabled(enabled), required, placeholder, min, false, false, tip)
-
-//- Mixin for required numeric field with maximum and minimum limit.
-mixin number-min-max(lbl, model, name, enabled, placeholder, min, max, tip)
- +ignite-form-field-number(lbl, model, name, enabledToDisabled(enabled), false, placeholder, min, max, '1', tip)
-
-//- Mixin for required numeric field with maximum and minimum limit.
-mixin number-min-max-step(lbl, model, name, enabled, placeholder, min, max, step, tip)
- +ignite-form-field-number(lbl, model, name, enabledToDisabled(enabled), false, placeholder, min, max, step, tip)
-
-//- Mixin for numeric field.
-mixin number(lbl, model, name, enabled, placeholder, min, tip)
- +ignite-form-field-number(lbl, model, name, enabledToDisabled(enabled), false, placeholder, min, false, false, tip)
-
-//- Mixin for required dropdown field.
-mixin dropdown-required-empty(lbl, model, name, enabled, required, placeholder, placeholderEmpty, options, tip)
- +ignite-form-field-dropdown(lbl, model, name, enabledToDisabled(enabled), required, false, placeholder, placeholderEmpty, options, tip)
- if block
- block
-
-//- Mixin for required dropdown field with autofocus.
-mixin dropdown-required-empty-autofocus(lbl, model, name, enabled, required, placeholder, placeholderEmpty, options, tip)
- +ignite-form-field-dropdown(lbl, model, name, enabledToDisabled(enabled), required, false, placeholder, placeholderEmpty, options, tip)(
- data-ignite-form-field-input-autofocus='true'
- )
- if block
- block
-
-//- Mixin for required dropdown field.
-mixin dropdown-required(lbl, model, name, enabled, required, placeholder, options, tip)
- +ignite-form-field-dropdown(lbl, model, name, enabledToDisabled(enabled), required, false, placeholder, '', options, tip)
- if block
- block
-
-//- Mixin for required dropdown field with autofocus.
-mixin dropdown-required-autofocus(lbl, model, name, enabled, required, placeholder, options, tip)
- +ignite-form-field-dropdown(lbl, model, name, enabledToDisabled(enabled), required, false, placeholder, '', options, tip)(
- data-ignite-form-field-input-autofocus='true'
- )
- if block
- block
-
-//- Mixin for dropdown field.
-mixin dropdown(lbl, model, name, enabled, placeholder, options, tip)
- +ignite-form-field-dropdown(lbl, model, name, enabledToDisabled(enabled), false, false, placeholder, '', options, tip)
- if block
- block
-
-//- Mixin for dropdown-multiple field.
-mixin dropdown-multiple(lbl, model, name, enabled, placeholder, placeholderEmpty, options, tip)
- +ignite-form-field-dropdown(lbl, model, name, enabledToDisabled(enabled), false, true, placeholder, placeholderEmpty, options, tip)
- if block
- block
-
-//- Mixin for table text field.
-mixin table-text-field(name, model, items, valid, save, placeholder, newItem)
- -var resetOnEnter = newItem ? '(stopblur = true) && (group.add = [{}])' : '(field.edit = false)'
- -var onEnter = valid + ' && (' + save + '); ' + valid + ' && ' + resetOnEnter + ';'
-
- -var onEscape = newItem ? 'group.add = []' : 'field.edit = false'
-
- -var resetOnBlur = newItem ? '!stopblur && (group.add = [])' : 'field.edit = false'
- -var onBlur = valid + ' && ( ' + save + '); ' + resetOnBlur + ';'
-
- div(ignite-on-focus-out=onBlur)
- if block
- block
-
- .input-tip
- +ignite-form-field-input(name, model, false, 'true', placeholder)(
- data-ignite-unique=items
- data-ignite-form-field-input-autofocus='true'
-
- ignite-on-enter=onEnter
- ignite-on-escape=onEscape
- )
-
-//- Mixin for table java class field.
-mixin table-java-class-field(lbl, name, model, items, valid, save, newItem)
- -var resetOnEnter = newItem ? '(stopblur = true) && (group.add = [{}])' : '(field.edit = false)'
- -var onEnter = valid + ' && (' + save + '); ' + valid + ' && ' + resetOnEnter + ';'
-
- -var onEscape = newItem ? 'group.add = []' : 'field.edit = false'
-
- -var resetOnBlur = newItem ? '!stopblur && (group.add = [])' : 'field.edit = false'
- -var onBlur = valid + ' && ( ' + save + '); ' + resetOnBlur + ';'
-
- div(ignite-on-focus-out=onBlur)
- +form-field-feedback(name, 'javaBuiltInClass', lbl + ' should not be the Java built-in class!')
- +form-field-feedback(name, 'javaKeywords', lbl + ' could not contains reserved Java keyword!')
- +form-field-feedback(name, 'javaPackageSpecified', lbl + ' does not have package specified!')
- +form-field-feedback(name, 'javaIdentifier', lbl + ' is invalid Java identifier!')
-
- if block
- block
-
- .input-tip
- +ignite-form-field-input(name, model, false, 'true', 'Enter fully qualified class name')(
- data-java-identifier='true'
- data-java-package-specified='true'
- data-java-keywords='true'
- data-java-built-in-class='true'
-
- data-ignite-unique=items
- data-ignite-form-field-input-autofocus='true'
-
- ignite-on-enter=onEnter
- ignite-on-escape=onEscape
- )
-
-//- Mixin for table java package field.
-mixin table-java-package-field(name, model, items, valid, save, newItem)
- -var resetOnEnter = newItem ? '(stopblur = true) && (group.add = [{}])' : '(field.edit = false)'
- -var onEnter = valid + ' && (' + save + '); ' + valid + ' && ' + resetOnEnter + ';'
-
- -var onEscape = newItem ? 'group.add = []' : 'field.edit = false'
-
- -var resetOnBlur = newItem ? '!stopblur && (group.add = [])' : 'field.edit = false'
- -var onBlur = valid + ' && ( ' + save + '); ' + resetOnBlur + ';'
-
- div(ignite-on-focus-out=onBlur)
- +form-field-feedback(name, 'javaKeywords', 'Package name could not contains reserved Java keyword!')
- +form-field-feedback(name, 'javaPackageName', 'Package name is invalid!')
-
- if block
- block
-
- .input-tip
- +ignite-form-field-input(name, model, false, 'true', 'Enter package name')(
- data-java-keywords='true'
- data-java-package-name='package-only'
-
- data-ignite-unique=items
- data-ignite-form-field-input-autofocus='true'
-
- ignite-on-enter=onEnter
- ignite-on-escape=onEscape
- )
-
-//- Mixin for table java package field.
-mixin table-url-field(name, model, items, valid, save, newItem)
- -var resetOnEnter = newItem ? '(stopblur = true) && (group.add = [{}])' : '(field.edit = false)'
- -var onEnter = valid + ' && (' + save + '); ' + valid + ' && ' + resetOnEnter + ';'
-
- -var onEscape = newItem ? 'group.add = []' : 'field.edit = false'
-
- -var resetOnBlur = newItem ? '!stopblur && (group.add = [])' : 'field.edit = false'
- -var onBlur = valid + ' && ( ' + save + '); ' + resetOnBlur + ';'
-
- div(ignite-on-focus-out=onBlur)
- if block
- block
-
- .input-tip
- +ignite-form-field-url-input(name, model, false, 'true', 'Enter URL')(
- data-ignite-unique=items
- data-ignite-form-field-input-autofocus='true'
-
- ignite-on-enter=onEnter
- ignite-on-escape=onEscape
- )
-
-//- Mixin for table address field.
-mixin table-address-field(name, model, items, valid, save, newItem, portRange)
- -var resetOnEnter = newItem ? '(stopblur = true) && (group.add = [{}])' : '(field.edit = false)'
- -var onEnter = valid + ' && (' + save + '); ' + valid + ' && ' + resetOnEnter + ';'
-
- -var onEscape = newItem ? 'group.add = []' : 'field.edit = false'
-
- -var resetOnBlur = newItem ? '!stopblur && (group.add = [])' : 'field.edit = false'
- -var onBlur = valid + ' && ( ' + save + '); ' + resetOnBlur + ';'
-
- div(ignite-on-focus-out=onBlur)
- +ipaddress-feedback(name)
- +ipaddress-port-feedback(name)
- +ipaddress-port-range-feedback(name)
- +form-field-feedback(name, 'required', 'IP address:port could not be empty!')
-
- if block
- block
-
- .input-tip
- +ignite-form-field-input(name, model, false, 'true', 'IP address:port')(
- data-ipaddress='true'
- data-ipaddress-with-port='true'
- data-ipaddress-with-port-range=portRange ? 'true' : null
- data-ignite-unique=items
- data-ignite-form-field-input-autofocus='true'
-
- ignite-on-enter=onEnter
- ignite-on-escape=onEscape
- )
-
-//- Mixin for table UUID field.
-mixin table-uuid-field(name, model, items, valid, save, newItem)
- -var resetOnEnter = newItem ? '(stopblur = true) && (group.add = [{}])' : '(field.edit = false)'
- -var onEnter = valid + ' && (' + save + '); ' + valid + ' && ' + resetOnEnter + ';'
-
- -var onEscape = newItem ? 'group.add = []' : 'field.edit = false'
-
- -var resetOnBlur = newItem ? '!stopblur && (group.add = [])' : 'field.edit = false'
- -var onBlur = valid + ' && ( ' + save + '); ' + resetOnBlur + ';'
-
- div(ignite-on-focus-out=onBlur)
- if block
- block
-
- .input-tip
- +ignite-form-field-input(name, model, false, 'true', 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')(
- data-uuid='true'
- data-ignite-unique=items
- data-ignite-form-field-input-autofocus='true'
-
- ignite-on-enter=onEnter
- ignite-on-escape=onEscape
- )
-
-//- Mixin for table save button.
- "||" used instead of "&&" to workaround escaping of "&&" to "&&"
-mixin table-save-button(valid, save, newItem)
- -var reset = newItem ? 'group.add = []' : 'field.edit = false'
-
- i.fa.fa-floppy-o.form-field-save(
- ng-show=valid
- ng-click='!(#{valid}) || (#{save}); !(#{valid}) || (#{reset});'
- bs-tooltip
- data-title='Click icon or press [Enter] to save item'
- )
-
-//- Mixin for table remove button.
-mixin table-remove-conditional-button(items, show, tip, row)
- i.tipField.fa.fa-remove(
- ng-hide='!#{show} || field.edit'
- bs-tooltip
- data-title=tip
- ng-click='#{items}.splice(#{items}.indexOf(#{row}), 1)'
- )
-
-//- Mixin for table remove button.
-mixin table-remove-button(items, tip)
- +table-remove-conditional-button(items, 'true', tip, 'model')
-
-//- Mixin for cache mode.
-mixin cacheMode(lbl, model, name, placeholder)
- +dropdown(lbl, model, name, 'true', placeholder,
- '[\
- {value: "LOCAL", label: "LOCAL"},\
- {value: "REPLICATED", label: "REPLICATED"},\
- {value: "PARTITIONED", label: "PARTITIONED"}\
- ]',
- 'Cache modes:\
- <ul>\
- <li>PARTITIONED - in this mode the overall key set will be divided into partitions and all partitions will be split equally between participating nodes</li>\
- <li>REPLICATED - in this mode all the keys are distributed to all participating nodes</li>\
- <li>LOCAL - in this mode caches residing on different grid nodes will not know about each other</li>\
- </ul>'
- )
-
-//- Mixin for eviction policy.
-mixin evictionPolicy(model, name, enabled, required, tip)
- -var kind = model + '.kind'
- -var policy = model + '[' + kind + ']'
-
- +dropdown-required('Eviction policy:', kind, name + '+ "Kind"', enabled, required, 'Not set',
- '[\
- {value: "LRU", label: "LRU"},\
- {value: "FIFO", label: "FIFO"},\
- {value: "SORTED", label: "Sorted"},\
- {value: undefined, label: "Not set"}\
- ]', tip)
- span(ng-show=kind)
- +showHideLink('expanded', 'settings')
- .details-row
- +number('Batch size', policy + '.batchSize', name + '+ "batchSize"', enabled, '1', '1',
- 'Number of entries to remove on shrink')
- .details-row
- +number('Max memory size', policy + '.maxMemorySize', name + '+ "maxMemorySize"', enabled, '0', '0',
- 'Maximum allowed cache size in bytes')
- .details-row
- +number('Max size', policy + '.maxSize', name + '+ "maxSize"', enabled, '100000', '0',
- 'Maximum allowed size of cache before entry will start getting evicted')
-
-//- Mixin for clusters dropdown.
-mixin clusters(model, tip)
- +dropdown-multiple('<span>Clusters:</span>' + '<a ui-sref="base.configuration.clusters({linkId: linkId()})"> (add)</a>',
- model + '.clusters', '"clusters"', true, 'Choose clusters', 'No clusters configured', 'clusters', tip)
-
-//- Mixin for caches dropdown.
-mixin caches(model, tip)
- +dropdown-multiple('<span>Caches:</span>' + '<a ui-sref="base.configuration.caches({linkId: linkId()})"> (add)</a>',
- model + '.caches', '"caches"', true, 'Choose caches', 'No caches configured', 'caches', tip)
-
-//- Mixin for XML, Java, .Net preview.
-mixin preview(master, generator, detail)
- ignite-ui-ace-tabs
- .preview-panel(ng-init='mode = "spring"')
- .preview-legend
- a(ng-class='{active: mode === "spring"}' ng-click='mode = "spring"') Spring
- a(ng-class='{active: mode === "java"}' ng-click='mode = "java"') Java
- a(ng-class='{active: mode === "csharp"}' ng-click='mode = "csharp"') C#
- //a(ng-class='{active: mode === "app.config"}' ng-click='mode = "app.config"') app.config
- .preview-content(ng-switch='mode')
- ignite-ui-ace-spring(ng-switch-when="spring" data-master=master data-generator=generator ng-model='$parent.data' data-detail=detail)
- ignite-ui-ace-java(ng-switch-when="java" data-master=master data-generator=generator ng-model='$parent.data' data-detail=detail)
- ignite-ui-ace-sharp(ng-switch-when="csharp" data-master=master data-generator=generator ng-model='$parent.data' data-detail=detail)
- .preview-content-empty(ng-if='!data')
- label All Defaults
-
-//- Mixin for XML and Java preview.
-mixin preview-xml-java(master, generator, detail)
- ignite-ui-ace-tabs
- .preview-panel(ng-init='mode = "spring"')
- .preview-legend
- a(ng-class='{active: mode === "spring"}' ng-click='mode = "spring"') Spring
- a(ng-class='{active: mode === "java"}' ng-click='mode = "java"') Java
- //a(ng-class='{active: mode === "csharp"}' ng-click='mode = "csharp"') C#
- //a(ng-class='{active: mode === "app.config"}' ng-click='mode = "app.config"') app.config
- .preview-content(ng-switch='mode')
- ignite-ui-ace-spring(ng-switch-when="spring" data-master=master data-generator=generator ng-model='$parent.data' data-detail=detail)
- ignite-ui-ace-java(ng-switch-when="java" data-master=master data-generator=generator ng-model='$parent.data' data-detail=detail)
- //ignite-ui-ace-sharp(ng-switch-when="csharp" data-master=master data-generator=generator ng-model='$parent.data' data-detail=detail)
- .preview-content-empty(ng-if='!data')
- label All Defaults
-
-//- LEGACY mixin for LEGACY tables.
-mixin btn-save(show, click)
- i.tipField.fa.fa-floppy-o(ng-show=show ng-click=click bs-tooltip='' data-title='Click icon or press [Enter] to save item' data-trigger='hover')
-
-//- LEGACY mixin for LEGACY tables.
-mixin btn-add(click, tip)
- i.tipField.fa.fa-plus(ng-click=click bs-tooltip=tip data-trigger = 'hover')
-
-//- LEGACY mixin for LEGACY tables.
-mixin btn-remove(click, tip)
- i.tipField.fa.fa-remove(ng-click=click bs-tooltip=tip data-trigger='hover')
-
-//- LEGACY mixin for LEGACY tables.
-mixin btn-remove-cond(cond, click, tip)
- i.tipField.fa.fa-remove(ng-show=cond ng-click=click bs-tooltip=tip data-trigger='hover')
-
-//- LEGACY mixin for LEGACY pair values tables.
-mixin table-pair-edit(tbl, prefix, keyPlaceholder, valPlaceholder, keyJavaBuiltInTypes, valueJavaBuiltInTypes, focusId, index, divider)
- -var keyModel = tbl + '.' + prefix + 'Key'
- -var valModel = tbl +'.' + prefix + 'Value'
-
- -var keyFocusId = prefix + 'Key' + focusId
- -var valFocusId = prefix + 'Value' + focusId
-
- .col-xs-6.col-sm-6.col-md-6
- .fieldSep !{divider}
- .input-tip
- if keyJavaBuiltInTypes
- input.form-control(id=keyFocusId ignite-on-enter-focus-move=valFocusId type='text' ng-model=keyModel placeholder=keyPlaceholder bs-typeahead container='body' ignite-retain-selection data-min-length='1' bs-options='javaClass for javaClass in javaBuiltInClasses' ignite-on-escape='tableReset(false)')
- else
- input.form-control(id=keyFocusId ignite-on-enter-focus-move=valFocusId type='text' ng-model=keyModel placeholder=keyPlaceholder ignite-on-escape='tableReset(false)')
- .col-xs-6.col-sm-6.col-md-6
- -var btnVisible = 'tablePairSaveVisible(' + tbl + ', ' + index + ')'
- -var btnSave = 'tablePairSave(tablePairValid, backupItem, ' + tbl + ', ' + index + ')'
- -var btnVisibleAndSave = btnVisible + ' && ' + btnSave
-
- +btn-save(btnVisible, btnSave)
- .input-tip
- if valueJavaBuiltInTypes
- input.form-control(id=valFocusId type='text' ng-model=valModel placeholder=valPlaceholder bs-typeahead container='body' ignite-retain-selection data-min-length='1' bs-options='javaClass for javaClass in javaBuiltInClasses' ignite-on-enter=btnVisibleAndSave ignite-on-escape='tableReset(false)')
- else
- input.form-control(id=valFocusId type='text' ng-model=valModel placeholder=valPlaceholder ignite-on-enter=btnVisibleAndSave ignite-on-escape='tableReset(false)')
-
-//- Mixin for DB dialect.
-mixin dialect(lbl, model, name, required, tipTitle, genericDialectName, placeholder)
- +dropdown-required(lbl, model, name, 'true', required, placeholder, '[\
- {value: "Generic", label: "' + genericDialectName + '"},\
- {value: "Oracle", label: "Oracle"},\
- {value: "DB2", label: "IBM DB2"},\
- {value: "SQLServer", label: "Microsoft SQL Server"},\
- {value: "MySQL", label: "MySQL"},\
- {value: "PostgreSQL", label: "PostgreSQL"},\
- {value: "H2", label: "H2 database"}\
- ]',
- tipTitle +
- '<ul>\
- <li>' + genericDialectName + '</li>\
- <li>Oracle database</li>\
- <li>IBM DB2</li>\
- <li>Microsoft SQL Server</li>\
- <li>MySQL</li>\
- <li>PostgreSQL</li>\
- <li>H2 database</li>\
- </ul>')
-
-//- Mixin for show/hide links.
-mixin showHideLink(name, text)
- span(ng-init='__ = {};')
- a.customize(ng-show='__.#{name}' ng-click='__.#{name} = false') Hide #{text}
- a.customize(ng-hide='__.#{name}' ng-click='__.#{name} = true; ui.loadPanel("#{name}");') Show #{text}
- div(ng-if='ui.isPanelLoaded("#{name}")')
- .panel-details(ng-show='__.#{name}')
- if block
- block
[09/15] ignite git commit: IGNITE-4659 Migration to Webpack 2.
Upgrade template engine from jade to pug.
Posted by an...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/communication.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/communication.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/communication.pug
new file mode 100644
index 0000000..cd93565
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/communication.pug
@@ -0,0 +1,100 @@
+//-
+ 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
+
+-var form = 'communication'
+-var model = 'backupItem'
+-var communication = model + '.communication'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Communication
+ ignite-form-field-tooltip.tipLabel
+ | Configuration of communication with other nodes by TCP/IP
+ | Provide basic plumbing to send and receive grid messages and is utilized for all distributed grid operations#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/network-config" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +number('Timeout:', `${model}.networkTimeout`, '"commNetworkTimeout"', 'true', '5000', '1', 'Maximum timeout in milliseconds for network requests')
+ .settings-row
+ +number('Send retry delay:', `${model}.networkSendRetryDelay`, '"networkSendRetryDelay"', 'true', '1000', '1', 'Interval in milliseconds between message send retries')
+ .settings-row
+ +number('Send retry count:', `${model}.networkSendRetryCount`, '"networkSendRetryCount"', 'true', '3', '1', 'Message send retries count')
+ .settings-row
+ +number('Discovery startup delay:', `${model}.discoveryStartupDelay`, '"discoveryStartupDelay"', 'true', '60000', '1', 'This value is used to expire messages from waiting list whenever node discovery discrepancies happen')
+ .settings-row
+ +java-class('Communication listener:', `${communication}.listener`, '"comListener"', 'true', 'false', 'Listener of communication events')
+ .settings-row
+ +text-ip-address('Local IP address:', `${communication}.localAddress`, '"comLocalAddress"', 'true', '0.0.0.0',
+ 'Local host address for socket binding<br/>\
+ If not specified use all available addres on local host')
+ .settings-row
+ +number-min-max('Local port:', `${communication}.localPort`, '"comLocalPort"', 'true', '47100', '1024', '65535', 'Local port for socket binding')
+ .settings-row
+ +number('Local port range:', `${communication}.localPortRange`, '"comLocalPortRange"', 'true', '100', '1', 'Local port range for local host ports')
+ .settings-row
+ +number-min-max('Shared memory port:', `${communication}.sharedMemoryPort`, '"sharedMemoryPort"', 'true', '48100', '-1', '65535',
+ 'Local port to accept shared memory connections<br/>\
+ If set to #[b -1] shared memory communication will be disabled')
+ .settings-row
+ +number('Idle connection timeout:', `${communication}.idleConnectionTimeout`, '"idleConnectionTimeout"', 'true', '30000', '1',
+ 'Maximum idle connection timeout upon which a connection to client will be closed')
+ .settings-row
+ +number('Connect timeout:', `${communication}.connectTimeout`, '"connectTimeout"', 'true', '5000', '0', 'Connect timeout used when establishing connection with remote nodes')
+ .settings-row
+ +number('Maximum connect timeout:', `${communication}.maxConnectTimeout`, '"maxConnectTimeout"', 'true', '600000', '0', 'Maximum connect timeout')
+ .settings-row
+ +number('Reconnect count:', `${communication}.reconnectCount`, '"comReconnectCount"', 'true', '10', '1',
+ 'Maximum number of reconnect attempts used when establishing connection with remote nodes')
+ .settings-row
+ +number('Socket send buffer:', `${communication}.socketSendBuffer`, '"socketSendBuffer"', 'true', '32768', '0', 'Send buffer size for sockets created or accepted by this SPI')
+ .settings-row
+ +number('Socket receive buffer:', `${communication}.socketReceiveBuffer`, '"socketReceiveBuffer"', 'true', '32768', '0', 'Receive buffer size for sockets created or accepted by this SPI')
+ .settings-row
+ +number('Slow client queue limit:', `${communication}.slowClientQueueLimit`, '"slowClientQueueLimit"', 'true', '0', '0', 'Slow client queue limit')
+ .settings-row
+ +number('Ack send threshold:', `${communication}.ackSendThreshold`, '"ackSendThreshold"', 'true', '16', '1', 'Number of received messages per connection to node after which acknowledgment message is sent')
+ .settings-row
+ +number('Message queue limit:', `${communication}.messageQueueLimit`, '"messageQueueLimit"', 'true', '1024', '0', 'Message queue limit for incoming and outgoing messages')
+ .settings-row
+ +number('Unacknowledged messages:', `${communication}.unacknowledgedMessagesBufferSize`, '"unacknowledgedMessagesBufferSize"', 'true', '0', '0',
+ 'Maximum number of stored unacknowledged messages per connection to node<br/>\
+ If specified non zero value it should be\
+ <ul>\
+ <li>At least ack send threshold * 5</li>\
+ <li>At least message queue limit * 5</li>\
+ </ul>')
+ .settings-row
+ +number('Socket write timeout:', `${communication}.socketWriteTimeout`, '"socketWriteTimeout"', 'true', '2000', '0', 'Socket write timeout')
+ .settings-row
+ +number('Selectors count:', `${communication}.selectorsCount`, '"selectorsCount"', 'true', 'min(4, availableProcessors)', '1', 'Count of selectors te be used in TCP server')
+ .settings-row
+ +java-class('Address resolver:', `${communication}.addressResolver`, '"comAddressResolver"', 'true', 'false', 'Provides resolution between external and internal addresses')
+ .settings-row
+ +checkbox('Direct buffer', `${communication}.directBuffer`, '"directBuffer"',
+ 'If value is true, then SPI will use ByteBuffer.allocateDirect(int) call<br/>\
+ Otherwise, SPI will use ByteBuffer.allocate(int) call')
+ .settings-row
+ +checkbox('Direct send buffer', `${communication}.directSendBuffer`, '"directSendBuffer"', 'Flag defining whether direct send buffer should be used')
+ .settings-row
+ +checkbox('TCP_NODELAY option', `${communication}.tcpNoDelay`, '"tcpNoDelay"', 'Value for TCP_NODELAY socket option')
+ .col-sm-6
+ +preview-xml-java(model, 'clusterCommunication')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/connector.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/connector.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/connector.jade
deleted file mode 100644
index 40d65af..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/connector.jade
+++ /dev/null
@@ -1,104 +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.jade
-
--var form = 'connector'
--var model = 'backupItem.connector'
--var enabled = model + '.enabled'
--var sslEnabled = enabled + ' && ' + model + '.sslEnabled'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Connector configuration
- ignite-form-field-tooltip.tipLabel
- | Configure HTTP REST configuration to enable HTTP server features#[br]
- | #[a(href="https://apacheignite.readme.io/docs/configuration" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +checkbox('Enabled', enabled, '"restEnabled"', 'Flag indicating whether to configure connector configuration')
- .settings-row
- +text-enabled('Jetty configuration path:', model + '.jettyPath', '"connectorJettyPath"', enabled, 'false', 'Input path to Jetty configuration',
- 'Path, either absolute or relative to IGNITE_HOME, to Jetty XML configuration file<br/>\
- Jetty is used to support REST over HTTP protocol for accessing Ignite APIs remotely<br/>\
- If not provided, Jetty instance with default configuration will be started picking IgniteSystemProperties.IGNITE_JETTY_HOST and IgniteSystemProperties.IGNITE_JETTY_PORT as host and port respectively')
- .settings-row
- +text-ip-address('TCP host:', model + '.host', '"connectorHost"', enabled, 'IgniteConfiguration#getLocalHost()',
- 'Host for TCP binary protocol server<br/>\
- This can be either an IP address or a domain name<br/>\
- If not defined, system - wide local address will be used IgniteConfiguration#getLocalHost()<br/>\
- You can also use "0.0.0.0" value to bind to all locally - available IP addresses')
- .settings-row
- +number-min-max('TCP port:', model + '.port', '"connectorPort"', enabled, '11211', '1024', '65535', 'Port for TCP binary protocol server')
- .settings-row
- +number('TCP port range:', model + '.portRange', '"connectorPortRange"', enabled, '100', '1', 'Number of ports for TCP binary protocol server to try if configured port is already in use')
- .settings-row
- +number('Idle query cursor timeout:', model + '.idleQueryCursorTimeout', '"connectorIdleQueryCursorTimeout"', enabled, '600000', '0',
- 'Reject open query cursors that is not used timeout<br/>\
- If no fetch query request come within idle timeout, it will be removed on next check for old query cursors')
- .settings-row
- +number('Idle query cursor check frequency:', model + '.idleQueryCursorCheckFrequency', '"connectorIdleQueryCursorCheckFrequency"', enabled, '60000', '0',
- 'Idle query cursors check frequency<br/>\
- This setting is used to reject open query cursors that is not used')
- .settings-row
- +number('Idle timeout:', model + '.idleTimeout', '"connectorIdleTimeout"', enabled, '7000', '0',
- 'Idle timeout for REST server<br/>\
- This setting is used to reject half - opened sockets<br/>\
- If no packets come within idle timeout, the connection is closed')
- .settings-row
- +number('Receive buffer size:', model + '.receiveBufferSize', '"connectorReceiveBufferSize"', enabled, '32768', '0', 'REST TCP server receive buffer size')
- .settings-row
- +number('Send buffer size:', model + '.sendBufferSize', '"connectorSendBufferSize"', enabled, '32768', '0', 'REST TCP server send buffer size')
- .settings-row
- +number('Send queue limit:', model + '.sendQueueLimit', '"connectorSendQueueLimit"', enabled, 'unlimited', '0',
- 'REST TCP server send queue limit<br/>\
- If the limit exceeds, all successive writes will block until the queue has enough capacity')
- .settings-row
- +checkbox-enabled('Direct buffer', model + '.directBuffer', '"connectorDirectBuffer"', enabled,
- 'Flag indicating whether REST TCP server should use direct buffers<br/>\
- A direct buffer is a buffer that is allocated and accessed using native system calls, without using JVM heap<br/>\
- Enabling direct buffer may improve performance and avoid memory issues(long GC pauses due to huge buffer size)')
- .settings-row
- +checkbox-enabled('TCP_NODELAY option', model + '.noDelay', '"connectorNoDelay"', enabled,
- 'Flag indicating whether TCP_NODELAY option should be set for accepted client connections<br/>\
- Setting this option reduces network latency and should be enabled in majority of cases<br/>\
- For more information, see Socket#setTcpNoDelay(boolean)')
- .settings-row
- +number('Selector count:', model + '.selectorCount', '"connectorSelectorCount"', enabled, 'min(4, availableProcessors)', '1',
- 'Number of selector threads in REST TCP server<br/>\
- Higher value for this parameter may increase throughput, but also increases context switching')
- .settings-row
- +number('Thread pool size:', model + '.threadPoolSize', '"connectorThreadPoolSize"', enabled, 'max(8, availableProcessors) * 2', '1',
- 'Thread pool size to use for processing of client messages (REST requests)')
- .settings-row
- +java-class('Message interceptor:', model + '.messageInterceptor', '"connectorMessageInterceptor"', enabled, 'false',
- 'Interceptor allows to transform all objects exchanged via REST protocol<br/>\
- For example if you use custom serialisation on client you can write interceptor to transform binary representations received from client to Java objects and later access them from java code directly')
- .settings-row
- +text-enabled('Secret key:', model + '.secretKey', '"connectorSecretKey"', enabled, 'false', 'Specify to enable authentication', 'Secret key to authenticate REST requests')
- .settings-row
- +checkbox-enabled('Enable SSL', model + '.sslEnabled', '"connectorSslEnabled"', enabled, 'Enables/disables SSL for REST TCP binary protocol')
- .settings-row
- +checkbox-enabled('Enable SSL client auth', model + '.sslClientAuth', '"connectorSslClientAuth"', sslEnabled, 'Flag indicating whether or not SSL client authentication is required')
- .settings-row
- +java-class('SSL factory:', model + '.sslFactory', '"connectorSslFactory"', sslEnabled, sslEnabled,
- 'Instance of Factory that will be used to create an instance of SSLContext for Secure Socket Layer on TCP binary protocol')
- .col-sm-6
- +preview-xml-java(model, 'clusterConnector')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/connector.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/connector.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/connector.pug
new file mode 100644
index 0000000..b145ce2
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/connector.pug
@@ -0,0 +1,104 @@
+//-
+ 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
+
+-var form = 'connector'
+-var model = 'backupItem.connector'
+-var enabled = model + '.enabled'
+-var sslEnabled = enabled + ' && ' + model + '.sslEnabled'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Connector configuration
+ ignite-form-field-tooltip.tipLabel
+ | Configure HTTP REST configuration to enable HTTP server features#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/configuration" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +checkbox('Enabled', enabled, '"restEnabled"', 'Flag indicating whether to configure connector configuration')
+ .settings-row
+ +text-enabled('Jetty configuration path:', `${model}.jettyPath`, '"connectorJettyPath"', enabled, 'false', 'Input path to Jetty configuration',
+ 'Path, either absolute or relative to IGNITE_HOME, to Jetty XML configuration file<br/>\
+ Jetty is used to support REST over HTTP protocol for accessing Ignite APIs remotely<br/>\
+ If not provided, Jetty instance with default configuration will be started picking IgniteSystemProperties.IGNITE_JETTY_HOST and IgniteSystemProperties.IGNITE_JETTY_PORT as host and port respectively')
+ .settings-row
+ +text-ip-address('TCP host:', `${model}.host`, '"connectorHost"', enabled, 'IgniteConfiguration#getLocalHost()',
+ 'Host for TCP binary protocol server<br/>\
+ This can be either an IP address or a domain name<br/>\
+ If not defined, system - wide local address will be used IgniteConfiguration#getLocalHost()<br/>\
+ You can also use "0.0.0.0" value to bind to all locally - available IP addresses')
+ .settings-row
+ +number-min-max('TCP port:', `${model}.port`, '"connectorPort"', enabled, '11211', '1024', '65535', 'Port for TCP binary protocol server')
+ .settings-row
+ +number('TCP port range:', `${model}.portRange`, '"connectorPortRange"', enabled, '100', '1', 'Number of ports for TCP binary protocol server to try if configured port is already in use')
+ .settings-row
+ +number('Idle query cursor timeout:', `${model}.idleQueryCursorTimeout`, '"connectorIdleQueryCursorTimeout"', enabled, '600000', '0',
+ 'Reject open query cursors that is not used timeout<br/>\
+ If no fetch query request come within idle timeout, it will be removed on next check for old query cursors')
+ .settings-row
+ +number('Idle query cursor check frequency:', `${model}.idleQueryCursorCheckFrequency`, '"connectorIdleQueryCursorCheckFrequency"', enabled, '60000', '0',
+ 'Idle query cursors check frequency<br/>\
+ This setting is used to reject open query cursors that is not used')
+ .settings-row
+ +number('Idle timeout:', `${model}.idleTimeout`, '"connectorIdleTimeout"', enabled, '7000', '0',
+ 'Idle timeout for REST server<br/>\
+ This setting is used to reject half - opened sockets<br/>\
+ If no packets come within idle timeout, the connection is closed')
+ .settings-row
+ +number('Receive buffer size:', `${model}.receiveBufferSize`, '"connectorReceiveBufferSize"', enabled, '32768', '0', 'REST TCP server receive buffer size')
+ .settings-row
+ +number('Send buffer size:', `${model}.sendBufferSize`, '"connectorSendBufferSize"', enabled, '32768', '0', 'REST TCP server send buffer size')
+ .settings-row
+ +number('Send queue limit:', `${model}.sendQueueLimit`, '"connectorSendQueueLimit"', enabled, 'unlimited', '0',
+ 'REST TCP server send queue limit<br/>\
+ If the limit exceeds, all successive writes will block until the queue has enough capacity')
+ .settings-row
+ +checkbox-enabled('Direct buffer', `${model}.directBuffer`, '"connectorDirectBuffer"', enabled,
+ 'Flag indicating whether REST TCP server should use direct buffers<br/>\
+ A direct buffer is a buffer that is allocated and accessed using native system calls, without using JVM heap<br/>\
+ Enabling direct buffer may improve performance and avoid memory issues(long GC pauses due to huge buffer size)')
+ .settings-row
+ +checkbox-enabled('TCP_NODELAY option', `${model}.noDelay`, '"connectorNoDelay"', enabled,
+ 'Flag indicating whether TCP_NODELAY option should be set for accepted client connections<br/>\
+ Setting this option reduces network latency and should be enabled in majority of cases<br/>\
+ For more information, see Socket#setTcpNoDelay(boolean)')
+ .settings-row
+ +number('Selector count:', `${model}.selectorCount`, '"connectorSelectorCount"', enabled, 'min(4, availableProcessors)', '1',
+ 'Number of selector threads in REST TCP server<br/>\
+ Higher value for this parameter may increase throughput, but also increases context switching')
+ .settings-row
+ +number('Thread pool size:', `${model}.threadPoolSize`, '"connectorThreadPoolSize"', enabled, 'max(8, availableProcessors) * 2', '1',
+ 'Thread pool size to use for processing of client messages (REST requests)')
+ .settings-row
+ +java-class('Message interceptor:', `${model}.messageInterceptor`, '"connectorMessageInterceptor"', enabled, 'false',
+ 'Interceptor allows to transform all objects exchanged via REST protocol<br/>\
+ For example if you use custom serialisation on client you can write interceptor to transform binary representations received from client to Java objects and later access them from java code directly')
+ .settings-row
+ +text-enabled('Secret key:', `${model}.secretKey`, '"connectorSecretKey"', enabled, 'false', 'Specify to enable authentication', 'Secret key to authenticate REST requests')
+ .settings-row
+ +checkbox-enabled('Enable SSL', `${model}.sslEnabled`, '"connectorSslEnabled"', enabled, 'Enables/disables SSL for REST TCP binary protocol')
+ .settings-row
+ +checkbox-enabled('Enable SSL client auth', `${model}.sslClientAuth`, '"connectorSslClientAuth"', sslEnabled, 'Flag indicating whether or not SSL client authentication is required')
+ .settings-row
+ +java-class('SSL factory:', `${model}.sslFactory`, '"connectorSslFactory"', sslEnabled, sslEnabled,
+ 'Instance of Factory that will be used to create an instance of SSLContext for Secure Socket Layer on TCP binary protocol')
+ .col-sm-6
+ +preview-xml-java(model, 'clusterConnector')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/deployment.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/deployment.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/deployment.jade
deleted file mode 100644
index aa99b49..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/deployment.jade
+++ /dev/null
@@ -1,237 +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.jade
-
--var form = 'deployment'
--var model = 'backupItem'
--var modelDeployment = 'backupItem.deploymentSpi'
--var exclude = model + '.peerClassLoadingLocalClassPathExclude'
--var enabled = 'backupItem.peerClassLoadingEnabled'
--var uriListModel = modelDeployment + '.URI.uriList'
--var scannerModel = modelDeployment + '.URI.scanners'
--var uriDeployment = modelDeployment + '.kind === "URI"'
--var localDeployment = modelDeployment + '.kind === "Local"'
--var customDeployment = modelDeployment + '.kind === "Custom"'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Class deployment
- ignite-form-field-tooltip.tipLabel
- | Task and resources deployment in cluster#[br]
- | #[a(href="https://apacheignite.readme.io/docs/deployment-modes" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id='deployment')
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +dropdown('Deployment mode:', model + '.deploymentMode', '"deploymentMode"', 'true', 'SHARED',
- '[\
- {value: "PRIVATE", label: "PRIVATE"},\
- {value: "ISOLATED", label: "ISOLATED"}, \
- {value: "SHARED", label: "SHARED"},\
- {value: "CONTINUOUS", label: "CONTINUOUS"}\
- ]',
- 'Task classes and resources sharing mode<br/>\
- The following deployment modes are supported:\
- <ul>\
- <li>PRIVATE - in this mode deployed classes do not share resources</li>\
- <li>ISOLATED - in this mode tasks or classes deployed within the same class loader will share the same instances of resources</li>\
- <li>SHARED - same as ISOLATED, but now tasks from different master nodes with the same user version and same class loader will share the same class loader on remote nodes</li>\
- <li>CONTINUOUS - same as SHARED deployment mode, but resources will not be undeployed even after all master nodes left grid</li>\
- </ul>')
- .settings-row
- +checkbox('Enable peer class loading', model + '.peerClassLoadingEnabled', '"peerClassLoadingEnabled"', 'Enables/disables peer class loading')
- .settings-row
- +number('Missed resources cache size:', model + '.peerClassLoadingMissedResourcesCacheSize', '"peerClassLoadingMissedResourcesCacheSize"', enabled, '100', '0',
- 'If size greater than 0, missed resources will be cached and next resource request ignored<br/>\
- If size is 0, then request for the resource will be sent to the remote node every time this resource is requested')
- .settings-row
- +number('Pool size:', model + '.peerClassLoadingThreadPoolSize', '"peerClassLoadingThreadPoolSize"', enabled, '2', '1', 'Thread pool size to use for peer class loading')
- .settings-row
- +ignite-form-group
- -var uniqueTip = 'Such package already exists'
-
- ignite-form-field-label
- | Local class path exclude
- ignite-form-group-tooltip
- | List of packages from the system classpath that need to be peer-to-peer loaded from task originating node<br/>
- | '*' is supported at the end of the package name which means that all sub-packages and their classes are included like in Java package import clause
- ignite-form-group-add(ng-show='#{enabled}' ng-click='(group.add = [{}])')
- | Add package name.
-
- .group-content(ng-if=exclude + '.length')
- -var model = 'obj.model';
- -var name = '"edit" + $index'
- -var valid = form + '[' + name + '].$valid'
- -var save = exclude + '[$index] = ' + model
-
- div(ng-show=enabled)
- div(ng-repeat='model in #{exclude} track by $index' ng-init='obj = {}')
- label.col-xs-12.col-sm-12.col-md-12
- .indexField
- | {{ $index+1 }})
- +table-remove-button(exclude, 'Remove package name')
- span(ng-hide='field.edit')
- a.labelFormField(ng-click='(field.edit = true) && (#{model} = model)') {{ model }}
- span(ng-if='field.edit')
- +table-java-package-field(name, model, exclude, valid, save, false)
- +table-save-button(valid, save, false)
- +unique-feedback(name, uniqueTip)
-
- div(ng-hide=enabled)
- div(ng-repeat='model in #{exclude} track by $index')
- label.col-xs-12.col-sm-12.col-md-12
- .labelFormField.labelField
- | {{ $index+1 }})
- span.labelFormField
- | {{ model }}
-
- .group-content(ng-repeat='field in group.add')
- -var model = 'new';
- -var name = '"new"'
- -var valid = form + '[' + name + '].$valid'
- -var save = exclude + '.push(' + model + ')'
-
- div(type='internal' name='Package name')
- label.col-xs-12.col-sm-12.col-md-12
- +table-java-package-field(name, model, exclude, valid, save, true)
- +table-save-button(valid, save, true)
- +unique-feedback(name, uniqueTip)
-
- .group-content-empty(ng-if='!(#{exclude}.length) && !group.add.length')
- | Not defined
- .settings-row
- +dropdown('Deployment variant:', modelDeployment + '.kind', '"deploymentKind"', 'true', 'Default',
- '[\
- {value: "URI", label: "URI"},\
- {value: "Local", label: "Local"}, \
- {value: "Custom", label: "Custom"},\
- {value: undefined, label: "Default"}\
- ]',
- 'Grid deployment SPI is in charge of deploying tasks and classes from different sources:\
- <ul>\
- <li>URI - Deploy tasks from different sources like file system folders, email and HTTP</li>\
- <li>Local - Only within VM deployment on local node</li>\
- <li>Custom - Custom implementation of DeploymentSpi</li>\
- <li>Default - Default configuration of LocalDeploymentSpi will be used</li>\
- </ul>')
- .panel-details(ng-show=uriDeployment)
- .details-row
- +ignite-form-group()
- -var uniqueTip = 'Such URI already configured'
-
- ignite-form-field-label
- | URI list
- ignite-form-group-tooltip
- | List of URI which point to GAR file and which should be scanned by SPI for the new tasks
- ignite-form-group-add(ng-click='(group.add = [{}])')
- | Add URI.
-
- .group-content(ng-if=uriListModel + '.length')
- -var model = 'obj.model';
- -var name = '"edit" + $index'
- -var valid = form + '[' + name + '].$valid'
- -var save = uriListModel + '[$index] = ' + model
-
- div(ng-repeat='model in #{uriListModel} track by $index' ng-init='obj = {}')
- label.col-xs-12.col-sm-12.col-md-12
- .indexField
- | {{ $index+1 }})
- +table-remove-button(uriListModel, 'Remove URI')
- span(ng-hide='field.edit')
- a.labelFormField(ng-click='(field.edit = true) && (#{model} = model)') {{ model }}
- span(ng-if='field.edit')
- +table-url-field(name, model, uriListModel, valid, save, false)
- +table-save-button(valid, save, false)
- +unique-feedback(name, uniqueTip)
-
- .group-content(ng-repeat='field in group.add')
- -var model = 'new';
- -var name = '"new"'
- -var valid = form + '[' + name + '].$valid'
- -var save = uriListModel + '.push(' + model + ')'
-
- div(type='internal' name='URI')
- label.col-xs-12.col-sm-12.col-md-12
- +table-url-field(name, model, uriListModel, valid, save, true)
- +table-save-button(valid, save, true)
- +unique-feedback(name, uniqueTip)
-
- .group-content-empty(ng-if='!(#{uriListModel}.length) && !group.add.length')
- | Not defined
- .details-row
- +text('Temporary directory path:', modelDeployment + '.URI.temporaryDirectoryPath', '"DeploymentURITemporaryDirectoryPath"', 'false', 'Temporary directory path',
- 'Absolute path to temporary directory which will be used by deployment SPI to keep all deployed classes in')
- .details-row
- +ignite-form-group()
- -var uniqueTip = 'Such scanner already configured'
-
- ignite-form-field-label
- | Scanner list
- ignite-form-group-tooltip
- | List of URI deployment scanners
- ignite-form-group-add(ng-click='(group.add = [{}])')
- | Add scanner
-
- .group-content(ng-if=scannerModel + '.length')
- -var model = 'obj.model';
- -var name = '"edit" + $index'
- -var valid = form + '[' + name + '].$valid'
- -var save = scannerModel + '[$index] = ' + model
-
- div(ng-repeat='model in #{scannerModel} track by $index' ng-init='obj = {}')
- label.col-xs-12.col-sm-12.col-md-12
- .indexField
- | {{ $index+1 }})
- +table-remove-button(scannerModel, 'Remove scanner')
- span(ng-hide='field.edit')
- a.labelFormField(ng-click='(field.edit = true) && (#{model} = model)') {{ model }}
- span(ng-if='field.edit')
- +table-java-class-field('Scanner:', name, model, scannerModel, valid, save, false)
- +table-save-button(valid, save, false)
- +unique-feedback(name, uniqueTip)
-
- .group-content(ng-repeat='field in group.add')
- -var model = 'new';
- -var name = '"new"'
- -var valid = form + '[' + name + '].$valid'
- -var save = scannerModel + '.push(' + model + ')'
-
- div(type='internal' name='Scanner')
- label.col-xs-12.col-sm-12.col-md-12
- // (lbl, name, model, items, valid, save, newItem)
- +table-java-class-field('Scanner:', name, model, scannerModel, valid, save, true)
- +table-save-button(valid, save, true)
- +unique-feedback(name, uniqueTip)
-
- .group-content-empty(ng-if='!(#{scannerModel}.length) && !group.add.length')
- | Not defined
- .details-row
- +java-class('Listener:', modelDeployment + '.URI.listener', '"DeploymentURIListener"', 'true', 'false', 'Deployment event listener', uriDeployment)
- .details-row
- +checkbox('Check MD5', modelDeployment + '.URI.checkMd5', '"DeploymentURICheckMd5"', 'Exclude files with same md5s from deployment')
- .details-row
- +checkbox('Encode URI', modelDeployment + '.URI.encodeUri', '"DeploymentURIEncodeUri"', 'URI must be encoded before usage')
- .panel-details(ng-show=localDeployment)
- .details-row
- +java-class('Listener:', modelDeployment + '.Local.listener', '"DeploymentLocalListener"', 'true', 'false', 'Deployment event listener', localDeployment)
- .panel-details(ng-show=customDeployment)
- .details-row
- +java-class('Class:', modelDeployment + '.Custom.className', '"DeploymentCustom"', 'true', customDeployment, 'DeploymentSpi implementation class', customDeployment)
- .col-sm-6
- +preview-xml-java(model, 'clusterDeployment')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/deployment.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/deployment.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/deployment.pug
new file mode 100644
index 0000000..2021c1c
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/deployment.pug
@@ -0,0 +1,237 @@
+//-
+ 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
+
+-var form = 'deployment'
+-var model = 'backupItem'
+-var modelDeployment = 'backupItem.deploymentSpi'
+-var exclude = model + '.peerClassLoadingLocalClassPathExclude'
+-var enabled = 'backupItem.peerClassLoadingEnabled'
+-var uriListModel = modelDeployment + '.URI.uriList'
+-var scannerModel = modelDeployment + '.URI.scanners'
+-var uriDeployment = modelDeployment + '.kind === "URI"'
+-var localDeployment = modelDeployment + '.kind === "Local"'
+-var customDeployment = modelDeployment + '.kind === "Custom"'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Class deployment
+ ignite-form-field-tooltip.tipLabel
+ | Task and resources deployment in cluster#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/deployment-modes" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id='deployment')
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +dropdown('Deployment mode:', `${model}.deploymentMode`, '"deploymentMode"', 'true', 'SHARED',
+ '[\
+ {value: "PRIVATE", label: "PRIVATE"},\
+ {value: "ISOLATED", label: "ISOLATED"}, \
+ {value: "SHARED", label: "SHARED"},\
+ {value: "CONTINUOUS", label: "CONTINUOUS"}\
+ ]',
+ 'Task classes and resources sharing mode<br/>\
+ The following deployment modes are supported:\
+ <ul>\
+ <li>PRIVATE - in this mode deployed classes do not share resources</li>\
+ <li>ISOLATED - in this mode tasks or classes deployed within the same class loader will share the same instances of resources</li>\
+ <li>SHARED - same as ISOLATED, but now tasks from different master nodes with the same user version and same class loader will share the same class loader on remote nodes</li>\
+ <li>CONTINUOUS - same as SHARED deployment mode, but resources will not be undeployed even after all master nodes left grid</li>\
+ </ul>')
+ .settings-row
+ +checkbox('Enable peer class loading', `${model}.peerClassLoadingEnabled`, '"peerClassLoadingEnabled"', 'Enables/disables peer class loading')
+ .settings-row
+ +number('Missed resources cache size:', `${model}.peerClassLoadingMissedResourcesCacheSize`, '"peerClassLoadingMissedResourcesCacheSize"', enabled, '100', '0',
+ 'If size greater than 0, missed resources will be cached and next resource request ignored<br/>\
+ If size is 0, then request for the resource will be sent to the remote node every time this resource is requested')
+ .settings-row
+ +number('Pool size:', `${model}.peerClassLoadingThreadPoolSize`, '"peerClassLoadingThreadPoolSize"', enabled, '2', '1', 'Thread pool size to use for peer class loading')
+ .settings-row
+ +ignite-form-group
+ -var uniqueTip = 'Such package already exists'
+
+ ignite-form-field-label
+ | Local class path exclude
+ ignite-form-group-tooltip
+ | List of packages from the system classpath that need to be peer-to-peer loaded from task originating node<br/>
+ | '*' is supported at the end of the package name which means that all sub-packages and their classes are included like in Java package import clause
+ ignite-form-group-add(ng-show=`${enabled}` ng-click='(group.add = [{}])')
+ | Add package name.
+
+ .group-content(ng-if=`${exclude}.length`)
+ -var model = 'obj.model';
+ -var name = '"edit" + $index'
+ -var valid = `${form}[${name}].$valid`
+ -var save = `${exclude}[$index] = ${model}`
+
+ div(ng-show=enabled)
+ div(ng-repeat=`model in ${exclude} track by $index` ng-init='obj = {}')
+ label.col-xs-12.col-sm-12.col-md-12
+ .indexField
+ | {{ $index+1 }})
+ +table-remove-button(exclude, 'Remove package name')
+ span(ng-hide='field.edit')
+ a.labelFormField(ng-click=`(field.edit = true) && (${model} = model)`) {{ model }}
+ span(ng-if='field.edit')
+ +table-java-package-field(name, model, exclude, valid, save, false)
+ +table-save-button(valid, save, false)
+ +unique-feedback(name, uniqueTip)
+
+ div(ng-hide=enabled)
+ div(ng-repeat=`model in ${exclude} track by $index`)
+ label.col-xs-12.col-sm-12.col-md-12
+ .labelFormField.labelField
+ | {{ $index+1 }})
+ span.labelFormField
+ | {{ model }}
+
+ .group-content(ng-repeat='field in group.add')
+ -var model = 'new';
+ -var name = '"new"'
+ -var valid = `${form}[${name}].$valid`
+ -var save = `${exclude}.push(${model})`
+
+ div(type='internal' name='Package name')
+ label.col-xs-12.col-sm-12.col-md-12
+ +table-java-package-field(name, model, exclude, valid, save, true)
+ +table-save-button(valid, save, true)
+ +unique-feedback(name, uniqueTip)
+
+ .group-content-empty(ng-if=`!(${exclude}.length) && !group.add.length`)
+ | Not defined
+ .settings-row
+ +dropdown('Deployment variant:', modelDeployment + '.kind', '"deploymentKind"', 'true', 'Default',
+ '[\
+ {value: "URI", label: "URI"},\
+ {value: "Local", label: "Local"}, \
+ {value: "Custom", label: "Custom"},\
+ {value: undefined, label: "Default"}\
+ ]',
+ 'Grid deployment SPI is in charge of deploying tasks and classes from different sources:\
+ <ul>\
+ <li>URI - Deploy tasks from different sources like file system folders, email and HTTP</li>\
+ <li>Local - Only within VM deployment on local node</li>\
+ <li>Custom - Custom implementation of DeploymentSpi</li>\
+ <li>Default - Default configuration of LocalDeploymentSpi will be used</li>\
+ </ul>')
+ .panel-details(ng-show=uriDeployment)
+ .details-row
+ +ignite-form-group()
+ -var uniqueTip = 'Such URI already configured'
+
+ ignite-form-field-label
+ | URI list
+ ignite-form-group-tooltip
+ | List of URI which point to GAR file and which should be scanned by SPI for the new tasks
+ ignite-form-group-add(ng-click='(group.add = [{}])')
+ | Add URI.
+
+ .group-content(ng-if=uriListModel + '.length')
+ -var model = 'obj.model';
+ -var name = '"edit" + $index'
+ -var valid = `${form}[${name}].$valid`
+ -var save = `${uriListModel}[$index] = ${model}`
+
+ div(ng-repeat=`model in ${uriListModel} track by $index` ng-init='obj = {}')
+ label.col-xs-12.col-sm-12.col-md-12
+ .indexField
+ | {{ $index+1 }})
+ +table-remove-button(uriListModel, 'Remove URI')
+ span(ng-hide='field.edit')
+ a.labelFormField(ng-click=`(field.edit = true) && (${model} = model)`) {{ model }}
+ span(ng-if='field.edit')
+ +table-url-field(name, model, uriListModel, valid, save, false)
+ +table-save-button(valid, save, false)
+ +unique-feedback(name, uniqueTip)
+
+ .group-content(ng-repeat='field in group.add')
+ -var model = 'new';
+ -var name = '"new"'
+ -var valid = `${form}[${name}].$valid`
+ -var save = `${uriListModel}.push(${model})`
+
+ div(type='internal' name='URI')
+ label.col-xs-12.col-sm-12.col-md-12
+ +table-url-field(name, model, uriListModel, valid, save, true)
+ +table-save-button(valid, save, true)
+ +unique-feedback(name, uniqueTip)
+
+ .group-content-empty(ng-if=`!(${uriListModel}.length) && !group.add.length`)
+ | Not defined
+ .details-row
+ +text('Temporary directory path:', modelDeployment + '.URI.temporaryDirectoryPath', '"DeploymentURITemporaryDirectoryPath"', 'false', 'Temporary directory path',
+ 'Absolute path to temporary directory which will be used by deployment SPI to keep all deployed classes in')
+ .details-row
+ +ignite-form-group()
+ -var uniqueTip = 'Such scanner already configured'
+
+ ignite-form-field-label
+ | Scanner list
+ ignite-form-group-tooltip
+ | List of URI deployment scanners
+ ignite-form-group-add(ng-click='(group.add = [{}])')
+ | Add scanner
+
+ .group-content(ng-if=scannerModel + '.length')
+ -var model = 'obj.model';
+ -var name = '"edit" + $index'
+ -var valid = `${form}[${name}].$valid`
+ -var save = `${scannerModel}[$index] = ${model}`
+
+ div(ng-repeat=`model in ${scannerModel} track by $index` ng-init='obj = {}')
+ label.col-xs-12.col-sm-12.col-md-12
+ .indexField
+ | {{ $index+1 }})
+ +table-remove-button(scannerModel, 'Remove scanner')
+ span(ng-hide='field.edit')
+ a.labelFormField(ng-click=`(field.edit = true) && (${model} = model)`) {{ model }}
+ span(ng-if='field.edit')
+ +table-java-class-field('Scanner:', name, model, scannerModel, valid, save, false)
+ +table-save-button(valid, save, false)
+ +unique-feedback(name, uniqueTip)
+
+ .group-content(ng-repeat='field in group.add')
+ -var model = 'new';
+ -var name = '"new"'
+ -var valid = `${form}[${name}].$valid`
+ -var save = `${scannerModel}.push(${model})`
+
+ div(type='internal' name='Scanner')
+ label.col-xs-12.col-sm-12.col-md-12
+ // (lbl, name, model, items, valid, save, newItem)
+ +table-java-class-field('Scanner:', name, model, scannerModel, valid, save, true)
+ +table-save-button(valid, save, true)
+ +unique-feedback(name, uniqueTip)
+
+ .group-content-empty(ng-if=`!(${scannerModel}.length) && !group.add.length`)
+ | Not defined
+ .details-row
+ +java-class('Listener:', `${modelDeployment}.URI.listener`, '"DeploymentURIListener"', 'true', 'false', 'Deployment event listener', uriDeployment)
+ .details-row
+ +checkbox('Check MD5', `${modelDeployment}.URI.checkMd5`, '"DeploymentURICheckMd5"', 'Exclude files with same md5s from deployment')
+ .details-row
+ +checkbox('Encode URI', `${modelDeployment}.URI.encodeUri`, '"DeploymentURIEncodeUri"', 'URI must be encoded before usage')
+ .panel-details(ng-show=localDeployment)
+ .details-row
+ +java-class('Listener:', `${modelDeployment}.Local.listener`, '"DeploymentLocalListener"', 'true', 'false', 'Deployment event listener', localDeployment)
+ .panel-details(ng-show=customDeployment)
+ .details-row
+ +java-class('Class:', `${modelDeployment}.Custom.className`, '"DeploymentCustom"', 'true', customDeployment, 'DeploymentSpi implementation class', customDeployment)
+ .col-sm-6
+ +preview-xml-java(model, 'clusterDeployment')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/discovery.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/discovery.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/discovery.jade
deleted file mode 100644
index 3bf0e29..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/discovery.jade
+++ /dev/null
@@ -1,88 +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.jade
-
--var form = 'discovery'
--var model = 'backupItem.discovery'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Discovery
- ignite-form-field-tooltip.tipLabel
- | TCP/IP discovery configuration#[br]
- | #[a(href="https://apacheignite.readme.io/docs/cluster-config" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +text-ip-address('Local address:', model + '.localAddress', '"discoLocalAddress"', 'true', '228.1.2.4',
- 'Local host IP address that discovery SPI uses<br/>\
- If not provided a first found non-loopback address will be used')
- .settings-row
- +number-min-max('Local port:', model + '.localPort', '"discoLocalPort"', 'true', '47500', '1024', '65535', 'Local port which node uses')
- .settings-row
- +number('Local port range:', model + '.localPortRange', '"discoLocalPortRange"', 'true', '100', '1', 'Local port range')
- .settings-row
- +java-class('Address resolver:', model + '.addressResolver', '"discoAddressResolver"', 'true', 'false',
- 'Provides resolution between external and internal addresses')
- .settings-row
- +number('Socket timeout:', model + '.socketTimeout', '"socketTimeout"', 'true', '5000', '0', 'Socket operations timeout')
- .settings-row
- +number('Acknowledgement timeout:', model + '.ackTimeout', '"ackTimeout"', 'true', '5000', '0', 'Message acknowledgement timeout')
- .settings-row
- +number('Max acknowledgement timeout:', model + '.maxAckTimeout', '"maxAckTimeout"', 'true', '600000', '0', 'Maximum message acknowledgement timeout')
- .settings-row
- +number('Network timeout:', model + '.networkTimeout', '"discoNetworkTimeout"', 'true', '5000', '1', 'Timeout to use for network operations')
- .settings-row
- +number('Join timeout:', model + '.joinTimeout', '"joinTimeout"', 'true', '0', '0',
- 'Join timeout<br/>' +
- '0 means wait forever')
- .settings-row
- +number('Thread priority:', model + '.threadPriority', '"threadPriority"', 'true', '10', '1', 'Thread priority for all threads started by SPI')
- .settings-row
- +number('Heartbeat frequency:', model + '.heartbeatFrequency', '"heartbeatFrequency"', 'true', '2000', '1', 'Heartbeat messages issuing frequency')
- .settings-row
- +number('Max heartbeats miss w/o init:', model + '.maxMissedHeartbeats', '"maxMissedHeartbeats"', 'true', '1', '1',
- 'Max heartbeats count node can miss without initiating status check')
- .settings-row
- +number('Max missed client heartbeats:', model + '.maxMissedClientHeartbeats', '"maxMissedClientHeartbeats"', 'true', '5', '1',
- 'Max heartbeats count node can miss without failing client node')
- .settings-row
- +number('Topology history:', model + '.topHistorySize', '"topHistorySize"', 'true', '1000', '0', 'Size of topology snapshots history')
- .settings-row
- +java-class('Discovery listener:', model + '.listener', '"discoListener"', 'true', 'false', 'Listener for grid node discovery events')
- .settings-row
- +java-class('Data exchange:', model + '.dataExchange', '"dataExchange"', 'true', 'false', 'Class name of handler for initial data exchange between Ignite nodes')
- .settings-row
- +java-class('Metrics provider:', model + '.metricsProvider', '"metricsProvider"', 'true', 'false', 'Class name of metric provider to discovery SPI')
- .settings-row
- +number('Reconnect count:', model + '.reconnectCount', '"discoReconnectCount"', 'true', '10', '1', 'Reconnect attempts count')
- .settings-row
- +number('Statistics frequency:', model + '.statisticsPrintFrequency', '"statisticsPrintFrequency"', 'true', '0', '1', 'Statistics print frequency')
- .settings-row
- +number('IP finder clean frequency:', model + '.ipFinderCleanFrequency', '"ipFinderCleanFrequency"', 'true', '60000', '1', 'IP finder clean frequency')
- .settings-row
- +java-class('Node authenticator:', model + '.authenticator', '"authenticator"', 'true', 'false', 'Class name of node authenticator implementation')
- .settings-row
- +checkbox('Force server mode', model + '.forceServerMode', '"forceServerMode"', 'Force start TCP/IP discovery in server mode')
- .settings-row
- +checkbox('Client reconnect disabled', model + '.clientReconnectDisabled', '"clientReconnectDisabled"',
- 'Disable try of client to reconnect after server detected client node failure')
- .col-sm-6
- +preview-xml-java(model, 'clusterDiscovery')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/discovery.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/discovery.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/discovery.pug
new file mode 100644
index 0000000..af9d875
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/discovery.pug
@@ -0,0 +1,88 @@
+//-
+ 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
+
+-var form = 'discovery'
+-var model = 'backupItem.discovery'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Discovery
+ ignite-form-field-tooltip.tipLabel
+ | TCP/IP discovery configuration#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/cluster-config" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +text-ip-address('Local address:', `${model}.localAddress`, '"discoLocalAddress"', 'true', '228.1.2.4',
+ 'Local host IP address that discovery SPI uses<br/>\
+ If not provided a first found non-loopback address will be used')
+ .settings-row
+ +number-min-max('Local port:', `${model}.localPort`, '"discoLocalPort"', 'true', '47500', '1024', '65535', 'Local port which node uses')
+ .settings-row
+ +number('Local port range:', `${model}.localPortRange`, '"discoLocalPortRange"', 'true', '100', '1', 'Local port range')
+ .settings-row
+ +java-class('Address resolver:', `${model}.addressResolver`, '"discoAddressResolver"', 'true', 'false',
+ 'Provides resolution between external and internal addresses')
+ .settings-row
+ +number('Socket timeout:', `${model}.socketTimeout`, '"socketTimeout"', 'true', '5000', '0', 'Socket operations timeout')
+ .settings-row
+ +number('Acknowledgement timeout:', `${model}.ackTimeout`, '"ackTimeout"', 'true', '5000', '0', 'Message acknowledgement timeout')
+ .settings-row
+ +number('Max acknowledgement timeout:', `${model}.maxAckTimeout`, '"maxAckTimeout"', 'true', '600000', '0', 'Maximum message acknowledgement timeout')
+ .settings-row
+ +number('Network timeout:', `${model}.networkTimeout`, '"discoNetworkTimeout"', 'true', '5000', '1', 'Timeout to use for network operations')
+ .settings-row
+ +number('Join timeout:', `${model}.joinTimeout`, '"joinTimeout"', 'true', '0', '0',
+ 'Join timeout<br/>' +
+ '0 means wait forever')
+ .settings-row
+ +number('Thread priority:', `${model}.threadPriority`, '"threadPriority"', 'true', '10', '1', 'Thread priority for all threads started by SPI')
+ .settings-row
+ +number('Heartbeat frequency:', `${model}.heartbeatFrequency`, '"heartbeatFrequency"', 'true', '2000', '1', 'Heartbeat messages issuing frequency')
+ .settings-row
+ +number('Max heartbeats miss w/o init:', `${model}.maxMissedHeartbeats`, '"maxMissedHeartbeats"', 'true', '1', '1',
+ 'Max heartbeats count node can miss without initiating status check')
+ .settings-row
+ +number('Max missed client heartbeats:', `${model}.maxMissedClientHeartbeats`, '"maxMissedClientHeartbeats"', 'true', '5', '1',
+ 'Max heartbeats count node can miss without failing client node')
+ .settings-row
+ +number('Topology history:', `${model}.topHistorySize`, '"topHistorySize"', 'true', '1000', '0', 'Size of topology snapshots history')
+ .settings-row
+ +java-class('Discovery listener:', `${model}.listener`, '"discoListener"', 'true', 'false', 'Listener for grid node discovery events')
+ .settings-row
+ +java-class('Data exchange:', `${model}.dataExchange`, '"dataExchange"', 'true', 'false', 'Class name of handler for initial data exchange between Ignite nodes')
+ .settings-row
+ +java-class('Metrics provider:', `${model}.metricsProvider`, '"metricsProvider"', 'true', 'false', 'Class name of metric provider to discovery SPI')
+ .settings-row
+ +number('Reconnect count:', `${model}.reconnectCount`, '"discoReconnectCount"', 'true', '10', '1', 'Reconnect attempts count')
+ .settings-row
+ +number('Statistics frequency:', `${model}.statisticsPrintFrequency`, '"statisticsPrintFrequency"', 'true', '0', '1', 'Statistics print frequency')
+ .settings-row
+ +number('IP finder clean frequency:', `${model}.ipFinderCleanFrequency`, '"ipFinderCleanFrequency"', 'true', '60000', '1', 'IP finder clean frequency')
+ .settings-row
+ +java-class('Node authenticator:', `${model}.authenticator`, '"authenticator"', 'true', 'false', 'Class name of node authenticator implementation')
+ .settings-row
+ +checkbox('Force server mode', `${model}.forceServerMode`, '"forceServerMode"', 'Force start TCP/IP discovery in server mode')
+ .settings-row
+ +checkbox('Client reconnect disabled', `${model}.clientReconnectDisabled`, '"clientReconnectDisabled"',
+ 'Disable try of client to reconnect after server detected client node failure')
+ .col-sm-6
+ +preview-xml-java(model, 'clusterDiscovery')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/events.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/events.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/events.jade
deleted file mode 100644
index 643ea97..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/events.jade
+++ /dev/null
@@ -1,68 +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.jade
-
--var form = 'events'
--var model = 'backupItem'
--var modelEventStorage = model + '.eventStorage'
--var modelEventStorageKind = modelEventStorage + '.kind'
--var eventStorageMemory = modelEventStorageKind + ' === "Memory"'
--var eventStorageCustom = modelEventStorageKind + ' === "Custom"'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Events
- ignite-form-field-tooltip.tipLabel
- | Grid events are used for notification about what happens within the grid#[br]
- | #[a(href="https://apacheignite.readme.io/docs/events" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +dropdown-multiple('Include type:', model + '.includeEventTypes', '"includeEventTypes"', true, 'Choose recorded event types', '', 'eventGroups',
- 'Array of event types, which will be recorded by GridEventStorageManager#record(Event)<br/>\
- Note, that either the include event types or the exclude event types can be established')
-
- .settings-row
- +dropdown('Event storage:', modelEventStorageKind, '"eventStorageKind"', 'true', '',
- '[\
- {value: "Memory", label: "Memory"},\
- {value: "Custom", label: "Custom"}\
- ]',
- 'Regulate how grid store events locally on node\
- <ul>\
- <li>Memory - All events are kept in the FIFO queue in-memory</li>\
- <li>Custom - Custom implementation of event storage SPI</li>\
- </ul>')
-
- div(ng-show=eventStorageMemory)
- .settings-row
- +number('Events expiration time:', modelEventStorage + '.Memory.expireAgeMs', '"EventStorageExpireAgeMs"', 'true', 'Long.MAX_VALUE', '1', 'All events that exceed this value will be removed from the queue when next event comes')
- .settings-row
- +number('Events queue size:', modelEventStorage + '.Memory.expireCount', '"EventStorageExpireCount"', 'true', '10000', '1', 'Events will be filtered out when new request comes')
- .settings-row
- +java-class('Filter:', modelEventStorage + '.Memory.filter', '"EventStorageFilter"', 'true', 'false',
- 'Filter for events to be recorded<br/>\
- Should be implementation of o.a.i.lang.IgnitePredicate<o.a.i.events.Event>', eventStorageMemory)
-
- .settings-row(ng-show=eventStorageCustom)
- +java-class('Class:', modelEventStorage + '.Custom.className', '"EventStorageCustom"', 'true', eventStorageCustom, 'Event storage implementation class name', eventStorageCustom)
-
- .col-sm-6
- +preview-xml-java(model, 'clusterEvents')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/events.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/events.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/events.pug
new file mode 100644
index 0000000..70fb714
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/events.pug
@@ -0,0 +1,68 @@
+//-
+ 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
+
+-var form = 'events'
+-var model = 'backupItem'
+-var modelEventStorage = model + '.eventStorage'
+-var modelEventStorageKind = modelEventStorage + '.kind'
+-var eventStorageMemory = modelEventStorageKind + ' === "Memory"'
+-var eventStorageCustom = modelEventStorageKind + ' === "Custom"'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Events
+ ignite-form-field-tooltip.tipLabel
+ | Grid events are used for notification about what happens within the grid#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/events" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +dropdown-multiple('Include type:', `${model}.includeEventTypes`, '"includeEventTypes"', true, 'Choose recorded event types', '', 'eventGroups',
+ 'Array of event types, which will be recorded by GridEventStorageManager#record(Event)<br/>\
+ Note, that either the include event types or the exclude event types can be established')
+
+ .settings-row
+ +dropdown('Event storage:', modelEventStorageKind, '"eventStorageKind"', 'true', '',
+ '[\
+ {value: "Memory", label: "Memory"},\
+ {value: "Custom", label: "Custom"}\
+ ]',
+ 'Regulate how grid store events locally on node\
+ <ul>\
+ <li>Memory - All events are kept in the FIFO queue in-memory</li>\
+ <li>Custom - Custom implementation of event storage SPI</li>\
+ </ul>')
+
+ div(ng-show=eventStorageMemory)
+ .settings-row
+ +number('Events expiration time:', `${modelEventStorage}.Memory.expireAgeMs`, '"EventStorageExpireAgeMs"', 'true', 'Long.MAX_VALUE', '1', 'All events that exceed this value will be removed from the queue when next event comes')
+ .settings-row
+ +number('Events queue size:', `${modelEventStorage}.Memory.expireCount`, '"EventStorageExpireCount"', 'true', '10000', '1', 'Events will be filtered out when new request comes')
+ .settings-row
+ +java-class('Filter:', `${modelEventStorage}.Memory.filter`, '"EventStorageFilter"', 'true', 'false',
+ 'Filter for events to be recorded<br/>\
+ Should be implementation of o.a.i.lang.IgnitePredicate<o.a.i.events.Event>', eventStorageMemory)
+
+ .settings-row(ng-show=eventStorageCustom)
+ +java-class('Class:', `${modelEventStorage}.Custom.className`, '"EventStorageCustom"', 'true', eventStorageCustom, 'Event storage implementation class name', eventStorageCustom)
+
+ .col-sm-6
+ +preview-xml-java(model, 'clusterEvents')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/failover.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/failover.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/failover.jade
deleted file mode 100644
index 1665659..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/failover.jade
+++ /dev/null
@@ -1,73 +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.jade
-
--var model = 'backupItem'
--var form = 'failoverSpi'
--var failoverSpi = model + '.failoverSpi'
--var failoverCustom = 'model.kind === "Custom"'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Failover configuration
- ignite-form-field-tooltip.tipLabel
- | Failover SPI provides ability to supply custom logic for handling failed execution of a grid job#[br]
- | #[a(href="https://apacheignite.readme.io/docs/fault-tolerance" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row(ng-init='failoverSpiTbl={type: "failoverSpi", model: "failoverSpi", focusId: "kind", ui: "failover-table"}')
- +ignite-form-group()
- ignite-form-field-label
- | Failover SPI configurations
- ignite-form-group-tooltip
- | Failover SPI configurations
- ignite-form-group-add(ng-click='tableNewItem(failoverSpiTbl)')
- | Add failover SPI
- .group-content-empty(ng-if='!(#{failoverSpi} && #{failoverSpi}.length > 0)')
- | Not defined
- .group-content(ng-show='#{failoverSpi} && #{failoverSpi}.length > 0' ng-repeat='model in #{failoverSpi} track by $index')
- hr(ng-if='$index != 0')
- .settings-row
- +dropdown-required-autofocus('Failover SPI:', 'model.kind', '"failoverKind" + $index', 'true', 'true', 'Choose Failover SPI', '[\
- {value: "JobStealing", label: "Job stealing"},\
- {value: "Never", label: "Never"},\
- {value: "Always", label: "Always"},\
- {value: "Custom", label: "Custom"}\
- ]', 'Provides ability to supply custom logic for handling failed execution of a grid job\
- <ul>\
- <li>Job stealing - Supports job stealing from over-utilized nodes to under-utilized nodes</li>\
- <li>Never - Jobs are ordered as they arrived</li>\
- <li>Always - Jobs are first ordered by their priority</li>\
- <li>Custom - Jobs are activated immediately on arrival to mapped node</li>\
- <li>Default - Default FailoverSpi implementation</li>\
- </ul>')
-
- +table-remove-button(failoverSpi, 'Remove Failover SPI')
- .settings-row(ng-show='model.kind === "JobStealing"')
- +number('Maximum failover attempts:', 'model.JobStealing.maximumFailoverAttempts', '"jsMaximumFailoverAttempts" + $index', 'true', '5', '0',
- 'Maximum number of attempts to execute a failed job on another node')
- .settings-row(ng-show='model.kind === "Always"')
- +number('Maximum failover attempts:', 'model.Always.maximumFailoverAttempts', '"alwaysMaximumFailoverAttempts" + $index', 'true', '5', '0',
- 'Maximum number of attempts to execute a failed job on another node')
- .settings-row(ng-show=failoverCustom)
- +java-class('SPI implementation', 'model.Custom.class', '"failoverSpiClass" + $index', 'true', failoverCustom,
- 'Custom FailoverSpi implementation class name.', failoverCustom)
- .col-sm-6
- +preview-xml-java(model, 'clusterFailover')
[10/15] ignite git commit: IGNITE-4659 Migration to Webpack 2.
Upgrade template engine from jade to pug.
Posted by an...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint.pug
new file mode 100644
index 0000000..716e082
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint.pug
@@ -0,0 +1,86 @@
+//-
+ 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
+
+-var form = 'checkpoint'
+-var model = 'backupItem.checkpointSpi'
+-var CustomCheckpoint = 'model.kind === "Custom"'
+-var CacheCheckpoint = 'model.kind === "Cache"'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Checkpointing
+ ignite-form-field-tooltip.tipLabel
+ | Checkpointing provides an ability to save an intermediate job state#[br]
+ | #[a(href="http://apacheignite.readme.io/docs/checkpointing" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row(ng-init='checkpointSpiTbl={type: "checkpointSpi", model: "checkpointSpi", focusId: "kind", ui: "checkpoint-table"}')
+ +ignite-form-group()
+ ignite-form-field-label
+ | Checkpoint SPI configurations
+ ignite-form-group-tooltip
+ | Checkpoint SPI configurations
+ ignite-form-group-add(ng-click='tableNewItem(checkpointSpiTbl)')
+ | Add checkpoint SPI
+ .group-content-empty(ng-if=`!(${model} && ${model}.length > 0)`)
+ | Not defined
+ .group-content(ng-show=`${model} && ${model}.length > 0` ng-repeat=`model in ${model} track by $index`)
+ hr(ng-if='$index != 0')
+ .settings-row
+ +dropdown-required-autofocus('Checkpoint SPI:', 'model.kind', '"checkpointKind" + $index', 'true', 'true', 'Choose checkpoint configuration variant', '[\
+ {value: "FS", label: "File System"},\
+ {value: "Cache", label: "Cache"},\
+ {value: "S3", label: "Amazon S3"},\
+ {value: "JDBC", label: "Database"},\
+ {value: "Custom", label: "Custom"}\
+ ]',
+ 'Provides an ability to save an intermediate job state\
+ <ul>\
+ <li>File System - Uses a shared file system to store checkpoints</li>\
+ <li>Cache - Uses a cache to store checkpoints</li>\
+ <li>Amazon S3 - Uses Amazon S3 to store checkpoints</li>\
+ <li>Database - Uses a database to store checkpoints</li>\
+ <li>Custom - Custom checkpoint SPI implementation</li>\
+ </ul>')
+ +table-remove-button(model, 'Remove Checkpoint SPI')
+
+ div(ng-show='model.kind === "FS"')
+ include ./checkpoint/fs
+
+ div(ng-show=CacheCheckpoint)
+ .settings-row
+ +dropdown-required-empty('Cache:', 'model.Cache.cache', '"checkpointCacheCache" + $index', 'true', CacheCheckpoint,
+ 'Choose cache', 'No caches configured for current cluster', 'clusterCaches', 'Cache to use for storing checkpoints')
+ .settings-row
+ +java-class('Listener:', 'model.Cache.checkpointListener', '"checkpointCacheListener" + $index', 'true', 'false',
+ 'Checkpoint listener implementation class name', CacheCheckpoint)
+
+ div(ng-show='model.kind === "S3"')
+ include ./checkpoint/s3
+
+ div(ng-show='model.kind === "JDBC"')
+ include ./checkpoint/jdbc
+
+ .settings-row(ng-show=CustomCheckpoint)
+ +java-class('Class name:', 'model.Custom.className', '"checkpointCustomClassName" + $index', 'true', CustomCheckpoint,
+ 'Custom CheckpointSpi implementation class', CustomCheckpoint)
+ .col-sm-6
+ +preview-xml-java('backupItem', 'clusterCheckpoint', 'caches')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/fs.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/fs.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/fs.jade
deleted file mode 100644
index 6ec4535..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/fs.jade
+++ /dev/null
@@ -1,66 +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.jade
-
--var form = 'checkpointFsPaths'
--var dirPaths = 'model.FS.directoryPaths'
-
-.details-row
- +ignite-form-group(ng-form=form ng-model=dirPaths)
- -var uniqueTip = 'Such path already exists!'
-
- ignite-form-field-label
- | Paths
- ignite-form-group-tooltip
- | Paths to a shared directory where checkpoints will be stored
- ignite-form-group-add(ng-click='(group.add = [{}])')
- | Add new path
-
- .group-content(ng-if='#{dirPaths}.length')
- -var model = 'obj.model';
- -var name = '"edit" + $index'
- -var valid = form + '[' + name + '].$valid'
- -var save = dirPaths + '[$index] = ' + model
-
- div(ng-repeat='item in #{dirPaths} track by $index' ng-init='obj = {}')
- label.col-xs-12.col-sm-12.col-md-12
- .indexField
- | {{ $index+1 }})
- +table-remove-conditional-button(dirPaths, 'true', 'Remove path', 'item')
- span(ng-hide='field.edit')
- a.labelFormField(ng-click='(field.edit = true) && (#{model} = item)') {{ item }}
- span(ng-if='field.edit')
- +table-text-field(name, model, dirPaths, valid, save, 'Input directory path', false)
- +table-save-button(valid, save, false)
- +unique-feedback(name, uniqueTip)
- .group-content(ng-repeat='field in group.add')
- -var model = 'new';
- -var name = '"new"'
- -var valid = form + '[' + name + '].$valid'
- -var save = dirPaths + '.push(' + model + ')'
-
- div
- label.col-xs-12.col-sm-12.col-md-12
- +table-text-field(name, model, dirPaths, valid, save, 'Input directory path', true)
- +table-save-button(valid, save, true)
- +unique-feedback(name, uniqueTip)
- .group-content-empty(ng-if='!(#{dirPaths}.length) && !group.add.length')
- | Not defined
-
-.settings-row
- +java-class('Listener:', 'model.FS.checkpointListener', '"checkpointFsListener" + $index', 'true', 'false',
- 'Checkpoint listener implementation class name', 'model.kind === "FS"')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/fs.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/fs.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/fs.pug
new file mode 100644
index 0000000..04cc7fb
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/fs.pug
@@ -0,0 +1,66 @@
+//-
+ 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
+
+-var form = 'checkpointFsPaths'
+-var dirPaths = 'model.FS.directoryPaths'
+
+.details-row
+ +ignite-form-group(ng-form=form ng-model=dirPaths)
+ -var uniqueTip = 'Such path already exists!'
+
+ ignite-form-field-label
+ | Paths
+ ignite-form-group-tooltip
+ | Paths to a shared directory where checkpoints will be stored
+ ignite-form-group-add(ng-click='(group.add = [{}])')
+ | Add new path
+
+ .group-content(ng-if=`${dirPaths}.length`)
+ -var model = 'obj.model';
+ -var name = '"edit" + $index'
+ -var valid = `${form}[${name}].$valid`
+ -var save = dirPaths + '[$index] = ' + model
+
+ div(ng-repeat=`item in ${dirPaths} track by $index` ng-init='obj = {}')
+ label.col-xs-12.col-sm-12.col-md-12
+ .indexField
+ | {{ $index+1 }})
+ +table-remove-conditional-button(dirPaths, 'true', 'Remove path', 'item')
+ span(ng-hide='field.edit')
+ a.labelFormField(ng-click=`(field.edit = true) && (${model} = item)`) {{ item }}
+ span(ng-if='field.edit')
+ +table-text-field(name, model, dirPaths, valid, save, 'Input directory path', false)
+ +table-save-button(valid, save, false)
+ +unique-feedback(name, uniqueTip)
+ .group-content(ng-repeat='field in group.add')
+ -var model = 'new';
+ -var name = '"new"'
+ -var valid = `${form}[${name}].$valid`
+ -var save = dirPaths + '.push(' + model + ')'
+
+ div
+ label.col-xs-12.col-sm-12.col-md-12
+ +table-text-field(name, model, dirPaths, valid, save, 'Input directory path', true)
+ +table-save-button(valid, save, true)
+ +unique-feedback(name, uniqueTip)
+ .group-content-empty(ng-if=`!(${dirPaths}.length) && !group.add.length`)
+ | Not defined
+
+.settings-row
+ +java-class('Listener:', 'model.FS.checkpointListener', '"checkpointFsListener" + $index', 'true', 'false',
+ 'Checkpoint listener implementation class name', 'model.kind === "FS"')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/jdbc.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/jdbc.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/jdbc.jade
deleted file mode 100644
index 5a13337..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/jdbc.jade
+++ /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.
-
-include /app/helpers/jade/mixins.jade
-
--var jdbcCheckpoint = 'model.kind === "JDBC"'
-
-.settings-row
- +text('Data source bean name:', 'model.JDBC.dataSourceBean', '"checkpointJdbcDataSourceBean" + $index', jdbcCheckpoint, 'Input bean name',
- 'Name of the data source bean in Spring context')
-.settings-row
- +dialect('Dialect:', 'model.JDBC.dialect', '"checkpointJdbcDialect" + $index', jdbcCheckpoint,
- 'Dialect of SQL implemented by a particular RDBMS:', 'Generic JDBC dialect', 'Choose JDBC dialect')
-.settings-row
- +java-class('Listener:', 'model.JDBC.checkpointListener', '"checkpointJdbcListener" + $index', 'true', 'false',
- 'Checkpoint listener implementation class name', jdbcCheckpoint)
-+showHideLink('jdbcExpanded', 'settings')
- .details-row
- +text('User:', 'model.JDBC.user', '"checkpointJdbcUser" + $index', 'false', 'Input user name', 'Checkpoint jdbc user name')
- .details-row
- +text('Table name:', 'model.JDBC.checkpointTableName', '"checkpointJdbcCheckpointTableName" + $index', 'false', 'CHECKPOINTS', 'Checkpoint table name')
- .details-row
- +text('Key field name:', 'model.JDBC.keyFieldName', '"checkpointJdbcKeyFieldName" + $index', 'false', 'NAME', 'Checkpoint key field name')
- .details-row
- +dropdown('Key field type:', 'model.JDBC.keyFieldType', '"checkpointJdbcKeyFieldType" + $index', 'true', 'VARCHAR', 'supportedJdbcTypes', 'Checkpoint key field type')
- .details-row
- +text('Value field name:', 'model.JDBC.valueFieldName', '"checkpointJdbcValueFieldName" + $index', 'false', 'VALUE', 'Checkpoint value field name')
- .details-row
- +dropdown('Value field type:', 'model.JDBC.valueFieldType', '"checkpointJdbcValueFieldType" + $index', 'true', 'BLOB', 'supportedJdbcTypes', 'Checkpoint value field type')
- .details-row
- +text('Expire date field name:', 'model.JDBC.expireDateFieldName', '"checkpointJdbcExpireDateFieldName" + $index', 'false', 'EXPIRE_DATE', 'Checkpoint expire date field name')
- .details-row
- +dropdown('Expire date field type:', 'model.JDBC.expireDateFieldType', '"checkpointJdbcExpireDateFieldType"', 'true', 'DATETIME', 'supportedJdbcTypes', 'Checkpoint expire date field type')
- .details-row
- +number('Number of retries:', 'model.JDBC.numberOfRetries', '"checkpointJdbcNumberOfRetries"', 'true', '2', '0', 'Number of retries in case of DB failure')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/jdbc.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/jdbc.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/jdbc.pug
new file mode 100644
index 0000000..ea67977
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/jdbc.pug
@@ -0,0 +1,48 @@
+//-
+ 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
+
+-var jdbcCheckpoint = 'model.kind === "JDBC"'
+
+.settings-row
+ +text('Data source bean name:', 'model.JDBC.dataSourceBean', '"checkpointJdbcDataSourceBean" + $index', jdbcCheckpoint, 'Input bean name',
+ 'Name of the data source bean in Spring context')
+.settings-row
+ +dialect('Dialect:', 'model.JDBC.dialect', '"checkpointJdbcDialect" + $index', jdbcCheckpoint,
+ 'Dialect of SQL implemented by a particular RDBMS:', 'Generic JDBC dialect', 'Choose JDBC dialect')
+.settings-row
+ +java-class('Listener:', 'model.JDBC.checkpointListener', '"checkpointJdbcListener" + $index', 'true', 'false',
+ 'Checkpoint listener implementation class name', jdbcCheckpoint)
++showHideLink('jdbcExpanded', 'settings')
+ .details-row
+ +text('User:', 'model.JDBC.user', '"checkpointJdbcUser" + $index', 'false', 'Input user name', 'Checkpoint jdbc user name')
+ .details-row
+ +text('Table name:', 'model.JDBC.checkpointTableName', '"checkpointJdbcCheckpointTableName" + $index', 'false', 'CHECKPOINTS', 'Checkpoint table name')
+ .details-row
+ +text('Key field name:', 'model.JDBC.keyFieldName', '"checkpointJdbcKeyFieldName" + $index', 'false', 'NAME', 'Checkpoint key field name')
+ .details-row
+ +dropdown('Key field type:', 'model.JDBC.keyFieldType', '"checkpointJdbcKeyFieldType" + $index', 'true', 'VARCHAR', 'supportedJdbcTypes', 'Checkpoint key field type')
+ .details-row
+ +text('Value field name:', 'model.JDBC.valueFieldName', '"checkpointJdbcValueFieldName" + $index', 'false', 'VALUE', 'Checkpoint value field name')
+ .details-row
+ +dropdown('Value field type:', 'model.JDBC.valueFieldType', '"checkpointJdbcValueFieldType" + $index', 'true', 'BLOB', 'supportedJdbcTypes', 'Checkpoint value field type')
+ .details-row
+ +text('Expire date field name:', 'model.JDBC.expireDateFieldName', '"checkpointJdbcExpireDateFieldName" + $index', 'false', 'EXPIRE_DATE', 'Checkpoint expire date field name')
+ .details-row
+ +dropdown('Expire date field type:', 'model.JDBC.expireDateFieldType', '"checkpointJdbcExpireDateFieldType"', 'true', 'DATETIME', 'supportedJdbcTypes', 'Checkpoint expire date field type')
+ .details-row
+ +number('Number of retries:', 'model.JDBC.numberOfRetries', '"checkpointJdbcNumberOfRetries"', 'true', '2', '0', 'Number of retries in case of DB failure')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/s3.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/s3.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/s3.jade
deleted file mode 100644
index 6531897..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/s3.jade
+++ /dev/null
@@ -1,178 +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.jade
-
--var credentialsModel = 'model.S3.awsCredentials'
--var clientCfgModel = 'model.S3.clientConfiguration'
--var checkpointS3 = 'model.kind === "S3"'
--var checkpointS3Path = checkpointS3 + ' && model.S3.awsCredentials.kind === "Properties"'
--var checkpointS3Custom = checkpointS3 + ' && model.S3.awsCredentials.kind === "Custom"'
-
--var clientRetryModel = clientCfgModel + '.retryPolicy'
--var checkpointS3DefaultMaxRetry = checkpointS3 + ' && ' + clientRetryModel + '.kind === "DefaultMaxRetries"'
--var checkpointS3DynamoDbMaxRetry = checkpointS3 + ' && ' + clientRetryModel + '.kind === "DynamoDBMaxRetries"'
--var checkpointS3CustomRetry = checkpointS3 + ' && ' + clientRetryModel + '.kind === "Custom"'
-
-.settings-row
- +dropdown-required('AWS credentials:', 'model.S3.awsCredentials.kind', '"checkpointS3AwsCredentials"', 'true', checkpointS3, 'Custom', '[\
- {value: "Basic", label: "Basic"},\
- {value: "Properties", label: "Properties"},\
- {value: "Anonymous", label: "Anonymous"},\
- {value: "BasicSession", label: "Basic with session"},\
- {value: "Custom", label: "Custom"}\
- ]',
- 'AWS credentials\
- <ul>\
- <li>Basic - Allows callers to pass in the AWS access key and secret access in the constructor</li>\
- <li>Properties - Reads in AWS access keys from a properties file</li>\
- <li>Anonymous - Allows use of "anonymous" credentials</li>\
- <li>Database - Session credentials with keys and session token</li>\
- <li>Custom - Custom AWS credentials provider</li>\
- </ul>')
-.settings-row
- label Note, AWS credentials will be generated as stub
-.panel-details(ng-show=checkpointS3Path)
- .details-row
- +text('Path:', credentialsModel + '.Properties.path', '"checkpointS3PropertiesPath"', checkpointS3Path, 'Input properties file path',
- 'The file from which to read the AWS credentials properties')
-.panel-details(ng-show=checkpointS3Custom)
- .details-row
- +java-class('Class name:', credentialsModel + '.Custom.className', '"checkpointS3CustomClassName" + $index', 'true', checkpointS3Custom,
- 'Custom AWS credentials provider implementation class', checkpointS3Custom)
-.settings-row
- +text('Bucket name suffix:', 'model.S3.bucketNameSuffix', '"checkpointS3BucketNameSuffix"', 'false', 'default-bucket', 'Bucket name suffix')
-.settings-row
- +java-class('Listener:', 'model.S3.checkpointListener', '"checkpointS3Listener" + $index', 'true', 'false',
- 'Checkpoint listener implementation class name', checkpointS3)
-+showHideLink('s3Expanded', 'client configuration')
- .details-row
- +dropdown('Protocol:', clientCfgModel + '.protocol', '"checkpointS3Protocol"', 'true', 'HTTPS', '[\
- {value: "HTTP", label: "HTTP"},\
- {value: "HTTPS", label: "HTTPS"}\
- ]',
- 'Provides an ability to save an intermediate job state\
- <ul>\
- <li>HTTP - Using the HTTP protocol is less secure than HTTPS, but can slightly reduce\
- the system resources used when communicating with AWS</li>\
- <li>HTTPS - Using the HTTPS protocol is more secure than using the HTTP protocol, but\
- may use slightly more system resources. AWS recommends using HTTPS for maximize security</li>\
- </ul>')
- .details-row
- +number('Maximum connections:', clientCfgModel + '.maxConnections', '"checkpointS3MaxConnections"',
- 'true', '50', '1', 'Maximum number of allowed open HTTP connections')
- .details-row
- +text('User agent:', clientCfgModel + '.userAgent', '"checkpointS3UserAgent"', 'false', 'System specific header',
- 'HTTP user agent header to send with all requests')
- .details-row
- +text-ip-address('Local address:', clientCfgModel + '.localAddress', '"checkpointS3LocalAddress"', 'true', 'Not specified',
- 'Optionally specifies the local address to bind to')
- .details-row
- +text('Proxy host:', clientCfgModel + '.proxyHost', '"checkpointS3ProxyHost"', 'false', 'Not specified',
- 'Optional proxy host the client will connect through')
- .details-row
- +number('Proxy port:', clientCfgModel + '.proxyPort', '"checkpointS3ProxyPort"', 'true', 'Not specified', '0',
- 'Optional proxy port the client will connect through')
- .details-row
- +text('Proxy user:', clientCfgModel + '.proxyUsername', '"checkpointS3ProxyUsername"', 'false', 'Not specified',
- 'Optional proxy user name to use if connecting through a proxy')
- .details-row
- +text('Proxy domain:', clientCfgModel + '.proxyDomain', '"checkpointS3ProxyDomain"', 'false', 'Not specified',
- 'Optional Windows domain name for configuring an NTLM proxy')
- .details-row
- +text('Proxy workstation:', clientCfgModel + '.proxyWorkstation', '"checkpointS3ProxyWorkstation"', 'false', 'Not specified',
- 'Optional Windows workstation name for configuring NTLM proxy support')
- .details-row
- +dropdown('Retry policy:', clientRetryModel + '.kind', '"checkpointS3RetryPolicy"', 'true', 'Default', '[\
- {value: "Default", label: "Default SDK retry policy"},\
- {value: "DefaultMaxRetries", label: "Default with the specified max retry count"},\
- {value: "DynamoDB", label: "Default for DynamoDB client"},\
- {value: "DynamoDBMaxRetries", label: "DynamoDB with the specified max retry count"},\
- {value: "Custom", label: "Custom configured"}\
- ]',
- 'Provides an ability to save an intermediate job state\
- <ul>\
- <li>SDK default retry policy - This policy will honor the maxErrorRetry set in ClientConfiguration</li>\
- <li>Default with the specified max retry count - Default SDK retry policy with the specified max retry count</li>\
- <li>Default for DynamoDB client - This policy will honor the maxErrorRetry set in ClientConfiguration</li>\
- <li>DynamoDB with the specified max retry count - This policy will honor the maxErrorRetry set in ClientConfiguration with the specified max retry count</li>\
- <li>Custom configured - Custom configured SDK retry policy</li>\
- </ul>')
- .panel-details(ng-show=checkpointS3DefaultMaxRetry)
- .details-row
- +number-required('Maximum retry attempts:', clientRetryModel + '.DefaultMaxRetries.maxErrorRetry', '"checkpointS3DefaultMaxErrorRetry"', 'true', checkpointS3DefaultMaxRetry, '-1', '1',
- 'Maximum number of retry attempts for failed requests')
- .panel-details(ng-show=checkpointS3DynamoDbMaxRetry)
- .details-row
- +number-required('Maximum retry attempts:', clientRetryModel + '.DynamoDBMaxRetries.maxErrorRetry', '"checkpointS3DynamoDBMaxErrorRetry"', 'true', checkpointS3DynamoDbMaxRetry, '-1', '1',
- 'Maximum number of retry attempts for failed requests')
- .panel-details(ng-show=checkpointS3CustomRetry)
- .details-row
- +java-class('Retry condition:', clientRetryModel + '.Custom.retryCondition', '"checkpointS3CustomRetryPolicy" + $index', 'true', checkpointS3CustomRetry,
- 'Retry condition on whether a specific request and exception should be retried', checkpointS3CustomRetry)
- .details-row
- +java-class('Backoff strategy:', clientRetryModel + '.Custom.backoffStrategy', '"checkpointS3CustomBackoffStrategy" + $index', 'true', checkpointS3CustomRetry,
- 'Back-off strategy for controlling how long the next retry should wait', checkpointS3CustomRetry)
- .details-row
- +number-required('Maximum retry attempts:', clientRetryModel + '.Custom.maxErrorRetry', '"checkpointS3CustomMaxErrorRetry"', 'true', checkpointS3CustomRetry, '-1', '1',
- 'Maximum number of retry attempts for failed requests')
- .details-row
- +checkbox('Honor the max error retry set', clientRetryModel + '.Custom.honorMaxErrorRetryInClientConfig', '"checkpointS3CustomHonorMaxErrorRetryInClientConfig"',
- 'Whether this retry policy should honor the max error retry set by ClientConfiguration#setMaxErrorRetry(int)')
- .details-row
- +number('Maximum retry attempts:', clientCfgModel + '.maxErrorRetry', '"checkpointS3MaxErrorRetry"', 'true', '-1', '0',
- 'Maximum number of retry attempts for failed retryable requests<br/>\
- If -1 the configured RetryPolicy will be used to control the retry count')
- .details-row
- +number('Socket timeout:', clientCfgModel + '.socketTimeout', '"checkpointS3SocketTimeout"', 'true', '50000', '0',
- 'Amount of time in milliseconds to wait for data to be transfered over an established, open connection before the connection times out and is closed<br/>\
- A value of <b>0</b> means infinity')
- .details-row
- +number('Connection timeout:', clientCfgModel + '.connectionTimeout', '"checkpointS3ConnectionTimeout"', 'true', '50000', '0',
- 'Amount of time in milliseconds to wait when initially establishing a connection before giving up and timing out<br/>\
- A value of <b>0</b> means infinity')
- .details-row
- +number('Request timeout:', clientCfgModel + '.requestTimeout', '"checkpointS3RequestTimeout"', 'true', '0', '-1',
- 'Amount of time in milliseconds to wait for the request to complete before giving up and timing out<br/>\
- A non - positive value means infinity')
- .details-row
- +text('Signature algorithm:', clientCfgModel + '.signerOverride', '"checkpointS3SignerOverride"', 'false', 'Not specified',
- 'Name of the signature algorithm to use for signing requests made by this client')
- .details-row
- +number('Connection TTL:', clientCfgModel + '.connectionTTL', '"checkpointS3ConnectionTTL"', 'true', '-1', '-1',
- 'Expiration time in milliseconds for a connection in the connection pool<br/>\
- By default, it is set to <b>-1</b>, i.e. connections do not expire')
- .details-row
- +number('Idle timeout:', clientCfgModel + '.connectionMaxIdleMillis', '"checkpointS3ConnectionMaxIdleMillis"', 'true', '60000', '0',
- 'Maximum amount of time that an idle connection may sit in the connection pool and still be eligible for reuse')
- .details-row
- +java-class('DNS resolver:', clientCfgModel + '.dnsResolver', '"checkpointS3DnsResolver" + $index', 'true', 'false',
- 'DNS Resolver that should be used to for resolving AWS IP addresses', checkpointS3)
- .details-row
- +number('Response metadata cache size:', clientCfgModel + '.responseMetadataCacheSize', '"checkpointS3ResponseMetadataCacheSize"', 'true', '50', '0',
- 'Response metadata cache size')
- .details-row
- +java-class('SecureRandom class name:', clientCfgModel + '.secureRandom', '"checkpointS3SecureRandom" + $index', 'true', 'false',
- 'SecureRandom to be used by the SDK class name', checkpointS3)
- .details-row
- +checkbox('Use reaper', clientCfgModel + '.useReaper', '"checkpointS3UseReaper"', 'Checks if the IdleConnectionReaper is to be started')
- .details-row
- +checkbox('Use GZIP', clientCfgModel + '.useGzip', '"checkpointS3UseGzip"', 'Checks if gzip compression is used')
- .details-row
- +checkbox('Preemptively basic authentication', clientCfgModel + '.preemptiveBasicProxyAuth', '"checkpointS3PreemptiveBasicProxyAuth"',
- 'Attempt to authenticate preemptively against proxy servers using basic authentication')
- .details-row
- +checkbox('TCP KeepAlive', clientCfgModel + '.useTcpKeepAlive', '"checkpointS3UseTcpKeepAlive"', 'TCP KeepAlive support is enabled')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/s3.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/s3.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/s3.pug
new file mode 100644
index 0000000..16be6c0
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/s3.pug
@@ -0,0 +1,178 @@
+//-
+ 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
+
+-var credentialsModel = 'model.S3.awsCredentials'
+-var clientCfgModel = 'model.S3.clientConfiguration'
+-var checkpointS3 = 'model.kind === "S3"'
+-var checkpointS3Path = checkpointS3 + ' && model.S3.awsCredentials.kind === "Properties"'
+-var checkpointS3Custom = checkpointS3 + ' && model.S3.awsCredentials.kind === "Custom"'
+
+-var clientRetryModel = clientCfgModel + '.retryPolicy'
+-var checkpointS3DefaultMaxRetry = checkpointS3 + ' && ' + clientRetryModel + '.kind === "DefaultMaxRetries"'
+-var checkpointS3DynamoDbMaxRetry = checkpointS3 + ' && ' + clientRetryModel + '.kind === "DynamoDBMaxRetries"'
+-var checkpointS3CustomRetry = checkpointS3 + ' && ' + clientRetryModel + '.kind === "Custom"'
+
+.settings-row
+ +dropdown-required('AWS credentials:', 'model.S3.awsCredentials.kind', '"checkpointS3AwsCredentials"', 'true', checkpointS3, 'Custom', '[\
+ {value: "Basic", label: "Basic"},\
+ {value: "Properties", label: "Properties"},\
+ {value: "Anonymous", label: "Anonymous"},\
+ {value: "BasicSession", label: "Basic with session"},\
+ {value: "Custom", label: "Custom"}\
+ ]',
+ 'AWS credentials\
+ <ul>\
+ <li>Basic - Allows callers to pass in the AWS access key and secret access in the constructor</li>\
+ <li>Properties - Reads in AWS access keys from a properties file</li>\
+ <li>Anonymous - Allows use of "anonymous" credentials</li>\
+ <li>Database - Session credentials with keys and session token</li>\
+ <li>Custom - Custom AWS credentials provider</li>\
+ </ul>')
+.settings-row
+ label Note, AWS credentials will be generated as stub
+.panel-details(ng-show=checkpointS3Path)
+ .details-row
+ +text('Path:', credentialsModel + '.Properties.path', '"checkpointS3PropertiesPath"', checkpointS3Path, 'Input properties file path',
+ 'The file from which to read the AWS credentials properties')
+.panel-details(ng-show=checkpointS3Custom)
+ .details-row
+ +java-class('Class name:', credentialsModel + '.Custom.className', '"checkpointS3CustomClassName" + $index', 'true', checkpointS3Custom,
+ 'Custom AWS credentials provider implementation class', checkpointS3Custom)
+.settings-row
+ +text('Bucket name suffix:', 'model.S3.bucketNameSuffix', '"checkpointS3BucketNameSuffix"', 'false', 'default-bucket', 'Bucket name suffix')
+.settings-row
+ +java-class('Listener:', 'model.S3.checkpointListener', '"checkpointS3Listener" + $index', 'true', 'false',
+ 'Checkpoint listener implementation class name', checkpointS3)
++showHideLink('s3Expanded', 'client configuration')
+ .details-row
+ +dropdown('Protocol:', clientCfgModel + '.protocol', '"checkpointS3Protocol"', 'true', 'HTTPS', '[\
+ {value: "HTTP", label: "HTTP"},\
+ {value: "HTTPS", label: "HTTPS"}\
+ ]',
+ 'Provides an ability to save an intermediate job state\
+ <ul>\
+ <li>HTTP - Using the HTTP protocol is less secure than HTTPS, but can slightly reduce\
+ the system resources used when communicating with AWS</li>\
+ <li>HTTPS - Using the HTTPS protocol is more secure than using the HTTP protocol, but\
+ may use slightly more system resources. AWS recommends using HTTPS for maximize security</li>\
+ </ul>')
+ .details-row
+ +number('Maximum connections:', clientCfgModel + '.maxConnections', '"checkpointS3MaxConnections"',
+ 'true', '50', '1', 'Maximum number of allowed open HTTP connections')
+ .details-row
+ +text('User agent:', clientCfgModel + '.userAgent', '"checkpointS3UserAgent"', 'false', 'System specific header',
+ 'HTTP user agent header to send with all requests')
+ .details-row
+ +text-ip-address('Local address:', clientCfgModel + '.localAddress', '"checkpointS3LocalAddress"', 'true', 'Not specified',
+ 'Optionally specifies the local address to bind to')
+ .details-row
+ +text('Proxy host:', clientCfgModel + '.proxyHost', '"checkpointS3ProxyHost"', 'false', 'Not specified',
+ 'Optional proxy host the client will connect through')
+ .details-row
+ +number('Proxy port:', clientCfgModel + '.proxyPort', '"checkpointS3ProxyPort"', 'true', 'Not specified', '0',
+ 'Optional proxy port the client will connect through')
+ .details-row
+ +text('Proxy user:', clientCfgModel + '.proxyUsername', '"checkpointS3ProxyUsername"', 'false', 'Not specified',
+ 'Optional proxy user name to use if connecting through a proxy')
+ .details-row
+ +text('Proxy domain:', clientCfgModel + '.proxyDomain', '"checkpointS3ProxyDomain"', 'false', 'Not specified',
+ 'Optional Windows domain name for configuring an NTLM proxy')
+ .details-row
+ +text('Proxy workstation:', clientCfgModel + '.proxyWorkstation', '"checkpointS3ProxyWorkstation"', 'false', 'Not specified',
+ 'Optional Windows workstation name for configuring NTLM proxy support')
+ .details-row
+ +dropdown('Retry policy:', clientRetryModel + '.kind', '"checkpointS3RetryPolicy"', 'true', 'Default', '[\
+ {value: "Default", label: "Default SDK retry policy"},\
+ {value: "DefaultMaxRetries", label: "Default with the specified max retry count"},\
+ {value: "DynamoDB", label: "Default for DynamoDB client"},\
+ {value: "DynamoDBMaxRetries", label: "DynamoDB with the specified max retry count"},\
+ {value: "Custom", label: "Custom configured"}\
+ ]',
+ 'Provides an ability to save an intermediate job state\
+ <ul>\
+ <li>SDK default retry policy - This policy will honor the maxErrorRetry set in ClientConfiguration</li>\
+ <li>Default with the specified max retry count - Default SDK retry policy with the specified max retry count</li>\
+ <li>Default for DynamoDB client - This policy will honor the maxErrorRetry set in ClientConfiguration</li>\
+ <li>DynamoDB with the specified max retry count - This policy will honor the maxErrorRetry set in ClientConfiguration with the specified max retry count</li>\
+ <li>Custom configured - Custom configured SDK retry policy</li>\
+ </ul>')
+ .panel-details(ng-show=checkpointS3DefaultMaxRetry)
+ .details-row
+ +number-required('Maximum retry attempts:', clientRetryModel + '.DefaultMaxRetries.maxErrorRetry', '"checkpointS3DefaultMaxErrorRetry"', 'true', checkpointS3DefaultMaxRetry, '-1', '1',
+ 'Maximum number of retry attempts for failed requests')
+ .panel-details(ng-show=checkpointS3DynamoDbMaxRetry)
+ .details-row
+ +number-required('Maximum retry attempts:', clientRetryModel + '.DynamoDBMaxRetries.maxErrorRetry', '"checkpointS3DynamoDBMaxErrorRetry"', 'true', checkpointS3DynamoDbMaxRetry, '-1', '1',
+ 'Maximum number of retry attempts for failed requests')
+ .panel-details(ng-show=checkpointS3CustomRetry)
+ .details-row
+ +java-class('Retry condition:', clientRetryModel + '.Custom.retryCondition', '"checkpointS3CustomRetryPolicy" + $index', 'true', checkpointS3CustomRetry,
+ 'Retry condition on whether a specific request and exception should be retried', checkpointS3CustomRetry)
+ .details-row
+ +java-class('Backoff strategy:', clientRetryModel + '.Custom.backoffStrategy', '"checkpointS3CustomBackoffStrategy" + $index', 'true', checkpointS3CustomRetry,
+ 'Back-off strategy for controlling how long the next retry should wait', checkpointS3CustomRetry)
+ .details-row
+ +number-required('Maximum retry attempts:', clientRetryModel + '.Custom.maxErrorRetry', '"checkpointS3CustomMaxErrorRetry"', 'true', checkpointS3CustomRetry, '-1', '1',
+ 'Maximum number of retry attempts for failed requests')
+ .details-row
+ +checkbox('Honor the max error retry set', clientRetryModel + '.Custom.honorMaxErrorRetryInClientConfig', '"checkpointS3CustomHonorMaxErrorRetryInClientConfig"',
+ 'Whether this retry policy should honor the max error retry set by ClientConfiguration#setMaxErrorRetry(int)')
+ .details-row
+ +number('Maximum retry attempts:', clientCfgModel + '.maxErrorRetry', '"checkpointS3MaxErrorRetry"', 'true', '-1', '0',
+ 'Maximum number of retry attempts for failed retryable requests<br/>\
+ If -1 the configured RetryPolicy will be used to control the retry count')
+ .details-row
+ +number('Socket timeout:', clientCfgModel + '.socketTimeout', '"checkpointS3SocketTimeout"', 'true', '50000', '0',
+ 'Amount of time in milliseconds to wait for data to be transfered over an established, open connection before the connection times out and is closed<br/>\
+ A value of <b>0</b> means infinity')
+ .details-row
+ +number('Connection timeout:', clientCfgModel + '.connectionTimeout', '"checkpointS3ConnectionTimeout"', 'true', '50000', '0',
+ 'Amount of time in milliseconds to wait when initially establishing a connection before giving up and timing out<br/>\
+ A value of <b>0</b> means infinity')
+ .details-row
+ +number('Request timeout:', clientCfgModel + '.requestTimeout', '"checkpointS3RequestTimeout"', 'true', '0', '-1',
+ 'Amount of time in milliseconds to wait for the request to complete before giving up and timing out<br/>\
+ A non - positive value means infinity')
+ .details-row
+ +text('Signature algorithm:', clientCfgModel + '.signerOverride', '"checkpointS3SignerOverride"', 'false', 'Not specified',
+ 'Name of the signature algorithm to use for signing requests made by this client')
+ .details-row
+ +number('Connection TTL:', clientCfgModel + '.connectionTTL', '"checkpointS3ConnectionTTL"', 'true', '-1', '-1',
+ 'Expiration time in milliseconds for a connection in the connection pool<br/>\
+ By default, it is set to <b>-1</b>, i.e. connections do not expire')
+ .details-row
+ +number('Idle timeout:', clientCfgModel + '.connectionMaxIdleMillis', '"checkpointS3ConnectionMaxIdleMillis"', 'true', '60000', '0',
+ 'Maximum amount of time that an idle connection may sit in the connection pool and still be eligible for reuse')
+ .details-row
+ +java-class('DNS resolver:', clientCfgModel + '.dnsResolver', '"checkpointS3DnsResolver" + $index', 'true', 'false',
+ 'DNS Resolver that should be used to for resolving AWS IP addresses', checkpointS3)
+ .details-row
+ +number('Response metadata cache size:', clientCfgModel + '.responseMetadataCacheSize', '"checkpointS3ResponseMetadataCacheSize"', 'true', '50', '0',
+ 'Response metadata cache size')
+ .details-row
+ +java-class('SecureRandom class name:', clientCfgModel + '.secureRandom', '"checkpointS3SecureRandom" + $index', 'true', 'false',
+ 'SecureRandom to be used by the SDK class name', checkpointS3)
+ .details-row
+ +checkbox('Use reaper', clientCfgModel + '.useReaper', '"checkpointS3UseReaper"', 'Checks if the IdleConnectionReaper is to be started')
+ .details-row
+ +checkbox('Use GZIP', clientCfgModel + '.useGzip', '"checkpointS3UseGzip"', 'Checks if gzip compression is used')
+ .details-row
+ +checkbox('Preemptively basic authentication', clientCfgModel + '.preemptiveBasicProxyAuth', '"checkpointS3PreemptiveBasicProxyAuth"',
+ 'Attempt to authenticate preemptively against proxy servers using basic authentication')
+ .details-row
+ +checkbox('TCP KeepAlive', clientCfgModel + '.useTcpKeepAlive', '"checkpointS3UseTcpKeepAlive"', 'TCP KeepAlive support is enabled')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/collision.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision.jade
deleted file mode 100644
index 91676df..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision.jade
+++ /dev/null
@@ -1,63 +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.jade
-
--var form = 'collision'
--var model = 'backupItem.collision'
--var modelCollisionKind = model + '.kind';
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Collision configuration
- ignite-form-field-tooltip.tipLabel
- | Configuration Collision SPI allows to regulate how grid jobs get executed when they arrive on a destination node for execution#[br]
- | #[a(href="https://apacheignite.readme.io/docs/job-scheduling" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +dropdown('CollisionSpi:', modelCollisionKind, '"collisionKind"', 'true', '',
- '[\
- {value: "JobStealing", label: "Job stealing"},\
- {value: "FifoQueue", label: "FIFO queue"},\
- {value: "PriorityQueue", label: "Priority queue"},\
- {value: "Custom", label: "Custom"},\
- {value: "Noop", label: "Default"}\
- ]',
- 'Regulate how grid jobs get executed when they arrive on a destination node for execution\
- <ul>\
- <li>Job stealing - supports job stealing from over-utilized nodes to under-utilized nodes</li>\
- <li>FIFO queue - jobs are ordered as they arrived</li>\
- <li>Priority queue - jobs are first ordered by their priority</li>\
- <li>Custom - custom CollisionSpi implementation</li>\
- <li>Default - jobs are activated immediately on arrival to mapped node</li>\
- </ul>')
- .settings-row(ng-show='#{modelCollisionKind} !== "Noop"')
- .panel-details
- div(ng-show='#{modelCollisionKind} === "JobStealing"')
- include ./collision/job-stealing.jade
- div(ng-show='#{modelCollisionKind} === "FifoQueue"')
- include ./collision/fifo-queue.jade
- div(ng-show='#{modelCollisionKind} === "PriorityQueue"')
- include ./collision/priority-queue.jade
- div(ng-show='#{modelCollisionKind} === "Custom"')
- include ./collision/custom.jade
- .col-sm-6
- -var model = 'backupItem.collision'
- +preview-xml-java(model, 'clusterCollision')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/collision.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision.pug
new file mode 100644
index 0000000..2f58e0a
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision.pug
@@ -0,0 +1,63 @@
+//-
+ 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
+
+-var form = 'collision'
+-var model = 'backupItem.collision'
+-var modelCollisionKind = model + '.kind';
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Collision configuration
+ ignite-form-field-tooltip.tipLabel
+ | Configuration Collision SPI allows to regulate how grid jobs get executed when they arrive on a destination node for execution#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/job-scheduling" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +dropdown('CollisionSpi:', modelCollisionKind, '"collisionKind"', 'true', '',
+ '[\
+ {value: "JobStealing", label: "Job stealing"},\
+ {value: "FifoQueue", label: "FIFO queue"},\
+ {value: "PriorityQueue", label: "Priority queue"},\
+ {value: "Custom", label: "Custom"},\
+ {value: "Noop", label: "Default"}\
+ ]',
+ 'Regulate how grid jobs get executed when they arrive on a destination node for execution\
+ <ul>\
+ <li>Job stealing - supports job stealing from over-utilized nodes to under-utilized nodes</li>\
+ <li>FIFO queue - jobs are ordered as they arrived</li>\
+ <li>Priority queue - jobs are first ordered by their priority</li>\
+ <li>Custom - custom CollisionSpi implementation</li>\
+ <li>Default - jobs are activated immediately on arrival to mapped node</li>\
+ </ul>')
+ .settings-row(ng-show=`${modelCollisionKind} !== 'Noop'`)
+ .panel-details
+ div(ng-show=`${modelCollisionKind} === 'JobStealing'`)
+ include ./collision/job-stealing
+ div(ng-show=`${modelCollisionKind} === 'FifoQueue'`)
+ include ./collision/fifo-queue
+ div(ng-show=`${modelCollisionKind} === 'PriorityQueue'`)
+ include ./collision/priority-queue
+ div(ng-show=`${modelCollisionKind} === 'Custom'`)
+ include ./collision/custom
+ .col-sm-6
+ -var model = 'backupItem.collision'
+ +preview-xml-java(model, 'clusterCollision')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/custom.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/custom.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/custom.jade
deleted file mode 100644
index 8e77ac4..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/custom.jade
+++ /dev/null
@@ -1,24 +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.jade
-
--var model = 'backupItem.collision.Custom'
--var required = 'backupItem.collision.kind === "Custom"'
-
-div
- .details-row
- +java-class('Class:', model + '.class', '"collisionCustom"', 'true', required, 'CollisionSpi implementation class', required)
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/custom.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/custom.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/custom.pug
new file mode 100644
index 0000000..dc5dee0
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/custom.pug
@@ -0,0 +1,24 @@
+//-
+ 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
+
+-var model = 'backupItem.collision.Custom'
+-var required = 'backupItem.collision.kind === "Custom"'
+
+div
+ .details-row
+ +java-class('Class:', `${model}.class`, '"collisionCustom"', 'true', required, 'CollisionSpi implementation class', required)
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/fifo-queue.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/fifo-queue.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/fifo-queue.jade
deleted file mode 100644
index cd8b6a3..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/fifo-queue.jade
+++ /dev/null
@@ -1,27 +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.jade
-
--var model = 'backupItem.collision.FifoQueue'
-
-div
- .details-row
- +number('Parallel jobs number:', model + '.parallelJobsNumber', '"fifoParallelJobsNumber"', 'true', 'availableProcessors * 2', '1',
- 'Number of jobs that can be executed in parallel')
- .details-row
- +number('Wait jobs number:', model + '.waitingJobsNumber', '"fifoWaitingJobsNumber"', 'true', 'Integer.MAX_VALUE', '0',
- 'Maximum number of jobs that are allowed to wait in waiting queue')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/fifo-queue.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/fifo-queue.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/fifo-queue.pug
new file mode 100644
index 0000000..159b463
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/fifo-queue.pug
@@ -0,0 +1,27 @@
+//-
+ 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
+
+-var model = 'backupItem.collision.FifoQueue'
+
+div
+ .details-row
+ +number('Parallel jobs number:', `${model}.parallelJobsNumber`, '"fifoParallelJobsNumber"', 'true', 'availableProcessors * 2', '1',
+ 'Number of jobs that can be executed in parallel')
+ .details-row
+ +number('Wait jobs number:', `${model}.waitingJobsNumber`, '"fifoWaitingJobsNumber"', 'true', 'Integer.MAX_VALUE', '0',
+ 'Maximum number of jobs that are allowed to wait in waiting queue')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/job-stealing.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/job-stealing.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/job-stealing.jade
deleted file mode 100644
index dbe0478..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/job-stealing.jade
+++ /dev/null
@@ -1,63 +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.jade
-
--var model = 'backupItem.collision.JobStealing'
--var stealingAttributes = model + '.stealingAttributes'
-
-div
- .details-row
- +number('Active jobs threshold:', model + '.activeJobsThreshold', '"jsActiveJobsThreshold"', 'true', '95', '0',
- 'Number of jobs that can be executed in parallel')
- .details-row
- +number('Wait jobs threshold:', model + '.waitJobsThreshold', '"jsWaitJobsThreshold"', 'true', '0', '0',
- 'Job count threshold at which this node will start stealing jobs from other nodes')
- .details-row
- +number('Message expire time:', model + '.messageExpireTime', '"jsMessageExpireTime"', 'true', '1000', '1',
- 'Message expire time in ms')
- .details-row
- +number('Maximum stealing attempts:', model + '.maximumStealingAttempts', '"jsMaximumStealingAttempts"', 'true', '5', '1',
- 'Maximum number of attempts to steal job by another node')
- .details-row
- +checkbox('Stealing enabled', model + '.stealingEnabled', '"jsStealingEnabled"',
- 'Node should attempt to steal jobs from other nodes')
- .details-row
- +java-class('External listener:', model + '.externalCollisionListener', '"jsExternalCollisionListener"', 'true', 'false',
- 'Listener to be set for notification of external collision events', 'backupItem.collision.kind === "JobStealing"')
- .details-row
- +ignite-form-group
- ignite-form-field-label
- | Stealing attributes
- ignite-form-group-tooltip
- | Configuration parameter to enable stealing to/from only nodes that have these attributes set
- ignite-form-group-add(ng-click='tableNewItem(stealingAttributesTbl)')
- | Add stealing attribute
- .group-content-empty(ng-if='!((#{stealingAttributes} && #{stealingAttributes}.length > 0) || tableNewItemActive(stealingAttributesTbl))')
- | Not defined
- .group-content(ng-show='(#{stealingAttributes} && #{stealingAttributes}.length > 0) || tableNewItemActive(stealingAttributesTbl)')
- table.links-edit(id='attributes' st-table=stealingAttributes)
- tbody
- tr(ng-repeat='item in #{stealingAttributes} track by $index')
- td.col-sm-12(ng-show='!tableEditing(stealingAttributesTbl, $index)')
- a.labelFormField(ng-click='tableStartEdit(backupItem, stealingAttributesTbl, $index)') {{item.name}} = {{item.value}}
- +btn-remove('tableRemove(backupItem, stealingAttributesTbl, $index)', '"Remove attribute"')
- td.col-sm-12(ng-show='tableEditing(stealingAttributesTbl, $index)')
- +table-pair-edit('stealingAttributesTbl', 'cur', 'Attribute name', 'Attribute value', false, false, '{{::stealingAttributesTbl.focusId + $index}}', '$index', '=')
- tfoot(ng-show='tableNewItemActive(stealingAttributesTbl)')
- tr
- td.col-sm-12
- +table-pair-edit('stealingAttributesTbl', 'new', 'Attribute name', 'Attribute value', false, false, '{{::stealingAttributesTbl.focusId + $index}}', '-1', '=')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/job-stealing.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/job-stealing.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/job-stealing.pug
new file mode 100644
index 0000000..d10a02e
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/job-stealing.pug
@@ -0,0 +1,63 @@
+//-
+ 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
+
+-var model = 'backupItem.collision.JobStealing'
+-var stealingAttributes = `${model}.stealingAttributes`
+
+div
+ .details-row
+ +number('Active jobs threshold:', `${model}.activeJobsThreshold`, '"jsActiveJobsThreshold"', 'true', '95', '0',
+ 'Number of jobs that can be executed in parallel')
+ .details-row
+ +number('Wait jobs threshold:', `${model}.waitJobsThreshold`, '"jsWaitJobsThreshold"', 'true', '0', '0',
+ 'Job count threshold at which this node will start stealing jobs from other nodes')
+ .details-row
+ +number('Message expire time:', `${model}.messageExpireTime`, '"jsMessageExpireTime"', 'true', '1000', '1',
+ 'Message expire time in ms')
+ .details-row
+ +number('Maximum stealing attempts:', `${model}.maximumStealingAttempts`, '"jsMaximumStealingAttempts"', 'true', '5', '1',
+ 'Maximum number of attempts to steal job by another node')
+ .details-row
+ +checkbox('Stealing enabled', `${model}.stealingEnabled`, '"jsStealingEnabled"',
+ 'Node should attempt to steal jobs from other nodes')
+ .details-row
+ +java-class('External listener:', `${model}.externalCollisionListener`, '"jsExternalCollisionListener"', 'true', 'false',
+ 'Listener to be set for notification of external collision events', 'backupItem.collision.kind === "JobStealing"')
+ .details-row
+ +ignite-form-group
+ ignite-form-field-label
+ | Stealing attributes
+ ignite-form-group-tooltip
+ | Configuration parameter to enable stealing to/from only nodes that have these attributes set
+ ignite-form-group-add(ng-click='tableNewItem(stealingAttributesTbl)')
+ | Add stealing attribute
+ .group-content-empty(ng-if=`!((${stealingAttributes} && ${stealingAttributes}.length > 0) || tableNewItemActive(stealingAttributesTbl))`)
+ | Not defined
+ .group-content(ng-show=`(${stealingAttributes} && ${stealingAttributes}.length > 0) || tableNewItemActive(stealingAttributesTbl)`)
+ table.links-edit(id='attributes' st-table=stealingAttributes)
+ tbody
+ tr(ng-repeat=`item in ${stealingAttributes} track by $index`)
+ td.col-sm-12(ng-show='!tableEditing(stealingAttributesTbl, $index)')
+ a.labelFormField(ng-click='tableStartEdit(backupItem, stealingAttributesTbl, $index)') {{item.name}} = {{item.value}}
+ +btn-remove('tableRemove(backupItem, stealingAttributesTbl, $index)', '"Remove attribute"')
+ td.col-sm-12(ng-show='tableEditing(stealingAttributesTbl, $index)')
+ +table-pair-edit('stealingAttributesTbl', 'cur', 'Attribute name', 'Attribute value', false, false, '{{::stealingAttributesTbl.focusId + $index}}', '$index', '=')
+ tfoot(ng-show='tableNewItemActive(stealingAttributesTbl)')
+ tr
+ td.col-sm-12
+ +table-pair-edit('stealingAttributesTbl', 'new', 'Attribute name', 'Attribute value', false, false, '{{::stealingAttributesTbl.focusId + $index}}', '-1', '=')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/priority-queue.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/priority-queue.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/priority-queue.jade
deleted file mode 100644
index 6f52ee0..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/priority-queue.jade
+++ /dev/null
@@ -1,42 +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.jade
-
--var model = 'backupItem.collision.PriorityQueue'
-
-div
- .details-row
- +number('Parallel jobs number:', model + '.parallelJobsNumber', '"priorityParallelJobsNumber"', 'true', 'availableProcessors * 2', '1',
- 'Number of jobs that can be executed in parallel')
- .details-row
- +number('Waiting jobs number:', model + '.waitingJobsNumber', '"priorityWaitingJobsNumber"', 'true', 'Integer.MAX_VALUE', '0',
- 'Maximum number of jobs that are allowed to wait in waiting queue')
- .details-row
- +text('Priority attribute key:', model + '.priorityAttributeKey', '"priorityPriorityAttributeKey"', 'false', 'grid.task.priority',
- 'Task priority attribute key')
- .details-row
- +text('Job priority attribute key:', model + '.jobPriorityAttributeKey', '"priorityJobPriorityAttributeKey"', 'false', 'grid.job.priority',
- 'Job priority attribute key')
- .details-row
- +number('Default priority:', model + '.defaultPriority', '"priorityDefaultPriority"', 'true', '0', '0',
- 'Default priority to use if a job does not have priority attribute set')
- .details-row
- +number('Starvation increment:', model + '.starvationIncrement', '"priorityStarvationIncrement"', 'true', '1', '0',
- 'Value to increment job priority by every time a lower priority job gets behind a higher priority job')
- .details-row
- +checkbox('Starvation prevention enabled', model + '.starvationPreventionEnabled', '"priorityStarvationPreventionEnabled"',
- 'Job starvation prevention is enabled')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/priority-queue.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/priority-queue.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/priority-queue.pug
new file mode 100644
index 0000000..04056df
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/priority-queue.pug
@@ -0,0 +1,42 @@
+//-
+ 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
+
+-var model = 'backupItem.collision.PriorityQueue'
+
+div
+ .details-row
+ +number('Parallel jobs number:', `${model}.parallelJobsNumber`, '"priorityParallelJobsNumber"', 'true', 'availableProcessors * 2', '1',
+ 'Number of jobs that can be executed in parallel')
+ .details-row
+ +number('Waiting jobs number:', `${model}.waitingJobsNumber`, '"priorityWaitingJobsNumber"', 'true', 'Integer.MAX_VALUE', '0',
+ 'Maximum number of jobs that are allowed to wait in waiting queue')
+ .details-row
+ +text('Priority attribute key:', `${model}.priorityAttributeKey`, '"priorityPriorityAttributeKey"', 'false', 'grid.task.priority',
+ 'Task priority attribute key')
+ .details-row
+ +text('Job priority attribute key:', `${model}.jobPriorityAttributeKey`, '"priorityJobPriorityAttributeKey"', 'false', 'grid.job.priority',
+ 'Job priority attribute key')
+ .details-row
+ +number('Default priority:', `${model}.defaultPriority`, '"priorityDefaultPriority"', 'true', '0', '0',
+ 'Default priority to use if a job does not have priority attribute set')
+ .details-row
+ +number('Starvation increment:', `${model}.starvationIncrement`, '"priorityStarvationIncrement"', 'true', '1', '0',
+ 'Value to increment job priority by every time a lower priority job gets behind a higher priority job')
+ .details-row
+ +checkbox('Starvation prevention enabled', `${model}.starvationPreventionEnabled`, '"priorityStarvationPreventionEnabled"',
+ 'Job starvation prevention is enabled')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/communication.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/communication.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/communication.jade
deleted file mode 100644
index 047c9a2..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/communication.jade
+++ /dev/null
@@ -1,100 +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.jade
-
--var form = 'communication'
--var model = 'backupItem'
--var communication = model + '.communication'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Communication
- ignite-form-field-tooltip.tipLabel
- | Configuration of communication with other nodes by TCP/IP
- | Provide basic plumbing to send and receive grid messages and is utilized for all distributed grid operations#[br]
- | #[a(href="https://apacheignite.readme.io/docs/network-config" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +number('Timeout:', model + '.networkTimeout', '"commNetworkTimeout"', 'true', '5000', '1', 'Maximum timeout in milliseconds for network requests')
- .settings-row
- +number('Send retry delay:', model + '.networkSendRetryDelay', '"networkSendRetryDelay"', 'true', '1000', '1', 'Interval in milliseconds between message send retries')
- .settings-row
- +number('Send retry count:', model + '.networkSendRetryCount', '"networkSendRetryCount"', 'true', '3', '1', 'Message send retries count')
- .settings-row
- +number('Discovery startup delay:', model + '.discoveryStartupDelay', '"discoveryStartupDelay"', 'true', '60000', '1', 'This value is used to expire messages from waiting list whenever node discovery discrepancies happen')
- .settings-row
- +java-class('Communication listener:', communication + '.listener', '"comListener"', 'true', 'false', 'Listener of communication events')
- .settings-row
- +text-ip-address('Local IP address:', communication + '.localAddress', '"comLocalAddress"', 'true', '0.0.0.0',
- 'Local host address for socket binding<br/>\
- If not specified use all available addres on local host')
- .settings-row
- +number-min-max('Local port:', communication + '.localPort', '"comLocalPort"', 'true', '47100', '1024', '65535', 'Local port for socket binding')
- .settings-row
- +number('Local port range:', communication + '.localPortRange', '"comLocalPortRange"', 'true', '100', '1', 'Local port range for local host ports')
- .settings-row
- +number-min-max('Shared memory port:', communication + '.sharedMemoryPort', '"sharedMemoryPort"', 'true', '48100', '-1', '65535',
- 'Local port to accept shared memory connections<br/>\
- If set to #[b -1] shared memory communication will be disabled')
- .settings-row
- +number('Idle connection timeout:', communication + '.idleConnectionTimeout', '"idleConnectionTimeout"', 'true', '30000', '1',
- 'Maximum idle connection timeout upon which a connection to client will be closed')
- .settings-row
- +number('Connect timeout:', communication + '.connectTimeout', '"connectTimeout"', 'true', '5000', '0', 'Connect timeout used when establishing connection with remote nodes')
- .settings-row
- +number('Maximum connect timeout:', communication + '.maxConnectTimeout', '"maxConnectTimeout"', 'true', '600000', '0', 'Maximum connect timeout')
- .settings-row
- +number('Reconnect count:', communication + '.reconnectCount', '"comReconnectCount"', 'true', '10', '1',
- 'Maximum number of reconnect attempts used when establishing connection with remote nodes')
- .settings-row
- +number('Socket send buffer:', communication + '.socketSendBuffer', '"socketSendBuffer"', 'true', '32768', '0', 'Send buffer size for sockets created or accepted by this SPI')
- .settings-row
- +number('Socket receive buffer:', communication + '.socketReceiveBuffer', '"socketReceiveBuffer"', 'true', '32768', '0', 'Receive buffer size for sockets created or accepted by this SPI')
- .settings-row
- +number('Slow client queue limit:', communication + '.slowClientQueueLimit', '"slowClientQueueLimit"', 'true', '0', '0', 'Slow client queue limit')
- .settings-row
- +number('Ack send threshold:', communication + '.ackSendThreshold', '"ackSendThreshold"', 'true', '16', '1', 'Number of received messages per connection to node after which acknowledgment message is sent')
- .settings-row
- +number('Message queue limit:', communication + '.messageQueueLimit', '"messageQueueLimit"', 'true', '1024', '0', 'Message queue limit for incoming and outgoing messages')
- .settings-row
- +number('Unacknowledged messages:', communication + '.unacknowledgedMessagesBufferSize', '"unacknowledgedMessagesBufferSize"', 'true', '0', '0',
- 'Maximum number of stored unacknowledged messages per connection to node<br/>\
- If specified non zero value it should be\
- <ul>\
- <li>At least ack send threshold * 5</li>\
- <li>At least message queue limit * 5</li>\
- </ul>')
- .settings-row
- +number('Socket write timeout:', communication + '.socketWriteTimeout', '"socketWriteTimeout"', 'true', '2000', '0', 'Socket write timeout')
- .settings-row
- +number('Selectors count:', communication + '.selectorsCount', '"selectorsCount"', 'true', 'min(4, availableProcessors)', '1', 'Count of selectors te be used in TCP server')
- .settings-row
- +java-class('Address resolver:', communication + '.addressResolver', '"comAddressResolver"', 'true', 'false', 'Provides resolution between external and internal addresses')
- .settings-row
- +checkbox('Direct buffer', communication + '.directBuffer', '"directBuffer"',
- 'If value is true, then SPI will use ByteBuffer.allocateDirect(int) call<br/>\
- Otherwise, SPI will use ByteBuffer.allocate(int) call')
- .settings-row
- +checkbox('Direct send buffer', communication + '.directSendBuffer', '"directSendBuffer"', 'Flag defining whether direct send buffer should be used')
- .settings-row
- +checkbox('TCP_NODELAY option', communication + '.tcpNoDelay', '"tcpNoDelay"', 'Value for TCP_NODELAY socket option')
- .col-sm-6
- +preview-xml-java(model, 'clusterCommunication')
[08/15] ignite git commit: IGNITE-4659 Migration to Webpack 2.
Upgrade template engine from jade to pug.
Posted by an...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/failover.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/failover.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/failover.pug
new file mode 100644
index 0000000..e0c2357
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/failover.pug
@@ -0,0 +1,73 @@
+//-
+ 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
+
+-var model = 'backupItem'
+-var form = 'failoverSpi'
+-var failoverSpi = model + '.failoverSpi'
+-var failoverCustom = 'model.kind === "Custom"'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Failover configuration
+ ignite-form-field-tooltip.tipLabel
+ | Failover SPI provides ability to supply custom logic for handling failed execution of a grid job#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/fault-tolerance" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row(ng-init='failoverSpiTbl={type: "failoverSpi", model: "failoverSpi", focusId: "kind", ui: "failover-table"}')
+ +ignite-form-group()
+ ignite-form-field-label
+ | Failover SPI configurations
+ ignite-form-group-tooltip
+ | Failover SPI configurations
+ ignite-form-group-add(ng-click='tableNewItem(failoverSpiTbl)')
+ | Add failover SPI
+ .group-content-empty(ng-if=`!(${failoverSpi} && ${failoverSpi}.length > 0)`)
+ | Not defined
+ .group-content(ng-show=`${failoverSpi} && ${failoverSpi}.length > 0` ng-repeat=`model in ${failoverSpi} track by $index`)
+ hr(ng-if='$index != 0')
+ .settings-row
+ +dropdown-required-autofocus('Failover SPI:', 'model.kind', '"failoverKind" + $index', 'true', 'true', 'Choose Failover SPI', '[\
+ {value: "JobStealing", label: "Job stealing"},\
+ {value: "Never", label: "Never"},\
+ {value: "Always", label: "Always"},\
+ {value: "Custom", label: "Custom"}\
+ ]', 'Provides ability to supply custom logic for handling failed execution of a grid job\
+ <ul>\
+ <li>Job stealing - Supports job stealing from over-utilized nodes to under-utilized nodes</li>\
+ <li>Never - Jobs are ordered as they arrived</li>\
+ <li>Always - Jobs are first ordered by their priority</li>\
+ <li>Custom - Jobs are activated immediately on arrival to mapped node</li>\
+ <li>Default - Default FailoverSpi implementation</li>\
+ </ul>')
+
+ +table-remove-button(failoverSpi, 'Remove Failover SPI')
+ .settings-row(ng-show='model.kind === "JobStealing"')
+ +number('Maximum failover attempts:', 'model.JobStealing.maximumFailoverAttempts', '"jsMaximumFailoverAttempts" + $index', 'true', '5', '0',
+ 'Maximum number of attempts to execute a failed job on another node')
+ .settings-row(ng-show='model.kind === "Always"')
+ +number('Maximum failover attempts:', 'model.Always.maximumFailoverAttempts', '"alwaysMaximumFailoverAttempts" + $index', 'true', '5', '0',
+ 'Maximum number of attempts to execute a failed job on another node')
+ .settings-row(ng-show=failoverCustom)
+ +java-class('SPI implementation', 'model.Custom.class', '"failoverSpiClass" + $index', 'true', failoverCustom,
+ 'Custom FailoverSpi implementation class name.', failoverCustom)
+ .col-sm-6
+ +preview-xml-java(model, 'clusterFailover')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/general.jade
deleted file mode 100644
index b2ce71f..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/general.jade
+++ /dev/null
@@ -1,76 +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.jade
-
--var form = 'general'
--var model = 'backupItem'
--var modelDiscoveryKind = model + '.discovery.kind'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle)
- ignite-form-panel-chevron
- label General
- ignite-form-field-tooltip.tipLabel
- | Common cluster configuration#[br]
- | #[a(href="https://apacheignite.readme.io/docs/clustering" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body
- .col-sm-6
- .settings-row
- +text('Name:', model + '.name', '"clusterName"', 'true', 'Input name', 'Grid name allows to indicate to what grid this particular grid instance belongs to')
- .settings-row
- +caches(model, 'Select caches to start in cluster or add a new cache')
- .settings-row
- +text-ip-address('Local host:', model + '.localHost', '"localHost"', 'true', '0.0.0.0',
- 'System-wide local address or host for all Ignite components to bind to<br/>\
- If not defined then Ignite tries to use local wildcard address<br/>\
- That means that all services will be available on all network interfaces of the host machine')
- .settings-row
- +dropdown('Discovery:', model + '.discovery.kind', '"discovery"', 'true', 'Choose discovery', 'discoveries',
- 'Discovery allows to discover remote nodes in grid\
- <ul>\
- <li>Static IPs - IP Finder which works only with pre configured list of IP addresses specified</li>\
- <li>Multicast - Multicast based IP finder</li>\
- <li>AWS S3 - AWS S3 based IP finder that automatically discover cluster nodes on Amazon EC2 cloud</li>\
- <li>Apache jclouds - Apache jclouds multi cloud toolkit based IP finder for cloud platforms with unstable IP addresses</li>\
- <li>Google cloud storage - Google Cloud Storage based IP finder that automatically discover cluster nodes on Google Compute Engine cluster</li>\
- <li>JDBC - JDBC based IP finder that use database to store node IP addres</li>\
- <li>Shared filesystem - Shared filesystem based IP finder that use file to store node IP address</li>\
- <li>Apache ZooKeeper - Apache ZooKeeper based IP finder when you use ZooKeeper to coordinate your distributed environment</li>\
- </ul>')
- .settings-row
- .panel-details
- div(ng-if='#{modelDiscoveryKind} === "Cloud"')
- include ./general/discovery/cloud.jade
- div(ng-if='#{modelDiscoveryKind} === "GoogleStorage"')
- include ./general/discovery/google.jade
- div(ng-if='#{modelDiscoveryKind} === "Jdbc"')
- include ./general/discovery/jdbc.jade
- div(ng-if='#{modelDiscoveryKind} === "Multicast"')
- include ./general/discovery/multicast.jade
- div(ng-if='#{modelDiscoveryKind} === "S3"')
- include ./general/discovery/s3.jade
- div(ng-if='#{modelDiscoveryKind} === "SharedFs"')
- include ./general/discovery/shared.jade
- div(ng-if='#{modelDiscoveryKind} === "Vm"')
- include ./general/discovery/vm.jade
- div(ng-if='#{modelDiscoveryKind} === "ZooKeeper"')
- include ./general/discovery/zookeeper.jade
- .col-sm-6
- -var model = 'backupItem'
- +preview-xml-java(model, 'clusterCaches', 'caches')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/general.pug
new file mode 100644
index 0000000..be56a6c
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/general.pug
@@ -0,0 +1,76 @@
+//-
+ 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
+
+-var form = 'general'
+-var model = 'backupItem'
+-var modelDiscoveryKind = model + '.discovery.kind'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle)
+ ignite-form-panel-chevron
+ label General
+ ignite-form-field-tooltip.tipLabel
+ | Common cluster configuration#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/clustering" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body
+ .col-sm-6
+ .settings-row
+ +text('Name:', `${model}.name`, '"clusterName"', 'true', 'Input name', 'Grid name allows to indicate to what grid this particular grid instance belongs to')
+ .settings-row
+ +caches(model, 'Select caches to start in cluster or add a new cache')
+ .settings-row
+ +text-ip-address('Local host:', `${model}.localHost`, '"localHost"', 'true', '0.0.0.0',
+ 'System-wide local address or host for all Ignite components to bind to<br/>\
+ If not defined then Ignite tries to use local wildcard address<br/>\
+ That means that all services will be available on all network interfaces of the host machine')
+ .settings-row
+ +dropdown('Discovery:', `${model}.discovery.kind`, '"discovery"', 'true', 'Choose discovery', 'discoveries',
+ 'Discovery allows to discover remote nodes in grid\
+ <ul>\
+ <li>Static IPs - IP Finder which works only with pre configured list of IP addresses specified</li>\
+ <li>Multicast - Multicast based IP finder</li>\
+ <li>AWS S3 - AWS S3 based IP finder that automatically discover cluster nodes on Amazon EC2 cloud</li>\
+ <li>Apache jclouds - Apache jclouds multi cloud toolkit based IP finder for cloud platforms with unstable IP addresses</li>\
+ <li>Google cloud storage - Google Cloud Storage based IP finder that automatically discover cluster nodes on Google Compute Engine cluster</li>\
+ <li>JDBC - JDBC based IP finder that use database to store node IP addres</li>\
+ <li>Shared filesystem - Shared filesystem based IP finder that use file to store node IP address</li>\
+ <li>Apache ZooKeeper - Apache ZooKeeper based IP finder when you use ZooKeeper to coordinate your distributed environment</li>\
+ </ul>')
+ .settings-row
+ .panel-details
+ div(ng-if=`${modelDiscoveryKind} === 'Cloud'`)
+ include ./general/discovery/cloud
+ div(ng-if=`${modelDiscoveryKind} === 'GoogleStorage'`)
+ include ./general/discovery/google
+ div(ng-if=`${modelDiscoveryKind} === 'Jdbc'`)
+ include ./general/discovery/jdbc
+ div(ng-if=`${modelDiscoveryKind} === 'Multicast'`)
+ include ./general/discovery/multicast
+ div(ng-if=`${modelDiscoveryKind} === 'S3'`)
+ include ./general/discovery/s3
+ div(ng-if=`${modelDiscoveryKind} === 'SharedFs'`)
+ include ./general/discovery/shared
+ div(ng-if=`${modelDiscoveryKind} === 'Vm'`)
+ include ./general/discovery/vm
+ div(ng-if=`${modelDiscoveryKind} === 'ZooKeeper'`)
+ include ./general/discovery/zookeeper
+ .col-sm-6
+ -var model = 'backupItem'
+ +preview-xml-java(model, 'clusterCaches', 'caches')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/cloud.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/cloud.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/cloud.jade
deleted file mode 100644
index 52fb21b..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/cloud.jade
+++ /dev/null
@@ -1,134 +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.jade
-
--var discoveryKind = 'Cloud'
--var required = 'backupItem.discovery.kind == "' + discoveryKind + '"'
--var model = 'backupItem.discovery.Cloud'
--var regions = model + '.regions'
--var zones = model + '.zones'
--var formRegions = 'discoveryCloudRegions'
--var formZones = 'discoveryCloudZones'
-
-div
- .details-row
- +text('Credential:', model + '.credential', '"credential"', 'false', 'Input cloud credential',
- 'Credential that is used during authentication on the cloud<br/>\
- Depending on a cloud platform it can be a password or access key')
- .details-row
- +text('Path to credential:', model + '.credentialPath', '"credentialPath"', 'false', 'Input pathto credential',
- 'Path to a credential that is used during authentication on the cloud<br/>\
- Access key or private key should be stored in a plain or PEM file without a passphrase')
- .details-row
- +text('Identity:', model + '.identity', '"' + discoveryKind + 'Identity"', required, 'Input identity',
- 'Identity that is used as a user name during a connection to the cloud<br/>\
- Depending on a cloud platform it can be an email address, user name, etc')
- .details-row
- +text('Provider:', model + '.provider', '"' + discoveryKind + 'Provider"', required, 'Input provider', 'Cloud provider to use')
- .details-row
- -var form = formRegions;
- +ignite-form-group(ng-model=regions ng-form=form)
- -var uniqueTip = 'Such region already exists!'
-
- ignite-form-field-label
- | Regions
- ignite-form-group-tooltip
- | List of regions where VMs are located#[br]
- | If the regions are not set then every region, that a cloud provider has, will be investigated. This could lead to significant performance degradation#[br]
- | Note, that some cloud providers, like Google Compute Engine, doesn't have a notion of a region. For such providers regions are redundant
- ignite-form-group-add(ng-click='group.add = [{}]')
- | Add new region
-
- .group-content(ng-if='#{regions}.length')
- -var model = 'field.model';
- -var name = '"edit" + $index'
- -var valid = form + '[' + name + '].$valid'
- -var save = regions + '[$index] = ' + model
-
- div(ng-repeat='model in #{regions} track by $index')
- label.col-xs-12.col-sm-12.col-md-12(ng-init='field = {}')
- .indexField
- | {{ $index+1 }})
- +table-remove-button(regions, 'Remove region')
- span(ng-hide='field.edit')
- a.labelFormField(ng-click='field.edit = true; #{model} = model;') {{ model }}
- span(ng-if='field.edit')
- +table-text-field(name, model, regions, valid, save, 'Region name', false)
- +table-save-button(valid, save, false)
- +unique-feedback(name, uniqueTip)
-
- .group-content(ng-repeat='field in group.add')
- -var model = 'field.new';
- -var name = '"new"'
- -var valid = form + '[' + name + '].$valid'
- -var save = regions + '.push(' + model + ')'
-
- div
- label.col-xs-12.col-sm-12.col-md-12
- +table-text-field(name, model, regions, valid, save, 'Region name', true)
- +table-save-button(valid, save, false)
- +unique-feedback(name, uniqueTip)
-
- .group-content-empty(ng-if='!(#{regions}.length) && !group.add.length')
- | Not defined
- .details-row
- -var form = formZones;
- +ignite-form-group(ng-model=zones ng-form=form)
- -var uniqueTip = 'Such zone already exists!'
-
- ignite-form-field-label
- | Zones
- ignite-form-group-tooltip
- | List of zones where VMs are located#[br]
- | If the zones are not set then every zone from specified regions, will be taken into account#[br]
- | Note, that some cloud providers, like Rackspace, doesn't have a notion of a zone. For such providers zones are redundant
- ignite-form-group-add(ng-click='group.add = [{}]')
- | Add new zone
-
- -var form = formZones;
- .group-content(ng-if='#{zones}.length')
- -var model = 'field.model';
- -var name = '"edit" + $index'
- -var valid = form + '[' + name + '].$valid'
- -var save = zones + '[$index] = ' + model
-
- div(ng-repeat='model in #{zones} track by $index')
- label.col-xs-12.col-sm-12.col-md-12(ng-init='field = {}')
- .indexField
- | {{ $index+1 }})
- +table-remove-button(zones, 'Remove zone')
- span(ng-hide='field.edit')
- a.labelFormField(ng-click='field.edit = true; #{model} = model;') {{ model }}
- span(ng-if='field.edit')
- +table-text-field(name, model, zones, valid, save, 'Zone name', false)
- +table-save-button(valid, save, false)
- +unique-feedback(name, uniqueTip)
-
- .group-content(ng-repeat='field in group.add')
- -var model = 'field.new';
- -var name = '"new"'
- -var valid = form + '[' + name + '].$valid'
- -var save = zones + '.push(' + model + ')'
-
- div
- label.col-xs-12.col-sm-12.col-md-12
- +table-text-field(name, model, zones, valid, save, 'Zone name', true)
- +table-save-button(valid, save, true)
- +unique-feedback(name, uniqueTip)
-
- .group-content-empty(ng-if='!(#{zones}.length) && !group.add.length')
- | Not defined
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/cloud.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/cloud.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/cloud.pug
new file mode 100644
index 0000000..b127a4c
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/cloud.pug
@@ -0,0 +1,134 @@
+//-
+ 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
+
+-var discoveryKind = 'Cloud'
+-var required = 'backupItem.discovery.kind == "' + discoveryKind + '"'
+-var model = 'backupItem.discovery.Cloud'
+-var regions = `${model}.regions`
+-var zones = `${model}.zones`
+-var formRegions = 'discoveryCloudRegions'
+-var formZones = 'discoveryCloudZones'
+
+div
+ .details-row
+ +text('Credential:', `${model}.credential`, '"credential"', 'false', 'Input cloud credential',
+ 'Credential that is used during authentication on the cloud<br/>\
+ Depending on a cloud platform it can be a password or access key')
+ .details-row
+ +text('Path to credential:', `${model}.credentialPath`, '"credentialPath"', 'false', 'Input pathto credential',
+ 'Path to a credential that is used during authentication on the cloud<br/>\
+ Access key or private key should be stored in a plain or PEM file without a passphrase')
+ .details-row
+ +text('Identity:', `${model}.identity`, '"' + discoveryKind + 'Identity"', required, 'Input identity',
+ 'Identity that is used as a user name during a connection to the cloud<br/>\
+ Depending on a cloud platform it can be an email address, user name, etc')
+ .details-row
+ +text('Provider:', `${model}.provider`, '"' + discoveryKind + 'Provider"', required, 'Input provider', 'Cloud provider to use')
+ .details-row
+ -var form = formRegions;
+ +ignite-form-group(ng-model=`${regions}` ng-form=form)
+ -var uniqueTip = 'Such region already exists!'
+
+ ignite-form-field-label
+ | Regions
+ ignite-form-group-tooltip
+ | List of regions where VMs are located#[br]
+ | If the regions are not set then every region, that a cloud provider has, will be investigated. This could lead to significant performance degradation#[br]
+ | Note, that some cloud providers, like Google Compute Engine, doesn't have a notion of a region. For such providers regions are redundant
+ ignite-form-group-add(ng-click='group.add = [{}]')
+ | Add new region
+
+ .group-content(ng-if=`${regions}.length`)
+ -var model = 'field.model';
+ -var name = '"edit" + $index'
+ -var valid = `${form}[${name}].$valid`
+ -var save = `${regions}[$index] = ${model}`
+
+ div(ng-repeat=`model in ${regions} track by $index`)
+ label.col-xs-12.col-sm-12.col-md-12(ng-init='field = {}')
+ .indexField
+ | {{ $index+1 }})
+ +table-remove-button(regions, 'Remove region')
+ span(ng-hide='field.edit')
+ a.labelFormField(ng-click=`field.edit = true; ${model} = model;`) {{ model }}
+ span(ng-if='field.edit')
+ +table-text-field(name, model, regions, valid, save, 'Region name', false)
+ +table-save-button(valid, save, false)
+ +unique-feedback(name, uniqueTip)
+
+ .group-content(ng-repeat='field in group.add')
+ -var model = 'field.new';
+ -var name = '"new"'
+ -var valid = `${form}[${name}].$valid`
+ -var save = `${regions}.push(${model})`
+
+ div
+ label.col-xs-12.col-sm-12.col-md-12
+ +table-text-field(name, model, regions, valid, save, 'Region name', true)
+ +table-save-button(valid, save, false)
+ +unique-feedback(name, uniqueTip)
+
+ .group-content-empty(ng-if=`!(${regions}.length) && !group.add.length`)
+ | Not defined
+ .details-row
+ -var form = formZones;
+ +ignite-form-group(ng-model=zones ng-form=form)
+ -var uniqueTip = 'Such zone already exists!'
+
+ ignite-form-field-label
+ | Zones
+ ignite-form-group-tooltip
+ | List of zones where VMs are located#[br]
+ | If the zones are not set then every zone from specified regions, will be taken into account#[br]
+ | Note, that some cloud providers, like Rackspace, doesn't have a notion of a zone. For such providers zones are redundant
+ ignite-form-group-add(ng-click='group.add = [{}]')
+ | Add new zone
+
+ -var form = formZones;
+ .group-content(ng-if=`${zones}.length`)
+ -var model = 'field.model';
+ -var name = '"edit" + $index'
+ -var valid = `${form}[${name}].$valid`
+ -var save = `${zones}[$index] = ${model}`
+
+ div(ng-repeat=`model in ${zones} track by $index`)
+ label.col-xs-12.col-sm-12.col-md-12(ng-init='field = {}')
+ .indexField
+ | {{ $index+1 }})
+ +table-remove-button(zones, 'Remove zone')
+ span(ng-hide='field.edit')
+ a.labelFormField(ng-click=`field.edit = true; ${model} = model;`) {{ model }}
+ span(ng-if='field.edit')
+ +table-text-field(name, model, zones, valid, save, 'Zone name', false)
+ +table-save-button(valid, save, false)
+ +unique-feedback(name, uniqueTip)
+
+ .group-content(ng-repeat='field in group.add')
+ -var model = 'field.new';
+ -var name = '"new"'
+ -var valid = `${form}[${name}].$valid`
+ -var save = `${zones}.push(${model})`
+
+ div
+ label.col-xs-12.col-sm-12.col-md-12
+ +table-text-field(name, model, zones, valid, save, 'Zone name', true)
+ +table-save-button(valid, save, true)
+ +unique-feedback(name, uniqueTip)
+
+ .group-content-empty(ng-if=`!(${zones}.length) && !group.add.length`)
+ | Not defined
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/google.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/google.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/google.jade
deleted file mode 100644
index c12bd04..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/google.jade
+++ /dev/null
@@ -1,38 +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.jade
-
-
--var discoveryKind = 'GoogleStorage'
--var required = 'backupItem.discovery.kind == "' + discoveryKind + '"'
--var model = 'backupItem.discovery.GoogleStorage'
-
-div
- .details-row
- +text('Project name:', model + '.projectName', '"' + discoveryKind + 'ProjectName"', required, 'Input project name', '' +
- 'Google Cloud Platforms project name<br/>\
- Usually this is an auto generated project number(ex. 208709979073) that can be found in "Overview" section of Google Developer Console')
- .details-row
- +text('Bucket name:', model + '.bucketName', '"' + discoveryKind + 'BucketName"', required, 'Input bucket name',
- 'Google Cloud Storage bucket name<br/>\
- If the bucket does not exist Ignite will automatically create it<br/>\
- However the name must be unique across whole Google Cloud Storage and Service Account Id must be authorized to perform this operation')
- .details-row
- +text('Private key path:', model + '.serviceAccountP12FilePath', '"' + discoveryKind + 'ServiceAccountP12FilePath"', required, 'Input private key path',
- 'Full path to the private key in PKCS12 format of the Service Account')
- .details-row
- +text('Account id:', model + '.serviceAccountId', '"' + discoveryKind + 'ServiceAccountId"', required, 'Input account id', 'Service account ID (typically an e-mail address)')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/google.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/google.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/google.pug
new file mode 100644
index 0000000..929350e
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/google.pug
@@ -0,0 +1,38 @@
+//-
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+include /app/helpers/jade/mixins
+
+
+-var discoveryKind = 'GoogleStorage'
+-var required = `backupItem.discovery.kind == '${discoveryKind}'`
+-var model = 'backupItem.discovery.GoogleStorage'
+
+div
+ .details-row
+ +text('Project name:', `${model}.projectName`, `'${discoveryKind}ProjectName'`, required, 'Input project name', '' +
+ 'Google Cloud Platforms project name<br/>\
+ Usually this is an auto generated project number(ex. 208709979073) that can be found in "Overview" section of Google Developer Console')
+ .details-row
+ +text('Bucket name:', `${model}.bucketName`, `'${discoveryKind}BucketName'`, required, 'Input bucket name',
+ 'Google Cloud Storage bucket name<br/>\
+ If the bucket does not exist Ignite will automatically create it<br/>\
+ However the name must be unique across whole Google Cloud Storage and Service Account Id must be authorized to perform this operation')
+ .details-row
+ +text('Private key path:', `${model}.serviceAccountP12FilePath`, `'${discoveryKind}ServiceAccountP12FilePath'`, required, 'Input private key path',
+ 'Full path to the private key in PKCS12 format of the Service Account')
+ .details-row
+ +text('Account id:', `${model}.serviceAccountId`, `'${discoveryKind}ServiceAccountId'`, required, 'Input account id', 'Service account ID (typically an e-mail address)')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/jdbc.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/jdbc.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/jdbc.jade
deleted file mode 100644
index 4e4246d..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/jdbc.jade
+++ /dev/null
@@ -1,31 +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.jade
-
--var model = 'backupItem.discovery.Jdbc'
--var required = 'backupItem.discovery.kind === "Jdbc"'
-
-div
- .details-row
- +checkbox('DB schema should be initialized by Ignite', model + '.initSchema', '"initSchema"',
- 'Flag indicating whether DB schema should be initialized by Ignite or was explicitly created by user')
- .details-row
- +text('Data source bean name:', model + '.dataSourceBean',
- '"dataSourceBean"', required, 'Input bean name', 'Name of the data source bean in Spring context')
- .details-row
- +dialect('Dialect:', model + '.dialect', '"dialect"', required,
- 'Dialect of SQL implemented by a particular RDBMS:', 'Generic JDBC dialect', 'Choose JDBC dialect')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/jdbc.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/jdbc.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/jdbc.pug
new file mode 100644
index 0000000..4e9a430
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/jdbc.pug
@@ -0,0 +1,31 @@
+//-
+ 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
+
+-var model = 'backupItem.discovery.Jdbc'
+-var required = 'backupItem.discovery.kind === "Jdbc"'
+
+div
+ .details-row
+ +checkbox('DB schema should be initialized by Ignite', `${model}.initSchema`, '"initSchema"',
+ 'Flag indicating whether DB schema should be initialized by Ignite or was explicitly created by user')
+ .details-row
+ +text('Data source bean name:', `${model}.dataSourceBean`,
+ '"dataSourceBean"', required, 'Input bean name', 'Name of the data source bean in Spring context')
+ .details-row
+ +dialect('Dialect:', `${model}.dialect`, '"dialect"', required,
+ 'Dialect of SQL implemented by a particular RDBMS:', 'Generic JDBC dialect', 'Choose JDBC dialect')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/multicast.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/multicast.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/multicast.jade
deleted file mode 100644
index 6a7e9fa..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/multicast.jade
+++ /dev/null
@@ -1,99 +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.jade
-
--var form = 'general'
--var model = 'backupItem.discovery.Multicast'
--var addresses = model + '.addresses'
-
-div
- .details-row
- +text-ip-address('IP address:', model + '.multicastGroup', '"multicastGroup"', 'true', '228.1.2.4', 'IP address of multicast group')
- .details-row
- +number-min-max('Port number:', model + '.multicastPort', '"multicastPort"', 'true', '47400', '0', '65535', 'Port number which multicast messages are sent to')
- .details-row
- +number('Waits for reply:', model + '.responseWaitTime', '"responseWaitTime"', 'true', '500', '0',
- 'Time in milliseconds IP finder waits for reply to multicast address request')
- .details-row
- +number('Attempts count:', model + '.addressRequestAttempts', '"addressRequestAttempts"', 'true', '2', '0',
- 'Number of attempts to send multicast address request<br/>\
- IP finder re - sends request only in case if no reply for previous request is received')
- .details-row
- +text-ip-address('Local address:', model + '.localAddress', '"localAddress"', 'true', '0.0.0.0',
- 'Local host address used by this IP finder<br/>\
- If provided address is non - loopback then multicast socket is bound to this interface<br/>\
- If local address is not set or is any local address then IP finder creates multicast sockets for all found non - loopback addresses')
- .details-row
- -var form = 'discoveryMulticastAddresses';
-
- +ignite-form-group(ng-model=addresses ng-form=form)
- -var uniqueTip = 'Such IP address already exists!'
- -var ipAddressTip = 'Invalid IP address!'
-
- ignite-form-field-label
- | Addresses
- ignite-form-group-tooltip
- | Addresses may be represented as follows:#[br]
- ul: li IP address (e.g. 127.0.0.1, 9.9.9.9, etc)
- li IP address and port (e.g. 127.0.0.1:47500, 9.9.9.9:47501, etc)
- li IP address and port range (e.g. 127.0.0.1:47500..47510, 9.9.9.9:47501..47504, etc)
- li Hostname (e.g. host1.com, host2, etc)
- li Hostname and port (e.g. host1.com:47500, host2:47502, etc)
- li Hostname and port range (e.g. host1.com:47500..47510, host2:47502..47508, etc)
- | If port is 0 or not provided then default port will be used (depends on discovery SPI configuration)#[br]
- | If port range is provided (e.g. host:port1..port2) the following should be considered:#[br]
- ul: li port1 < port2 should be true
- li Both port1 and port2 should be greater than 0
- ignite-form-group-add(ng-click='group.add = [{}]')
- | Add new address
-
- .group-content(ng-if='#{addresses}.length')
- -var model = 'obj.model';
- -var name = '"edit" + $index'
- -var valid = form + '[' + name + '].$valid'
- -var save = addresses + '[$index] = ' + model
-
- div(ng-repeat='model in #{addresses} track by $index' ng-init='obj = {}')
- label.col-xs-12.col-sm-12.col-md-12
- .indexField
- | {{ $index+1 }})
- +table-remove-button(addresses, 'Remove address')
-
- +ignite-form-field-down(ng-if='!$last' ng-hide='field.edit' data-ng-model='model' data-models=addresses)
- +ignite-form-field-up(ng-if='!$first' ng-hide='field.edit' data-ng-model='model' data-models=addresses)
-
- span(ng-hide='field.edit')
- a.labelFormField(ng-click='field.edit = true; #{model} = model;') {{ model }}
- span(ng-if='field.edit')
- +table-address-field(name, model, addresses, valid, save, false, true)
- +table-save-button(valid, save, false)
- +unique-feedback(name, uniqueTip)
-
- .group-content(ng-repeat='field in group.add')
- -var model = 'new';
- -var name = '"new"'
- -var valid = form + '[' + name + '].$valid'
- -var save = addresses + '.push(' + model + ')'
-
- div
- label.col-xs-12.col-sm-12.col-md-12
- +table-address-field(name, model, addresses, valid, save, true, true)
- +table-save-button(valid, save, true)
- +unique-feedback(name, uniqueTip)
-
- .group-content-empty(ng-if='!(#{addresses}.length) && !group.add.length')
- | Not defined
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/multicast.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/multicast.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/multicast.pug
new file mode 100644
index 0000000..f865fd3
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/multicast.pug
@@ -0,0 +1,99 @@
+//-
+ 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
+
+-var form = 'general'
+-var model = 'backupItem.discovery.Multicast'
+-var addresses = model + '.addresses'
+
+div
+ .details-row
+ +text-ip-address('IP address:', `${model}.multicastGroup`, '"multicastGroup"', 'true', '228.1.2.4', 'IP address of multicast group')
+ .details-row
+ +number-min-max('Port number:', `${model}.multicastPort`, '"multicastPort"', 'true', '47400', '0', '65535', 'Port number which multicast messages are sent to')
+ .details-row
+ +number('Waits for reply:', `${model}.responseWaitTime`, '"responseWaitTime"', 'true', '500', '0',
+ 'Time in milliseconds IP finder waits for reply to multicast address request')
+ .details-row
+ +number('Attempts count:', `${model}.addressRequestAttempts`, '"addressRequestAttempts"', 'true', '2', '0',
+ 'Number of attempts to send multicast address request<br/>\
+ IP finder re - sends request only in case if no reply for previous request is received')
+ .details-row
+ +text-ip-address('Local address:', `${model}.localAddress`, '"localAddress"', 'true', '0.0.0.0',
+ 'Local host address used by this IP finder<br/>\
+ If provided address is non - loopback then multicast socket is bound to this interface<br/>\
+ If local address is not set or is any local address then IP finder creates multicast sockets for all found non - loopback addresses')
+ .details-row
+ -var form = 'discoveryMulticastAddresses';
+
+ +ignite-form-group(ng-model=`${addresses}` ng-form=form)
+ -var uniqueTip = 'Such IP address already exists!'
+ -var ipAddressTip = 'Invalid IP address!'
+
+ ignite-form-field-label
+ | Addresses
+ ignite-form-group-tooltip
+ | Addresses may be represented as follows:#[br]
+ ul: li IP address (e.g. 127.0.0.1, 9.9.9.9, etc)
+ li IP address and port (e.g. 127.0.0.1:47500, 9.9.9.9:47501, etc)
+ li IP address and port range (e.g. 127.0.0.1:47500..47510, 9.9.9.9:47501..47504, etc)
+ li Hostname (e.g. host1.com, host2, etc)
+ li Hostname and port (e.g. host1.com:47500, host2:47502, etc)
+ li Hostname and port range (e.g. host1.com:47500..47510, host2:47502..47508, etc)
+ | If port is 0 or not provided then default port will be used (depends on discovery SPI configuration)#[br]
+ | If port range is provided (e.g. host:port1..port2) the following should be considered:#[br]
+ ul: li port1 < port2 should be true
+ li Both port1 and port2 should be greater than 0
+ ignite-form-group-add(ng-click='group.add = [{}]')
+ | Add new address
+
+ .group-content(ng-if=`${addresses}.length`)
+ -var model = 'obj.model';
+ -var name = '"edit" + $index'
+ -var valid = `${form}[${name}].$valid`
+ -var save = `${addresses}[$index] = ${model}`
+
+ div(ng-repeat=`model in ${addresses} track by $index` ng-init='obj = {}')
+ label.col-xs-12.col-sm-12.col-md-12
+ .indexField
+ | {{ $index+1 }})
+ +table-remove-button(addresses, 'Remove address')
+
+ +ignite-form-field-down(ng-if='!$last' ng-hide='field.edit' data-ng-model='model' data-models=addresses)
+ +ignite-form-field-up(ng-if='!$first' ng-hide='field.edit' data-ng-model='model' data-models=addresses)
+
+ span(ng-hide='field.edit')
+ a.labelFormField(ng-click=`field.edit = true; ${model} = model;`) {{ model }}
+ span(ng-if='field.edit')
+ +table-address-field(name, model, addresses, valid, save, false, true)
+ +table-save-button(valid, save, false)
+ +unique-feedback(name, uniqueTip)
+
+ .group-content(ng-repeat='field in group.add')
+ -var model = 'new';
+ -var name = '"new"'
+ -var valid = `${form}[${name}].$valid`
+ -var save = `${addresses}.push(${model})`
+
+ div
+ label.col-xs-12.col-sm-12.col-md-12
+ +table-address-field(name, model, addresses, valid, save, true, true)
+ +table-save-button(valid, save, true)
+ +unique-feedback(name, uniqueTip)
+
+ .group-content-empty(ng-if=`!(${addresses}.length) && !group.add.length`)
+ | Not defined
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/s3.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/s3.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/s3.jade
deleted file mode 100644
index e5eaff3..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/s3.jade
+++ /dev/null
@@ -1,27 +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.jade
-
--var discoveryKind = 'S3'
--var required = 'backupItem.discovery.kind == "' + discoveryKind + '"'
--var model = 'backupItem.discovery.S3'
-
-div
- .details-row
- +text('Bucket name:', model + '.bucketName', '"' + discoveryKind + 'BucketName"', required, 'Input bucket name', 'Bucket name for IP finder')
- .details-row
- label Note, AWS credentials will be generated as stub
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/s3.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/s3.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/s3.pug
new file mode 100644
index 0000000..ed6e20e
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/s3.pug
@@ -0,0 +1,27 @@
+//-
+ 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
+
+-var discoveryKind = 'S3'
+-var required = `backupItem.discovery.kind == '${discoveryKind}'`
+-var model = 'backupItem.discovery.S3'
+
+div
+ .details-row
+ +text('Bucket name:', `${model}.bucketName`, `${discoveryKind}BucketName'`, required, 'Input bucket name', 'Bucket name for IP finder')
+ .details-row
+ label Note, AWS credentials will be generated as stub
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/shared.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/shared.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/shared.jade
deleted file mode 100644
index ddd9bfa..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/shared.jade
+++ /dev/null
@@ -1,23 +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.jade
-
--var model = 'backupItem.discovery.SharedFs'
-
-div
- .details-row
- +text('File path:', model + '.path', '"path"', 'false', 'disco/tcp', 'Shared path')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/shared.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/shared.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/shared.pug
new file mode 100644
index 0000000..8eb9736
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/shared.pug
@@ -0,0 +1,23 @@
+//-
+ 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
+
+-var model = 'backupItem.discovery.SharedFs'
+
+div
+ .details-row
+ +text('File path:', `${model}.path`, '"path"', 'false', 'disco/tcp', 'Shared path')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/vm.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/vm.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/vm.jade
deleted file mode 100644
index 46ebae0..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/vm.jade
+++ /dev/null
@@ -1,79 +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.jade
-
--var model = 'backupItem.discovery.Vm'
--var addresses = model + '.addresses'
--var form = 'discoveryVmAddresses'
-
-.details-row
- +ignite-form-group(ng-form=form ng-model=addresses)
- -var uniqueTip = 'Such IP address already exists!'
-
- ignite-form-field-label
- | Addresses
- ignite-form-group-tooltip
- | Addresses may be represented as follows:
- ul: li IP address (e.g. 127.0.0.1, 9.9.9.9, etc)
- li IP address and port (e.g. 127.0.0.1:47500, 9.9.9.9:47501, etc)
- li IP address and port range (e.g. 127.0.0.1:47500..47510, 9.9.9.9:47501..47504, etc)
- li Hostname (e.g. host1.com, host2, etc)
- li Hostname and port (e.g. host1.com:47500, host2:47502, etc)
- li Hostname and port range (e.g. host1.com:47500..47510, host2:47502..47508, etc)
- | If port is 0 or not provided then default port will be used (depends on discovery SPI configuration)#[br]
- | If port range is provided (e.g. host:port1..port2) the following should be considered:
- ul: li port1 < port2 should be true
- li Both port1 and port2 should be greater than 0
- ignite-form-group-add(ng-click='group.add = [{}]')
- | Add new address
-
- .group-content(ng-if='#{addresses}.length')
- -var model = 'obj.model';
- -var name = '"edit" + $index'
- -var valid = form + '[' + name + '].$valid'
- -var save = addresses + '[$index] = ' + model
-
- div(ng-repeat='model in #{addresses} track by $index' ng-init='obj = {}')
- label.col-xs-12.col-sm-12.col-md-12
- .indexField
- | {{ $index+1 }})
- +table-remove-button(addresses, 'Remove address')
-
- +ignite-form-field-down(ng-if='!$last' ng-hide='field.edit' data-ng-model='model' data-models=addresses)
- +ignite-form-field-up(ng-if='!$first' ng-hide='field.edit' data-ng-model='model' data-models=addresses)
-
- span(ng-hide='field.edit')
- a.labelFormField(ng-click='field.edit = true; #{model} = model;') {{ model }}
- span(ng-if='field.edit')
- +table-address-field(name, model, addresses, valid, save, false, true)
- +table-save-button(valid, save, false)
- +unique-feedback(name, uniqueTip)
-
- .group-content(ng-repeat='field in group.add')
- -var model = 'new';
- -var name = '"new"'
- -var valid = form + '[' + name + '].$valid'
- -var save = addresses + '.push(' + model + ')'
-
- div
- label.col-xs-12.col-sm-12.col-md-12
- +table-address-field(name, model, addresses, valid, save, true, true)
- +table-save-button(valid, save, true)
- +unique-feedback(name, uniqueTip)
-
- .group-content-empty(id='addresses' ng-if='!(#{addresses}.length) && !group.add.length')
- | Not defined
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/vm.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/vm.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/vm.pug
new file mode 100644
index 0000000..9205c72
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/vm.pug
@@ -0,0 +1,79 @@
+//-
+ 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
+
+-var model = 'backupItem.discovery.Vm'
+-var addresses = model + '.addresses'
+-var form = 'discoveryVmAddresses'
+
+.details-row
+ +ignite-form-group(ng-form=form ng-model=`${addresses}`)
+ -var uniqueTip = 'Such IP address already exists!'
+
+ ignite-form-field-label
+ | Addresses
+ ignite-form-group-tooltip
+ | Addresses may be represented as follows:
+ ul: li IP address (e.g. 127.0.0.1, 9.9.9.9, etc)
+ li IP address and port (e.g. 127.0.0.1:47500, 9.9.9.9:47501, etc)
+ li IP address and port range (e.g. 127.0.0.1:47500..47510, 9.9.9.9:47501..47504, etc)
+ li Hostname (e.g. host1.com, host2, etc)
+ li Hostname and port (e.g. host1.com:47500, host2:47502, etc)
+ li Hostname and port range (e.g. host1.com:47500..47510, host2:47502..47508, etc)
+ | If port is 0 or not provided then default port will be used (depends on discovery SPI configuration)#[br]
+ | If port range is provided (e.g. host:port1..port2) the following should be considered:
+ ul: li port1 < port2 should be true
+ li Both port1 and port2 should be greater than 0
+ ignite-form-group-add(ng-click='group.add = [{}]')
+ | Add new address
+
+ .group-content(ng-if=`${addresses}.length`)
+ -var model = 'obj.model';
+ -var name = '"edit" + $index'
+ -var valid = `${form}[${name}].$valid`
+ -var save = `${addresses}[$index] = ${model}`
+
+ div(ng-repeat=`model in ${addresses} track by $index` ng-init='obj = {}')
+ label.col-xs-12.col-sm-12.col-md-12
+ .indexField
+ | {{ $index+1 }})
+ +table-remove-button(addresses, 'Remove address')
+
+ +ignite-form-field-down(ng-if='!$last' ng-hide='field.edit' data-ng-model='model' data-models=addresses)
+ +ignite-form-field-up(ng-if='!$first' ng-hide='field.edit' data-ng-model='model' data-models=addresses)
+
+ span(ng-hide='field.edit')
+ a.labelFormField(ng-click=`field.edit = true; ${model} = model;`) {{ model }}
+ span(ng-if='field.edit')
+ +table-address-field(name, model, addresses, valid, save, false, true)
+ +table-save-button(valid, save, false)
+ +unique-feedback(name, uniqueTip)
+
+ .group-content(ng-repeat='field in group.add')
+ -var model = 'new';
+ -var name = '"new"'
+ -var valid = `${form}[${name}].$valid`
+ -var save = `${addresses}.push(${model})`
+
+ div
+ label.col-xs-12.col-sm-12.col-md-12
+ +table-address-field(name, model, addresses, valid, save, true, true)
+ +table-save-button(valid, save, true)
+ +unique-feedback(name, uniqueTip)
+
+ .group-content-empty(id='addresses' ng-if=`!(${addresses}.length) && !group.add.length`)
+ | Not defined
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper.jade
deleted file mode 100644
index 48b1776..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper.jade
+++ /dev/null
@@ -1,85 +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.jade
-
--var form = 'general'
--var discoveryKind = 'ZooKeeper'
--var required = 'backupItem.discovery.kind == "' + discoveryKind + '"'
--var model = 'backupItem.discovery.ZooKeeper'
--var modelRetryPolicyKind = model + '.retryPolicy.kind'
-
-div
- .details-row
- +java-class('Curator:', model + '.curator', '"curator"', 'true', 'false',
- 'The Curator framework in use<br/>\
- By default generates curator of org.apache.curator. framework.imps.CuratorFrameworkImpl\
- class with configured connect string, retry policy, and default session and connection timeouts', required)
- .details-row
- +text('Connect string:', model + '.zkConnectionString', '"' + discoveryKind + 'ConnectionString"', required, 'host:port[chroot][,host:port[chroot]]',
- 'When "IGNITE_ZK_CONNECTION_STRING" system property is not configured this property will be used')
- .details-row
- +dropdown('Retry policy:', model + '.retryPolicy.kind', '"retryPolicy"', 'true', 'Default',
- '[\
- {value: "ExponentialBackoff", label: "Exponential backoff"},\
- {value: "BoundedExponentialBackoff", label: "Bounded exponential backoff"},\
- {value: "UntilElapsed", label: "Until elapsed"},\
- {value: "NTimes", label: "Max number of times"},\
- {value: "OneTime", label: "Only once"},\
- {value: "Forever", label: "Always allow retry"},\
- {value: "Custom", label: "Custom"},\
- {value: undefined, label: "Default"}\
- ]',
- 'Available retry policies:\
- <ul>\
- <li>Exponential backoff - retries a set number of times with increasing sleep time between retries</li>\
- <li>Bounded exponential backoff - retries a set number of times with an increasing (up to a maximum bound) sleep time between retries</li>\
- <li>Until elapsed - retries until a given amount of time elapses</li>\
- <li>Max number of times - retries a max number of times</li>\
- <li>Only once - retries only once</li>\
- <li>Always allow retry - retries infinitely</li>\
- <li>Custom - custom retry policy implementation</li>\
- <li>Default - exponential backoff retry policy with configured base sleep time equal to 1000ms and max retry count equal to 10</li>\
- </ul>')
- .details-row(ng-show='#{model}.retryPolicy.kind')
- .panel-details
- div(ng-show='#{modelRetryPolicyKind} === "ExponentialBackoff"')
- include ./zookeeper/retrypolicy/exponential-backoff.jade
- div(ng-show='#{modelRetryPolicyKind} === "BoundedExponentialBackoff"')
- include ./zookeeper/retrypolicy/bounded-exponential-backoff.jade
- div(ng-show='#{modelRetryPolicyKind} === "UntilElapsed"')
- include ./zookeeper/retrypolicy/until-elapsed.jade
- div(ng-show='#{modelRetryPolicyKind} === "NTimes"')
- include ./zookeeper/retrypolicy/n-times.jade
- div(ng-show='#{modelRetryPolicyKind} === "OneTime"')
- include ./zookeeper/retrypolicy/one-time.jade
- div(ng-show='#{modelRetryPolicyKind} === "Forever"')
- include ./zookeeper/retrypolicy/forever.jade
- div(ng-show='#{modelRetryPolicyKind} === "Custom"')
- include ./zookeeper/retrypolicy/custom.jade
- .details-row
- -var model = 'backupItem.discovery.ZooKeeper'
-
- +text('Base path:', model + '.basePath', '"basePath"', 'false', '/services', 'Base path for service registration')
- .details-row
- +text('Service name:', model + '.serviceName', '"serviceName"', 'false', 'ignite',
- 'Service name to use, as defined by Curator's ServiceDiscovery recipe<br/>\
- In physical ZooKeeper terms, it represents the node under basePath, under which services will be registered')
- .details-row
- +checkbox('Allow duplicate registrations', model + '.allowDuplicateRegistrations', '"allowDuplicateRegistrations"',
- 'Whether to register each node only once, or if duplicate registrations are allowed<br/>\
- Nodes will attempt to register themselves, plus those they know about<br/>\
- By default, duplicate registrations are not allowed, but you might want to set this property to <b>true</b> if you have multiple network interfaces or if you are facing troubles')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper.pug
new file mode 100644
index 0000000..91548e4
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper.pug
@@ -0,0 +1,85 @@
+//-
+ 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
+
+-var form = 'general'
+-var discoveryKind = 'ZooKeeper'
+-var required = `backupItem.discovery.kind == '${discoveryKind}'`
+-var model = 'backupItem.discovery.ZooKeeper'
+-var modelRetryPolicyKind = `${model}.retryPolicy.kind`
+
+div
+ .details-row
+ +java-class('Curator:', `${model}.curator`, '"curator"', 'true', 'false',
+ 'The Curator framework in use<br/>\
+ By default generates curator of org.apache.curator. framework.imps.CuratorFrameworkImpl\
+ class with configured connect string, retry policy, and default session and connection timeouts', required)
+ .details-row
+ +text('Connect string:', `${model}.zkConnectionString`, `'${discoveryKind}ConnectionString'`, required, 'host:port[chroot][,host:port[chroot]]',
+ 'When "IGNITE_ZK_CONNECTION_STRING" system property is not configured this property will be used')
+ .details-row
+ +dropdown('Retry policy:', `${model}.retryPolicy.kind`, '"retryPolicy"', 'true', 'Default',
+ '[\
+ {value: "ExponentialBackoff", label: "Exponential backoff"},\
+ {value: "BoundedExponentialBackoff", label: "Bounded exponential backoff"},\
+ {value: "UntilElapsed", label: "Until elapsed"},\
+ {value: "NTimes", label: "Max number of times"},\
+ {value: "OneTime", label: "Only once"},\
+ {value: "Forever", label: "Always allow retry"},\
+ {value: "Custom", label: "Custom"},\
+ {value: undefined, label: "Default"}\
+ ]',
+ 'Available retry policies:\
+ <ul>\
+ <li>Exponential backoff - retries a set number of times with increasing sleep time between retries</li>\
+ <li>Bounded exponential backoff - retries a set number of times with an increasing (up to a maximum bound) sleep time between retries</li>\
+ <li>Until elapsed - retries until a given amount of time elapses</li>\
+ <li>Max number of times - retries a max number of times</li>\
+ <li>Only once - retries only once</li>\
+ <li>Always allow retry - retries infinitely</li>\
+ <li>Custom - custom retry policy implementation</li>\
+ <li>Default - exponential backoff retry policy with configured base sleep time equal to 1000ms and max retry count equal to 10</li>\
+ </ul>')
+ .details-row(ng-show=`${model}.retryPolicy.kind`)
+ .panel-details
+ div(ng-show=`${modelRetryPolicyKind} === 'ExponentialBackoff'`)
+ include ./zookeeper/retrypolicy/exponential-backoff
+ div(ng-show=`${modelRetryPolicyKind} === 'BoundedExponentialBackoff'`)
+ include ./zookeeper/retrypolicy/bounded-exponential-backoff
+ div(ng-show=`${modelRetryPolicyKind} === 'UntilElapsed'`)
+ include ./zookeeper/retrypolicy/until-elapsed
+ div(ng-show=`${modelRetryPolicyKind} === 'NTimes'`)
+ include ./zookeeper/retrypolicy/n-times
+ div(ng-show=`${modelRetryPolicyKind} === 'OneTime'`)
+ include ./zookeeper/retrypolicy/one-time
+ div(ng-show=`${modelRetryPolicyKind} === 'Forever'`)
+ include ./zookeeper/retrypolicy/forever
+ div(ng-show=`${modelRetryPolicyKind} === 'Custom'`)
+ include ./zookeeper/retrypolicy/custom
+ .details-row
+ -var model = 'backupItem.discovery.ZooKeeper'
+
+ +text('Base path:', `${model}.basePath`, '"basePath"', 'false', '/services', 'Base path for service registration')
+ .details-row
+ +text('Service name:', `${model}.serviceName`, '"serviceName"', 'false', 'ignite',
+ 'Service name to use, as defined by Curator's ServiceDiscovery recipe<br/>\
+ In physical ZooKeeper terms, it represents the node under basePath, under which services will be registered')
+ .details-row
+ +checkbox('Allow duplicate registrations', `${model}.allowDuplicateRegistrations`, '"allowDuplicateRegistrations"',
+ 'Whether to register each node only once, or if duplicate registrations are allowed<br/>\
+ Nodes will attempt to register themselves, plus those they know about<br/>\
+ By default, duplicate registrations are not allowed, but you might want to set this property to <b>true</b> if you have multiple network interfaces or if you are facing troubles')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.jade
deleted file mode 100644
index d3c1f9f..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.jade
+++ /dev/null
@@ -1,27 +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.jade
-
--var model = 'backupItem.discovery.ZooKeeper.retryPolicy.BoundedExponentialBackoff'
-
-div
- .details-row
- +number('Base interval:', model + '.baseSleepTimeMs', '"beBaseSleepTimeMs"', 'true', '1000', '0', 'Initial amount of time in ms to wait between retries')
- .details-row
- +number('Max interval:', model + '.maxSleepTimeMs', '"beMaxSleepTimeMs"', 'true', 'Integer.MAX_VALUE', '0', 'Max time in ms to sleep on each retry')
- .details-row
- +number-min-max('Max retries:', model + '.maxRetries', '"beMaxRetries"', 'true', '10', '0', '29', 'Max number of times to retry')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.pug
new file mode 100644
index 0000000..c71be9a
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.pug
@@ -0,0 +1,27 @@
+//-
+ 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
+
+-var model = 'backupItem.discovery.ZooKeeper.retryPolicy.BoundedExponentialBackoff'
+
+div
+ .details-row
+ +number('Base interval:', `${model}.baseSleepTimeMs`, '"beBaseSleepTimeMs"', 'true', '1000', '0', 'Initial amount of time in ms to wait between retries')
+ .details-row
+ +number('Max interval:', `${model}.maxSleepTimeMs`, '"beMaxSleepTimeMs"', 'true', 'Integer.MAX_VALUE', '0', 'Max time in ms to sleep on each retry')
+ .details-row
+ +number-min-max('Max retries:', `${model}.maxRetries`, '"beMaxRetries"', 'true', '10', '0', '29', 'Max number of times to retry')
[07/15] ignite git commit: IGNITE-4659 Migration to Webpack 2.
Upgrade template engine from jade to pug.
Posted by an...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/custom.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/custom.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/custom.jade
deleted file mode 100644
index 5db89f5..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/custom.jade
+++ /dev/null
@@ -1,24 +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.jade
-
--var model = 'backupItem.discovery.ZooKeeper.retryPolicy'
--var retry = model + '.Custom'
--var required = 'backupItem.discovery.kind === "ZooKeeper" && backupItem.discovery.ZooKeeper.retryPolicy.kind === "Custom"'
-
-.details-row
- +java-class('Class name:', retry + '.className', '"customClassName"', 'true', required, 'Custom retry policy implementation class name', required)
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/custom.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/custom.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/custom.pug
new file mode 100644
index 0000000..884a7d6
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/custom.pug
@@ -0,0 +1,24 @@
+//-
+ 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
+
+-var model = 'backupItem.discovery.ZooKeeper.retryPolicy'
+-var retry = `${model}.Custom`
+-var required = 'backupItem.discovery.kind === "ZooKeeper" && backupItem.discovery.ZooKeeper.retryPolicy.kind === "Custom"'
+
+.details-row
+ +java-class('Class name:', `${retry}.className`, '"customClassName"', 'true', required, 'Custom retry policy implementation class name', required)
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.jade
deleted file mode 100644
index 0a072f7..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.jade
+++ /dev/null
@@ -1,27 +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.jade
-
--var model = 'backupItem.discovery.ZooKeeper.retryPolicy.ExponentialBackoff'
-
-div
- .details-row
- +number('Base interval:', model + '.baseSleepTimeMs', '"expBaseSleepTimeMs"', 'true', '1000', '0', 'Initial amount of time in ms to wait between retries')
- .details-row
- +number-min-max('Max retries:', model + '.maxRetries', '"expMaxRetries"', 'true', '10', '0', '29', 'Max number of times to retry')
- .details-row
- +number('Max interval:', model + '.maxSleepMs', '"expMaxSleepMs"', 'true', 'Integer.MAX_VALUE', '0', 'Max time in ms to sleep on each retry')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.pug
new file mode 100644
index 0000000..93b2709
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.pug
@@ -0,0 +1,27 @@
+//-
+ 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
+
+-var model = 'backupItem.discovery.ZooKeeper.retryPolicy.ExponentialBackoff'
+
+div
+ .details-row
+ +number('Base interval:', `${model}.baseSleepTimeMs`, '"expBaseSleepTimeMs"', 'true', '1000', '0', 'Initial amount of time in ms to wait between retries')
+ .details-row
+ +number-min-max('Max retries:', `${model}.maxRetries`, '"expMaxRetries"', 'true', '10', '0', '29', 'Max number of times to retry')
+ .details-row
+ +number('Max interval:', `${model}.maxSleepMs`, '"expMaxSleepMs"', 'true', 'Integer.MAX_VALUE', '0', 'Max time in ms to sleep on each retry')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.jade
deleted file mode 100644
index a7bfd20..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.jade
+++ /dev/null
@@ -1,22 +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.jade
-
--var model = 'backupItem.discovery.ZooKeeper.retryPolicy.Forever'
-
-.details-row
- +number('Interval:', model + '.retryIntervalMs', '"feRetryIntervalMs"', 'true', '1000', '0', 'Time in ms between retry attempts')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.pug
new file mode 100644
index 0000000..2d7d2e8
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.pug
@@ -0,0 +1,22 @@
+//-
+ 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
+
+-var model = 'backupItem.discovery.ZooKeeper.retryPolicy.Forever'
+
+.details-row
+ +number('Interval:', `${model}.retryIntervalMs`, '"feRetryIntervalMs"', 'true', '1000', '0', 'Time in ms between retry attempts')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.jade
deleted file mode 100644
index 1746232..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.jade
+++ /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.
-
-include /app/helpers/jade/mixins.jade
-
--var model = 'backupItem.discovery.ZooKeeper.retryPolicy.NTimes'
-
-div
- .details-row
- +number('Retries:', model + '.n', '"n"', 'true', '10', '0', 'Number of times to retry')
- .details-row
- +number('Interval:', model + '.sleepMsBetweenRetries', '"ntSleepMsBetweenRetries"', 'true', '1000', '0', 'Time in ms between retry attempts')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.pug
new file mode 100644
index 0000000..fdaead1
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.pug
@@ -0,0 +1,25 @@
+//-
+ 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
+
+-var model = 'backupItem.discovery.ZooKeeper.retryPolicy.NTimes'
+
+div
+ .details-row
+ +number('Retries:', `${model}.n`, '"n"', 'true', '10', '0', 'Number of times to retry')
+ .details-row
+ +number('Interval:', `${model}.sleepMsBetweenRetries`, '"ntSleepMsBetweenRetries"', 'true', '1000', '0', 'Time in ms between retry attempts')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.jade
deleted file mode 100644
index 5a7e3fe..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.jade
+++ /dev/null
@@ -1,23 +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.jade
-
--var model = 'backupItem.discovery.ZooKeeper.retryPolicy.OneTime'
-
-div
- .details-row
- +number('Interval:', model + '.sleepMsBetweenRetry', '"oneSleepMsBetweenRetry"', 'true', '1000', '0', 'Time in ms to retry attempt')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.pug
new file mode 100644
index 0000000..53fc9be
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.pug
@@ -0,0 +1,23 @@
+//-
+ 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
+
+-var model = 'backupItem.discovery.ZooKeeper.retryPolicy.OneTime'
+
+div
+ .details-row
+ +number('Interval:', `${model}.sleepMsBetweenRetry`, '"oneSleepMsBetweenRetry"', 'true', '1000', '0', 'Time in ms to retry attempt')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.jade
deleted file mode 100644
index 548211c..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.jade
+++ /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.
-
-include /app/helpers/jade/mixins.jade
-
--var model = 'backupItem.discovery.ZooKeeper.retryPolicy.UntilElapsed'
-
-div
- .details-row
- +number('Total time:', model + '.maxElapsedTimeMs', '"ueMaxElapsedTimeMs"', 'true', '60000', '0', 'Total time in ms for execution of retry attempt')
- .details-row
- +number('Interval:', model + '.sleepMsBetweenRetries', '"ueSleepMsBetweenRetries"', 'true', '1000', '0', 'Time in ms between retry attempts')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.pug
new file mode 100644
index 0000000..16ddfc5
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.pug
@@ -0,0 +1,25 @@
+//-
+ 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
+
+-var model = 'backupItem.discovery.ZooKeeper.retryPolicy.UntilElapsed'
+
+div
+ .details-row
+ +number('Total time:', `${model}.maxElapsedTimeMs`, '"ueMaxElapsedTimeMs"', 'true', '60000', '0', 'Total time in ms for execution of retry attempt')
+ .details-row
+ +number('Interval:', `${model}.sleepMsBetweenRetries`, '"ueSleepMsBetweenRetries"', 'true', '1000', '0', 'Time in ms between retry attempts')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/igfs.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/igfs.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/igfs.jade
deleted file mode 100644
index 25bd5b0..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/igfs.jade
+++ /dev/null
@@ -1,38 +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.jade
-
--var form = 'igfs'
--var model = 'backupItem'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label IGFS
- ignite-form-field-tooltip.tipLabel
- | IGFS (Ignite In-Memory File System) configurations assigned to cluster#[br]
- | #[a(href="https://apacheignite-fs.readme.io/docs/in-memory-file-system" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +dropdown-multiple('<span>IGFS:</span><a ui-sref="base.configuration.igfs({linkId: linkId()})"> (add)</a>',
- model + '.igfss', '"igfss"', true, 'Choose IGFS', 'No IGFS configured', 'igfss',
- 'Select IGFS to start in cluster or add a new IGFS')
- .col-sm-6
- +preview-xml-java(model, 'igfss', 'igfss')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/igfs.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/igfs.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/igfs.pug
new file mode 100644
index 0000000..8c20a45
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/igfs.pug
@@ -0,0 +1,38 @@
+//-
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+include /app/helpers/jade/mixins
+
+-var form = 'igfs'
+-var model = 'backupItem'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label IGFS
+ ignite-form-field-tooltip.tipLabel
+ | IGFS (Ignite In-Memory File System) configurations assigned to cluster#[br]
+ | #[a(href="https://apacheignite-fs.readme.io/docs/in-memory-file-system" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +dropdown-multiple('<span>IGFS:</span><a ui-sref="base.configuration.igfs({linkId: linkId()})"> (add)</a>',
+ `${model}.igfss`, '"igfss"', true, 'Choose IGFS', 'No IGFS configured', 'igfss',
+ 'Select IGFS to start in cluster or add a new IGFS')
+ .col-sm-6
+ +preview-xml-java(model, 'igfss', 'igfss')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/load-balancing.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/load-balancing.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/load-balancing.jade
deleted file mode 100644
index 9fa9fc9..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/load-balancing.jade
+++ /dev/null
@@ -1,107 +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.jade
-
--var model = 'backupItem'
--var form = 'loadBalancing'
--var loadBalancingSpi = model + '.loadBalancingSpi'
--var loadBalancingCustom = 'model.kind === "Custom"'
--var loadProbeCustom = 'model.kind === "Adaptive" && model.Adaptive.loadProbe.kind === "Custom"'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Load balancing configuration
- ignite-form-field-tooltip.tipLabel
- | Load balancing component balances job distribution among cluster nodes#[br]
- | #[a(href="https://apacheignite.readme.io/docs/load-balancing" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row(ng-init='loadBalancingSpiTbl={type: "loadBalancingSpi", model: "loadBalancingSpi", focusId: "kind", ui: "load-balancing-table"}')
- +ignite-form-group()
- ignite-form-field-label
- | Load balancing configurations
- ignite-form-group-tooltip
- | Load balancing component balances job distribution among cluster nodes
- ignite-form-group-add(ng-click='tableNewItem(loadBalancingSpiTbl)')
- | Add load balancing configuration
- .group-content-empty(ng-if='!(#{loadBalancingSpi} && #{loadBalancingSpi}.length > 0)')
- | Not defined
- .group-content(ng-show='#{loadBalancingSpi} && #{loadBalancingSpi}.length > 0' ng-repeat='model in #{loadBalancingSpi} track by $index')
- hr(ng-if='$index != 0')
- .settings-row
- +dropdown-required-autofocus('Load balancing:', 'model.kind', '"loadBalancingKind" + $index', 'true', 'true', 'Choose load balancing SPI', '[\
- {value: "RoundRobin", label: "Round-robin"},\
- {value: "Adaptive", label: "Adaptive"},\
- {value: "WeightedRandom", label: "Random"},\
- {value: "Custom", label: "Custom"}\
- ]', 'Provides the next best balanced node for job execution\
- <ul>\
- <li>Round-robin - Iterates through nodes in round-robin fashion and pick the next sequential node</li>\
- <li>Adaptive - Adapts to overall node performance</li>\
- <li>Random - Picks a random node for job execution</li>\
- <li>Custom - Custom load balancing implementation</li>\
- </ul>')
-
- +table-remove-button(loadBalancingSpi, 'Remove load balancing SPI')
- .settings-row(ng-show='model.kind === "RoundRobin"')
- +checkbox('Per task', 'model.RoundRobin.perTask', '"loadBalancingRRPerTask" + $index', 'A new round robin order should be created for every task flag')
- .settings-row(ng-show='model.kind === "Adaptive"')
- +dropdown('Load probe:', 'model.Adaptive.loadProbe.kind', '"loadBalancingAdaptiveLoadProbeKind" + $index', 'true', 'Default', '[\
- {value: "Job", label: "Job count"},\
- {value: "CPU", label: "CPU load"},\
- {value: "ProcessingTime", label: "Processing time"},\
- {value: "Custom", label: "Custom"},\
- {value: undefined, label: "Default"}\
- ]', 'Implementation of node load probing\
- <ul>\
- <li>Job count - Based on active and waiting job count</li>\
- <li>CPU load - Based on CPU load</li>\
- <li>Processing time - Based on total job processing time</li>\
- <li>Custom - Custom load probing implementation</li>\
- <li>Default - Default load probing implementation</li>\
- </ul>')
- .settings-row(ng-show='model.kind === "Adaptive" && model.Adaptive.loadProbe.kind')
- .panel-details(ng-show='model.Adaptive.loadProbe.kind === "Job"')
- .details-row
- +checkbox('Use average', 'model.Adaptive.loadProbe.Job.useAverage', '"loadBalancingAdaptiveJobUseAverage" + $index', 'Use average CPU load vs. current')
- .panel-details(ng-show='model.Adaptive.loadProbe.kind === "CPU"')
- .details-row
- +checkbox('Use average', 'model.Adaptive.loadProbe.CPU.useAverage', '"loadBalancingAdaptiveCPUUseAverage" + $index', 'Use average CPU load vs. current')
- .details-row
- +checkbox('Use processors', 'model.Adaptive.loadProbe.CPU.useProcessors', '"loadBalancingAdaptiveCPUUseProcessors" + $index', "divide each node's CPU load by the number of processors on that node")
- .details-row
- +number-min-max-step('Processor coefficient:', 'model.Adaptive.loadProbe.CPU.processorCoefficient',
- '"loadBalancingAdaptiveCPUProcessorCoefficient" + $index', 'true', '1', '0.001', '1', '0.05', 'Coefficient of every CPU')
- .panel-details(ng-show='model.Adaptive.loadProbe.kind === "ProcessingTime"')
- .details-row
- +checkbox('Use average', 'model.Adaptive.loadProbe.ProcessingTime.useAverage', '"loadBalancingAdaptiveJobUseAverage" + $index', 'Use average execution time vs. current')
- .panel-details(ng-show=loadProbeCustom)
- .details-row
- +java-class('Load brobe implementation:', 'model.Adaptive.loadProbe.Custom.className', '"loadBalancingAdaptiveJobUseClass" + $index', 'true', loadProbeCustom,
- 'Custom load balancing SPI implementation class name.', loadProbeCustom)
- .settings-row(ng-show='model.kind === "WeightedRandom"')
- +number('Node weight:', 'model.WeightedRandom.nodeWeight', '"loadBalancingWRNodeWeight" + $index', 'true', 10, '1', 'Weight of node')
- .settings-row(ng-show='model.kind === "WeightedRandom"')
- +checkbox('Use weights', 'model.WeightedRandom.useWeights', '"loadBalancingWRUseWeights" + $index', 'Node weights should be checked when doing random load balancing')
- .settings-row(ng-show=loadBalancingCustom)
- +java-class('Load balancing SPI implementation:', 'model.Custom.className', '"loadBalancingClass" + $index', 'true', loadBalancingCustom,
- 'Custom load balancing SPI implementation class name.', loadBalancingCustom)
- .col-sm-6
- +preview-xml-java(model, 'clusterLoadBalancing')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/load-balancing.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/load-balancing.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/load-balancing.pug
new file mode 100644
index 0000000..b80f430
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/load-balancing.pug
@@ -0,0 +1,107 @@
+//-
+ 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
+
+-var model = 'backupItem'
+-var form = 'loadBalancing'
+-var loadBalancingSpi = model + '.loadBalancingSpi'
+-var loadBalancingCustom = 'model.kind === "Custom"'
+-var loadProbeCustom = 'model.kind === "Adaptive" && model.Adaptive.loadProbe.kind === "Custom"'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Load balancing configuration
+ ignite-form-field-tooltip.tipLabel
+ | Load balancing component balances job distribution among cluster nodes#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/load-balancing" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row(ng-init='loadBalancingSpiTbl={type: "loadBalancingSpi", model: "loadBalancingSpi", focusId: "kind", ui: "load-balancing-table"}')
+ +ignite-form-group()
+ ignite-form-field-label
+ | Load balancing configurations
+ ignite-form-group-tooltip
+ | Load balancing component balances job distribution among cluster nodes
+ ignite-form-group-add(ng-click='tableNewItem(loadBalancingSpiTbl)')
+ | Add load balancing configuration
+ .group-content-empty(ng-if=`!(${loadBalancingSpi} && ${loadBalancingSpi}.length > 0)`)
+ | Not defined
+ .group-content(ng-show=`${loadBalancingSpi} && ${loadBalancingSpi}.length > 0` ng-repeat=`model in ${loadBalancingSpi} track by $index`)
+ hr(ng-if='$index != 0')
+ .settings-row
+ +dropdown-required-autofocus('Load balancing:', 'model.kind', '"loadBalancingKind" + $index', 'true', 'true', 'Choose load balancing SPI', '[\
+ {value: "RoundRobin", label: "Round-robin"},\
+ {value: "Adaptive", label: "Adaptive"},\
+ {value: "WeightedRandom", label: "Random"},\
+ {value: "Custom", label: "Custom"}\
+ ]', 'Provides the next best balanced node for job execution\
+ <ul>\
+ <li>Round-robin - Iterates through nodes in round-robin fashion and pick the next sequential node</li>\
+ <li>Adaptive - Adapts to overall node performance</li>\
+ <li>Random - Picks a random node for job execution</li>\
+ <li>Custom - Custom load balancing implementation</li>\
+ </ul>')
+
+ +table-remove-button(loadBalancingSpi, 'Remove load balancing SPI')
+ .settings-row(ng-show='model.kind === "RoundRobin"')
+ +checkbox('Per task', 'model.RoundRobin.perTask', '"loadBalancingRRPerTask" + $index', 'A new round robin order should be created for every task flag')
+ .settings-row(ng-show='model.kind === "Adaptive"')
+ +dropdown('Load probe:', 'model.Adaptive.loadProbe.kind', '"loadBalancingAdaptiveLoadProbeKind" + $index', 'true', 'Default', '[\
+ {value: "Job", label: "Job count"},\
+ {value: "CPU", label: "CPU load"},\
+ {value: "ProcessingTime", label: "Processing time"},\
+ {value: "Custom", label: "Custom"},\
+ {value: undefined, label: "Default"}\
+ ]', 'Implementation of node load probing\
+ <ul>\
+ <li>Job count - Based on active and waiting job count</li>\
+ <li>CPU load - Based on CPU load</li>\
+ <li>Processing time - Based on total job processing time</li>\
+ <li>Custom - Custom load probing implementation</li>\
+ <li>Default - Default load probing implementation</li>\
+ </ul>')
+ .settings-row(ng-show='model.kind === "Adaptive" && model.Adaptive.loadProbe.kind')
+ .panel-details(ng-show='model.Adaptive.loadProbe.kind === "Job"')
+ .details-row
+ +checkbox('Use average', 'model.Adaptive.loadProbe.Job.useAverage', '"loadBalancingAdaptiveJobUseAverage" + $index', 'Use average CPU load vs. current')
+ .panel-details(ng-show='model.Adaptive.loadProbe.kind === "CPU"')
+ .details-row
+ +checkbox('Use average', 'model.Adaptive.loadProbe.CPU.useAverage', '"loadBalancingAdaptiveCPUUseAverage" + $index', 'Use average CPU load vs. current')
+ .details-row
+ +checkbox('Use processors', 'model.Adaptive.loadProbe.CPU.useProcessors', '"loadBalancingAdaptiveCPUUseProcessors" + $index', "divide each node's CPU load by the number of processors on that node")
+ .details-row
+ +number-min-max-step('Processor coefficient:', 'model.Adaptive.loadProbe.CPU.processorCoefficient',
+ '"loadBalancingAdaptiveCPUProcessorCoefficient" + $index', 'true', '1', '0.001', '1', '0.05', 'Coefficient of every CPU')
+ .panel-details(ng-show='model.Adaptive.loadProbe.kind === "ProcessingTime"')
+ .details-row
+ +checkbox('Use average', 'model.Adaptive.loadProbe.ProcessingTime.useAverage', '"loadBalancingAdaptiveJobUseAverage" + $index', 'Use average execution time vs. current')
+ .panel-details(ng-show=loadProbeCustom)
+ .details-row
+ +java-class('Load brobe implementation:', 'model.Adaptive.loadProbe.Custom.className', '"loadBalancingAdaptiveJobUseClass" + $index', 'true', loadProbeCustom,
+ 'Custom load balancing SPI implementation class name.', loadProbeCustom)
+ .settings-row(ng-show='model.kind === "WeightedRandom"')
+ +number('Node weight:', 'model.WeightedRandom.nodeWeight', '"loadBalancingWRNodeWeight" + $index', 'true', 10, '1', 'Weight of node')
+ .settings-row(ng-show='model.kind === "WeightedRandom"')
+ +checkbox('Use weights', 'model.WeightedRandom.useWeights', '"loadBalancingWRUseWeights" + $index', 'Node weights should be checked when doing random load balancing')
+ .settings-row(ng-show=loadBalancingCustom)
+ +java-class('Load balancing SPI implementation:', 'model.Custom.className', '"loadBalancingClass" + $index', 'true', loadBalancingCustom,
+ 'Custom load balancing SPI implementation class name.', loadBalancingCustom)
+ .col-sm-6
+ +preview-xml-java(model, 'clusterLoadBalancing')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/logger.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/logger.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/logger.jade
deleted file mode 100644
index 983d818..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/logger.jade
+++ /dev/null
@@ -1,66 +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.jade
-
--var form = 'logger'
--var model = 'backupItem.logger'
--var kind = model + '.kind'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Logger configuration
- ignite-form-field-tooltip.tipLabel
- | Logging functionality used throughout the system
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +dropdown('Logger:', kind, '"logger"', 'true', 'Default',
- '[\
- {value: "Log4j", label: "Apache Log4j"},\
- {value: "Log4j2", label: "Apache Log4j 2"},\
- {value: "SLF4J", label: "Simple Logging Facade (SLF4J)"},\
- {value: "Java", label: "Java logger (JUL)"},\
- {value: "JCL", label: "Jakarta Commons Logging (JCL)"},\
- {value: "Null", label: "Null logger"},\
- {value: "Custom", label: "Custom"},\
- {value: undefined, label: "Default"}\
- ]',
- 'Logger implementations\
- <ul>\
- <li>Apache Log4j - log4j-based logger</li>\
- <li>Apache Log4j 2 - Log4j2-based logger</li>\
- <li>Simple Logging Facade (SLF4J) - SLF4j-based logger</li>\
- <li>Java logger (JUL) - built in java logger</li>\
- <li>Jakarta Commons Logging (JCL) - wraps any JCL (Jakarta Commons Logging) loggers</li>\
- <li>Null logger - logger which does not output anything</li>\
- <li>Custom - custom logger implementation</li>\
- <li>Default - Apache Log4j if awailable on classpath or Java logger otherwise</li>\
- </ul>')
- .settings-row(ng-show='#{kind} && (#{kind} === "Log4j2" || #{kind} === "Log4j" || #{kind} === "Custom")')
- .panel-details
- div(ng-show='#{kind} === "Log4j2"')
- include ./logger/log4j2.jade
- div(ng-show='#{kind} === "Log4j"')
- include ./logger/log4j.jade
- div(ng-show='#{kind} === "Custom"')
- include ./logger/custom.jade
- .col-sm-6
- -var model = 'backupItem.logger'
- +preview-xml-java(model, 'clusterLogger')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/logger.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/logger.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/logger.pug
new file mode 100644
index 0000000..f135114
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/logger.pug
@@ -0,0 +1,66 @@
+//-
+ 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
+
+-var form = 'logger'
+-var model = 'backupItem.logger'
+-var kind = model + '.kind'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Logger configuration
+ ignite-form-field-tooltip.tipLabel
+ | Logging functionality used throughout the system
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +dropdown('Logger:', kind, '"logger"', 'true', 'Default',
+ '[\
+ {value: "Log4j", label: "Apache Log4j"},\
+ {value: "Log4j2", label: "Apache Log4j 2"},\
+ {value: "SLF4J", label: "Simple Logging Facade (SLF4J)"},\
+ {value: "Java", label: "Java logger (JUL)"},\
+ {value: "JCL", label: "Jakarta Commons Logging (JCL)"},\
+ {value: "Null", label: "Null logger"},\
+ {value: "Custom", label: "Custom"},\
+ {value: undefined, label: "Default"}\
+ ]',
+ 'Logger implementations\
+ <ul>\
+ <li>Apache Log4j - log4j-based logger</li>\
+ <li>Apache Log4j 2 - Log4j2-based logger</li>\
+ <li>Simple Logging Facade (SLF4J) - SLF4j-based logger</li>\
+ <li>Java logger (JUL) - built in java logger</li>\
+ <li>Jakarta Commons Logging (JCL) - wraps any JCL (Jakarta Commons Logging) loggers</li>\
+ <li>Null logger - logger which does not output anything</li>\
+ <li>Custom - custom logger implementation</li>\
+ <li>Default - Apache Log4j if awailable on classpath or Java logger otherwise</li>\
+ </ul>')
+ .settings-row(ng-show=`${kind} && (${kind} === 'Log4j2' || ${kind} === 'Log4j' || ${kind} === 'Custom')`)
+ .panel-details
+ div(ng-show=`${kind} === 'Log4j2'`)
+ include ./logger/log4j2
+ div(ng-show=`${kind} === 'Log4j'`)
+ include ./logger/log4j
+ div(ng-show=`${kind} === 'Custom'`)
+ include ./logger/custom
+ .col-sm-6
+ -var model = 'backupItem.logger'
+ +preview-xml-java(model, 'clusterLogger')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/logger/custom.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/logger/custom.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/logger/custom.jade
deleted file mode 100644
index 87d2b7d..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/logger/custom.jade
+++ /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.
-
-include /app/helpers/jade/mixins.jade
-
--var form = 'logger'
--var model = 'backupItem.logger.Custom'
--var required = 'backupItem.logger.kind === "Custom"'
-
-div
- .details-row
- +java-class('Class:', model + '.class', '"customLogger"', 'true', required, 'Logger implementation class name', required)
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/logger/custom.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/logger/custom.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/logger/custom.pug
new file mode 100644
index 0000000..9852e94
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/logger/custom.pug
@@ -0,0 +1,25 @@
+//-
+ 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
+
+-var form = 'logger'
+-var model = 'backupItem.logger.Custom'
+-var required = 'backupItem.logger.kind === "Custom"'
+
+div
+ .details-row
+ +java-class('Class:', `${model}.class`, '"customLogger"', 'true', required, 'Logger implementation class name', required)
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/logger/log4j.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/logger/log4j.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/logger/log4j.jade
deleted file mode 100644
index 1eaa529..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/logger/log4j.jade
+++ /dev/null
@@ -1,50 +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.jade
-
--var form = 'logger'
--var model = 'backupItem.logger.Log4j'
--var pathRequired = model + '.mode === "Path" && backupItem.logger.kind === "Log4j"'
-
-div
- .details-row
- +dropdown('Level:', model + '.level', '"log4jLevel"', 'true', 'Default',
- '[\
- {value: "OFF", label: "OFF"},\
- {value: "FATAL", label: "FATAL"},\
- {value: "ERROR", label: "ERROR"},\
- {value: "WARN", label: "WARN"},\
- {value: "INFO", label: "INFO"},\
- {value: "DEBUG", label: "DEBUG"},\
- {value: "TRACE", label: "TRACE"},\
- {value: "ALL", label: "ALL"},\
- {value: undefined, label: "Default"}\
- ]',
- 'Level for internal log4j implementation')
- .details-row
- +dropdown-required('Logger configuration:', model + '.mode', '"log4jMode"', 'true', 'true', 'Choose logger mode',
- '[\
- {value: "Default", label: "Default"},\
- {value: "Path", label: "Path"}\
- ]',
- 'Choose logger configuration\
- <ul>\
- <li>Default - default logger</li>\
- <li>Path - path or URI to XML configuration</li>\
- </ul>')
- .details-row(ng-show=pathRequired)
- +text('Path:', model + '.path', '"log4jPath"', pathRequired, 'Input path', 'Path or URI to XML configuration')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/logger/log4j.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/logger/log4j.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/logger/log4j.pug
new file mode 100644
index 0000000..fadaea4
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/logger/log4j.pug
@@ -0,0 +1,50 @@
+//-
+ 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
+
+-var form = 'logger'
+-var model = 'backupItem.logger.Log4j'
+-var pathRequired = model + '.mode === "Path" && backupItem.logger.kind === "Log4j"'
+
+div
+ .details-row
+ +dropdown('Level:', `${model}.level`, '"log4jLevel"', 'true', 'Default',
+ '[\
+ {value: "OFF", label: "OFF"},\
+ {value: "FATAL", label: "FATAL"},\
+ {value: "ERROR", label: "ERROR"},\
+ {value: "WARN", label: "WARN"},\
+ {value: "INFO", label: "INFO"},\
+ {value: "DEBUG", label: "DEBUG"},\
+ {value: "TRACE", label: "TRACE"},\
+ {value: "ALL", label: "ALL"},\
+ {value: undefined, label: "Default"}\
+ ]',
+ 'Level for internal log4j implementation')
+ .details-row
+ +dropdown-required('Logger configuration:', `${model}.mode`, '"log4jMode"', 'true', 'true', 'Choose logger mode',
+ '[\
+ {value: "Default", label: "Default"},\
+ {value: "Path", label: "Path"}\
+ ]',
+ 'Choose logger configuration\
+ <ul>\
+ <li>Default - default logger</li>\
+ <li>Path - path or URI to XML configuration</li>\
+ </ul>')
+ .details-row(ng-show=pathRequired)
+ +text('Path:', `${model}.path`, '"log4jPath"', pathRequired, 'Input path', 'Path or URI to XML configuration')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/logger/log4j2.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/logger/log4j2.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/logger/log4j2.jade
deleted file mode 100644
index 17df481..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/logger/log4j2.jade
+++ /dev/null
@@ -1,39 +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.jade
-
--var form = 'logger'
--var model = 'backupItem.logger.Log4j2'
--var log4j2Required = 'backupItem.logger.kind === "Log4j2"'
-
-div
- .details-row
- +dropdown('Level:', model + '.level', '"log4j2Level"', 'true', 'Default',
- '[\
- {value: "OFF", label: "OFF"},\
- {value: "FATAL", label: "FATAL"},\
- {value: "ERROR", label: "ERROR"},\
- {value: "WARN", label: "WARN"},\
- {value: "INFO", label: "INFO"},\
- {value: "DEBUG", label: "DEBUG"},\
- {value: "TRACE", label: "TRACE"},\
- {value: "ALL", label: "ALL"},\
- {value: undefined, label: "Default"}\
- ]',
- 'Level for internal log4j2 implementation')
- .details-row
- +text('Path:', model + '.path', '"log4j2Path"', log4j2Required, 'Input path', 'Path or URI to XML configuration')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/logger/log4j2.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/logger/log4j2.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/logger/log4j2.pug
new file mode 100644
index 0000000..d90ca09
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/logger/log4j2.pug
@@ -0,0 +1,39 @@
+//-
+ 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
+
+-var form = 'logger'
+-var model = 'backupItem.logger.Log4j2'
+-var log4j2Required = 'backupItem.logger.kind === "Log4j2"'
+
+div
+ .details-row
+ +dropdown('Level:', `${model}.level`, '"log4j2Level"', 'true', 'Default',
+ '[\
+ {value: "OFF", label: "OFF"},\
+ {value: "FATAL", label: "FATAL"},\
+ {value: "ERROR", label: "ERROR"},\
+ {value: "WARN", label: "WARN"},\
+ {value: "INFO", label: "INFO"},\
+ {value: "DEBUG", label: "DEBUG"},\
+ {value: "TRACE", label: "TRACE"},\
+ {value: "ALL", label: "ALL"},\
+ {value: undefined, label: "Default"}\
+ ]',
+ 'Level for internal log4j2 implementation')
+ .details-row
+ +text('Path:', `${model}.path`, '"log4j2Path"', log4j2Required, 'Input path', 'Path or URI to XML configuration')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/marshaller.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/marshaller.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/marshaller.jade
deleted file mode 100644
index 9316e79..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/marshaller.jade
+++ /dev/null
@@ -1,76 +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.jade
-
--var form = 'marshaller'
--var model = 'backupItem'
--var marshaller = model + '.marshaller'
--var optMarshaller = marshaller + '.OptimizedMarshaller'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Marshaller
- ignite-form-field-tooltip.tipLabel
- | Marshaller allows to marshal or unmarshal objects in grid#[br]
- | It provides serialization/deserialization mechanism for all instances that are sent across networks or are otherwise serialized
- | By default BinaryMarshaller will be used#[br]
- | #[a(href="https://apacheignite.readme.io/docs/binary-marshaller" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +dropdown('Marshaller:', marshaller + '.kind', '"kind"', 'true', 'Choose marshaller',
- '[\
- {value: "OptimizedMarshaller", label: "OptimizedMarshaller"},\
- {value: "JdkMarshaller", label: "JdkMarshaller"},\
- {value: undefined, label: "Not set"}\
- ]',
- 'Instance of marshaller to use in grid<br/>\
- <ul>\
- <li>OptimizedMarshaller - Optimized implementation of marshaller</li>\
- <li>JdkMarshaller - Marshaller based on JDK serialization mechanism</li>\
- <li>Not set - BinaryMarshaller serialize and deserialize all objects in the binary format</li>\
- </ul>')
- a.customize(
- ng-if='#{marshaller}.kind && #{marshaller}.kind === "OptimizedMarshaller"'
- ng-click='#{marshaller}.expanded = !#{marshaller}.expanded'
- ) {{ #{marshaller}.expanded ? "Hide settings" : "Show settings"}}
- .settings-row
- .panel-details(ng-show='#{marshaller}.expanded && #{marshaller}.kind === "OptimizedMarshaller"')
- .details-row
- +number('Streams pool size:', optMarshaller + '.poolSize', '"poolSize"', 'true', '0', '0',
- 'Specifies size of cached object streams used by marshaller<br/>\
- Object streams are cached for performance reason to avoid costly recreation for every serialization routine<br/>\
- If 0 (default), pool is not used and each thread has its own cached object stream which it keeps reusing<br/>\
- Since each stream has an internal buffer, creating a stream for each thread can lead to high memory consumption if many large messages are marshalled or unmarshalled concurrently<br/>\
- Consider using pool in this case. This will limit number of streams that can be created and, therefore, decrease memory consumption<br/>\
- NOTE: Using streams pool can decrease performance since streams will be shared between different threads which will lead to more frequent context switching')
- .details-row
- +checkbox('Require serializable', optMarshaller + '.requireSerializable', '"requireSerializable"',
- 'Whether marshaller should require Serializable interface or not')
- .settings-row
- +checkbox('Marshal local jobs', model + '.marshalLocalJobs', '"marshalLocalJobs"', 'If this flag is enabled, jobs mapped to local node will be marshalled as if it was remote node')
- .settings-row
- +number('Keep alive time:', model + '.marshallerCacheKeepAliveTime', '"marshallerCacheKeepAliveTime"', 'true', '10000', '0',
- 'Keep alive time of thread pool that is in charge of processing marshaller messages')
- .settings-row
- +number('Pool size:', model + '.marshallerCacheThreadPoolSize', '"marshallerCacheThreadPoolSize"', 'true', 'max(8, availableProcessors) * 2', '1',
- 'Default size of thread pool that is in charge of processing marshaller messages')
- .col-sm-6
- +preview-xml-java(model, 'clusterMarshaller')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/marshaller.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/marshaller.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/marshaller.pug
new file mode 100644
index 0000000..f9d29b5
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/marshaller.pug
@@ -0,0 +1,76 @@
+//-
+ 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
+
+-var form = 'marshaller'
+-var model = 'backupItem'
+-var marshaller = model + '.marshaller'
+-var optMarshaller = marshaller + '.OptimizedMarshaller'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Marshaller
+ ignite-form-field-tooltip.tipLabel
+ | Marshaller allows to marshal or unmarshal objects in grid#[br]
+ | It provides serialization/deserialization mechanism for all instances that are sent across networks or are otherwise serialized
+ | By default BinaryMarshaller will be used#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/binary-marshaller" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +dropdown('Marshaller:', marshaller + '.kind', '"kind"', 'true', 'Choose marshaller',
+ '[\
+ {value: "OptimizedMarshaller", label: "OptimizedMarshaller"},\
+ {value: "JdkMarshaller", label: "JdkMarshaller"},\
+ {value: undefined, label: "Not set"}\
+ ]',
+ 'Instance of marshaller to use in grid<br/>\
+ <ul>\
+ <li>OptimizedMarshaller - Optimized implementation of marshaller</li>\
+ <li>JdkMarshaller - Marshaller based on JDK serialization mechanism</li>\
+ <li>Not set - BinaryMarshaller serialize and deserialize all objects in the binary format</li>\
+ </ul>')
+ a.customize(
+ ng-if=`${marshaller}.kind && ${marshaller}.kind === 'OptimizedMarshaller'`
+ ng-click=`${marshaller}.expanded = !${marshaller}.expanded`
+ ) {{ #{marshaller}.expanded ? 'Hide settings' : 'Show settings'}}
+ .settings-row
+ .panel-details(ng-show=`${marshaller}.expanded && ${marshaller}.kind === 'OptimizedMarshaller'`)
+ .details-row
+ +number('Streams pool size:', `${optMarshaller}.poolSize`, '"poolSize"', 'true', '0', '0',
+ 'Specifies size of cached object streams used by marshaller<br/>\
+ Object streams are cached for performance reason to avoid costly recreation for every serialization routine<br/>\
+ If 0 (default), pool is not used and each thread has its own cached object stream which it keeps reusing<br/>\
+ Since each stream has an internal buffer, creating a stream for each thread can lead to high memory consumption if many large messages are marshalled or unmarshalled concurrently<br/>\
+ Consider using pool in this case. This will limit number of streams that can be created and, therefore, decrease memory consumption<br/>\
+ NOTE: Using streams pool can decrease performance since streams will be shared between different threads which will lead to more frequent context switching')
+ .details-row
+ +checkbox('Require serializable', `${optMarshaller}.requireSerializable`, '"requireSerializable"',
+ 'Whether marshaller should require Serializable interface or not')
+ .settings-row
+ +checkbox('Marshal local jobs', `${model}.marshalLocalJobs`, '"marshalLocalJobs"', 'If this flag is enabled, jobs mapped to local node will be marshalled as if it was remote node')
+ .settings-row
+ +number('Keep alive time:', `${model}.marshallerCacheKeepAliveTime`, '"marshallerCacheKeepAliveTime"', 'true', '10000', '0',
+ 'Keep alive time of thread pool that is in charge of processing marshaller messages')
+ .settings-row
+ +number('Pool size:', `${model}.marshallerCacheThreadPoolSize`, '"marshallerCacheThreadPoolSize"', 'true', 'max(8, availableProcessors) * 2', '1',
+ 'Default size of thread pool that is in charge of processing marshaller messages')
+ .col-sm-6
+ +preview-xml-java(model, 'clusterMarshaller')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/metrics.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/metrics.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/metrics.jade
deleted file mode 100644
index d5212a9..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/metrics.jade
+++ /dev/null
@@ -1,51 +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.jade
-
--var form = 'metrics'
--var model = 'backupItem'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Metrics
- ignite-form-field-tooltip.tipLabel
- | Cluster runtime metrics settings
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +number('Elapsed time:', model + '.metricsExpireTime', '"metricsExpireTime"', 'true', 'Long.MAX_VALUE', '1',
- 'Time in milliseconds after which a certain metric value is considered expired')
- .settings-row
- +number('History size:', model + '.metricsHistorySize', '"metricsHistorySize"', 'true', '10000', '1',
- 'Number of metrics kept in history to compute totals and averages')
- .settings-row
- +number('Log frequency:', model + '.metricsLogFrequency', '"metricsLogFrequency"', 'true', '60000', '0',
- 'Frequency of metrics log print out<br/>\ ' +
- 'When <b>0</b> log print of metrics is disabled')
- .settings-row
- +number('Update frequency:', model + '.metricsUpdateFrequency', '"metricsUpdateFrequency"', 'true', '2000', '0',
- 'Job metrics update frequency in milliseconds\
- <ul>\
- <li>If set to -1 job metrics are never updated</li>\
- <li>If set to 0 job metrics are updated on each job start and finish</li>\
- <li>Positive value defines the actual update frequency</li>\
- </ul>')
- .col-sm-6
- +preview-xml-java(model, 'clusterMetrics')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/metrics.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/metrics.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/metrics.pug
new file mode 100644
index 0000000..6810e6b
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/metrics.pug
@@ -0,0 +1,51 @@
+//-
+ 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
+
+-var form = 'metrics'
+-var model = 'backupItem'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Metrics
+ ignite-form-field-tooltip.tipLabel
+ | Cluster runtime metrics settings
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +number('Elapsed time:', `${model}.metricsExpireTime`, '"metricsExpireTime"', 'true', 'Long.MAX_VALUE', '1',
+ 'Time in milliseconds after which a certain metric value is considered expired')
+ .settings-row
+ +number('History size:', `${model}.metricsHistorySize`, '"metricsHistorySize"', 'true', '10000', '1',
+ 'Number of metrics kept in history to compute totals and averages')
+ .settings-row
+ +number('Log frequency:', `${model}.metricsLogFrequency`, '"metricsLogFrequency"', 'true', '60000', '0',
+ 'Frequency of metrics log print out<br/>\ ' +
+ 'When <b>0</b> log print of metrics is disabled')
+ .settings-row
+ +number('Update frequency:', `${model}.metricsUpdateFrequency`, '"metricsUpdateFrequency"', 'true', '2000', '0',
+ 'Job metrics update frequency in milliseconds\
+ <ul>\
+ <li>If set to -1 job metrics are never updated</li>\
+ <li>If set to 0 job metrics are updated on each job start and finish</li>\
+ <li>Positive value defines the actual update frequency</li>\
+ </ul>')
+ .col-sm-6
+ +preview-xml-java(model, 'clusterMetrics')
[12/15] ignite git commit: IGNITE-4659 Migration to Webpack 2.
Upgrade template engine from jade to pug.
Posted by an...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/caches/client-near-cache.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/client-near-cache.pug b/modules/web-console/frontend/app/modules/states/configuration/caches/client-near-cache.pug
new file mode 100644
index 0000000..cd5bcc8
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/caches/client-near-cache.pug
@@ -0,0 +1,50 @@
+//-
+ 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
+
+-var form = 'clientNearCache'
+-var model = 'backupItem.clientNearConfiguration'
+
+.panel.panel-default(ng-form=form novalidate ng-show='backupItem.cacheMode === "PARTITIONED"')
+ .panel-heading(bs-collapse-toggle='' ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Client near cache
+ ignite-form-field-tooltip.tipLabel
+ | Near cache settings for client nodes#[br]
+ | Near cache is a small local cache that stores most recently or most frequently accessed data#[br]
+ | Should be used in case when it is impossible to send computations to remote nodes
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ -var enabled = `${model}.clientNearCacheEnabled`
+
+ .settings-row
+ +checkbox('Enabled', enabled, '"clientNacheEnabled"', 'Flag indicating whether to configure near cache')
+ .settings-row
+ +number('Start size:', `${model}.nearStartSize`, '"clientNearStartSize"', enabled, '375000', '0',
+ 'Initial cache size for near cache which will be used to pre-create internal hash table after start')
+ .settings-row
+ +evictionPolicy(`${model}.nearEvictionPolicy`, '"clientNearCacheEvictionPolicy"', enabled, 'false',
+ 'Near cache eviction policy\
+ <ul>\
+ <li>Least Recently Used (LRU) - Eviction policy based on LRU algorithm and supports batch eviction</li>\
+ <li>First In First Out (FIFO) - Eviction policy based on FIFO algorithm and supports batch eviction</li>\
+ <li>SORTED - Eviction policy which will select the minimum cache entry for eviction</li>\
+ </ul>')
+ .col-sm-6
+ +preview-xml-java('backupItem', 'cacheClientNearCache')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/caches/concurrency.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/concurrency.jade b/modules/web-console/frontend/app/modules/states/configuration/caches/concurrency.jade
deleted file mode 100644
index ffcd568..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/caches/concurrency.jade
+++ /dev/null
@@ -1,65 +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.jade
-
--var form = 'concurrency'
--var model = 'backupItem'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle='' ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Concurrency control
- ignite-form-field-tooltip.tipLabel
- | Cache concurrent asynchronous operations settings
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +number('Max async operations:', model + '.maxConcurrentAsyncOperations', '"maxConcurrentAsyncOperations"', 'true', '500', '0',
- 'Maximum number of allowed concurrent asynchronous operations<br/>\
- If <b>0</b> then number of concurrent asynchronous operations is unlimited')
- .settings-row
- +number('Default lock timeout:', model + '.defaultLockTimeout', '"defaultLockTimeout"', 'true', '0', '0',
- 'Default lock acquisition timeout in milliseconds<br/>\
- If <b>0</b> then lock acquisition will never timeout')
- .settings-row(ng-hide='#{model}.atomicityMode === "TRANSACTIONAL"')
- +dropdown('Entry versioning:', model + '.atomicWriteOrderMode', '"atomicWriteOrderMode"', 'true', 'Choose versioning',
- '[\
- {value: "CLOCK", label: "CLOCK"},\
- {value: "PRIMARY", label: "PRIMARY"}\
- ]',
- 'Write ordering mode determines which node assigns the write version, sender or the primary node\
- <ul>\
- <li>CLOCK - in this mode write versions are assigned on a sender node which generally leads to better performance</li>\
- <li>PRIMARY - in this mode version is assigned only on primary node. This means that sender will only send write request to primary node, which in turn will assign write version and forward it to backups</li>\
- </ul>')
- .settings-row
- +dropdown('Write synchronization mode:', model + '.writeSynchronizationMode', '"writeSynchronizationMode"', 'true', 'PRIMARY_SYNC',
- '[\
- {value: "FULL_SYNC", label: "FULL_SYNC"},\
- {value: "FULL_ASYNC", label: "FULL_ASYNC"},\
- {value: "PRIMARY_SYNC", label: "PRIMARY_SYNC"}\
- ]',
- 'Write synchronization mode\
- <ul>\
- <li>FULL_SYNC - Ignite will wait for write or commit replies from all nodes</li>\
- <li>FULL_ASYNC - Ignite will not wait for write or commit responses from participating nodes</li>\
- <li>PRIMARY_SYNC - Makes sense for PARTITIONED mode. Ignite will wait for write or commit to complete on primary node</li>\
- </ul>')
- .col-sm-6
- +preview-xml-java(model, 'cacheConcurrency')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/caches/concurrency.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/concurrency.pug b/modules/web-console/frontend/app/modules/states/configuration/caches/concurrency.pug
new file mode 100644
index 0000000..6458fbb
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/caches/concurrency.pug
@@ -0,0 +1,65 @@
+//-
+ 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
+
+-var form = 'concurrency'
+-var model = 'backupItem'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle='' ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Concurrency control
+ ignite-form-field-tooltip.tipLabel
+ | Cache concurrent asynchronous operations settings
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +number('Max async operations:', `${model}.maxConcurrentAsyncOperations`, '"maxConcurrentAsyncOperations"', 'true', '500', '0',
+ 'Maximum number of allowed concurrent asynchronous operations<br/>\
+ If <b>0</b> then number of concurrent asynchronous operations is unlimited')
+ .settings-row
+ +number('Default lock timeout:', `${model}.defaultLockTimeout`, '"defaultLockTimeout"', 'true', '0', '0',
+ 'Default lock acquisition timeout in milliseconds<br/>\
+ If <b>0</b> then lock acquisition will never timeout')
+ .settings-row(ng-hide=`${model}.atomicityMode === 'TRANSACTIONAL'`)
+ +dropdown('Entry versioning:', `${model}.atomicWriteOrderMode`, '"atomicWriteOrderMode"', 'true', 'Choose versioning',
+ '[\
+ {value: "CLOCK", label: "CLOCK"},\
+ {value: "PRIMARY", label: "PRIMARY"}\
+ ]',
+ 'Write ordering mode determines which node assigns the write version, sender or the primary node\
+ <ul>\
+ <li>CLOCK - in this mode write versions are assigned on a sender node which generally leads to better performance</li>\
+ <li>PRIMARY - in this mode version is assigned only on primary node. This means that sender will only send write request to primary node, which in turn will assign write version and forward it to backups</li>\
+ </ul>')
+ .settings-row
+ +dropdown('Write synchronization mode:', `${model}.writeSynchronizationMode`, '"writeSynchronizationMode"', 'true', 'PRIMARY_SYNC',
+ '[\
+ {value: "FULL_SYNC", label: "FULL_SYNC"},\
+ {value: "FULL_ASYNC", label: "FULL_ASYNC"},\
+ {value: "PRIMARY_SYNC", label: "PRIMARY_SYNC"}\
+ ]',
+ 'Write synchronization mode\
+ <ul>\
+ <li>FULL_SYNC - Ignite will wait for write or commit replies from all nodes</li>\
+ <li>FULL_ASYNC - Ignite will not wait for write or commit responses from participating nodes</li>\
+ <li>PRIMARY_SYNC - Makes sense for PARTITIONED mode. Ignite will wait for write or commit to complete on primary node</li>\
+ </ul>')
+ .col-sm-6
+ +preview-xml-java(model, 'cacheConcurrency')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/caches/general.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/general.jade b/modules/web-console/frontend/app/modules/states/configuration/caches/general.jade
deleted file mode 100644
index 14f3ab4..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/caches/general.jade
+++ /dev/null
@@ -1,69 +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.jade
-
--var form = 'general'
--var model = 'backupItem'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle)
- ignite-form-panel-chevron
- label General
- ignite-form-field-tooltip.tipLabel
- | Common cache configuration#[br]
- | #[a(href="https://apacheignite.readme.io/docs/data-grid" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id='general')
- .panel-body
- .col-sm-6
- .settings-row
- +text('Name:', model + '.name', '"cacheName"', 'true', 'Input name', 'Cache name')
- .settings-row
- +clusters(model, 'Associate clusters with the current cache')
- .settings-row
- +dropdown-multiple('<span>Domain models:</span><a ui-sref="base.configuration.domains({linkId: linkId()})"> (add)</a>',
- model + '.domains', '"domains"', true, 'Choose domain models', 'No valid domain models configured', 'domains',
- 'Select domain models to describe types in cache')
- .settings-row
- +cacheMode('Mode:', model + '.cacheMode', '"cacheMode"', 'PARTITIONED')
- .settings-row
- +dropdown('Atomicity:', model + '.atomicityMode', '"atomicityMode"', 'true', 'ATOMIC',
- '[\
- {value: "ATOMIC", label: "ATOMIC"},\
- {value: "TRANSACTIONAL", label: "TRANSACTIONAL"}\
- ]',
- 'Atomicity:\
- <ul>\
- <li>ATOMIC - in this mode distributed transactions and distributed locking are not supported</li>\
- <li>TRANSACTIONAL - in this mode specified fully ACID-compliant transactional cache behavior</li>\
- </ul>')
- .settings-row(data-ng-show='#{model}.cacheMode === "PARTITIONED"')
- +number('Backups:', model + '.backups', '"backups"', 'true', '0', '0', 'Number of nodes used to back up single partition for partitioned cache')
- .settings-row(data-ng-show='#{model}.cacheMode === "PARTITIONED" && #{model}.backups')
- +checkbox('Read from backup', model + '.readFromBackup', '"readFromBackup"',
- 'Flag indicating whether data can be read from backup<br/>\
- If not set then always get data from primary node (never from backup)')
- .settings-row
- +checkbox('Copy on read', model + '.copyOnRead', '"copyOnRead"',
- 'Flag indicating whether copy of the value stored in cache should be created for cache operation implying return value<br/>\
- Also if this flag is set copies are created for values passed to CacheInterceptor and to CacheEntryProcessor')
- .settings-row(ng-show='#{model}.cacheMode === "PARTITIONED" && #{model}.atomicityMode === "TRANSACTIONAL"')
- +checkbox('Invalidate near cache', model + '.invalidate', '"invalidate"',
- 'Invalidation flag for near cache entries in transaction<br/>\
- If set then values will be invalidated (nullified) upon commit in near cache')
- .col-sm-6
- +preview-xml-java(model, 'cacheGeneral')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/caches/general.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/general.pug b/modules/web-console/frontend/app/modules/states/configuration/caches/general.pug
new file mode 100644
index 0000000..89676f2
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/caches/general.pug
@@ -0,0 +1,69 @@
+//-
+ 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
+
+-var form = 'general'
+-var model = 'backupItem'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle)
+ ignite-form-panel-chevron
+ label General
+ ignite-form-field-tooltip.tipLabel
+ | Common cache configuration#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/data-grid" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id='general')
+ .panel-body
+ .col-sm-6
+ .settings-row
+ +text('Name:', `${model}.name`, '"cacheName"', 'true', 'Input name', 'Cache name')
+ .settings-row
+ +clusters(model, 'Associate clusters with the current cache')
+ .settings-row
+ +dropdown-multiple('<span>Domain models:</span><a ui-sref="base.configuration.domains({linkId: linkId()})"> (add)</a>',
+ `${model}.domains`, '"domains"', true, 'Choose domain models', 'No valid domain models configured', 'domains',
+ 'Select domain models to describe types in cache')
+ .settings-row
+ +cacheMode('Mode:', `${model}.cacheMode`, '"cacheMode"', 'PARTITIONED')
+ .settings-row
+ +dropdown('Atomicity:', `${model}.atomicityMode`, '"atomicityMode"', 'true', 'ATOMIC',
+ '[\
+ {value: "ATOMIC", label: "ATOMIC"},\
+ {value: "TRANSACTIONAL", label: "TRANSACTIONAL"}\
+ ]',
+ 'Atomicity:\
+ <ul>\
+ <li>ATOMIC - in this mode distributed transactions and distributed locking are not supported</li>\
+ <li>TRANSACTIONAL - in this mode specified fully ACID-compliant transactional cache behavior</li>\
+ </ul>')
+ .settings-row(data-ng-show=`${model}.cacheMode === 'PARTITIONED'`)
+ +number('Backups:', `${model}.backups`, '"backups"', 'true', '0', '0', 'Number of nodes used to back up single partition for partitioned cache')
+ .settings-row(data-ng-show=`${model}.cacheMode === 'PARTITIONED' && ${model}.backups`)
+ +checkbox('Read from backup', `${model}.readFromBackup`, '"readFromBackup"',
+ 'Flag indicating whether data can be read from backup<br/>\
+ If not set then always get data from primary node (never from backup)')
+ .settings-row
+ +checkbox('Copy on read', `${model}.copyOnRead`, '"copyOnRead"',
+ 'Flag indicating whether copy of the value stored in cache should be created for cache operation implying return value<br/>\
+ Also if this flag is set copies are created for values passed to CacheInterceptor and to CacheEntryProcessor')
+ .settings-row(ng-show=`${model}.cacheMode === 'PARTITIONED' && ${model}.atomicityMode === 'TRANSACTIONAL'`)
+ +checkbox('Invalidate near cache', `${model}.invalidate`, '"invalidate"',
+ 'Invalidation flag for near cache entries in transaction<br/>\
+ If set then values will be invalidated (nullified) upon commit in near cache')
+ .col-sm-6
+ +preview-xml-java(model, 'cacheGeneral')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/caches/memory.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/memory.jade b/modules/web-console/frontend/app/modules/states/configuration/caches/memory.jade
deleted file mode 100644
index e8dfb3a..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/caches/memory.jade
+++ /dev/null
@@ -1,109 +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.jade
-
--var form = 'memory'
--var model = 'backupItem'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle='' ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Memory
- ignite-form-field-tooltip.tipLabel
- | Cache memory settings#[br]
- | #[a(href="https://apacheignite.readme.io/docs/off-heap-memory" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +dropdown('Mode:', model + '.memoryMode', '"memoryMode"', 'true', 'ONHEAP_TIERED',
- '[\
- {value: "ONHEAP_TIERED", label: "ONHEAP_TIERED"},\
- {value: "OFFHEAP_TIERED", label: "OFFHEAP_TIERED"},\
- {value: "OFFHEAP_VALUES", label: "OFFHEAP_VALUES"}\
- ]',
- 'Memory modes control whether value is stored in on-heap memory, off-heap memory, or swap space\
- <ul>\
- <li>\
- ONHEAP_TIERED - entries are cached on heap memory first<br/>\
- <ul>\
- <li>\
- If offheap memory is enabled and eviction policy evicts an entry from heap memory, entry will be moved to offheap memory<br/>\
- If offheap memory is disabled, then entry is simply discarded\
- </li>\
- <li>\
- If swap space is enabled and offheap memory fills up, then entry will be evicted into swap space<br/>\
- If swap space is disabled, then entry will be discarded. If swap is enabled and offheap memory is disabled, then entry will be evicted directly from heap memory into swap\
- </li>\
- </ul>\
- </li>\
- <li>\
- OFFHEAP_TIERED - works the same as ONHEAP_TIERED, except that entries never end up in heap memory and get stored in offheap memory right away<br/>\
- Entries get cached in offheap memory first and then get evicted to swap, if one is configured\
- </li>\
- <li>\
- OFFHEAP_VALUES - entry keys will be stored on heap memory, and values will be stored in offheap memory<br/>\
- Note that in this mode entries can be evicted only to swap\
- </li>\
- </ul>')
- .settings-row(ng-show=model + '.memoryMode !== "OFFHEAP_VALUES"')
- +dropdown-required('Off-heap memory:', model + '.offHeapMode', '"offHeapMode"', 'true',
- model + '.memoryMode === "OFFHEAP_TIERED"',
- 'Disabled',
- '[\
- {value: -1, label: "Disabled"},\
- {value: 1, label: "Limited"},\
- {value: 0, label: "Unlimited"}\
- ]',
- 'Off-heap storage mode\
- <ul>\
- <li>Disabled - Off-heap storage is disabled</li>\
- <li>Limited - Off-heap storage has limited size</li>\
- <li>Unlimited - Off-heap storage grow infinitely (it is up to user to properly add and remove entries from cache to ensure that off-heap storage does not grow infinitely)</li>\
- </ul>')
- .settings-row(ng-if=model + '.offHeapMode === 1 && ' + model + '.memoryMode !== "OFFHEAP_VALUES"')
- +number-required('Off-heap memory max size:', model + '.offHeapMaxMemory', '"offHeapMaxMemory"', 'true',
- model + '.offHeapMode === 1', 'Enter off-heap memory size', '1',
- 'Maximum amount of memory available to off-heap storage in bytes')
- .settings-row
- -var onHeapTired = model + '.memoryMode === "ONHEAP_TIERED"'
- -var swapEnabled = model + '.swapEnabled'
- -var offHeapMaxMemory = model + '.offHeapMaxMemory'
-
- +evictionPolicy(model + '.evictionPolicy', '"evictionPolicy"', 'true',
- onHeapTired + ' && (' + swapEnabled + '|| _.isNumber(' + offHeapMaxMemory + ') &&' + offHeapMaxMemory + ' >= 0)',
- 'Optional cache eviction policy<br/>\
- Must be set for entries to be evicted from on-heap to off-heap or swap\
- <ul>\
- <li>Least Recently Used(LRU) - Eviction policy based on LRU algorithm and supports batch eviction</li>\
- <li>First In First Out (FIFO) - Eviction policy based on FIFO algorithm and supports batch eviction</li>\
- <li>SORTED - Eviction policy which will select the minimum cache entry for eviction</li>\
- </ul>')
- .settings-row
- +number('Start size:', model + '.startSize', '"startSize"', 'true', '1500000', '0',
- 'In terms of size and capacity, Ignite internal cache map acts exactly like a normal Java HashMap: it has some initial capacity\
- (which is pretty small by default), which doubles as data arrives. The process of internal cache map resizing is CPU-intensive\
- and time-consuming, and if you load a huge dataset into cache (which is a normal use case), the map will have to resize a lot of times.\
- To avoid that, you can specify the initial cache map capacity, comparable to the expected size of your dataset.\
- This will save a lot of CPU resources during the load time, because the map would not have to resize.\
- For example, if you expect to load 10 million entries into cache, you can set this property to 10 000 000.\
- This will save you from cache internal map resizes.')
- .settings-row
- +checkbox('Swap enabled', model + '.swapEnabled', '"swapEnabled"', 'Flag indicating whether swap storage is enabled or not for this cache')
- .col-sm-6
- +preview-xml-java(model, 'cacheMemory')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/caches/memory.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/memory.pug b/modules/web-console/frontend/app/modules/states/configuration/caches/memory.pug
new file mode 100644
index 0000000..38482a7
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/caches/memory.pug
@@ -0,0 +1,108 @@
+//-
+ 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
+
+-var form = 'memory'
+-var model = 'backupItem'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle='' ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Memory
+ ignite-form-field-tooltip.tipLabel
+ | Cache memory settings#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/off-heap-memory" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +dropdown('Mode:', `${model}.memoryMode`, '"memoryMode"', 'true', 'ONHEAP_TIERED',
+ '[\
+ {value: "ONHEAP_TIERED", label: "ONHEAP_TIERED"},\
+ {value: "OFFHEAP_TIERED", label: "OFFHEAP_TIERED"},\
+ {value: "OFFHEAP_VALUES", label: "OFFHEAP_VALUES"}\
+ ]',
+ 'Memory modes control whether value is stored in on-heap memory, off-heap memory, or swap space\
+ <ul>\
+ <li>\
+ ONHEAP_TIERED - entries are cached on heap memory first<br/>\
+ <ul>\
+ <li>\
+ If offheap memory is enabled and eviction policy evicts an entry from heap memory, entry will be moved to offheap memory<br/>\
+ If offheap memory is disabled, then entry is simply discarded\
+ </li>\
+ <li>\
+ If swap space is enabled and offheap memory fills up, then entry will be evicted into swap space<br/>\
+ If swap space is disabled, then entry will be discarded. If swap is enabled and offheap memory is disabled, then entry will be evicted directly from heap memory into swap\
+ </li>\
+ </ul>\
+ </li>\
+ <li>\
+ OFFHEAP_TIERED - works the same as ONHEAP_TIERED, except that entries never end up in heap memory and get stored in offheap memory right away<br/>\
+ Entries get cached in offheap memory first and then get evicted to swap, if one is configured\
+ </li>\
+ <li>\
+ OFFHEAP_VALUES - entry keys will be stored on heap memory, and values will be stored in offheap memory<br/>\
+ Note that in this mode entries can be evicted only to swap\
+ </li>\
+ </ul>')
+ .settings-row(ng-show=`${model}.memoryMode !== 'OFFHEAP_VALUES'`)
+ +dropdown-required('Off-heap memory:', `${model}.offHeapMode`, '"offHeapMode"', 'true', `${model}.memoryMode === 'OFFHEAP_TIERED'`,
+ 'Disabled',
+ '[\
+ {value: -1, label: "Disabled"},\
+ {value: 1, label: "Limited"},\
+ {value: 0, label: "Unlimited"}\
+ ]',
+ 'Off-heap storage mode\
+ <ul>\
+ <li>Disabled - Off-heap storage is disabled</li>\
+ <li>Limited - Off-heap storage has limited size</li>\
+ <li>Unlimited - Off-heap storage grow infinitely (it is up to user to properly add and remove entries from cache to ensure that off-heap storage does not grow infinitely)</li>\
+ </ul>')
+ .settings-row(ng-if=`${model}.offHeapMode === 1 && ${model}.memoryMode !== 'OFFHEAP_VALUES'`)
+ +number-required('Off-heap memory max size:', `${model}.offHeapMaxMemory`, '"offHeapMaxMemory"', 'true',
+ `${model}.offHeapMode === 1`, 'Enter off-heap memory size', '1',
+ 'Maximum amount of memory available to off-heap storage in bytes')
+ .settings-row
+ -var onHeapTired = model + '.memoryMode === "ONHEAP_TIERED"'
+ -var swapEnabled = model + '.swapEnabled'
+ -var offHeapMaxMemory = model + '.offHeapMaxMemory'
+
+ +evictionPolicy(`${model}.evictionPolicy`, '"evictionPolicy"', 'true',
+ onHeapTired + ' && (' + swapEnabled + '|| _.isNumber(' + offHeapMaxMemory + ') &&' + offHeapMaxMemory + ' >= 0)',
+ 'Optional cache eviction policy<br/>\
+ Must be set for entries to be evicted from on-heap to off-heap or swap\
+ <ul>\
+ <li>Least Recently Used(LRU) - Eviction policy based on LRU algorithm and supports batch eviction</li>\
+ <li>First In First Out (FIFO) - Eviction policy based on FIFO algorithm and supports batch eviction</li>\
+ <li>SORTED - Eviction policy which will select the minimum cache entry for eviction</li>\
+ </ul>')
+ .settings-row
+ +number('Start size:', `${model}.startSize`, '"startSize"', 'true', '1500000', '0',
+ 'In terms of size and capacity, Ignite internal cache map acts exactly like a normal Java HashMap: it has some initial capacity\
+ (which is pretty small by default), which doubles as data arrives. The process of internal cache map resizing is CPU-intensive\
+ and time-consuming, and if you load a huge dataset into cache (which is a normal use case), the map will have to resize a lot of times.\
+ To avoid that, you can specify the initial cache map capacity, comparable to the expected size of your dataset.\
+ This will save a lot of CPU resources during the load time, because the map would not have to resize.\
+ For example, if you expect to load 10 million entries into cache, you can set this property to 10 000 000.\
+ This will save you from cache internal map resizes.')
+ .settings-row
+ +checkbox('Swap enabled', `${model}.swapEnabled`, '"swapEnabled"', 'Flag indicating whether swap storage is enabled or not for this cache')
+ .col-sm-6
+ +preview-xml-java(model, 'cacheMemory')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/caches/near-cache-client.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/near-cache-client.jade b/modules/web-console/frontend/app/modules/states/configuration/caches/near-cache-client.jade
deleted file mode 100644
index 56f7e64..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/caches/near-cache-client.jade
+++ /dev/null
@@ -1,51 +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.jade
-
--var form = 'clientNearCache'
--var model = 'backupItem'
-
-.panel.panel-default(ng-form=form novalidate ng-show='backupItem.cacheMode === "PARTITIONED"')
- .panel-heading(bs-collapse-toggle='' ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Near cache on client node
- ignite-form-field-tooltip.tipLabel
- | Near cache settings for client nodes#[br]
- | Near cache is a small local cache that stores most recently or most frequently accessed data#[br]
- | Should be used in case when it is impossible to send computations to remote nodes
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- -var nearCfg = model + '.clientNearConfiguration'
- -var enabled = nearCfg + '.enabled'
-
- .settings-row
- +checkbox('Enabled', enabled, '"clientNearEnabled"', 'Flag indicating whether to configure near cache')
- .settings-row
- +number('Start size:', nearCfg + '.nearStartSize', '"clientNearStartSize"', enabled, '375000', '0',
- 'Initial cache size for near cache which will be used to pre-create internal hash table after start')
- .settings-row
- +evictionPolicy(nearCfg + '.nearEvictionPolicy', '"clientNearCacheEvictionPolicy"', enabled, 'false',
- 'Near cache eviction policy\
- <ul>\
- <li>Least Recently Used (LRU) - Eviction policy based on LRU algorithm and supports batch eviction</li>\
- <li>First In First Out (FIFO) - Eviction policy based on FIFO algorithm and supports batch eviction</li>\
- <li>SORTED - Eviction policy which will select the minimum cache entry for eviction</li>\
- </ul>')
- .col-sm-6
- +preview-xml-java(model, 'cacheNearClient')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/caches/near-cache-client.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/near-cache-client.pug b/modules/web-console/frontend/app/modules/states/configuration/caches/near-cache-client.pug
new file mode 100644
index 0000000..499dd2d
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/caches/near-cache-client.pug
@@ -0,0 +1,51 @@
+//-
+ 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
+
+-var form = 'clientNearCache'
+-var model = 'backupItem'
+
+.panel.panel-default(ng-form=form novalidate ng-show=`${model}.cacheMode === 'PARTITIONED'`)
+ .panel-heading(bs-collapse-toggle='' ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Near cache on client node
+ ignite-form-field-tooltip.tipLabel
+ | Near cache settings for client nodes#[br]
+ | Near cache is a small local cache that stores most recently or most frequently accessed data#[br]
+ | Should be used in case when it is impossible to send computations to remote nodes
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ -var nearCfg = `${model}.clientNearConfiguration`
+ -var enabled = `${nearCfg}.enabled`
+
+ .settings-row
+ +checkbox('Enabled', enabled, '"clientNearEnabled"', 'Flag indicating whether to configure near cache')
+ .settings-row
+ +number('Start size:', `${nearCfg}.nearStartSize`, '"clientNearStartSize"', enabled, '375000', '0',
+ 'Initial cache size for near cache which will be used to pre-create internal hash table after start')
+ .settings-row
+ +evictionPolicy(`${nearCfg}.nearEvictionPolic`, '"clientNearCacheEvictionPolicy"', enabled, 'false',
+ 'Near cache eviction policy\
+ <ul>\
+ <li>Least Recently Used (LRU) - Eviction policy based on LRU algorithm and supports batch eviction</li>\
+ <li>First In First Out (FIFO) - Eviction policy based on FIFO algorithm and supports batch eviction</li>\
+ <li>SORTED - Eviction policy which will select the minimum cache entry for eviction</li>\
+ </ul>')
+ .col-sm-6
+ +preview-xml-java(model, 'cacheNearClient')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/caches/near-cache-server.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/near-cache-server.jade b/modules/web-console/frontend/app/modules/states/configuration/caches/near-cache-server.jade
deleted file mode 100644
index 9895281..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/caches/near-cache-server.jade
+++ /dev/null
@@ -1,52 +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.jade
-
--var form = 'serverNearCache'
--var model = 'backupItem'
-
-.panel.panel-default(ng-form=form novalidate ng-show='#{model}.cacheMode === "PARTITIONED"')
- .panel-heading(bs-collapse-toggle='' ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Near cache on server node
- ignite-form-field-tooltip.tipLabel
- | Near cache settings#[br]
- | Near cache is a small local cache that stores most recently or most frequently accessed data#[br]
- | Should be used in case when it is impossible to send computations to remote nodes#[br]
- | #[a(href="https://apacheignite.readme.io/docs/near-caches" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- -var nearCfg = model + '.nearConfiguration'
- -var enabled = nearCfg + '.enabled'
-
- .settings-row
- +checkbox('Enabled', enabled, '"nearCacheEnabled"', 'Flag indicating whether to configure near cache')
- .settings-row
- +number('Start size:', nearCfg + '.nearStartSize', '"nearStartSize"', enabled, '375000', '0',
- 'Initial cache size for near cache which will be used to pre-create internal hash table after start')
- .settings-row
- +evictionPolicy(model + '.nearConfiguration.nearEvictionPolicy', '"nearCacheEvictionPolicy"', enabled, 'false',
- 'Near cache eviction policy\
- <ul>\
- <li>Least Recently Used (LRU) - Eviction policy based on LRU algorithm and supports batch eviction</li>\
- <li>First In First Out (FIFO) - Eviction policy based on FIFO algorithm and supports batch eviction</li>\
- <li>SORTED - Eviction policy which will select the minimum cache entry for eviction</li>\
- </ul>')
- .col-sm-6
- +preview-xml-java(model, 'cacheNearServer')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/caches/near-cache-server.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/near-cache-server.pug b/modules/web-console/frontend/app/modules/states/configuration/caches/near-cache-server.pug
new file mode 100644
index 0000000..2efe43a
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/caches/near-cache-server.pug
@@ -0,0 +1,52 @@
+//-
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+include /app/helpers/jade/mixins
+
+-var form = 'serverNearCache'
+-var model = 'backupItem'
+
+.panel.panel-default(ng-form=form novalidate ng-show=`${model}.cacheMode === 'PARTITIONED'`)
+ .panel-heading(bs-collapse-toggle='' ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Near cache on server node
+ ignite-form-field-tooltip.tipLabel
+ | Near cache settings#[br]
+ | Near cache is a small local cache that stores most recently or most frequently accessed data#[br]
+ | Should be used in case when it is impossible to send computations to remote nodes#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/near-caches" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ -var nearCfg = `${model}.nearConfiguration`
+ -var enabled = `${nearCfg}.enabled`
+
+ .settings-row
+ +checkbox('Enabled', enabled, '"nearCacheEnabled"', 'Flag indicating whether to configure near cache')
+ .settings-row
+ +number('Start size:', `${nearCfg}.nearStartSize`, '"nearStartSize"', enabled, '375000', '0',
+ 'Initial cache size for near cache which will be used to pre-create internal hash table after start')
+ .settings-row
+ +evictionPolicy(`${model}.nearConfiguration.nearEvictionPolicy`, '"nearCacheEvictionPolicy"', enabled, 'false',
+ 'Near cache eviction policy\
+ <ul>\
+ <li>Least Recently Used (LRU) - Eviction policy based on LRU algorithm and supports batch eviction</li>\
+ <li>First In First Out (FIFO) - Eviction policy based on FIFO algorithm and supports batch eviction</li>\
+ <li>SORTED - Eviction policy which will select the minimum cache entry for eviction</li>\
+ </ul>')
+ .col-sm-6
+ +preview-xml-java(model, 'cacheNearServer')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/caches/node-filter.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/node-filter.jade b/modules/web-console/frontend/app/modules/states/configuration/caches/node-filter.jade
deleted file mode 100644
index bcac5ad..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/caches/node-filter.jade
+++ /dev/null
@@ -1,59 +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.jade
-
--var form = 'nodeFilter'
--var model = 'backupItem'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle='' ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label(id='nodeFilter-title') Node filter
- ignite-form-field-tooltip.tipLabel
- | Determines on what nodes the cache should be started
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- -var nodeFilter = model + '.nodeFilter';
- -var nodeFilterKind = nodeFilter + '.kind';
-
- +dropdown('Node filter:', nodeFilterKind, '"nodeFilter"', 'true', 'Not set',
- '[\
- {value: "IGFS", label: "IGFS nodes"},\
- {value: "Custom", label: "Custom"},\
- {value: undefined, label: "Not set"}\
- ]',
- 'Node filter variant'
- )
- .settings-row(ng-show=nodeFilterKind)
- div(ng-show='#{nodeFilterKind} === "IGFS"')
- -var igfsNodeFilter = nodeFilter + '.IGFS'
- -var required = nodeFilterKind + ' === "IGFS"'
-
- //(lbl, model, name, enabled, required, placeholder, options, tip)
- +dropdown-required-empty('IGFS:', igfsNodeFilter + '.igfs', '"igfsNodeFilter"', 'true', required,
- 'Choose IGFS', 'No IGFS configured', 'igfss', 'Select IGFS to filter nodes')
- div(ng-show='#{nodeFilterKind} === "Custom"')
- -var customNodeFilter = nodeFilter + '.Custom'
- -var required = nodeFilterKind + ' === "Custom"'
-
- +java-class('Class name:', customNodeFilter + '.className', '"customNodeFilter"',
- 'true', required, 'Class name of custom node filter implementation', required)
- .col-sm-6
- +preview-xml-java(model, 'cacheNodeFilter', 'igfss')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/caches/node-filter.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/node-filter.pug b/modules/web-console/frontend/app/modules/states/configuration/caches/node-filter.pug
new file mode 100644
index 0000000..6715dcd
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/caches/node-filter.pug
@@ -0,0 +1,59 @@
+//-
+ 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
+
+-var form = 'nodeFilter'
+-var model = 'backupItem'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle='' ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label(id='nodeFilter-title') Node filter
+ ignite-form-field-tooltip.tipLabel
+ | Determines on what nodes the cache should be started
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ -var nodeFilter = model + '.nodeFilter';
+ -var nodeFilterKind = nodeFilter + '.kind';
+
+ +dropdown('Node filter:', nodeFilterKind, '"nodeFilter"', 'true', 'Not set',
+ '[\
+ {value: "IGFS", label: "IGFS nodes"},\
+ {value: "Custom", label: "Custom"},\
+ {value: undefined, label: "Not set"}\
+ ]',
+ 'Node filter variant'
+ )
+ .settings-row(ng-show=nodeFilterKind)
+ div(ng-show=`${nodeFilterKind} === 'IGFS'`)
+ -var igfsNodeFilter = `${nodeFilter}.IGFS`
+ -var required = `${nodeFilterKind} === 'IGFS'`
+
+ //(lbl, model, name, enabled, required, placeholder, options, tip)
+ +dropdown-required-empty('IGFS:', `${igfsNodeFilter}.igfs`, '"igfsNodeFilter"', 'true', required,
+ 'Choose IGFS', 'No IGFS configured', 'igfss', 'Select IGFS to filter nodes')
+ div(ng-show=`${nodeFilterKind} === 'Custom'`)
+ -var customNodeFilter = `${nodeFilter}.Custom`
+ -var required = `${nodeFilterKind} === 'Custom'`
+
+ +java-class('Class name:', `${customNodeFilter}.className`, '"customNodeFilter"',
+ 'true', required, 'Class name of custom node filter implementation', required)
+ .col-sm-6
+ +preview-xml-java(model, 'cacheNodeFilter', 'igfss')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/caches/query.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/query.jade b/modules/web-console/frontend/app/modules/states/configuration/caches/query.jade
deleted file mode 100644
index cfbaf12..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/caches/query.jade
+++ /dev/null
@@ -1,114 +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.jade
-
--var form = 'query'
--var model = 'backupItem'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle='' ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Queries & Indexing
- ignite-form-field-tooltip.tipLabel
- | Cache queries settings#[br]
- | #[a(href="https://apacheignite.readme.io/docs/sql-queries" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +text('SQL schema name:', model + '.sqlSchema', '"sqlSchema"', 'false', 'Input schema name',
- 'Specify any custom name to be used as SQL schema for current cache. This name will correspond to SQL ANSI-99 standard.\
- Nonquoted identifiers are not case sensitive. Quoted identifiers are case sensitive.\
- When SQL schema is not specified, quoted cache name should used instead.<br/>\
- For example:\
- <ul>\
- <li>\
- Query without schema names (quoted cache names will be used):\
- SELECT * FROM "PersonsCache".Person p INNER JOIN "OrganizationsCache".Organization o on p.org = o.id\
- </li>\
- <li>\
- The same query using schema names "Persons" and "Organizations":\
- SELECT * FROM Persons.Person p INNER JOIN Organizations.Organization o on p.org = o.id\
- </li>\
- </ul>')
- .settings-row
- +number('On-heap cache for off-heap indexes:', model + '.sqlOnheapRowCacheSize', '"sqlOnheapRowCacheSize"', 'true', '10240', '1',
- 'Number of SQL rows which will be cached onheap to avoid deserialization on each SQL index access')
- .settings-row
- +number('Long query timeout:', model + '.longQueryWarningTimeout', '"longQueryWarningTimeout"', 'true', '3000', '0',
- 'Timeout in milliseconds after which long query warning will be printed')
- .settings-row
- +number('History size:', model + '.queryDetailMetricsSize', '"queryDetailMetricsSize"', 'true', '0', '0',
- 'Size of queries detail metrics that will be stored in memory for monitoring purposes')
- .settings-row
- -var form = 'querySqlFunctionClasses';
- -var sqlFunctionClasses = model + '.sqlFunctionClasses';
-
- +ignite-form-group(ng-form=form ng-model=sqlFunctionClasses)
- ignite-form-field-label
- | SQL functions
- ignite-form-group-tooltip
- | Collections of classes with user-defined functions for SQL queries
- ignite-form-group-add(ng-click='group.add = [{}]')
- | Add new user-defined functions for SQL queries
-
- -var uniqueTip = 'SQL function with such class name already exists!'
-
- .group-content(ng-if='#{sqlFunctionClasses}.length')
- -var model = 'obj.model';
- -var name = '"edit" + $index'
- -var valid = form + '[' + name + '].$valid'
- -var save = sqlFunctionClasses + '[$index] = ' + model
-
- div(ng-repeat='model in #{sqlFunctionClasses} track by $index' ng-init='obj = {}')
- label.col-xs-12.col-sm-12.col-md-12
- .indexField
- | {{ $index+1 }})
- +table-remove-button(sqlFunctionClasses, 'Remove user-defined function')
-
- span(ng-hide='field.edit')
- a.labelFormField(ng-click='field.edit = true; #{model} = model;') {{ model }}
- span(ng-if='field.edit')
- +table-java-class-field('SQL function', name, model, sqlFunctionClasses, valid, save, false)
- +table-save-button(valid, save, false)
- +unique-feedback(name, uniqueTip)
-
- .group-content(ng-repeat='field in group.add')
- -var model = 'new';
- -var name = '"new"'
- -var valid = form + '[' + name + '].$valid'
- -var save = sqlFunctionClasses + '.push(' + model + ')'
-
- div
- label.col-xs-12.col-sm-12.col-md-12
- +table-java-class-field('SQL function', name, model, sqlFunctionClasses, valid, save, true)
- +table-save-button(valid, save, true)
- +unique-feedback(name, uniqueTip)
-
- .group-content-empty(ng-if='!(#{sqlFunctionClasses}.length) && !group.add.length')
- | Not defined
- .settings-row
- +checkbox('Snapshotable index', model + '.snapshotableIndex', '"snapshotableIndex"',
- 'Flag indicating whether SQL indexes should support snapshots')
- .settings-row
- +checkbox('Escape table and filed names', model + '.sqlEscapeAll', '"sqlEscapeAll"',
- 'If enabled than all schema, table and field names will be escaped with double quotes (for example: "tableName"."fieldName").<br/>\
- This enforces case sensitivity for field names and also allows having special characters in table and field names.<br/>\
- Escaped names will be used for creation internal structures in Ignite SQL engine.')
- .col-sm-6
- +preview-xml-java(model, 'cacheQuery', 'domains')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/caches/query.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/query.pug b/modules/web-console/frontend/app/modules/states/configuration/caches/query.pug
new file mode 100644
index 0000000..5bb515a
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/caches/query.pug
@@ -0,0 +1,114 @@
+//-
+ 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
+
+-var form = 'query'
+-var model = 'backupItem'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle='' ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Queries & Indexing
+ ignite-form-field-tooltip.tipLabel
+ | Cache queries settings#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/sql-queries" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +text('SQL schema name:', `${model}.sqlSchema`, '"sqlSchema"', 'false', 'Input schema name',
+ 'Specify any custom name to be used as SQL schema for current cache. This name will correspond to SQL ANSI-99 standard.\
+ Nonquoted identifiers are not case sensitive. Quoted identifiers are case sensitive.\
+ When SQL schema is not specified, quoted cache name should used instead.<br/>\
+ For example:\
+ <ul>\
+ <li>\
+ Query without schema names (quoted cache names will be used):\
+ SELECT * FROM "PersonsCache".Person p INNER JOIN "OrganizationsCache".Organization o on p.org = o.id\
+ </li>\
+ <li>\
+ The same query using schema names "Persons" and "Organizations":\
+ SELECT * FROM Persons.Person p INNER JOIN Organizations.Organization o on p.org = o.id\
+ </li>\
+ </ul>')
+ .settings-row
+ +number('On-heap cache for off-heap indexes:', `${model}.sqlOnheapRowCacheSize`, '"sqlOnheapRowCacheSize"', 'true', '10240', '1',
+ 'Number of SQL rows which will be cached onheap to avoid deserialization on each SQL index access')
+ .settings-row
+ +number('Long query timeout:', `${model}.longQueryWarningTimeout`, '"longQueryWarningTimeout"', 'true', '3000', '0',
+ 'Timeout in milliseconds after which long query warning will be printed')
+ .settings-row
+ +number('History size:', `${model}.queryDetailMetricsSize`, '"queryDetailMetricsSize"', 'true', '0', '0',
+ 'Size of queries detail metrics that will be stored in memory for monitoring purposes')
+ .settings-row
+ -var form = 'querySqlFunctionClasses';
+ -var sqlFunctionClasses = `${model}.sqlFunctionClasses`;
+
+ +ignite-form-group(ng-form=form ng-model=`${sqlFunctionClasses}`)
+ ignite-form-field-label
+ | SQL functions
+ ignite-form-group-tooltip
+ | Collections of classes with user-defined functions for SQL queries
+ ignite-form-group-add(ng-click='group.add = [{}]')
+ | Add new user-defined functions for SQL queries
+
+ -var uniqueTip = 'SQL function with such class name already exists!'
+
+ .group-content(ng-if=`${sqlFunctionClasses}.length`)
+ -var model = 'obj.model';
+ -var name = '"edit" + $index'
+ -var valid = `${form}[${name}].$valid`
+ -var save = `${sqlFunctionClasses}[$index] = ${model}`
+
+ div(ng-repeat=`model in ${sqlFunctionClasses} track by $index` ng-init='obj = {}')
+ label.col-xs-12.col-sm-12.col-md-12
+ .indexField
+ | {{ $index+1 }})
+ +table-remove-button(sqlFunctionClasses, 'Remove user-defined function')
+
+ span(ng-hide='field.edit')
+ a.labelFormField(ng-click=`field.edit = true; ${model} = model;`) {{ model }}
+ span(ng-if='field.edit')
+ +table-java-class-field('SQL function', name, model, sqlFunctionClasses, valid, save, false)
+ +table-save-button(valid, save, false)
+ +unique-feedback(name, uniqueTip)
+
+ .group-content(ng-repeat='field in group.add')
+ -var model = 'new';
+ -var name = '"new"'
+ -var valid = `${form}[${name}].$valid`
+ -var save = `${sqlFunctionClasses}.push(${model})`
+
+ div
+ label.col-xs-12.col-sm-12.col-md-12
+ +table-java-class-field('SQL function', name, model, sqlFunctionClasses, valid, save, true)
+ +table-save-button(valid, save, true)
+ +unique-feedback(name, uniqueTip)
+
+ .group-content-empty(ng-if=`!(${sqlFunctionClasses}.length) && !group.add.length`)
+ | Not defined
+ .settings-row
+ +checkbox('Snapshotable index', `${model}.snapshotableIndex`, '"snapshotableIndex"',
+ 'Flag indicating whether SQL indexes should support snapshots')
+ .settings-row
+ +checkbox('Escape table and filed names', `${model}.sqlEscapeAll`, '"sqlEscapeAll"',
+ 'If enabled than all schema, table and field names will be escaped with double quotes (for example: "tableName"."fieldName").<br/>\
+ This enforces case sensitivity for field names and also allows having special characters in table and field names.<br/>\
+ Escaped names will be used for creation internal structures in Ignite SQL engine.')
+ .col-sm-6
+ +preview-xml-java(model, 'cacheQuery', 'domains')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/caches/rebalance.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/rebalance.jade b/modules/web-console/frontend/app/modules/states/configuration/caches/rebalance.jade
deleted file mode 100644
index d8ef3ad..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/caches/rebalance.jade
+++ /dev/null
@@ -1,66 +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.jade
-
--var form = 'rebalance'
--var model = 'backupItem'
-
-.panel.panel-default(ng-form=form novalidate ng-hide='#{model}.cacheMode === "LOCAL"')
- .panel-heading(bs-collapse-toggle='' ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Rebalance
- ignite-form-field-tooltip.tipLabel
- | Cache rebalance settings#[br]
- | #[a(href="https://apacheignite.readme.io/docs/rebalancing" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +dropdown('Mode:', model + '.rebalanceMode', '"rebalanceMode"', 'true', 'ASYNC',
- '[\
- {value: "SYNC", label: "SYNC"},\
- {value: "ASYNC", label: "ASYNC"},\
- {value: "NONE", label: "NONE"}\
- ]',
- 'Rebalance modes\
- <ul>\
- <li>Synchronous - in this mode distributed caches will not start until all necessary data is loaded from other available grid nodes</li>\
- <li>Asynchronous - in this mode distributed caches will start immediately and will load all necessary data from other available grid nodes in the background</li>\
- <li>None - in this mode no rebalancing will take place which means that caches will be either loaded on demand from persistent store whenever data is accessed, or will be populated explicitly</li>\
- </ul>')
- .settings-row
- +number('Batch size:', model + '.rebalanceBatchSize', '"rebalanceBatchSize"', 'true', '512 * 1024', '1',
- 'Size (in bytes) to be loaded within a single rebalance message<br/>\
- Rebalancing algorithm will split total data set on every node into multiple batches prior to sending data')
- .settings-row
- +number('Batches prefetch count:', model + '.rebalanceBatchesPrefetchCount', '"rebalanceBatchesPrefetchCount"', 'true', '2', '1',
- 'Number of batches generated by supply node at rebalancing start')
- .settings-row
- +number('Order:', model + '.rebalanceOrder', '"rebalanceOrder"', 'true', '0', Number.MIN_SAFE_INTEGER,
- 'If cache rebalance order is positive, rebalancing for this cache will be started only when rebalancing for all caches with smaller rebalance order (except caches with rebalance order 0) will be completed')
- .settings-row
- +number('Delay:', model + '.rebalanceDelay', '"rebalanceDelay"', 'true', '0', '0',
- 'Delay in milliseconds upon a node joining or leaving topology (or crash) after which rebalancing should be started automatically')
- .settings-row
- +number('Timeout:', model + '.rebalanceTimeout', '"rebalanceTimeout"', 'true', '10000', '0',
- 'Rebalance timeout in milliseconds')
- .settings-row
- +number('Throttle:', model + '.rebalanceThrottle', '"rebalanceThrottle"', 'true', '0', '0',
- 'Time in milliseconds to wait between rebalance messages to avoid overloading of CPU or network')
- .col-sm-6
- +preview-xml-java(model, 'cacheRebalance')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/caches/rebalance.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/rebalance.pug b/modules/web-console/frontend/app/modules/states/configuration/caches/rebalance.pug
new file mode 100644
index 0000000..9850d17
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/caches/rebalance.pug
@@ -0,0 +1,66 @@
+//-
+ 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
+
+-var form = 'rebalance'
+-var model = 'backupItem'
+
+.panel.panel-default(ng-form=form novalidate ng-hide=`${model}.cacheMode === "LOCAL"`)
+ .panel-heading(bs-collapse-toggle='' ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Rebalance
+ ignite-form-field-tooltip.tipLabel
+ | Cache rebalance settings#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/rebalancing" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +dropdown('Mode:', `${model}.rebalanceMode`, '"rebalanceMode"', 'true', 'ASYNC',
+ '[\
+ {value: "SYNC", label: "SYNC"},\
+ {value: "ASYNC", label: "ASYNC"},\
+ {value: "NONE", label: "NONE"}\
+ ]',
+ 'Rebalance modes\
+ <ul>\
+ <li>Synchronous - in this mode distributed caches will not start until all necessary data is loaded from other available grid nodes</li>\
+ <li>Asynchronous - in this mode distributed caches will start immediately and will load all necessary data from other available grid nodes in the background</li>\
+ <li>None - in this mode no rebalancing will take place which means that caches will be either loaded on demand from persistent store whenever data is accessed, or will be populated explicitly</li>\
+ </ul>')
+ .settings-row
+ +number('Batch size:', `${model}.rebalanceBatchSize`, '"rebalanceBatchSize"', 'true', '512 * 1024', '1',
+ 'Size (in bytes) to be loaded within a single rebalance message<br/>\
+ Rebalancing algorithm will split total data set on every node into multiple batches prior to sending data')
+ .settings-row
+ +number('Batches prefetch count:', `${model}.rebalanceBatchesPrefetchCount`, '"rebalanceBatchesPrefetchCount"', 'true', '2', '1',
+ 'Number of batches generated by supply node at rebalancing start')
+ .settings-row
+ +number('Order:', `${model}.rebalanceOrder`, '"rebalanceOrder"', 'true', '0', Number.MIN_SAFE_INTEGER,
+ 'If cache rebalance order is positive, rebalancing for this cache will be started only when rebalancing for all caches with smaller rebalance order (except caches with rebalance order 0) will be completed')
+ .settings-row
+ +number('Delay:', `${model}.rebalanceDelay`, '"rebalanceDelay"', 'true', '0', '0',
+ 'Delay in milliseconds upon a node joining or leaving topology (or crash) after which rebalancing should be started automatically')
+ .settings-row
+ +number('Timeout:', `${model}.rebalanceTimeout`, '"rebalanceTimeout"', 'true', '10000', '0',
+ 'Rebalance timeout in milliseconds')
+ .settings-row
+ +number('Throttle:', `${model}.rebalanceThrottle`, '"rebalanceThrottle"', 'true', '0', '0',
+ 'Time in milliseconds to wait between rebalance messages to avoid overloading of CPU or network')
+ .col-sm-6
+ +preview-xml-java(model, 'cacheRebalance')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/caches/statistics.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/statistics.jade b/modules/web-console/frontend/app/modules/states/configuration/caches/statistics.jade
deleted file mode 100644
index 9f7a346..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/caches/statistics.jade
+++ /dev/null
@@ -1,39 +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.jade
-
--var form = 'statistics'
--var model = 'backupItem'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle='' ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Statistics
- ignite-form-field-tooltip.tipLabel
- | Cache statistics and management settings
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +checkbox('Statistics enabled', model + '.statisticsEnabled', '"statisticsEnabled"', 'Flag indicating whether statistics gathering is enabled on this cache')
- .settings-row
- +checkbox('Management enabled', model + '.managementEnabled', '"managementEnabled"',
- 'Flag indicating whether management is enabled on this cache<br/>\
- If enabled the CacheMXBean for each cache is registered in the platform MBean server')
- .col-sm-6
- +preview-xml-java(model, 'cacheStatistics')
[13/15] ignite git commit: IGNITE-4659 Migration to Webpack 2.
Upgrade template engine from jade to pug.
Posted by an...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/helpers/jade/mixins.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/helpers/jade/mixins.pug b/modules/web-console/frontend/app/helpers/jade/mixins.pug
new file mode 100644
index 0000000..db175a2
--- /dev/null
+++ b/modules/web-console/frontend/app/helpers/jade/mixins.pug
@@ -0,0 +1,609 @@
+//-
+ 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 ./form
+
+//- Mixin for advanced options toggle.
+mixin advanced-options-toggle(click, cond, showMessage, hideMessage)
+ .advanced-options
+ i.fa(ng-click=`${click}` ng-class=`${cond} ? 'fa-chevron-circle-down' : 'fa-chevron-circle-right'`)
+ a(ng-click=click) {{ #{cond} ? '#{hideMessage}' : '#{showMessage}' }}
+
+//- Mixin for advanced options toggle with default settings.
+mixin advanced-options-toggle-default
+ +advanced-options-toggle('toggleExpanded()', 'ui.expanded', 'Show advanced settings...', 'Hide advanced settings...')
+
+//- Mixin for main table on screen with list of items.
+mixin main-table(title, rows, focusId, click, rowTemplate, searchField)
+ .padding-bottom-dflt(ng-show=`${rows} && ${rows}.length > 0`)
+ table.links(st-table='displayedRows' st-safe-src=`${rows}`)
+ thead
+ tr
+ th
+ lable.labelHeader.labelFormField #{title}:
+ .col-sm-3.pull-right(style='padding: 0')
+ input.form-control(type='text' st-search=`${searchField}` placeholder=`Filter ${title}...`)
+ tbody
+ tr
+ td
+ .scrollable-y(ng-show='displayedRows.length > 0' style='max-height: 200px')
+ table
+ tbody
+ tr(ng-repeat='row in displayedRows track by row._id' ignite-bs-affix-update)
+ td
+ a(ng-class='{active: row._id == selectedItem._id}' ignite-on-click-focus=focusId ng-click=click) #{rowTemplate}
+ label.placeholder(ng-show='displayedRows.length == 0') No #{title} found
+
+//- Mixin with save, remove, clone and undo buttons.
+mixin save-remove-clone-undo-buttons(objectName)
+ -var removeTip = '"Remove current ' + objectName + '"'
+ -var cloneTip = '"Clone current ' + objectName + '"'
+ -var undoTip = '"Undo all changes for current ' + objectName + '"'
+
+ div(ng-show='contentVisible()' style='display: inline-block;')
+ .panel-tip-container(ng-hide='!backupItem || backupItem._id')
+ a.btn.btn-primary(ng-disabled='!ui.inputForm.$dirty' ng-click='ui.inputForm.$dirty && saveItem()' bs-tooltip='' data-title=`{{saveBtnTipText(ui.inputForm.$dirty, '${objectName}')}}` data-placement='bottom' data-trigger='hover') Save
+ .panel-tip-container(ng-show='backupItem._id')
+ a.btn.btn-primary(id='save-item' ng-disabled='!ui.inputForm.$dirty' ng-click='ui.inputForm.$dirty && saveItem()' bs-tooltip='' data-title=`{{saveBtnTipText(ui.inputForm.$dirty, '${objectName}')}}` data-placement='bottom' data-trigger='hover') Save
+ .panel-tip-container(ng-show='backupItem._id')
+ a.btn.btn-primary(id='clone-item' ng-click='cloneItem()' bs-tooltip=cloneTip data-placement='bottom' data-trigger='hover') Clone
+ .btn-group.panel-tip-container(ng-show='backupItem._id')
+ button.btn.btn-primary(id='remove-item' ng-click='removeItem()' bs-tooltip=removeTip data-placement='bottom' data-trigger='hover') Remove
+ button.btn.dropdown-toggle.btn-primary(id='remove-item-dropdown' data-toggle='dropdown' data-container='body' bs-dropdown='[{ text: "Remove All", click: "removeAllItems()" }]' data-placement='bottom-right')
+ span.caret
+ .panel-tip-container(ng-show='backupItem')
+ i.btn.btn-primary.fa.fa-undo(id='undo-item' ng-disabled='!ui.inputForm.$dirty' ng-click='ui.inputForm.$dirty && resetAll()' bs-tooltip=undoTip data-placement='bottom' data-trigger='hover')
+
+//- Mixin for feedback on specified error.
+mixin error-feedback(visible, error, errorMessage, name)
+ i.fa.fa-exclamation-triangle.form-control-feedback(
+ ng-if=visible
+ bs-tooltip=`'${errorMessage}'`
+ ignite-error=error
+ ignite-error-message=errorMessage
+ name=name
+ )
+
+//- Mixin for feedback on unique violation.
+mixin unique-feedback(name, errorMessage)
+ +form-field-feedback(name, 'igniteUnique', errorMessage)
+
+//- Mixin for feedback on IP address violation.
+mixin ipaddress-feedback(name)
+ +form-field-feedback(name, 'ipaddress', 'Invalid address!')
+
+//- Mixin for feedback on port of IP address violation.
+mixin ipaddress-port-feedback(name)
+ +form-field-feedback(name, 'ipaddressPort', 'Invalid port!')
+
+//- Mixin for feedback on port range violation.
+mixin ipaddress-port-range-feedback(name)
+ +form-field-feedback(name, 'ipaddressPortRange', 'Invalid port range!')
+
+//- Mixin for feedback on UUID violation.
+mixin uuid-feedback(name)
+ +form-field-feedback(name, 'uuid', 'Invalid node ID!')
+
+//- Function that convert enabled state to corresponding disabled state.
+-var enabledToDisabled = function (enabled) {
+- return (enabled === false || enabled === true) ? !enabled : '!(' + enabled + ')';
+-}
+
+//- Mixin for checkbox.
+mixin checkbox(lbl, model, name, tip)
+ +form-field-checkbox(lbl, model, name, false, false, tip)
+
+//- Mixin for checkbox with enabled condition.
+mixin checkbox-enabled(lbl, model, name, enabled, tip)
+ +form-field-checkbox(lbl, model, name, enabledToDisabled(enabled), false, tip)
+
+//- Mixin for Java class name field with auto focus condition.
+mixin java-class-autofocus-placholder(lbl, model, name, enabled, required, autofocus, placeholder, tip, validationActive)
+ -var errLbl = lbl.substring(0, lbl.length - 1)
+
+ +ignite-form-field-text(lbl, model, name, enabledToDisabled(enabled), required, placeholder, tip)(
+ data-java-identifier='true'
+ data-java-package-specified='true'
+ data-java-keywords='true'
+ data-java-built-in-class='true'
+ data-ignite-form-field-input-autofocus=autofocus
+ data-validation-active=validationActive ? `{{ ${validationActive} }}` : `'always'`
+ )
+ if block
+ block
+
+ +form-field-feedback(name, 'javaBuiltInClass', errLbl + ' should not be the Java built-in class!')
+ +form-field-feedback(name, 'javaKeywords', errLbl + ' could not contains reserved Java keyword!')
+ +form-field-feedback(name, 'javaPackageSpecified', errLbl + ' does not have package specified!')
+ +form-field-feedback(name, 'javaIdentifier', errLbl + ' is invalid Java identifier!')
+
+//- Mixin for Java class name field with auto focus condition.
+mixin java-class-autofocus(lbl, model, name, enabled, required, autofocus, tip, validationActive)
+ +java-class-autofocus-placholder(lbl, model, name, enabled, required, autofocus, 'Enter fully qualified class name', tip, validationActive)
+ if block
+ block
+
+//- Mixin for Java class name field.
+mixin java-class(lbl, model, name, enabled, required, tip, validationActive)
+ +java-class-autofocus(lbl, model, name, enabled, required, 'false', tip, validationActive)
+ if block
+ block
+
+//- Mixin for text field with enabled condition with options.
+mixin java-class-typeahead(lbl, model, name, options, enabled, required, placeholder, tip, validationActive)
+ -var errLbl = lbl.substring(0, lbl.length - 1)
+
+ +form-field-datalist(lbl, model, name, enabledToDisabled(enabled), required, placeholder, options, tip)(
+ data-java-identifier='true'
+ data-java-package-specified='allow-built-in'
+ data-java-keywords='true'
+ data-validation-active=validationActive ? `{{ ${validationActive} }}` : `'always'`
+ )
+ +form-field-feedback(name, 'javaKeywords', errLbl + ' could not contains reserved Java keyword!')
+ +form-field-feedback(name, 'javaPackageSpecified', errLbl + ' does not have package specified!')
+ +form-field-feedback(name, 'javaIdentifier', errLbl + ' is invalid Java identifier!')
+
+//- Mixin for java package field with enabled condition.
+mixin java-package(lbl, model, name, enabled, required, tip)
+ +ignite-form-field-text(lbl, model, name, enabledToDisabled(enabled), required, 'Enter package name', tip)(
+ data-java-keywords='true'
+ data-java-package-name='package-only'
+ )
+ +form-field-feedback(name, 'javaPackageName', 'Package name is invalid')
+ +form-field-feedback(name, 'javaKeywords', 'Package name could not contains reserved java keyword')
+
+//- Mixin for text field with IP address check.
+mixin text-ip-address(lbl, model, name, enabled, placeholder, tip)
+ +ignite-form-field-text(lbl, model, name, enabledToDisabled(enabled), false, placeholder, tip)(data-ipaddress='true')
+ +ipaddress-feedback(name)
+
+//- Mixin for text field with IP address and port range check.
+mixin text-ip-address-with-port-range(lbl, model, name, enabled, placeholder, tip)
+ +ignite-form-field-text(lbl, model, name, enabledToDisabled(enabled), false, placeholder, tip)(data-ipaddress='true' data-ipaddress-with-port='true' data-ipaddress-with-port-range='true')
+ +ipaddress-feedback(name)
+ +ipaddress-port-feedback(name)
+ +ipaddress-port-range-feedback(name)
+
+//- Mixin for text field.
+mixin text-enabled(lbl, model, name, enabled, required, placeholder, tip)
+ +ignite-form-field-text(lbl, model, name, enabledToDisabled(enabled), required, placeholder, tip)
+ if block
+ block
+
+//- Mixin for text field with autofocus.
+mixin text-enabled-autofocus(lbl, model, name, enabled, required, placeholder, tip)
+ +ignite-form-field-text(lbl, model, name, enabledToDisabled(enabled), required, placeholder, tip)(
+ data-ignite-form-field-input-autofocus='true'
+ )
+ if block
+ block
+
+//- Mixin for text field.
+mixin text(lbl, model, name, required, placeholder, tip)
+ +ignite-form-field-text(lbl, model, name, false, required, placeholder, tip)
+ if block
+ block
+
+//- Mixin for password field.
+mixin password(lbl, model, name, required, placeholder, tip)
+ +ignite-form-field-password(lbl, model, name, false, required, placeholder, tip)
+ if block
+ block
+
+//- Mixin for text field with enabled condition with options.
+mixin text-options(lbl, model, name, options, enabled, required, placeholder, tip)
+ +form-field-datalist(lbl, model, name, enabledToDisabled(enabled), required, placeholder, options, tip)
+
+//- Mixin for required numeric field.
+mixin number-required(lbl, model, name, enabled, required, placeholder, min, tip)
+ +ignite-form-field-number(lbl, model, name, enabledToDisabled(enabled), required, placeholder, min, false, false, tip)
+
+//- Mixin for required numeric field with maximum and minimum limit.
+mixin number-min-max(lbl, model, name, enabled, placeholder, min, max, tip)
+ +ignite-form-field-number(lbl, model, name, enabledToDisabled(enabled), false, placeholder, min, max, '1', tip)
+
+//- Mixin for required numeric field with maximum and minimum limit.
+mixin number-min-max-step(lbl, model, name, enabled, placeholder, min, max, step, tip)
+ +ignite-form-field-number(lbl, model, name, enabledToDisabled(enabled), false, placeholder, min, max, step, tip)
+
+//- Mixin for numeric field.
+mixin number(lbl, model, name, enabled, placeholder, min, tip)
+ +ignite-form-field-number(lbl, model, name, enabledToDisabled(enabled), false, placeholder, min, false, false, tip)
+
+//- Mixin for required dropdown field.
+mixin dropdown-required-empty(lbl, model, name, enabled, required, placeholder, placeholderEmpty, options, tip)
+ +ignite-form-field-dropdown(lbl, model, name, enabledToDisabled(enabled), required, false, placeholder, placeholderEmpty, options, tip)
+ if block
+ block
+
+//- Mixin for required dropdown field with autofocus.
+mixin dropdown-required-empty-autofocus(lbl, model, name, enabled, required, placeholder, placeholderEmpty, options, tip)
+ +ignite-form-field-dropdown(lbl, model, name, enabledToDisabled(enabled), required, false, placeholder, placeholderEmpty, options, tip)(
+ data-ignite-form-field-input-autofocus='true'
+ )
+ if block
+ block
+
+//- Mixin for required dropdown field.
+mixin dropdown-required(lbl, model, name, enabled, required, placeholder, options, tip)
+ +ignite-form-field-dropdown(lbl, model, name, enabledToDisabled(enabled), required, false, placeholder, '', options, tip)
+ if block
+ block
+
+//- Mixin for required dropdown field with autofocus.
+mixin dropdown-required-autofocus(lbl, model, name, enabled, required, placeholder, options, tip)
+ +ignite-form-field-dropdown(lbl, model, name, enabledToDisabled(enabled), required, false, placeholder, '', options, tip)(
+ data-ignite-form-field-input-autofocus='true'
+ )
+ if block
+ block
+
+//- Mixin for dropdown field.
+mixin dropdown(lbl, model, name, enabled, placeholder, options, tip)
+ +ignite-form-field-dropdown(lbl, model, name, enabledToDisabled(enabled), false, false, placeholder, '', options, tip)
+ if block
+ block
+
+//- Mixin for dropdown-multiple field.
+mixin dropdown-multiple(lbl, model, name, enabled, placeholder, placeholderEmpty, options, tip)
+ +ignite-form-field-dropdown(lbl, model, name, enabledToDisabled(enabled), false, true, placeholder, placeholderEmpty, options, tip)
+ if block
+ block
+
+//- Mixin for table text field.
+mixin table-text-field(name, model, items, valid, save, placeholder, newItem)
+ -var resetOnEnter = newItem ? '(stopblur = true) && (group.add = [{}])' : '(field.edit = false)'
+ -var onEnter = `${valid} && (${save}); ${valid} && ${resetOnEnter};`
+
+ -var onEscape = newItem ? 'group.add = []' : 'field.edit = false'
+
+ -var resetOnBlur = newItem ? '!stopblur && (group.add = [])' : 'field.edit = false'
+ -var onBlur = `${valid} && (${save}); ${resetOnBlur};`
+
+ div(ignite-on-focus-out=onBlur)
+ if block
+ block
+
+ .input-tip
+ +ignite-form-field-input(name, model, false, 'true', placeholder)(
+ data-ignite-unique=items
+ data-ignite-form-field-input-autofocus='true'
+
+ ignite-on-enter=onEnter
+ ignite-on-escape=onEscape
+ )
+
+//- Mixin for table java class field.
+mixin table-java-class-field(lbl, name, model, items, valid, save, newItem)
+ -var resetOnEnter = newItem ? '(stopblur = true) && (group.add = [{}])' : '(field.edit = false)'
+ -var onEnter = `${valid} && (${save}); ${valid} && ${resetOnEnter};`
+
+ -var onEscape = newItem ? 'group.add = []' : 'field.edit = false'
+
+ -var resetOnBlur = newItem ? '!stopblur && (group.add = [])' : 'field.edit = false'
+ -var onBlur = `${valid} && (${save}); ${resetOnBlur};`
+
+ div(ignite-on-focus-out=onBlur)
+ +form-field-feedback(name, 'javaBuiltInClass', lbl + ' should not be the Java built-in class!')
+ +form-field-feedback(name, 'javaKeywords', lbl + ' could not contains reserved Java keyword!')
+ +form-field-feedback(name, 'javaPackageSpecified', lbl + ' does not have package specified!')
+ +form-field-feedback(name, 'javaIdentifier', lbl + ' is invalid Java identifier!')
+
+ if block
+ block
+
+ .input-tip
+ +ignite-form-field-input(name, model, false, 'true', 'Enter fully qualified class name')(
+ data-java-identifier='true'
+ data-java-package-specified='true'
+ data-java-keywords='true'
+ data-java-built-in-class='true'
+
+ data-ignite-unique=items
+ data-ignite-form-field-input-autofocus='true'
+
+ ignite-on-enter=onEnter
+ ignite-on-escape=onEscape
+ )
+
+//- Mixin for table java package field.
+mixin table-java-package-field(name, model, items, valid, save, newItem)
+ -var resetOnEnter = newItem ? '(stopblur = true) && (group.add = [{}])' : '(field.edit = false)'
+ -var onEnter = `${valid} && (${save}); ${valid} && ${resetOnEnter};`
+
+ -var onEscape = newItem ? 'group.add = []' : 'field.edit = false'
+
+ -var resetOnBlur = newItem ? '!stopblur && (group.add = [])' : 'field.edit = false'
+ -var onBlur = `${valid} && (${save}); ${resetOnBlur};`
+
+ div(ignite-on-focus-out=onBlur)
+ +form-field-feedback(name, 'javaKeywords', 'Package name could not contains reserved Java keyword!')
+ +form-field-feedback(name, 'javaPackageName', 'Package name is invalid!')
+
+ if block
+ block
+
+ .input-tip
+ +ignite-form-field-input(name, model, false, 'true', 'Enter package name')(
+ data-java-keywords='true'
+ data-java-package-name='package-only'
+
+ data-ignite-unique=items
+ data-ignite-form-field-input-autofocus='true'
+
+ ignite-on-enter=onEnter
+ ignite-on-escape=onEscape
+ )
+
+//- Mixin for table java package field.
+mixin table-url-field(name, model, items, valid, save, newItem)
+ -var resetOnEnter = newItem ? '(stopblur = true) && (group.add = [{}])' : '(field.edit = false)'
+ -var onEnter = `${valid} && (${save}); ${valid} && ${resetOnEnter};`
+
+ -var onEscape = newItem ? 'group.add = []' : 'field.edit = false'
+
+ -var resetOnBlur = newItem ? '!stopblur && (group.add = [])' : 'field.edit = false'
+ -var onBlur = `${valid} && (${save}); ${resetOnBlur};`
+
+ div(ignite-on-focus-out=onBlur)
+ if block
+ block
+
+ .input-tip
+ +ignite-form-field-url-input(name, model, false, 'true', 'Enter URL')(
+ data-ignite-unique=items
+ data-ignite-form-field-input-autofocus='true'
+
+ ignite-on-enter=onEnter
+ ignite-on-escape=onEscape
+ )
+
+//- Mixin for table address field.
+mixin table-address-field(name, model, items, valid, save, newItem, portRange)
+ -var resetOnEnter = newItem ? '(stopblur = true) && (group.add = [{}])' : '(field.edit = false)'
+ -var onEnter = `${valid} && (${save}); ${valid} && ${resetOnEnter};`
+
+ -var onEscape = newItem ? 'group.add = []' : 'field.edit = false'
+
+ -var resetOnBlur = newItem ? '!stopblur && (group.add = [])' : 'field.edit = false'
+ -var onBlur = `${valid} && (${save}); ${resetOnBlur};`
+
+ div(ignite-on-focus-out=onBlur)
+ +ipaddress-feedback(name)
+ +ipaddress-port-feedback(name)
+ +ipaddress-port-range-feedback(name)
+ +form-field-feedback(name, 'required', 'IP address:port could not be empty!')
+
+ if block
+ block
+
+ .input-tip
+ +ignite-form-field-input(name, model, false, 'true', 'IP address:port')(
+ data-ipaddress='true'
+ data-ipaddress-with-port='true'
+ data-ipaddress-with-port-range=portRange ? 'true' : null
+ data-ignite-unique=items
+ data-ignite-form-field-input-autofocus='true'
+
+ ignite-on-enter=onEnter
+ ignite-on-escape=onEscape
+ )
+
+//- Mixin for table UUID field.
+mixin table-uuid-field(name, model, items, valid, save, newItem)
+ -var resetOnEnter = newItem ? '(stopblur = true) && (group.add = [{}])' : '(field.edit = false)'
+ -var onEnter = `${valid} && (${save}); ${valid} && ${resetOnEnter};`
+
+ -var onEscape = newItem ? 'group.add = []' : 'field.edit = false'
+
+ -var resetOnBlur = newItem ? '!stopblur && (group.add = [])' : 'field.edit = false'
+ -var onBlur = `${valid} && (${save}); ${resetOnBlur};`
+
+ div(ignite-on-focus-out=onBlur)
+ if block
+ block
+
+ .input-tip
+ +ignite-form-field-input(name, model, false, 'true', 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')(
+ data-uuid='true'
+ data-ignite-unique=items
+ data-ignite-form-field-input-autofocus='true'
+
+ ignite-on-enter=onEnter
+ ignite-on-escape=onEscape
+ )
+
+//- Mixin for table save button.
+ "||" used instead of "&&" to workaround escaping of "&&" to "&&"
+mixin table-save-button(valid, save, newItem)
+ -var reset = newItem ? 'group.add = []' : 'field.edit = false'
+
+ i.fa.fa-floppy-o.form-field-save(
+ ng-show=valid
+ ng-click=`!(${valid}) || (${save}); !(${valid}) || (${reset});`
+ bs-tooltip
+ data-title='Click icon or press [Enter] to save item'
+ )
+
+//- Mixin for table remove button.
+mixin table-remove-conditional-button(items, show, tip, row)
+ i.tipField.fa.fa-remove(
+ ng-hide=`!${show} || field.edit`
+ bs-tooltip
+ data-title=tip
+ ng-click=`${items}.splice(${items}.indexOf(${row}), 1)`
+ )
+
+//- Mixin for table remove button.
+mixin table-remove-button(items, tip)
+ +table-remove-conditional-button(items, 'true', tip, 'model')
+
+//- Mixin for cache mode.
+mixin cacheMode(lbl, model, name, placeholder)
+ +dropdown(lbl, model, name, 'true', placeholder,
+ '[\
+ {value: "LOCAL", label: "LOCAL"},\
+ {value: "REPLICATED", label: "REPLICATED"},\
+ {value: "PARTITIONED", label: "PARTITIONED"}\
+ ]',
+ 'Cache modes:\
+ <ul>\
+ <li>PARTITIONED - in this mode the overall key set will be divided into partitions and all partitions will be split equally between participating nodes</li>\
+ <li>REPLICATED - in this mode all the keys are distributed to all participating nodes</li>\
+ <li>LOCAL - in this mode caches residing on different grid nodes will not know about each other</li>\
+ </ul>'
+ )
+
+//- Mixin for eviction policy.
+mixin evictionPolicy(model, name, enabled, required, tip)
+ -var kind = model + '.kind'
+ -var policy = model + '[' + kind + ']'
+
+ +dropdown-required('Eviction policy:', kind, name + '+ "Kind"', enabled, required, 'Not set',
+ '[\
+ {value: "LRU", label: "LRU"},\
+ {value: "FIFO", label: "FIFO"},\
+ {value: "SORTED", label: "Sorted"},\
+ {value: undefined, label: "Not set"}\
+ ]', tip)
+ span(ng-show=kind)
+ +showHideLink('expanded', 'settings')
+ .details-row
+ +number('Batch size', policy + '.batchSize', name + '+ "batchSize"', enabled, '1', '1',
+ 'Number of entries to remove on shrink')
+ .details-row
+ +number('Max memory size', policy + '.maxMemorySize', name + '+ "maxMemorySize"', enabled, '0', '0',
+ 'Maximum allowed cache size in bytes')
+ .details-row
+ +number('Max size', policy + '.maxSize', name + '+ "maxSize"', enabled, '100000', '0',
+ 'Maximum allowed size of cache before entry will start getting evicted')
+
+//- Mixin for clusters dropdown.
+mixin clusters(model, tip)
+ +dropdown-multiple('<span>Clusters:</span>' + '<a ui-sref="base.configuration.clusters({linkId: linkId()})"> (add)</a>',
+ model + '.clusters', '"clusters"', true, 'Choose clusters', 'No clusters configured', 'clusters', tip)
+
+//- Mixin for caches dropdown.
+mixin caches(model, tip)
+ +dropdown-multiple('<span>Caches:</span>' + '<a ui-sref="base.configuration.caches({linkId: linkId()})"> (add)</a>',
+ model + '.caches', '"caches"', true, 'Choose caches', 'No caches configured', 'caches', tip)
+
+//- Mixin for XML, Java, .Net preview.
+mixin preview(master, generator, detail)
+ ignite-ui-ace-tabs
+ .preview-panel(ng-init='mode = "spring"')
+ .preview-legend
+ a(ng-class='{active: mode === "spring"}' ng-click='mode = "spring"') Spring
+ a(ng-class='{active: mode === "java"}' ng-click='mode = "java"') Java
+ a(ng-class='{active: mode === "csharp"}' ng-click='mode = "csharp"') C#
+ //a(ng-class='{active: mode === "app.config"}' ng-click='mode = "app.config"') app.config
+ .preview-content(ng-switch='mode')
+ ignite-ui-ace-spring(ng-switch-when="spring" data-master=master data-generator=generator ng-model='$parent.data' data-detail=detail)
+ ignite-ui-ace-java(ng-switch-when="java" data-master=master data-generator=generator ng-model='$parent.data' data-detail=detail)
+ ignite-ui-ace-sharp(ng-switch-when="csharp" data-master=master data-generator=generator ng-model='$parent.data' data-detail=detail)
+ .preview-content-empty(ng-if='!data')
+ label All Defaults
+
+//- Mixin for XML and Java preview.
+mixin preview-xml-java(master, generator, detail)
+ ignite-ui-ace-tabs
+ .preview-panel(ng-init='mode = "spring"')
+ .preview-legend
+ a(ng-class='{active: mode === "spring"}' ng-click='mode = "spring"') Spring
+ a(ng-class='{active: mode === "java"}' ng-click='mode = "java"') Java
+ //a(ng-class='{active: mode === "csharp"}' ng-click='mode = "csharp"') C#
+ //a(ng-class='{active: mode === "app.config"}' ng-click='mode = "app.config"') app.config
+ .preview-content(ng-switch='mode')
+ ignite-ui-ace-spring(ng-switch-when="spring" data-master=master data-generator=generator ng-model='$parent.data' data-detail=detail)
+ ignite-ui-ace-java(ng-switch-when="java" data-master=master data-generator=generator ng-model='$parent.data' data-detail=detail)
+ //ignite-ui-ace-sharp(ng-switch-when="csharp" data-master=master data-generator=generator ng-model='$parent.data' data-detail=detail)
+ .preview-content-empty(ng-if='!data')
+ label All Defaults
+
+//- LEGACY mixin for LEGACY tables.
+mixin btn-save(show, click)
+ i.tipField.fa.fa-floppy-o(ng-show=show ng-click=click bs-tooltip='' data-title='Click icon or press [Enter] to save item' data-trigger='hover')
+
+//- LEGACY mixin for LEGACY tables.
+mixin btn-add(click, tip)
+ i.tipField.fa.fa-plus(ng-click=click bs-tooltip=tip data-trigger = 'hover')
+
+//- LEGACY mixin for LEGACY tables.
+mixin btn-remove(click, tip)
+ i.tipField.fa.fa-remove(ng-click=click bs-tooltip=tip data-trigger='hover')
+
+//- LEGACY mixin for LEGACY tables.
+mixin btn-remove-cond(cond, click, tip)
+ i.tipField.fa.fa-remove(ng-show=cond ng-click=click bs-tooltip=tip data-trigger='hover')
+
+//- LEGACY mixin for LEGACY pair values tables.
+mixin table-pair-edit(tbl, prefix, keyPlaceholder, valPlaceholder, keyJavaBuiltInTypes, valueJavaBuiltInTypes, focusId, index, divider)
+ -var keyModel = `${tbl}.${prefix}Key`
+ -var valModel = `${tbl}.${prefix}Value`
+
+ -var keyFocusId = `${prefix}Key${focusId}`
+ -var valFocusId = `${prefix}Value${focusId}`
+
+ .col-xs-6.col-sm-6.col-md-6
+ .fieldSep !{divider}
+ .input-tip
+ if keyJavaBuiltInTypes
+ input.form-control(id=keyFocusId ignite-on-enter-focus-move=valFocusId type='text' ng-model=keyModel placeholder=keyPlaceholder bs-typeahead container='body' ignite-retain-selection data-min-length='1' bs-options='javaClass for javaClass in javaBuiltInClasses' ignite-on-escape='tableReset(false)')
+ else
+ input.form-control(id=keyFocusId ignite-on-enter-focus-move=valFocusId type='text' ng-model=keyModel placeholder=keyPlaceholder ignite-on-escape='tableReset(false)')
+ .col-xs-6.col-sm-6.col-md-6
+ -var btnVisible = 'tablePairSaveVisible(' + tbl + ', ' + index + ')'
+ -var btnSave = 'tablePairSave(tablePairValid, backupItem, ' + tbl + ', ' + index + ')'
+ -var btnVisibleAndSave = btnVisible + ' && ' + btnSave
+
+ +btn-save(btnVisible, btnSave)
+ .input-tip
+ if valueJavaBuiltInTypes
+ input.form-control(id=valFocusId type='text' ng-model=valModel placeholder=valPlaceholder bs-typeahead container='body' ignite-retain-selection data-min-length='1' bs-options='javaClass for javaClass in javaBuiltInClasses' ignite-on-enter=btnVisibleAndSave ignite-on-escape='tableReset(false)')
+ else
+ input.form-control(id=valFocusId type='text' ng-model=valModel placeholder=valPlaceholder ignite-on-enter=btnVisibleAndSave ignite-on-escape='tableReset(false)')
+
+//- Mixin for DB dialect.
+mixin dialect(lbl, model, name, required, tipTitle, genericDialectName, placeholder)
+ +dropdown-required(lbl, model, name, 'true', required, placeholder, '[\
+ {value: "Generic", label: "' + genericDialectName + '"},\
+ {value: "Oracle", label: "Oracle"},\
+ {value: "DB2", label: "IBM DB2"},\
+ {value: "SQLServer", label: "Microsoft SQL Server"},\
+ {value: "MySQL", label: "MySQL"},\
+ {value: "PostgreSQL", label: "PostgreSQL"},\
+ {value: "H2", label: "H2 database"}\
+ ]',
+ tipTitle +
+ '<ul>\
+ <li>' + genericDialectName + '</li>\
+ <li>Oracle database</li>\
+ <li>IBM DB2</li>\
+ <li>Microsoft SQL Server</li>\
+ <li>MySQL</li>\
+ <li>PostgreSQL</li>\
+ <li>H2 database</li>\
+ </ul>')
+
+//- Mixin for show/hide links.
+mixin showHideLink(name, text)
+ span(ng-init='__ = {};')
+ a.customize(ng-show=`__.${name}` ng-click=`__.${name} = false`) Hide #{text}
+ a.customize(ng-hide=`__.${name}` ng-click=`__.${name} = true; ui.loadPanel('${name}');`) Show #{text}
+ div(ng-if=`ui.isPanelLoaded('${name}')`)
+ .panel-details(ng-show=`__.${name}`)
+ if block
+ block
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/agent/agent.module.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/agent/agent.module.js b/modules/web-console/frontend/app/modules/agent/agent.module.js
index 7ac39d1..c0e92d5 100644
--- a/modules/web-console/frontend/app/modules/agent/agent.module.js
+++ b/modules/web-console/frontend/app/modules/agent/agent.module.js
@@ -18,6 +18,8 @@
import angular from 'angular';
import io from 'socket.io-client'; // eslint-disable-line no-unused-vars
+import templateUrl from 'views/templates/agent-download.tpl.pug';
+
const maskNull = (val) => _.isEmpty(val) ? 'null' : val;
class IgniteAgentMonitor {
@@ -35,7 +37,7 @@ class IgniteAgentMonitor {
// Pre-fetch modal dialogs.
this._downloadAgentModal = $modal({
scope: this._scope,
- templateUrl: '/templates/agent-download.html',
+ templateUrl,
show: false,
backdrop: 'static',
keyboard: false
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/branding/header-logo.directive.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/branding/header-logo.directive.js b/modules/web-console/frontend/app/modules/branding/header-logo.directive.js
index 423de9c..231411b 100644
--- a/modules/web-console/frontend/app/modules/branding/header-logo.directive.js
+++ b/modules/web-console/frontend/app/modules/branding/header-logo.directive.js
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-import templateUrl from './header-logo.jade';
+import template from './header-logo.pug';
export default ['igniteHeaderLogo', ['IgniteBranding', (branding) => {
function controller() {
@@ -26,7 +26,7 @@ export default ['igniteHeaderLogo', ['IgniteBranding', (branding) => {
return {
restrict: 'E',
- templateUrl,
+ template,
controller,
controllerAs: 'logo',
replace: true
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/branding/header-logo.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/branding/header-logo.jade b/modules/web-console/frontend/app/modules/branding/header-logo.jade
deleted file mode 100644
index b58f670..0000000
--- a/modules/web-console/frontend/app/modules/branding/header-logo.jade
+++ /dev/null
@@ -1,18 +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.
-
-a(ui-sref='signin')
- img.navbar-brand(ng-src='{{logo.url}}' height='40')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/branding/header-logo.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/branding/header-logo.pug b/modules/web-console/frontend/app/modules/branding/header-logo.pug
new file mode 100644
index 0000000..b58f670
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/branding/header-logo.pug
@@ -0,0 +1,18 @@
+//-
+ 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.
+
+a(ui-sref='signin')
+ img.navbar-brand(ng-src='{{logo.url}}' height='40')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/branding/powered-by-apache.directive.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/branding/powered-by-apache.directive.js b/modules/web-console/frontend/app/modules/branding/powered-by-apache.directive.js
index 2f02446..dce7d55 100644
--- a/modules/web-console/frontend/app/modules/branding/powered-by-apache.directive.js
+++ b/modules/web-console/frontend/app/modules/branding/powered-by-apache.directive.js
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-import templateUrl from './powered-by-apache.jade';
+import template from './powered-by-apache.pug';
export default ['ignitePoweredByApache', ['IgniteBranding', (branding) => {
function controller() {
@@ -26,7 +26,7 @@ export default ['ignitePoweredByApache', ['IgniteBranding', (branding) => {
return {
restrict: 'E',
- templateUrl,
+ template,
controller,
controllerAs: 'poweredBy',
replace: true
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/branding/powered-by-apache.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/branding/powered-by-apache.jade b/modules/web-console/frontend/app/modules/branding/powered-by-apache.jade
deleted file mode 100644
index af9aadf..0000000
--- a/modules/web-console/frontend/app/modules/branding/powered-by-apache.jade
+++ /dev/null
@@ -1,18 +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.
-
-a(ng-if='poweredBy.show' href='//ignite.apache.org' target='_blank')
- img(ng-src='/images/pb-ignite.png' height='65')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/branding/powered-by-apache.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/branding/powered-by-apache.pug b/modules/web-console/frontend/app/modules/branding/powered-by-apache.pug
new file mode 100644
index 0000000..af9aadf
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/branding/powered-by-apache.pug
@@ -0,0 +1,18 @@
+//-
+ 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.
+
+a(ng-if='poweredBy.show' href='//ignite.apache.org' target='_blank')
+ img(ng-src='/images/pb-ignite.png' height='65')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/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 bd759df..740ab30 100644
--- a/modules/web-console/frontend/app/modules/demo/Demo.module.js
+++ b/modules/web-console/frontend/app/modules/demo/Demo.module.js
@@ -18,6 +18,7 @@
import angular from 'angular';
import DEMO_INFO from 'app/data/demo-info.json';
+import templateUrl from 'views/templates/demo-info.tpl.pug';
angular
.module('ignite-console.demo', [
@@ -129,7 +130,7 @@ angular
}
const dialog = $modal({
- templateUrl: '/templates/demo-info.html',
+ templateUrl,
scope,
placement: 'center',
show: false,
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/dialog/dialog.factory.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/dialog/dialog.factory.js b/modules/web-console/frontend/app/modules/dialog/dialog.factory.js
index e15891f..2ac8917 100644
--- a/modules/web-console/frontend/app/modules/dialog/dialog.factory.js
+++ b/modules/web-console/frontend/app/modules/dialog/dialog.factory.js
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-import templateUrl from './dialog.jade';
+import templateUrl from './dialog.tpl.pug';
export default ['IgniteDialog', ['$modal', ($modal) => {
const defaults = {
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/dialog/dialog.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/dialog/dialog.jade b/modules/web-console/frontend/app/modules/dialog/dialog.jade
deleted file mode 100644
index 0043709..0000000
--- a/modules/web-console/frontend/app/modules/dialog/dialog.jade
+++ /dev/null
@@ -1,26 +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.
-
-.modal(tabindex='-1' role='dialog')
- .modal-dialog
- .modal-content
- .modal-header
- button.close(ng-click='$hide()' aria-hidden='true') ×
- h4.modal-title {{title}}
- .modal-body(ng-show='content')
- p(ng-bind-html='content' style='text-align: left;')
- .modal-footer
- button.btn.btn-primary(id='confirm-btn-confirm' ng-click='$hide()') Ok
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/dialog/dialog.tpl.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/dialog/dialog.tpl.pug b/modules/web-console/frontend/app/modules/dialog/dialog.tpl.pug
new file mode 100644
index 0000000..0043709
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/dialog/dialog.tpl.pug
@@ -0,0 +1,26 @@
+//-
+ 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.
+
+.modal(tabindex='-1' role='dialog')
+ .modal-dialog
+ .modal-content
+ .modal-header
+ button.close(ng-click='$hide()' aria-hidden='true') ×
+ h4.modal-title {{title}}
+ .modal-body(ng-show='content')
+ p(ng-bind-html='content' style='text-align: left;')
+ .modal-footer
+ button.btn.btn-primary(id='confirm-btn-confirm' ng-click='$hide()') Ok
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/getting-started/GettingStarted.provider.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/getting-started/GettingStarted.provider.js b/modules/web-console/frontend/app/modules/getting-started/GettingStarted.provider.js
index cf9f561..f4c834c 100644
--- a/modules/web-console/frontend/app/modules/getting-started/GettingStarted.provider.js
+++ b/modules/web-console/frontend/app/modules/getting-started/GettingStarted.provider.js
@@ -19,6 +19,7 @@ import angular from 'angular';
// Getting started pages.
import PAGES from 'app/data/getting-started.json';
+import templateUrl from 'views/templates/getting-started.tpl.pug';
angular
.module('ignite-console.getting-started', [])
@@ -77,7 +78,7 @@ angular
_fillPage();
};
- const dialog = $modal({templateUrl: '/templates/getting-started.html', scope, placement: 'center', show: false, backdrop: 'static'});
+ const dialog = $modal({ templateUrl, scope, placement: 'center', show: false, backdrop: 'static'});
scope.close = () => {
try {
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/loading/loading.css
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/loading/loading.css b/modules/web-console/frontend/app/modules/loading/loading.css
deleted file mode 100644
index 87bbc6a..0000000
--- a/modules/web-console/frontend/app/modules/loading/loading.css
+++ /dev/null
@@ -1,73 +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.
- */
-
-[ignite-loading] {
- position: relative;
-}
-
-.loading {
- position: absolute;
- bottom: 0;
- left: 0;
- right: 0;
- top: 0;
- z-index: 1001;
- opacity: 0;
- visibility: hidden;
- background-color: white;
- transition: visibility 0s 0.5s, opacity 0.5s linear;
-}
-
-.loading-active {
- opacity: 1;
- visibility: visible;
- transition: opacity 0.5s linear;
-}
-
-.loading:before {
- content: '';
- display: inline-block;
- height: 100%;
- vertical-align: middle;
-}
-
-.loading .loading-wrapper {
- display: inline-block;
- vertical-align: middle;
- position: relative;
- width: 100%;
-}
-
-.loading.loading-top .loading-wrapper {
- position: absolute;
- top: 100px;
- display: block;
-}
-
-.loading .loading-text {
- font-size: 18px;
- margin: 20px 0;
- text-align: center;
-}
-
-.loading-opacity-80 {
- opacity: 0.8;
-}
-
-.loading-max-foreground {
- z-index: 99999;
-}
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/loading/loading.directive.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/loading/loading.directive.js b/modules/web-console/frontend/app/modules/loading/loading.directive.js
index 064b4c2..8a4ca9f 100644
--- a/modules/web-console/frontend/app/modules/loading/loading.directive.js
+++ b/modules/web-console/frontend/app/modules/loading/loading.directive.js
@@ -15,12 +15,12 @@
* limitations under the License.
*/
-import templateUrl from './loading.jade';
-import './loading.css';
+import template from './loading.pug';
+import './loading.scss';
-export default ['igniteLoading', ['IgniteLoading', '$templateCache', '$compile', (Loading, $templateCache, $compile) => {
+export default ['igniteLoading', ['IgniteLoading', '$compile', (Loading, $compile) => {
const link = (scope, element) => {
- const compiledTemplate = $compile($templateCache.get(templateUrl));
+ const compiledTemplate = $compile(template);
const build = () => {
scope.position = scope.position || 'middle';
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/loading/loading.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/loading/loading.jade b/modules/web-console/frontend/app/modules/loading/loading.jade
deleted file mode 100644
index cc6cf45..0000000
--- a/modules/web-console/frontend/app/modules/loading/loading.jade
+++ /dev/null
@@ -1,23 +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.
-
-.loading.loading-opacity-80(ng-class='[class, "loading-" + position]')
- .loading-wrapper
- .spinner
- .bounce1
- .bounce2
- .bounce3
- .loading-text {{ text }}
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/loading/loading.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/loading/loading.pug b/modules/web-console/frontend/app/modules/loading/loading.pug
new file mode 100644
index 0000000..cc6cf45
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/loading/loading.pug
@@ -0,0 +1,23 @@
+//-
+ 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.
+
+.loading.loading-opacity-80(ng-class='[class, "loading-" + position]')
+ .loading-wrapper
+ .spinner
+ .bounce1
+ .bounce2
+ .bounce3
+ .loading-text {{ text }}
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/loading/loading.scss
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/loading/loading.scss b/modules/web-console/frontend/app/modules/loading/loading.scss
new file mode 100644
index 0000000..87bbc6a
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/loading/loading.scss
@@ -0,0 +1,73 @@
+/*
+ * 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.
+ */
+
+[ignite-loading] {
+ position: relative;
+}
+
+.loading {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ top: 0;
+ z-index: 1001;
+ opacity: 0;
+ visibility: hidden;
+ background-color: white;
+ transition: visibility 0s 0.5s, opacity 0.5s linear;
+}
+
+.loading-active {
+ opacity: 1;
+ visibility: visible;
+ transition: opacity 0.5s linear;
+}
+
+.loading:before {
+ content: '';
+ display: inline-block;
+ height: 100%;
+ vertical-align: middle;
+}
+
+.loading .loading-wrapper {
+ display: inline-block;
+ vertical-align: middle;
+ position: relative;
+ width: 100%;
+}
+
+.loading.loading-top .loading-wrapper {
+ position: absolute;
+ top: 100px;
+ display: block;
+}
+
+.loading .loading-text {
+ font-size: 18px;
+ margin: 20px 0;
+ text-align: center;
+}
+
+.loading-opacity-80 {
+ opacity: 0.8;
+}
+
+.loading-max-foreground {
+ z-index: 99999;
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/nodes/Nodes.service.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/nodes/Nodes.service.js b/modules/web-console/frontend/app/modules/nodes/Nodes.service.js
index b320ae4..4ca1d45 100644
--- a/modules/web-console/frontend/app/modules/nodes/Nodes.service.js
+++ b/modules/web-console/frontend/app/modules/nodes/Nodes.service.js
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-import nodesDialogTemplate from './nodes-dialog.jade';
+import nodesDialogTplUrl from './nodes-dialog.tpl.pug';
const DEFAULT_OPTIONS = {
grid: {
@@ -41,7 +41,7 @@ class Nodes {
options.target = cacheName;
const modalInstance = $modal({
- templateUrl: nodesDialogTemplate,
+ templateUrl: nodesDialogTplUrl,
show: true,
resolve: {
nodes: () => nodes || [],
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/nodes/nodes-dialog.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/nodes/nodes-dialog.jade b/modules/web-console/frontend/app/modules/nodes/nodes-dialog.jade
deleted file mode 100644
index d9ea68c..0000000
--- a/modules/web-console/frontend/app/modules/nodes/nodes-dialog.jade
+++ /dev/null
@@ -1,35 +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.
-
-.modal.ignite-nodes-dialog(tabindex='-1' role='dialog')
- .modal-dialog
- .modal-content
- .modal-header
- button.close(ng-click='$cancel()' aria-hidden='true') ×
- h4.modal-title Select Node
- .modal-body.modal-body-with-scroll
- p Choose node to execute query for cache: #[strong {{ $ctrl.options.target }}]
-
- .panel.panel-default.nodes-grid
- .panel-heading
- label Cache Nodes: {{ $ctrl.nodes.length }}
-
- .panel-body.panel-body_collapse
- .grid(ui-grid='$ctrl.gridOptions' ui-grid-resize-columns ui-grid-selection ui-grid-pinning)
-
- .modal-footer
- button.btn.btn-primary(id='confirm-btn-confirm' ng-click='$ok($ctrl.selected)' ng-disabled='$ctrl.selected.length === 0') Select node
- button.btn.btn-default(id='confirm-btn-close' ng-click='$cancel()') Cancel
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/nodes/nodes-dialog.tpl.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/nodes/nodes-dialog.tpl.pug b/modules/web-console/frontend/app/modules/nodes/nodes-dialog.tpl.pug
new file mode 100644
index 0000000..d9ea68c
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/nodes/nodes-dialog.tpl.pug
@@ -0,0 +1,35 @@
+//-
+ 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.
+
+.modal.ignite-nodes-dialog(tabindex='-1' role='dialog')
+ .modal-dialog
+ .modal-content
+ .modal-header
+ button.close(ng-click='$cancel()' aria-hidden='true') ×
+ h4.modal-title Select Node
+ .modal-body.modal-body-with-scroll
+ p Choose node to execute query for cache: #[strong {{ $ctrl.options.target }}]
+
+ .panel.panel-default.nodes-grid
+ .panel-heading
+ label Cache Nodes: {{ $ctrl.nodes.length }}
+
+ .panel-body.panel-body_collapse
+ .grid(ui-grid='$ctrl.gridOptions' ui-grid-resize-columns ui-grid-selection ui-grid-pinning)
+
+ .modal-footer
+ button.btn.btn-primary(id='confirm-btn-confirm' ng-click='$ok($ctrl.selected)' ng-disabled='$ctrl.selected.length === 0') Select node
+ button.btn.btn-default(id='confirm-btn-close' ng-click='$cancel()') Cancel
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/sql/notebook.controller.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/sql/notebook.controller.js b/modules/web-console/frontend/app/modules/sql/notebook.controller.js
index f10a4d0..252dee6 100644
--- a/modules/web-console/frontend/app/modules/sql/notebook.controller.js
+++ b/modules/web-console/frontend/app/modules/sql/notebook.controller.js
@@ -15,11 +15,13 @@
* limitations under the License.
*/
+import templateUrl from 'views/sql/notebook-new.tpl.pug';
+
// Controller that load notebooks in navigation bar .
export default ['$scope', '$modal', '$state', 'IgniteMessages', 'IgniteNotebook',
(scope, $modal, $state, Messages, Notebook) => {
// Pre-fetch modal dialogs.
- const nameModal = $modal({scope, templateUrl: '/sql/notebook-new.html', show: false});
+ const nameModal = $modal({scope, templateUrl, show: false});
scope.create = (name) => {
return Notebook.create(name)
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/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 4e972ef..e2ead13 100644
--- a/modules/web-console/frontend/app/modules/sql/sql.controller.js
+++ b/modules/web-console/frontend/app/modules/sql/sql.controller.js
@@ -15,6 +15,12 @@
* limitations under the License.
*/
+import paragraphRateTemplateUrl from 'views/sql/paragraph-rate.tpl.pug';
+import cacheMetadataTemplateUrl from 'views/sql/cache-metadata.tpl.pug';
+import chartSettingsTemplateUrl from 'views/sql/chart-settings.tpl.pug';
+import showQueryTemplateUrl from 'views/templates/message.tpl.pug';
+
+
// Time line X axis descriptor.
const TIME_LINE = {value: -1, type: 'java.sql.Date', label: 'TIME_LINE'};
@@ -188,6 +194,13 @@ class Paragraph {
// Controller for SQL notebook screen.
export default ['$rootScope', '$scope', '$http', '$q', '$timeout', '$interval', '$animate', '$location', '$anchorScroll', '$state', '$filter', '$modal', '$popover', 'IgniteLoading', 'IgniteLegacyUtils', 'IgniteMessages', 'IgniteConfirm', 'IgniteAgentMonitor', 'IgniteChartColors', 'IgniteNotebook', 'IgniteNodes', 'uiGridExporterConstants', 'IgniteVersion', 'IgniteActivitiesData',
function($root, $scope, $http, $q, $timeout, $interval, $animate, $location, $anchorScroll, $state, $filter, $modal, $popover, Loading, LegacyUtils, Messages, Confirm, agentMonitor, IgniteChartColors, Notebook, Nodes, uiGridExporterConstants, Version, ActivitiesData) {
+ const $ctrl = this;
+
+ // Define template urls.
+ $ctrl.paragraphRateTemplateUrl = paragraphRateTemplateUrl;
+ $ctrl.cacheMetadataTemplateUrl = cacheMetadataTemplateUrl;
+ $ctrl.chartSettingsTemplateUrl = chartSettingsTemplateUrl;
+
let stopTopology = null;
const _tryStopRefresh = function(paragraph) {
@@ -1737,7 +1750,7 @@ export default ['$rootScope', '$scope', '$http', '$q', '$timeout', '$interval',
}
// Show a basic modal from a controller
- $modal({scope, template: '/templates/message.html', placement: 'center', show: true});
+ $modal({scope, templateUrl: showQueryTemplateUrl, placement: 'center', show: true});
}
};
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/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 5875961..670e4f4 100644
--- a/modules/web-console/frontend/app/modules/sql/sql.module.js
+++ b/modules/web-console/frontend/app/modules/sql/sql.module.js
@@ -20,7 +20,9 @@ import angular from 'angular';
import NotebookData from './Notebook.data';
import Notebook from './Notebook.service';
import notebook from './notebook.controller';
-import sql from './sql.controller';
+import controller from './sql.controller';
+
+import sqlTplUrl from 'app/../views/sql/sql.tpl.pug';
angular.module('ignite-console.sql', [
'ui.router'
@@ -32,11 +34,13 @@ angular.module('ignite-console.sql', [
.state('base.sql', {
url: '/queries',
abstract: true,
- template: '<ui-view></ui-view>'
+ template: '<ui-view></ui-view>',
+ controller,
+ controllerAs: '$ctrl'
})
.state('base.sql.notebook', {
url: '/notebook/{noteId}',
- templateUrl: '/sql/sql.html',
+ templateUrl: sqlTplUrl,
onEnter: AclRoute.checkAccess('query'),
metaTags: {
title: 'Query notebook'
@@ -44,7 +48,7 @@ angular.module('ignite-console.sql', [
})
.state('base.sql.demo', {
url: '/demo',
- templateUrl: '/sql/sql.html',
+ templateUrl: sqlTplUrl,
onEnter: AclRoute.checkAccess('query'),
metaTags: {
title: 'SQL demo'
@@ -54,5 +58,4 @@ angular.module('ignite-console.sql', [
)
.service('IgniteNotebookData', NotebookData)
.service('IgniteNotebook', Notebook)
- .controller('notebookController', notebook)
- .controller('sqlController', sql);
+ .controller('notebookController', notebook);
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/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 35c6fbb..93a38dd 100644
--- a/modules/web-console/frontend/app/modules/states/admin.state.js
+++ b/modules/web-console/frontend/app/modules/states/admin.state.js
@@ -17,6 +17,8 @@
import angular from 'angular';
+import templateUrl from 'views/settings/admin.tpl.pug';
+
angular
.module('ignite-console.states.admin', [
'ui.router'
@@ -26,7 +28,7 @@ angular
$stateProvider
.state('settings.admin', {
url: '/admin',
- templateUrl: '/settings/admin.html',
+ templateUrl,
onEnter: AclRoute.checkAccess('admin_page'),
metaTags: {
title: 'Admin panel'
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/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 61dca13..a609d3a 100644
--- a/modules/web-console/frontend/app/modules/states/configuration.state.js
+++ b/modules/web-console/frontend/app/modules/states/configuration.state.js
@@ -26,6 +26,14 @@ import ConfigurationResource from './configuration/Configuration.resource';
import summaryTabs from './configuration/summary/summary-tabs.directive';
import IgniteSummaryZipper from './configuration/summary/summary-zipper.service';
+import sidebarTpl from 'views/configuration/sidebar.tpl.pug';
+import clustersTpl from 'views/configuration/clusters.tpl.pug';
+import cachesTpl from 'views/configuration/caches.tpl.pug';
+import domainsTpl from 'views/configuration/domains.tpl.pug';
+import igfsTpl from 'views/configuration/igfs.tpl.pug';
+import summaryTpl from 'views/configuration/summary.tpl.pug';
+import summaryTabsTemplateUrl from 'views/configuration/summary-tabs.pug';
+
angular.module('ignite-console.states.configuration', ['ui.router'])
.directive(...previewPanel)
// Summary screen
@@ -33,18 +41,21 @@ angular.module('ignite-console.states.configuration', ['ui.router'])
// Services.
.service('IgniteSummaryZipper', IgniteSummaryZipper)
.service('IgniteConfigurationResource', ConfigurationResource)
+ .run(['$templateCache', ($templateCache) => {
+ $templateCache.put('summary-tabs.html', summaryTabsTemplateUrl);
+ }])
// Configure state provider.
.config(['$stateProvider', 'AclRouteProvider', ($stateProvider, AclRoute) => {
// Setup the states.
$stateProvider
.state('base.configuration', {
url: '/configuration',
- templateUrl: '/configuration/sidebar.html',
+ templateUrl: sidebarTpl,
abstract: true
})
.state('base.configuration.clusters', {
url: '/clusters',
- templateUrl: '/configuration/clusters.html',
+ templateUrl: clustersTpl,
onEnter: AclRoute.checkAccess('configuration'),
params: {
linkId: null
@@ -55,7 +66,7 @@ angular.module('ignite-console.states.configuration', ['ui.router'])
})
.state('base.configuration.caches', {
url: '/caches',
- templateUrl: '/configuration/caches.html',
+ templateUrl: cachesTpl,
onEnter: AclRoute.checkAccess('configuration'),
params: {
linkId: null
@@ -66,7 +77,7 @@ angular.module('ignite-console.states.configuration', ['ui.router'])
})
.state('base.configuration.domains', {
url: '/domains',
- templateUrl: '/configuration/domains.html',
+ templateUrl: domainsTpl,
onEnter: AclRoute.checkAccess('configuration'),
params: {
linkId: null
@@ -77,7 +88,7 @@ angular.module('ignite-console.states.configuration', ['ui.router'])
})
.state('base.configuration.igfs', {
url: '/igfs',
- templateUrl: '/configuration/igfs.html',
+ templateUrl: igfsTpl,
onEnter: AclRoute.checkAccess('configuration'),
params: {
linkId: null
@@ -88,7 +99,7 @@ angular.module('ignite-console.states.configuration', ['ui.router'])
})
.state('base.configuration.summary', {
url: '/summary',
- templateUrl: '/configuration/summary.html',
+ templateUrl: summaryTpl,
onEnter: AclRoute.checkAccess('configuration'),
controller: ConfigurationSummaryCtrl,
controllerAs: 'ctrl',
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/caches/affinity.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/affinity.jade b/modules/web-console/frontend/app/modules/states/configuration/caches/affinity.jade
deleted file mode 100644
index 3c4746b..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/caches/affinity.jade
+++ /dev/null
@@ -1,82 +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.jade
-
--var form = 'affinity'
--var model = 'backupItem'
--var affModel = model + '.affinity'
--var affMapModel = model + '.affinityMapper'
--var rendezvousAff = affModel + '.kind === "Rendezvous"'
--var fairAff = affModel + '.kind === "Fair"'
--var customAff = affModel + '.kind === "Custom"'
--var customAffMapper = affMapModel + '.kind === "Custom"'
--var rendPartitionsRequired = rendezvousAff + ' && ' + affModel + '.Rendezvous.affinityBackupFilter'
--var fairPartitionsRequired = fairAff + ' && ' + affModel + '.Fair.affinityBackupFilter'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle='' ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Affinity Collocation
- ignite-form-field-tooltip.tipLabel
- | Collocate data with data to improve performance and scalability of your application#[br]
- | #[a(href="http://apacheignite.gridgain.org/docs/affinity-collocation" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +dropdown('Function:', affModel + '.kind', '"AffinityKind"', 'true', 'Default',
- '[\
- {value: "Rendezvous", label: "Rendezvous"},\
- {value: "Fair", label: "Fair"},\
- {value: "Custom", label: "Custom"},\
- {value: undefined, label: "Default"}\
- ]',
- 'Key topology resolver to provide mapping from keys to nodes\
- <ul>\
- <li>Rendezvous - Based on Highest Random Weight algorithm<br/></li>\
- <li>Fair - Tries to ensure that all nodes get equal number of partitions with minimum amount of reassignments between existing nodes<br/></li>\
- <li>Custom - Custom implementation of key affinity fynction<br/></li>\
- <li>Default - By default rendezvous affinity function with 1024 partitions is used<br/></li>\
- </ul>')
- .panel-details(ng-if=rendezvousAff)
- .details-row
- +number-required('Partitions', affModel + '.Rendezvous.partitions', '"RendPartitions"', 'true', rendPartitionsRequired, '1024', '1', 'Number of partitions')
- .details-row
- +java-class('Backup filter', affModel + '.Rendezvous.affinityBackupFilter', '"RendAffinityBackupFilter"', 'true', 'false',
- 'Backups will be selected from all nodes that pass this filter')
- .details-row
- +checkbox('Exclude neighbors', affModel + '.Rendezvous.excludeNeighbors', '"RendExcludeNeighbors"',
- 'Exclude same - host - neighbors from being backups of each other and specified number of backups')
- .panel-details(ng-if=fairAff)
- .details-row
- +number-required('Partitions', affModel + '.Fair.partitions', '"FairPartitions"', 'true', fairPartitionsRequired, '256', '1', 'Number of partitions')
- .details-row
- +java-class('Backup filter', affModel + '.Fair.affinityBackupFilter', '"FairAffinityBackupFilter"', 'true', 'false',
- 'Backups will be selected from all nodes that pass this filter')
- .details-row
- +checkbox('Exclude neighbors', affModel + '.Fair.excludeNeighbors', '"FairExcludeNeighbors"',
- 'Exclude same - host - neighbors from being backups of each other and specified number of backups')
- .panel-details(ng-if=customAff)
- .details-row
- +java-class('Class name:', affModel + '.Custom.className', '"AffCustomClassName"', 'true', customAff,
- 'Custom key affinity function implementation class name')
- .settings-row
- +java-class('Mapper:', model + '.affinityMapper', '"AffMapCustomClassName"', 'true', 'false',
- 'Provide custom affinity key for any given key')
- .col-sm-6
- +preview-xml-java(model, 'cacheAffinity')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/caches/affinity.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/affinity.pug b/modules/web-console/frontend/app/modules/states/configuration/caches/affinity.pug
new file mode 100644
index 0000000..70b90bd
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/caches/affinity.pug
@@ -0,0 +1,82 @@
+//-
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+include /app/helpers/jade/mixins
+
+-var form = 'affinity'
+-var model = 'backupItem'
+-var affModel = model + '.affinity'
+-var affMapModel = model + '.affinityMapper'
+-var rendezvousAff = affModel + '.kind === "Rendezvous"'
+-var fairAff = affModel + '.kind === "Fair"'
+-var customAff = affModel + '.kind === "Custom"'
+-var customAffMapper = affMapModel + '.kind === "Custom"'
+-var rendPartitionsRequired = rendezvousAff + ' && ' + affModel + '.Rendezvous.affinityBackupFilter'
+-var fairPartitionsRequired = fairAff + ' && ' + affModel + '.Fair.affinityBackupFilter'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle='' ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Affinity Collocation
+ ignite-form-field-tooltip.tipLabel
+ | Collocate data with data to improve performance and scalability of your application#[br]
+ | #[a(href="http://apacheignite.gridgain.org/docs/affinity-collocation" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +dropdown('Function:', `${affModel}.kind`, '"AffinityKind"', 'true', 'Default',
+ '[\
+ {value: "Rendezvous", label: "Rendezvous"},\
+ {value: "Fair", label: "Fair"},\
+ {value: "Custom", label: "Custom"},\
+ {value: undefined, label: "Default"}\
+ ]',
+ 'Key topology resolver to provide mapping from keys to nodes\
+ <ul>\
+ <li>Rendezvous - Based on Highest Random Weight algorithm<br/></li>\
+ <li>Fair - Tries to ensure that all nodes get equal number of partitions with minimum amount of reassignments between existing nodes<br/></li>\
+ <li>Custom - Custom implementation of key affinity fynction<br/></li>\
+ <li>Default - By default rendezvous affinity function with 1024 partitions is used<br/></li>\
+ </ul>')
+ .panel-details(ng-if=rendezvousAff)
+ .details-row
+ +number-required('Partitions', `${affModel}.Rendezvous.partitions`, '"RendPartitions"', 'true', rendPartitionsRequired, '1024', '1', 'Number of partitions')
+ .details-row
+ +java-class('Backup filter', `${affModel}.Rendezvous.affinityBackupFilter`, '"RendAffinityBackupFilter"', 'true', 'false',
+ 'Backups will be selected from all nodes that pass this filter')
+ .details-row
+ +checkbox('Exclude neighbors', `${affModel}.Rendezvous.excludeNeighbors`, '"RendExcludeNeighbors"',
+ 'Exclude same - host - neighbors from being backups of each other and specified number of backups')
+ .panel-details(ng-if=fairAff)
+ .details-row
+ +number-required('Partitions', `${affModel}.Fair.partitions`, '"FairPartitions"', 'true', fairPartitionsRequired, '256', '1', 'Number of partitions')
+ .details-row
+ +java-class('Backup filter', `${affModel}.Fair.affinityBackupFilter`, '"FairAffinityBackupFilter"', 'true', 'false',
+ 'Backups will be selected from all nodes that pass this filter')
+ .details-row
+ +checkbox('Exclude neighbors', `${affModel}.Fair.excludeNeighbors`, '"FairExcludeNeighbors"',
+ 'Exclude same - host - neighbors from being backups of each other and specified number of backups')
+ .panel-details(ng-if=customAff)
+ .details-row
+ +java-class('Class name:', `${affModel}.Custom.className`, '"AffCustomClassName"', 'true', customAff,
+ 'Custom key affinity function implementation class name')
+ .settings-row
+ +java-class('Mapper:', model + '.affinityMapper', '"AffMapCustomClassName"', 'true', 'false',
+ 'Provide custom affinity key for any given key')
+ .col-sm-6
+ +preview-xml-java(model, 'cacheAffinity')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/caches/client-near-cache.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/client-near-cache.jade b/modules/web-console/frontend/app/modules/states/configuration/caches/client-near-cache.jade
deleted file mode 100644
index e3d1a81..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/caches/client-near-cache.jade
+++ /dev/null
@@ -1,50 +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.jade
-
--var form = 'clientNearCache'
--var model = 'backupItem.clientNearConfiguration'
-
-.panel.panel-default(ng-form=form novalidate ng-show='backupItem.cacheMode === "PARTITIONED"')
- .panel-heading(bs-collapse-toggle='' ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Client near cache
- ignite-form-field-tooltip.tipLabel
- | Near cache settings for client nodes#[br]
- | Near cache is a small local cache that stores most recently or most frequently accessed data#[br]
- | Should be used in case when it is impossible to send computations to remote nodes
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- -var enabled = model + '.clientNearCacheEnabled'
-
- .settings-row
- +checkbox('Enabled', enabled, '"clientNacheEnabled"', 'Flag indicating whether to configure near cache')
- .settings-row
- +number('Start size:', model + '.nearStartSize', '"clientNearStartSize"', enabled, '375000', '0',
- 'Initial cache size for near cache which will be used to pre-create internal hash table after start')
- .settings-row
- +evictionPolicy(model + '.nearEvictionPolicy', '"clientNearCacheEvictionPolicy"', enabled, 'false',
- 'Near cache eviction policy\
- <ul>\
- <li>Least Recently Used (LRU) - Eviction policy based on LRU algorithm and supports batch eviction</li>\
- <li>First In First Out (FIFO) - Eviction policy based on FIFO algorithm and supports batch eviction</li>\
- <li>SORTED - Eviction policy which will select the minimum cache entry for eviction</li>\
- </ul>')
- .col-sm-6
- +preview-xml-java('backupItem', 'cacheClientNearCache')
[03/15] ignite git commit: IGNITE-4659 Migration to Webpack 2.
Upgrade template engine from jade to pug.
Posted by an...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/configuration/domains-import.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/configuration/domains-import.jade b/modules/web-console/frontend/views/configuration/domains-import.jade
deleted file mode 100644
index bbcb391..0000000
--- a/modules/web-console/frontend/views/configuration/domains-import.jade
+++ /dev/null
@@ -1,170 +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.jade
-
-mixin chk(mdl, change, tip)
- input(type='checkbox' ng-model=mdl ng-change=change bs-tooltip='' data-title=tip data-trigger='hover' data-placement='top')
-
-mixin td-ellipses-lbl(w, lbl)
- td.td-ellipsis(width='#{w}' style='min-width: #{w}; max-width: #{w}')
- label #{lbl}
-
-.modal.modal-domain-import.center(role='dialog')
- .modal-dialog.domains-import-dialog
- .modal-content(ignite-loading='importDomainFromDb' ignite-loading-text='{{importDomain.loadingOptions.text}}')
- #errors-container.modal-header.header
- button.close(ng-click='$hide()' aria-hidden='true') ×
- h4.modal-title()
- i.fa.fa-database
- span(ng-if='!importDomain.demo') Import domain models from database
- span(ng-if='importDomain.demo') Import domain models from demo database
- .modal-body
- .import-domain-model-wizard-page(ng-if='importDomain.action == "drivers" && !importDomain.jdbcDriversNotFound')
- .import-domain-model-wizard-page(ng-if='importDomain.action == "drivers" && importDomain.jdbcDriversNotFound')
- | Domain model could not be imported
- ul
- li Agent failed to find JDBC drivers
- li Copy required JDBC drivers into agent 'jdbc-drivers' folder and try again
- li Refer to agent README.txt for more information
- .import-domain-model-wizard-page(ng-if='importDomain.action == "connect" && importDomain.demo')
- div(ng-if='demoConnection.db == "H2"')
- label Demo description:
- ul
- li In-memory H2 database server will be started inside agent
- li Database will be populated with sample tables
- li You could test domain model generation with this demo database
- li Click "Next" to continue
- div(ng-if='demoConnection.db != "H2"')
- label Demo could not be started
- ul
- li Agent failed to resolve H2 database jar
- li Copy h2-x.x.x.jar into agent 'jdbc-drivers' folder and try again
- li Refer to agent README.txt for more information
- .import-domain-model-wizard-page(ng-if='importDomain.action == "connect" && !importDomain.demo')
- -var form = 'connectForm'
-
- form.form-horizontal(name=form novalidate)
- .settings-row.settings-row_small-label
- +ignite-form-field-dropdown('Driver JAR:', 'ui.selectedJdbcDriverJar', '"jdbcDriverJar"', false, true, false,
- 'Choose JDBC driver', '', 'jdbcDriverJars',
- 'Select appropriate JAR with JDBC driver<br> To add another driver you need to place it into "/jdbc-drivers" folder of Ignite Web Agent<br> Refer to Ignite Web Agent README.txt for for more information'
- )(
- data-container='.modal-domain-import'
- data-ignite-form-field-input-autofocus='true'
- )
- .settings-row.settings-row_small-label
- +java-class('JDBC driver:', 'selectedPreset.jdbcDriverClass', '"jdbcDriverClass"', true, true, 'Fully qualified class name of JDBC driver that will be used to connect to database')
- .settings-row.settings-row_small-label
- +text('JDBC URL:', 'selectedPreset.jdbcUrl', '"jdbcUrl"', true, 'JDBC URL', 'JDBC URL for connecting to database<br>Refer to your database documentation for details')
- .settings-row.settings-row_small-label
- +text('User:', 'selectedPreset.user', '"jdbdUser"', false, '', 'User name for connecting to database')
- .settings-row.settings-row_small-label
- +password('Password:', 'selectedPreset.password', '"jdbcPassword"', false, '', 'Password for connecting to database<br>Note, password would not be saved in preferences for security reasons')(ignite-on-enter='importDomainNext()')
- .settings-row
- +checkbox('Tables only', 'selectedPreset.tablesOnly', '"tablesOnly"', 'If selected, then only tables metadata will be parsed<br>Otherwise table and view metadata will be parsed')
- .import-domain-model-wizard-page(ng-show='importDomain.action == "schemas"')
- table.table.metadata(st-table='importDomain.displayedSchemas' st-safe-src='importDomain.schemas')
- thead
- tr
- th.header(colspan='2')
- .col-sm-4.pull-right(style='margin-bottom: 5px')
- input.form-control(type='text' st-search='name' placeholder='Filter schemas...' ng-model='importDomain.displayedSchemasFilter' )
- tr
- th(width='30px')
- +chk('importDomain.allSchemasSelected', 'selectAllSchemas()', 'Select all schemas')
- th
- label Schema
- tbody
- tr
- td(colspan='2')
- .scrollable-y(style='height: 213px')
- table.table-modal-striped(id='importSchemasData')
- tbody
- tr(ng-repeat='schema in importDomain.displayedSchemas')
- td(width='30px')
- input(type='checkbox' ng-model='schema.use' ng-change='selectSchema()')
- td
- label {{schema.name}}
- .import-domain-model-wizard-page(ng-show='importDomain.action == "tables"')
- table.table.metadata(st-table='importDomain.displayedTables' st-safe-src='importDomain.tables')
- thead
- tr
- th.header(colspan='6')
- .col-sm-4.pull-right(style='margin-bottom: 8px')
- input.form-control(type='text' st-search='label' placeholder='Filter tables...' ng-model='importDomain.displayedTablesFilter' ng-change='selectTable()')
- tr
- th(width='30px')
- +chk('importDomain.allTablesSelected', 'selectAllTables()', 'Select all tables')
- th(width='130px')
- label Schema
- th(width='160px')
- label Table name
- th(colspan=2 width='288px')
- label Cache
- th
- tbody
- tr
- td(colspan='6')
- .scrollable-y(style='height: 143px')
- table.table-modal-striped(id='importTableData')
- tbody
- tr(ng-repeat='table in importDomain.displayedTables track by $index')
- td(width='30px' style='min-width: 30px; max-width: 30px')
- input(type='checkbox' ng-model='table.use' ng-change='selectTable()')
- +td-ellipses-lbl('130px', '{{table.schema}}')
- +td-ellipses-lbl('160px', '{{table.tbl}}')
- td(colspan='2' width='288px' style='min-width: 160px; max-width: 160px')
- div.td-ellipsis
- a(ng-if='!table.edit' ng-click='startEditDbTableCache(table)') {{tableActionView(table)}}
- div(style='display: flex' ng-if='table.edit')
- button.select-toggle.form-control(style='width: 35%; margin-right: 5px' bs-select ng-model='table.action' data-container='.modal-domain-import' bs-options='item.value as item.shortLabel for item in importActions')
- button.select-toggle.form-control(style='width: 65%; margin-right: 0' bs-select ng-model='table.cacheOrTemplate' data-container='.modal-domain-import' bs-options='item.value as item.label for item in table.cachesOrTemplates')
- td
- .settings-row
- label Defaults to be applied for filtered tables
- i.tipLabel.icon-help(bs-tooltip='' data-title='Select and apply options for caches generation')
- .settings-row
- .col-sm-11
- .col-sm-6(style='padding-right: 5px')
- button.select-toggle.form-control(bs-select ng-model='importCommon.action' data-container='.modal-domain-import' bs-options='item.value as item.label for item in importActions')
- .col-sm-6(style='padding-left: 5px; padding-right: 5px')
- button.select-toggle.form-control(bs-select ng-model='importCommon.cacheOrTemplate' data-container='.modal-domain-import' bs-options='item.value as item.label for item in importCommon.cachesOrTemplates')
- .col-sm-1(style='padding-left: 5px')
- button.btn.btn-primary(ng-click='applyDefaults()') Apply
- .import-domain-model-wizard-page(ng-show='importDomain.action == "options"')
- -var form = 'optionsForm'
-
- form.form-horizontal(name=form novalidate)
- .settings-row
- +checkbox('Use Java built-in types for keys', 'ui.builtinKeys', '"domainBuiltinKeys"', 'Use Java built-in types like "Integer", "Long", "String" instead of POJO generation in case when table primary key contains only one field')
- .settings-row
- +checkbox('Use primitive types for NOT NULL table columns', 'ui.usePrimitives', '"domainUsePrimitives"', 'Use primitive types like "int", "long", "double" for POJOs fields generation in case of NOT NULL columns')
- .settings-row
- +checkbox('Generate aliases for query fields', 'ui.generateAliases', '"domainGenerateAliases"', 'Generate aliases for query fields with database field names when database field name differ from Java field name')
- .settings-row
- +checkbox('Generate POJO classes', 'ui.generatePojo', '"domainGeneratePojo"', 'If selected then POJO classes will be generated from database tables')
- .settings-row.settings-row_small-label(ng-show='ui.generatePojo')
- +java-package('Package:', 'ui.packageName', '"domainPackageName"', true, true, 'Package that will be used for POJOs generation')(data-container='.modal-domain-import')
- .settings-row.settings-row_small-label
- +ignite-form-field-dropdown('Clusters:', 'ui.generatedCachesClusters', '"generatedCachesClusters"', false, false, true,
- 'Choose clusters for generated caches', '', 'clusters',
- 'Choose clusters that will be associated with generated caches'
- )(data-container='.modal-domain-import')
- .modal-footer
- label(ng-hide='importDomain.action == "drivers" || (importDomain.action == "connect" && importDomain.demo)').labelField {{importDomain.info}}
- a.btn.btn-primary(ng-hide='importDomain.action == "drivers" || importDomain.action == "connect"' ng-click='importDomainPrev()' bs-tooltip='' data-title='{{prevTooltipText()}}' data-placement='bottom') Prev
- a.btn.btn-primary(ng-click='importDomainNext(optionsForm)' ng-disabled='!importDomainNextAvailable()' bs-tooltip='' data-title='{{nextTooltipText()}}' data-placement='bottom') {{importDomain.button}}
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/configuration/domains-import.tpl.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/configuration/domains-import.tpl.pug b/modules/web-console/frontend/views/configuration/domains-import.tpl.pug
new file mode 100644
index 0000000..baaa2d3
--- /dev/null
+++ b/modules/web-console/frontend/views/configuration/domains-import.tpl.pug
@@ -0,0 +1,170 @@
+//-
+ 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
+
+mixin chk(mdl, change, tip)
+ input(type='checkbox' ng-model=mdl ng-change=change bs-tooltip='' data-title=tip data-trigger='hover' data-placement='top')
+
+mixin td-ellipses-lbl(w, lbl)
+ td.td-ellipsis(width=`${w}` style=`min-width: ${w}; max-width: ${w}`)
+ label #{lbl}
+
+.modal.modal-domain-import.center(role='dialog')
+ .modal-dialog.domains-import-dialog
+ .modal-content(ignite-loading='importDomainFromDb' ignite-loading-text='{{importDomain.loadingOptions.text}}')
+ #errors-container.modal-header.header
+ button.close(ng-click='$hide()' aria-hidden='true') ×
+ h4.modal-title()
+ i.fa.fa-database
+ span(ng-if='!importDomain.demo') Import domain models from database
+ span(ng-if='importDomain.demo') Import domain models from demo database
+ .modal-body
+ .import-domain-model-wizard-page(ng-if='importDomain.action == "drivers" && !importDomain.jdbcDriversNotFound')
+ .import-domain-model-wizard-page(ng-if='importDomain.action == "drivers" && importDomain.jdbcDriversNotFound')
+ | Domain model could not be imported
+ ul
+ li Agent failed to find JDBC drivers
+ li Copy required JDBC drivers into agent 'jdbc-drivers' folder and try again
+ li Refer to agent README.txt for more information
+ .import-domain-model-wizard-page(ng-if='importDomain.action == "connect" && importDomain.demo')
+ div(ng-if='demoConnection.db == "H2"')
+ label Demo description:
+ ul
+ li In-memory H2 database server will be started inside agent
+ li Database will be populated with sample tables
+ li You could test domain model generation with this demo database
+ li Click "Next" to continue
+ div(ng-if='demoConnection.db != "H2"')
+ label Demo could not be started
+ ul
+ li Agent failed to resolve H2 database jar
+ li Copy h2-x.x.x.jar into agent 'jdbc-drivers' folder and try again
+ li Refer to agent README.txt for more information
+ .import-domain-model-wizard-page(ng-if='importDomain.action == "connect" && !importDomain.demo')
+ -var form = 'connectForm'
+
+ form.form-horizontal(name=form novalidate)
+ .settings-row.settings-row_small-label
+ +ignite-form-field-dropdown('Driver JAR:', 'ui.selectedJdbcDriverJar', '"jdbcDriverJar"', false, true, false,
+ 'Choose JDBC driver', '', 'jdbcDriverJars',
+ 'Select appropriate JAR with JDBC driver<br> To add another driver you need to place it into "/jdbc-drivers" folder of Ignite Web Agent<br> Refer to Ignite Web Agent README.txt for for more information'
+ )(
+ data-container='.modal-domain-import'
+ data-ignite-form-field-input-autofocus='true'
+ )
+ .settings-row.settings-row_small-label
+ +java-class('JDBC driver:', 'selectedPreset.jdbcDriverClass', '"jdbcDriverClass"', true, true, 'Fully qualified class name of JDBC driver that will be used to connect to database')
+ .settings-row.settings-row_small-label
+ +text('JDBC URL:', 'selectedPreset.jdbcUrl', '"jdbcUrl"', true, 'JDBC URL', 'JDBC URL for connecting to database<br>Refer to your database documentation for details')
+ .settings-row.settings-row_small-label
+ +text('User:', 'selectedPreset.user', '"jdbdUser"', false, '', 'User name for connecting to database')
+ .settings-row.settings-row_small-label
+ +password('Password:', 'selectedPreset.password', '"jdbcPassword"', false, '', 'Password for connecting to database<br>Note, password would not be saved in preferences for security reasons')(ignite-on-enter='importDomainNext()')
+ .settings-row
+ +checkbox('Tables only', 'selectedPreset.tablesOnly', '"tablesOnly"', 'If selected, then only tables metadata will be parsed<br>Otherwise table and view metadata will be parsed')
+ .import-domain-model-wizard-page(ng-show='importDomain.action == "schemas"')
+ table.table.metadata(st-table='importDomain.displayedSchemas' st-safe-src='importDomain.schemas')
+ thead
+ tr
+ th.header(colspan='2')
+ .col-sm-4.pull-right(style='margin-bottom: 5px')
+ input.form-control(type='text' st-search='name' placeholder='Filter schemas...' ng-model='importDomain.displayedSchemasFilter' )
+ tr
+ th(width='30px')
+ +chk('importDomain.allSchemasSelected', 'selectAllSchemas()', 'Select all schemas')
+ th
+ label Schema
+ tbody
+ tr
+ td(colspan='2')
+ .scrollable-y(style='height: 213px')
+ table.table-modal-striped(id='importSchemasData')
+ tbody
+ tr(ng-repeat='schema in importDomain.displayedSchemas')
+ td(width='30px')
+ input(type='checkbox' ng-model='schema.use' ng-change='selectSchema()')
+ td
+ label {{schema.name}}
+ .import-domain-model-wizard-page(ng-show='importDomain.action == "tables"')
+ table.table.metadata(st-table='importDomain.displayedTables' st-safe-src='importDomain.tables')
+ thead
+ tr
+ th.header(colspan='6')
+ .col-sm-4.pull-right(style='margin-bottom: 8px')
+ input.form-control(type='text' st-search='label' placeholder='Filter tables...' ng-model='importDomain.displayedTablesFilter' ng-change='selectTable()')
+ tr
+ th(width='30px')
+ +chk('importDomain.allTablesSelected', 'selectAllTables()', 'Select all tables')
+ th(width='130px')
+ label Schema
+ th(width='160px')
+ label Table name
+ th(colspan=2 width='288px')
+ label Cache
+ th
+ tbody
+ tr
+ td(colspan='6')
+ .scrollable-y(style='height: 143px')
+ table.table-modal-striped(id='importTableData')
+ tbody
+ tr(ng-repeat='table in importDomain.displayedTables track by $index')
+ td(width='30px' style='min-width: 30px; max-width: 30px')
+ input(type='checkbox' ng-model='table.use' ng-change='selectTable()')
+ +td-ellipses-lbl('130px', '{{table.schema}}')
+ +td-ellipses-lbl('160px', '{{table.tbl}}')
+ td(colspan='2' width='288px' style='min-width: 160px; max-width: 160px')
+ div.td-ellipsis
+ a(ng-if='!table.edit' ng-click='startEditDbTableCache(table)') {{tableActionView(table)}}
+ div(style='display: flex' ng-if='table.edit')
+ button.select-toggle.form-control(style='width: 35%; margin-right: 5px' bs-select ng-model='table.action' data-container='.modal-domain-import' bs-options='item.value as item.shortLabel for item in importActions')
+ button.select-toggle.form-control(style='width: 65%; margin-right: 0' bs-select ng-model='table.cacheOrTemplate' data-container='.modal-domain-import' bs-options='item.value as item.label for item in table.cachesOrTemplates')
+ td
+ .settings-row
+ label Defaults to be applied for filtered tables
+ i.tipLabel.icon-help(bs-tooltip='' data-title='Select and apply options for caches generation')
+ .settings-row
+ .col-sm-11
+ .col-sm-6(style='padding-right: 5px')
+ button.select-toggle.form-control(bs-select ng-model='importCommon.action' data-container='.modal-domain-import' bs-options='item.value as item.label for item in importActions')
+ .col-sm-6(style='padding-left: 5px; padding-right: 5px')
+ button.select-toggle.form-control(bs-select ng-model='importCommon.cacheOrTemplate' data-container='.modal-domain-import' bs-options='item.value as item.label for item in importCommon.cachesOrTemplates')
+ .col-sm-1(style='padding-left: 5px')
+ button.btn.btn-primary(ng-click='applyDefaults()') Apply
+ .import-domain-model-wizard-page(ng-show='importDomain.action == "options"')
+ -var form = 'optionsForm'
+
+ form.form-horizontal(name=form novalidate)
+ .settings-row
+ +checkbox('Use Java built-in types for keys', 'ui.builtinKeys', '"domainBuiltinKeys"', 'Use Java built-in types like "Integer", "Long", "String" instead of POJO generation in case when table primary key contains only one field')
+ .settings-row
+ +checkbox('Use primitive types for NOT NULL table columns', 'ui.usePrimitives', '"domainUsePrimitives"', 'Use primitive types like "int", "long", "double" for POJOs fields generation in case of NOT NULL columns')
+ .settings-row
+ +checkbox('Generate aliases for query fields', 'ui.generateAliases', '"domainGenerateAliases"', 'Generate aliases for query fields with database field names when database field name differ from Java field name')
+ .settings-row
+ +checkbox('Generate POJO classes', 'ui.generatePojo', '"domainGeneratePojo"', 'If selected then POJO classes will be generated from database tables')
+ .settings-row.settings-row_small-label(ng-show='ui.generatePojo')
+ +java-package('Package:', 'ui.packageName', '"domainPackageName"', true, true, 'Package that will be used for POJOs generation')(data-container='.modal-domain-import')
+ .settings-row.settings-row_small-label
+ +ignite-form-field-dropdown('Clusters:', 'ui.generatedCachesClusters', '"generatedCachesClusters"', false, false, true,
+ 'Choose clusters for generated caches', '', 'clusters',
+ 'Choose clusters that will be associated with generated caches'
+ )(data-container='.modal-domain-import')
+ .modal-footer
+ label(ng-hide='importDomain.action == "drivers" || (importDomain.action == "connect" && importDomain.demo)').labelField {{importDomain.info}}
+ a.btn.btn-primary(ng-hide='importDomain.action == "drivers" || importDomain.action == "connect"' ng-click='importDomainPrev()' bs-tooltip='' data-title='{{prevTooltipText()}}' data-placement='bottom') Prev
+ a.btn.btn-primary(ng-click='importDomainNext(optionsForm)' ng-disabled='!importDomainNextAvailable()' bs-tooltip='' data-title='{{nextTooltipText()}}' data-placement='bottom') {{importDomain.button}}
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/configuration/domains.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/configuration/domains.jade b/modules/web-console/frontend/views/configuration/domains.jade
deleted file mode 100644
index 14e9ca5..0000000
--- a/modules/web-console/frontend/views/configuration/domains.jade
+++ /dev/null
@@ -1,66 +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.jade
-
-.docs-header
- h1 Configure Domain Model And SQL Queries
-.docs-body(ng-controller='domainsController')
- 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')
- .btn-group.panel-tip-container.pull-right(bs-tooltip='' data-title='Import domain models from demo database' data-placement='bottom')
- 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.jade
- include /app/modules/states/configuration/domains/query.jade
- include /app/modules/states/configuration/domains/store.jade
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/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
new file mode 100644
index 0000000..33528c7
--- /dev/null
+++ b/modules/web-console/frontend/views/configuration/domains.tpl.pug
@@ -0,0 +1,66 @@
+//-
+ 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 Domain Model And SQL Queries
+.docs-body(ng-controller='domainsController')
+ 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')
+ .btn-group.panel-tip-container.pull-right(bs-tooltip='' data-title='Import domain models from demo database' data-placement='bottom')
+ 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
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/configuration/igfs.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/configuration/igfs.jade b/modules/web-console/frontend/views/configuration/igfs.jade
deleted file mode 100644
index 10c902b..0000000
--- a/modules/web-console/frontend/views/configuration/igfs.jade
+++ /dev/null
@@ -1,51 +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.jade
-
-.docs-header
- h1 Configure Ignite In-memory File Systems
-.docs-body(ng-controller='igfsController')
- 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.jade
-
- +advanced-options-toggle-default
-
- div(ng-show='ui.expanded')
- include /app/modules/states/configuration/igfs/secondary.jade
- include /app/modules/states/configuration/igfs/ipc.jade
- include /app/modules/states/configuration/igfs/fragmentizer.jade
- include /app/modules/states/configuration/igfs/dual.jade
- include /app/modules/states/configuration/igfs/misc.jade
-
- +advanced-options-toggle-default
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/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
new file mode 100644
index 0000000..89e0920
--- /dev/null
+++ b/modules/web-console/frontend/views/configuration/igfs.tpl.pug
@@ -0,0 +1,51 @@
+//-
+ 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(ng-controller='igfsController')
+ 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
+ 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/1080e686/modules/web-console/frontend/views/configuration/sidebar.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/configuration/sidebar.jade b/modules/web-console/frontend/views/configuration/sidebar.jade
deleted file mode 100644
index bba6b25..0000000
--- a/modules/web-console/frontend/views/configuration/sidebar.jade
+++ /dev/null
@@ -1,29 +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.
-
-.row
- .col-xs-3.col-sm-3.col-md-2.border-right.section-left.greedy
- .sidebar-nav(bs-affix)
- ul.menu(ignite-sidebar)
- li(ng-repeat='item in sidebar.items')
- a(ui-sref-active='active' ui-sref='{{::item.sref}}')
- span.fa-stack
- i.fa.fa-circle-thin.fa-stack-2x
- i.fa.fa-stack-1x {{::$index + 1}}
- | {{::item.text}}
-
- .col-xs-9.col-sm-9.col-md-10.border-left.section-right
- .docs-content(ui-view='')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/configuration/sidebar.tpl.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/configuration/sidebar.tpl.pug b/modules/web-console/frontend/views/configuration/sidebar.tpl.pug
new file mode 100644
index 0000000..bba6b25
--- /dev/null
+++ b/modules/web-console/frontend/views/configuration/sidebar.tpl.pug
@@ -0,0 +1,29 @@
+//-
+ 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.
+
+.row
+ .col-xs-3.col-sm-3.col-md-2.border-right.section-left.greedy
+ .sidebar-nav(bs-affix)
+ ul.menu(ignite-sidebar)
+ li(ng-repeat='item in sidebar.items')
+ a(ui-sref-active='active' ui-sref='{{::item.sref}}')
+ span.fa-stack
+ i.fa.fa-circle-thin.fa-stack-2x
+ i.fa.fa-stack-1x {{::$index + 1}}
+ | {{::item.text}}
+
+ .col-xs-9.col-sm-9.col-md-10.border-left.section-right
+ .docs-content(ui-view='')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/configuration/summary-project-structure.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/configuration/summary-project-structure.jade b/modules/web-console/frontend/views/configuration/summary-project-structure.jade
deleted file mode 100644
index 29d4538..0000000
--- a/modules/web-console/frontend/views/configuration/summary-project-structure.jade
+++ /dev/null
@@ -1,27 +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/1080e686/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
new file mode 100644
index 0000000..31a557f
--- /dev/null
+++ b/modules/web-console/frontend/views/configuration/summary-project-structure.tpl.pug
@@ -0,0 +1,28 @@
+//-
+ 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/1080e686/modules/web-console/frontend/views/configuration/summary-tabs.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/configuration/summary-tabs.jade b/modules/web-console/frontend/views/configuration/summary-tabs.jade
deleted file mode 100644
index 847b42f..0000000
--- a/modules/web-console/frontend/views/configuration/summary-tabs.jade
+++ /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/1080e686/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
new file mode 100644
index 0000000..d05e3a9
--- /dev/null
+++ b/modules/web-console/frontend/views/configuration/summary-tabs.pug
@@ -0,0 +1,25 @@
+//-
+ 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/1080e686/modules/web-console/frontend/views/configuration/summary.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/configuration/summary.jade b/modules/web-console/frontend/views/configuration/summary.jade
deleted file mode 100644
index a04f0db..0000000
--- a/modules/web-console/frontend/views/configuration/summary.jade
+++ /dev/null
@@ -1,90 +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.jade
-
-mixin hard-link(ref, txt)
- a(style='color:#ec1c24' href=ref target='_blank') #{txt}
-
-.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.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
- button.btn.btn-primary(bs-tooltip='' data-title='Preview generated project structure' data-placement='bottom')
- div(bs-popover data-template-url='/configuration/summary-project-structure.html', 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" template='configuration/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" template='configuration/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/1080e686/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
new file mode 100644
index 0000000..9fdd0de
--- /dev/null
+++ b/modules/web-console/frontend/views/configuration/summary.tpl.pug
@@ -0,0 +1,90 @@
+//-
+ 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
+
+mixin hard-link(ref, txt)
+ a(style='color:#ec1c24' href=ref target='_blank') #{txt}
+
+.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.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
+ button.btn.btn-primary(bs-tooltip='' data-title='Preview generated project structure' data-placement='bottom')
+ div(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/1080e686/modules/web-console/frontend/views/includes/footer.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/includes/footer.jade b/modules/web-console/frontend/views/includes/footer.jade
deleted file mode 100644
index 4ef3bf6..0000000
--- a/modules/web-console/frontend/views/includes/footer.jade
+++ /dev/null
@@ -1,23 +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.
-
-.container.container-footer
- footer
- .col-md-offset-1.col-md-10
- ignite-footer
- .col-md-1
- .pull-right
- ignite-powered-by-apache
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/includes/footer.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/includes/footer.pug b/modules/web-console/frontend/views/includes/footer.pug
new file mode 100644
index 0000000..4ef3bf6
--- /dev/null
+++ b/modules/web-console/frontend/views/includes/footer.pug
@@ -0,0 +1,23 @@
+//-
+ 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.
+
+.container.container-footer
+ footer
+ .col-md-offset-1.col-md-10
+ ignite-footer
+ .col-md-1
+ .pull-right
+ ignite-powered-by-apache
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/includes/header.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/includes/header.jade b/modules/web-console/frontend/views/includes/header.jade
deleted file mode 100644
index 99bcea9..0000000
--- a/modules/web-console/frontend/views/includes/header.jade
+++ /dev/null
@@ -1,52 +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.
-
-header#header.header
- .viewedUser(ng-show='$root.user.becomeUsed')
- | Currently assuming #[strong {{$root.user.firstName}} {{$root.user.lastName}}], #[a(ng-click='$root.revertIdentity()') revert to your identity].
- table.container
- tr
- td.col-xs-3.col-sm-3.col-md-2
- ignite-header-logo
- td(ng-if='$root.user' style='padding-top: 20px')
- ul.nav.navbar-nav(ignite-sidebar ignite-navbar)
- li(ng-class='{active: $state.includes("base.configuration")}' bs-dropdown='sidebar.items' data-placement='bottom-right' data-trigger='hover focus' data-container='self' data-animation='' ng-click='$event.stopPropagation()')
- a.dropdown-toggle Configure
- span.caret
-
- ul.nav.navbar-nav(ng-controller='notebookController')
- li.sql-notebooks(ng-if='IgniteDemoMode' ng-class='{active: $state.includes("base.sql")}')
- a(ui-sref='base.sql.demo') Queries
-
- li.sql-notebooks(ng-if='!IgniteDemoMode && !notebooks.length' ng-class='{active: $state.includes("base.sql")}')
- a(ng-click='createNotebook()') Queries
-
- li.sql-notebooks(ng-if='!IgniteDemoMode && notebooks.length' ng-class='{active: $state.includes("base.sql")}' bs-dropdown='notebooks' data-placement='bottom-left' data-trigger='hover focus' data-container='self' data-animation='' ng-click='$event.stopPropagation()' aria-haspopup='true' aria-expanded='false')
- a.dropdown-toggle Queries
- span.caret
-
- li(ui-sref-active='active' ng-repeat='item in navbar.items' ng-class='{active: $state.includes("base.monitoring")}' bs-dropdown='item.children' data-placement='bottom-left' data-trigger='hover focus' data-container='self' data-animation='' ng-click='$event.stopPropagation()' aria-haspopup='true' aria-expanded='false')
- a.dropdown-toggle {{::item.text}}
- span.caret
-
- a(ng-controller='demoController')
- button.btn.btn-info(ng-if='IgniteDemoMode' ng-click='closeDemo()') Close demo
- button.btn.btn-info(ng-if='!IgniteDemoMode' ng-click='startDemo()') Start demo
-
- ul.nav.navbar-nav.pull-right(ignite-userbar)
- li(bs-dropdown='userbar.items' data-placement='bottom-right' data-trigger='hover focus' data-container='self' data-animation='' ng-class='{active: $state.includes("settings")}' ng-click='$event.stopPropagation()')
- a.dropdown-toggle {{user.firstName}} {{user.lastName}}
- span.caret
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/includes/header.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/includes/header.pug b/modules/web-console/frontend/views/includes/header.pug
new file mode 100644
index 0000000..99bcea9
--- /dev/null
+++ b/modules/web-console/frontend/views/includes/header.pug
@@ -0,0 +1,52 @@
+//-
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+header#header.header
+ .viewedUser(ng-show='$root.user.becomeUsed')
+ | Currently assuming #[strong {{$root.user.firstName}} {{$root.user.lastName}}], #[a(ng-click='$root.revertIdentity()') revert to your identity].
+ table.container
+ tr
+ td.col-xs-3.col-sm-3.col-md-2
+ ignite-header-logo
+ td(ng-if='$root.user' style='padding-top: 20px')
+ ul.nav.navbar-nav(ignite-sidebar ignite-navbar)
+ li(ng-class='{active: $state.includes("base.configuration")}' bs-dropdown='sidebar.items' data-placement='bottom-right' data-trigger='hover focus' data-container='self' data-animation='' ng-click='$event.stopPropagation()')
+ a.dropdown-toggle Configure
+ span.caret
+
+ ul.nav.navbar-nav(ng-controller='notebookController')
+ li.sql-notebooks(ng-if='IgniteDemoMode' ng-class='{active: $state.includes("base.sql")}')
+ a(ui-sref='base.sql.demo') Queries
+
+ li.sql-notebooks(ng-if='!IgniteDemoMode && !notebooks.length' ng-class='{active: $state.includes("base.sql")}')
+ a(ng-click='createNotebook()') Queries
+
+ li.sql-notebooks(ng-if='!IgniteDemoMode && notebooks.length' ng-class='{active: $state.includes("base.sql")}' bs-dropdown='notebooks' data-placement='bottom-left' data-trigger='hover focus' data-container='self' data-animation='' ng-click='$event.stopPropagation()' aria-haspopup='true' aria-expanded='false')
+ a.dropdown-toggle Queries
+ span.caret
+
+ li(ui-sref-active='active' ng-repeat='item in navbar.items' ng-class='{active: $state.includes("base.monitoring")}' bs-dropdown='item.children' data-placement='bottom-left' data-trigger='hover focus' data-container='self' data-animation='' ng-click='$event.stopPropagation()' aria-haspopup='true' aria-expanded='false')
+ a.dropdown-toggle {{::item.text}}
+ span.caret
+
+ a(ng-controller='demoController')
+ button.btn.btn-info(ng-if='IgniteDemoMode' ng-click='closeDemo()') Close demo
+ button.btn.btn-info(ng-if='!IgniteDemoMode' ng-click='startDemo()') Start demo
+
+ ul.nav.navbar-nav.pull-right(ignite-userbar)
+ li(bs-dropdown='userbar.items' data-placement='bottom-right' data-trigger='hover focus' data-container='self' data-animation='' ng-class='{active: $state.includes("settings")}' ng-click='$event.stopPropagation()')
+ a.dropdown-toggle {{user.firstName}} {{user.lastName}}
+ span.caret
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/index.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/index.jade b/modules/web-console/frontend/views/index.jade
deleted file mode 100644
index c561c3e..0000000
--- a/modules/web-console/frontend/views/index.jade
+++ /dev/null
@@ -1,47 +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.
-
-doctype html
-html(ng-app='ignite-console' id='app' ng-strict-di)
- head
- base(href='/')
-
- meta(http-equiv='content-type' content='text/html; charset=UTF8')
- meta(http-equiv='content-language' content='en')
-
- title(ng-bind='$meta.title')
-
- 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.greedy
-
- .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"}')
- label {{IgniteDemoMode ? "Demo" : "Beta" }}
-
- .wrapper(ui-view='')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/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
new file mode 100644
index 0000000..c561c3e
--- /dev/null
+++ b/modules/web-console/frontend/views/index.pug
@@ -0,0 +1,47 @@
+//-
+ 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.
+
+doctype html
+html(ng-app='ignite-console' id='app' ng-strict-di)
+ head
+ base(href='/')
+
+ meta(http-equiv='content-type' content='text/html; charset=UTF8')
+ meta(http-equiv='content-language' content='en')
+
+ title(ng-bind='$meta.title')
+
+ 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.greedy
+
+ .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"}')
+ label {{IgniteDemoMode ? "Demo" : "Beta" }}
+
+ .wrapper(ui-view='')
[15/15] ignite git commit: IGNITE-4659 Migration to Webpack 2.
Upgrade template engine from jade to pug.
Posted by an...@apache.org.
IGNITE-4659 Migration to Webpack 2. Upgrade template engine from jade to pug.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/1080e686
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/1080e686
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/1080e686
Branch: refs/heads/master
Commit: 1080e6861288b229630e24c9b8f282c09bede030
Parents: f71e4b4
Author: Dmitriy Shabalin <ds...@gridgain.com>
Authored: Thu Mar 2 16:05:15 2017 +0700
Committer: Andrey Novikov <an...@gridgain.com>
Committed: Thu Mar 2 16:05:16 2017 +0700
----------------------------------------------------------------------
modules/web-console/frontend/.eslintrc | 1 +
modules/web-console/frontend/.gitignore | 1 +
modules/web-console/frontend/app/app.config.js | 12 +-
modules/web-console/frontend/app/app.js | 7 +-
.../activities-user-dialog.jade | 36 --
.../activities-user-dialog.tpl.pug | 36 ++
.../components/activities-user-dialog/index.js | 2 +-
.../form-field-datepicker.jade | 55 --
.../form-field-datepicker.pug | 55 ++
.../list-of-registered-users/index.js | 2 +-
.../list-of-registered-users.controller.js | 11 +-
.../list-of-registered-users.jade | 58 --
.../list-of-registered-users.tpl.pug | 58 ++
.../ui-grid-header/ui-grid-header.jade | 27 -
.../ui-grid-header/ui-grid-header.scss | 1 +
.../ui-grid-header/ui-grid-header.tpl.pug | 27 +
.../ui-grid-settings/ui-grid-settings.jade | 33 -
.../ui-grid-settings/ui-grid-settings.pug | 33 +
.../app/directives/centered/centered.css | 37 --
.../directives/centered/centered.directive.js | 2 +-
.../app/directives/centered/centered.scss | 37 ++
.../information/information.directive.js | 4 +-
.../app/directives/information/information.jade | 20 -
.../app/directives/information/information.pug | 20 +
.../ui-ace-docker/ui-ace-docker.directive.js | 4 +-
.../directives/ui-ace-docker/ui-ace-docker.jade | 31 -
.../directives/ui-ace-docker/ui-ace-docker.pug | 31 +
.../ui-ace-java/ui-ace-java.directive.js | 4 +-
.../app/directives/ui-ace-java/ui-ace-java.jade | 22 -
.../app/directives/ui-ace-java/ui-ace-java.pug | 22 +
.../ui-ace-pojos/ui-ace-pojos.directive.js | 4 +-
.../directives/ui-ace-pojos/ui-ace-pojos.jade | 40 --
.../directives/ui-ace-pojos/ui-ace-pojos.pug | 40 ++
.../ui-ace-pom/ui-ace-pom.directive.js | 4 +-
.../app/directives/ui-ace-pom/ui-ace-pom.jade | 17 -
.../app/directives/ui-ace-pom/ui-ace-pom.pug | 17 +
.../ui-ace-sharp/ui-ace-sharp.directive.js | 4 +-
.../directives/ui-ace-sharp/ui-ace-sharp.jade | 22 -
.../directives/ui-ace-sharp/ui-ace-sharp.pug | 22 +
.../ui-ace-spring/ui-ace-spring.directive.js | 4 +-
.../directives/ui-ace-spring/ui-ace-spring.jade | 17 -
.../directives/ui-ace-spring/ui-ace-spring.pug | 17 +
.../frontend/app/helpers/jade/form.jade | 28 -
.../frontend/app/helpers/jade/form.pug | 28 +
.../helpers/jade/form/form-field-checkbox.jade | 38 --
.../helpers/jade/form/form-field-checkbox.pug | 38 ++
.../helpers/jade/form/form-field-datalist.jade | 51 --
.../helpers/jade/form/form-field-datalist.pug | 51 ++
.../app/helpers/jade/form/form-field-down.jade | 18 -
.../app/helpers/jade/form/form-field-down.pug | 18 +
.../helpers/jade/form/form-field-dropdown.jade | 51 --
.../helpers/jade/form/form-field-dropdown.pug | 51 ++
.../helpers/jade/form/form-field-feedback.jade | 32 -
.../helpers/jade/form/form-field-feedback.pug | 32 +
.../app/helpers/jade/form/form-field-label.jade | 23 -
.../app/helpers/jade/form/form-field-label.pug | 23 +
.../helpers/jade/form/form-field-number.jade | 53 --
.../app/helpers/jade/form/form-field-number.pug | 53 ++
.../helpers/jade/form/form-field-password.jade | 47 --
.../helpers/jade/form/form-field-password.pug | 47 ++
.../app/helpers/jade/form/form-field-text.jade | 64 --
.../app/helpers/jade/form/form-field-text.pug | 64 ++
.../app/helpers/jade/form/form-field-up.jade | 18 -
.../app/helpers/jade/form/form-field-up.pug | 18 +
.../app/helpers/jade/form/form-group.jade | 23 -
.../app/helpers/jade/form/form-group.pug | 23 +
.../frontend/app/helpers/jade/mixins.jade | 609 -------------------
.../frontend/app/helpers/jade/mixins.pug | 609 +++++++++++++++++++
.../frontend/app/modules/agent/agent.module.js | 4 +-
.../modules/branding/header-logo.directive.js | 4 +-
.../app/modules/branding/header-logo.jade | 18 -
.../app/modules/branding/header-logo.pug | 18 +
.../branding/powered-by-apache.directive.js | 4 +-
.../app/modules/branding/powered-by-apache.jade | 18 -
.../app/modules/branding/powered-by-apache.pug | 18 +
.../frontend/app/modules/demo/Demo.module.js | 3 +-
.../app/modules/dialog/dialog.factory.js | 2 +-
.../frontend/app/modules/dialog/dialog.jade | 26 -
.../frontend/app/modules/dialog/dialog.tpl.pug | 26 +
.../getting-started/GettingStarted.provider.js | 3 +-
.../frontend/app/modules/loading/loading.css | 73 ---
.../app/modules/loading/loading.directive.js | 8 +-
.../frontend/app/modules/loading/loading.jade | 23 -
.../frontend/app/modules/loading/loading.pug | 23 +
.../frontend/app/modules/loading/loading.scss | 73 +++
.../frontend/app/modules/nodes/Nodes.service.js | 4 +-
.../app/modules/nodes/nodes-dialog.jade | 35 --
.../app/modules/nodes/nodes-dialog.tpl.pug | 35 ++
.../app/modules/sql/notebook.controller.js | 4 +-
.../frontend/app/modules/sql/sql.controller.js | 15 +-
.../frontend/app/modules/sql/sql.module.js | 15 +-
.../frontend/app/modules/states/admin.state.js | 4 +-
.../app/modules/states/configuration.state.js | 23 +-
.../states/configuration/caches/affinity.jade | 82 ---
.../states/configuration/caches/affinity.pug | 82 +++
.../configuration/caches/client-near-cache.jade | 50 --
.../configuration/caches/client-near-cache.pug | 50 ++
.../configuration/caches/concurrency.jade | 65 --
.../states/configuration/caches/concurrency.pug | 65 ++
.../states/configuration/caches/general.jade | 69 ---
.../states/configuration/caches/general.pug | 69 +++
.../states/configuration/caches/memory.jade | 109 ----
.../states/configuration/caches/memory.pug | 108 ++++
.../configuration/caches/near-cache-client.jade | 51 --
.../configuration/caches/near-cache-client.pug | 51 ++
.../configuration/caches/near-cache-server.jade | 52 --
.../configuration/caches/near-cache-server.pug | 52 ++
.../configuration/caches/node-filter.jade | 59 --
.../states/configuration/caches/node-filter.pug | 59 ++
.../states/configuration/caches/query.jade | 114 ----
.../states/configuration/caches/query.pug | 114 ++++
.../states/configuration/caches/rebalance.jade | 66 --
.../states/configuration/caches/rebalance.pug | 66 ++
.../states/configuration/caches/statistics.jade | 39 --
.../states/configuration/caches/statistics.pug | 39 ++
.../states/configuration/caches/store.jade | 250 --------
.../states/configuration/caches/store.pug | 250 ++++++++
.../states/configuration/clusters/atomic.jade | 54 --
.../states/configuration/clusters/atomic.pug | 54 ++
.../configuration/clusters/attributes.jade | 57 --
.../configuration/clusters/attributes.pug | 57 ++
.../states/configuration/clusters/binary.jade | 77 ---
.../states/configuration/clusters/binary.pug | 77 +++
.../configuration/clusters/cache-key-cfg.jade | 50 --
.../configuration/clusters/cache-key-cfg.pug | 50 ++
.../configuration/clusters/checkpoint.jade | 86 ---
.../configuration/clusters/checkpoint.pug | 86 +++
.../configuration/clusters/checkpoint/fs.jade | 66 --
.../configuration/clusters/checkpoint/fs.pug | 66 ++
.../configuration/clusters/checkpoint/jdbc.jade | 48 --
.../configuration/clusters/checkpoint/jdbc.pug | 48 ++
.../configuration/clusters/checkpoint/s3.jade | 178 ------
.../configuration/clusters/checkpoint/s3.pug | 178 ++++++
.../configuration/clusters/collision.jade | 63 --
.../states/configuration/clusters/collision.pug | 63 ++
.../clusters/collision/custom.jade | 24 -
.../configuration/clusters/collision/custom.pug | 24 +
.../clusters/collision/fifo-queue.jade | 27 -
.../clusters/collision/fifo-queue.pug | 27 +
.../clusters/collision/job-stealing.jade | 63 --
.../clusters/collision/job-stealing.pug | 63 ++
.../clusters/collision/priority-queue.jade | 42 --
.../clusters/collision/priority-queue.pug | 42 ++
.../configuration/clusters/communication.jade | 100 ---
.../configuration/clusters/communication.pug | 100 +++
.../configuration/clusters/connector.jade | 104 ----
.../states/configuration/clusters/connector.pug | 104 ++++
.../configuration/clusters/deployment.jade | 237 --------
.../configuration/clusters/deployment.pug | 237 ++++++++
.../configuration/clusters/discovery.jade | 88 ---
.../states/configuration/clusters/discovery.pug | 88 +++
.../states/configuration/clusters/events.jade | 68 ---
.../states/configuration/clusters/events.pug | 68 +++
.../states/configuration/clusters/failover.jade | 73 ---
.../states/configuration/clusters/failover.pug | 73 +++
.../states/configuration/clusters/general.jade | 76 ---
.../states/configuration/clusters/general.pug | 76 +++
.../clusters/general/discovery/cloud.jade | 134 ----
.../clusters/general/discovery/cloud.pug | 134 ++++
.../clusters/general/discovery/google.jade | 38 --
.../clusters/general/discovery/google.pug | 38 ++
.../clusters/general/discovery/jdbc.jade | 31 -
.../clusters/general/discovery/jdbc.pug | 31 +
.../clusters/general/discovery/multicast.jade | 99 ---
.../clusters/general/discovery/multicast.pug | 99 +++
.../clusters/general/discovery/s3.jade | 27 -
.../clusters/general/discovery/s3.pug | 27 +
.../clusters/general/discovery/shared.jade | 23 -
.../clusters/general/discovery/shared.pug | 23 +
.../clusters/general/discovery/vm.jade | 79 ---
.../clusters/general/discovery/vm.pug | 79 +++
.../clusters/general/discovery/zookeeper.jade | 85 ---
.../clusters/general/discovery/zookeeper.pug | 85 +++
.../bounded-exponential-backoff.jade | 27 -
.../retrypolicy/bounded-exponential-backoff.pug | 27 +
.../discovery/zookeeper/retrypolicy/custom.jade | 24 -
.../discovery/zookeeper/retrypolicy/custom.pug | 24 +
.../retrypolicy/exponential-backoff.jade | 27 -
.../retrypolicy/exponential-backoff.pug | 27 +
.../zookeeper/retrypolicy/forever.jade | 22 -
.../discovery/zookeeper/retrypolicy/forever.pug | 22 +
.../zookeeper/retrypolicy/n-times.jade | 25 -
.../discovery/zookeeper/retrypolicy/n-times.pug | 25 +
.../zookeeper/retrypolicy/one-time.jade | 23 -
.../zookeeper/retrypolicy/one-time.pug | 23 +
.../zookeeper/retrypolicy/until-elapsed.jade | 25 -
.../zookeeper/retrypolicy/until-elapsed.pug | 25 +
.../states/configuration/clusters/igfs.jade | 38 --
.../states/configuration/clusters/igfs.pug | 38 ++
.../configuration/clusters/load-balancing.jade | 107 ----
.../configuration/clusters/load-balancing.pug | 107 ++++
.../states/configuration/clusters/logger.jade | 66 --
.../states/configuration/clusters/logger.pug | 66 ++
.../configuration/clusters/logger/custom.jade | 25 -
.../configuration/clusters/logger/custom.pug | 25 +
.../configuration/clusters/logger/log4j.jade | 50 --
.../configuration/clusters/logger/log4j.pug | 50 ++
.../configuration/clusters/logger/log4j2.jade | 39 --
.../configuration/clusters/logger/log4j2.pug | 39 ++
.../configuration/clusters/marshaller.jade | 76 ---
.../configuration/clusters/marshaller.pug | 76 +++
.../states/configuration/clusters/metrics.jade | 51 --
.../states/configuration/clusters/metrics.pug | 51 ++
.../states/configuration/clusters/odbc.jade | 48 --
.../states/configuration/clusters/odbc.pug | 48 ++
.../states/configuration/clusters/ssl.jade | 110 ----
.../states/configuration/clusters/ssl.pug | 110 ++++
.../states/configuration/clusters/swap.jade | 72 ---
.../states/configuration/clusters/swap.pug | 72 +++
.../states/configuration/clusters/thread.jade | 48 --
.../states/configuration/clusters/thread.pug | 48 ++
.../states/configuration/clusters/time.jade | 47 --
.../states/configuration/clusters/time.pug | 47 ++
.../configuration/clusters/transactions.jade | 69 ---
.../configuration/clusters/transactions.pug | 69 +++
.../states/configuration/domains/general.jade | 52 --
.../states/configuration/domains/general.pug | 52 ++
.../states/configuration/domains/query.jade | 172 ------
.../states/configuration/domains/query.pug | 172 ++++++
.../states/configuration/domains/store.jade | 127 ----
.../states/configuration/domains/store.pug | 127 ++++
.../modules/states/configuration/igfs/dual.jade | 42 --
.../modules/states/configuration/igfs/dual.pug | 42 ++
.../states/configuration/igfs/fragmentizer.jade | 43 --
.../states/configuration/igfs/fragmentizer.pug | 43 ++
.../states/configuration/igfs/general.jade | 57 --
.../states/configuration/igfs/general.pug | 57 ++
.../modules/states/configuration/igfs/ipc.jade | 60 --
.../modules/states/configuration/igfs/ipc.pug | 60 ++
.../modules/states/configuration/igfs/misc.jade | 108 ----
.../modules/states/configuration/igfs/misc.pug | 108 ++++
.../states/configuration/igfs/secondary.jade | 45 --
.../states/configuration/igfs/secondary.pug | 45 ++
.../configuration/summary/summary.controller.js | 5 +
.../frontend/app/modules/states/errors.state.js | 4 +-
.../app/modules/states/password.state.js | 6 +-
.../app/modules/states/profile.state.js | 4 +-
.../frontend/app/modules/states/signin.state.js | 2 +-
.../frontend/app/services/Clone.service.js | 4 +-
.../frontend/app/services/Confirm.service.js | 4 +-
.../app/services/ConfirmBatch.service.js | 4 +-
.../frontend/controllers/caches-controller.js | 4 +-
.../frontend/controllers/domains-controller.js | 4 +-
.../frontend/gulpfile.babel.js/paths.js | 28 +-
.../frontend/gulpfile.babel.js/tasks/build.js | 2 +-
.../frontend/gulpfile.babel.js/tasks/bundle.js | 8 +-
.../frontend/gulpfile.babel.js/tasks/jade.js | 49 --
.../frontend/gulpfile.babel.js/tasks/watch.js | 5 +-
.../gulpfile.babel.js/webpack/common.js | 292 ++++-----
.../webpack/environments/development.js | 90 ++-
.../webpack/environments/production.js | 41 +-
.../webpack/environments/test.js | 52 +-
.../frontend/gulpfile.babel.js/webpack/index.js | 4 +-
modules/web-console/frontend/package.json | 60 +-
.../frontend/test/e2e/exampe.test.js | 4 +-
.../frontend/test/karma.conf.babel.js | 7 +-
.../frontend/test/protractor.conf.js | 16 +-
.../frontend/test/unit/JavaTransformer.test.js | 2 +-
.../frontend/test/unit/JavaTypes.test.js | 137 ++---
.../frontend/test/unit/SharpTransformer.test.js | 2 +-
.../test/unit/SpringTransformer.test.js | 2 +-
.../frontend/test/unit/SqlTypes.test.js | 7 +-
.../frontend/test/unit/UserAuth.test.js | 4 +-
.../frontend/test/unit/Version.test.js | 1 +
.../test/unit/defaultName.filter.test.js | 27 +-
modules/web-console/frontend/views/403.jade | 22 -
modules/web-console/frontend/views/403.pug | 22 +
modules/web-console/frontend/views/404.jade | 22 -
modules/web-console/frontend/views/404.pug | 22 +
modules/web-console/frontend/views/base.jade | 22 -
modules/web-console/frontend/views/base.pug | 22 +
.../frontend/views/configuration/caches.jade | 55 --
.../frontend/views/configuration/caches.tpl.pug | 55 ++
.../frontend/views/configuration/clusters.jade | 68 ---
.../views/configuration/clusters.tpl.pug | 68 +++
.../views/configuration/domains-import.jade | 170 ------
.../views/configuration/domains-import.tpl.pug | 170 ++++++
.../frontend/views/configuration/domains.jade | 66 --
.../views/configuration/domains.tpl.pug | 66 ++
.../frontend/views/configuration/igfs.jade | 51 --
.../frontend/views/configuration/igfs.tpl.pug | 51 ++
.../frontend/views/configuration/sidebar.jade | 29 -
.../views/configuration/sidebar.tpl.pug | 29 +
.../summary-project-structure.jade | 27 -
.../summary-project-structure.tpl.pug | 28 +
.../views/configuration/summary-tabs.jade | 25 -
.../views/configuration/summary-tabs.pug | 25 +
.../frontend/views/configuration/summary.jade | 90 ---
.../views/configuration/summary.tpl.pug | 90 +++
.../frontend/views/includes/footer.jade | 23 -
.../frontend/views/includes/footer.pug | 23 +
.../frontend/views/includes/header.jade | 52 --
.../frontend/views/includes/header.pug | 52 ++
modules/web-console/frontend/views/index.jade | 47 --
modules/web-console/frontend/views/index.pug | 47 ++
modules/web-console/frontend/views/reset.jade | 48 --
.../web-console/frontend/views/reset.tpl.pug | 48 ++
.../frontend/views/settings/admin.jade | 25 -
.../frontend/views/settings/admin.tpl.pug | 25 +
.../frontend/views/settings/profile.jade | 76 ---
.../frontend/views/settings/profile.tpl.pug | 76 +++
modules/web-console/frontend/views/signin.jade | 163 -----
.../web-console/frontend/views/signin.tpl.pug | 163 +++++
.../frontend/views/sql/cache-metadata.jade | 40 --
.../frontend/views/sql/cache-metadata.tpl.pug | 40 ++
.../frontend/views/sql/chart-settings.jade | 40 --
.../frontend/views/sql/chart-settings.tpl.pug | 40 ++
.../frontend/views/sql/notebook-new.jade | 33 -
.../frontend/views/sql/notebook-new.tpl.pug | 33 +
.../frontend/views/sql/paragraph-rate.jade | 31 -
.../frontend/views/sql/paragraph-rate.tpl.pug | 31 +
modules/web-console/frontend/views/sql/sql.jade | 278 ---------
.../web-console/frontend/views/sql/sql.tpl.pug | 278 +++++++++
.../views/templates/agent-download.jade | 50 --
.../views/templates/agent-download.tpl.pug | 50 ++
.../frontend/views/templates/alert.jade | 21 -
.../frontend/views/templates/alert.tpl.pug | 21 +
.../frontend/views/templates/batch-confirm.jade | 34 --
.../views/templates/batch-confirm.tpl.pug | 34 ++
.../frontend/views/templates/clone.jade | 39 --
.../frontend/views/templates/clone.tpl.pug | 39 ++
.../frontend/views/templates/confirm.jade | 33 -
.../frontend/views/templates/confirm.tpl.pug | 33 +
.../frontend/views/templates/demo-info.jade | 47 --
.../frontend/views/templates/demo-info.tpl.pug | 47 ++
.../frontend/views/templates/dropdown.jade | 24 -
.../frontend/views/templates/dropdown.tpl.pug | 24 +
.../views/templates/getting-started.jade | 34 --
.../views/templates/getting-started.tpl.pug | 34 ++
.../frontend/views/templates/message.jade | 28 -
.../frontend/views/templates/message.tpl.pug | 28 +
.../frontend/views/templates/pagination.jade | 32 -
.../frontend/views/templates/select.jade | 26 -
.../frontend/views/templates/select.tpl.pug | 26 +
.../views/templates/validation-error.jade | 25 -
.../views/templates/validation-error.tpl.pug | 25 +
336 files changed, 8866 insertions(+), 8917 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/.eslintrc
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/.eslintrc b/modules/web-console/frontend/.eslintrc
index 988cfa0..958c6d1 100644
--- a/modules/web-console/frontend/.eslintrc
+++ b/modules/web-console/frontend/.eslintrc
@@ -32,6 +32,7 @@ globals:
$generatorOptional: true
saveAs: true
process: true
+ require: true
rules:
arrow-parens: [1, "always"]
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/.gitignore
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/.gitignore b/modules/web-console/frontend/.gitignore
index 46bca13..27138f6 100644
--- a/modules/web-console/frontend/.gitignore
+++ b/modules/web-console/frontend/.gitignore
@@ -1,5 +1,6 @@
*.idea
*.log
+*.log.*
.npmrc
build/*
node_modules
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/app.config.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/app.config.js b/modules/web-console/frontend/app/app.config.js
index 39d761f..3ca5c3b 100644
--- a/modules/web-console/frontend/app/app.config.js
+++ b/modules/web-console/frontend/app/app.config.js
@@ -16,6 +16,7 @@
*/
import _ from 'lodash';
+import angular from 'angular';
const nonNil = _.negate(_.isNil);
const nonEmpty = _.negate(_.isEmpty);
@@ -25,7 +26,10 @@ _.mixin({
nonEmpty
});
-import alertTemplateUrl from '../views/templates/alert.jade';
+import alertTemplateUrl from 'views/templates/alert.tpl.pug';
+import selectTemplateUrl from 'views/templates/select.tpl.pug';
+import dropdownTemplateUrl from 'views/templates/dropdown.tpl.pug';
+import validationTemplateUrl from 'views/templates/validation-error.tpl.pug';
const igniteConsoleCfg = angular.module('ignite-console.config', ['ngAnimate', 'mgcrea.ngStrap']);
@@ -48,7 +52,7 @@ igniteConsoleCfg.config(['$popoverProvider', ($popoverProvider) => {
trigger: 'manual',
placement: 'right',
container: 'body',
- templateUrl: '/templates/validation-error.html'
+ templateUrl: validationTemplateUrl
});
}]);
@@ -70,7 +74,7 @@ igniteConsoleCfg.config(['$selectProvider', ($selectProvider) => {
maxLength: '5',
allText: 'Select All',
noneText: 'Clear All',
- templateUrl: '/templates/select.html',
+ templateUrl: selectTemplateUrl,
iconCheckmark: 'fa fa-check',
caretHtml: ''
});
@@ -91,7 +95,7 @@ igniteConsoleCfg.config(['$alertProvider', ($alertProvider) => {
// AngularStrap dropdowns () configuration.
igniteConsoleCfg.config(['$dropdownProvider', ($dropdownProvider) => {
angular.extend($dropdownProvider.defaults, {
- templateUrl: 'templates/dropdown.html'
+ templateUrl: dropdownTemplateUrl
});
}]);
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/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 9958cb5..5e3bb07 100644
--- a/modules/web-console/frontend/app/app.js
+++ b/modules/web-console/frontend/app/app.js
@@ -19,7 +19,6 @@ import '../public/stylesheets/style.scss';
import '../app/components/ui-grid-header/ui-grid-header.scss';
import '../app/components/ui-grid-settings/ui-grid-settings.scss';
import '../app/components/form-field-datepicker/form-field-datepicker.scss';
-import './helpers/jade/mixins.jade';
import './app.config';
@@ -122,7 +121,7 @@ import IgniteActivitiesUserDialog from './components/activities-user-dialog';
// Inject external modules.
import 'ignite_modules_temp/index';
-import baseTemplate from '../views/base.jade';
+import baseTemplate from 'views/base.pug';
angular
.module('ignite-console', [
@@ -242,12 +241,12 @@ angular
.state('base', {
url: '',
abstract: true,
- templateUrl: baseTemplate
+ template: baseTemplate
})
.state('settings', {
url: '/settings',
abstract: true,
- templateUrl: baseTemplate
+ template: baseTemplate
});
$urlRouterProvider.otherwise('/404');
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/components/activities-user-dialog/activities-user-dialog.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/activities-user-dialog/activities-user-dialog.jade b/modules/web-console/frontend/app/components/activities-user-dialog/activities-user-dialog.jade
deleted file mode 100644
index 074851c..0000000
--- a/modules/web-console/frontend/app/components/activities-user-dialog/activities-user-dialog.jade
+++ /dev/null
@@ -1,36 +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.
-
-.modal(tabindex='-1' role='dialog')
- .modal-dialog
- .modal-content
- .modal-header
- h4.modal-title
- i.fa.fa-info-circle
- | Activities: {{ ctrl.user.userName }}
- .modal-body.modal-body-with-scroll(id='activities-user-dialog')
- table.table.table-striped.table-bordered.table-hover(scrollable-container='#activities-user-dialog' st-table='displayedRows' st-safe-src='ctrl.data')
- thead
- th.text-center(st-sort='action | translate') Description
- th.text-center(st-sort='action') Action
- th.text-center(st-sort='amount') Visited
- tbody
- tr(ng-repeat='row in displayedRows')
- td.text-left {{ row.action | translate }}
- td.text-left {{ row.action }}
- td.text-left {{ row.amount }}
- .modal-footer
- button.btn.btn-primary(id='confirm-btn-confirm' ng-click='$hide()') Close
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/components/activities-user-dialog/activities-user-dialog.tpl.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/activities-user-dialog/activities-user-dialog.tpl.pug b/modules/web-console/frontend/app/components/activities-user-dialog/activities-user-dialog.tpl.pug
new file mode 100644
index 0000000..074851c
--- /dev/null
+++ b/modules/web-console/frontend/app/components/activities-user-dialog/activities-user-dialog.tpl.pug
@@ -0,0 +1,36 @@
+//-
+ 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.
+
+.modal(tabindex='-1' role='dialog')
+ .modal-dialog
+ .modal-content
+ .modal-header
+ h4.modal-title
+ i.fa.fa-info-circle
+ | Activities: {{ ctrl.user.userName }}
+ .modal-body.modal-body-with-scroll(id='activities-user-dialog')
+ table.table.table-striped.table-bordered.table-hover(scrollable-container='#activities-user-dialog' st-table='displayedRows' st-safe-src='ctrl.data')
+ thead
+ th.text-center(st-sort='action | translate') Description
+ th.text-center(st-sort='action') Action
+ th.text-center(st-sort='amount') Visited
+ tbody
+ tr(ng-repeat='row in displayedRows')
+ td.text-left {{ row.action | translate }}
+ td.text-left {{ row.action }}
+ td.text-left {{ row.amount }}
+ .modal-footer
+ button.btn.btn-primary(id='confirm-btn-confirm' ng-click='$hide()') Close
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/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 dca6ba9..2f8fdef 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
@@ -16,7 +16,7 @@
*/
import controller from './activities-user-dialog.controller';
- import templateUrl from './activities-user-dialog.jade';
+ import templateUrl from './activities-user-dialog.tpl.pug';
export default ['$modal', ($modal) => ({ show = true, user }) => {
const ActivitiesUserDialog = $modal({
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/components/form-field-datepicker/form-field-datepicker.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/form-field-datepicker/form-field-datepicker.jade b/modules/web-console/frontend/app/components/form-field-datepicker/form-field-datepicker.jade
deleted file mode 100644
index 2578cf4..0000000
--- a/modules/web-console/frontend/app/components/form-field-datepicker/form-field-datepicker.jade
+++ /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.
-
-mixin ignite-form-field-datepicker(label, model, name, disabled, required, placeholder, tip)
- mixin form-field-input()
- input.form-control(
- id='{{ #{name} }}Input'
- name='{{ #{name} }}'
-
- placeholder=placeholder
-
- data-ng-model=model
-
- data-ng-required=required && '#{required}'
- data-ng-disabled=disabled && '#{disabled}'
-
- bs-datepicker
- data-date-format='MMM yyyy'
- data-start-view='1'
- data-min-view='1'
- data-max-date='today'
-
- data-container='body > .wrapper'
-
- tabindex='0'
-
- onkeydown="return false"
-
- data-ignite-form-panel-field=''
- )&attributes(attributes.attributes)
-
- .ignite-form-field
- +ignite-form-field__label(label, name, required)
- .ignite-form-field__control
- if tip
- i.tipField.icon-help(bs-tooltip='' data-title=tip)
-
- if block
- block
-
- .input-tip
- +form-field-input(attributes=attributes)
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/components/form-field-datepicker/form-field-datepicker.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/form-field-datepicker/form-field-datepicker.pug b/modules/web-console/frontend/app/components/form-field-datepicker/form-field-datepicker.pug
new file mode 100644
index 0000000..c9d382c
--- /dev/null
+++ b/modules/web-console/frontend/app/components/form-field-datepicker/form-field-datepicker.pug
@@ -0,0 +1,55 @@
+//-
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+mixin ignite-form-field-datepicker(label, model, name, disabled, required, placeholder, tip)
+ mixin form-field-input()
+ input.form-control(
+ id=`{{ ${name} }}Input`
+ name=`{{ ${name} }}`
+
+ placeholder=placeholder
+
+ data-ng-model=model
+
+ data-ng-required=required && `${required}`
+ data-ng-disabled=disabled && `${disabled}`
+
+ bs-datepicker
+ data-date-format='MMM yyyy'
+ data-start-view='1'
+ data-min-view='1'
+ data-max-date='today'
+
+ data-container='body > .wrapper'
+
+ tabindex='0'
+
+ onkeydown="return false"
+
+ data-ignite-form-panel-field=''
+ )&attributes(attributes.attributes)
+
+ .ignite-form-field
+ +ignite-form-field__label(label, name, required)
+ .ignite-form-field__control
+ if tip
+ i.tipField.icon-help(bs-tooltip='' data-title=tip)
+
+ if block
+ block
+
+ .input-tip
+ +form-field-input(attributes=attributes)
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/components/list-of-registered-users/index.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/list-of-registered-users/index.js b/modules/web-console/frontend/app/components/list-of-registered-users/index.js
index 32a34f4..22a89da 100644
--- a/modules/web-console/frontend/app/components/list-of-registered-users/index.js
+++ b/modules/web-console/frontend/app/components/list-of-registered-users/index.js
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-import templateUrl from './list-of-registered-users.jade';
+import templateUrl from './list-of-registered-users.tpl.pug';
import controller from './list-of-registered-users.controller';
export default [() => {
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/components/list-of-registered-users/list-of-registered-users.controller.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/list-of-registered-users/list-of-registered-users.controller.js b/modules/web-console/frontend/app/components/list-of-registered-users/list-of-registered-users.controller.js
index f65958b..54971b1 100644
--- a/modules/web-console/frontend/app/components/list-of-registered-users/list-of-registered-users.controller.js
+++ b/modules/web-console/frontend/app/components/list-of-registered-users/list-of-registered-users.controller.js
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-import headerTemplate from 'app/components/ui-grid-header/ui-grid-header.jade';
+import headerTemplate from 'app/components/ui-grid-header/ui-grid-header.tpl.pug';
import columnDefs from './list-of-registered-users.column-defs';
import categories from './list-of-registered-users.categories';
@@ -30,9 +30,9 @@ const rowTemplate = `<div
ui-grid-cell/>`;
export default class IgniteListOfRegisteredUsersCtrl {
- static $inject = ['$scope', '$state', '$filter', '$templateCache', 'User', 'uiGridConstants', 'IgniteAdminData', 'IgniteNotebookData', 'IgniteConfirm', 'IgniteActivitiesUserDialog'];
+ static $inject = ['$scope', '$state', '$filter', 'User', 'uiGridConstants', 'IgniteAdminData', 'IgniteNotebookData', 'IgniteConfirm', 'IgniteActivitiesUserDialog'];
- constructor($scope, $state, $filter, $templateCache, User, uiGridConstants, AdminData, NotebookData, Confirm, ActivitiesUserDialog) {
+ constructor($scope, $state, $filter, User, uiGridConstants, AdminData, NotebookData, Confirm, ActivitiesUserDialog) {
const $ctrl = this;
const companySelectOptions = [];
@@ -110,7 +110,7 @@ export default class IgniteListOfRegisteredUsersCtrl {
columnVirtualizationThreshold: 30,
columnDefs,
categories,
- headerTemplate: $templateCache.get(headerTemplate),
+ headerTemplate,
rowTemplate,
enableFiltering: true,
enableRowSelection: true,
@@ -154,6 +154,9 @@ export default class IgniteListOfRegisteredUsersCtrl {
AdminData.loadUsers(params)
.then((data) => $ctrl.gridOptions.data = data)
.then((data) => {
+ companySelectOptions.length = 0;
+ countrySelectOptions.length = 0;
+
companySelectOptions.push(...usersToFilterOptions('company'));
countrySelectOptions.push(...usersToFilterOptions('countryCode'));
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/components/list-of-registered-users/list-of-registered-users.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/list-of-registered-users/list-of-registered-users.jade b/modules/web-console/frontend/app/components/list-of-registered-users/list-of-registered-users.jade
deleted file mode 100644
index 1195910..0000000
--- a/modules/web-console/frontend/app/components/list-of-registered-users/list-of-registered-users.jade
+++ /dev/null
@@ -1,58 +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.jade
-include /app/components/form-field-datepicker/form-field-datepicker.jade
-
-mixin grid-settings()
- i.fa.fa-bars(data-animation='am-flip-x' bs-dropdown='' aria-haspopup='true' aria-expanded='expanded' data-auto-close='1' data-trigger='click')
- ul.select.dropdown-menu(role='menu')
- li(ng-repeat='item in $ctrl.gridOptions.categories|filter:{selectable:true}')
- a(ng-click='$ctrl.toggleColumns(item, !item.visible)')
- i.fa.fa-check-square-o.pull-left(ng-if='item.visible')
- i.fa.fa-square-o.pull-left(ng-if='!item.visible')
- span {{::item.name}}
- li.divider
- li
- a(ng-click='$ctrl.selectAllColumns()') Select all
- li
- a(ng-click='$ctrl.clearAllColumns()') Clear all
- li.divider
- li
- a(ng-click='$hide()') Close
-
-.panel.panel-default
- .panel-heading.ui-grid-settings
- +grid-settings
- label Total users:
- strong {{ $ctrl.gridOptions.data.length }}
- label Showing users:
- strong {{ $ctrl.gridApi.grid.getVisibleRows().length }}
- sub(ng-show='users.length === $ctrl.gridApi.grid.getVisibleRows().length') all
-
- form.pull-right(ng-form=form novalidate)
- -var form = 'admin'
-
- button.btn.btn-primary(ng-click='$ctrl.exportCsv()' bs-tooltip data-title='Export table to csv') Export
-
- .ui-grid-settings-dateperiod
- +ignite-form-field-datepicker('Period:', '$ctrl.params.startDate', '"period"')
-
- .ui-grid-settings-filter
- +ignite-form-field-text('Exclude:', '$ctrl.params.companiesExclude', '"exclude"', false, false, 'Exclude by company name...')
-
- .panel-collapse
- .grid.ui-grid--ignite(ui-grid='$ctrl.gridOptions' ui-grid-resize-columns ui-grid-selection ui-grid-exporter ui-grid-pinning)
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/components/list-of-registered-users/list-of-registered-users.tpl.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/list-of-registered-users/list-of-registered-users.tpl.pug b/modules/web-console/frontend/app/components/list-of-registered-users/list-of-registered-users.tpl.pug
new file mode 100644
index 0000000..52975b9
--- /dev/null
+++ b/modules/web-console/frontend/app/components/list-of-registered-users/list-of-registered-users.tpl.pug
@@ -0,0 +1,58 @@
+//-
+ 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
+include /app/components/form-field-datepicker/form-field-datepicker.pug
+
+mixin grid-settings()
+ i.fa.fa-bars(data-animation='am-flip-x' bs-dropdown='' aria-haspopup='true' aria-expanded='expanded' data-auto-close='1' data-trigger='click')
+ ul.select.dropdown-menu(role='menu')
+ li(ng-repeat='item in $ctrl.gridOptions.categories|filter:{selectable:true}')
+ a(ng-click='$ctrl.toggleColumns(item, !item.visible)')
+ i.fa.fa-check-square-o.pull-left(ng-if='item.visible')
+ i.fa.fa-square-o.pull-left(ng-if='!item.visible')
+ span {{::item.name}}
+ li.divider
+ li
+ a(ng-click='$ctrl.selectAllColumns()') Select all
+ li
+ a(ng-click='$ctrl.clearAllColumns()') Clear all
+ li.divider
+ li
+ a(ng-click='$hide()') Close
+
+.panel.panel-default
+ .panel-heading.ui-grid-settings
+ +grid-settings
+ label Total users:
+ strong {{ $ctrl.gridOptions.data.length }}
+ label Showing users:
+ strong {{ $ctrl.gridApi.grid.getVisibleRows().length }}
+ sub(ng-show='users.length === $ctrl.gridApi.grid.getVisibleRows().length') all
+
+ form.pull-right(ng-form=form novalidate)
+ -var form = 'admin'
+
+ button.btn.btn-primary(ng-click='$ctrl.exportCsv()' bs-tooltip data-title='Export table to csv') Export
+
+ .ui-grid-settings-dateperiod
+ +ignite-form-field-datepicker('Period:', '$ctrl.params.startDate', '"period"')
+
+ .ui-grid-settings-filter
+ +ignite-form-field-text('Exclude:', '$ctrl.params.companiesExclude', '"exclude"', false, false, 'Exclude by company name...')
+
+ .panel-collapse
+ .grid.ui-grid--ignite(ui-grid='$ctrl.gridOptions' ui-grid-resize-columns ui-grid-selection ui-grid-exporter ui-grid-pinning)
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/components/ui-grid-header/ui-grid-header.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/ui-grid-header/ui-grid-header.jade b/modules/web-console/frontend/app/components/ui-grid-header/ui-grid-header.jade
deleted file mode 100644
index 7e44d94..0000000
--- a/modules/web-console/frontend/app/components/ui-grid-header/ui-grid-header.jade
+++ /dev/null
@@ -1,27 +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.
-
-.ui-grid-header.ui-grid-header--subcategories(role='rowgroup')
- .ui-grid-top-panel
- .ui-grid-header-viewport
- .ui-grid-header-canvas
- .ui-grid-header-cell-wrapper(ng-style='colContainer.headerCellWrapperStyle()')
- .ui-grid-header-cell-row(role='row')
- .ui-grid-header-span.ui-grid-header-cell.ui-grid-clearfix(ng-repeat='cat in grid.options.categories')
- div(ng-show='(colContainer.renderedColumns|uiGridSubcategories:cat.name).length > 1')
- .ui-grid-cell-contents {{ cat.name }}
- .ui-grid-header-cell-row
- .ui-grid-header-cell.ui-grid-clearfix(ng-repeat='col in (colContainer.renderedColumns|uiGridSubcategories:cat.name) track by col.uid' ui-grid-header-cell='' col='col' render-index='$index')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/components/ui-grid-header/ui-grid-header.scss
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/ui-grid-header/ui-grid-header.scss b/modules/web-console/frontend/app/components/ui-grid-header/ui-grid-header.scss
index c390504..c6e7bdf 100644
--- a/modules/web-console/frontend/app/components/ui-grid-header/ui-grid-header.scss
+++ b/modules/web-console/frontend/app/components/ui-grid-header/ui-grid-header.scss
@@ -50,6 +50,7 @@
.ui-grid-header-span {
position: relative;
border-right: 0;
+ background: #f5f5f5;
.ng-hide + .ui-grid-header-cell-row .ui-grid-header-cell {
height: 58px;
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/components/ui-grid-header/ui-grid-header.tpl.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/ui-grid-header/ui-grid-header.tpl.pug b/modules/web-console/frontend/app/components/ui-grid-header/ui-grid-header.tpl.pug
new file mode 100644
index 0000000..7e44d94
--- /dev/null
+++ b/modules/web-console/frontend/app/components/ui-grid-header/ui-grid-header.tpl.pug
@@ -0,0 +1,27 @@
+//-
+ 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.
+
+.ui-grid-header.ui-grid-header--subcategories(role='rowgroup')
+ .ui-grid-top-panel
+ .ui-grid-header-viewport
+ .ui-grid-header-canvas
+ .ui-grid-header-cell-wrapper(ng-style='colContainer.headerCellWrapperStyle()')
+ .ui-grid-header-cell-row(role='row')
+ .ui-grid-header-span.ui-grid-header-cell.ui-grid-clearfix(ng-repeat='cat in grid.options.categories')
+ div(ng-show='(colContainer.renderedColumns|uiGridSubcategories:cat.name).length > 1')
+ .ui-grid-cell-contents {{ cat.name }}
+ .ui-grid-header-cell-row
+ .ui-grid-header-cell.ui-grid-clearfix(ng-repeat='col in (colContainer.renderedColumns|uiGridSubcategories:cat.name) track by col.uid' ui-grid-header-cell='' col='col' render-index='$index')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/components/ui-grid-settings/ui-grid-settings.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/ui-grid-settings/ui-grid-settings.jade b/modules/web-console/frontend/app/components/ui-grid-settings/ui-grid-settings.jade
deleted file mode 100644
index 8f1487e..0000000
--- a/modules/web-console/frontend/app/components/ui-grid-settings/ui-grid-settings.jade
+++ /dev/null
@@ -1,33 +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.
-
-mixin ui-grid-settings()
- .ui-grid-settings
- i.fa.fa-bars(data-animation='am-flip-x' bs-dropdown='' aria-haspopup='true' aria-expanded='expanded' data-auto-close='1' data-trigger='click')
- ul.select.dropdown-menu(role='menu')
- li(ng-repeat='item in paragraph.gridOptions.categories|filter:{selectable:true}')
- a(ng-click='paragraph.toggleColumns(item, !item.visible)')
- i.fa.fa-check-square-o.pull-left(ng-if='item.visible')
- i.fa.fa-square-o.pull-left(ng-if='!item.visible')
- span {{::item.name}}
- li.divider
- li
- a(ng-click='paragraph.selectAllColumns()') Select all
- li
- a(ng-click='paragraph.clearAllColumns()') Clear all
- li.divider
- li
- a(ng-click='$hide()') Close
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/components/ui-grid-settings/ui-grid-settings.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/components/ui-grid-settings/ui-grid-settings.pug b/modules/web-console/frontend/app/components/ui-grid-settings/ui-grid-settings.pug
new file mode 100644
index 0000000..8f1487e
--- /dev/null
+++ b/modules/web-console/frontend/app/components/ui-grid-settings/ui-grid-settings.pug
@@ -0,0 +1,33 @@
+//-
+ 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.
+
+mixin ui-grid-settings()
+ .ui-grid-settings
+ i.fa.fa-bars(data-animation='am-flip-x' bs-dropdown='' aria-haspopup='true' aria-expanded='expanded' data-auto-close='1' data-trigger='click')
+ ul.select.dropdown-menu(role='menu')
+ li(ng-repeat='item in paragraph.gridOptions.categories|filter:{selectable:true}')
+ a(ng-click='paragraph.toggleColumns(item, !item.visible)')
+ i.fa.fa-check-square-o.pull-left(ng-if='item.visible')
+ i.fa.fa-square-o.pull-left(ng-if='!item.visible')
+ span {{::item.name}}
+ li.divider
+ li
+ a(ng-click='paragraph.selectAllColumns()') Select all
+ li
+ a(ng-click='paragraph.clearAllColumns()') Clear all
+ li.divider
+ li
+ a(ng-click='$hide()') Close
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/directives/centered/centered.css
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/directives/centered/centered.css b/modules/web-console/frontend/app/directives/centered/centered.css
deleted file mode 100644
index 694c1d2..0000000
--- a/modules/web-console/frontend/app/directives/centered/centered.css
+++ /dev/null
@@ -1,37 +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.
- */
-
-.center-container {
- position: fixed;
- top: 0;
- left: 0;
- height: 100%;
- width: 100%;
- display: table;
- pointer-events: none;
- z-index: 9999;
-}
-
-.centered {
- display: table-cell;
- vertical-align: middle;
- text-align: center;
-}
-
-.centered > * {
- pointer-events: auto;
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/directives/centered/centered.directive.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/directives/centered/centered.directive.js b/modules/web-console/frontend/app/directives/centered/centered.directive.js
index 4abd086..77bbb94 100644
--- a/modules/web-console/frontend/app/directives/centered/centered.directive.js
+++ b/modules/web-console/frontend/app/directives/centered/centered.directive.js
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-import './centered.css';
+import './centered.scss';
export default ['centered', [() => {
return {
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/directives/centered/centered.scss
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/directives/centered/centered.scss b/modules/web-console/frontend/app/directives/centered/centered.scss
new file mode 100644
index 0000000..694c1d2
--- /dev/null
+++ b/modules/web-console/frontend/app/directives/centered/centered.scss
@@ -0,0 +1,37 @@
+/*
+ * 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.
+ */
+
+.center-container {
+ position: fixed;
+ top: 0;
+ left: 0;
+ height: 100%;
+ width: 100%;
+ display: table;
+ pointer-events: none;
+ z-index: 9999;
+}
+
+.centered {
+ display: table-cell;
+ vertical-align: middle;
+ text-align: center;
+}
+
+.centered > * {
+ pointer-events: auto;
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/directives/information/information.directive.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/directives/information/information.directive.js b/modules/web-console/frontend/app/directives/information/information.directive.js
index a9a2f8c..6f304ef 100644
--- a/modules/web-console/frontend/app/directives/information/information.directive.js
+++ b/modules/web-console/frontend/app/directives/information/information.directive.js
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-import templateUrl from './information.jade';
+import template from './information.pug';
export default ['igniteInformation', [() => {
return {
@@ -23,7 +23,7 @@ export default ['igniteInformation', [() => {
title: '@'
},
restrict: 'E',
- templateUrl,
+ template,
replace: true,
transclude: true
};
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/directives/information/information.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/directives/information/information.jade b/modules/web-console/frontend/app/directives/information/information.jade
deleted file mode 100644
index b805d4a..0000000
--- a/modules/web-console/frontend/app/directives/information/information.jade
+++ /dev/null
@@ -1,20 +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.
-
-.block-information
- span.icon.fa.fa-info-circle(ng-if='title')
- h3(ng-if='title') {{::title}}
- div(ng-transclude='')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/directives/information/information.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/directives/information/information.pug b/modules/web-console/frontend/app/directives/information/information.pug
new file mode 100644
index 0000000..b805d4a
--- /dev/null
+++ b/modules/web-console/frontend/app/directives/information/information.pug
@@ -0,0 +1,20 @@
+//-
+ 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.
+
+.block-information
+ span.icon.fa.fa-info-circle(ng-if='title')
+ h3(ng-if='title') {{::title}}
+ div(ng-transclude='')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/directives/ui-ace-docker/ui-ace-docker.directive.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/directives/ui-ace-docker/ui-ace-docker.directive.js b/modules/web-console/frontend/app/directives/ui-ace-docker/ui-ace-docker.directive.js
index 08e4f76..9042acb 100644
--- a/modules/web-console/frontend/app/directives/ui-ace-docker/ui-ace-docker.directive.js
+++ b/modules/web-console/frontend/app/directives/ui-ace-docker/ui-ace-docker.directive.js
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-import templateUrl from './ui-ace-docker.jade';
+import template from './ui-ace-docker.pug';
import controller from './ui-ace-docker.controller';
export default ['igniteUiAceDocker', [() => {
@@ -38,7 +38,7 @@ export default ['igniteUiAceDocker', [() => {
data: '=ngModel'
},
link,
- templateUrl,
+ template,
controller,
controllerAs: 'ctrl',
require: ['?^igniteUiAceTabs']
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/directives/ui-ace-docker/ui-ace-docker.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/directives/ui-ace-docker/ui-ace-docker.jade b/modules/web-console/frontend/app/directives/ui-ace-docker/ui-ace-docker.jade
deleted file mode 100644
index 3a24cfb..0000000
--- a/modules/web-console/frontend/app/directives/ui-ace-docker/ui-ace-docker.jade
+++ /dev/null
@@ -1,31 +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.
-
-mixin hard-link(ref, txt)
- a(style='color:#ec1c24' href=ref target='_blank') #{txt}
-
-.panel-details-noborder
- .details-row
- p
- +hard-link('https://docs.docker.com/engine/reference/builder/', 'Docker')
- | file is a text file with instructions to create Docker image.<br/>
- | To build image you have to store following Docker file with your Ignite XML configuration to the same directory.<br>
- | Also you could use predefined
- +hard-link('https://ignite.apache.org/download.html#docker', 'Apache Ignite docker image')
- | . For more information about using Ignite with Docker please read
- +hard-link('http://apacheignite.readme.io/docs/docker-deployment', 'documentation')
- |.
- .details-row(ng-if='ctrl.data' ignite-ace='{onLoad: onLoad, mode: "dockerfile"}' ng-model='ctrl.data')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/directives/ui-ace-docker/ui-ace-docker.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/directives/ui-ace-docker/ui-ace-docker.pug b/modules/web-console/frontend/app/directives/ui-ace-docker/ui-ace-docker.pug
new file mode 100644
index 0000000..3a24cfb
--- /dev/null
+++ b/modules/web-console/frontend/app/directives/ui-ace-docker/ui-ace-docker.pug
@@ -0,0 +1,31 @@
+//-
+ 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.
+
+mixin hard-link(ref, txt)
+ a(style='color:#ec1c24' href=ref target='_blank') #{txt}
+
+.panel-details-noborder
+ .details-row
+ p
+ +hard-link('https://docs.docker.com/engine/reference/builder/', 'Docker')
+ | file is a text file with instructions to create Docker image.<br/>
+ | To build image you have to store following Docker file with your Ignite XML configuration to the same directory.<br>
+ | Also you could use predefined
+ +hard-link('https://ignite.apache.org/download.html#docker', 'Apache Ignite docker image')
+ | . For more information about using Ignite with Docker please read
+ +hard-link('http://apacheignite.readme.io/docs/docker-deployment', 'documentation')
+ |.
+ .details-row(ng-if='ctrl.data' ignite-ace='{onLoad: onLoad, mode: "dockerfile"}' ng-model='ctrl.data')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/directives/ui-ace-java/ui-ace-java.directive.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/directives/ui-ace-java/ui-ace-java.directive.js b/modules/web-console/frontend/app/directives/ui-ace-java/ui-ace-java.directive.js
index c21bff7..5f43b23 100644
--- a/modules/web-console/frontend/app/directives/ui-ace-java/ui-ace-java.directive.js
+++ b/modules/web-console/frontend/app/directives/ui-ace-java/ui-ace-java.directive.js
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-import templateUrl from './ui-ace-java.jade';
+import template from './ui-ace-java.pug';
import controller from './ui-ace-java.controller';
export default ['igniteUiAceJava', [() => {
@@ -55,7 +55,7 @@ export default ['igniteUiAceJava', [() => {
client: '@'
},
link,
- templateUrl,
+ template,
controller,
controllerAs: 'ctrl',
require: ['igniteUiAceJava', '?^igniteUiAceTabs', '?^form', '?ngModel']
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/directives/ui-ace-java/ui-ace-java.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/directives/ui-ace-java/ui-ace-java.jade b/modules/web-console/frontend/app/directives/ui-ace-java/ui-ace-java.jade
deleted file mode 100644
index 5acffb8..0000000
--- a/modules/web-console/frontend/app/directives/ui-ace-java/ui-ace-java.jade
+++ /dev/null
@@ -1,22 +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.
-
-div(ng-if='ctrl.data'
- ignite-ace='{onLoad: onLoad, \
- onChange: onChange, \
- renderOptions: renderOptions, \
- mode: "java"}'
- ng-model='ctrl.data')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/directives/ui-ace-java/ui-ace-java.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/directives/ui-ace-java/ui-ace-java.pug b/modules/web-console/frontend/app/directives/ui-ace-java/ui-ace-java.pug
new file mode 100644
index 0000000..5acffb8
--- /dev/null
+++ b/modules/web-console/frontend/app/directives/ui-ace-java/ui-ace-java.pug
@@ -0,0 +1,22 @@
+//-
+ 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.
+
+div(ng-if='ctrl.data'
+ ignite-ace='{onLoad: onLoad, \
+ onChange: onChange, \
+ renderOptions: renderOptions, \
+ mode: "java"}'
+ ng-model='ctrl.data')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/directives/ui-ace-pojos/ui-ace-pojos.directive.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/directives/ui-ace-pojos/ui-ace-pojos.directive.js b/modules/web-console/frontend/app/directives/ui-ace-pojos/ui-ace-pojos.directive.js
index 7c224b7..8a8d047 100644
--- a/modules/web-console/frontend/app/directives/ui-ace-pojos/ui-ace-pojos.directive.js
+++ b/modules/web-console/frontend/app/directives/ui-ace-pojos/ui-ace-pojos.directive.js
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-import templateUrl from './ui-ace-pojos.jade';
+import template from './ui-ace-pojos.pug';
import controller from './ui-ace-pojos.controller';
export default ['igniteUiAcePojos', [() => {
@@ -38,7 +38,7 @@ export default ['igniteUiAcePojos', [() => {
pojos: '=ngModel'
},
link,
- templateUrl,
+ template,
controller,
controllerAs: 'ctrl',
require: ['?^igniteUiAceTabs']
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/directives/ui-ace-pojos/ui-ace-pojos.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/directives/ui-ace-pojos/ui-ace-pojos.jade b/modules/web-console/frontend/app/directives/ui-ace-pojos/ui-ace-pojos.jade
deleted file mode 100644
index 581b8c1..0000000
--- a/modules/web-console/frontend/app/directives/ui-ace-pojos/ui-ace-pojos.jade
+++ /dev/null
@@ -1,40 +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.
-
-mixin check-tooltip(message)
- i.tipLabel.icon-help(bs-tooltip='"#{message}"')
-
-.panel-details-noborder
- .details-row
- .col-xs-2.col-sm-2.col-md-2
- label POJO class:
- .col-xs-10.col-sm-10.col-md-10.summary-pojo-list
- button.select-toggle.form-control(ng-model='ctrl.class' bs-select bs-options='item for item in ctrl.classes' data-container='')
- .details-row.checkbox
- .col-xs-2.col-sm-2.col-md-2
- .col-xs-10.col-sm-10.col-md-10
- label
- input(type='checkbox' ng-model='ctrl.useConstructor')
- | Generate constructors
- +check-tooltip("Generate empty and full constructors in POJO classes")
- .details-row.checkbox
- .col-xs-2.col-sm-2.col-md-2
- .col-xs-10.col-sm-10.col-md-10
- label
- input(type='checkbox' ng-model='ctrl.includeKeyFields')
- | Include key fields
- +check-tooltip("Generate key fields in POJO value class")
- .details-row(ng-if='ctrl.data' ignite-ace='{onLoad: onLoad, mode: "java"}' ng-model='ctrl.data')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/directives/ui-ace-pojos/ui-ace-pojos.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/directives/ui-ace-pojos/ui-ace-pojos.pug b/modules/web-console/frontend/app/directives/ui-ace-pojos/ui-ace-pojos.pug
new file mode 100644
index 0000000..4bee5e5
--- /dev/null
+++ b/modules/web-console/frontend/app/directives/ui-ace-pojos/ui-ace-pojos.pug
@@ -0,0 +1,40 @@
+//-
+ 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.
+
+mixin check-tooltip(message)
+ i.tipLabel.icon-help(bs-tooltip=`"${message}"`)
+
+.panel-details-noborder
+ .details-row
+ .col-xs-2.col-sm-2.col-md-2
+ label POJO class:
+ .col-xs-10.col-sm-10.col-md-10.summary-pojo-list
+ button.select-toggle.form-control(ng-model='ctrl.class' bs-select bs-options='item for item in ctrl.classes' data-container='')
+ .details-row.checkbox
+ .col-xs-2.col-sm-2.col-md-2
+ .col-xs-10.col-sm-10.col-md-10
+ label
+ input(type='checkbox' ng-model='ctrl.useConstructor')
+ | Generate constructors
+ +check-tooltip("Generate empty and full constructors in POJO classes")
+ .details-row.checkbox
+ .col-xs-2.col-sm-2.col-md-2
+ .col-xs-10.col-sm-10.col-md-10
+ label
+ input(type='checkbox' ng-model='ctrl.includeKeyFields')
+ | Include key fields
+ +check-tooltip("Generate key fields in POJO value class")
+ .details-row(ng-if='ctrl.data' ignite-ace='{onLoad: onLoad, mode: "java"}' ng-model='ctrl.data')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/directives/ui-ace-pom/ui-ace-pom.directive.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/directives/ui-ace-pom/ui-ace-pom.directive.js b/modules/web-console/frontend/app/directives/ui-ace-pom/ui-ace-pom.directive.js
index 2a7a878..664d3a0 100644
--- a/modules/web-console/frontend/app/directives/ui-ace-pom/ui-ace-pom.directive.js
+++ b/modules/web-console/frontend/app/directives/ui-ace-pom/ui-ace-pom.directive.js
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-import templateUrl from './ui-ace-pom.jade';
+import template from './ui-ace-pom.pug';
import controller from './ui-ace-pom.controller';
export default ['igniteUiAcePom', [() => {
@@ -33,7 +33,7 @@ export default ['igniteUiAcePom', [() => {
cluster: '='
},
link,
- templateUrl,
+ template,
controller,
controllerAs: 'ctrl',
require: ['?^igniteUiAceTabs']
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/directives/ui-ace-pom/ui-ace-pom.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/directives/ui-ace-pom/ui-ace-pom.jade b/modules/web-console/frontend/app/directives/ui-ace-pom/ui-ace-pom.jade
deleted file mode 100644
index b973a74..0000000
--- a/modules/web-console/frontend/app/directives/ui-ace-pom/ui-ace-pom.jade
+++ /dev/null
@@ -1,17 +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.
-
-div(ng-if='ctrl.data' ignite-ace='{onLoad: onLoad, mode: "xml"}' ng-model='ctrl.data')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/directives/ui-ace-pom/ui-ace-pom.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/directives/ui-ace-pom/ui-ace-pom.pug b/modules/web-console/frontend/app/directives/ui-ace-pom/ui-ace-pom.pug
new file mode 100644
index 0000000..b973a74
--- /dev/null
+++ b/modules/web-console/frontend/app/directives/ui-ace-pom/ui-ace-pom.pug
@@ -0,0 +1,17 @@
+//-
+ 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.
+
+div(ng-if='ctrl.data' ignite-ace='{onLoad: onLoad, mode: "xml"}' ng-model='ctrl.data')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/directives/ui-ace-sharp/ui-ace-sharp.directive.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/directives/ui-ace-sharp/ui-ace-sharp.directive.js b/modules/web-console/frontend/app/directives/ui-ace-sharp/ui-ace-sharp.directive.js
index 5d9ad79..5a37b80 100644
--- a/modules/web-console/frontend/app/directives/ui-ace-sharp/ui-ace-sharp.directive.js
+++ b/modules/web-console/frontend/app/directives/ui-ace-sharp/ui-ace-sharp.directive.js
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-import templateUrl from './ui-ace-sharp.jade';
+import template from './ui-ace-sharp.pug';
import controller from './ui-ace-sharp.controller';
export default ['igniteUiAceSharp', ['IgniteSharpTransformer', (generator) => {
@@ -125,7 +125,7 @@ export default ['igniteUiAceSharp', ['IgniteSharpTransformer', (generator) => {
data: '=?ngModel'
},
link,
- templateUrl,
+ template,
controller,
controllerAs: 'ctrl',
require: ['igniteUiAceSharp', '?^igniteUiAceTabs', '?^form', '?ngModel']
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/directives/ui-ace-sharp/ui-ace-sharp.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/directives/ui-ace-sharp/ui-ace-sharp.jade b/modules/web-console/frontend/app/directives/ui-ace-sharp/ui-ace-sharp.jade
deleted file mode 100644
index d3f9e44..0000000
--- a/modules/web-console/frontend/app/directives/ui-ace-sharp/ui-ace-sharp.jade
+++ /dev/null
@@ -1,22 +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.
-
-div(ng-if='ctrl.data'
- ignite-ace='{onLoad: onLoad, \
- onChange: onChange, \
- renderOptions: renderOptions, \
- mode: "csharp"}'
- ng-model='ctrl.data')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/directives/ui-ace-sharp/ui-ace-sharp.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/directives/ui-ace-sharp/ui-ace-sharp.pug b/modules/web-console/frontend/app/directives/ui-ace-sharp/ui-ace-sharp.pug
new file mode 100644
index 0000000..d3f9e44
--- /dev/null
+++ b/modules/web-console/frontend/app/directives/ui-ace-sharp/ui-ace-sharp.pug
@@ -0,0 +1,22 @@
+//-
+ 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.
+
+div(ng-if='ctrl.data'
+ ignite-ace='{onLoad: onLoad, \
+ onChange: onChange, \
+ renderOptions: renderOptions, \
+ mode: "csharp"}'
+ ng-model='ctrl.data')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/directives/ui-ace-spring/ui-ace-spring.directive.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/directives/ui-ace-spring/ui-ace-spring.directive.js b/modules/web-console/frontend/app/directives/ui-ace-spring/ui-ace-spring.directive.js
index 42d25b6..de3f434 100644
--- a/modules/web-console/frontend/app/directives/ui-ace-spring/ui-ace-spring.directive.js
+++ b/modules/web-console/frontend/app/directives/ui-ace-spring/ui-ace-spring.directive.js
@@ -17,7 +17,7 @@
import _ from 'lodash';
-import templateUrl from './ui-ace-spring.jade';
+import template from './ui-ace-spring.pug';
import controller from './ui-ace-spring.controller';
export default ['igniteUiAceSpring', [() => {
@@ -58,7 +58,7 @@ export default ['igniteUiAceSpring', [() => {
client: '@'
},
link,
- templateUrl,
+ template,
controller,
controllerAs: 'ctrl',
require: ['igniteUiAceSpring', '?^igniteUiAceTabs', '?^form', '?ngModel']
[06/15] ignite git commit: IGNITE-4659 Migration to Webpack 2.
Upgrade template engine from jade to pug.
Posted by an...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/odbc.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/odbc.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/odbc.jade
deleted file mode 100644
index 101a11c..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/odbc.jade
+++ /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.
-
-include /app/helpers/jade/mixins.jade
-
--var form = 'odbcConfiguration'
--var model = 'backupItem.odbc'
--var enabled = model + '.odbcEnabled'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label ODBC configuration
- ignite-form-field-tooltip.tipLabel
- | ODBC server configuration#[br]
- | #[a(href="https://apacheignite.readme.io/docs/odbc-driver" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +checkbox('Enabled', enabled, '"odbcEnabled"', 'Flag indicating whether to configure ODBC configuration')
- .settings-row
- +text-ip-address-with-port-range('ODBC endpoint address:', model + '.endpointAddress', '"endpointAddress"', enabled, '0.0.0.0:10800..10810',
- 'ODBC endpoint address. <br/>\
- The following address formats are permitted:\
- <ul>\
- <li>hostname - will use provided hostname and default port range</li>\
- <li>hostname:port - will use provided hostname and port</li>\
- <li>hostname:port_from..port_to - will use provided hostname and port range</li>\
- </ul>')
- .settings-row
- +number('Maximum open cursors', model + '.maxOpenCursors', '"maxOpenCursors"', enabled, '128', '1', 'Maximum number of opened cursors per connection')
- .col-sm-6
- +preview-xml-java(model, 'clusterODBC')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/odbc.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/odbc.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/odbc.pug
new file mode 100644
index 0000000..a69c7ad
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/odbc.pug
@@ -0,0 +1,48 @@
+//-
+ 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
+
+-var form = 'odbcConfiguration'
+-var model = 'backupItem.odbc'
+-var enabled = model + '.odbcEnabled'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label ODBC configuration
+ ignite-form-field-tooltip.tipLabel
+ | ODBC server configuration#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/odbc-driver" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +checkbox('Enabled', enabled, '"odbcEnabled"', 'Flag indicating whether to configure ODBC configuration')
+ .settings-row
+ +text-ip-address-with-port-range('ODBC endpoint address:', `${model}.endpointAddress`, '"endpointAddress"', enabled, '0.0.0.0:10800..10810',
+ 'ODBC endpoint address. <br/>\
+ The following address formats are permitted:\
+ <ul>\
+ <li>hostname - will use provided hostname and default port range</li>\
+ <li>hostname:port - will use provided hostname and port</li>\
+ <li>hostname:port_from..port_to - will use provided hostname and port range</li>\
+ </ul>')
+ .settings-row
+ +number('Maximum open cursors', `${model}.maxOpenCursors`, '"maxOpenCursors"', enabled, '128', '1', 'Maximum number of opened cursors per connection')
+ .col-sm-6
+ +preview-xml-java(model, 'clusterODBC')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/ssl.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/ssl.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/ssl.jade
deleted file mode 100644
index fbd979c..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/ssl.jade
+++ /dev/null
@@ -1,110 +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.jade
-
--var form = 'sslConfiguration'
--var cluster = 'backupItem'
--var enabled = 'backupItem.sslEnabled'
--var model = cluster + '.sslContextFactory'
--var trust = model + '.trustManagers'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label(id='sslConfiguration-title') SSL configuration
- ignite-form-field-tooltip.tipLabel
- | Settings for SSL configuration for creating a secure socket layer#[br]
- | #[a(href="https://apacheignite.readme.io/docs/ssltls" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +checkbox('Enabled', enabled, '"sslEnabled"', 'Flag indicating whether to configure SSL configuration')
- .settings-row
- +text-options('Algorithm to create a key manager:', model + '.keyAlgorithm', '"keyAlgorithm"', '["SumX509", "X509"]', enabled, 'false', 'SumX509',
- 'Sets key manager algorithm that will be used to create a key manager<br/>\
- Notice that in most cased default value suites well, however, on Android platform this value need to be set to X509')
- .settings-row
- +text-enabled('Key store file:', model + '.keyStoreFilePath', '"keyStoreFilePath"', enabled, enabled, 'Path to the key store file',
- 'Path to the key store file<br/>\
- This is a mandatory parameter since ssl context could not be initialized without key manager')
- .settings-row
- +text-options('Key store type:', model + '.keyStoreType', '"keyStoreType"', '["JKS", "PCKS11", "PCKS12"]', enabled, 'false', 'JKS',
- 'Key store type used in context initialization')
- .settings-row
- +text-options('Protocol:', model + '.protocol', '"protocol"', '["TSL", "SSL"]', enabled, 'false', 'TSL', 'Protocol for secure transport')
- .settings-row
- -var form = 'trustManagers'
-
- +ignite-form-group(ng-form=form ng-model=trust)
- -var uniqueTip = 'Such trust manager already exists!'
-
- ignite-form-field-label
- | Trust managers
- ignite-form-group-tooltip
- | Pre-configured trust managers
- ignite-form-group-add(ng-show='#{enabled}' ng-click='(group.add = [{}])')
- | Add new trust manager
-
- .group-content(ng-if='#{trust}.length')
- -var model = 'obj.model';
- -var name = '"edit" + $index'
- -var valid = form + '[' + name + '].$valid'
- -var save = trust + '[$index] = ' + model
-
- div(ng-show=enabled)
- div(ng-repeat='model in #{trust} track by $index' ng-init='obj = {}')
- label.col-xs-12.col-sm-12.col-md-12
- .indexField
- | {{ $index+1 }})
- +table-remove-conditional-button(trust, enabled, 'Remove trust manager', 'model')
- span(ng-hide='field.edit')
- a.labelFormField(ng-click='#{enabled} && (field.edit = true) && (#{model} = model)') {{ model }}
- span(ng-if='field.edit')
- +table-java-class-field('Trust manager', name, model, trust, valid, save, false)
- +table-save-button(valid, save, false)
- +unique-feedback(name, uniqueTip)
- div(ng-hide=enabled)
- div(ng-repeat='model in #{trust} track by $index')
- label.col-xs-12.col-sm-12.col-md-12
- .labelFormField.labelField
- | {{ $index+1 }})
- span.labelFormField
- | {{ model }}
-
- .group-content(ng-repeat='field in group.add')
- -var model = 'new';
- -var name = '"new"'
- -var valid = form + '[' + name + '].$valid'
- -var save = trust + '.push(' + model + ')'
-
- div
- label.col-xs-12.col-sm-12.col-md-12
- +table-java-class-field('Trust manager', name, model, trust, valid, save, true)
- +table-save-button(valid, save, true)
- +unique-feedback(name, uniqueTip)
-
- .group-content-empty(ng-if='!(#{trust}.length) && !group.add.length')
- | Not defined
-
- .settings-row(ng-show='!#{trust}.length')
- +text-enabled('Trust store file:', model + '.trustStoreFilePath', '"trustStoreFilePath"', enabled, 'false', 'Path to the trust store file', 'Path to the trust store file')
- .settings-row(ng-show='!#{trust}.length')
- +text-options('Trust store type:', model + '.trustStoreType', '"trustStoreType"', '["JKS", "PCKS11", "PCKS12"]', enabled, 'false', 'JKS', 'Trust store type used in context initialization')
- .col-sm-6
- +preview-xml-java(cluster, 'clusterSsl')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/ssl.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/ssl.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/ssl.pug
new file mode 100644
index 0000000..dcb3b21
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/ssl.pug
@@ -0,0 +1,110 @@
+//-
+ 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
+
+-var form = 'sslConfiguration'
+-var cluster = 'backupItem'
+-var enabled = 'backupItem.sslEnabled'
+-var model = cluster + '.sslContextFactory'
+-var trust = model + '.trustManagers'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label(id='sslConfiguration-title') SSL configuration
+ ignite-form-field-tooltip.tipLabel
+ | Settings for SSL configuration for creating a secure socket layer#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/ssltls" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +checkbox('Enabled', enabled, '"sslEnabled"', 'Flag indicating whether to configure SSL configuration')
+ .settings-row
+ +text-options('Algorithm to create a key manager:', `${model}.keyAlgorithm`, '"keyAlgorithm"', '["SumX509", "X509"]', enabled, 'false', 'SumX509',
+ 'Sets key manager algorithm that will be used to create a key manager<br/>\
+ Notice that in most cased default value suites well, however, on Android platform this value need to be set to X509')
+ .settings-row
+ +text-enabled('Key store file:', `${model}.keyStoreFilePath`, '"keyStoreFilePath"', enabled, enabled, 'Path to the key store file',
+ 'Path to the key store file<br/>\
+ This is a mandatory parameter since ssl context could not be initialized without key manager')
+ .settings-row
+ +text-options('Key store type:', `${model}.keyStoreType`, '"keyStoreType"', '["JKS", "PCKS11", "PCKS12"]', enabled, 'false', 'JKS',
+ 'Key store type used in context initialization')
+ .settings-row
+ +text-options('Protocol:', `${model}.protocol`, '"protocol"', '["TSL", "SSL"]', enabled, 'false', 'TSL', 'Protocol for secure transport')
+ .settings-row
+ -var form = 'trustManagers'
+
+ +ignite-form-group(ng-form=form ng-model=trust)
+ -var uniqueTip = 'Such trust manager already exists!'
+
+ ignite-form-field-label
+ | Trust managers
+ ignite-form-group-tooltip
+ | Pre-configured trust managers
+ ignite-form-group-add(ng-show=`${enabled}` ng-click='(group.add = [{}])')
+ | Add new trust manager
+
+ .group-content(ng-if=`${trust}.length`)
+ -var model = 'obj.model';
+ -var name = '"edit" + $index'
+ -var valid = `${form}[${name}].$valid`
+ -var save = `${trust}[$index] = ${model}`
+
+ div(ng-show=enabled)
+ div(ng-repeat=`model in ${trust} track by $index` ng-init='obj = {}')
+ label.col-xs-12.col-sm-12.col-md-12
+ .indexField
+ | {{ $index+1 }})
+ +table-remove-conditional-button(trust, enabled, 'Remove trust manager', 'model')
+ span(ng-hide='field.edit')
+ a.labelFormField(ng-click=`${enabled} && (field.edit = true) && (${model} = model)`) {{ model }}
+ span(ng-if='field.edit')
+ +table-java-class-field('Trust manager', name, model, trust, valid, save, false)
+ +table-save-button(valid, save, false)
+ +unique-feedback(name, uniqueTip)
+ div(ng-hide=enabled)
+ div(ng-repeat=`model in ${trust} track by $index`)
+ label.col-xs-12.col-sm-12.col-md-12
+ .labelFormField.labelField
+ | {{ $index+1 }})
+ span.labelFormField
+ | {{ model }}
+
+ .group-content(ng-repeat='field in group.add')
+ -var model = 'new';
+ -var name = '"new"'
+ -var valid = `${form}[${name}].$valid`
+ -var save = `${trust}.push(${model})`
+
+ div
+ label.col-xs-12.col-sm-12.col-md-12
+ +table-java-class-field('Trust manager', name, model, trust, valid, save, true)
+ +table-save-button(valid, save, true)
+ +unique-feedback(name, uniqueTip)
+
+ .group-content-empty(ng-if=`!(${trust}.length) && !group.add.length`)
+ | Not defined
+
+ .settings-row(ng-show=`!${trust}.length`)
+ +text-enabled('Trust store file:', `${model}.trustStoreFilePath`, '"trustStoreFilePath"', enabled, 'false', 'Path to the trust store file', 'Path to the trust store file')
+ .settings-row(ng-show=`!${trust}.length`)
+ +text-options('Trust store type:', `${model}.trustStoreType`, '"trustStoreType"', '["JKS", "PCKS11", "PCKS12"]', enabled, 'false', 'JKS', 'Trust store type used in context initialization')
+ .col-sm-6
+ +preview-xml-java(cluster, 'clusterSsl')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/swap.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/swap.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/swap.jade
deleted file mode 100644
index 8071f3c..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/swap.jade
+++ /dev/null
@@ -1,72 +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.jade
-
--var form = 'swap'
--var model = 'backupItem'
--var swapModel = model + '.swapSpaceSpi'
--var fileSwapModel = swapModel + '.FileSwapSpaceSpi'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Swap
- ignite-form-field-tooltip.tipLabel
- | Settings for overflow data to disk if it cannot fit in memory#[br]
- | #[a(href="https://apacheignite.readme.io/docs/off-heap-memory#swap-space" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +dropdown('Swap space SPI:', swapModel + '.kind', '"swapSpaceSpi"', 'true', 'Choose swap SPI',
- '[\
- {value: "FileSwapSpaceSpi", label: "File-based swap"},\
- {value: undefined, label: "Not set"}\
- ]',
- 'Provides a mechanism in grid for storing data on disk<br/>\
- Ignite cache uses swap space to overflow data to disk if it cannot fit in memory\
- <ul>\
- <li>File-based swap - File-based swap space SPI implementation which holds keys in memory</li>\
- <li>Not set - File-based swap space SPI with default configuration when it needed</li>\
- </ul>')
- a.customize(
- ng-if='#{swapModel}.kind'
- ng-click='#{swapModel}.expanded = !#{swapModel}.expanded'
- ) {{ #{swapModel}.expanded ? "Hide settings" : "Show settings"}}
- .settings-row
- .panel-details(ng-show='#{swapModel}.expanded && #{swapModel}.kind')
- .details-row
- +text('Base directory:', fileSwapModel + '.baseDirectory', '"baseDirectory"', 'false', 'swapspace',
- 'Base directory where to write files')
- .details-row
- +number('Read stripe size:', fileSwapModel + '.readStripesNumber', '"readStripesNumber"', 'true', 'availableProcessors', '0',
- 'Read stripe size defines number of file channels to be used concurrently')
- .details-row
- +number-min-max-step('Maximum sparsity:', fileSwapModel + '.maximumSparsity', '"maximumSparsity"', 'true', '0.5', '0', '0.999', '0.05',
- 'This property defines maximum acceptable wasted file space to whole file size ratio<br/>\
- When this ratio becomes higher than specified number compacting thread starts working')
- .details-row
- +number('Max write queue size:', fileSwapModel + '.maxWriteQueueSize', '"maxWriteQueueSize"', 'true', '1024 * 1024', '0',
- 'Max write queue size in bytes<br/>\
- If there are more values are waiting for being written to disk then specified size, SPI will block on store operation')
- .details-row
- +number('Write buffer size:', fileSwapModel + '.writeBufferSize', '"writeBufferSize"', 'true', '64 * 1024', '0',
- 'Write buffer size in bytes<br/>\
- Write to disk occurs only when this buffer is full')
- .col-sm-6
- +preview-xml-java(model, 'clusterSwap')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/swap.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/swap.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/swap.pug
new file mode 100644
index 0000000..54b6db0
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/swap.pug
@@ -0,0 +1,72 @@
+//-
+ 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
+
+-var form = 'swap'
+-var model = 'backupItem'
+-var swapModel = model + '.swapSpaceSpi'
+-var fileSwapModel = swapModel + '.FileSwapSpaceSpi'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Swap
+ ignite-form-field-tooltip.tipLabel
+ | Settings for overflow data to disk if it cannot fit in memory#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/off-heap-memory#swap-space" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +dropdown('Swap space SPI:', `${swapModel}.kind`, '"swapSpaceSpi"', 'true', 'Choose swap SPI',
+ '[\
+ {value: "FileSwapSpaceSpi", label: "File-based swap"},\
+ {value: undefined, label: "Not set"}\
+ ]',
+ 'Provides a mechanism in grid for storing data on disk<br/>\
+ Ignite cache uses swap space to overflow data to disk if it cannot fit in memory\
+ <ul>\
+ <li>File-based swap - File-based swap space SPI implementation which holds keys in memory</li>\
+ <li>Not set - File-based swap space SPI with default configuration when it needed</li>\
+ </ul>')
+ a.customize(
+ ng-if=`${swapModel}.kind`
+ ng-click=`${swapModel}.expanded = !${swapModel}.expanded`
+ ) {{ #{swapModel}.expanded ? 'Hide settings' : 'Show settings'}}
+ .settings-row
+ .panel-details(ng-show=`${swapModel}.expanded && ${swapModel}.kind`)
+ .details-row
+ +text('Base directory:', `${fileSwapModel}.baseDirectory`, '"baseDirectory"', 'false', 'swapspace',
+ 'Base directory where to write files')
+ .details-row
+ +number('Read stripe size:', `${fileSwapModel}.readStripesNumber`, '"readStripesNumber"', 'true', 'availableProcessors', '0',
+ 'Read stripe size defines number of file channels to be used concurrently')
+ .details-row
+ +number-min-max-step('Maximum sparsity:', `${fileSwapModel}.maximumSparsity`, '"maximumSparsity"', 'true', '0.5', '0', '0.999', '0.05',
+ 'This property defines maximum acceptable wasted file space to whole file size ratio<br/>\
+ When this ratio becomes higher than specified number compacting thread starts working')
+ .details-row
+ +number('Max write queue size:', `${fileSwapModel}.maxWriteQueueSize`, '"maxWriteQueueSize"', 'true', '1024 * 1024', '0',
+ 'Max write queue size in bytes<br/>\
+ If there are more values are waiting for being written to disk then specified size, SPI will block on store operation')
+ .details-row
+ +number('Write buffer size:', `${fileSwapModel}.writeBufferSize`, '"writeBufferSize"', 'true', '64 * 1024', '0',
+ 'Write buffer size in bytes<br/>\
+ Write to disk occurs only when this buffer is full')
+ .col-sm-6
+ +preview-xml-java(model, 'clusterSwap')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/thread.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/thread.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/thread.jade
deleted file mode 100644
index d2bea86..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/thread.jade
+++ /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.
-
-include /app/helpers/jade/mixins.jade
-
--var form = 'pools'
--var model = 'backupItem'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Thread pools size
- ignite-form-field-tooltip.tipLabel
- | Settings for node thread pools
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +number('Public:', model + '.publicThreadPoolSize', '"publicThreadPoolSize"', 'true', 'max(8, availableProcessors) * 2', '1',
- 'Thread pool that is in charge of processing ComputeJob, GridJobs and user messages sent to node')
- .settings-row
- +number('System:', model + '.systemThreadPoolSize', '"systemThreadPoolSize"', 'true', 'max(8, availableProcessors) * 2', '1',
- 'Thread pool that is in charge of processing internal system messages')
- .settings-row
- +number('Management:', model + '.managementThreadPoolSize', '"managementThreadPoolSize"', 'true', '4', '1',
- 'Thread pool that is in charge of processing internal and Visor ComputeJob, GridJobs')
- .settings-row
- +number('IGFS:', model + '.igfsThreadPoolSize', '"igfsThreadPoolSize"', 'true', 'availableProcessors', '1',
- 'Thread pool that is in charge of processing outgoing IGFS messages')
- .settings-row
- +number('Rebalance:', model + '.rebalanceThreadPoolSize', '"rebalanceThreadPoolSize"', 'true', '1', '1',
- 'Max count of threads can be used at rebalancing')
- .col-sm-6
- +preview-xml-java(model, 'clusterPools')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/thread.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/thread.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/thread.pug
new file mode 100644
index 0000000..31dd333
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/thread.pug
@@ -0,0 +1,48 @@
+//-
+ 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
+
+-var form = 'pools'
+-var model = 'backupItem'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Thread pools size
+ ignite-form-field-tooltip.tipLabel
+ | Settings for node thread pools
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +number('Public:', `${model}.publicThreadPoolSize`, '"publicThreadPoolSize"', 'true', 'max(8, availableProcessors) * 2', '1',
+ 'Thread pool that is in charge of processing ComputeJob, GridJobs and user messages sent to node')
+ .settings-row
+ +number('System:', `${model}.systemThreadPoolSize`, '"systemThreadPoolSize"', 'true', 'max(8, availableProcessors) * 2', '1',
+ 'Thread pool that is in charge of processing internal system messages')
+ .settings-row
+ +number('Management:', `${model}.managementThreadPoolSize`, '"managementThreadPoolSize"', 'true', '4', '1',
+ 'Thread pool that is in charge of processing internal and Visor ComputeJob, GridJobs')
+ .settings-row
+ +number('IGFS:', `${model}.igfsThreadPoolSize`, '"igfsThreadPoolSize"', 'true', 'availableProcessors', '1',
+ 'Thread pool that is in charge of processing outgoing IGFS messages')
+ .settings-row
+ +number('Rebalance:', `${model}.rebalanceThreadPoolSize`, '"rebalanceThreadPoolSize"', 'true', '1', '1',
+ 'Max count of threads can be used at rebalancing')
+ .col-sm-6
+ +preview-xml-java(model, 'clusterPools')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/time.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/time.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/time.jade
deleted file mode 100644
index bcb1cb7..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/time.jade
+++ /dev/null
@@ -1,47 +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.jade
-
--var form = 'time'
--var model = 'backupItem'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Time configuration
- ignite-form-field-tooltip.tipLabel
- | Time settings for CLOCK write ordering mode
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +number('Samples size:', model + '.clockSyncSamples', '"clockSyncSamples"', 'true', '8', '0',
- 'Number of samples used to synchronize clocks between different nodes<br/>\
- Clock synchronization is used for cache version assignment in CLOCK order mode')
- .settings-row
- +number('Frequency:', model + '.clockSyncFrequency', '"clockSyncFrequency"', 'true', '120000', '0',
- 'Frequency at which clock is synchronized between nodes, in milliseconds<br/>\
- Clock synchronization is used for cache version assignment in CLOCK order mode')
- .settings-row
- +number-min-max('Port base:', model + '.timeServerPortBase', '"timeServerPortBase"', 'true', '31100', '0', '65535',
- 'Time server provides clock synchronization between nodes<br/>\
- Base UPD port number for grid time server. Time server will be started on one of free ports in range')
- .settings-row
- +number('Port range:', model + '.timeServerPortRange', '"timeServerPortRange"', 'true', '100', '1', 'Time server port range')
- .col-sm-6
- +preview-xml-java(model, 'clusterTime')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/time.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/time.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/time.pug
new file mode 100644
index 0000000..da781ba
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/time.pug
@@ -0,0 +1,47 @@
+//-
+ 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
+
+-var form = 'time'
+-var model = 'backupItem'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Time configuration
+ ignite-form-field-tooltip.tipLabel
+ | Time settings for CLOCK write ordering mode
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +number('Samples size:', `${model}.clockSyncSamples`, '"clockSyncSamples"', 'true', '8', '0',
+ 'Number of samples used to synchronize clocks between different nodes<br/>\
+ Clock synchronization is used for cache version assignment in CLOCK order mode')
+ .settings-row
+ +number('Frequency:', `${model}.clockSyncFrequency`, '"clockSyncFrequency"', 'true', '120000', '0',
+ 'Frequency at which clock is synchronized between nodes, in milliseconds<br/>\
+ Clock synchronization is used for cache version assignment in CLOCK order mode')
+ .settings-row
+ +number-min-max('Port base:', `${model}.timeServerPortBase`, '"timeServerPortBase"', 'true', '31100', '0', '65535',
+ 'Time server provides clock synchronization between nodes<br/>\
+ Base UPD port number for grid time server. Time server will be started on one of free ports in range')
+ .settings-row
+ +number('Port range:', `${model}.timeServerPortRange`, '"timeServerPortRange"', 'true', '100', '1', 'Time server port range')
+ .col-sm-6
+ +preview-xml-java(model, 'clusterTime')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/transactions.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/transactions.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/transactions.jade
deleted file mode 100644
index 6a18bb0..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/transactions.jade
+++ /dev/null
@@ -1,69 +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.jade
-
--var form = 'transactions'
--var model = 'backupItem.transactionConfiguration'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Transactions
- ignite-form-field-tooltip.tipLabel
- | Settings for transactions#[br]
- | #[a(href="https://apacheignite.readme.io/docs/transactions" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +dropdown('Concurrency:', model + '.defaultTxConcurrency', '"defaultTxConcurrency"', 'true', 'PESSIMISTIC',
- '[\
- {value: "OPTIMISTIC", label: "OPTIMISTIC"},\
- {value: "PESSIMISTIC", label: "PESSIMISTIC"}\
- ]',
- 'Cache transaction concurrency to use when one is not explicitly specified\
- <ul>\
- <li>OPTIMISTIC - All cache operations are not distributed to other nodes until commit is called</li>\
- <li>PESSIMISTIC - A lock is acquired on all cache operations with exception of read operations in READ_COMMITTED mode</li>\
- </ul>')
- .settings-row
- +dropdown('Isolation:', model + '.defaultTxIsolation', '"defaultTxIsolation"', 'true', 'REPEATABLE_READ',
- '[\
- {value: "READ_COMMITTED", label: "READ_COMMITTED"},\
- {value: "REPEATABLE_READ", label: "REPEATABLE_READ"},\
- {value: "SERIALIZABLE", label: "SERIALIZABLE"}\
- ]',
- 'Default transaction isolation\
- <ul>\
- <li>READ_COMMITTED - Always a committed value will be provided for read operations</li>\
- <li>REPEATABLE_READ - If a value was read once within transaction, then all consecutive reads will provide the same in-transaction value</li>\
- <li>SERIALIZABLE - All transactions occur in a completely isolated fashion, as if all transactions in the system had executed serially, one after the other.</li>\
- </ul>')
- .settings-row
- +number('Default timeout:', model + '.defaultTxTimeout', '"defaultTxTimeout"', 'true', '0', '0', 'Default transaction timeout')
- .settings-row
- +number('Pessimistic log cleanup delay:', model + '.pessimisticTxLogLinger', '"pessimisticTxLogLinger"', 'true', '10000', '0',
- 'Delay, in milliseconds, after which pessimistic recovery entries will be cleaned up for failed node')
- .settings-row
- +number('Pessimistic log size:', model + '.pessimisticTxLogSize', '"pessimisticTxLogSize"', 'true', '0', '0',
- 'Size of pessimistic transactions log stored on node in order to recover transaction commit if originating node has left grid before it has sent all messages to transaction nodes')
- .settings-row
- +java-class('Manager factory:', model + '.txManagerFactory', '"txManagerFactory"', 'true', 'false',
- 'Class name of transaction manager factory for integration with JEE app servers')
- .col-sm-6
- +preview-xml-java(model, 'clusterTransactions')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/clusters/transactions.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/transactions.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/transactions.pug
new file mode 100644
index 0000000..f60589f
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/transactions.pug
@@ -0,0 +1,69 @@
+//-
+ 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
+
+-var form = 'transactions'
+-var model = 'backupItem.transactionConfiguration'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Transactions
+ ignite-form-field-tooltip.tipLabel
+ | Settings for transactions#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/transactions" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +dropdown('Concurrency:', `${model}.defaultTxConcurrency`, '"defaultTxConcurrency"', 'true', 'PESSIMISTIC',
+ '[\
+ {value: "OPTIMISTIC", label: "OPTIMISTIC"},\
+ {value: "PESSIMISTIC", label: "PESSIMISTIC"}\
+ ]',
+ 'Cache transaction concurrency to use when one is not explicitly specified\
+ <ul>\
+ <li>OPTIMISTIC - All cache operations are not distributed to other nodes until commit is called</li>\
+ <li>PESSIMISTIC - A lock is acquired on all cache operations with exception of read operations in READ_COMMITTED mode</li>\
+ </ul>')
+ .settings-row
+ +dropdown('Isolation:', `${model}.defaultTxIsolation`, '"defaultTxIsolation"', 'true', 'REPEATABLE_READ',
+ '[\
+ {value: "READ_COMMITTED", label: "READ_COMMITTED"},\
+ {value: "REPEATABLE_READ", label: "REPEATABLE_READ"},\
+ {value: "SERIALIZABLE", label: "SERIALIZABLE"}\
+ ]',
+ 'Default transaction isolation\
+ <ul>\
+ <li>READ_COMMITTED - Always a committed value will be provided for read operations</li>\
+ <li>REPEATABLE_READ - If a value was read once within transaction, then all consecutive reads will provide the same in-transaction value</li>\
+ <li>SERIALIZABLE - All transactions occur in a completely isolated fashion, as if all transactions in the system had executed serially, one after the other.</li>\
+ </ul>')
+ .settings-row
+ +number('Default timeout:', `${model}.defaultTxTimeout`, '"defaultTxTimeout"', 'true', '0', '0', 'Default transaction timeout')
+ .settings-row
+ +number('Pessimistic log cleanup delay:', `${model}.pessimisticTxLogLinger`, '"pessimisticTxLogLinger"', 'true', '10000', '0',
+ 'Delay, in milliseconds, after which pessimistic recovery entries will be cleaned up for failed node')
+ .settings-row
+ +number('Pessimistic log size:', `${model}.pessimisticTxLogSize`, '"pessimisticTxLogSize"', 'true', '0', '0',
+ 'Size of pessimistic transactions log stored on node in order to recover transaction commit if originating node has left grid before it has sent all messages to transaction nodes')
+ .settings-row
+ +java-class('Manager factory:', `${model}.txManagerFactory`, '"txManagerFactory"', 'true', 'false',
+ 'Class name of transaction manager factory for integration with JEE app servers')
+ .col-sm-6
+ +preview-xml-java(model, 'clusterTransactions')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/domains/general.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/domains/general.jade b/modules/web-console/frontend/app/modules/states/configuration/domains/general.jade
deleted file mode 100644
index 40759e3..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/domains/general.jade
+++ /dev/null
@@ -1,52 +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.jade
-
--var form = 'general'
--var model = 'backupItem'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle)
- ignite-form-panel-chevron
- label General
- ignite-form-field-tooltip.tipLabel
- | Domain model properties common for Query and Store#[br]
- | #[a(href="https://apacheignite.readme.io/docs/cache-queries" target="_blank") More info about query configuration]#[br]
- | #[a(href="https://apacheignite.readme.io/docs/persistent-store" target="_blank") More info about store]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body
- .col-sm-6
- .settings-row
- +checkbox('Generate POJO classes', model + '.generatePojo', '"generatePojo"', 'If selected then POJO classes will be generated from database tables')
- .settings-row
- +caches(model, 'Select caches to associate domain model with cache')
- .settings-row
- +dropdown-required('Query metadata:', model + '.queryMetadata', '"queryMetadata"', 'true', 'true', '', 'queryMetadataVariants',
- 'Query metadata configured with:\
- <ul>\
- <li>Java annotations like @QuerySqlField</li>\
- <li>Configuration via QueryEntity class</li>\
- </ul>')
- -var generatePojo = model + '.generatePojo'
- .settings-row
- +java-class-typeahead('Key type:', model + '.keyType', '"keyType"', 'javaBuiltInClasses', 'true', 'true', '{{ ' + generatePojo + ' ? "Full class name for Key" : "Key type name" }}', 'Key class used to store key in cache', generatePojo)
- .settings-row
- +java-class-autofocus-placholder('Value type:', model + '.valueType', '"valueType"', 'true', 'true', 'false', '{{ ' + generatePojo +' ? "Enter fully qualified class name" : "Value type name" }}', 'Value class used to store value in cache', generatePojo)
-
- .col-sm-6
- +preview-xml-java(model, 'domainModelGeneral')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/domains/general.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/domains/general.pug b/modules/web-console/frontend/app/modules/states/configuration/domains/general.pug
new file mode 100644
index 0000000..6432adf
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/domains/general.pug
@@ -0,0 +1,52 @@
+//-
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+include /app/helpers/jade/mixins
+
+-var form = 'general'
+-var model = 'backupItem'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle)
+ ignite-form-panel-chevron
+ label General
+ ignite-form-field-tooltip.tipLabel
+ | Domain model properties common for Query and Store#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/cache-queries" target="_blank") More info about query configuration]#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/persistent-store" target="_blank") More info about store]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body
+ .col-sm-6
+ .settings-row
+ +checkbox('Generate POJO classes', `${model}.generatePojo`, '"generatePojo"', 'If selected then POJO classes will be generated from database tables')
+ .settings-row
+ +caches(model, 'Select caches to associate domain model with cache')
+ .settings-row
+ +dropdown-required('Query metadata:', `${model}.queryMetadata`, '"queryMetadata"', 'true', 'true', '', 'queryMetadataVariants',
+ 'Query metadata configured with:\
+ <ul>\
+ <li>Java annotations like @QuerySqlField</li>\
+ <li>Configuration via QueryEntity class</li>\
+ </ul>')
+ -var generatePojo = `${model}.generatePojo`
+ .settings-row
+ +java-class-typeahead('Key type:', `${model}.keyType`, '"keyType"', 'javaBuiltInClasses', 'true', 'true', '{{ ' + generatePojo + ' ? "Full class name for Key" : "Key type name" }}', 'Key class used to store key in cache', generatePojo)
+ .settings-row
+ +java-class-autofocus-placholder('Value type:', `${model}.valueType`, '"valueType"', 'true', 'true', 'false', '{{ ' + generatePojo +' ? "Enter fully qualified class name" : "Value type name" }}', 'Value class used to store value in cache', generatePojo)
+
+ .col-sm-6
+ +preview-xml-java(model, 'domainModelGeneral')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/domains/query.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/domains/query.jade b/modules/web-console/frontend/app/modules/states/configuration/domains/query.jade
deleted file mode 100644
index 8ed7b68..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/domains/query.jade
+++ /dev/null
@@ -1,172 +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.jade
-
--var form = 'query'
--var model = 'backupItem'
--var queryFields = model + '.fields'
--var queryAliases = model + '.aliases'
--var queryIndexes = model + '.indexes'
--var queryFieldsForm = 'queryFields'
--var queryAliasesForm = 'queryAliases'
--var queryIndexesForm = 'queryIndexes'
-
-// LEGACY mixin for LEGACY index fields table.
-mixin table-index-item-edit(prefix, index, sortAvailable, idAddition)
- -var fieldName = prefix + 'FieldName'
- -var direction = prefix + 'Direction'
-
- -var fieldNameModel = 'indexesTbl.' + fieldName
- -var directionModel = 'indexesTbl.' + direction
-
- -var btnVisible = 'tableIndexItemSaveVisible(indexesTbl, ' + index + ')'
- -var btnSave = 'tableIndexItemSave(indexesTbl, itemIndex, ' + index + ')'
- -var btnVisibleAndSave = btnVisible + ' && ' + btnSave
-
- div(ng-if=sortAvailable)
- .col-xs-8.col-sm-8.col-md-8
- label.fieldSep /
- .input-tip
- button.select-toggle.form-control(id='{{::"#{fieldName}" + #{idAddition}}}' ignite-on-enter-focus-move='{{::"#{direction}S" + #{idAddition}}}' ng-model=fieldNameModel placeholder='{{fields("#{prefix}", #{fieldNameModel}).length > 0 ? "Choose field" : "No fields configured"}}' bs-select bs-options='item.value as item.label for item in fields("#{prefix}", #{fieldNameModel})' ng-disabled='fields("#{prefix}", #{fieldNameModel}).length === 0' ignite-on-escape='tableReset(false)' tabindex='0')
- .col-xs-4.col-sm-4.col-md-4
- +btn-save(btnVisible, btnSave)
- .input-tip
- button.select-toggle.form-control(id='{{::"#{direction}" + #{idAddition}}}' ng-model=directionModel bs-select bs-options='item.value as item.label for item in {{sortDirections}}' ignite-on-enter=btnVisibleAndSave ignite-on-escape='tableReset(false)' tabindex='0')
- .col-xs-12(ng-if='!(#{sortAvailable})')
- +btn-save(btnVisible, btnSave)
- .input-tip
- button.select-toggle.form-control(id='{{::"#{fieldName}" + #{idAddition}}}' ng-model=fieldNameModel placeholder='{{fields("#{prefix}", #{fieldNameModel}).length > 0 ? "Choose index field" : "No fields configured"}}' bs-select bs-options='item.value as item.label for item in fields("#{prefix}", #{fieldNameModel})' ng-disabled='fields("#{prefix}", #{fieldNameModel}).length === 0' ignite-on-escape='tableReset(false)' tabindex='0')
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle)
- ignite-form-panel-chevron
- label(id='query-title') Domain model for SQL query
- ignite-form-field-tooltip.tipLabel
- | Domain model properties for fields queries#[br]
- | #[a(href="https://apacheignite.readme.io/docs/cache-queries" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id='query')
- .panel-body
- .col-sm-6
- .content-not-available(ng-if='#{model}.queryMetadata === "Annotations"')
- label Not available for annotated types
- div(ng-if='#{model}.queryMetadata === "Configuration"')
- .settings-row
- +ignite-form-group(ng-model='#{queryFields}' ng-form='#{queryFieldsForm}')
- ignite-form-field-label(id='queryFields')
- | Fields
- ignite-form-group-tooltip
- | Collection of name-to-type mappings to be queried, in addition to indexed fields
- ignite-form-group-add(ng-click='tableNewItem(queryFieldsTbl)')
- | Add field to query
- .group-content-empty(ng-if='!((#{queryFields} && #{queryFields}.length > 0) || tableNewItemActive(queryFieldsTbl))')
- | Not defined
- .group-content(ng-show='(#{queryFields} && #{queryFields}.length > 0) || tableNewItemActive(queryFieldsTbl)')
- table.links-edit(id='fields' st-table=queryFields)
- tbody
- tr(ng-repeat='item in #{queryFields} track by $index')
- td.col-sm-12(ng-hide='tableEditing(queryFieldsTbl, $index)')
- a.labelFormField(ng-click='tableStartEdit(backupItem, queryFieldsTbl, $index)') {{item.name}} / {{item.className}}
- +btn-remove('tableRemove(backupItem, queryFieldsTbl, $index)', '"Remove path"')
- td.col-sm-12(ng-show='tableEditing(queryFieldsTbl, $index)')
- +table-pair-edit('queryFieldsTbl', 'cur', 'Field name', 'Field full class name', false, true, '{{::queryFieldsTbl.focusId + $index}}', '$index', '/')
- tfoot(ng-show='tableNewItemActive(queryFieldsTbl)')
- tr
- td.col-sm-12
- +table-pair-edit('queryFieldsTbl', 'new', 'Field name', 'Field full class name', false, true, '{{::queryFieldsTbl.focusId + $index}}', '-1', '/')
- .settings-row
- +ignite-form-group(ng-model='#{queryAliases}' ng-form='#{queryAliasesForm}')
- ignite-form-field-label
- | Aliases
- ignite-form-group-tooltip
- | Mapping from full property name in dot notation to an alias that will be used as SQL column name
- | For example: "parent.name" as "parentName"
- ignite-form-group-add(ng-click='tableNewItem(aliasesTbl)')
- | Add alias to query
- .group-content-empty(ng-if='!((#{queryAliases} && #{queryAliases}.length > 0) || tableNewItemActive(aliasesTbl))')
- | Not defined
- .group-content(ng-show='(#{queryAliases} && #{queryAliases}.length > 0) || tableNewItemActive(aliasesTbl)')
- table.links-edit(id='aliases' st-table=queryAliases)
- tbody
- tr(ng-repeat='item in #{queryAliases} track by $index')
- td.col-sm-12(ng-hide='tableEditing(aliasesTbl, $index)')
- a.labelFormField(ng-click='tableStartEdit(backupItem, aliasesTbl, $index)') {{item.field}} → {{item.alias}}
- +btn-remove('tableRemove(backupItem, aliasesTbl, $index)', '"Remove alias"')
- td.col-sm-12(ng-show='tableEditing(aliasesTbl, $index)')
- +table-pair-edit('aliasesTbl', 'cur', 'Field name', 'Field Alias', false, false, '{{::aliasesTbl.focusId + $index}}', '$index', '→')
- tfoot(ng-show='tableNewItemActive(aliasesTbl)')
- tr
- td.col-sm-12
- +table-pair-edit('aliasesTbl', 'new', 'Field name', 'Field Alias', false, false, '{{::aliasesTbl.focusId + $index}}', '-1', '→')
- .settings-row(ng-init='indexesTbl={type: "table-indexes", model: "indexes", focusId: "IndexName", ui: "table-indexes"}')
- +ignite-form-group(ng-model='#{queryIndexes}' ng-form='#{queryIndexesForm}')
- ignite-form-field-label
- | Indexes
- ignite-form-group-tooltip
- | Collection of indexes
- ignite-form-group-add(ng-click='tableNewItem(indexesTbl)')
- | Add new index
- .group-content-empty(id='indexes-add' ng-show='!((#{queryIndexes} && #{queryIndexes}.length > 0) || tableNewItemActive(indexesTbl))')
- | Not defined
- .group-content(ng-show='(#{queryIndexes} && #{queryIndexes}.length > 0) || tableNewItemActive(indexesTbl)')
- -var btnVisibleAndSave = 'tableIndexSaveVisible(indexesTbl, $index) && tableIndexSave(indexesTbl, $index)'
-
- table.links-edit(st-table=queryIndexes ng-init='newDirection = false')
- tbody
- tr(ng-repeat='item in #{queryIndexes} track by $index')
- td
- .col-sm-12(ng-hide='tableEditing(indexesTbl, $index)')
- a.labelFormField(id='indexes{{$index}}' ng-click='tableStartEdit(backupItem, indexesTbl, $index)') {{$index + 1}}) {{item.name}} [{{item.indexType}}]
- +btn-remove('tableRemove(backupItem, indexesTbl, $index)', '"Remove index"')
- +btn-add('tableIndexNewItem(indexesTbl, $index)', '"Add new field to index"')
- div(ng-show='tableEditing(indexesTbl, $index)')
- .col-sm-7
- label.fieldSep /
- .input-tip
- input.form-control(id='curIndexName{{$index}}' type='text' ignite-on-enter-focus-move='curIndexType{{$index}}' ng-model='indexesTbl.curIndexName' placeholder='Index name' ignite-on-enter=btnVisibleAndSave ignite-on-escape='tableReset(false)')
- .col-sm-5
- +btn-save('tableIndexSaveVisible(indexesTbl, $index)', 'tableIndexSave(indexesTbl, $index)')
- .input-tip
- button.select-toggle.form-control(id='curIndexType{{$index}}' bs-select ng-model='indexesTbl.curIndexType' data-placeholder='Select index type' bs-options='item.value as item.label for item in indexType' tabindex='0' ignite-on-enter=btnVisibleAndSave ignite-on-escape='tableReset(false)')
- .margin-left-dflt
- table.links-edit-sub(st-table='item.fields' ng-init='itemIndex = $index')
- tbody
- tr(ng-repeat='itemItem in item.fields track by $index')
- td
- div(ng-hide='tableIndexItemEditing(indexesTbl, itemIndex, $index)')
- a.labelFormField(ng-if='item.indexType == "SORTED"' ng-click='tableIndexItemStartEdit(indexesTbl, itemIndex, $index)') {{$index + 1}}) {{itemItem.name}} / {{itemItem.direction ? "ASC" : "DESC"}}
- a.labelFormField(ng-if='item.indexType != "SORTED"' ng-click='tableIndexItemStartEdit(indexesTbl, itemIndex, $index)') {{$index + 1}}) {{itemItem.name}}
- +btn-remove('tableRemoveIndexItem(item, $index)', '"Remove field from index"')
- div(ng-show='tableIndexItemEditing(indexesTbl, itemIndex, $index)')
- +table-index-item-edit('cur', '$index', 'item.indexType == "SORTED"', 'itemIndex + "-" + $index')
- tfoot(ng-show='tableIndexNewItemActive(indexesTbl, itemIndex)')
- tr(style='padding-left: 18px')
- td
- +table-index-item-edit('new', '-1', 'item.indexType == "SORTED"', 'itemIndex')
- tfoot(ng-show='tableNewItemActive(indexesTbl)')
- tr
- td
- .col-sm-7
- .fieldSep /
- .input-tip
- input#newIndexName.form-control(type='text' ignite-on-enter-focus-move='newIndexType' ng-model='indexesTbl.newIndexName' placeholder='Index name' ignite-on-enter='tableIndexSaveVisible(indexesTbl, -1) && tableIndexSave(indexesTbl, -1)' ignite-on-escape='tableReset(false)')
- .col-sm-5
- +btn-save('tableIndexSaveVisible(indexesTbl, -1)', 'tableIndexSave(indexesTbl, -1)')
- .input-tip
- button#newIndexType.select-toggle.form-control(bs-select ng-model='indexesTbl.newIndexType' data-placeholder='Select index type' bs-options='item.value as item.label for item in indexType' tabindex='0' ignite-on-enter=btnVisibleAndSave ignite-on-escape='tableReset(false)')
- .col-sm-6
- +preview-xml-java(model, 'domainModelQuery')
[04/15] ignite git commit: IGNITE-4659 Migration to Webpack 2.
Upgrade template engine from jade to pug.
Posted by an...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/services/Clone.service.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/services/Clone.service.js b/modules/web-console/frontend/app/services/Clone.service.js
index 52a4e4e..d079141 100644
--- a/modules/web-console/frontend/app/services/Clone.service.js
+++ b/modules/web-console/frontend/app/services/Clone.service.js
@@ -15,6 +15,8 @@
* limitations under the License.
*/
+import templateUrl from 'views/templates/clone.tpl.pug';
+
// Service for clone objects.
export default ['IgniteClone', ['$rootScope', '$q', '$modal', ($root, $q, $modal) => {
const scope = $root.$new();
@@ -36,7 +38,7 @@ export default ['IgniteClone', ['$rootScope', '$q', '$modal', ($root, $q, $modal
return tmpName;
}
- const cloneModal = $modal({templateUrl: '/templates/clone.html', scope, placement: 'center', show: false});
+ const cloneModal = $modal({templateUrl, scope, placement: 'center', show: false});
scope.ok = function(newName) {
if (!_validator || _validator(newName)) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/services/Confirm.service.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/services/Confirm.service.js b/modules/web-console/frontend/app/services/Confirm.service.js
index 8208ea2..0b5b9be 100644
--- a/modules/web-console/frontend/app/services/Confirm.service.js
+++ b/modules/web-console/frontend/app/services/Confirm.service.js
@@ -15,11 +15,13 @@
* limitations under the License.
*/
+import templateUrl from 'views/templates/confirm.tpl.pug';
+
// Confirm popup service.
export default ['IgniteConfirm', ['$rootScope', '$q', '$modal', '$animate', ($root, $q, $modal, $animate) => {
const scope = $root.$new();
- const modal = $modal({templateUrl: '/templates/confirm.html', scope, placement: 'center', show: false, backdrop: true});
+ const modal = $modal({templateUrl, scope, placement: 'center', show: false, backdrop: true});
const _hide = () => {
$animate.enabled(modal.$element, false);
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/services/ConfirmBatch.service.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/services/ConfirmBatch.service.js b/modules/web-console/frontend/app/services/ConfirmBatch.service.js
index ef66335..2fd55b7 100644
--- a/modules/web-console/frontend/app/services/ConfirmBatch.service.js
+++ b/modules/web-console/frontend/app/services/ConfirmBatch.service.js
@@ -15,12 +15,14 @@
* limitations under the License.
*/
+import templateUrl from 'views/templates/batch-confirm.tpl.pug';
+
// Service for confirm or skip several steps.
export default ['IgniteConfirmBatch', ['$rootScope', '$q', '$modal', ($root, $q, $modal) => {
const scope = $root.$new();
scope.confirmModal = $modal({
- templateUrl: '/templates/batch-confirm.html',
+ templateUrl,
scope,
placement: 'center',
show: false,
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/controllers/caches-controller.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/controllers/caches-controller.js b/modules/web-console/frontend/controllers/caches-controller.js
index e7521b5..b50fde3 100644
--- a/modules/web-console/frontend/controllers/caches-controller.js
+++ b/modules/web-console/frontend/controllers/caches-controller.js
@@ -15,6 +15,8 @@
* limitations under the License.
*/
+import infoMessageTemplateUrl from 'views/templates/message.tpl.pug';
+
// Controller for Caches screen.
export default ['cachesController', [
'$scope', '$http', '$state', '$filter', '$timeout', '$modal', 'IgniteLegacyUtils', 'IgniteMessages', 'IgniteConfirm', 'IgniteClone', 'IgniteLoading', 'IgniteModelNormalizer', 'IgniteUnsavedChangesGuard', 'IgniteConfigurationResource', 'IgniteErrorPopover', 'IgniteFormUtils', 'IgniteLegacyTable',
@@ -542,7 +544,7 @@ export default ['cachesController', [
];
// Show a basic modal from a controller
- $modal({scope, template: '/templates/message.html', placement: 'center', show: true});
+ $modal({scope, templateUrl: infoMessageTemplateUrl, placement: 'center', show: true});
}
save(item);
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/controllers/domains-controller.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/controllers/domains-controller.js b/modules/web-console/frontend/controllers/domains-controller.js
index bfffe92..5c9e511 100644
--- a/modules/web-console/frontend/controllers/domains-controller.js
+++ b/modules/web-console/frontend/controllers/domains-controller.js
@@ -15,6 +15,8 @@
* limitations under the License.
*/
+import templateUrl from 'views/configuration/domains-import.tpl.pug';
+
// Controller for Domain model screen.
export default ['domainsController', [
'$rootScope', '$scope', '$http', '$state', '$filter', '$timeout', '$modal', 'IgniteLegacyUtils', 'IgniteMessages', 'IgniteFocus', 'IgniteConfirm', 'IgniteConfirmBatch', 'IgniteClone', 'IgniteLoading', 'IgniteModelNormalizer', 'IgniteUnsavedChangesGuard', 'IgniteAgentMonitor', 'IgniteLegacyTable', 'IgniteConfigurationResource', 'IgniteErrorPopover', 'IgniteFormUtils', 'JavaTypes', 'SqlTypes', 'IgniteActivitiesData',
@@ -409,7 +411,7 @@ export default ['domainsController', [
$scope.$watch('importDomain.displayedTables', $scope.selectTable);
// Pre-fetch modal dialogs.
- const importDomainModal = $modal({scope: $scope, templateUrl: '/configuration/domains-import.html', show: false});
+ const importDomainModal = $modal({scope: $scope, templateUrl, show: false});
const hideImportDomain = importDomainModal.hide;
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/gulpfile.babel.js/paths.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/gulpfile.babel.js/paths.js b/modules/web-console/frontend/gulpfile.babel.js/paths.js
index 6ebfbad..627b2f9 100644
--- a/modules/web-console/frontend/gulpfile.babel.js/paths.js
+++ b/modules/web-console/frontend/gulpfile.babel.js/paths.js
@@ -24,33 +24,15 @@ const destDir = path.resolve('build');
const igniteModulesDir = process.env.IGNITE_MODULES ? path.join(path.normalize(process.env.IGNITE_MODULES), 'frontend') : './ignite_modules';
const igniteModulesTemp = path.resolve('ignite_modules_temp');
-const jadeViewsPaths = [
- './views/**/*.jade',
- '!./views/configuration/*.jade'
-];
-
-const jadeAppModulePaths = [
- './app/modules/states/configuration/**/*.jade',
- './app/modules/sql/*.jade',
- './views/**/*.jade',
- '!./views/*.jade',
- '!./views/includes/*.jade',
- '!./views/settings/*.jade',
- '!./views/sql/*.jade',
- '!./views/templates/*.jade'
-];
-
-const jadeModulePaths = [
- igniteModulesDir + '/**/view/**/*.jade'
-];
-
const appModulePaths = [
igniteModulesDir + '/index.js',
igniteModulesDir + '/**/main.js',
igniteModulesDir + '/**/module.js',
igniteModulesDir + '/**/app/modules/*.js',
igniteModulesDir + '/**/app/modules/**/*.js',
- igniteModulesDir + '/**/app/modules/**/*.jade',
+ igniteModulesDir + '/**/app/modules/**/*.pug',
+ igniteModulesDir + '/**/*.pug',
+ igniteModulesDir + '/**/*.tpl.pug',
igniteModulesDir + '/**/app/**/*.css',
igniteModulesDir + '/**/app/**/*.scss',
igniteModulesDir + '/**/app/data/*.json'
@@ -73,10 +55,6 @@ export {
igniteModulesDir,
igniteModulesTemp,
- jadeViewsPaths,
- jadeAppModulePaths,
- jadeModulePaths,
-
resourcePaths,
resourceModulePaths,
appModulePaths
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/gulpfile.babel.js/tasks/build.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/gulpfile.babel.js/tasks/build.js b/modules/web-console/frontend/gulpfile.babel.js/tasks/build.js
index 7d7401b..149b076 100644
--- a/modules/web-console/frontend/gulpfile.babel.js/tasks/build.js
+++ b/modules/web-console/frontend/gulpfile.babel.js/tasks/build.js
@@ -18,4 +18,4 @@
import gulp from 'gulp';
import sequence from 'gulp-sequence';
-gulp.task('build', (cb) => sequence(['clean', 'clean:ignite-modules-temp'], 'ignite:modules', ['copy:resource', 'jade'], 'bundle', cb));
+gulp.task('build', (cb) => sequence(['clean', 'clean:ignite-modules-temp'], 'ignite:modules', ['copy:resource'], 'bundle', cb));
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/gulpfile.babel.js/tasks/bundle.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/gulpfile.babel.js/tasks/bundle.js b/modules/web-console/frontend/gulpfile.babel.js/tasks/bundle.js
index d3e8dca..ac3ac76 100644
--- a/modules/web-console/frontend/gulpfile.babel.js/tasks/bundle.js
+++ b/modules/web-console/frontend/gulpfile.babel.js/tasks/bundle.js
@@ -21,10 +21,14 @@ import webpackConfig from '../webpack';
import WebpackDevServer from 'webpack-dev-server';
gulp.task('bundle', (cb) => {
+ const devServerConfig = webpackConfig.devServer;
+
+ delete webpackConfig.devServer;
+
if (process.env.NODE_ENV === 'development') {
// Important! Call webpack and WebpackDevServer must be inline.
- new WebpackDevServer(webpack(webpackConfig), webpackConfig.devServer)
- .listen(webpackConfig.devServer.port, 'localhost', cb);
+ new WebpackDevServer(webpack(webpackConfig), devServerConfig)
+ .listen(devServerConfig.port, 'localhost', cb);
}
else
webpack(webpackConfig, cb);
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/gulpfile.babel.js/tasks/jade.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/gulpfile.babel.js/tasks/jade.js b/modules/web-console/frontend/gulpfile.babel.js/tasks/jade.js
deleted file mode 100644
index 4935976..0000000
--- a/modules/web-console/frontend/gulpfile.babel.js/tasks/jade.js
+++ /dev/null
@@ -1,49 +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 gulp from 'gulp';
-import ll from 'gulp-ll';
-import jade from 'gulp-jade';
-
-import { jadeViewsPaths, jadeAppModulePaths, jadeModulePaths, destDir, rootDir } from '../paths';
-
-const jadeOptions = {
- basedir: rootDir,
- cache: true
-};
-
-ll.tasks(['jade:views', 'jade:app', 'jade:ignite_modules']);
-
-gulp.task('jade', ['jade:views', 'jade:app', 'jade:ignite_modules']);
-
-gulp.task('jade:views', () =>
- gulp.src(jadeViewsPaths)
- .pipe(jade(jadeOptions))
- .pipe(gulp.dest(destDir))
-);
-
-gulp.task('jade:app', () =>
- gulp.src(jadeAppModulePaths)
- .pipe(jade(jadeOptions))
- .pipe(gulp.dest(destDir))
-);
-
-gulp.task('jade:ignite_modules', () =>
- gulp.src(jadeModulePaths)
- .pipe(jade(jadeOptions))
- .pipe(gulp.dest(`${destDir}/ignite_modules`))
-);
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/gulpfile.babel.js/tasks/watch.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/gulpfile.babel.js/tasks/watch.js b/modules/web-console/frontend/gulpfile.babel.js/tasks/watch.js
index dfaa1a3..9a02b88 100644
--- a/modules/web-console/frontend/gulpfile.babel.js/tasks/watch.js
+++ b/modules/web-console/frontend/gulpfile.babel.js/tasks/watch.js
@@ -18,15 +18,12 @@
import gulp from 'gulp';
import sequence from 'gulp-sequence';
-import { jadeViewsPaths, jadeAppModulePaths, jadeModulePaths, resourcePaths, resourceModulePaths, appModulePaths } from '../paths';
+import { resourcePaths, resourceModulePaths, appModulePaths } from '../paths';
gulp.task('watch:ignite-modules', (cb) => sequence('clean:ignite-modules-temp', 'ignite:modules', cb));
// Build + watch task.
gulp.task('watch', ['build'], () => {
- gulp.watch(jadeViewsPaths, ['jade:views']);
- gulp.watch(jadeAppModulePaths.concat('./app/helpers/**/*.jade'), ['jade:app']);
- gulp.watch(jadeModulePaths.concat('./app/helpers/**/*.jade'), ['jade:ignite_modules']);
gulp.watch(resourcePaths, ['copy:resource:app']);
gulp.watch(resourceModulePaths, ['copy:resource:ignite_modules']);
gulp.watch(appModulePaths, ['watch:ignite-modules']);
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/gulpfile.babel.js/webpack/common.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/gulpfile.babel.js/webpack/common.js b/modules/web-console/frontend/gulpfile.babel.js/webpack/common.js
index 7360ac4..3d9616f 100644
--- a/modules/web-console/frontend/gulpfile.babel.js/webpack/common.js
+++ b/modules/web-console/frontend/gulpfile.babel.js/webpack/common.js
@@ -18,21 +18,22 @@
import path from 'path';
import fs from 'fs';
import webpack from 'webpack';
-import autoprefixer from 'autoprefixer-core';
-import jade from 'jade';
+
import ProgressBarPlugin from 'progress-bar-webpack-plugin';
import eslintFormatter from 'eslint-friendly-formatter';
-import ExtractTextPlugin from 'extract-text-webpack-plugin';
import HtmlWebpackPlugin from 'html-webpack-plugin';
+import ExtractTextPlugin from 'extract-text-webpack-plugin';
+
import {srcDir, destDir, rootDir, igniteModulesDir} from '../paths';
+const viewsDir = path.resolve('views');
+const imagesDir = path.resolve('public/images');
+
const NODE_ENV = process.env.NODE_ENV || 'production';
const development = NODE_ENV === 'development';
const node_modules_path = path.resolve('node_modules');
-const cssLoader = 'css-loader?sourceMap!postcss-loader';
-const stylesLoader = cssLoader + '!sass-loader?outputStyle=expanded&sourceMap=true&sourceMapContents=true';
let favicon = 'build/ignite_modules/favicon.ico';
@@ -42,150 +43,155 @@ try {
favicon = 'build/favicon.ico';
}
-export default () => {
- const assetsLoader = 'file-loader';
-
- return {
- cache: true,
- node: {
- fs: 'empty'
- },
-
- // Entry points.
- entry: {
- polyfill: 'babel-polyfill',
- app: path.join(srcDir, 'app.js'),
- vendor: path.join(srcDir, 'vendor.js')
- },
-
- // Output system.
- output: {
- path: destDir,
- filename: '[name].js'
- },
-
- // Resolves modules.
- resolve: {
- extensions: [
- '',
- '.js'
- ],
- root: [rootDir],
- modulesDirectories: [
- node_modules_path,
- './'
- ]
- },
- jade: {
- basedir: rootDir,
- locals: {}
- },
- // Modules resolvers.
- /* global require */
- module: {
- noParse: [],
- preLoaders: [
- {
- test: /\.js$/,
- exclude: [node_modules_path],
- loader: 'eslint-loader'
- }
- ],
- loaders: [
- {
- test: /\.json$/,
- loader: 'json-loader'
- },
- {
- test: /\.jade$/,
- loaders: [
- `ngtemplate-loader?relativeTo=${rootDir}`,
- 'html-loader?attrs[]=img:src&attrs[]=img:data-src',
- 'jade-html-loader'
- ]
- },
- {
- test: /\.js$/,
- exclude: [node_modules_path],
- loader: 'babel-loader',
- query: {
+export default {
+ cache: true,
+ node: {
+ fs: 'empty'
+ },
+ // Entry points.
+ entry: {
+ polyfill: 'babel-polyfill',
+ vendor: path.join(srcDir, 'vendor.js'),
+ app: path.join(srcDir, 'app.js')
+ },
+
+ // Output system.
+ output: {
+ path: destDir,
+ filename: '[name].js'
+ },
+
+ // Resolves modules.
+ resolve: {
+ extensions: [
+ '.js'
+ ],
+ modules: [
+ srcDir,
+ rootDir,
+ node_modules_path
+ ],
+ // A list of module source folders.
+ alias: {
+ app: srcDir,
+ views: viewsDir,
+ images: imagesDir
+ }
+ },
+
+ // Resolve loader use postfix.
+ resolveLoader: {
+ moduleExtensions: ['-loader']
+ },
+
+ module: {
+ rules: [
+ {
+ test: /\.json$/,
+ loader: 'json'
+ },
+
+ // Exclude tpl.pug files to import in bundle.
+ {
+ test: /^(?:(?!tpl\.pug$).)*\.pug$/, // TODO: check this regexp for correct.
+ loader: `pug-html?basedir=${rootDir}`
+ },
+
+ // Render .tpl.pug files to assets folder.
+ {
+ test: /\.tpl\.pug$/,
+ use: [
+ 'file?exports=false&name=assets/templates/[name].[hash].html',
+ `pug-html?exports=false&basedir=${rootDir}`
+ ]
+ },
+ {
+ test: /\.js$/,
+ enforce: 'pre',
+ exclude: [node_modules_path],
+ use: [{
+ loader: 'eslint',
+ options: {
+ failOnWarning: false,
+ failOnError: false,
+ formatter: eslintFormatter
+ }
+ }]
+ },
+ {
+ test: /\.js$/,
+ exclude: [node_modules_path],
+ use: [{
+ loader: 'babel',
+ options: {
cacheDirectory: true,
plugins: [
'transform-runtime',
'add-module-exports'
],
presets: ['angular']
-
}
- },
- {
- test: /\.css$/,
- loader: development ? `style-loader!${cssLoader}` : ExtractTextPlugin.extract('style-loader', cssLoader)
- },
- {
- test: /\.(scss|sass)$/,
- loader: development ? `style-loader!${stylesLoader}` : ExtractTextPlugin.extract('style-loader', stylesLoader)
- },
- {
- test: /\.(ttf|eot|svg|woff(2)?)(\?v=[\d.]+)?(\?[a-z0-9#-]+)?$/,
- loaders: [`${assetsLoader}?name=assets/fonts/[name].[ext]`]
- },
- {
- test: /\.(jpe?g|png|gif)$/i,
- loaders: [`${assetsLoader}?name=assets/images/[name]_[hash].[ext]`]
- },
- {
- test: require.resolve('jquery'),
- loaders: [
- 'expose-loader?$',
- 'expose-loader?jQuery'
- ]
- },
- {
- test: require.resolve('nvd3'),
- loaders: [
- 'expose-loader?nv'
- ]
- }
- ]
- },
-
- // Postcss configuration.
- postcss: [autoprefixer({browsers: ['last 2 versions']})],
-
- // ESLint loader configuration.
- eslint: {
- failOnWarning: false,
- failOnError: false,
- formatter: eslintFormatter
- },
-
- // Load plugins.
- plugins: [
- new webpack.ProvidePlugin({
- $: 'jquery',
- jQuery: 'jquery',
- _: 'lodash',
- nv: 'nvd3'
- }),
- new webpack.DefinePlugin({NODE_ENV: JSON.stringify(NODE_ENV)}),
- // new webpack.NoErrorsPlugin(),
- new webpack.optimize.DedupePlugin(),
- new webpack.optimize.CommonsChunkPlugin({
- name: 'common',
- chunks: ['vendor', 'app']
- }),
- new webpack.optimize.AggressiveMergingPlugin({moveToParents: true}),
- new webpack.optimize.OccurenceOrderPlugin(),
- new ExtractTextPlugin('assets/css/[name]' + (development ? '' : '.[chunkhash]') + '.css', {allChunks: true}),
- new HtmlWebpackPlugin({
- filename: 'index.html',
- templateContent: () => {
- return jade.renderFile(path.join(rootDir, 'views', 'index.jade'));
- },
- favicon
- }),
- new ProgressBarPlugin()
+ }]
+ },
+ {
+ test: /\.css$/,
+ use: development ? ['style', 'css'] : ExtractTextPlugin.extract({
+ fallback: 'style',
+ use: ['css']
+ })
+ },
+ {
+ test: /\.scss$/,
+ use: development ? ['style', 'css', 'sass'] : ExtractTextPlugin.extract({
+ fallback: 'style-loader',
+ use: ['css', 'sass']
+ })
+ },
+ {
+ test: /\.(ttf|eot|svg|woff(2)?)(\?v=[\d.]+)?(\?[a-z0-9#-]+)?$/,
+ loader: 'file?name=assets/fonts/[name].[ext]'
+ },
+ {
+ test: /\.(jpe?g|png|gif)$/i,
+ loader: 'file?name=assets/images/[name]_[hash].[ext]'
+ },
+ {
+ test: require.resolve('jquery'),
+ use: [
+ 'expose-loader?$',
+ 'expose-loader?jQuery'
+ ]
+ },
+ {
+ test: require.resolve('nvd3'),
+ use: ['expose-loader?nv']
+ }
]
- };
+ },
+
+ // Load plugins.
+ plugins: [
+ new webpack.LoaderOptionsPlugin({
+ options: {
+ pug: {
+ basedir: rootDir
+ }
+ }
+ }),
+ new webpack.ProvidePlugin({
+ $: 'jquery',
+ jQuery: 'jquery',
+ _: 'lodash',
+ nv: 'nvd3'
+ }),
+ new webpack.DefinePlugin({NODE_ENV: JSON.stringify(NODE_ENV)}),
+ new webpack.optimize.CommonsChunkPlugin({name: 'vendor'}),
+ new webpack.optimize.AggressiveMergingPlugin({moveToParents: true}),
+ new HtmlWebpackPlugin({
+ template: './views/index.pug',
+ favicon
+ }),
+ new ExtractTextPlugin({filename: 'assets/css/[name].css', allChunks: true}),
+ new ProgressBarPlugin()
+ ]
};
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/development.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/development.js b/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/development.js
index 34e1f6a..c837c43 100644
--- a/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/development.js
+++ b/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/development.js
@@ -15,65 +15,47 @@
* limitations under the License.
*/
-import path from 'path';
-import webpack from 'webpack';
-
-import {destDir, rootDir, srcDir} from '../../paths';
+import {destDir} from '../../paths';
const backendPort = 3000;
const devServerPort = 9000;
-export default () => {
- const plugins = [
- new webpack.HotModuleReplacementPlugin()
- ];
-
- return {
- entry: {
- app: [path.join(srcDir, 'app.js'), 'webpack/hot/only-dev-server']
- },
- output: {
- publicPath: `http://localhost:${devServerPort}/`
- },
- context: rootDir,
- debug: true,
- devtool: 'source-map',
- watch: true,
- devServer: {
- compress: true,
- historyApiFallback: true,
- contentBase: destDir,
- hot: true,
- inline: true,
- proxy: {
- '/socket.io': {
- target: `http://localhost:${backendPort}`,
- changeOrigin: true,
- ws: true
- },
- '/agents': {
- target: `http://localhost:${backendPort}`,
- changeOrigin: true,
- ws: true
- },
- '/api/v1/*': {
- target: `http://localhost:${backendPort}`,
- changeOrigin: true,
- pathRewrite: {
- '^/api/v1': ''
- }
- }
+export default {
+ devtool: 'source-map',
+ watch: true,
+ devServer: {
+ compress: true,
+ historyApiFallback: true,
+ contentBase: destDir,
+ // hot: true,
+ inline: true,
+ proxy: {
+ '/socket.io': {
+ target: `http://localhost:${backendPort}`,
+ changeOrigin: true,
+ ws: true
},
- watchOptions: {
- aggregateTimeout: 1000,
- poll: 2000
+ '/agents': {
+ target: `http://localhost:${backendPort}`,
+ changeOrigin: true,
+ ws: true
},
- stats: {
- colors: true,
- chunks: false
- },
- port: devServerPort
+ '/api/v1/*': {
+ target: `http://localhost:${backendPort}`,
+ changeOrigin: true,
+ pathRewrite: {
+ '^/api/v1': ''
+ }
+ }
+ },
+ watchOptions: {
+ aggregateTimeout: 1000,
+ poll: 2000
+ },
+ stats: {
+ colors: true,
+ chunks: false
},
- plugins
- };
+ port: devServerPort
+ }
};
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/production.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/production.js b/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/production.js
index 1194568..cbbe9ca 100644
--- a/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/production.js
+++ b/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/production.js
@@ -15,30 +15,27 @@
* limitations under the License.
*/
+
import webpack from 'webpack';
-import {destDir, rootDir} from '../../paths';
+import {destDir} from '../../paths';
-export default () => {
- const plugins = [
- new webpack.optimize.UglifyJsPlugin({
- path: destDir,
- minimize: true,
- warnings: false,
- sourceMap: false,
- mangle: true
- })
- ];
+const plugins = [
+ new webpack.optimize.UglifyJsPlugin({
+ path: destDir,
+ minimize: true,
+ warnings: false,
+ sourceMap: false,
+ mangle: true
+ })
+];
- return {
- context: rootDir,
- bail: true, // Cancel build on error.
- debug: false,
- devtool: 'cheap-source-map',
- output: {
- publicPath: '/',
- filename: '[name].[chunkhash].js'
- },
- plugins
- };
+export default {
+ bail: true, // Cancel build on error.
+ devtool: 'cheap-source-map',
+ output: {
+ publicPath: '/',
+ filename: '[name].[chunkhash].js'
+ },
+ plugins
};
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/test.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/test.js b/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/test.js
index 1c37196..0cb9b77 100644
--- a/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/test.js
+++ b/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/test.js
@@ -19,34 +19,26 @@ import webpack from 'webpack';
const NODE_ENV = process.env.NODE_ENV || 'production';
-export default () => {
-
- return {
- cache: true,
- node: {
- fs: 'empty'
- },
-
- module: {
- preLoaders: null
- },
-
- // Entry points.
- entry: null,
-
- // Output system.
- output: null,
- eslint: null,
-
- // Load plugins.
- plugins: [
- new webpack.ProvidePlugin({
- $: 'jquery',
- jQuery: 'jquery',
- _: 'lodash',
- nv: 'nvd3'
- }),
- new webpack.DefinePlugin({NODE_ENV: JSON.stringify(NODE_ENV)})
- ]
- };
+export default {
+ cache: true,
+ node: {
+ fs: 'empty'
+ },
+
+ // Entry points.
+ entry: null,
+
+ // Output system.
+ output: null,
+
+ // Load plugins.
+ plugins: [
+ new webpack.ProvidePlugin({
+ $: 'jquery',
+ jQuery: 'jquery',
+ _: 'lodash',
+ nv: 'nvd3'
+ }),
+ new webpack.DefinePlugin({NODE_ENV: JSON.stringify(NODE_ENV)})
+ ]
};
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/gulpfile.babel.js/webpack/index.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/gulpfile.babel.js/webpack/index.js b/modules/web-console/frontend/gulpfile.babel.js/webpack/index.js
index 9b344dd..3caf06c 100644
--- a/modules/web-console/frontend/gulpfile.babel.js/webpack/index.js
+++ b/modules/web-console/frontend/gulpfile.babel.js/webpack/index.js
@@ -19,6 +19,8 @@ import _ from 'lodash';
import commonConfig from './common';
import devConfig from './environments/development';
import prodConfig from './environments/production';
+
+// TODO check test config
import testConfig from './environments/test';
const env = process.env.NODE_ENV || 'production';
@@ -31,4 +33,4 @@ const configs = {
};
// Load config file by environment
-export default _.merge(commonConfig(), configs[env]());
+export default _.merge(commonConfig, configs[env]);
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/package.json
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/package.json b/modules/web-console/frontend/package.json
index 2d12655..b11f690 100644
--- a/modules/web-console/frontend/package.json
+++ b/modules/web-console/frontend/package.json
@@ -5,7 +5,7 @@
"private": true,
"scripts": {
"dev": "cross-env NODE_ENV=development gulp watch",
- "build": "cross-env NODE_ENV=production gulp build --no-ll",
+ "build": "cross-env NODE_ENV=production gulp build",
"test": "cross-env NODE_ENV=test karma start ./test/karma.conf.js",
"eslint": "eslint --format node_modules/eslint-friendly-formatter gulpfile.babel.js/ app/ controllers/ ignite_modules/ ignite_modules_temp/ -- --eff-by-issue"
},
@@ -50,7 +50,7 @@
"angular-ui-router": "0.4.2",
"bootstrap-sass": "3.3.7",
"brace": "0.8.0",
- "es6-promise": "3.3.1",
+ "es6-promise": "4.0.5",
"file-saver": "1.3.3",
"font-awesome": "4.7.0",
"glob": "7.1.1",
@@ -60,12 +60,12 @@
"nvd3": "1.8.4",
"raleway-webfont": "3.0.1",
"roboto-font": "0.1.0",
- "socket.io-client": "1.7.2",
+ "socket.io-client": "1.7.3",
"ui-router-metatags": "1.0.3"
},
"devDependencies": {
"assets-webpack-plugin": "3.5.1",
- "autoprefixer-core": "6.0.1",
+ "autoprefixer": "6.7.5",
"babel-core": "6.20.0",
"babel-eslint": "7.0.0",
"babel-loader": "6.2.10",
@@ -77,52 +77,50 @@
"babel-preset-es2015": "6.18.0",
"babel-runtime": "6.20.0",
"chai": "3.5.0",
- "cross-env": "1.0.8",
- "css-loader": "0.26.1",
- "eslint": "3.12.2",
+ "cross-env": "3.1.4",
+ "css-loader": "0.26.2",
+ "eslint": "3.16.1",
"eslint-friendly-formatter": "2.0.7",
- "eslint-loader": "1.6.1",
- "expose-loader": "0.7.1",
- "extract-text-webpack-plugin": "1.0.1",
- "file-loader": "0.9.0",
+ "eslint-loader": "1.6.3",
+ "expose-loader": "0.7.3",
+ "extract-text-webpack-plugin": "2.0.0",
+ "file-loader": "0.10.1",
"gulp": "3.9.1",
"gulp-eslint": "3.0.1",
- "gulp-inject": "4.1.0",
- "gulp-jade": "1.1.0",
- "gulp-ll": "1.0.4",
+ "gulp-inject": "4.2.0",
"gulp-rimraf": "0.2.1",
"gulp-sequence": "0.4.6",
"gulp-util": "3.0.8",
- "html-loader": "0.4.4",
- "html-webpack-plugin": "2.24.1",
- "jade": "1.11.0",
- "jade-html-loader": "git://github.com/courcelan/jade-html-loader",
+ "html-loader": "0.4.5",
+ "html-webpack-plugin": "2.28.0",
"jasmine-core": "2.5.2",
"json-loader": "0.5.4",
- "karma": "0.13.22",
+ "karma": "1.5.0",
"karma-babel-preprocessor": "6.0.1",
"karma-jasmine": "1.1.0",
"karma-mocha": "1.3.0",
"karma-mocha-reporter": "2.2.2",
"karma-phantomjs-launcher": "1.0.2",
"karma-teamcity-reporter": "1.0.0",
- "karma-webpack": "1.8.1",
- "mocha": "2.5.3",
+ "karma-webpack": "2.0.2",
+ "mocha": "3.2.0",
"mocha-teamcity-reporter": "1.1.1",
- "morgan": "1.7.0",
"ngtemplate-loader": "1.3.1",
- "node-sass": "3.13.1",
+ "node-sass": "4.5.0",
"phantomjs-prebuilt": "2.1.14",
- "postcss-loader": "0.9.1",
+ "postcss-loader": "1.3.2",
"progress-bar-webpack-plugin": "1.9.3",
+ "pug-html-loader": "1.1.0",
+ "pug-loader": "2.3.0",
"require-dir": "0.3.1",
- "resolve-url-loader": "1.6.1",
- "sass-loader": "3.2.2",
- "style-loader": "0.13.1",
+ "resolve-url-loader": "2.0.0",
+ "sass-loader": "6.0.2",
+ "style-loader": "0.13.2",
"url": "0.11.0",
- "url-loader": "0.5.7",
- "webpack": "1.14.0",
- "webpack-dev-server": "1.16.3",
- "worker-loader": "0.7.1"
+ "url-loader": "0.5.8",
+ "webpack": "2.2.1",
+ "webpack-dev-server": "2.4.1",
+ "webpack-stream": "3.2.0",
+ "worker-loader": "0.8.0"
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/test/e2e/exampe.test.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/test/e2e/exampe.test.js b/modules/web-console/frontend/test/e2e/exampe.test.js
index c778c79..00788bb 100644
--- a/modules/web-console/frontend/test/e2e/exampe.test.js
+++ b/modules/web-console/frontend/test/e2e/exampe.test.js
@@ -15,6 +15,8 @@
* limitations under the License.
*/
+import { suite, test, setup } from 'mocha';
+
suite('ExampleTestSuite', () => {
setup(() => {
// browser.get('http://localhost:9000/');
@@ -37,4 +39,4 @@ suite('ExampleTestSuite', () => {
// element(by.model('ui.email')).sendKeys('jhon@doe.com');
});
-});
\ No newline at end of file
+});
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/test/karma.conf.babel.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/test/karma.conf.babel.js b/modules/web-console/frontend/test/karma.conf.babel.js
index 76a0ba0..992c4d0 100644
--- a/modules/web-console/frontend/test/karma.conf.babel.js
+++ b/modules/web-console/frontend/test/karma.conf.babel.js
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-import webpackConfig from '../gulpfile.babel.js/webpack';
+import webpack from '../gulpfile.babel.js/webpack';
import path from 'path';
const basePath = path.resolve('./');
@@ -23,7 +23,7 @@ const basePath = path.resolve('./');
export default (config) => {
config.set({
// Base path that will be used to resolve all patterns (eg. files, exclude).
- basePath: basePath,
+ basePath,
// Frameworks to use available frameworks: https://npmjs.org/browse/keyword/karma-adapter
frameworks: ['mocha'],
@@ -46,7 +46,8 @@ export default (config) => {
preprocessors: {
'test/**/*.js': ['webpack']
},
- webpack: webpackConfig,
+
+ webpack,
webpackMiddleware: {
noInfo: true
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/test/protractor.conf.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/test/protractor.conf.js b/modules/web-console/frontend/test/protractor.conf.js
index 3386e66..4ee1c69 100644
--- a/modules/web-console/frontend/test/protractor.conf.js
+++ b/modules/web-console/frontend/test/protractor.conf.js
@@ -23,10 +23,10 @@
// };
exports.config = {
- seleniumAddress: 'http://localhost:4444/wd/hub',
+ seleniumAddress: 'http://localhost:4444/wd/hub',
- capabilities: {
- 'browserName': 'chrome'
+ capabilities: {
+ browserName: 'chrome'
// 'browserName': 'phantomjs',
// /*
@@ -40,11 +40,11 @@ exports.config = {
// * See https://github.com/detro/ghostdriver#faq
// */
// 'phantomjs.ghostdriver.cli.args': ['--loglevel=DEBUG']
- },
+ },
- specs: ['test/e2e/*.js'],
+ specs: ['test/e2e/*.js'],
- jasmineNodeOpts: {
- showColors: true
- }
+ jasmineNodeOpts: {
+ showColors: true
+ }
};
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/test/unit/JavaTransformer.test.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/test/unit/JavaTransformer.test.js b/modules/web-console/frontend/test/unit/JavaTransformer.test.js
index 3f39000..7dacc16 100644
--- a/modules/web-console/frontend/test/unit/JavaTransformer.test.js
+++ b/modules/web-console/frontend/test/unit/JavaTransformer.test.js
@@ -20,7 +20,7 @@ import JavaTypes from '../../app/services/JavaTypes.service.js';
import generator from '../../app/modules/configuration/generator/ConfigurationGenerator';
import transformer from '../../app/modules/configuration/generator/JavaTransformer.service';
-import { assert } from 'chai';
+import { suite, test } from 'mocha';
suite.skip('JavaTransformerTestsSuite', () => {
test('AtomicConfiguration', () => {
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/test/unit/JavaTypes.test.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/test/unit/JavaTypes.test.js b/modules/web-console/frontend/test/unit/JavaTypes.test.js
index 49e78cc..e42d687 100644
--- a/modules/web-console/frontend/test/unit/JavaTypes.test.js
+++ b/modules/web-console/frontend/test/unit/JavaTypes.test.js
@@ -21,113 +21,114 @@ import ClusterDflts from '../../app/modules/configuration/generator/defaults/Clu
import CacheDflts from '../../app/modules/configuration/generator/defaults/Cache.service';
import IgfsDflts from '../../app/modules/configuration/generator/defaults/IGFS.service';
-const INSTANCE = new JavaTypes(new ClusterDflts(), new CacheDflts(), new IgfsDflts());
+const instance = new JavaTypes(new ClusterDflts(), new CacheDflts(), new IgfsDflts());
+import { suite, test } from 'mocha';
import { assert } from 'chai';
suite('JavaTypesTestsSuite', () => {
test('nonBuiltInClass', () => {
- assert.equal(INSTANCE.nonBuiltInClass('BigDecimal'), false);
- assert.equal(INSTANCE.nonBuiltInClass('java.math.BigDecimal'), false);
+ assert.equal(instance.nonBuiltInClass('BigDecimal'), false);
+ assert.equal(instance.nonBuiltInClass('java.math.BigDecimal'), false);
- assert.equal(INSTANCE.nonBuiltInClass('String'), false);
- assert.equal(INSTANCE.nonBuiltInClass('java.lang.String'), false);
+ assert.equal(instance.nonBuiltInClass('String'), false);
+ assert.equal(instance.nonBuiltInClass('java.lang.String'), false);
- assert.equal(INSTANCE.nonBuiltInClass('Timestamp'), false);
- assert.equal(INSTANCE.nonBuiltInClass('java.sql.Timestamp'), false);
+ assert.equal(instance.nonBuiltInClass('Timestamp'), false);
+ assert.equal(instance.nonBuiltInClass('java.sql.Timestamp'), false);
- assert.equal(INSTANCE.nonBuiltInClass('Date'), false);
- assert.equal(INSTANCE.nonBuiltInClass('java.sql.Date'), false);
+ assert.equal(instance.nonBuiltInClass('Date'), false);
+ assert.equal(instance.nonBuiltInClass('java.sql.Date'), false);
- assert.equal(INSTANCE.nonBuiltInClass('Date'), false);
- assert.equal(INSTANCE.nonBuiltInClass('java.util.Date'), false);
+ assert.equal(instance.nonBuiltInClass('Date'), false);
+ assert.equal(instance.nonBuiltInClass('java.util.Date'), false);
- assert.equal(INSTANCE.nonBuiltInClass('CustomClass'), true);
- assert.equal(INSTANCE.nonBuiltInClass('java.util.CustomClass'), true);
- assert.equal(INSTANCE.nonBuiltInClass('my.package.CustomClass'), true);
+ assert.equal(instance.nonBuiltInClass('CustomClass'), true);
+ assert.equal(instance.nonBuiltInClass('java.util.CustomClass'), true);
+ assert.equal(instance.nonBuiltInClass('my.package.CustomClass'), true);
});
test('nonEnum', () => {
- assert.equal(INSTANCE.nonEnum('org.apache.ignite.cache.CacheMode'), false);
- assert.equal(INSTANCE.nonEnum('org.apache.ignite.transactions.TransactionConcurrency'), false);
- assert.equal(INSTANCE.nonEnum('org.apache.ignite.cache.CacheWriteSynchronizationMode'), false);
- assert.equal(INSTANCE.nonEnum('org.apache.ignite.igfs.IgfsIpcEndpointType'), false);
- assert.equal(INSTANCE.nonEnum('java.io.Serializable'), true);
- assert.equal(INSTANCE.nonEnum('BigDecimal'), true);
+ assert.equal(instance.nonEnum('org.apache.ignite.cache.CacheMode'), false);
+ assert.equal(instance.nonEnum('org.apache.ignite.transactions.TransactionConcurrency'), false);
+ assert.equal(instance.nonEnum('org.apache.ignite.cache.CacheWriteSynchronizationMode'), false);
+ assert.equal(instance.nonEnum('org.apache.ignite.igfs.IgfsIpcEndpointType'), false);
+ assert.equal(instance.nonEnum('java.io.Serializable'), true);
+ assert.equal(instance.nonEnum('BigDecimal'), true);
});
test('shortClassName', () => {
- assert.equal(INSTANCE.shortClassName('java.math.BigDecimal'), 'BigDecimal');
- assert.equal(INSTANCE.shortClassName('BigDecimal'), 'BigDecimal');
- assert.equal(INSTANCE.shortClassName('int'), 'int');
- assert.equal(INSTANCE.shortClassName('java.lang.Integer'), 'Integer');
- assert.equal(INSTANCE.shortClassName('Integer'), 'Integer');
- assert.equal(INSTANCE.shortClassName('java.util.UUID'), 'UUID');
- assert.equal(INSTANCE.shortClassName('java.sql.Date'), 'Date');
- assert.equal(INSTANCE.shortClassName('Date'), 'Date');
- assert.equal(INSTANCE.shortClassName('com.my.Abstract'), 'Abstract');
- assert.equal(INSTANCE.shortClassName('Abstract'), 'Abstract');
+ assert.equal(instance.shortClassName('java.math.BigDecimal'), 'BigDecimal');
+ assert.equal(instance.shortClassName('BigDecimal'), 'BigDecimal');
+ assert.equal(instance.shortClassName('int'), 'int');
+ assert.equal(instance.shortClassName('java.lang.Integer'), 'Integer');
+ assert.equal(instance.shortClassName('Integer'), 'Integer');
+ assert.equal(instance.shortClassName('java.util.UUID'), 'UUID');
+ assert.equal(instance.shortClassName('java.sql.Date'), 'Date');
+ assert.equal(instance.shortClassName('Date'), 'Date');
+ assert.equal(instance.shortClassName('com.my.Abstract'), 'Abstract');
+ assert.equal(instance.shortClassName('Abstract'), 'Abstract');
});
test('fullClassName', () => {
- assert.equal(INSTANCE.fullClassName('BigDecimal'), 'java.math.BigDecimal');
+ assert.equal(instance.fullClassName('BigDecimal'), 'java.math.BigDecimal');
});
test('validIdentifier', () => {
- assert.equal(INSTANCE.validIdentifier('myIdent'), true);
- assert.equal(INSTANCE.validIdentifier('java.math.BigDecimal'), false);
- assert.equal(INSTANCE.validIdentifier('2Demo'), false);
- assert.equal(INSTANCE.validIdentifier('abra kadabra'), false);
- assert.equal(INSTANCE.validIdentifier(undefined), false);
- assert.equal(INSTANCE.validIdentifier(null), false);
- assert.equal(INSTANCE.validIdentifier(''), false);
- assert.equal(INSTANCE.validIdentifier(' '), false);
+ assert.equal(instance.validIdentifier('myIdent'), true);
+ assert.equal(instance.validIdentifier('java.math.BigDecimal'), false);
+ assert.equal(instance.validIdentifier('2Demo'), false);
+ assert.equal(instance.validIdentifier('abra kadabra'), false);
+ assert.equal(instance.validIdentifier(), false);
+ assert.equal(instance.validIdentifier(null), false);
+ assert.equal(instance.validIdentifier(''), false);
+ assert.equal(instance.validIdentifier(' '), false);
});
test('validClassName', () => {
- assert.equal(INSTANCE.validClassName('java.math.BigDecimal'), true);
- assert.equal(INSTANCE.validClassName('2Demo'), false);
- assert.equal(INSTANCE.validClassName('abra kadabra'), false);
- assert.equal(INSTANCE.validClassName(undefined), false);
- assert.equal(INSTANCE.validClassName(null), false);
- assert.equal(INSTANCE.validClassName(''), false);
- assert.equal(INSTANCE.validClassName(' '), false);
+ assert.equal(instance.validClassName('java.math.BigDecimal'), true);
+ assert.equal(instance.validClassName('2Demo'), false);
+ assert.equal(instance.validClassName('abra kadabra'), false);
+ assert.equal(instance.validClassName(), false);
+ assert.equal(instance.validClassName(null), false);
+ assert.equal(instance.validClassName(''), false);
+ assert.equal(instance.validClassName(' '), false);
});
test('validPackage', () => {
- assert.equal(INSTANCE.validPackage('java.math.BigDecimal'), true);
- assert.equal(INSTANCE.validPackage('my.org.SomeClass'), true);
- assert.equal(INSTANCE.validPackage('25'), false);
- assert.equal(INSTANCE.validPackage('abra kadabra'), false);
- assert.equal(INSTANCE.validPackage(''), false);
- assert.equal(INSTANCE.validPackage(' '), false);
+ assert.equal(instance.validPackage('java.math.BigDecimal'), true);
+ assert.equal(instance.validPackage('my.org.SomeClass'), true);
+ assert.equal(instance.validPackage('25'), false);
+ assert.equal(instance.validPackage('abra kadabra'), false);
+ assert.equal(instance.validPackage(''), false);
+ assert.equal(instance.validPackage(' '), false);
});
test('packageSpecified', () => {
- assert.equal(INSTANCE.packageSpecified('java.math.BigDecimal'), true);
- assert.equal(INSTANCE.packageSpecified('BigDecimal'), false);
+ assert.equal(instance.packageSpecified('java.math.BigDecimal'), true);
+ assert.equal(instance.packageSpecified('BigDecimal'), false);
});
test('isKeyword', () => {
- assert.equal(INSTANCE.isKeyword('abstract'), true);
- assert.equal(INSTANCE.isKeyword('Abstract'), true);
- assert.equal(INSTANCE.isKeyword('abra kadabra'), false);
- assert.equal(INSTANCE.isKeyword(undefined), false);
- assert.equal(INSTANCE.isKeyword(null), false);
- assert.equal(INSTANCE.isKeyword(''), false);
- assert.equal(INSTANCE.isKeyword(' '), false);
+ assert.equal(instance.isKeyword('abstract'), true);
+ assert.equal(instance.isKeyword('Abstract'), true);
+ assert.equal(instance.isKeyword('abra kadabra'), false);
+ assert.equal(instance.isKeyword(), false);
+ assert.equal(instance.isKeyword(null), false);
+ assert.equal(instance.isKeyword(''), false);
+ assert.equal(instance.isKeyword(' '), false);
});
test('isPrimitive', () => {
- assert.equal(INSTANCE.isPrimitive('boolean'), true);
+ assert.equal(instance.isPrimitive('boolean'), true);
});
test('validUUID', () => {
- assert.equal(INSTANCE.validUUID('123e4567-e89b-12d3-a456-426655440000'), true);
- assert.equal(INSTANCE.validUUID('12345'), false);
- assert.equal(INSTANCE.validUUID(undefined), false);
- assert.equal(INSTANCE.validUUID(null), false);
- assert.equal(INSTANCE.validUUID(''), false);
- assert.equal(INSTANCE.validUUID(' '), false);
+ assert.equal(instance.validUUID('123e4567-e89b-12d3-a456-426655440000'), true);
+ assert.equal(instance.validUUID('12345'), false);
+ assert.equal(instance.validUUID(), false);
+ assert.equal(instance.validUUID(null), false);
+ assert.equal(instance.validUUID(''), false);
+ assert.equal(instance.validUUID(' '), false);
});
});
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/test/unit/SharpTransformer.test.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/test/unit/SharpTransformer.test.js b/modules/web-console/frontend/test/unit/SharpTransformer.test.js
index 20de266..3fb9265 100644
--- a/modules/web-console/frontend/test/unit/SharpTransformer.test.js
+++ b/modules/web-console/frontend/test/unit/SharpTransformer.test.js
@@ -18,7 +18,7 @@
import generator from '../../app/modules/configuration/generator/PlatformGenerator';
import transformer from '../../app/modules/configuration/generator/SharpTransformer.service';
-import { assert } from 'chai';
+import { suite, test } from 'mocha';
suite.skip('SharpTransformerTestsSuite', () => {
test('AtomicConfiguration', () => {
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/test/unit/SpringTransformer.test.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/test/unit/SpringTransformer.test.js b/modules/web-console/frontend/test/unit/SpringTransformer.test.js
index 7998f66..e96cab3 100644
--- a/modules/web-console/frontend/test/unit/SpringTransformer.test.js
+++ b/modules/web-console/frontend/test/unit/SpringTransformer.test.js
@@ -20,7 +20,7 @@ import JavaTypes from '../../app/services/JavaTypes.service.js';
import generator from '../../app/modules/configuration/generator/ConfigurationGenerator';
import transformer from '../../app/modules/configuration/generator/SpringTransformer.service';
-import { assert } from 'chai';
+import { suite, test } from 'mocha';
suite.skip('SpringTransformerTestsSuite', () => {
test('AtomicConfiguration', () => {
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/test/unit/SqlTypes.test.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/test/unit/SqlTypes.test.js b/modules/web-console/frontend/test/unit/SqlTypes.test.js
index 2d54bdf..17f899c 100644
--- a/modules/web-console/frontend/test/unit/SqlTypes.test.js
+++ b/modules/web-console/frontend/test/unit/SqlTypes.test.js
@@ -19,6 +19,7 @@ import SqlTypes from '../../app/services/SqlTypes.service.js';
const INSTANCE = new SqlTypes();
+import { suite, test } from 'mocha';
import { assert } from 'chai';
suite('SqlTypesTestsSuite', () => {
@@ -27,7 +28,7 @@ suite('SqlTypesTestsSuite', () => {
assert.equal(INSTANCE.validIdentifier('java.math.BigDecimal'), false);
assert.equal(INSTANCE.validIdentifier('2Demo'), false);
assert.equal(INSTANCE.validIdentifier('abra kadabra'), false);
- assert.equal(INSTANCE.validIdentifier(undefined), false);
+ assert.equal(INSTANCE.validIdentifier(), false);
assert.equal(INSTANCE.validIdentifier(null), false);
assert.equal(INSTANCE.validIdentifier(''), false);
assert.equal(INSTANCE.validIdentifier(' '), false);
@@ -38,7 +39,7 @@ suite('SqlTypesTestsSuite', () => {
assert.equal(INSTANCE.isKeyword('Group'), true);
assert.equal(INSTANCE.isKeyword('select'), true);
assert.equal(INSTANCE.isKeyword('abra kadabra'), false);
- assert.equal(INSTANCE.isKeyword(undefined), false);
+ assert.equal(INSTANCE.isKeyword(), false);
assert.equal(INSTANCE.isKeyword(null), false);
assert.equal(INSTANCE.isKeyword(''), false);
assert.equal(INSTANCE.isKeyword(' '), false);
@@ -47,5 +48,5 @@ suite('SqlTypesTestsSuite', () => {
test('findJdbcType', () => {
assert.equal(INSTANCE.findJdbcType(0).dbName, 'NULL');
assert.equal(INSTANCE.findJdbcType(5555).dbName, 'Unknown');
- })
+ });
});
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/test/unit/UserAuth.test.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/test/unit/UserAuth.test.js b/modules/web-console/frontend/test/unit/UserAuth.test.js
index dbba1f6..7b6b24c 100644
--- a/modules/web-console/frontend/test/unit/UserAuth.test.js
+++ b/modules/web-console/frontend/test/unit/UserAuth.test.js
@@ -15,7 +15,9 @@
* limitations under the License.
*/
-import AuthService from '../../app/modules/user/Auth.service';
+// import AuthService from '../../app/modules/user/Auth.service';
+
+import { suite, test } from 'mocha';
suite('AuthServiceTestsSuite', () => {
test('SignIn', (done) => {
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/test/unit/Version.test.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/test/unit/Version.test.js b/modules/web-console/frontend/test/unit/Version.test.js
index 72685ea..d8c8f65 100644
--- a/modules/web-console/frontend/test/unit/Version.test.js
+++ b/modules/web-console/frontend/test/unit/Version.test.js
@@ -19,6 +19,7 @@ import VersionService from '../../app/modules/configuration/Version.service';
const INSTANCE = new VersionService();
+import { suite, test } from 'mocha';
import { assert } from 'chai';
suite('VersionServiceTestsSuite', () => {
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/test/unit/defaultName.filter.test.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/test/unit/defaultName.filter.test.js b/modules/web-console/frontend/test/unit/defaultName.filter.test.js
index 5f28290..2eaf223 100644
--- a/modules/web-console/frontend/test/unit/defaultName.filter.test.js
+++ b/modules/web-console/frontend/test/unit/defaultName.filter.test.js
@@ -17,22 +17,25 @@
import defaultName from '../../app/filters/default-name.filter';
+import { suite, test } from 'mocha';
import { assert } from 'chai';
-const INSTANCE = defaultName[0]();
+const instance = defaultName[0]();
suite('defaultName', () => {
test('defaultName filter', () => {
- assert.equal(INSTANCE(''), '<default>');
- assert.equal(INSTANCE(null), '<default>');
- assert.equal(INSTANCE(undefined), '<default>');
- assert.equal(INSTANCE('', false), '<default>');
- assert.equal(INSTANCE(null, false), '<default>');
- assert.equal(INSTANCE(undefined, false), '<default>');
- assert.equal(INSTANCE('', true), '<default>');
- assert.equal(INSTANCE(null, true), '<default>');
- assert.equal(INSTANCE(undefined, true), '<default>');
- assert.equal(INSTANCE("name", false), 'name');
- assert.equal(INSTANCE("name", true), 'name');
+ let undef;
+
+ assert.equal(instance(''), '<default>');
+ assert.equal(instance(null), '<default>');
+ assert.equal(instance(), '<default>');
+ assert.equal(instance('', false), '<default>');
+ assert.equal(instance(null, false), '<default>');
+ assert.equal(instance(undef, false), '<default>');
+ assert.equal(instance('', true), '<default>');
+ assert.equal(instance(null, true), '<default>');
+ assert.equal(instance(undef, true), '<default>');
+ assert.equal(instance('name', false), 'name');
+ assert.equal(instance('name', true), 'name');
});
});
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/403.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/403.jade b/modules/web-console/frontend/views/403.jade
deleted file mode 100644
index 38d8bb5..0000000
--- a/modules/web-console/frontend/views/403.jade
+++ /dev/null
@@ -1,22 +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 includes/header
-
-.error-page
- .container
- h1.error-page__title 403
- h2.error-page__description You are not authorized
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/403.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/403.pug b/modules/web-console/frontend/views/403.pug
new file mode 100644
index 0000000..38d8bb5
--- /dev/null
+++ b/modules/web-console/frontend/views/403.pug
@@ -0,0 +1,22 @@
+//-
+ 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 includes/header
+
+.error-page
+ .container
+ h1.error-page__title 403
+ h2.error-page__description You are not authorized
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/404.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/404.jade b/modules/web-console/frontend/views/404.jade
deleted file mode 100644
index 7d2fc55..0000000
--- a/modules/web-console/frontend/views/404.jade
+++ /dev/null
@@ -1,22 +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 includes/header
-
-.error-page
- .container
- h1.error-page__title 404
- h2.error-page__description Page not found
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/404.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/404.pug b/modules/web-console/frontend/views/404.pug
new file mode 100644
index 0000000..7d2fc55
--- /dev/null
+++ b/modules/web-console/frontend/views/404.pug
@@ -0,0 +1,22 @@
+//-
+ 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 includes/header
+
+.error-page
+ .container
+ h1.error-page__title 404
+ h2.error-page__description Page not found
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/base.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/base.jade b/modules/web-console/frontend/views/base.jade
deleted file mode 100644
index a910d1b..0000000
--- a/modules/web-console/frontend/views/base.jade
+++ /dev/null
@@ -1,22 +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 includes/header
-
-.container.body-container
- .main-content(ui-view='')
-
-include includes/footer
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/base.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/base.pug b/modules/web-console/frontend/views/base.pug
new file mode 100644
index 0000000..b05cdba
--- /dev/null
+++ b/modules/web-console/frontend/views/base.pug
@@ -0,0 +1,22 @@
+//-
+ 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 ./includes/header
+
+.container.body-container
+ .main-content(ui-view='')
+
+include ./includes/footer
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/views/configuration/caches.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/configuration/caches.jade b/modules/web-console/frontend/views/configuration/caches.jade
deleted file mode 100644
index 73a6309..0000000
--- a/modules/web-console/frontend/views/configuration/caches.jade
+++ /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.jade
-
-.docs-header
- h1 Configure Ignite Caches
-.docs-body(ng-controller='cachesController')
- 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.jade
- include /app/modules/states/configuration/caches/memory.jade
- include /app/modules/states/configuration/caches/query.jade
- include /app/modules/states/configuration/caches/store.jade
-
- +advanced-options-toggle-default
-
- div(ng-show='ui.expanded')
- include /app/modules/states/configuration/caches/affinity.jade
- include /app/modules/states/configuration/caches/concurrency.jade
- include /app/modules/states/configuration/caches/near-cache-client.jade
- include /app/modules/states/configuration/caches/near-cache-server.jade
- include /app/modules/states/configuration/caches/node-filter.jade
- include /app/modules/states/configuration/caches/rebalance.jade
- include /app/modules/states/configuration/caches/statistics.jade
-
- +advanced-options-toggle-default
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/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
new file mode 100644
index 0000000..fca41a8
--- /dev/null
+++ b/modules/web-console/frontend/views/configuration/caches.tpl.pug
@@ -0,0 +1,55 @@
+//-
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+include /app/helpers/jade/mixins
+
+.docs-header
+ h1 Configure Ignite Caches
+.docs-body(ng-controller='cachesController')
+ 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/1080e686/modules/web-console/frontend/views/configuration/clusters.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/views/configuration/clusters.jade b/modules/web-console/frontend/views/configuration/clusters.jade
deleted file mode 100644
index 7826464..0000000
--- a/modules/web-console/frontend/views/configuration/clusters.jade
+++ /dev/null
@@ -1,68 +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.jade
-
-.docs-header
- h1 Configure Ignite Clusters
-.docs-body(ng-controller='clustersController')
- 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.jade
-
- +advanced-options-toggle-default
-
- div(ng-show='ui.expanded')
- include /app/modules/states/configuration/clusters/atomic.jade
- include /app/modules/states/configuration/clusters/binary.jade
- include /app/modules/states/configuration/clusters/cache-key-cfg.jade
- include /app/modules/states/configuration/clusters/checkpoint.jade
- include /app/modules/states/configuration/clusters/collision.jade
- include /app/modules/states/configuration/clusters/communication.jade
- include /app/modules/states/configuration/clusters/connector.jade
- include /app/modules/states/configuration/clusters/deployment.jade
- include /app/modules/states/configuration/clusters/discovery.jade
- include /app/modules/states/configuration/clusters/events.jade
- include /app/modules/states/configuration/clusters/failover.jade
- include /app/modules/states/configuration/clusters/igfs.jade
- include /app/modules/states/configuration/clusters/load-balancing.jade
- include /app/modules/states/configuration/clusters/logger.jade
- include /app/modules/states/configuration/clusters/marshaller.jade
- include /app/modules/states/configuration/clusters/metrics.jade
- include /app/modules/states/configuration/clusters/odbc.jade
- include /app/modules/states/configuration/clusters/ssl.jade
- include /app/modules/states/configuration/clusters/swap.jade
- include /app/modules/states/configuration/clusters/thread.jade
- include /app/modules/states/configuration/clusters/time.jade
- include /app/modules/states/configuration/clusters/transactions.jade
- include /app/modules/states/configuration/clusters/attributes.jade
-
- +advanced-options-toggle-default
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/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
new file mode 100644
index 0000000..c979012
--- /dev/null
+++ b/modules/web-console/frontend/views/configuration/clusters.tpl.pug
@@ -0,0 +1,68 @@
+//-
+ 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(ng-controller='clustersController')
+ 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
+ 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
+ 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/igfs
+ include /app/modules/states/configuration/clusters/load-balancing
+ include /app/modules/states/configuration/clusters/logger
+ include /app/modules/states/configuration/clusters/marshaller
+ include /app/modules/states/configuration/clusters/metrics
+ include /app/modules/states/configuration/clusters/odbc
+ include /app/modules/states/configuration/clusters/ssl
+ 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
[05/15] ignite git commit: IGNITE-4659 Migration to Webpack 2.
Upgrade template engine from jade to pug.
Posted by an...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/domains/query.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/domains/query.pug b/modules/web-console/frontend/app/modules/states/configuration/domains/query.pug
new file mode 100644
index 0000000..a057f59
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/domains/query.pug
@@ -0,0 +1,172 @@
+//-
+ 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
+
+-var form = 'query'
+-var model = 'backupItem'
+-var queryFields = `${model}.fields`
+-var queryAliases = `${model}.aliases`
+-var queryIndexes = `${model}.indexes`
+-var queryFieldsForm = 'queryFields'
+-var queryAliasesForm = 'queryAliases'
+-var queryIndexesForm = 'queryIndexes'
+
+// LEGACY mixin for LEGACY index fields table.
+mixin table-index-item-edit(prefix, index, sortAvailable, idAddition)
+ -var fieldName = `${prefix}FieldName`
+ -var direction = `${prefix}Direction`
+
+ -var fieldNameModel = `indexesTbl.${fieldName}`
+ -var directionModel = `indexesTbl.${direction}`
+
+ -var btnVisible = `tableIndexItemSaveVisible(indexesTbl, ${index})`
+ -var btnSave = `tableIndexItemSave(indexesTbl, itemIndex, ${index})`
+ -var btnVisibleAndSave = `${btnVisible} && ${btnSave}`
+
+ div(ng-if=sortAvailable)
+ .col-xs-8.col-sm-8.col-md-8
+ label.fieldSep /
+ .input-tip
+ button.select-toggle.form-control(id=`{{::'${fieldName}' + ${idAddition}}}` ignite-on-enter-focus-move=`{{::'${direction}S' + ${idAddition}}}` ng-model=fieldNameModel placeholder=`{{fields('${prefix}', ${fieldNameModel}).length > 0 ? 'Choose field' : 'No fields configured'}}` bs-select bs-options=`item.value as item.label for item in fields('${prefix}', ${fieldNameModel})` ng-disabled=`fields('${prefix}', ${fieldNameModel}).length === 0` ignite-on-escape='tableReset(false)' tabindex='0')
+ .col-xs-4.col-sm-4.col-md-4
+ +btn-save(btnVisible, btnSave)
+ .input-tip
+ button.select-toggle.form-control(id=`{{::'${direction}' + ${idAddition}}}` ng-model=directionModel bs-select bs-options='item.value as item.label for item in {{sortDirections}}' ignite-on-enter=btnVisibleAndSave ignite-on-escape='tableReset(false)' tabindex='0')
+ .col-xs-12(ng-if=`!(${sortAvailable})`)
+ +btn-save(btnVisible, btnSave)
+ .input-tip
+ button.select-toggle.form-control(id=`{{::'${fieldName}' + ${idAddition}}}` ng-model=fieldNameModel placeholder=`{{fields('${prefix}', ${fieldNameModel}).length > 0 ? 'Choose index field' : 'No fields configured'}}` bs-select bs-options=`item.value as item.label for item in fields('${prefix}', ${fieldNameModel})` ng-disabled=`fields('${prefix}', ${fieldNameModel}).length === 0` ignite-on-escape='tableReset(false)' tabindex='0')
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle)
+ ignite-form-panel-chevron
+ label(id='query-title') Domain model for SQL query
+ ignite-form-field-tooltip.tipLabel
+ | Domain model properties for fields queries#[br]
+ | #[a(href='https://apacheignite.readme.io/docs/cache-queries' target='_blank') More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id='query')
+ .panel-body
+ .col-sm-6
+ .content-not-available(ng-if=`${model}.queryMetadata === 'Annotations'`)
+ label Not available for annotated types
+ div(ng-if=`${model}.queryMetadata === 'Configuration'`)
+ .settings-row
+ +ignite-form-group(ng-model=queryFields ng-form=queryFieldsForm)
+ ignite-form-field-label(id='queryFields')
+ | Fields
+ ignite-form-group-tooltip
+ | Collection of name-to-type mappings to be queried, in addition to indexed fields
+ ignite-form-group-add(ng-click='tableNewItem(queryFieldsTbl)')
+ | Add field to query
+ .group-content-empty(ng-if=`!((${queryFields} && ${queryFields}.length > 0) || tableNewItemActive(queryFieldsTbl))`)
+ | Not defined
+ .group-content(ng-show=`(${queryFields} && ${queryFields}.length > 0) || tableNewItemActive(queryFieldsTbl)`)
+ table.links-edit(id='fields' st-table=queryFields)
+ tbody
+ tr(ng-repeat=`item in ${queryFields} track by $index`)
+ td.col-sm-12(ng-hide='tableEditing(queryFieldsTbl, $index)')
+ a.labelFormField(ng-click='tableStartEdit(backupItem, queryFieldsTbl, $index)') {{item.name}} / {{item.className}}
+ +btn-remove('tableRemove(backupItem, queryFieldsTbl, $index)', '"Remove path"')
+ td.col-sm-12(ng-show='tableEditing(queryFieldsTbl, $index)')
+ +table-pair-edit('queryFieldsTbl', 'cur', 'Field name', 'Field full class name', false, true, '{{::queryFieldsTbl.focusId + $index}}', '$index', '/')
+ tfoot(ng-show='tableNewItemActive(queryFieldsTbl)')
+ tr
+ td.col-sm-12
+ +table-pair-edit('queryFieldsTbl', 'new', 'Field name', 'Field full class name', false, true, '{{::queryFieldsTbl.focusId + $index}}', '-1', '/')
+ .settings-row
+ +ignite-form-group(ng-model=queryAliases ng-form=queryAliasesForm)
+ ignite-form-field-label
+ | Aliases
+ ignite-form-group-tooltip
+ | Mapping from full property name in dot notation to an alias that will be used as SQL column name
+ | For example: "parent.name" as "parentName"
+ ignite-form-group-add(ng-click='tableNewItem(aliasesTbl)')
+ | Add alias to query
+ .group-content-empty(ng-if=`!((${queryAliases} && ${queryAliases}.length > 0) || tableNewItemActive(aliasesTbl))`)
+ | Not defined
+ .group-content(ng-show=`(${queryAliases} && ${queryAliases}.length > 0) || tableNewItemActive(aliasesTbl)`)
+ table.links-edit(id='aliases' st-table=queryAliases)
+ tbody
+ tr(ng-repeat=`item in ${queryAliases} track by $index`)
+ td.col-sm-12(ng-hide='tableEditing(aliasesTbl, $index)')
+ a.labelFormField(ng-click='tableStartEdit(backupItem, aliasesTbl, $index)') {{item.field}} → {{item.alias}}
+ +btn-remove('tableRemove(backupItem, aliasesTbl, $index)', '"Remove alias"')
+ td.col-sm-12(ng-show='tableEditing(aliasesTbl, $index)')
+ +table-pair-edit('aliasesTbl', 'cur', 'Field name', 'Field Alias', false, false, '{{::aliasesTbl.focusId + $index}}', '$index', '→')
+ tfoot(ng-show='tableNewItemActive(aliasesTbl)')
+ tr
+ td.col-sm-12
+ +table-pair-edit('aliasesTbl', 'new', 'Field name', 'Field Alias', false, false, '{{::aliasesTbl.focusId + $index}}', '-1', '→')
+ .settings-row(ng-init='indexesTbl={type: "table-indexes", model: "indexes", focusId: "IndexName", ui: "table-indexes"}')
+ +ignite-form-group(ng-model=queryIndexes ng-form=queryIndexesForm)
+ ignite-form-field-label
+ | Indexes
+ ignite-form-group-tooltip
+ | Collection of indexes
+ ignite-form-group-add(ng-click='tableNewItem(indexesTbl)')
+ | Add new index
+ .group-content-empty(id='indexes-add' ng-show=`!((${queryIndexes} && ${queryIndexes}.length > 0) || tableNewItemActive(indexesTbl))`)
+ | Not defined
+ .group-content(ng-show=`(${queryIndexes} && ${queryIndexes}.length > 0) || tableNewItemActive(indexesTbl)`)
+ -var btnVisibleAndSave = 'tableIndexSaveVisible(indexesTbl, $index) && tableIndexSave(indexesTbl, $index)'
+
+ table.links-edit(st-table=queryIndexes ng-init='newDirection = false')
+ tbody
+ tr(ng-repeat=`item in ${queryIndexes} track by $index`)
+ td
+ .col-sm-12(ng-hide='tableEditing(indexesTbl, $index)')
+ a.labelFormField(id='indexes{{$index}}' ng-click='tableStartEdit(backupItem, indexesTbl, $index)') {{$index + 1}}) {{item.name}} [{{item.indexType}}]
+ +btn-remove('tableRemove(backupItem, indexesTbl, $index)', '"Remove index"')
+ +btn-add('tableIndexNewItem(indexesTbl, $index)', '"Add new field to index"')
+ div(ng-show='tableEditing(indexesTbl, $index)')
+ .col-sm-7
+ label.fieldSep /
+ .input-tip
+ input.form-control(id='curIndexName{{$index}}' type='text' ignite-on-enter-focus-move='curIndexType{{$index}}' ng-model='indexesTbl.curIndexName' placeholder='Index name' ignite-on-enter=btnVisibleAndSave ignite-on-escape='tableReset(false)')
+ .col-sm-5
+ +btn-save('tableIndexSaveVisible(indexesTbl, $index)', 'tableIndexSave(indexesTbl, $index)')
+ .input-tip
+ button.select-toggle.form-control(id='curIndexType{{$index}}' bs-select ng-model='indexesTbl.curIndexType' data-placeholder='Select index type' bs-options='item.value as item.label for item in indexType' tabindex='0' ignite-on-enter=btnVisibleAndSave ignite-on-escape='tableReset(false)')
+ .margin-left-dflt
+ table.links-edit-sub(st-table='item.fields' ng-init='itemIndex = $index')
+ tbody
+ tr(ng-repeat='itemItem in item.fields track by $index')
+ td
+ div(ng-hide='tableIndexItemEditing(indexesTbl, itemIndex, $index)')
+ a.labelFormField(ng-if='item.indexType == "SORTED"' ng-click='tableIndexItemStartEdit(indexesTbl, itemIndex, $index)') {{$index + 1}}) {{itemItem.name}} / {{itemItem.direction ? "ASC" : "DESC"}}
+ a.labelFormField(ng-if='item.indexType != "SORTED"' ng-click='tableIndexItemStartEdit(indexesTbl, itemIndex, $index)') {{$index + 1}}) {{itemItem.name}}
+ +btn-remove('tableRemoveIndexItem(item, $index)', '"Remove field from index"')
+ div(ng-show='tableIndexItemEditing(indexesTbl, itemIndex, $index)')
+ +table-index-item-edit('cur', '$index', 'item.indexType == "SORTED"', 'itemIndex + "-" + $index')
+ tfoot(ng-show='tableIndexNewItemActive(indexesTbl, itemIndex)')
+ tr(style='padding-left: 18px')
+ td
+ +table-index-item-edit('new', '-1', 'item.indexType == "SORTED"', 'itemIndex')
+ tfoot(ng-show='tableNewItemActive(indexesTbl)')
+ tr
+ td
+ .col-sm-7
+ .fieldSep /
+ .input-tip
+ input#newIndexName.form-control(type='text' ignite-on-enter-focus-move='newIndexType' ng-model='indexesTbl.newIndexName' placeholder='Index name' ignite-on-enter='tableIndexSaveVisible(indexesTbl, -1) && tableIndexSave(indexesTbl, -1)' ignite-on-escape='tableReset(false)')
+ .col-sm-5
+ +btn-save('tableIndexSaveVisible(indexesTbl, -1)', 'tableIndexSave(indexesTbl, -1)')
+ .input-tip
+ button#newIndexType.select-toggle.form-control(bs-select ng-model='indexesTbl.newIndexType' data-placeholder='Select index type' bs-options='item.value as item.label for item in indexType' tabindex='0' ignite-on-enter=btnVisibleAndSave ignite-on-escape='tableReset(false)')
+ .col-sm-6
+ +preview-xml-java(model, 'domainModelQuery')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/domains/store.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/domains/store.jade b/modules/web-console/frontend/app/modules/states/configuration/domains/store.jade
deleted file mode 100644
index f5d6b7d..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/domains/store.jade
+++ /dev/null
@@ -1,127 +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.jade
-
--var form = 'store'
--var model = 'backupItem'
--var keyFields = model + '.keyFields'
--var valueFields = model + '.valueFields'
--var keyFieldsForm = 'storeKeyFields'
--var valueFieldsForm = 'storeValueFields'
-
-//- LEGACY mixin for LEGACY db fields tables.
-mixin table-db-field-edit(tbl, prefix, focusId, index)
- -var databaseName = prefix + 'DatabaseFieldName'
- -var databaseType = prefix + 'DatabaseFieldType'
- -var javaName = prefix + 'JavaFieldName'
- -var javaType = prefix + 'JavaFieldType'
-
- -var databaseNameModel = tbl + '.' + databaseName
- -var databaseTypeModel = tbl + '.' + databaseType
- -var javaNameModel = tbl + '.' + javaName
- -var javaTypeModel = tbl + '.' + javaType
-
- -var databaseNameId = databaseName + focusId
- -var databaseTypeId = databaseType + focusId
- -var javaNameId = javaName + focusId
- -var javaTypeId = javaType + focusId
-
- .col-xs-3.col-sm-3.col-md-3
- .fieldSep /
- .input-tip
- input.form-control(id=databaseNameId ignite-on-enter-focus-move=databaseTypeId type='text' ng-model=databaseNameModel placeholder='DB name' ignite-on-enter='#{javaNameModel} = #{javaNameModel} ? #{javaNameModel} : #{databaseNameModel}' ignite-on-escape='tableReset(false)')
- .col-xs-3.col-sm-3.col-md-3
- .fieldSep /
- .input-tip
- button.select-toggle.form-control(id=databaseTypeId ignite-on-enter-focus-move=javaNameId ng-model=databaseTypeModel data-placeholder='DB type' ng-class='{placeholder: !#{databaseTypeModel}}' bs-select bs-options='item.value as item.label for item in {{supportedJdbcTypes}}' ignite-on-escape='tableReset(false)' tabindex='0')
- .col-xs-3.col-sm-3.col-md-3
- .fieldSep /
- .input-tip
- input.form-control(id=javaNameId ignite-on-enter-focus-move=javaTypeId type='text' ng-model=javaNameModel placeholder='Java name' ignite-on-escape='tableReset(false)')
- .col-xs-3.col-sm-3.col-md-3
- -var btnVisible = 'tableDbFieldSaveVisible(' + tbl + ', ' + index +')'
- -var btnSave = 'tableDbFieldSave(' + tbl + ', ' + index +')'
- -var btnVisibleAndSave = btnVisible + ' && ' + btnSave
-
- +btn-save(btnVisible, btnSave)
- .input-tip
- button.select-toggle.form-control(id=javaTypeId ng-model=javaTypeModel data-placeholder='Java type' ng-class='{placeholder: !#{javaTypeModel}}' bs-select bs-options='item.value as item.label for item in {{supportedJavaTypes}}' ignite-on-enter=btnVisibleAndSave ignite-on-escape='tableReset(false)' tabindex='0')
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle='' ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label(id='store-title') Domain model for cache store
- ignite-form-field-tooltip.tipLabel
- | Domain model properties for binding database with cache via POJO cache store#[br]
- | #[a(href="https://apacheignite.readme.io/docs/persistent-store" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +text('Database schema:', model + '.databaseSchema', '"databaseSchema"', 'false', 'Input DB schema name', 'Schema name in database')
- .settings-row
- +text('Database table:', model + '.databaseTable', '"databaseTable"', 'false', 'Input DB table name', 'Table name in database')
- .settings-row(ng-init='keysTbl={type: "table-db-fields", model: "keyFields", focusId: "KeyField", ui: "table-db-fields"}')
- +ignite-form-group(ng-form=keyFieldsForm ng-model=keyFields)
- ignite-form-field-label(id='keyFields')
- | Key fields
- ignite-form-group-tooltip
- | Collection of key fields descriptions for CacheJdbcPojoStore
- ignite-form-group-add(ng-click='tableNewItem(keysTbl)')
- | Add key field
- .group-content-empty(ng-show='!((#{keyFields} && #{keyFields}.length > 0) || tableNewItemActive(keysTbl))') Not defined
- .group-content(ng-show='(#{keyFields} && #{keyFields}.length > 0) || tableNewItemActive(keysTbl)')
- table.links-edit(st-table=keyFields)
- tbody
- tr(ng-repeat='item in #{keyFields} track by $index')
- td
- div(ng-hide='tableEditing(keysTbl, $index)')
- a.labelFormField(ng-click='tableStartEdit(backupItem, keysTbl, $index)') {{$index + 1}}) {{item.databaseFieldName}} / {{item.databaseFieldType}} / {{item.javaFieldName}} / {{item.javaFieldType}}
- +btn-remove('tableRemove(backupItem, keysTbl, $index)', '"Remove key field"')
- div(ng-if='tableEditing(keysTbl, $index)')
- +table-db-field-edit('keysTbl', 'cur', '{{::keysTbl.focusId + $index}}', '$index')
- tfoot(ng-show='tableNewItemActive(keysTbl)')
- tr
- td
- +table-db-field-edit('keysTbl', 'new', 'KeyField', '-1')
- .settings-row(ng-init='valuesTbl={type: "table-db-fields", model: "valueFields", focusId: "ValueField", ui: "table-db-fields"}')
- +ignite-form-group(ng-form=valueFieldsForm ng-model=valueFields)
- ignite-form-field-label(id='valueFields')
- | Value fields
- ignite-form-group-tooltip
- | Collection of value fields descriptions for CacheJdbcPojoStore
- ignite-form-group-add(ng-click='tableNewItem(valuesTbl)')
- | Add value field
- .group-content-empty(ng-show='!((#{valueFields} && #{valueFields}.length > 0) || tableNewItemActive(valuesTbl))') Not defined
- .group-content(ng-show='(#{valueFields} && #{valueFields}.length > 0) || tableNewItemActive(valuesTbl)')
- table.links-edit(st-table=valueFields)
- tbody
- tr(ng-repeat='item in #{valueFields} track by $index')
- td
- div(ng-hide='tableEditing(valuesTbl, $index)')
- a.labelFormField(ng-click='tableStartEdit(backupItem, valuesTbl, $index)') {{$index + 1}}) {{item.databaseFieldName}} / {{item.databaseFieldType}} / {{item.javaFieldName}} / {{item.javaFieldType}}
- +btn-remove('tableRemove(backupItem, valuesTbl, $index)', '"Remove key field"')
- div(ng-if='tableEditing(valuesTbl, $index)')
- +table-db-field-edit('valuesTbl', 'cur', '{{::valuesTbl.focusId + $index}}', '$index')
- tfoot(ng-show='tableNewItemActive(valuesTbl)')
- tr
- td
- +table-db-field-edit('valuesTbl', 'new', 'ValueField', '-1')
- .col-sm-6
- +preview-xml-java(model, 'domainStore')
-
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/domains/store.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/domains/store.pug b/modules/web-console/frontend/app/modules/states/configuration/domains/store.pug
new file mode 100644
index 0000000..4dee986
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/domains/store.pug
@@ -0,0 +1,127 @@
+//-
+ 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
+
+-var form = 'store'
+-var model = 'backupItem'
+-var keyFields = `${model}.keyFields`
+-var valueFields = `${model}.valueFields`
+-var keyFieldsForm = 'storeKeyFields'
+-var valueFieldsForm = 'storeValueFields'
+
+//- LEGACY mixin for LEGACY db fields tables.
+mixin table-db-field-edit(tbl, prefix, focusId, index)
+ -var databaseName = `${prefix}DatabaseFieldName`
+ -var databaseType = `${prefix}DatabaseFieldType`
+ -var javaName = `${prefix}JavaFieldName`
+ -var javaType = `${prefix}JavaFieldType`
+
+ -var databaseNameModel = `${tbl}.${databaseName}`
+ -var databaseTypeModel = `${tbl}.${databaseType}`
+ -var javaNameModel = `${tbl}.${javaName}`
+ -var javaTypeModel = `${tbl}.${javaType}`
+
+ -var databaseNameId = `${databaseName}${focusId}`
+ -var databaseTypeId = `${databaseType}${focusId}`
+ -var javaNameId = `${javaName}${focusId}`
+ -var javaTypeId = `${javaType}${focusId}`
+
+ .col-xs-3.col-sm-3.col-md-3
+ .fieldSep /
+ .input-tip
+ input.form-control(id=databaseNameId ignite-on-enter-focus-move=databaseTypeId type='text' ng-model=databaseNameModel placeholder='DB name' ignite-on-enter=`${javaNameModel} = ${javaNameModel} ? ${javaNameModel} : ${databaseNameModel}` ignite-on-escape='tableReset(false)')
+ .col-xs-3.col-sm-3.col-md-3
+ .fieldSep /
+ .input-tip
+ button.select-toggle.form-control(id=databaseTypeId ignite-on-enter-focus-move=javaNameId ng-model=databaseTypeModel data-placeholder='DB type' ng-class=`{placeholder: !${databaseTypeModel}}` bs-select bs-options='item.value as item.label for item in {{supportedJdbcTypes}}' ignite-on-escape='tableReset(false)' tabindex='0')
+ .col-xs-3.col-sm-3.col-md-3
+ .fieldSep /
+ .input-tip
+ input.form-control(id=javaNameId ignite-on-enter-focus-move=javaTypeId type='text' ng-model=javaNameModel placeholder='Java name' ignite-on-escape='tableReset(false)')
+ .col-xs-3.col-sm-3.col-md-3
+ -var btnVisible = `tableDbFieldSaveVisible(${tbl}, ${index})`
+ -var btnSave = `tableDbFieldSave(${tbl}, ${index})`
+ -var btnVisibleAndSave = `${btnVisible} && ${btnSave}`
+
+ +btn-save(btnVisible, btnSave)
+ .input-tip
+ button.select-toggle.form-control(id=javaTypeId ng-model=javaTypeModel data-placeholder='Java type' ng-class=`{placeholder: !${javaTypeModel}}` bs-select bs-options='item.value as item.label for item in {{supportedJavaTypes}}' ignite-on-enter=btnVisibleAndSave ignite-on-escape='tableReset(false)' tabindex='0')
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle='' ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label(id='store-title') Domain model for cache store
+ ignite-form-field-tooltip.tipLabel
+ | Domain model properties for binding database with cache via POJO cache store#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/persistent-store" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +text('Database schema:', model + '.databaseSchema', '"databaseSchema"', 'false', 'Input DB schema name', 'Schema name in database')
+ .settings-row
+ +text('Database table:', model + '.databaseTable', '"databaseTable"', 'false', 'Input DB table name', 'Table name in database')
+ .settings-row(ng-init='keysTbl={type: "table-db-fields", model: "keyFields", focusId: "KeyField", ui: "table-db-fields"}')
+ +ignite-form-group(ng-form=keyFieldsForm ng-model=keyFields)
+ ignite-form-field-label(id='keyFields')
+ | Key fields
+ ignite-form-group-tooltip
+ | Collection of key fields descriptions for CacheJdbcPojoStore
+ ignite-form-group-add(ng-click='tableNewItem(keysTbl)')
+ | Add key field
+ .group-content-empty(ng-show=`!((${keyFields} && ${keyFields}.length > 0) || tableNewItemActive(keysTbl))`) Not defined
+ .group-content(ng-show=`(${keyFields} && ${keyFields}.length > 0) || tableNewItemActive(keysTbl)`)
+ table.links-edit(st-table=keyFields)
+ tbody
+ tr(ng-repeat=`item in ${keyFields} track by $index`)
+ td
+ div(ng-hide='tableEditing(keysTbl, $index)')
+ a.labelFormField(ng-click='tableStartEdit(backupItem, keysTbl, $index)') {{$index + 1}}) {{item.databaseFieldName}} / {{item.databaseFieldType}} / {{item.javaFieldName}} / {{item.javaFieldType}}
+ +btn-remove('tableRemove(backupItem, keysTbl, $index)', '"Remove key field"')
+ div(ng-if='tableEditing(keysTbl, $index)')
+ +table-db-field-edit('keysTbl', 'cur', '{{::keysTbl.focusId + $index}}', '$index')
+ tfoot(ng-show='tableNewItemActive(keysTbl)')
+ tr
+ td
+ +table-db-field-edit('keysTbl', 'new', 'KeyField', '-1')
+ .settings-row(ng-init='valuesTbl={type: "table-db-fields", model: "valueFields", focusId: "ValueField", ui: "table-db-fields"}')
+ +ignite-form-group(ng-form=valueFieldsForm ng-model=valueFields)
+ ignite-form-field-label(id='valueFields')
+ | Value fields
+ ignite-form-group-tooltip
+ | Collection of value fields descriptions for CacheJdbcPojoStore
+ ignite-form-group-add(ng-click='tableNewItem(valuesTbl)')
+ | Add value field
+ .group-content-empty(ng-show=`!((${valueFields} && ${valueFields}.length > 0) || tableNewItemActive(valuesTbl))`) Not defined
+ .group-content(ng-show=`(${valueFields} && ${valueFields}.length > 0) || tableNewItemActive(valuesTbl)`)
+ table.links-edit(st-table=valueFields)
+ tbody
+ tr(ng-repeat=`item in ${valueFields} track by $index`)
+ td
+ div(ng-hide='tableEditing(valuesTbl, $index)')
+ a.labelFormField(ng-click='tableStartEdit(backupItem, valuesTbl, $index)') {{$index + 1}}) {{item.databaseFieldName}} / {{item.databaseFieldType}} / {{item.javaFieldName}} / {{item.javaFieldType}}
+ +btn-remove('tableRemove(backupItem, valuesTbl, $index)', '"Remove key field"')
+ div(ng-if='tableEditing(valuesTbl, $index)')
+ +table-db-field-edit('valuesTbl', 'cur', '{{::valuesTbl.focusId + $index}}', '$index')
+ tfoot(ng-show='tableNewItemActive(valuesTbl)')
+ tr
+ td
+ +table-db-field-edit('valuesTbl', 'new', 'ValueField', '-1')
+ .col-sm-6
+ +preview-xml-java(model, 'domainStore')
+
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/igfs/dual.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/igfs/dual.jade b/modules/web-console/frontend/app/modules/states/configuration/igfs/dual.jade
deleted file mode 100644
index f6ac89f..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/igfs/dual.jade
+++ /dev/null
@@ -1,42 +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.jade
-
--var form = 'dualMode'
--var model = 'backupItem'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle='' ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Dual mode
- ignite-form-field-tooltip.tipLabel
- | IGFS supports dual-mode that allows it to work as either a standalone file system in Hadoop cluster, or work in tandem with HDFS, providing a primary caching layer for the secondary HDFS#[br]
- | As a caching layer it provides highly configurable read-through and write-through behaviour
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +number('Maximum pending puts size:', model + '.dualModeMaxPendingPutsSize', '"dualModeMaxPendingPutsSize"', 'true', '0', 'Number.MIN_SAFE_INTEGER',
- 'Maximum amount of pending data read from the secondary file system and waiting to be written to data cache<br/>\
- Zero or negative value stands for unlimited size')
- .settings-row
- +java-class('Put executor service:', model + '.dualModePutExecutorService', '"dualModePutExecutorService"', 'true', 'false', 'DUAL mode put operation executor service')
- .settings-row
- +checkbox('Put executor service shutdown', model + '.dualModePutExecutorServiceShutdown', '"dualModePutExecutorServiceShutdown"', 'DUAL mode put operation executor service shutdown flag')
- .col-sm-6
- +preview-xml-java(model, 'igfsDualMode')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/igfs/dual.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/igfs/dual.pug b/modules/web-console/frontend/app/modules/states/configuration/igfs/dual.pug
new file mode 100644
index 0000000..613070c
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/igfs/dual.pug
@@ -0,0 +1,42 @@
+//-
+ 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
+
+-var form = 'dualMode'
+-var model = 'backupItem'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle='' ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Dual mode
+ ignite-form-field-tooltip.tipLabel
+ | IGFS supports dual-mode that allows it to work as either a standalone file system in Hadoop cluster, or work in tandem with HDFS, providing a primary caching layer for the secondary HDFS#[br]
+ | As a caching layer it provides highly configurable read-through and write-through behaviour
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +number('Maximum pending puts size:', `${model}.dualModeMaxPendingPutsSize`, '"dualModeMaxPendingPutsSize"', 'true', '0', 'Number.MIN_SAFE_INTEGER',
+ 'Maximum amount of pending data read from the secondary file system and waiting to be written to data cache<br/>\
+ Zero or negative value stands for unlimited size')
+ .settings-row
+ +java-class('Put executor service:', `${model}.dualModePutExecutorService`, '"dualModePutExecutorService"', 'true', 'false', 'DUAL mode put operation executor service')
+ .settings-row
+ +checkbox('Put executor service shutdown', `${model}.dualModePutExecutorServiceShutdown`, '"dualModePutExecutorServiceShutdown"', 'DUAL mode put operation executor service shutdown flag')
+ .col-sm-6
+ +preview-xml-java(model, 'igfsDualMode')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/igfs/fragmentizer.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/igfs/fragmentizer.jade b/modules/web-console/frontend/app/modules/states/configuration/igfs/fragmentizer.jade
deleted file mode 100644
index 16f3749..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/igfs/fragmentizer.jade
+++ /dev/null
@@ -1,43 +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.jade
-
--var form = 'fragmentizer'
--var model = 'backupItem'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle='' ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Fragmentizer
- ignite-form-field-tooltip.tipLabel
- | Fragmentizer settings
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- -var enabled = model + '.fragmentizerEnabled'
-
- .settings-row
- +checkbox('Enabled', enabled, '"fragmentizerEnabled"', 'Fragmentizer enabled flag')
- .settings-row
- +number('Concurrent files:', model + '.fragmentizerConcurrentFiles', '"fragmentizerConcurrentFiles"', enabled, '0', '0', 'Number of files to process concurrently by fragmentizer')
- .settings-row
- +number('Throttling block length:', model + '.fragmentizerThrottlingBlockLength', '"fragmentizerThrottlingBlockLength"', enabled, '16777216', '1', 'Length of file chunk to transmit before throttling is delayed')
- .settings-row
- +number('Throttling delay:', model + '.fragmentizerThrottlingDelay', '"fragmentizerThrottlingDelay"', enabled, '200', '0', 'Delay in milliseconds for which fragmentizer is paused')
- .col-sm-6
- +preview-xml-java(model, 'igfsFragmentizer')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/igfs/fragmentizer.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/igfs/fragmentizer.pug b/modules/web-console/frontend/app/modules/states/configuration/igfs/fragmentizer.pug
new file mode 100644
index 0000000..b112697
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/igfs/fragmentizer.pug
@@ -0,0 +1,43 @@
+//-
+ 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
+
+-var form = 'fragmentizer'
+-var model = 'backupItem'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle='' ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Fragmentizer
+ ignite-form-field-tooltip.tipLabel
+ | Fragmentizer settings
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ -var enabled = `${model}.fragmentizerEnabled`
+
+ .settings-row
+ +checkbox('Enabled', enabled, '"fragmentizerEnabled"', 'Fragmentizer enabled flag')
+ .settings-row
+ +number('Concurrent files:', `${model}.fragmentizerConcurrentFiles`, '"fragmentizerConcurrentFiles"', enabled, '0', '0', 'Number of files to process concurrently by fragmentizer')
+ .settings-row
+ +number('Throttling block length:', `${model}.fragmentizerThrottlingBlockLength`, '"fragmentizerThrottlingBlockLength"', enabled, '16777216', '1', 'Length of file chunk to transmit before throttling is delayed')
+ .settings-row
+ +number('Throttling delay:', `${model}.fragmentizerThrottlingDelay`, '"fragmentizerThrottlingDelay"', enabled, '200', '0', 'Delay in milliseconds for which fragmentizer is paused')
+ .col-sm-6
+ +preview-xml-java(model, 'igfsFragmentizer')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/igfs/general.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/igfs/general.jade b/modules/web-console/frontend/app/modules/states/configuration/igfs/general.jade
deleted file mode 100644
index 62cda77..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/igfs/general.jade
+++ /dev/null
@@ -1,57 +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.jade
-
--var form = 'general'
--var model = 'backupItem'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle)
- ignite-form-panel-chevron
- label General
- ignite-form-field-tooltip.tipLabel
- | General IGFS configuration#[br]
- | #[a(href="https://apacheignite-fs.readme.io/docs/in-memory-file-system" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id='general')
- .panel-body
- .col-sm-6
- .settings-row
- +text('Name:', model + '.name', '"igfsName"', 'true', 'Input name', 'IGFS name')
- .settings-row
- +clusters(model, 'Associate clusters with the current IGFS')
- .settings-row
- +dropdown('IGFS mode:', model + '.defaultMode', '"defaultMode"', 'true', 'DUAL_ASYNC',
- '[\
- {value: "PRIMARY", label: "PRIMARY"},\
- {value: "PROXY", label: "PROXY"},\
- {value: "DUAL_SYNC", label: "DUAL_SYNC"},\
- {value: "DUAL_ASYNC", label: "DUAL_ASYNC"}\
- ]',
- 'Mode to specify how IGFS interacts with Hadoop file system\
- <ul>\
- <li>PRIMARY - in this mode IGFS will not delegate to secondary Hadoop file system and will cache all the files in memory only</li>\
- <li>PROXY - in this mode IGFS will not cache any files in memory and will only pass them through to secondary file system</li>\
- <li>DUAL_SYNC - in this mode IGFS will cache files locally and also <b>synchronously</b> write them through to secondary file system</li>\
- <li>DUAL_ASYNC - in this mode IGFS will cache files locally and also <b> asynchronously </b> write them through to secondary file system</li>\
- </ul>')
- .settings-row
- +number('Group size:', model + '.affinnityGroupSize', '"affinnityGroupSize"', 'true', '512', '1',
- 'Size of the group in blocks<br/>\
- Required for construction of affinity mapper in IGFS data cache')
- .col-sm-6
- +preview-xml-java(model, 'igfsGeneral')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/igfs/general.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/igfs/general.pug b/modules/web-console/frontend/app/modules/states/configuration/igfs/general.pug
new file mode 100644
index 0000000..e002d36
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/igfs/general.pug
@@ -0,0 +1,57 @@
+//-
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+include /app/helpers/jade/mixins
+
+-var form = 'general'
+-var model = 'backupItem'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle)
+ ignite-form-panel-chevron
+ label General
+ ignite-form-field-tooltip.tipLabel
+ | General IGFS configuration#[br]
+ | #[a(href="https://apacheignite-fs.readme.io/docs/in-memory-file-system" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id='general')
+ .panel-body
+ .col-sm-6
+ .settings-row
+ +text('Name:', `${model}.name`, '"igfsName"', 'true', 'Input name', 'IGFS name')
+ .settings-row
+ +clusters(model, 'Associate clusters with the current IGFS')
+ .settings-row
+ +dropdown('IGFS mode:', `${model}.defaultMode`, '"defaultMode"', 'true', 'DUAL_ASYNC',
+ '[\
+ {value: "PRIMARY", label: "PRIMARY"},\
+ {value: "PROXY", label: "PROXY"},\
+ {value: "DUAL_SYNC", label: "DUAL_SYNC"},\
+ {value: "DUAL_ASYNC", label: "DUAL_ASYNC"}\
+ ]',
+ 'Mode to specify how IGFS interacts with Hadoop file system\
+ <ul>\
+ <li>PRIMARY - in this mode IGFS will not delegate to secondary Hadoop file system and will cache all the files in memory only</li>\
+ <li>PROXY - in this mode IGFS will not cache any files in memory and will only pass them through to secondary file system</li>\
+ <li>DUAL_SYNC - in this mode IGFS will cache files locally and also <b>synchronously</b> write them through to secondary file system</li>\
+ <li>DUAL_ASYNC - in this mode IGFS will cache files locally and also <b> asynchronously </b> write them through to secondary file system</li>\
+ </ul>')
+ .settings-row
+ +number('Group size:', `${model}.affinnityGroupSize`, '"affinnityGroupSize"', 'true', '512', '1',
+ 'Size of the group in blocks<br/>\
+ Required for construction of affinity mapper in IGFS data cache')
+ .col-sm-6
+ +preview-xml-java(model, 'igfsGeneral')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/igfs/ipc.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/igfs/ipc.jade b/modules/web-console/frontend/app/modules/states/configuration/igfs/ipc.jade
deleted file mode 100644
index 83c5de6..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/igfs/ipc.jade
+++ /dev/null
@@ -1,60 +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.jade
-
--var form = 'ipc'
--var model = 'backupItem'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle='' ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label IPC
- ignite-form-field-tooltip.tipLabel
- | IGFS Inter-process communication properties
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- -var ipcEndpointConfiguration = model + '.ipcEndpointConfiguration'
- -var enabled = model + '.ipcEndpointEnabled'
-
- .settings-row
- +checkbox('Enabled', enabled, '"ipcEndpointEnabled"', 'IPC endpoint enabled flag')
- .settings-row
- +dropdown('Type:', ipcEndpointConfiguration + '.type', '"ipcEndpointConfigurationType"', enabled, 'TCP',
- '[\
- {value: "SHMEM", label: "SHMEM"},\
- {value: "TCP", label: "TCP"}\
- ]',
- 'IPC endpoint type\
- <ul>\
- <li>SHMEM - shared memory endpoint</li>\
- <li>TCP - TCP endpoint</li>\
- </ul>')
- .settings-row
- +text-ip-address('Host:', ipcEndpointConfiguration + '.host', '"ipcEndpointConfigurationHost"', enabled, '127.0.0.1', 'Host endpoint is bound to')
- .settings-row
- +number-min-max('Port:', ipcEndpointConfiguration + '.port', '"ipcEndpointConfigurationPort"', enabled, '10500', '1', '65535', 'Port endpoint is bound to')
- .settings-row
- +number('Memory size:', ipcEndpointConfiguration + '.memorySize', '"ipcEndpointConfigurationMemorySize"', enabled, '262144', '1', 'Shared memory size in bytes allocated for endpoint communication')
- .settings-row
- +text-enabled('Token directory:', ipcEndpointConfiguration + '.tokenDirectoryPath', '"ipcEndpointConfigurationTokenDirectoryPath"', enabled, 'false', 'ipc/shmem', 'Directory where shared memory tokens are stored')
- .settings-row
- +number('Thread count:', ipcEndpointConfiguration + '.threadCount', '"ipcEndpointConfigurationThreadCount"', enabled, 'availableProcessors', '1',
- 'Number of threads used by this endpoint to process incoming requests')
- .col-sm-6
- +preview-xml-java(model, 'igfsIPC')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/igfs/ipc.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/igfs/ipc.pug b/modules/web-console/frontend/app/modules/states/configuration/igfs/ipc.pug
new file mode 100644
index 0000000..7c8c056
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/igfs/ipc.pug
@@ -0,0 +1,60 @@
+//-
+ 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
+
+-var form = 'ipc'
+-var model = 'backupItem'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle='' ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label IPC
+ ignite-form-field-tooltip.tipLabel
+ | IGFS Inter-process communication properties
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ -var ipcEndpointConfiguration = `${model}.ipcEndpointConfiguration`
+ -var enabled = `${model}.ipcEndpointEnabled`
+
+ .settings-row
+ +checkbox('Enabled', enabled, '"ipcEndpointEnabled"', 'IPC endpoint enabled flag')
+ .settings-row
+ +dropdown('Type:', `${ipcEndpointConfiguration}.type`, '"ipcEndpointConfigurationType"', enabled, 'TCP',
+ '[\
+ {value: "SHMEM", label: "SHMEM"},\
+ {value: "TCP", label: "TCP"}\
+ ]',
+ 'IPC endpoint type\
+ <ul>\
+ <li>SHMEM - shared memory endpoint</li>\
+ <li>TCP - TCP endpoint</li>\
+ </ul>')
+ .settings-row
+ +text-ip-address('Host:', `${ipcEndpointConfiguration}.host`, '"ipcEndpointConfigurationHost"', enabled, '127.0.0.1', 'Host endpoint is bound to')
+ .settings-row
+ +number-min-max('Port:', `${ipcEndpointConfiguration}.port`, '"ipcEndpointConfigurationPort"', enabled, '10500', '1', '65535', 'Port endpoint is bound to')
+ .settings-row
+ +number('Memory size:', `${ipcEndpointConfiguration}.memorySize`, '"ipcEndpointConfigurationMemorySize"', enabled, '262144', '1', 'Shared memory size in bytes allocated for endpoint communication')
+ .settings-row
+ +text-enabled('Token directory:', `${ipcEndpointConfiguration}.tokenDirectoryPath`, '"ipcEndpointConfigurationTokenDirectoryPath"', enabled, 'false', 'ipc/shmem', 'Directory where shared memory tokens are stored')
+ .settings-row
+ +number('Thread count:', `${ipcEndpointConfiguration}.threadCount`, '"ipcEndpointConfigurationThreadCount"', enabled, 'availableProcessors', '1',
+ 'Number of threads used by this endpoint to process incoming requests')
+ .col-sm-6
+ +preview-xml-java(model, 'igfsIPC')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/igfs/misc.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/igfs/misc.jade b/modules/web-console/frontend/app/modules/states/configuration/igfs/misc.jade
deleted file mode 100644
index dc0e9fc..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/igfs/misc.jade
+++ /dev/null
@@ -1,108 +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.jade
-
--var form = 'misc'
--var model = 'backupItem'
--var pathModesForm = 'miscPathModes'
--var pathModes = model + '.pathModes'
-
-//- LEGACY mixin for LEGACY IGFS path modes table.
-mixin table-igfs-path-mode-edit(prefix, focusId, index)
- -var keyModel = 'tblPathModes.' + prefix + 'Key'
- -var valModel = 'tblPathModes.' + prefix + 'Value'
-
- -var keyFocusId = prefix + 'Key' + focusId
- -var valFocusId = prefix + 'Value' + focusId
-
- .col-xs-8.col-sm-8.col-md-8
- .fieldSep /
- .input-tip
- input.form-control(id=keyFocusId ignite-on-enter-focus-move=valFocusId type='text' ng-model=keyModel placeholder='Path' ignite-on-escape='tableReset(false)')
- .col-xs-4.col-sm-4.col-md-4
- -var arg = keyModel + ', ' + valModel
- -var btnVisible = 'tablePairSaveVisible(tblPathModes, ' + index + ')'
- -var btnSave = 'tablePairSave(tablePairValid, backupItem, tblPathModes, ' + index + ')'
- -var btnVisibleAndSave = btnVisible + ' && ' + btnSave
- +btn-save(btnVisible, btnSave)
- .input-tip
- button.select-toggle.form-control(id=valFocusId bs-select ng-model=valModel data-placeholder='Mode' bs-options='item.value as item.label for item in igfsModes' tabindex='0' ignite-on-enter=btnVisibleAndSave ignite-on-escape='tableReset(false)')
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle='' ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Miscellaneous
- ignite-form-field-tooltip.tipLabel
- | Various miscellaneous IGFS settings
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +number('Block size:', model + '.blockSize', '"blockSize"', 'true', '65536', '0', 'File data block size in bytes')
- .settings-row
- +number('Stream buffer size:', model + '.streamBufferSize', '"streamBufferSize"', 'true', '65536', '0', 'Read/write buffer size for IGFS stream operations in bytes')
- .settings-row
- +number('Maximum space size:', model + '.maxSpaceSize', '"maxSpaceSize"', 'true', '0', '0', 'Maximum space available for data cache to store file system entries')
- .settings-row
- +number('Maximum task range length:', model + '.maximumTaskRangeLength', '"maximumTaskRangeLength"', 'true', '0', '0', 'Maximum default range size of a file being split during IGFS task execution')
- .settings-row
- +number-min-max('Management port:', model + '.managementPort', '"managementPort"', 'true', '11400', '0', '65535', 'Port number for management endpoint')
- .settings-row
- +number('Per node batch size:', model + '.perNodeBatchSize', '"perNodeBatchSize"', 'true', '100', '0', 'Number of file blocks collected on local node before sending batch to remote node')
- .settings-row
- +number('Per node parallel batch count:', model + '.perNodeParallelBatchCount', '"perNodeParallelBatchCount"', 'true', '8', '0', 'Number of file block batches that can be concurrently sent to remote node')
- .settings-row
- +number('Prefetch blocks:', model + '.prefetchBlocks', '"prefetchBlocks"', 'true', '0', '0', 'Number of pre-fetched blocks if specific file chunk is requested')
- .settings-row
- +number('Sequential reads before prefetch:', model + '.sequentialReadsBeforePrefetch', '"sequentialReadsBeforePrefetch"', 'true', '0', '0', 'Amount of sequential block reads before prefetch is triggered')
- .settings-row
- +number('Trash purge timeout:', model + '.trashPurgeTimeout', '"trashPurgeTimeout"', 'true', '1000', '0', 'Maximum timeout awaiting for trash purging in case data cache oversize is detected')
- .settings-row
- +checkbox('Colocate metadata', model + '.colocateMetadata', '"colocateMetadata"', 'Whether to co-locate metadata on a single node')
- .settings-row
- +checkbox('Relaxed consistency', model + '.relaxedConsistency', '"relaxedConsistency"',
- 'If value of this flag is <b>true</b>, IGFS will skip expensive consistency checks<br/>\
- It is recommended to set this flag to <b>false</b> if your application has conflicting\
- operations, or you do not know how exactly users will use your system')
- .settings-row
- +ignite-form-group(ng-model=pathModes ng-form=pathModesForm)
- ignite-form-field-label
- | Path modes
- ignite-form-group-tooltip
- | Map of path prefixes to IGFS modes used for them
- ignite-form-group-add(ng-click='tableNewItem(tblPathModes)')
- | Add path mode
-
- .group-content-empty(ng-if='!((#{pathModes} && #{pathModes}.length > 0) || tableNewItemActive(tblPathModes))') Not defined
-
- .group-content(ng-show='(#{pathModes} && #{pathModes}.length > 0) || tableNewItemActive(tblPathModes)')
- table.links-edit(id='pathModes' st-table=pathModes)
- tbody
- tr(ng-repeat='item in #{pathModes} track by $index')
- td.col-sm-12(ng-hide='tableEditing(tblPathModes, $index)')
- a.labelFormField(ng-click='tableStartEdit(backupItem, tblPathModes, $index)') {{item.path + " [" + item.mode + "]"}}
- +btn-remove('tableRemove(backupItem, tblPathModes, $index)', '"Remove path"')
- td.col-sm-12(ng-show='tableEditing(tblPathModes, $index)')
- +table-igfs-path-mode-edit('cur', '{{::tblPathModes.focusId + $index}}', '$index')
- tfoot(ng-show='tableNewItemActive(tblPathModes)')
- tr
- td.col-sm-12
- +table-igfs-path-mode-edit('new', 'PathMode', '-1')
-
- .col-sm-6
- +preview-xml-java(model, 'igfsMisc')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/igfs/misc.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/igfs/misc.pug b/modules/web-console/frontend/app/modules/states/configuration/igfs/misc.pug
new file mode 100644
index 0000000..aa4b957
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/igfs/misc.pug
@@ -0,0 +1,108 @@
+//-
+ 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
+
+-var form = 'misc'
+-var model = 'backupItem'
+-var pathModesForm = 'miscPathModes'
+-var pathModes = `${model}.pathModes`
+
+//- LEGACY mixin for LEGACY IGFS path modes table.
+mixin table-igfs-path-mode-edit(prefix, focusId, index)
+ -var keyModel = `tblPathModes.${prefix}Key`
+ -var valModel = `tblPathModes.${prefix}Value`
+
+ -var keyFocusId = `${prefix}Key${focusId}`
+ -var valFocusId = `${prefix}Value${focusId}`
+
+ .col-xs-8.col-sm-8.col-md-8
+ .fieldSep /
+ .input-tip
+ input.form-control(id=keyFocusId ignite-on-enter-focus-move=valFocusId type='text' ng-model=keyModel placeholder='Path' ignite-on-escape='tableReset(false)')
+ .col-xs-4.col-sm-4.col-md-4
+ -var arg = `${keyModel}, ${valModel}`
+ -var btnVisible = `tablePairSaveVisible(tblPathModes, ${index})`
+ -var btnSave = `tablePairSave(tablePairValid, backupItem, tblPathModes, ${index})`
+ -var btnVisibleAndSave = `${btnVisible} && ${btnSave}`
+ +btn-save(btnVisible, btnSave)
+ .input-tip
+ button.select-toggle.form-control(id=valFocusId bs-select ng-model=valModel data-placeholder='Mode' bs-options='item.value as item.label for item in igfsModes' tabindex='0' ignite-on-enter=btnVisibleAndSave ignite-on-escape='tableReset(false)')
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle='' ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Miscellaneous
+ ignite-form-field-tooltip.tipLabel
+ | Various miscellaneous IGFS settings
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +number('Block size:', `${model}.blockSize`, '"blockSize"', 'true', '65536', '0', 'File data block size in bytes')
+ .settings-row
+ +number('Stream buffer size:', `${model}.streamBufferSize`, '"streamBufferSize"', 'true', '65536', '0', 'Read/write buffer size for IGFS stream operations in bytes')
+ .settings-row
+ +number('Maximum space size:', `${model}.maxSpaceSize`, '"maxSpaceSize"', 'true', '0', '0', 'Maximum space available for data cache to store file system entries')
+ .settings-row
+ +number('Maximum task range length:', `${model}.maximumTaskRangeLength`, '"maximumTaskRangeLength"', 'true', '0', '0', 'Maximum default range size of a file being split during IGFS task execution')
+ .settings-row
+ +number-min-max('Management port:', `${model}.managementPort`, '"managementPort"', 'true', '11400', '0', '65535', 'Port number for management endpoint')
+ .settings-row
+ +number('Per node batch size:', `${model}.perNodeBatchSize`, '"perNodeBatchSize"', 'true', '100', '0', 'Number of file blocks collected on local node before sending batch to remote node')
+ .settings-row
+ +number('Per node parallel batch count:', `${model}.perNodeParallelBatchCount`, '"perNodeParallelBatchCount"', 'true', '8', '0', 'Number of file block batches that can be concurrently sent to remote node')
+ .settings-row
+ +number('Prefetch blocks:', `${model}.prefetchBlocks`, '"prefetchBlocks"', 'true', '0', '0', 'Number of pre-fetched blocks if specific file chunk is requested')
+ .settings-row
+ +number('Sequential reads before prefetch:', `${model}.sequentialReadsBeforePrefetch`, '"sequentialReadsBeforePrefetch"', 'true', '0', '0', 'Amount of sequential block reads before prefetch is triggered')
+ .settings-row
+ +number('Trash purge timeout:', `${model}.trashPurgeTimeout`, '"trashPurgeTimeout"', 'true', '1000', '0', 'Maximum timeout awaiting for trash purging in case data cache oversize is detected')
+ .settings-row
+ +checkbox('Colocate metadata', `${model}.colocateMetadata`, '"colocateMetadata"', 'Whether to co-locate metadata on a single node')
+ .settings-row
+ +checkbox('Relaxed consistency', `${model}.relaxedConsistency`, '"relaxedConsistency"',
+ 'If value of this flag is <b>true</b>, IGFS will skip expensive consistency checks<br/>\
+ It is recommended to set this flag to <b>false</b> if your application has conflicting\
+ operations, or you do not know how exactly users will use your system')
+ .settings-row
+ +ignite-form-group(ng-model=pathModes ng-form=pathModesForm)
+ ignite-form-field-label
+ | Path modes
+ ignite-form-group-tooltip
+ | Map of path prefixes to IGFS modes used for them
+ ignite-form-group-add(ng-click='tableNewItem(tblPathModes)')
+ | Add path mode
+
+ .group-content-empty(ng-if=`!((${pathModes} && ${pathModes}.length > 0) || tableNewItemActive(tblPathModes))`) Not defined
+
+ .group-content(ng-show=`(${pathModes} && ${pathModes}.length > 0) || tableNewItemActive(tblPathModes)`)
+ table.links-edit(id='pathModes' st-table=pathModes)
+ tbody
+ tr(ng-repeat=`item in ${pathModes} track by $index`)
+ td.col-sm-12(ng-hide='tableEditing(tblPathModes, $index)')
+ a.labelFormField(ng-click='tableStartEdit(backupItem, tblPathModes, $index)') {{item.path + " [" + item.mode + "]"}}
+ +btn-remove('tableRemove(backupItem, tblPathModes, $index)', '"Remove path"')
+ td.col-sm-12(ng-show='tableEditing(tblPathModes, $index)')
+ +table-igfs-path-mode-edit('cur', '{{::tblPathModes.focusId + $index}}', '$index')
+ tfoot(ng-show='tableNewItemActive(tblPathModes)')
+ tr
+ td.col-sm-12
+ +table-igfs-path-mode-edit('new', 'PathMode', '-1')
+
+ .col-sm-6
+ +preview-xml-java(model, 'igfsMisc')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/igfs/secondary.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/igfs/secondary.jade b/modules/web-console/frontend/app/modules/states/configuration/igfs/secondary.jade
deleted file mode 100644
index b605e77..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/igfs/secondary.jade
+++ /dev/null
@@ -1,45 +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.jade
-
--var form = 'secondaryFileSystem'
--var model = 'backupItem'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle='' ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label(id="secondaryFileSystem-title") Secondary file system
- ignite-form-field-tooltip.tipLabel
- | Secondary file system is provided for pass-through, write-through, and read-through purposes#[br]
- | #[a(href="https://apacheignite-fs.readme.io/docs/secondary-file-system" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- -var enabled = model + '.secondaryFileSystemEnabled'
- -var secondaryFileSystem = model + '.secondaryFileSystem'
-
- .settings-row
- +checkbox('Enabled', enabled, '"secondaryFileSystemEnabled"', 'Secondary file system enabled flag')
- .settings-row
- +text-enabled('URI:', secondaryFileSystem + '.uri', '"hadoopURI"', enabled, 'false', 'hdfs://[namenodehost]:[port]/[path]', 'URI of file system')
- .settings-row
- +text-enabled('Config path:', secondaryFileSystem + '.cfgPath', '"cfgPath"', enabled, 'false', 'Path to additional config', 'Additional path to Hadoop configuration')
- .settings-row
- +text-enabled('User name:', secondaryFileSystem + '.userName', '"userName"', enabled, 'false', 'Input user name', 'User name')
- .col-sm-6
- +preview-xml-java(model, 'igfsSecondFS')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/igfs/secondary.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/igfs/secondary.pug b/modules/web-console/frontend/app/modules/states/configuration/igfs/secondary.pug
new file mode 100644
index 0000000..87e1f4f
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/igfs/secondary.pug
@@ -0,0 +1,45 @@
+//-
+ 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
+
+-var form = 'secondaryFileSystem'
+-var model = 'backupItem'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle='' ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label(id="secondaryFileSystem-title") Secondary file system
+ ignite-form-field-tooltip.tipLabel
+ | Secondary file system is provided for pass-through, write-through, and read-through purposes#[br]
+ | #[a(href="https://apacheignite-fs.readme.io/docs/secondary-file-system" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ -var enabled = `${model}.secondaryFileSystemEnabled`
+ -var secondaryFileSystem = `${model}.secondaryFileSystem`
+
+ .settings-row
+ +checkbox('Enabled', enabled, '"secondaryFileSystemEnabled"', 'Secondary file system enabled flag')
+ .settings-row
+ +text-enabled('URI:', `${secondaryFileSystem}.uri`, '"hadoopURI"', enabled, 'false', 'hdfs://[namenodehost]:[port]/[path]', 'URI of file system')
+ .settings-row
+ +text-enabled('Config path:', `${secondaryFileSystem}.cfgPath`, '"cfgPath"', enabled, 'false', 'Path to additional config', 'Additional path to Hadoop configuration')
+ .settings-row
+ +text-enabled('User name:', `${secondaryFileSystem}.userName`, '"userName"', enabled, 'false', 'Input user name', 'User name')
+ .col-sm-6
+ +preview-xml-java(model, 'igfsSecondFS')
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/modules/web-console/frontend/app/modules/states/configuration/summary/summary.controller.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/summary/summary.controller.js b/modules/web-console/frontend/app/modules/states/configuration/summary/summary.controller.js
index 16d2fae..25203b3 100644
--- a/modules/web-console/frontend/app/modules/states/configuration/summary/summary.controller.js
+++ b/modules/web-console/frontend/app/modules/states/configuration/summary/summary.controller.js
@@ -18,6 +18,8 @@
import _ from 'lodash';
import saver from 'file-saver';
+import summaryProjectStructureTemplateUrl from 'views/configuration/summary-project-structure.tpl.pug';
+
const escapeFileName = (name) => name.replace(/[\\\/*\"\[\],\.:;|=<>?]/g, '-').replace(/ /g, '_');
export default [
@@ -25,6 +27,9 @@ export default [
function($root, $scope, $http, LegacyUtils, Messages, Loading, $filter, Resource, JavaTypes, Version, generator, spring, java, docker, pom, propsGenerator, readme, FormUtils, SummaryZipper, ActivitiesData) {
const ctrl = this;
+ // Define template urls.
+ ctrl.summaryProjectStructureTemplateUrl = summaryProjectStructureTemplateUrl;
+
$scope.ui = {
isSafari: !!(/constructor/i.test(window.HTMLElement) || window.safari),
ready: false
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/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 2bdb80a..e219132 100644
--- a/modules/web-console/frontend/app/modules/states/errors.state.js
+++ b/modules/web-console/frontend/app/modules/states/errors.state.js
@@ -16,8 +16,8 @@
*/
import angular from 'angular';
-import templateNotFoundPage from '../../../views/404.jade';
-import templateNotAuthorizedPage from '../../../views/403.jade';
+import templateNotFoundPage from 'views/404.pug';
+import templateNotAuthorizedPage from 'views/403.pug';
angular
.module('ignite-console.states.errors', [
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/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 48d01df..587f83d 100644
--- a/modules/web-console/frontend/app/modules/states/password.state.js
+++ b/modules/web-console/frontend/app/modules/states/password.state.js
@@ -17,6 +17,8 @@
import angular from 'angular';
+import templateUrl from 'views/reset.tpl.pug';
+
angular
.module('ignite-console.states.password', [
'ui.router'
@@ -31,14 +33,14 @@ angular
})
.state('password.reset', {
url: '/reset?{token}',
- templateUrl: '/reset.html',
+ templateUrl,
metaTags: {
title: 'Reset password'
}
})
.state('password.send', {
url: '/send',
- templateUrl: '/reset.html',
+ templateUrl,
metaTags: {
title: 'Password Send'
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/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 9c31340..7c270ad 100644
--- a/modules/web-console/frontend/app/modules/states/profile.state.js
+++ b/modules/web-console/frontend/app/modules/states/profile.state.js
@@ -17,6 +17,8 @@
import angular from 'angular';
+import templateUrl from 'views/settings/profile.tpl.pug';
+
angular
.module('ignite-console.states.profile', [
'ui.router'
@@ -26,7 +28,7 @@ angular
$stateProvider
.state('settings.profile', {
url: '/profile',
- templateUrl: '/settings/profile.html',
+ templateUrl,
onEnter: AclRoute.checkAccess('profile'),
metaTags: {
title: 'User profile'
http://git-wip-us.apache.org/repos/asf/ignite/blob/1080e686/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 14ebc1b..2625aaa 100644
--- a/modules/web-console/frontend/app/modules/states/signin.state.js
+++ b/modules/web-console/frontend/app/modules/states/signin.state.js
@@ -16,7 +16,7 @@
*/
import angular from 'angular';
-import templateUrl from 'views/signin.jade';
+import templateUrl from 'views/signin.tpl.pug';
angular
.module('ignite-console.states.login', [