You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ak...@apache.org on 2018/04/12 04:24:03 UTC

[05/16] ignite git commit: IGNITE-7996 Move configuration form templates.

http://git-wip-us.apache.org/repos/asf/ignite/blob/68719446/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
deleted file mode 100644
index 32d966a..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/caches/store.pug
+++ /dev/null
@@ -1,310 +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
-
--var form = 'store'
--var model = '$ctrl.clonedCache'
-
-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-collapsible(ng-form=form on-open=`ui.loadPanel('${form}')`)
-    panel-title Store
-    panel-description 
-        | Cache store settings. 
-        | #[a.link-success(href="https://apacheignite.readme.io/docs/3rd-party-store" target="_blank") More info]
-    panel-content.pca-form-row(ng-if=`ui.isPanelLoaded('${form}')`)
-        .pca-form-column-6.pc-form-grid-row
-            -var storeFactory = `${model}.cacheStoreFactory`;
-            -var storeFactoryKind = `${storeFactory}.kind`;
-            .pc-form-grid-col-60
-                +sane-ignite-form-field-dropdown({
-                    label: 'Store factory:',
-                    model: storeFactoryKind,
-                    name: '"cacheStoreFactory"',
-                    placeholder: '{{ ::$ctrl.Caches.cacheStoreFactory.kind.default }}',
-                    options: '::$ctrl.Caches.cacheStoreFactory.values',
-                    tip: `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>`
-                })(
-                    ui-validate=`{
-                        writeThroughOn: '$ctrl.Caches.cacheStoreFactory.storeDisabledValueOff(${model}, ${model}.writeThrough)',
-                        readThroughOn: '$ctrl.Caches.cacheStoreFactory.storeDisabledValueOff(${model}, ${model}.readThrough)',
-                        writeBehindOn: '$ctrl.Caches.cacheStoreFactory.storeDisabledValueOff(${model}, ${model}.writeBehindEnabled)'
-                    }`
-                    ui-validate-watch-collection=`"[${model}.readThrough, ${model}.writeThrough, ${model}.writeBehindEnabled]"`
-                    ng-model-options='{allowInvalid: true}'
-                )
-                    +form-field-feedback(null, 'writeThroughOn', 'Write through is enabled but store is not set')
-                    +form-field-feedback(null, 'readThroughOn', 'Read through is enabled but store is not set')
-                    +form-field-feedback(null, 'writeBehindOn', 'Write-behind is enabled but store is not set')
-            .pc-form-group(ng-if=storeFactoryKind)
-                .pc-form-grid-row(ng-if=`${storeFactoryKind} === 'CacheJdbcPojoStoreFactory'`)
-                    -var pojoStoreFactory = `${storeFactory}.CacheJdbcPojoStoreFactory`
-                    -var required = `${storeFactoryKind} === 'CacheJdbcPojoStoreFactory'`
-
-                    .pc-form-grid-col-60
-                        +sane-ignite-form-field-text({
-                            label: 'Data source bean name:',
-                            model: `${pojoStoreFactory}.dataSourceBean`,
-                            name: '"pojoDataSourceBean"',
-                            required: required,
-                            placeholder: 'Input bean name',
-                            tip: 'Name of the data source bean in Spring context'
-                        })(
-                            is-valid-java-identifier
-                            not-java-reserved-word
-                        )
-                            +form-field-feedback(null, 'required', 'Data source bean name is required')
-                            +form-field-feedback(null, 'isValidJavaIdentifier', 'Data source bean name is not a valid Java identifier')
-                            +form-field-feedback(null, 'notJavaReservedWord', 'Data source bean name should not be a Java reserved word')
-                    .pc-form-grid-col-60
-                        +dialect('Dialect:', `${pojoStoreFactory}.dialect`, '"pojoDialect"', required,
-                            'Dialect of SQL implemented by a particular RDBMS:', 'Generic JDBC dialect',
-                            'Choose JDBC dialect')
-                    .pc-form-grid-col-30
-                        +number('Batch size:', `${pojoStoreFactory}.batchSize`, '"pojoBatchSize"', true, '512', '1',
-                            'Maximum batch size for writeAll and deleteAll operations')
-                    .pc-form-grid-col-30
-                        +number('Thread count:', `${pojoStoreFactory}.maximumPoolSize`, '"pojoMaximumPoolSize"', true, 'availableProcessors', '1',
-                            'Maximum workers thread count.<br/>\
-                            These threads are responsible for load cache.')
-                    .pc-form-grid-col-30
-                        +number('Maximum write attempts:', `${pojoStoreFactory}.maximumWriteAttempts`, '"pojoMaximumWriteAttempts"', true, '2', '0',
-                            'Maximum write attempts in case of database error')
-                    .pc-form-grid-col-30
-                        +number('Parallel load threshold:', `${pojoStoreFactory}.parallelLoadCacheMinimumThreshold`, '"pojoParallelLoadCacheMinimumThreshold"', true, '512', '0',
-                            'Parallel load cache minimum threshold.<br/>\
-                            If <b>0</b> then load sequentially.')
-                    .pc-form-grid-col-60
-                        +java-class('Hasher', `${pojoStoreFactory}.hasher`, '"pojoHasher"', 'true', 'false', 'Hash calculator', required)
-                    .pc-form-grid-col-60
-                        +java-class('Transformer', `${pojoStoreFactory}.transformer`, '"pojoTransformer"', 'true', 'false', 'Types transformer', required)
-                    .pc-form-grid-col-60
-                        +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.')
-                .pc-form-grid-row(ng-if=`${storeFactoryKind} === 'CacheJdbcBlobStoreFactory'`)
-                    -var blobStoreFactory = `${storeFactory}.CacheJdbcBlobStoreFactory`
-                    -var blobStoreFactoryVia = `${blobStoreFactory}.connectVia`
-
-                    .pc-form-grid-col-60
-                        +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>')
-
-                    -var required = `${storeFactoryKind} === 'CacheJdbcBlobStoreFactory' && ${blobStoreFactoryVia} === 'URL'`
-
-                    .pc-form-grid-col-60(ng-if-start=`${blobStoreFactoryVia} === 'URL'`)
-                        +text('Connection URL:', `${blobStoreFactory}.connectionUrl`, '"connectionUrl"', required, 'Input URL',
-                            'URL for database access, for example: jdbc:h2:mem:myDatabase')
-                    .pc-form-grid-col-30
-                        +text('User:', `${blobStoreFactory}.user`, '"user"', required, 'Input user name', 'User name for database access')
-                    .pc-form-grid-col-30(ng-if-end)
-                        .pc-form-grid__text-only-item Password will be generated as stub.
-
-                    -var required = `${storeFactoryKind} === 'CacheJdbcBlobStoreFactory' && ${blobStoreFactoryVia} !== 'URL'`
-
-                    .pc-form-grid-col-60(ng-if-start=`${blobStoreFactoryVia} !== 'URL'`)
-                        +sane-ignite-form-field-text({
-                            label: 'Data source bean name:',
-                            model: `${blobStoreFactory}.dataSourceBean`,
-                            name: '"blobDataSourceBean"',
-                            required: required,
-                            placeholder: 'Input bean name',
-                            tip: 'Name of the data source bean in Spring context'
-                        })(
-                            is-valid-java-identifier
-                            not-java-reserved-word
-                        )
-                            +form-field-feedback(null, 'required', 'Data source bean name is required')
-                            +form-field-feedback(null, 'isValidJavaIdentifier', 'Data source bean name is not a valid Java identifier')
-                            +form-field-feedback(null, 'notJavaReservedWord', 'Data source bean name should not be a Java reserved word')
-                    .pc-form-grid-col-60(ng-if-end)
-                        +dialect('Database:', `${blobStoreFactory}.dialect`, '"blobDialect"', required, 'Supported databases:', 'Generic database', 'Choose database')
-
-                    .pc-form-grid-col-60
-                        +checkbox('Init schema', `${blobStoreFactory}.initSchema`, '"initSchema"',
-                            'Flag indicating whether DB schema should be initialized by Ignite (default behaviour) or was explicitly created by user')
-                    .pc-form-grid-col-60
-                        +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)')
-                    .pc-form-grid-col-60
-                        +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=?')
-                    .pc-form-grid-col-60
-                        +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 (?, ?)')
-                    .pc-form-grid-col-60
-                        +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=?')
-                    .pc-form-grid-col-60
-                        +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=?')
-
-                .pc-form-grid-row(ng-if=`${storeFactoryKind} === 'CacheHibernateBlobStoreFactory'`)
-                    -var hibernateStoreFactory = `${storeFactory}.CacheHibernateBlobStoreFactory`
-
-                    .pc-form-grid-col-60
-                        .ignite-form-field
-                            +ignite-form-field__label('Hibernate properties:', '"hibernateProperties"')
-                                +tooltip(`List of Hibernate properties<bt />
-                                    For example: connection.url=jdbc:h2:mem:exampleDb`)
-                            .ignite-form-field__control
-                                +list-pair-edit({
-                                    items: `${hibernateStoreFactory}.hibernateProperties`,
-                                    keyLbl: 'Property name', 
-                                    valLbl: 'Property value',
-                                    itemName: 'property',
-                                    itemsName: 'properties'
-                                })
-
-            - form = 'store'
-            .pc-form-grid-col-60
-                +checkbox('Keep binary in store', `${model}.storeKeepBinary`, '"storeKeepBinary"',
-                    'Flag indicating that CacheStore implementation is working with binary objects instead of Java objects')
-            .pc-form-grid-col-60
-                +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>')
-            .pc-form-grid-col-60
-                +sane-form-field-checkbox({
-                    label: 'Read-through',
-                    model: `${model}.readThrough`,
-                    name: '"readThrough"',
-                    tip: 'Flag indicating whether read-through caching should be used'
-                })(
-                    ng-model-options='{allowInvalid: true}'
-                    ui-validate=`{
-                        storeEnabledReadOrWriteOn: '$ctrl.Caches.cacheStoreFactory.storeEnabledReadOrWriteOn(${model})'
-                    }`
-                    ui-validate-watch-collection=`"[${storeFactoryKind}, ${model}.writeThrough, ${model}.readThrough]"`
-                )
-                    +form-field-feedback(0, 'storeEnabledReadOrWriteOn', 'Read or write through should be turned on when store kind is set')
-            .pc-form-grid-col-60
-                +sane-form-field-checkbox({
-                    label: 'Write-through',
-                    model: `${model}.writeThrough`,
-                    name: '"writeThrough"',
-                    tip: 'Flag indicating whether write-through caching should be used'
-                })(
-                    ng-model-options='{allowInvalid: true}'
-                    ui-validate=`{
-                        storeEnabledReadOrWriteOn: '$ctrl.Caches.cacheStoreFactory.storeEnabledReadOrWriteOn(${model})'
-                    }`
-                    ui-validate-watch-collection=`"[${storeFactoryKind}, ${model}.writeThrough, ${model}.readThrough]"`
-                )
-                    +form-field-feedback(0, 'storeEnabledReadOrWriteOn', 'Read or write through should be turned on when store kind is set')
-
-            -var enabled = `${model}.writeBehindEnabled`
-
-            .pc-form-grid-col-60.pc-form-group__text-title
-                +sane-form-field-checkbox({
-                    label: 'Write-behind',
-                    model: enabled,
-                    name: '"writeBehindEnabled"',
-                    tip: `
-                        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.
-                    `
-                })(
-                    ng-model-options='{allowInvalid: true}'
-                )
-                    +form-field-feedback(0, 'storeDisabledValueOff', 'Write-behind is enabled but store kind is not set')
-            .pc-form-group.pc-form-grid-row(ng-if=enabled)
-                .pc-form-grid-col-30
-                    +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')
-                .pc-form-grid-col-30
-                    +sane-ignite-form-field-number({
-                        label: 'Flush size:',
-                        model: `${model}.writeBehindFlushSize`,
-                        name: '"writeBehindFlushSize"',
-                        placeholder: '10240',
-                        min: `{{ $ctrl.Caches.writeBehindFlush.min(${model}) }}`,
-                        tip: `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`
-                    })(
-                        ng-model-options='{allowInvalid: true}'
-                    )
-                .pc-form-grid-col-30
-                    +sane-ignite-form-field-number({
-                        label: 'Flush frequency:',
-                        model: `${model}.writeBehindFlushFrequency`,
-                        name: '"writeBehindFlushFrequency"',
-                        placeholder: '5000',
-                        min: `{{ $ctrl.Caches.writeBehindFlush.min(${model}) }}`,
-                        tip: `Frequency with which write-behind cache is flushed to the cache store in milliseconds`
-                    })(
-                        ng-model-options='{allowInvalid: true}'
-                    )
-                .pc-form-grid-col-30
-                    +number('Flush threads count:', `${model}.writeBehindFlushThreadCount`, '"writeBehindFlushThreadCount"', enabled, '1', '1',
-                        'Number of threads that will perform cache flushing')
-
-                //- Since ignite 2.0
-                .pc-form-grid-col-60(ng-if='$ctrl.available("2.0.0")')
-                    +checkbox-enabled('Write coalescing', model + '.writeBehindCoalescing', '"WriteBehindCoalescing"', enabled, 'Write coalescing flag for write-behind cache store')
-
-        .pca-form-column-6
-            +preview-xml-java(model, 'cacheStore', 'domains')

