| //- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| |
| include /app/helpers/jade/mixins |
| include /app/configuration/mixins |
| |
| -var form = 'store' |
| -var model = 'backupItem' |
| -var keyFields = `${model}.keyFields` |
| -var valueFields = `${model}.valueFields` |
| |
| mixin list-db-field-edit({ items, itemName, itemsName }) |
| list-editable( |
| ng-model=items |
| ng-model-options='{allowInvalid: true}' |
| ui-validate=`{ |
| dbFieldUnique: '$ctrl.Models.storeKeyDBFieldsUnique($value)' |
| }` |
| ui-validate-watch=`"${items}"` |
| ui-validate-watch-object-equality='true' |
| )&attributes(attributes) |
| list-editable-item-view |
| | {{ $item.databaseFieldName }} / {{ $item.databaseFieldType }} / {{ $item.javaFieldName }} / {{ $item.javaFieldType }} |
| |
| list-editable-item-edit |
| .pc-form-grid-row |
| .pc-form-grid-col-30(divider='/') |
| +form-field__text({ |
| label: 'DB name:', |
| model: '$item.databaseFieldName', |
| name: '"databaseFieldName"', |
| required: true, |
| placeholder: 'Enter DB name' |
| })( |
| ng-model-options='{allowInvalid: true}' |
| ignite-auto-focus |
| ignite-unique=items |
| ignite-unique-property='databaseFieldName' |
| ) |
| +form-field__error({ error: 'igniteUnique', message: 'DB name should be unique' }) |
| .pc-form-grid-col-30 |
| +form-field__dropdown({ |
| label: 'DB type:', |
| model:'$item.databaseFieldType', |
| name: '"databaseFieldType"', |
| required: 'true', |
| placeholder: 'Choose DB type', |
| options: 'supportedJdbcTypes' |
| }) |
| .pc-form-grid-col-30(divider='/') |
| +form-field__text({ |
| label: 'Java name:', |
| model: '$item.javaFieldName', |
| name: '"javaFieldName"', |
| required: true, |
| placeholder: 'Enter Java name' |
| })( |
| ng-model-options='{allowInvalid: true}' |
| ignite-unique=items |
| ignite-unique-property='javaFieldName' |
| ) |
| +form-field__error({ error: 'igniteUnique', message: 'Java name should be unique' }) |
| .pc-form-grid-col-30 |
| +form-field__dropdown({ |
| label: 'Java type:', |
| model: '$item.javaFieldType', |
| name: '"javaFieldType"', |
| required: 'true', |
| placeholder: 'Choose Java type', |
| options: 'supportedJavaTypes' |
| }) |
| |
| list-editable-no-items |
| list-editable-add-item-button( |
| add-item=`$editLast((${items} = ${items} || []).push({}))` |
| label-single=itemName |
| label-multiple=itemsName |
| ) |
| |
| panel-collapsible(ng-form=form on-open=`ui.loadPanel('${form}')`) |
| panel-title#store-title Domain model for cache store |
| panel-description |
| | Domain model properties for binding database with cache via POJO cache store. |
| 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 |
| .pc-form-grid-col-30 |
| +form-field__text({ |
| label: 'Database schema:', |
| model: model + '.databaseSchema', |
| name: '"databaseSchema"', |
| placeholder: 'Input DB schema name', |
| tip: 'Schema name in database' |
| }) |
| .pc-form-grid-col-30 |
| +form-field__text({ |
| label: 'Database table:', |
| model: model + '.databaseTable', |
| name: '"databaseTable"', |
| placeholder: 'Input DB table name', |
| tip: 'Table name in database' |
| }) |
| .pc-form-grid-col-60 |
| .ignite-form-field |
| +form-field__label({ label: 'Key fields:', name: '"keyFields"' }) |
| +form-field__tooltip({ title: `Collection of key fields descriptions for CacheJdbcPojoStore` }) |
| |
| +list-db-field-edit({ |
| items: keyFields, |
| itemName: 'key field', |
| itemsName: 'key fields' |
| })(name='keyFields') |
| |
| .form-field__errors( |
| ng-messages=`store.keyFields.$error` |
| ng-show=`store.keyFields.$invalid` |
| ) |
| +form-field__error({ error: 'dbFieldUnique', message: 'Each key field DB name and Java name should be unique' }) |
| |
| .pc-form-grid-col-60 |
| .ignite-form-field |
| +form-field__label({ label: 'Value fields:', name: '"valueFields"' }) |
| +form-field__tooltip({ title: `Collection of value fields descriptions for CacheJdbcPojoStore` }) |
| |
| +list-db-field-edit({ |
| items: valueFields, |
| itemName: 'value field', |
| itemsName: 'value fields' |
| })(name='valueFields') |
| |
| .form-field__errors( |
| ng-messages=`store.valueFields.$error` |
| ng-show=`store.valueFields.$invalid` |
| ) |
| +form-field__error({ error: 'dbFieldUnique', message: 'Each value field DB name and Java name should be unique' }) |
| |
| .pca-form-column-6 |
| +preview-xml-java(model, 'domainStore') |
| |