| //- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT 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 = '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 |
| +form-field__java-class({ |
| label: 'ID mapper:', |
| model: model + '.idMapper', |
| name: '"idMapper"', |
| tip: '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 |
| +form-field__java-class({ |
| label: 'Name mapper:', |
| model: model + '.nameMapper', |
| name: '"nameMapper"', |
| tip: 'Maps type/class and field names to different names' |
| }) |
| .pc-form-grid-col-60 |
| +form-field__java-class({ |
| label: 'Serializer:', |
| model: model + '.serializer', |
| name: '"serializer"', |
| tip: 'Class with custom serialization logic for binary objects' |
| }) |
| .pc-form-grid-col-60 |
| .ignite-form-field |
| +form-field__label({ label: 'Type configurations:', name: '"typeConfigurations"' }) |
| +form-field__tooltip({ title: `Configuration properties for binary types`}) |
| |
| -var items = model + '.typeConfigurations' |
| list-editable.pc-list-editable-with-form-grid(ng-model=items name='typeConfigurations') |
| list-editable-item-edit.pc-form-grid-row |
| - form = '$parent.form' |
| .pc-form-grid-col-60 |
| +form-field__java-class({ |
| label: 'Type name:', |
| model: '$item.typeName', |
| name: '"typeName"', |
| required: 'true', |
| tip: 'Type name' |
| })( |
| ignite-form-field-input-autofocus='true' |
| ignite-unique=items |
| ignite-unique-property='typeName' |
| ) |
| +form-field__error({ error: 'igniteUnique', message: 'Type name should be unique.' }) |
| .pc-form-grid-col-60 |
| +form-field__java-class({ |
| label: 'ID mapper:', |
| model: '$item.idMapper', |
| name: '"idMapper"', |
| tip: '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 |
| +form-field__java-class({ |
| label: 'Name mapper:', |
| model: '$item.nameMapper', |
| name: '"nameMapper"', |
| tip: 'Maps type/class and field names to different names' |
| }) |
| |
| .pc-form-grid-col-60 |
| +form-field__java-class({ |
| label: 'Serializer:', |
| model: '$item.serializer', |
| name: '"serializer"', |
| tip: 'Class with custom serialization logic for binary object' |
| }) |
| .pc-form-grid-col-60 |
| +form-field__checkbox({ |
| label: 'Enum', |
| model: '$item.enum', |
| name: 'enum', |
| tip: 'Flag indicating that this type is the enum' |
| }) |
| .pc-form-grid-col-60(ng-if='$item.enum') |
| mixin enum-values |
| .ignite-form-field |
| -let items = '$item.enumValues' |
| |
| list-editable( |
| ng-model=items |
| name='enumValues' |
| list-editable-cols=`::[{name: "Enum values:"}]` |
| ) |
| list-editable-item-view {{ $item }} |
| |
| list-editable-item-edit |
| +list-java-identifier-field('Value', '$item', '"value"', 'Enter Enum value', '$item.$item.enumValues') |
| +form-field__error({error: 'igniteUnique', message: 'Value already configured!'}) |
| |
| list-editable-no-items |
| list-editable-add-item-button( |
| add-item=`$editLast((${items} = ${items} || []).push(''))` |
| label-single='enum value' |
| label-multiple='enum values' |
| ) |
| |
| - var form = '$parent.$parent.form' |
| +enum-values |
| - var form = '$parent.form' |
| |
| 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 |
| +form-field__checkbox({ |
| label: 'Compact footer', |
| model: model + '.compactFooter', |
| name: '"compactFooter"', |
| tip: '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') |