http://git-wip-us.apache.org/repos/asf/ignite/blob/68719446/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
deleted file mode 100644
index 13424f8..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/atomic.pug
+++ /dev/null
@@ -1,75 +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
-
--var form = 'atomics'
--var model = '$ctrl.clonedCluster.atomicConfiguration'
--var affModel = model + '.affinity'
--var rendezvousAff = affModel + '.kind === "Rendezvous"'
--var customAff = affModel + '.kind === "Custom"'
-
-panel-collapsible(ng-form=form on-open=`ui.loadPanel('${form}')`)
-    panel-title Atomic configuration
-    panel-description
-        | Configuration for atomic data structures.
-        | 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. 
-        | #[a.link-success(href="https://apacheignite.readme.io/docs/atomic-types" target="_blank") More info]
-    panel-content.pca-form-row(ng-if=`ui.isPanelLoaded('${form}')`)
-        .pca-form-column-6.pc-form-grid-row
-            .pc-form-grid-col-30
-                +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>')
-            .pc-form-grid-col-30
-                +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')
-            .pc-form-grid-col-60(ng-show=`!(${model}.cacheMode && ${model}.cacheMode != "PARTITIONED")`)
-                +number('Backups:', model + '.backups', '"backups"', 'true', '0', '0', 'Number of backup nodes')
-
-            .pc-form-grid-col-60(ng-if-start='$ctrl.available("2.1.0")')
-                +dropdown('Function:', `${affModel}.kind`, '"AffinityKind"', 'true', 'Default', '$ctrl.Clusters.affinityFunctions',
-                    'Key topology resolver to provide mapping from keys to nodes\
-                    <ul>\
-                        <li>Rendezvous - Based on Highest Random Weight algorithm<br/></li>\
-                        <li>Custom - Custom implementation of key affinity function<br/></li>\
-                        <li>Default - By default rendezvous affinity function  with 1024 partitions is used<br/></li>\
-                    </ul>')
-            .pc-form-group(ng-if-end ng-if=rendezvousAff + ' || ' + customAff)
-                .pc-form-grid-row
-                    .pc-form-grid-col-30(ng-if-start=rendezvousAff)
-                        +number-required('Partitions', `${affModel}.Rendezvous.partitions`, '"RendPartitions"', 'true', rendPartitionsRequired, '1024', '1', 'Number of partitions')
-                    .pc-form-grid-col-30
-                        +java-class('Backup filter', `${affModel}.Rendezvous.affinityBackupFilter`, '"RendAffinityBackupFilter"', 'true', 'false',
-                            'Backups will be selected from all nodes that pass this filter')
-                    .pc-form-grid-col-60(ng-if-end)
-                        +checkbox('Exclude neighbors', `${affModel}.Rendezvous.excludeNeighbors`, '"RendExcludeNeighbors"',
-                            'Exclude same - host - neighbors from being backups of each other and specified number of backups')
-                    .pc-form-grid-col-60(ng-if=customAff)
-                        +java-class('Class name:', `${affModel}.Custom.className`, '"AffCustomClassName"', 'true', customAff,
-                            'Custom key affinity function implementation class name')
-        .pca-form-column-6
-            +preview-xml-java(model, 'clusterAtomics')

