http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/src/main/js/app/modules/states/configuration/domains/general.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/domains/general.jade b/modules/web-console/src/main/js/app/modules/states/configuration/domains/general.jade deleted file mode 100644 index c7d25b4..0000000 --- a/modules/web-console/src/main/js/app/modules/states/configuration/domains/general.jade +++ /dev/null @@ -1,46 +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' - -form.panel.panel-default(name=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 - ignite-form-revert - .panel-collapse(role='tabpanel' bs-collapse-target id=form) - .panel-body - .col-sm-6 - .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>') - .settings-row - +java-class-typeahead('Key type:', model + '.keyType', 'keyType', 'javaBuiltInClasses', 'true', 'true', 'Full class name for Key', 'Key class used to store key in cache') - .settings-row - +java-class('Value type:', model + '.valueType', 'valueType', 'true', 'true', 'Value class used to store value in cache') - .col-sm-6 - +preview-xml-java(model, 'domainModelGeneral')
http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/src/main/js/app/modules/states/configuration/domains/query.directive.js ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/domains/query.directive.js b/modules/web-console/src/main/js/app/modules/states/configuration/domains/query.directive.js deleted file mode 100644 index 2033394..0000000 --- a/modules/web-console/src/main/js/app/modules/states/configuration/domains/query.directive.js +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import templateUrl from './query.jade'; - -export default ['igniteConfigurationDomainsQuery', [() => { - return { - scope: true, - restrict: 'E', - templateUrl, - replace: true - }; -}]]; http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/src/main/js/app/modules/states/configuration/domains/query.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/domains/query.jade b/modules/web-console/src/main/js/app/modules/states/configuration/domains/query.jade deleted file mode 100644 index 9ac0d00..0000000 --- a/modules/web-console/src/main/js/app/modules/states/configuration/domains/query.jade +++ /dev/null @@ -1,169 +0,0 @@ -//- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - -include ../../../../../app/helpers/jade/mixins.jade - -- var model = 'backupItem' -- var 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 - - .col-xs-8.col-sm-8.col-md-8(ng-show=sortAvailable) - label.fieldSep / - .input-tip - input.form-control(id='{{::"#{fieldName}S" + #{idAddition}}}' ignite-on-enter-focus-move='{{::"#{direction}S" + #{idAddition}}}' type='text' ng-model=fieldNameModel placeholder='Field name' ignite-on-escape='tableReset()') - .col-xs-4.col-sm-4.col-md-4(ng-show=sortAvailable) - +btn-save(btnVisible, btnSave) - .input-tip - button.select-toggle.form-control(id='{{::"#{direction}S" + #{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()' tabindex='0') - .col-xs-12(ng-show='!(#{sortAvailable})') - +btn-save(btnVisible, btnSave) - .input-tip - input.form-control(id='{{::"#{fieldName}" + #{idAddition}}}' type='text' ng-model=fieldNameModel placeholder='Field name' ignite-on-enter=btnVisibleAndSave ignite-on-escape='tableReset()') - -form.panel.panel-default(name='query' 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 - 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}') - td.col-sm-12(ng-show='!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}') - td.col-sm-12(ng-show='!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}') - td - .col-sm-12(ng-show='!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()') - .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()') - .margin-left-dflt - table.links-edit-sub(st-table='item.fields' ng-init='itemIndex = $index') - tbody - tr(ng-repeat='itemItem in item.fields') - td - div(ng-show='!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()') - .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()') - .col-sm-6 - +preview-xml-java(model, 'domainModelQuery') http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/src/main/js/app/modules/states/configuration/domains/store.directive.js ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/domains/store.directive.js b/modules/web-console/src/main/js/app/modules/states/configuration/domains/store.directive.js deleted file mode 100644 index a69b025..0000000 --- a/modules/web-console/src/main/js/app/modules/states/configuration/domains/store.directive.js +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import templateUrl from './store.jade'; - -export default ['igniteConfigurationDomainsStore', [() => { - return { - scope: true, - restrict: 'E', - templateUrl, - replace: true - }; -}]]; http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/src/main/js/app/modules/states/configuration/domains/store.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/domains/store.jade b/modules/web-console/src/main/js/app/modules/states/configuration/domains/store.jade deleted file mode 100644 index 8d3c65b..0000000 --- a/modules/web-console/src/main/js/app/modules/states/configuration/domains/store.jade +++ /dev/null @@ -1,126 +0,0 @@ -//- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - -include ../../../../../app/helpers/jade/mixins.jade - --var form = 'store' --var model = 'backupItem' --var keyFields = model + '.keyFields' --var valueFields = model + '.valueFields' --var keyFieldsForm = 'storeKeyFields' --var valueFieldsForm = 'storeValueFields' - -//- LEGACY mixin for LEGACY db fields tables. -mixin table-db-field-edit(tbl, prefix, focusId, index) - -var databaseName = prefix + 'DatabaseFieldName' - -var databaseType = prefix + 'DatabaseFieldType' - -var javaName = prefix + 'JavaFieldName' - -var javaType = prefix + 'JavaFieldType' - - -var databaseNameModel = tbl + '.' + databaseName - -var databaseTypeModel = tbl + '.' + databaseType - -var javaNameModel = tbl + '.' + javaName - -var javaTypeModel = tbl + '.' + javaType - - -var databaseNameId = databaseName + focusId - -var databaseTypeId = databaseType + focusId - -var javaNameId = javaName + focusId - -var javaTypeId = javaType + focusId - - .col-xs-3.col-sm-3.col-md-3 - .fieldSep / - .input-tip - input.form-control(id=databaseNameId ignite-on-enter-focus-move=databaseTypeId type='text' ng-model=databaseNameModel placeholder='DB name' ignite-on-enter='#{javaNameModel} = #{javaNameModel} ? #{javaNameModel} : #{databaseNameModel}' ignite-on-escape='tableReset()') - .col-xs-3.col-sm-3.col-md-3 - .fieldSep / - .input-tip - button.select-toggle.form-control(id=databaseTypeId ignite-on-enter-focus-move=javaNameId ng-model=databaseTypeModel data-placeholder='DB type' ng-class='{placeholder: !#{databaseTypeModel}}' bs-select bs-options='item.value as item.label for item in {{supportedJdbcTypes}}' ignite-on-escape='tableReset()' tabindex='0') - .col-xs-3.col-sm-3.col-md-3 - .fieldSep / - .input-tip - input.form-control(id=javaNameId ignite-on-enter-focus-move=javaTypeId type='text' ng-model=javaNameModel placeholder='Java name' ignite-on-escape='tableReset()') - .col-xs-3.col-sm-3.col-md-3 - -var btnVisible = 'tableDbFieldSaveVisible(' + tbl + ', ' + index +')' - -var btnSave = 'tableDbFieldSave(' + tbl + ', ' + index +')' - -var btnVisibleAndSave = btnVisible + ' && ' + btnSave - - +btn-save(btnVisible, btnSave) - .input-tip - button.select-toggle.form-control(id=javaTypeId ng-model=javaTypeModel data-placeholder='Java type' ng-class='{placeholder: !#{javaTypeModel}}' bs-select bs-options='item.value as item.label for item in {{supportedJavaTypes}}' ignite-on-enter=btnVisibleAndSave ignite-on-escape='tableReset()' tabindex='0') - -form.panel.panel-default(name=form novalidate) - .panel-heading(bs-collapse-toggle='' ng-click='ui.loadPanel("#{form}")') - ignite-form-panel-chevron - label Domain model for cache store - ignite-form-field-tooltip.tipLabel - | Domain model properties for binding database with cache via POJO cache store - ignite-form-revert - .panel-collapse(role='tabpanel' bs-collapse-target id=form) - .panel-body(ng-if='ui.isPanelLoaded("#{form}")') - .col-sm-6 - .settings-row - +text('Database schema:', model + '.databaseSchema', 'databaseSchema', 'false', 'Input DB schema name', 'Schema name in database') - .settings-row - +text('Database table:', model + '.databaseTable', 'databaseTable', 'false', 'Input DB table name', 'Table name in database') - .settings-row(ng-init='keysTbl={type: "table-db-fields", model: "keyFields", focusId: "KeyField", ui: "table-db-fields"}') - ignite-form-group(ng-model='#{keyFields}' ng-form='#{keyFieldsForm}') - ignite-form-field-label(id='keyFields') - | Key fields - ignite-form-group-tooltip - | Collection of key fields descriptions for CacheJdbcPojoStore - ignite-form-group-add(ng-click='tableNewItem(keysTbl)') - | Add key field - .group-content-empty(ng-show='!((#{keyFields} && #{keyFields}.length > 0) || tableNewItemActive(keysTbl))') Not defined - .group-content(ng-show='(#{keyFields} && #{keyFields}.length > 0) || tableNewItemActive(keysTbl)') - table.links-edit(st-table=keyFields) - tbody - tr(ng-repeat='item in #{keyFields}') - td - div(ng-show='!tableEditing(keysTbl, $index)') - a.labelFormField(ng-click='tableStartEdit(backupItem, keysTbl, $index)') {{$index + 1}}) {{item.databaseFieldName}} / {{item.databaseFieldType}} / {{item.javaFieldName}} / {{item.javaFieldType}} - +btn-remove('tableRemove(backupItem, keysTbl, $index)', '"Remove key field"') - div(ng-show='tableEditing(keysTbl, $index)') - +table-db-field-edit('keysTbl', 'cur', '{{::keysTbl.focusId + $index}}', '$index') - tfoot(ng-show='tableNewItemActive(keysTbl)') - tr - td - +table-db-field-edit('keysTbl', 'new', 'KeyField', '-1') - .settings-row(ng-init='valuesTbl={type: "table-db-fields", model: "valueFields", focusId: "ValueField", ui: "table-db-fields"}') - ignite-form-group(ng-model='#{valueFields}' ng-form='#{valueFieldsForm}') - ignite-form-field-label(id='valueFields') - | Value fields - ignite-form-group-tooltip - | Collection of value fields descriptions for CacheJdbcPojoStore - ignite-form-group-add(ng-click='tableNewItem(valuesTbl)') - | Add value field - .group-content-empty(ng-show='!((#{valueFields} && #{valueFields}.length > 0) || tableNewItemActive(valuesTbl))') Not defined - .group-content(ng-show='(#{valueFields} && #{valueFields}.length > 0) || tableNewItemActive(valuesTbl)') - table.links-edit(st-table=valueFields) - tbody - tr(ng-repeat='item in #{valueFields}') - td - div(ng-show='!tableEditing(valuesTbl, $index)') - a.labelFormField(ng-click='tableStartEdit(backupItem, valuesTbl, $index)') {{$index + 1}}) {{item.databaseFieldName}} / {{item.databaseFieldType}} / {{item.javaFieldName}} / {{item.javaFieldType}} - +btn-remove('tableRemove(backupItem, valuesTbl, $index)', '"Remove key field"') - div(ng-show='tableEditing(valuesTbl, $index)') - +table-db-field-edit('valuesTbl', 'cur', '{{::valuesTbl.focusId + $index}}', '$index') - tfoot(ng-show='tableNewItemActive(valuesTbl)') - tr - td - +table-db-field-edit('valuesTbl', 'new', 'ValueField', '-1') - .col-sm-6 - +preview-xml-java(model, 'domainStore') - http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/dual.directive.js ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/dual.directive.js b/modules/web-console/src/main/js/app/modules/states/configuration/igfs/dual.directive.js deleted file mode 100644 index c5afc4e..0000000 --- a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/dual.directive.js +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import templateUrl from './dual.jade'; - -export default ['igniteConfigurationIgfsDual', [() => { - return { - scope: true, - restrict: 'E', - templateUrl, - replace: true - }; -}]]; http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/dual.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/dual.jade b/modules/web-console/src/main/js/app/modules/states/configuration/igfs/dual.jade deleted file mode 100644 index 8129f0d..0000000 --- a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/dual.jade +++ /dev/null @@ -1,42 +0,0 @@ -//- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - -include ../../../../../app/helpers/jade/mixins.jade - --var form = 'dualMode' --var model = 'backupItem' - -form.panel.panel-default(name=form novalidate) - .panel-heading(bs-collapse-toggle='' ng-click='ui.loadPanel("#{form}")') - ignite-form-panel-chevron - label Dual mode - ignite-form-field-tooltip.tipLabel - | IGFS supports dual-mode that allows it to work as either a standalone file system in Hadoop cluster, or work in tandem with HDFS, providing a primary caching layer for the secondary HDFS#[br] - | As a caching layer it provides highly configurable read-through and write-through behaviour - ignite-form-revert - .panel-collapse(role='tabpanel' bs-collapse-target id=form) - .panel-body(ng-if='ui.isPanelLoaded("#{form}")') - .col-sm-6 - .settings-row - +number('Maximum pending puts size:', model + '.dualModeMaxPendingPutsSize', 'dualModeMaxPendingPutsSize', 'true', '0', 'Number.MIN_SAFE_INTEGER', - 'Maximum amount of pending data read from the secondary file system and waiting to be written to data cache<br/>\ - Zero or negative value stands for unlimited size') - .settings-row - +java-class('Put executor service:', model + '.dualModePutExecutorService', 'dualModePutExecutorService', 'true', 'false', 'DUAL mode put operation executor service') - .settings-row - +checkbox('Put executor service shutdown', model + '.dualModePutExecutorServiceShutdown', 'dualModePutExecutorServiceShutdown', 'DUAL mode put operation executor service shutdown flag') - .col-sm-6 - +preview-xml-java(model, 'igfsDualMode') http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/fragmentizer.directive.js ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/fragmentizer.directive.js b/modules/web-console/src/main/js/app/modules/states/configuration/igfs/fragmentizer.directive.js deleted file mode 100644 index d008933..0000000 --- a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/fragmentizer.directive.js +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import templateUrl from './fragmentizer.jade'; - -export default ['igniteConfigurationIgfsFragmentizer', [() => { - return { - scope: true, - restrict: 'E', - templateUrl, - replace: true - }; -}]]; http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/fragmentizer.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/fragmentizer.jade b/modules/web-console/src/main/js/app/modules/states/configuration/igfs/fragmentizer.jade deleted file mode 100644 index fa8c244..0000000 --- a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/fragmentizer.jade +++ /dev/null @@ -1,43 +0,0 @@ -//- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - -include ../../../../../app/helpers/jade/mixins.jade - --var form = 'fragmentizer' --var model = 'backupItem' - -form.panel.panel-default(name=form novalidate) - .panel-heading(bs-collapse-toggle='' ng-click='ui.loadPanel("#{form}")') - ignite-form-panel-chevron - label Fragmentizer - ignite-form-field-tooltip.tipLabel - | Fragmentizer settings - ignite-form-revert - .panel-collapse(role='tabpanel' bs-collapse-target id=form) - .panel-body(ng-if='ui.isPanelLoaded("#{form}")') - .col-sm-6 - -var enabled = model + '.fragmentizerEnabled' - - .settings-row - +checkbox('Enabled', enabled, 'fragmentizerEnabled', 'Fragmentizer enabled flag') - .settings-row - +number('Concurrent files:', model + '.fragmentizerConcurrentFiles', 'fragmentizerConcurrentFiles', enabled, '0', '0', 'Number of files to process concurrently by fragmentizer') - .settings-row - +number('Throttling block length:', model + '.fragmentizerThrottlingBlockLength', 'fragmentizerThrottlingBlockLength', enabled, '16777216', '1', 'Length of file chunk to transmit before throttling is delayed') - .settings-row - +number('Throttling delay:', model + '.fragmentizerThrottlingDelay', 'fragmentizerThrottlingDelay', enabled, '200', '0', 'Delay in milliseconds for which fragmentizer is paused') - .col-sm-6 - +preview-xml-java(model, 'igfsFragmentizer') http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/general.directive.js ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/general.directive.js b/modules/web-console/src/main/js/app/modules/states/configuration/igfs/general.directive.js deleted file mode 100644 index bda5418..0000000 --- a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/general.directive.js +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import templateUrl from './general.jade'; - -export default ['igniteConfigurationIgfsGeneral', [() => { - return { - scope: true, - restrict: 'E', - templateUrl, - replace: true - }; -}]]; http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/general.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/general.jade b/modules/web-console/src/main/js/app/modules/states/configuration/igfs/general.jade deleted file mode 100644 index e81dd9b..0000000 --- a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/general.jade +++ /dev/null @@ -1,53 +0,0 @@ -//- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - -include ../../../../../app/helpers/jade/mixins.jade - --var model = 'backupItem' - -form.panel.panel-default(name='general' novalidate) - .panel-heading(bs-collapse-toggle) - ignite-form-panel-chevron - label General - ignite-form-revert - .panel-collapse(role='tabpanel' bs-collapse-target id='general') - .panel-body - .col-sm-6 - .settings-row - +text('Name:', model + '.name', 'igfsName', 'true', 'Input name', 'IGFS name') - .settings-row - +clusters(model, 'Associate clusters with the current IGFS') - .settings-row - +dropdown('IGFS mode:', model + '.defaultMode', 'defaultMode', 'true', 'DUAL_ASYNC', - '[\ - {value: "PRIMARY", label: "PRIMARY"},\ - {value: "PROXY", label: "PROXY"},\ - {value: "DUAL_SYNC", label: "DUAL_SYNC"},\ - {value: "DUAL_ASYNC", label: "DUAL_ASYNC"}\ - ]', - 'Mode to specify how IGFS interacts with Hadoop file system:\ - <ul>\ - <li>PRIMARY - in this mode IGFS will not delegate to secondary Hadoop file system and will cache all the files in memory only</li>\ - <li>PROXY - in this mode IGFS will not cache any files in memory and will only pass them through to secondary file system</li>\ - <li>DUAL_SYNC - in this mode IGFS will cache files locally and also <b>synchronously</b> write them through to secondary file system</li>\ - <li>DUAL_ASYNC - in this mode IGFS will cache files locally and also <b> asynchronously </b> write them through to secondary file system</li>\ - </ul>') - .settings-row - +number('Group size:', model + '.affinnityGroupSize', 'affinnityGroupSize', 'true', '512', '1', - 'Size of the group in blocks<br/>\ - Required for construction of affinity mapper in IGFS data cache') - .col-sm-6 - +preview-xml-java(model, 'igfsGeneral') http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/ipc.directive.js ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/ipc.directive.js b/modules/web-console/src/main/js/app/modules/states/configuration/igfs/ipc.directive.js deleted file mode 100644 index eb52e51..0000000 --- a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/ipc.directive.js +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import templateUrl from './ipc.jade'; - -export default ['igniteConfigurationIgfsIpc', [() => { - return { - scope: true, - restrict: 'E', - templateUrl, - replace: true - }; -}]]; http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/ipc.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/ipc.jade b/modules/web-console/src/main/js/app/modules/states/configuration/igfs/ipc.jade deleted file mode 100644 index 361036a..0000000 --- a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/ipc.jade +++ /dev/null @@ -1,57 +0,0 @@ -//- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - -include ../../../../../app/helpers/jade/mixins.jade - --var form = 'ipc' --var model = 'backupItem' - -form.panel.panel-default(name=form novalidate) - .panel-heading(bs-collapse-toggle='' ng-click='ui.loadPanel("#{form}")') - ignite-form-panel-chevron - label IPC - ignite-form-field-tooltip.tipLabel - | IGFS Inter-process communication properties - ignite-form-revert - .panel-collapse(role='tabpanel' bs-collapse-target id=form) - .panel-body(ng-if='ui.isPanelLoaded("#{form}")') - .col-sm-6 - -var ipcEndpointConfiguration = model + '.ipcEndpointConfiguration' - -var enabled = model + '.ipcEndpointEnabled' - - .settings-row - +checkbox('Enabled', enabled, 'ipcEndpointEnabled', 'IPC endpoint enabled flag') - .settings-row - +dropdown('Type:', ipcEndpointConfiguration + '.type', 'ipcEndpointConfigurationType', enabled, 'TCP', - '[\ - {value: "SHMEM", label: "SHMEM"},\ - {value: "TCP", label: "TCP"}\ - ]', - 'IPC endpoint type\ - <ul>\ - <li>SHMEM - shared memory endpoint</li>\ - <li>TCP - TCP endpoint</li>\ - </ul>') - .settings-row - +text-ip-address('Host:', ipcEndpointConfiguration + '.host', 'ipcEndpointConfigurationHost', enabled, '127.0.0.1', 'Host name') - .settings-row - +number-min-max('Port:', ipcEndpointConfiguration + '.port', 'ipcEndpointConfigurationPort', enabled, '10500', '1', '65535', 'Port number') - .settings-row - +number('Memory size:', ipcEndpointConfiguration + '.memorySize', 'ipcEndpointConfigurationMemorySize', enabled, '262144', '1', 'Shared memory size in bytes allocated for endpoint communication') - .settings-row - +text-enabled('Token directory:', ipcEndpointConfiguration + '.tokenDirectoryPath', 'ipcEndpointConfigurationTokenDirectoryPath', enabled, 'false', 'ipc/shmem', 'Directory where shared memory tokens are stored') - .col-sm-6 - +preview-xml-java(model, 'igfsIPC') http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/misc.directive.js ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/misc.directive.js b/modules/web-console/src/main/js/app/modules/states/configuration/igfs/misc.directive.js deleted file mode 100644 index 810944f..0000000 --- a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/misc.directive.js +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import templateUrl from './misc.jade'; - -export default ['igniteConfigurationIgfsMisc', [() => { - return { - scope: true, - restrict: 'E', - templateUrl, - replace: true - }; -}]]; http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/misc.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/misc.jade b/modules/web-console/src/main/js/app/modules/states/configuration/igfs/misc.jade deleted file mode 100644 index dc48d07..0000000 --- a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/misc.jade +++ /dev/null @@ -1,108 +0,0 @@ -//- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - -include ../../../../../app/helpers/jade/mixins.jade - --var form = 'misc' --var model = 'backupItem' --var pathModesForm = 'miscPathModes' --var pathModes = model + '.pathModes' - -//- LEGACY mixin for LEGACY IGFS path modes table. -mixin table-igfs-path-mode-edit(prefix, focusId, index) - -var keyModel = 'tblPathModes.' + prefix + 'Key' - -var valModel = 'tblPathModes.' + prefix + 'Value' - - -var keyFocusId = prefix + 'Key' + focusId - -var valFocusId = prefix + 'Value' + focusId - - .col-xs-8.col-sm-8.col-md-8 - .fieldSep / - .input-tip - input.form-control(id=keyFocusId ignite-on-enter-focus-move=valFocusId type='text' ng-model=keyModel placeholder='Path' ignite-on-escape='tableReset()') - .col-xs-4.col-sm-4.col-md-4 - -var arg = keyModel + ', ' + valModel - -var btnVisible = 'tablePairSaveVisible(tblPathModes, ' + index + ')' - -var btnSave = 'tablePairSave(tablePairValid, backupItem, tblPathModes, ' + index + ')' - -var btnVisibleAndSave = btnVisible + ' && ' + btnSave - +btn-save(btnVisible, btnSave) - .input-tip - button.select-toggle.form-control(id=valFocusId bs-select ng-model=valModel data-placeholder='Mode' bs-options='item.value as item.label for item in igfsModes' tabindex='0' ignite-on-enter=btnVisibleAndSave ignite-on-escape='tableReset()') - -form.panel.panel-default(name=form novalidate) - .panel-heading(bs-collapse-toggle='' ng-click='ui.loadPanel("#{form}")') - ignite-form-panel-chevron - label Miscellaneous - ignite-form-field-tooltip.tipLabel - | Various miscellaneous IGFS settings - ignite-form-revert - .panel-collapse(role='tabpanel' bs-collapse-target id=form) - .panel-body(ng-if='ui.isPanelLoaded("#{form}")') - .col-sm-6 - .settings-row - +number('Block size:', model + '.blockSize', 'blockSize', 'true', '65536', '0', 'File data block size in bytes') - .settings-row - +number('Stream buffer size:', model + '.streamBufferSize', 'streamBufferSize', 'true', '65536', '0', 'File data block size in bytes') - .settings-row - +number('Maximum space size:', model + '.maxSpaceSize', 'maxSpaceSize', 'true', '0', '0', 'Maximum space available for data cache to store file system entries') - .settings-row - +number('Maximum task range length:', model + '.maximumTaskRangeLength', 'maximumTaskRangeLength', 'true', '0', '0', 'Maximum default range size of a file being split during IGFS task execution') - .settings-row - +number-min-max('Management port:', model + '.managementPort', 'managementPort', 'true', '11400', '0', '65535', 'Port number for management endpoint') - .settings-row - +number('Per node batch size:', model + '.perNodeBatchSize', 'perNodeBatchSize', 'true', '100', '0', 'Number of file blocks collected on local node before sending batch to remote node') - .settings-row - +number('Per node parallel batch count:', model + '.perNodeParallelBatchCount', 'perNodeParallelBatchCount', 'true', '8', '0', 'Number of file block batches that can be concurrently sent to remote node') - .settings-row - +number('Prefetch blocks:', model + '.prefetchBlocks', 'prefetchBlocks', 'true', '0', '0', 'Number of pre-fetched blocks if specific file chunk is requested') - .settings-row - +number('Sequential reads before prefetch:', model + '.sequentialReadsBeforePrefetch', 'sequentialReadsBeforePrefetch', 'true', '0', '0', 'Amount of sequential block reads before prefetch is triggered') - .settings-row - +number('Trash purge timeout:', model + '.trashPurgeTimeout', 'trashPurgeTimeout', 'true', '1000', '0', 'Maximum timeout awaiting for trash purging in case data cache oversize is detected') - .settings-row - +checkbox('Colocate metadata', model + '.colocateMetadata', 'colocateMetadata', 'Whether to co-locate metadata on a single node') - .settings-row - +checkbox('Relaxed consistency', model + '.relaxedConsistency', 'relaxedConsistency', - 'If value of this flag is <b>true</b>, IGFS will skip expensive consistency checks<br/>\ - It is recommended to set this flag to <b>false</b> if your application has conflicting\ - operations, or you do not know how exactly users will use your system') - .settings-row - ignite-form-group(ng-model=pathModes ng-form=pathModesForm) - ignite-form-field-label - | Path modes - ignite-form-group-tooltip - | Map of path prefixes to IGFS modes used for them - ignite-form-group-add(ng-click='tableNewItem(tblPathModes)') - | Add path mode - - .group-content-empty(ng-if='!((#{pathModes} && #{pathModes}.length > 0) || tableNewItemActive(tblPathModes))') Not defined - - .group-content(ng-show='(#{pathModes} && #{pathModes}.length > 0) || tableNewItemActive(tblPathModes)') - table.links-edit(id='pathModes' st-table=pathModes) - tbody - tr(ng-repeat='item in #{pathModes}') - td.col-sm-12(ng-show='!tableEditing(tblPathModes, $index)') - a.labelFormField(ng-click='tableStartEdit(backupItem, tblPathModes, $index)') {{item.path + " [" + item.mode + "]"}} - +btn-remove('tableRemove(backupItem, tblPathModes, $index)', '"Remove path"') - td.col-sm-12(ng-show='tableEditing(tblPathModes, $index)') - +table-igfs-path-mode-edit('cur', '{{::tblPathModes.focusId + $index}}', '$index') - tfoot(ng-show='tableNewItemActive(tblPathModes)') - tr - td.col-sm-12 - +table-igfs-path-mode-edit('new', 'PathMode', '-1') - - .col-sm-6 - +preview-xml-java(model, 'igfsMisc') http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/secondary.directive.js ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/secondary.directive.js b/modules/web-console/src/main/js/app/modules/states/configuration/igfs/secondary.directive.js deleted file mode 100644 index 69179c0..0000000 --- a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/secondary.directive.js +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import templateUrl from './secondary.jade'; - -export default ['igniteConfigurationIgfsSecondary', [() => { - return { - scope: true, - restrict: 'E', - templateUrl, - replace: true - }; -}]]; http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/secondary.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/secondary.jade b/modules/web-console/src/main/js/app/modules/states/configuration/igfs/secondary.jade deleted file mode 100644 index 333fad9..0000000 --- a/modules/web-console/src/main/js/app/modules/states/configuration/igfs/secondary.jade +++ /dev/null @@ -1,44 +0,0 @@ -//- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - -include ../../../../../app/helpers/jade/mixins.jade - --var form = 'secondaryFileSystem' --var model = 'backupItem' - -form.panel.panel-default(name=form novalidate) - .panel-heading(bs-collapse-toggle='' ng-click='ui.loadPanel("#{form}")') - ignite-form-panel-chevron - label(id="secondaryFileSystem-title") Secondary file system - ignite-form-field-tooltip.tipLabel - | Secondary file system is provided for pass-through, write-through, and read-through purposes - ignite-form-revert - .panel-collapse(role='tabpanel' bs-collapse-target id=form) - .panel-body(ng-if='ui.isPanelLoaded("#{form}")') - .col-sm-6 - -var enabled = model + '.secondaryFileSystemEnabled' - -var secondaryFileSystem = model + '.secondaryFileSystem' - - .settings-row - +checkbox('Enabled', enabled, 'secondaryFileSystemEnabled', 'Secondary file system enabled flag') - .settings-row - +text-enabled('URI:', secondaryFileSystem + '.uri', 'hadoopURI', enabled, 'false', 'hdfs://[namenodehost]:[port]/[path]', 'URI of file system') - .settings-row - +text-enabled('Config path:', secondaryFileSystem + '.cfgPath', 'cfgPath', enabled, 'false', 'Path to additional config', 'Additional path to Hadoop configuration') - .settings-row - +text-enabled('User name:', secondaryFileSystem + '.userName', 'userName', enabled, 'false', 'Input user name', 'User name') - .col-sm-6 - +preview-xml-java(model, 'igfsSecondFS') http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/src/main/js/app/modules/states/configuration/preview-panel.directive.js ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/preview-panel.directive.js b/modules/web-console/src/main/js/app/modules/states/configuration/preview-panel.directive.js deleted file mode 100644 index be7bf1e..0000000 --- a/modules/web-console/src/main/js/app/modules/states/configuration/preview-panel.directive.js +++ /dev/null @@ -1,239 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import ace from 'brace'; - -export default ['previewPanel', ['$interval', '$timeout', ($interval, $timeout) => { - let animation = {editor: null, stage: 0, start: 0, stop: 0}; - let prevContent = []; - - const Range = ace.acequire('ace/range').Range; - - const _clearSelection = (editor) => { - _.forEach(editor.session.getMarkers(false), (marker) => { - editor.session.removeMarker(marker.id); - }); - }; - - /** - * Switch to next stage of animation. - */ - const _animate = () => { - animation.stage += animation.step; - - const stage = animation.stage; - const editor = animation.editor; - - _clearSelection(editor); - - animation.selections.forEach((selection) => { - editor.session.addMarker(new Range(selection.start, 0, selection.stop, 0), - 'preview-highlight-' + stage, 'line', false); - }); - - if (stage === animation.finalStage) { - editor.animatePromise = null; - - if (animation.clearOnFinal) - _clearSelection(editor); - } - }; - - /** - * Selection with animation. - * - * @param editor Editor to show selection animation. - * @param selections Array of selection intervals. - * @param step Step of animation (1 or -1). - * @param stage Start stage of animation. - * @param finalStage Final stage of animation. - * @param clearOnFinal Boolean flat to clear selection on animation finish. - */ - const _fade = (editor, selections, step, stage, finalStage, clearOnFinal) => { - const promise = editor.animatePromise; - - if (promise) { - $interval.cancel(promise); - - _clearSelection(editor); - } - - animation = {editor, selections, step, stage, finalStage, clearOnFinal}; - - editor.animatePromise = $interval(_animate, 100, 10, false); - }; - - /** - * Show selections with animation. - * - * @param editor Editor to show selection. - * @param selections Array of selection intervals. - */ - const _fadeIn = (editor, selections) => { - _fade(editor, selections, 1, 0, 10, false); - }; - - /** - * Hide selections with animation. - * - * @param editor Editor to show selection. - * @param selections Array of selection intervals. - */ - const _fadeOut = (editor, selections) => { - _fade(editor, selections, -1, 10, 0, true); - }; - - const onChange = ([content, editor]) => { - const {clearPromise} = editor; - const {lines} = content; - - if (content.action === 'remove') - prevContent = lines; - else if (prevContent.length > 0 && lines.length > 0 && editor.attractAttention) { - if (clearPromise) { - $timeout.cancel(clearPromise); - - _clearSelection(editor); - } - - const selections = []; - - let newIx = 0; - let prevIx = 0; - - let prevLen = prevContent.length - (prevContent[prevContent.length - 1] === '' ? 1 : 0); - let newLen = lines.length - (lines[lines.length - 1] === '' ? 1 : 0); - - const removed = newLen < prevLen; - - let skipEnd = 0; - - let selected = false; - let scrollTo = -1; - - while (lines[newLen - 1] === prevContent[prevLen - 1] && newLen > 0 && prevLen > 0) { - prevLen -= 1; - newLen -= 1; - - skipEnd += 1; - } - - while (newIx < newLen || prevIx < prevLen) { - let start = -1; - let stop = -1; - - // Find an index of a first line with different text. - for (; (newIx < newLen || prevIx < prevLen) && start < 0; newIx++, prevIx++) { - if (newIx >= newLen || prevIx >= prevLen || lines[newIx] !== prevContent[prevIx]) { - start = newIx; - - break; - } - } - - if (start >= 0) { - // Find an index of a last line with different text by checking last string of old and new content in reverse order. - for (let i = start; i < newLen && stop < 0; i++) { - for (let j = prevIx; j < prevLen && stop < 0; j++) { - if (lines[i] === prevContent[j] && lines[i] !== '') { - stop = i; - - newIx = i; - prevIx = j; - - break; - } - } - } - - if (stop < 0) { - stop = newLen; - - newIx = newLen; - prevIx = prevLen; - } - - if (start === stop) { - if (removed) - start = Math.max(0, start - 1); - - stop = Math.min(newLen + skipEnd, stop + 1); - } - - if (start <= stop) { - selections.push({start, stop}); - - if (!selected) - scrollTo = start; - - selected = true; - } - } - } - - // Run clear selection one time. - if (selected) { - _fadeIn(editor, selections); - - editor.clearPromise = $timeout(() => { - _fadeOut(editor, selections); - - editor.clearPromise = null; - }, 2000); - - editor.scrollToRow(scrollTo); - } - - prevContent = []; - } - else - editor.attractAttention = true; - }; - - - const link = (scope, $element, $attrs, [igniteUiAceTabs1, igniteUiAceTabs2]) => { - const igniteUiAceTabs = igniteUiAceTabs1 || igniteUiAceTabs2; - - if (!igniteUiAceTabs) - return; - - igniteUiAceTabs.onLoad = (editor) => { - editor.setReadOnly(true); - editor.setOption('highlightActiveLine', false); - editor.setAutoScrollEditorIntoView(true); - editor.$blockScrolling = Infinity; - editor.attractAttention = false; - - const renderer = editor.renderer; - - renderer.setHighlightGutterLine(false); - renderer.setShowPrintMargin(false); - renderer.setOption('fontSize', '10px'); - renderer.setOption('maxLines', '50'); - - editor.setTheme('ace/theme/chrome'); - }; - - igniteUiAceTabs.onChange = onChange; - }; - - return { - restrict: 'C', - link, - require: ['?igniteUiAceTabs', '?^igniteUiAceTabs'] - }; -}]]; http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/src/main/js/app/modules/states/configuration/summary/summary-tabs.directive.js ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/summary/summary-tabs.directive.js b/modules/web-console/src/main/js/app/modules/states/configuration/summary/summary-tabs.directive.js deleted file mode 100644 index f8094af..0000000 --- a/modules/web-console/src/main/js/app/modules/states/configuration/summary/summary-tabs.directive.js +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export default ['summaryTabs', [() => { - const link = (scope, $element, $attrs, [igniteUiAceTabs1, igniteUiAceTabs2]) => { - const igniteUiAceTabs = igniteUiAceTabs1 || igniteUiAceTabs2; - - if (!igniteUiAceTabs) - return; - - igniteUiAceTabs.onLoad = (editor) => { - editor.setReadOnly(true); - editor.setOption('highlightActiveLine', false); - editor.setAutoScrollEditorIntoView(true); - editor.$blockScrolling = Infinity; - - const renderer = editor.renderer; - - renderer.setHighlightGutterLine(false); - renderer.setShowPrintMargin(false); - renderer.setOption('fontFamily', 'monospace'); - renderer.setOption('fontSize', '12px'); - renderer.setOption('minLines', '25'); - renderer.setOption('maxLines', '25'); - - editor.setTheme('ace/theme/chrome'); - }; - }; - - return { - priority: 1000, - restrict: 'C', - link, - require: ['?igniteUiAceTabs', '?^igniteUiAceTabs'] - }; -}]]; http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/src/main/js/app/modules/states/configuration/summary/summary.controller.js ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/summary/summary.controller.js b/modules/web-console/src/main/js/app/modules/states/configuration/summary/summary.controller.js deleted file mode 100644 index 1b19e3a..0000000 --- a/modules/web-console/src/main/js/app/modules/states/configuration/summary/summary.controller.js +++ /dev/null @@ -1,359 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import _ from 'lodash'; -import JSZip from 'jszip'; -import saver from 'file-saver'; - -export default [ - '$rootScope', '$scope', '$http', 'IgniteLegacyUtils', 'IgniteLoading', '$filter', 'ConfigurationSummaryResource', 'JavaTypes', 'IgniteVersion', 'GeneratorDocker', 'GeneratorPom', - function($root, $scope, $http, LegacyUtils, Loading, $filter, Resource, JavaTypes, IgniteVersion, docker, pom) { - const ctrl = this; - - $scope.ui = { ready: false }; - - Loading.start('summaryPage'); - - Resource.read().then(({clusters}) => { - $scope.clusters = clusters; - $scope.clustersMap = {}; - $scope.clustersView = _.map(clusters, (item) => { - const { _id, name } = item; - - $scope.clustersMap[_id] = item; - - return { _id, name }; - }); - - Loading.finish('summaryPage'); - - $scope.ui.ready = true; - - if (!_.isEmpty(clusters)) { - const idx = sessionStorage.summarySelectedId || 0; - - $scope.selectItem(clusters[idx]); - } - }); - - $scope.contentVisible = (rows, row) => { - return !row || !row._id || _.findIndex(rows, (item) => item._id === row._id) >= 0; - }; - - $scope.widthIsSufficient = LegacyUtils.widthIsSufficient; - $scope.dialects = {}; - - $scope.projectStructureOptions = { - nodeChildren: 'children', - dirSelectable: false, - injectClasses: { - iExpanded: 'fa fa-folder-open-o', - iCollapsed: 'fa fa-folder-o' - }, - equality: (node1, node2) => { - return node1 === node2; - } - }; - - const javaConfigFolder = { - type: 'folder', - name: 'config', - children: [ - { type: 'file', name: 'ClientConfigurationFactory.java' }, - { type: 'file', name: 'ServerConfigurationFactory.java' } - ] - }; - - const javaStartupFolder = { - type: 'folder', - name: 'startup', - children: [ - { type: 'file', name: 'ClientNodeCodeStartup.java' }, - { type: 'file', name: 'ClientNodeSpringStartup.java' }, - { type: 'file', name: 'ServerNodeCodeStartup.java' }, - { type: 'file', name: 'ServerNodeSpringStartup.java' } - ] - }; - - const demoFolder = { - type: 'folder', - name: 'demo', - children: [ - { type: 'file', name: 'DemoStartup.java' } - ] - }; - - const resourcesFolder = { - type: 'folder', - name: 'resources', - children: [ - { type: 'file', name: 'secret.properties' } - ] - }; - - const javaFolder = { - type: 'folder', - name: 'java', - children: [ - { - type: 'folder', - name: 'config', - children: [ - javaConfigFolder, - javaStartupFolder - ] - } - ] - }; - - const clnCfg = { type: 'file', name: 'client.xml' }; - - const srvCfg = { type: 'file', name: 'server.xml' }; - - const mainFolder = { - type: 'folder', - name: 'main', - children: [javaFolder] - }; - - const projectStructureRoot = { - type: 'folder', - name: 'project.zip', - children: [ - { - type: 'folder', - name: 'config', - children: [clnCfg, srvCfg] - }, - { - type: 'folder', - name: 'jdbc-drivers', - children: [ - { type: 'file', name: 'README.txt' } - ] - }, - { - type: 'folder', - name: 'src', - children: [mainFolder] - }, - { type: 'file', name: '.dockerignore' }, - { type: 'file', name: 'Dockerfile' }, - { type: 'file', name: 'pom.xml' }, - { type: 'file', name: 'README.txt' } - ] - }; - - $scope.projectStructure = [projectStructureRoot]; - - $scope.projectStructureExpanded = [projectStructureRoot]; - - $scope.tabsServer = { activeTab: 0 }; - $scope.tabsClient = { activeTab: 0 }; - - /** - * - * @param {Object} node - Tree node. - * @param {string[]} path - Path to find. - * @returns {Object} Tree node. - */ - function getOrCreateFolder(node, path) { - if (_.isEmpty(path)) - return node; - - const leaf = path.shift(); - - let children = null; - - if (!_.isEmpty(node.children)) { - children = _.find(node.children, {type: 'folder', name: leaf}); - - if (children) - return getOrCreateFolder(children, path); - } - - children = {type: 'folder', name: leaf, children: []}; - - node.children.push(children); - - node.children = _.orderBy(node.children, ['type', 'name'], ['desc', 'asc']); - - return getOrCreateFolder(children, path); - } - - function addClass(fullClsName) { - const path = fullClsName.split('.'); - const leaf = {type: 'file', name: path.pop() + '.java'}; - const folder = getOrCreateFolder(javaFolder, path); - - if (!_.find(folder.children, leaf)) - folder.children.push(leaf); - } - - $scope.selectItem = (cluster) => { - delete ctrl.cluster; - - if (!cluster) - return; - - cluster = $scope.clustersMap[cluster._id]; - - ctrl.cluster = cluster; - - $scope.cluster = cluster; - $scope.selectedItem = cluster; - $scope.dialects = {}; - - sessionStorage.summarySelectedId = $scope.clusters.indexOf(cluster); - - mainFolder.children = [javaFolder]; - javaFolder.children = [javaConfigFolder, javaStartupFolder]; - - if ($generatorCommon.secretPropertiesNeeded(cluster)) - mainFolder.children.push(resourcesFolder); - - if ($generatorJava.isDemoConfigured(cluster, $root.IgniteDemoMode)) - javaFolder.children.push(demoFolder); - - _.forEach(cluster.caches, (cache) => { - if (cache.cacheStoreFactory) { - const store = cache.cacheStoreFactory[cache.cacheStoreFactory.kind]; - - if (store && store.dialect) - $scope.dialects[store.dialect] = true; - } - - _.forEach(cache.domains, (domain) => { - if (!_.isEmpty(domain.keyFields)) { - if (JavaTypes.nonBuiltInClass(domain.keyType)) - addClass(domain.keyType); - - addClass(domain.valueType); - } - }); - }); - - projectStructureRoot.name = cluster.name + '-project.zip'; - clnCfg.name = cluster.name + '-client.xml'; - srvCfg.name = cluster.name + '-server.xml'; - }; - - $scope.$watch('cluster', (cluster) => { - if (!cluster) - return; - - if (!$filter('hasPojo')(cluster) && $scope.tabsClient.activeTab === 3) - $scope.tabsClient.activeTab = 0; - }); - - $scope.$watch('cluster._id', () => { - $scope.tabsClient.init = []; - $scope.tabsServer.init = []; - }); - - // TODO IGNITE-2114: implemented as independent logic for download. - $scope.downloadConfiguration = function() { - const cluster = $scope.cluster; - const clientNearCfg = cluster.clientNearCfg; - - const zip = new JSZip(); - - if (!ctrl.data) - ctrl.data = {}; - - if (!ctrl.data.docker) - ctrl.data.docker = docker.generate(cluster, 'latest'); - - zip.file('Dockerfile', ctrl.data.docker); - zip.file('.dockerignore', docker.ignoreFile()); - - const builder = $generatorProperties.generateProperties(cluster); - - if (builder) - zip.file('src/main/resources/secret.properties', builder.asString()); - - const srcPath = 'src/main/java/'; - - const serverXml = 'config/' + cluster.name + '-server.xml'; - const clientXml = 'config/' + cluster.name + '-client.xml'; - - zip.file(serverXml, $generatorXml.cluster(cluster)); - zip.file(clientXml, $generatorXml.cluster(cluster, clientNearCfg)); - - zip.file(srcPath + 'config/ServerConfigurationFactory.java', $generatorJava.cluster(cluster, 'config', 'ServerConfigurationFactory', null)); - zip.file(srcPath + 'config/ClientConfigurationFactory.java', $generatorJava.cluster(cluster, 'config', 'ClientConfigurationFactory', clientNearCfg)); - - if ($generatorJava.isDemoConfigured(cluster, $root.IgniteDemoMode)) { - zip.file(srcPath + 'demo/DemoStartup.java', $generatorJava.nodeStartup(cluster, 'demo', 'DemoStartup', - 'ServerConfigurationFactory.createConfiguration()', 'config.ServerConfigurationFactory')); - } - - zip.file(srcPath + 'startup/ServerNodeSpringStartup.java', $generatorJava.nodeStartup(cluster, 'startup', 'ServerNodeSpringStartup', '"' + serverXml + '"')); - zip.file(srcPath + 'startup/ClientNodeSpringStartup.java', $generatorJava.nodeStartup(cluster, 'startup', 'ClientNodeSpringStartup', '"' + clientXml + '"')); - - zip.file(srcPath + 'startup/ServerNodeCodeStartup.java', $generatorJava.nodeStartup(cluster, 'startup', 'ServerNodeCodeStartup', - 'ServerConfigurationFactory.createConfiguration()', 'config.ServerConfigurationFactory')); - zip.file(srcPath + 'startup/ClientNodeCodeStartup.java', $generatorJava.nodeStartup(cluster, 'startup', 'ClientNodeCodeStartup', - 'ClientConfigurationFactory.createConfiguration()', 'config.ClientConfigurationFactory', clientNearCfg)); - - zip.file('pom.xml', pom.generate(cluster, IgniteVersion.version).asString()); - - zip.file('README.txt', $generatorReadme.readme().asString()); - zip.file('jdbc-drivers/README.txt', $generatorReadme.readmeJdbc().asString()); - - if (!ctrl.data.pojos) - ctrl.data.pojos = $generatorJava.pojos(cluster.caches); - - for (const pojo of ctrl.data.pojos) { - if (pojo.keyClass && JavaTypes.nonBuiltInClass(pojo.keyType)) - zip.file(srcPath + pojo.keyType.replace(/\./g, '/') + '.java', pojo.keyClass); - - zip.file(srcPath + pojo.valueType.replace(/\./g, '/') + '.java', pojo.valueClass); - } - - $generatorOptional.optionalContent(zip, cluster); - - zip.generateAsync({type: 'blob', compression: 'DEFLATE', mimeType: 'application/octet-stream'}) - .then((blob) => saver.saveAs(blob, cluster.name + '-project.zip')); - }; - - /** - * @returns {boolean} 'true' if at least one proprietary JDBC driver is configured for cache store. - */ - $scope.downloadJdbcDriversVisible = function() { - const dialects = $scope.dialects; - - return !!(dialects.Oracle || dialects.DB2 || dialects.SQLServer); - }; - - /** - * Open download proprietary JDBC driver pages. - */ - $scope.downloadJdbcDrivers = function() { - const dialects = $scope.dialects; - - if (dialects.Oracle) - window.open('http://www.oracle.com/technetwork/apps-tech/jdbc-112010-090769.html'); - - if (dialects.DB2) - window.open('http://www-01.ibm.com/support/docview.wss?uid=swg21363866'); - - if (dialects.SQLServer) - window.open('https://www.microsoft.com/en-us/download/details.aspx?id=11774'); - }; - } -];
