You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by nt...@apache.org on 2017/04/03 08:31:10 UTC
[10/50] [abbrv] ignite git commit: IGNITE-4659 Migration to Webpack
2. Upgrade template engine from jade to pug. (cherry picked from commit
1080e68)
http://git-wip-us.apache.org/repos/asf/ignite/blob/cad46799/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/cad46799/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/cad46799/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/cad46799/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/cad46799/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/cad46799/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/cad46799/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/cad46799/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/cad46799/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/cad46799/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/cad46799/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/cad46799/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/cad46799/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/cad46799/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/cad46799/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')