http://git-wip-us.apache.org/repos/asf/ignite/blob/68719446/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
deleted file mode 100644
index b57f1da..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/attributes.pug
+++ /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.
-
-include /app/helpers/jade/mixins
-
--var form = 'attributes'
--var model = '$ctrl.clonedCluster'
-
-panel-collapsible(ng-form=form on-open=`ui.loadPanel('${form}')`)
-    panel-title User attributes
-    panel-description Configuration for Ignite user attributes.
-    panel-content.pca-form-row(ng-if=`ui.isPanelLoaded('${form}')`)
-        .pca-form-column-6
-            .ignite-form-field
-                +ignite-form-field__label('User attributes:', '"userAttributes"')
-                    +tooltip(`User-defined attributes to add to node`)
-                .ignite-form-field__control
-                    +list-pair-edit({
-                        items: `${model}.attributes`,
-                        keyLbl: 'Attribute name', 
-                        valLbl: 'Attribute value',
-                        itemName: 'attribute',
-                        itemsName: 'attributes'
-                    })
-
-        .pca-form-column-6
-            +preview-xml-java(model, 'clusterUserAttributes')

http://git-wip-us.apache.org/repos/asf/ignite/blob/68719446/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
deleted file mode 100644
index 6c1b246..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/binary.pug
+++ /dev/null
@@ -1,80 +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
-
--var form = 'binary'
--var model = '$ctrl.clonedCluster.binaryConfiguration'
-
-panel-collapsible(ng-form=form on-open=`ui.loadPanel('${form}')`)
-    panel-title Binary configuration
-    panel-description
-        | Configuration of specific binary types. 
-        | #[a.link-success(href="https://apacheignite.readme.io/docs/binary-marshaller" target="_blank") More info]
-    panel-content.pca-form-row(ng-if=`ui.isPanelLoaded('${form}')`)
-        .pca-form-column-6.pc-form-grid-row
-            .pc-form-grid-col-60
-                +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')
-            .pc-form-grid-col-60
-                +java-class('Name mapper:', model + '.nameMapper', '"nameMapper"', 'true', 'false', 'Maps type/class and field names to different names')
-            .pc-form-grid-col-60
-                +java-class('Serializer:', model + '.serializer', '"serializer"', 'true', 'false', 'Class with custom serialization logic for binary objects')
-            .pc-form-grid-col-60
-                .ignite-form-field
-                    +ignite-form-field__label('Type configurations:', '"typeŠ”onfigurations"')
-                        +tooltip(`Configuration properties for binary types`)
-                    .ignite-form-field__control
-                        -var items = model + '.typeConfigurations'
-                        list-editable(ng-model=items name='typeŠ”onfigurations')
-                            list-editable-item-edit.pc-form-grid-row
-                                - form = '$parent.form'
-                                .pc-form-grid-col-60
-                                    +java-class-autofocus('Type name:', '$item.typeName', '"typeName"', 'true', 'true', 'true', 'Type name')(
-                                        ignite-unique=items
-                                        ignite-unique-property='typeName'
-                                    )
-                                        +unique-feedback(`$item.typeName`, 'Type name should be unique.')
-                                .pc-form-grid-col-60
-                                    +java-class('ID mapper:', '$item.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/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')
-                                .pc-form-grid-col-60
-                                    +java-class('Name mapper:', '$item.nameMapper', '"nameMapper"', 'true', 'false',
-                                        'Maps type/class and field names to different names')
-                                .pc-form-grid-col-60
-                                    +java-class('Serializer:', '$item.serializer', '"serializer"', 'true', 'false',
-                                        'Class with custom serialization logic for binary object')
-                                .pc-form-grid-col-60
-                                    +checkbox('Enum', '$item.enum', 'enum', 'Flag indicating that this type is the enum')
-
-                            list-editable-no-items
-                                list-editable-add-item-button(
-                                    add-item=`$ctrl.Clusters.addBinaryTypeConfiguration($ctrl.clonedCluster)`
-                                    label-single='configuration'
-                                    label-multiple='configurations'
-                                )
-
-            - form = 'binary'
-            .pc-form-grid-col-60
-                +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</b> already distribute metadata inside cluster')
-        .pca-form-column-6
-            +preview-xml-java(model, 'clusterBinary')

http://git-wip-us.apache.org/repos/asf/ignite/blob/68719446/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
deleted file mode 100644
index abc8ff1..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/cache-key-cfg.pug
+++ /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
-
--var form = 'cacheKeyCfg'
--var model = '$ctrl.clonedCluster.cacheKeyConfiguration'
-
-panel-collapsible(ng-form=form on-open=`ui.loadPanel('${form}')`)
-    panel-title Cache key configuration
-    panel-description
-        | 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.
-    panel-content.pca-form-row(ng-if=`ui.isPanelLoaded('${form}')`)
-        .pca-form-column-6
-            mixin clusters-cache-key-cfg
-                .ignite-form-field
-                    +ignite-form-field__label('Cache key configuration:', '"cacheKeyConfiguration"')
-                    .ignite-form-field__control
-                        -let items = model
-                        list-editable(ng-model=items name='cacheKeyConfiguration')
-                            list-editable-item-edit.pc-form-grid-row
-                                - form = '$parent.form'
-                                .pc-form-grid-col-60
-                                    +java-class-autofocus('Type name:', '$item.typeName', '"cacheKeyTypeName"', 'true', 'true', 'true', 'Type name')(
-                                        ignite-unique=items
-                                        ignite-unique-property='typeName'
-                                    )
-                                        +unique-feedback(`cacheKeyTypeName`, 'Type name should be unique.')
-                                .pc-form-grid-col-60
-                                    +sane-ignite-form-field-text({
-                                        label: 'Affinity key field name:',
-                                        model: '$item.affinityKeyFieldName',
-                                        name: '"affinityKeyFieldName"',
-                                        disabled: 'false',
-                                        placeholder: 'Enter field name',
-                                        tip: 'Affinity key field name',
-                                        required: true
-                                    })
-
-                            list-editable-no-items
-                                list-editable-add-item-button(
-                                    add-item=`(${items} = ${items} || []).push({})`
-                                    label-single='configuration'
-                                    label-multiple='configurations'
-                                )
-
-            +clusters-cache-key-cfg
-
-        .pca-form-column-6
-            +preview-xml-java(model, 'clusterCacheKeyConfiguration')

http://git-wip-us.apache.org/repos/asf/ignite/blob/68719446/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
deleted file mode 100644
index b00c98c..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint.pug
+++ /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
-
--var form = 'checkpoint'
--var model = '$ctrl.clonedCluster.checkpointSpi'
--var CustomCheckpoint = '$checkpointSPI.kind === "Custom"'
--var CacheCheckpoint = '$checkpointSPI.kind === "Cache"'
-
-panel-collapsible(ng-form=form)
-    panel-title Checkpointing
-    panel-description
-        | Checkpointing provides an ability to save an intermediate job state. 
-        | #[a.link-success(href="https://apacheignite.readme.io/docs/checkpointing" target="_blank") More info]
-    panel-content.pca-form-row
-        .pca-form-column-6.pc-form-grid-row
-            .pc-form-grid-col-60
-                .ignite-form-field
-                    +ignite-form-field__label('Checkpoint SPI configurations:', '"checkpointSPIConfigurations"')
-                    .ignite-form-field__control
-                        list-editable(ng-model=model name='checkpointSPIConfigurations')
-                            list-editable-item-edit(item-name='$checkpointSPI').pc-form-grid-row
-                                .pc-form-grid-col-60
-                                    +dropdown-required('Checkpoint SPI:', '$checkpointSPI.kind', '"checkpointKind"', '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>')
-
-                                include ./checkpoint/fs
-
-                                .pc-form-grid-col-60(ng-if-start=CacheCheckpoint)
-                                    +dropdown-required-empty('Cache:', '$checkpointSPI.Cache.cache', '"checkpointCacheCache"', 'true', CacheCheckpoint,
-                                        'Choose cache', 'No caches configured for current cluster', '$ctrl.cachesMenu', 'Cache to use for storing checkpoints')(
-                                        pc-is-in-collection='$ctrl.clonedCluster.caches'
-                                    )
-                                        +form-field-feedback(form, 'isInCollection', `Cluster doesn't have such a cache`)
-                                .pc-form-grid-col-60(ng-if-end)
-                                    +java-class('Listener:', '$checkpointSPI.Cache.checkpointListener', '"checkpointCacheListener"', 'true', 'false',
-                                        'Checkpoint listener implementation class name', CacheCheckpoint)
-
-                                include ./checkpoint/s3
-
-                                include ./checkpoint/jdbc
-
-                                .pc-form-grid-col-60(ng-if=CustomCheckpoint)
-                                    +java-class('Class name:', '$checkpointSPI.Custom.className', '"checkpointCustomClassName"', 'true', CustomCheckpoint,
-                                    'Custom CheckpointSpi implementation class', CustomCheckpoint)
-
-                            list-editable-no-items
-                                list-editable-add-item-button(
-                                    add-item=`$edit($ctrl.Clusters.addCheckpointSPI($ctrl.clonedCluster))`
-                                    label-single='checkpoint SPI configuration'
-                                    label-multiple='checkpoint SPI configurations'
-                                )
-        
-        .pca-form-column-6
-            +preview-xml-java('$ctrl.clonedCluster', 'clusterCheckpoint', '$ctrl.caches')

http://git-wip-us.apache.org/repos/asf/ignite/blob/68719446/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
deleted file mode 100644
index 0359cf3..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/fs.pug
+++ /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.
-
-include /app/helpers/jade/mixins
-
-.pc-form-grid-col-60(ng-if-start='$checkpointSPI.kind === "FS"')
-    .ignite-form-field
-        +list-text-field({
-            items: `$checkpointSPI.FS.directoryPaths`,
-            lbl: 'Directory path',
-            name: 'directoryPath',
-            itemName: 'path',
-            itemsName: 'paths'
-        })(
-            list-editable-cols=`::[{
-                name: 'Paths:',
-                tip: 'Paths to a shared directory where checkpoints will be stored'
-            }]`
-        )
-            +unique-feedback(_, 'Such path already exists!')
-
-.pc-form-grid-col-60(ng-if-end)
-    +java-class('Listener:', '$checkpointSPI.FS.checkpointListener', '"checkpointFsListener"', 'true', 'false', 'Checkpoint listener implementation class name', '$checkpointSPI.kind === "FS"')

http://git-wip-us.apache.org/repos/asf/ignite/blob/68719446/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
deleted file mode 100644
index 00a8681..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/jdbc.pug
+++ /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
-
--var jdbcCheckpoint = '$checkpointSPI.kind === "JDBC"'
-
-.pc-form-grid-col-30(ng-if-start='$checkpointSPI.kind === "JDBC"')
-    +text('Data source bean name:', '$checkpointSPI.JDBC.dataSourceBean', '"checkpointJdbcDataSourceBean"', jdbcCheckpoint, 'Input bean name',
-    'Name of the data source bean in Spring context')
-.pc-form-grid-col-30
-    +dialect('Dialect:', '$checkpointSPI.JDBC.dialect', '"checkpointJdbcDialect"', jdbcCheckpoint,
-    'Dialect of SQL implemented by a particular RDBMS:', 'Generic JDBC dialect', 'Choose JDBC dialect')
-.pc-form-grid-col-60
-    +java-class('Listener:', '$checkpointSPI.JDBC.checkpointListener', '"checkpointJdbcListener"', 'true', 'false',
-        'Checkpoint listener implementation class name', jdbcCheckpoint)
-.pc-form-grid-col-60
-    +text('User:', '$checkpointSPI.JDBC.user', '"checkpointJdbcUser"', 'false', 'Input user name', 'Checkpoint jdbc user name')
-.pc-form-grid-col-30
-    +text('Table name:', '$checkpointSPI.JDBC.checkpointTableName', '"checkpointJdbcCheckpointTableName"', 'false', 'CHECKPOINTS', 'Checkpoint table name')
-.pc-form-grid-col-30
-    +number('Number of retries:', '$checkpointSPI.JDBC.numberOfRetries', '"checkpointJdbcNumberOfRetries"', 'true', '2', '0', 'Number of retries in case of DB failure')
-.pc-form-grid-col-30
-    +text('Key field name:', '$checkpointSPI.JDBC.keyFieldName', '"checkpointJdbcKeyFieldName"', 'false', 'NAME', 'Checkpoint key field name')
-.pc-form-grid-col-30
-    +dropdown('Key field type:', '$checkpointSPI.JDBC.keyFieldType', '"checkpointJdbcKeyFieldType"', 'true', 'VARCHAR', '::$ctrl.supportedJdbcTypes', 'Checkpoint key field type')
-.pc-form-grid-col-30
-    +text('Value field name:', '$checkpointSPI.JDBC.valueFieldName', '"checkpointJdbcValueFieldName"', 'false', 'VALUE', 'Checkpoint value field name')
-.pc-form-grid-col-30
-    +dropdown('Value field type:', '$checkpointSPI.JDBC.valueFieldType', '"checkpointJdbcValueFieldType"', 'true', 'BLOB', '::$ctrl.supportedJdbcTypes', 'Checkpoint value field type')
-.pc-form-grid-col-30
-    +text('Expire date field name:', '$checkpointSPI.JDBC.expireDateFieldName', '"checkpointJdbcExpireDateFieldName"', 'false', 'EXPIRE_DATE', 'Checkpoint expire date field name')
-.pc-form-grid-col-30(ng-if-end)
-    +dropdown('Expire date field type:', '$checkpointSPI.JDBC.expireDateFieldType', '"checkpointJdbcExpireDateFieldType"', 'true', 'DATETIME', '::$ctrl.supportedJdbcTypes', 'Checkpoint expire date field type')

http://git-wip-us.apache.org/repos/asf/ignite/blob/68719446/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
deleted file mode 100644
index 8e284fc..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/s3.pug
+++ /dev/null
@@ -1,204 +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
-
--var credentialsModel = '$checkpointSPI.S3.awsCredentials'
--var clientCfgModel = '$checkpointSPI.S3.clientConfiguration'
--var checkpointS3 = '$checkpointSPI.kind === "S3"'
--var checkpointS3Path = checkpointS3 + ' && $checkpointSPI.S3.awsCredentials.kind === "Properties"'
--var checkpointS3Custom = checkpointS3 + ' && $checkpointSPI.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"'
-
-.pc-form-grid-col-60(ng-if-start='$checkpointSPI.kind === "S3"')
-    +dropdown-required('AWS credentials:', '$checkpointSPI.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>')
-.pc-form-group.pc-form-grid-row(ng-if=checkpointS3Path)
-    .pc-form-grid-col-60
-        +text('Path:', credentialsModel + '.Properties.path', '"checkpointS3PropertiesPath"', checkpointS3Path, 'Input properties file path',
-        'The file from which to read the AWS credentials properties')
-.pc-form-group.pc-form-grid-row(ng-if=checkpointS3Custom)
-    .pc-form-grid-col-60
-        +java-class('Class name:', credentialsModel + '.Custom.className', '"checkpointS3CustomClassName"', 'true', checkpointS3Custom,
-        'Custom AWS credentials provider implementation class', checkpointS3Custom)
-.pc-form-grid-col-60
-    label Note, AWS credentials will be generated as stub
-.pc-form-grid-col-60
-    +text('Bucket name suffix:', '$checkpointSPI.S3.bucketNameSuffix', '"checkpointS3BucketNameSuffix"', 'false', 'default-bucket')
-.pc-form-grid-col-60(ng-if-start=`$ctrl.available("2.4.0")`)
-    +text('Bucket endpoint:', `$checkpointSPI.S3.bucketEndpoint`, '"checkpointS3BucketEndpoint"', false, 'Input bucket endpoint',
-    'Bucket endpoint for IP finder<br/> \
-    For information about possible endpoint names visit <a href="http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">docs.aws.amazon.com</a>')
-.pc-form-grid-col-60(ng-if-end)
-    +text('SSE algorithm:', `$checkpointSPI.S3.SSEAlgorithm`, '"checkpointS3SseAlgorithm"', false, 'Input SSE algorithm',
-    'Server-side encryption algorithm for Amazon S3-managed encryption keys<br/> \
-    For information about possible S3-managed encryption keys visit <a href="http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html">docs.aws.amazon.com</a>')
-.pc-form-grid-col-60
-    +java-class('Listener:', '$checkpointSPI.S3.checkpointListener', '"checkpointS3Listener"', 'true', 'false',
-        'Checkpoint listener implementation class name', checkpointS3)
-.pc-form-grid-col-60.pc-form-group__text-title
-    span Client configuration
-.pc-form-group.pc-form-grid-row(ng-if-end)
-    .pc-form-grid-col-30
-        +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>')
-    .pc-form-grid-col-30
-        +number('Maximum connections:', clientCfgModel + '.maxConnections', '"checkpointS3MaxConnections"',
-        'true', '50', '1', 'Maximum number of allowed open HTTP connections')
-    .pc-form-grid-col-60
-        +text('User agent prefix:', clientCfgModel + '.userAgentPrefix', '"checkpointS3UserAgentPrefix"', 'false', 'System specific header',
-        'HTTP user agent prefix to send with all requests')
-    .pc-form-grid-col-60
-        +text('User agent suffix:', clientCfgModel + '.userAgentSuffix', '"checkpointS3UserAgentSuffix"', 'false', 'System specific header',
-        'HTTP user agent suffix to send with all requests')
-    .pc-form-grid-col-60
-        +text-ip-address('Local address:', clientCfgModel + '.localAddress', '"checkpointS3LocalAddress"', 'true', 'Not specified',
-        'Optionally specifies the local address to bind to')
-    .pc-form-grid-col-40
-        +text('Proxy host:', clientCfgModel + '.proxyHost', '"checkpointS3ProxyHost"', 'false', 'Not specified',
-        'Optional proxy host the client will connect through')
-    .pc-form-grid-col-20
-        +number('Proxy port:', clientCfgModel + '.proxyPort', '"checkpointS3ProxyPort"', 'true', 'Not specified', '0',
-        'Optional proxy port the client will connect through')
-    .pc-form-grid-col-30
-        +text('Proxy user:', clientCfgModel + '.proxyUsername', '"checkpointS3ProxyUsername"', 'false', 'Not specified',
-        'Optional proxy user name to use if connecting through a proxy')
-    .pc-form-grid-col-30
-        +text('Proxy domain:', clientCfgModel + '.proxyDomain', '"checkpointS3ProxyDomain"', 'false', 'Not specified',
-        'Optional Windows domain name for configuring an NTLM proxy')
-    .pc-form-grid-col-60
-        +text('Proxy workstation:', clientCfgModel + '.proxyWorkstation', '"checkpointS3ProxyWorkstation"', 'false', 'Not specified',
-        'Optional Windows workstation name for configuring NTLM proxy support')
-    .pc-form-grid-col-60
-        +text('Non proxy hosts:', clientCfgModel + '.nonProxyHosts', '"checkpointS3NonProxyHosts"', 'false', 'Not specified',
-        'Optional hosts the client will access without going through the proxy')
-    .pc-form-grid-col-60
-        +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>')
-    .pc-form-group.pc-form-grid-row(ng-if=checkpointS3DefaultMaxRetry)
-        .pc-form-grid-col-60
-            +number-required('Maximum retry attempts:', clientRetryModel + '.DefaultMaxRetries.maxErrorRetry', '"checkpointS3DefaultMaxErrorRetry"', 'true', checkpointS3DefaultMaxRetry, '-1', '1',
-            'Maximum number of retry attempts for failed requests')
-    .pc-form-group.pc-form-grid-row(ng-if=checkpointS3DynamoDbMaxRetry)
-        .pc-form-grid-col-60
-            +number-required('Maximum retry attempts:', clientRetryModel + '.DynamoDBMaxRetries.maxErrorRetry', '"checkpointS3DynamoDBMaxErrorRetry"', 'true', checkpointS3DynamoDbMaxRetry, '-1', '1',
-            'Maximum number of retry attempts for failed requests')
-    .pc-form-group.pc-form-grid-row(ng-if=checkpointS3CustomRetry)
-        .pc-form-grid-col-60
-            +java-class('Retry condition:', clientRetryModel + '.Custom.retryCondition', '"checkpointS3CustomRetryPolicy"', 'true', checkpointS3CustomRetry,
-            'Retry condition on whether a specific request and exception should be retried', checkpointS3CustomRetry)
-        .pc-form-grid-col-60
-            +java-class('Backoff strategy:', clientRetryModel + '.Custom.backoffStrategy', '"checkpointS3CustomBackoffStrategy"', 'true', checkpointS3CustomRetry,
-            'Back-off strategy for controlling how long the next retry should wait', checkpointS3CustomRetry)
-        .pc-form-grid-col-60
-            +number-required('Maximum retry attempts:', clientRetryModel + '.Custom.maxErrorRetry', '"checkpointS3CustomMaxErrorRetry"', 'true', checkpointS3CustomRetry, '-1', '1',
-            'Maximum number of retry attempts for failed requests')
-        .pc-form-grid-col-60
-            +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)')
-    .pc-form-grid-col-60
-        +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')
-    .pc-form-grid-col-30
-        +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')
-    .pc-form-grid-col-30
-        +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')
-    .pc-form-grid-col-30
-        +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')
-    .pc-form-grid-col-30
-        +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')
-    .pc-form-grid-col-30
-        +text('Signature algorithm:', clientCfgModel + '.signerOverride', '"checkpointS3SignerOverride"', 'false', 'Not specified',
-        'Name of the signature algorithm to use for signing requests made by this client')
-    .pc-form-grid-col-30
-        +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')
-    .pc-form-grid-col-60
-        +java-class('DNS resolver:', clientCfgModel + '.dnsResolver', '"checkpointS3DnsResolver"', 'true', 'false',
-        'DNS Resolver that should be used to for resolving AWS IP addresses', checkpointS3)
-    .pc-form-grid-col-60
-        +number('Response metadata cache size:', clientCfgModel + '.responseMetadataCacheSize', '"checkpointS3ResponseMetadataCacheSize"', 'true', '50', '0',
-        'Response metadata cache size')
-    .pc-form-grid-col-60
-        +java-class('SecureRandom class name:', clientCfgModel + '.secureRandom', '"checkpointS3SecureRandom"', 'true', 'false',
-        'SecureRandom to be used by the SDK class name', checkpointS3)
-    .pc-form-grid-col-60
-        +number('Client execution timeout:', clientCfgModel + '.clientExecutionTimeout', '"checkpointS3ClientExecutionTimeout"', 'true', '0', '0',
-        'Amount of time in milliseconds to allow the client to complete the execution of an API call<br/>\
-        <b>0</b> value disables that feature')
-    .pc-form-grid-col-60
-        +checkbox('Cache response metadata', clientCfgModel + '.cacheResponseMetadata', '"checkpointS3CacheResponseMetadata"', 'Cache response metadata')
-    .pc-form-grid-col-60
-        +checkbox('Use expect continue', clientCfgModel + '.useExpectContinue', '"checkpointS3UseExpectContinue"', 'Optional override to enable/disable support for HTTP/1.1 handshake utilizing EXPECT: 100-Continue')
-    .pc-form-grid-col-60
-        +checkbox('Use throttle retries', clientCfgModel + '.useThrottleRetries', '"checkpointS3UseThrottleRetries"', 'Retry throttling will be used')
-    .pc-form-grid-col-60
-        +checkbox('Use reaper', clientCfgModel + '.useReaper', '"checkpointS3UseReaper"', 'Checks if the IdleConnectionReaper is to be started')
-    .pc-form-grid-col-60
-        +checkbox('Use GZIP', clientCfgModel + '.useGzip', '"checkpointS3UseGzip"', 'Checks if gzip compression is used')
-    .pc-form-grid-col-60
-        +checkbox('Preemptively basic authentication', clientCfgModel + '.preemptiveBasicProxyAuth', '"checkpointS3PreemptiveBasicProxyAuth"',
-        'Attempt to authenticate preemptively against proxy servers using basic authentication')
-    .pc-form-grid-col-60
-        +checkbox('TCP KeepAlive', clientCfgModel + '.useTcpKeepAlive', '"checkpointS3UseTcpKeepAlive"', 'TCP KeepAlive support is enabled')

http://git-wip-us.apache.org/repos/asf/ignite/blob/68719446/modules/web-console/frontend/app/modules/states/configuration/clusters/client-connector.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/client-connector.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/client-connector.pug
deleted file mode 100644
index d27fa14..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/client-connector.pug
+++ /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
-
--var form = 'clientConnector'
--var model = '$ctrl.clonedCluster'
--var connectionModel = `${model}.clientConnectorConfiguration`
--var connectionEnabled = `${connectionModel}.enabled`
--var sslEnabled = `${connectionEnabled} && ${connectionModel}.sslEnabled`
--var sslFactoryEnabled = `${sslEnabled} && !${connectionModel}.useIgniteSslContextFactory`
-
-panel-collapsible(ng-show='$ctrl.available("2.3.0")' ng-form=form on-open=`ui.loadPanel('${form}')`)
-    panel-title Client connector configuration
-    panel-content.pca-form-row(ng-if=`$ctrl.available("2.3.0") && ui.isPanelLoaded('${form}')`)
-        .pca-form-column-6.pc-form-grid-row
-            .pc-form-grid-col-60
-                +checkbox('Enabled', connectionEnabled, '"ClientConnectorEnabled"', 'Flag indicating whether to configure client connector configuration')
-            .pc-form-grid-col-40
-                +text-enabled('Host:', `${connectionModel}.host`, '"ClientConnectorHost"', connectionEnabled, 'false', 'localhost')
-            .pc-form-grid-col-20
-                +number('Port:', `${connectionModel}.port`, '"ClientConnectorPort"', connectionEnabled, '10800', '1025')
-            .pc-form-grid-col-20
-                +number('Port range:', `${connectionModel}.portRange`, '"ClientConnectorPortRange"', connectionEnabled, '100', '0')
-            .pc-form-grid-col-20
-                +number('Socket send buffer size:', `${connectionModel}.socketSendBufferSize`, '"ClientConnectorSocketSendBufferSize"', connectionEnabled, '0', '0',
-                    'Socket send buffer size<br/>\
-                    When set to <b>0</b>, operation system default will be used')
-            .pc-form-grid-col-20
-                +number('Socket receive buffer size:', `${connectionModel}.socketReceiveBufferSize`, '"ClientConnectorSocketReceiveBufferSize"', connectionEnabled, '0', '0',
-                    'Socket receive buffer size<br/>\
-                    When set to <b>0</b>, operation system default will be used')
-            .pc-form-grid-col-30
-                +number('Max connection cursors:', `${connectionModel}.maxOpenCursorsPerConnection`, '"ClientConnectorMaxOpenCursorsPerConnection"', connectionEnabled, '128', '0',
-                    'Max number of opened cursors per connection')
-            .pc-form-grid-col-30
-                +number('Pool size:', `${connectionModel}.threadPoolSize`, '"ClientConnectorThreadPoolSize"', connectionEnabled, 'max(8, availableProcessors)', '1',
-                    'Size of thread pool that is in charge of processing SQL requests')
-            .pc-form-grid-col-60
-                +checkbox-enabled('TCP_NODELAY option', `${connectionModel}.tcpNoDelay`, '"ClientConnectorTcpNoDelay"', connectionEnabled)
-            .pc-form-grid-col-60(ng-if='$ctrl.available("2.4.0")')
-                +number('Idle timeout:', `${connectionModel}.idleTimeout`, '"ClientConnectorIdleTimeout"', connectionEnabled, '0', '-1',
-                    'Idle timeout for client connections<br/>\
-                    Zero or negative means no timeout')
-            .pc-form-grid-col-60(ng-if-start='$ctrl.available("2.5.0")')
-                +checkbox-enabled('Enable SSL', `${connectionModel}.sslEnabled`, '"ClientConnectorSslEnabled"', connectionEnabled, 'Enable secure socket layer on client connector')
-            .pc-form-grid-col-60
-                +checkbox-enabled('Enable SSL client auth', `${connectionModel}.sslClientAuth`, '"ClientConnectorSslClientAuth"', sslEnabled, 'Flag indicating whether or not SSL client authentication is required')
-            .pc-form-grid-col-60
-                +checkbox-enabled('Use Ignite SSL', `${connectionModel}.useIgniteSslContextFactory`, '"ClientConnectorUseIgniteSslContextFactory"', sslEnabled, 'Use SSL factory Ignite configuration')
-            .pc-form-grid-col-60(ng-if-end)
-                +java-class('SSL factory:', `${connectionModel}.sslContextFactory`, '"ClientConnectorSslContextFactory"', sslFactoryEnabled, sslFactoryEnabled,
-                'If SSL factory specified then replication will be performed through secure SSL channel created with this factory<br/>\
-                If not present <b>isUseIgniteSslContextFactory()</b> flag will be evaluated<br/>\
-                If set to <b>true</b> and <b>IgniteConfiguration#getSslContextFactory()</b> exists, then Ignite SSL context factory will be used to establish secure connection')
-            .pc-form-grid-col-60(ng-if-start='$ctrl.available("2.4.0")')
-                +checkbox-enabled('JDBC Enabled', `${connectionModel}.jdbcEnabled`, '"ClientConnectorJdbcEnabled"', connectionEnabled, 'Access through JDBC is enabled')
-            .pc-form-grid-col-60
-                +checkbox-enabled('ODBC Enabled', `${connectionModel}.odbcEnabled`, '"ClientConnectorOdbcEnabled"', connectionEnabled, 'Access through ODBC is enabled')
-            .pc-form-grid-col-60(ng-if-end)
-                +checkbox-enabled('Thin client enabled', `${connectionModel}.thinClientEnabled`, '"ClientConnectorThinCliEnabled"', connectionEnabled, 'Access through thin client is enabled')
-        .pca-form-column-6
-            +preview-xml-java(model, 'clusterClientConnector')

http://git-wip-us.apache.org/repos/asf/ignite/blob/68719446/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
deleted file mode 100644
index c315af1..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision.pug
+++ /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
-
--var form = 'collision'
--var model = '$ctrl.clonedCluster.collision'
--var modelCollisionKind = model + '.kind';
-
-panel-collapsible(ng-form=form on-open=`ui.loadPanel('${form}')`)
-    panel-title Collision configuration
-    panel-description
-        | Configuration Collision SPI allows to regulate how grid jobs get executed when they arrive on a destination node for execution. 
-        | #[a.link-success(href="https://apacheignite.readme.io/docs/job-scheduling" target="_blank") More info]
-    panel-content.pca-form-row(ng-if=`ui.isPanelLoaded('${form}')`)
-        .pca-form-column-6.pc-form-grid-row
-            .pc-form-grid-col-60
-                +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>')
-            .pc-form-group(ng-show=`${modelCollisionKind} !== 'Noop'`)
-                .pc-form-grid-row(ng-show=`${modelCollisionKind} === 'JobStealing'`)
-                    include ./collision/job-stealing
-                .pc-form-grid-row(ng-show=`${modelCollisionKind} === 'FifoQueue'`)
-                    include ./collision/fifo-queue
-                .pc-form-grid-row(ng-show=`${modelCollisionKind} === 'PriorityQueue'`)
-                    include ./collision/priority-queue
-                .pc-form-grid-row(ng-show=`${modelCollisionKind} === 'Custom'`)
-                    include ./collision/custom
-        .pca-form-column-6
-            -var model = '$ctrl.clonedCluster.collision'
-            +preview-xml-java(model, 'clusterCollision')

http://git-wip-us.apache.org/repos/asf/ignite/blob/68719446/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
deleted file mode 100644
index c1d11d5..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/custom.pug
+++ /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
-
--var model = '$ctrl.clonedCluster.collision.Custom'
--var required = '$ctrl.clonedCluster.collision.kind === "Custom"'
-
-.pc-form-grid-col-60
-    +java-class('Class:', `${model}.class`, '"collisionCustom"', 'true', required, 'CollisionSpi implementation class', required)

http://git-wip-us.apache.org/repos/asf/ignite/blob/68719446/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
deleted file mode 100644
index c009386..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/fifo-queue.pug
+++ /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.
-
-include /app/helpers/jade/mixins
-
--var model = '$ctrl.clonedCluster.collision.FifoQueue'
-
-.pc-form-grid-col-30
-    +number('Parallel jobs number:', `${model}.parallelJobsNumber`, '"fifoParallelJobsNumber"', 'true', 'availableProcessors * 2', '1',
-        'Number of jobs that can be executed in parallel')
-.pc-form-grid-col-30
-    +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/68719446/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
deleted file mode 100644
index f1b0a56..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/job-stealing.pug
+++ /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
-
--var model = '$ctrl.clonedCluster.collision.JobStealing'
--var stealingAttributes = `${model}.stealingAttributes`
-
-.pc-form-grid-col-30
-    +number('Active jobs threshold:', `${model}.activeJobsThreshold`, '"jsActiveJobsThreshold"', 'true', '95', '0',
-        'Number of jobs that can be executed in parallel')
-.pc-form-grid-col-30
-    +number('Wait jobs threshold:', `${model}.waitJobsThreshold`, '"jsWaitJobsThreshold"', 'true', '0', '0',
-        'Job count threshold at which this node will start stealing jobs from other nodes')
-.pc-form-grid-col-30
-    +number('Message expire time:', `${model}.messageExpireTime`, '"jsMessageExpireTime"', 'true', '1000', '1',
-        'Message expire time in ms')
-.pc-form-grid-col-30
-    +number('Maximum stealing attempts:', `${model}.maximumStealingAttempts`, '"jsMaximumStealingAttempts"', 'true', '5', '1',
-        'Maximum number of attempts to steal job by another node')
-.pc-form-grid-col-60
-    +checkbox('Stealing enabled', `${model}.stealingEnabled`, '"jsStealingEnabled"',
-        'Node should attempt to steal jobs from other nodes')
-.pc-form-grid-col-60
-    +java-class('External listener:', `${model}.externalCollisionListener`, '"jsExternalCollisionListener"', 'true', 'false',
-        'Listener to be set for notification of external collision events', '$ctrl.clonedCluster.collision.kind === "JobStealing"')
-.pc-form-grid-col-60
-    .ignite-form-field
-        +ignite-form-field__label('Stealing attributes:', '"stealingAttributes"')
-            +tooltip(`Configuration parameter to enable stealing to/from only nodes that have these attributes set`)
-        .ignite-form-field__control
-            +list-pair-edit({
-                items: stealingAttributes,
-                keyLbl: 'Attribute name', 
-                valLbl: 'Attribute value',
-                itemName: 'stealing attribute',
-                itemsName: 'stealing attributes'
-            })

http://git-wip-us.apache.org/repos/asf/ignite/blob/68719446/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
deleted file mode 100644
index fd198ce..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/priority-queue.pug
+++ /dev/null
@@ -1,41 +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
-
--var model = '$ctrl.clonedCluster.collision.PriorityQueue'
-
-.pc-form-grid-col-30
-    +number('Parallel jobs number:', `${model}.parallelJobsNumber`, '"priorityParallelJobsNumber"', 'true', 'availableProcessors * 2', '1',
-        'Number of jobs that can be executed in parallel')
-.pc-form-grid-col-30
-    +number('Waiting jobs number:', `${model}.waitingJobsNumber`, '"priorityWaitingJobsNumber"', 'true', 'Integer.MAX_VALUE', '0',
-        'Maximum number of jobs that are allowed to wait in waiting queue')
-.pc-form-grid-col-30
-    +text('Priority attribute key:', `${model}.priorityAttributeKey`, '"priorityPriorityAttributeKey"', 'false', 'grid.task.priority',
-        'Task priority attribute key')
-.pc-form-grid-col-30
-    +text('Job priority attribute key:', `${model}.jobPriorityAttributeKey`, '"priorityJobPriorityAttributeKey"', 'false', 'grid.job.priority',
-        'Job priority attribute key')
-.pc-form-grid-col-30
-    +number('Default priority:', `${model}.defaultPriority`, '"priorityDefaultPriority"', 'true', '0', '0',
-        'Default priority to use if a job does not have priority attribute set')
-.pc-form-grid-col-30
-    +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')
-.pc-form-grid-col-60
-    +checkbox('Starvation prevention enabled', `${model}.starvationPreventionEnabled`, '"priorityStarvationPreventionEnabled"',
-        'Job starvation prevention is enabled')