diff --git a/client/web/compose/src/components/ModuleFields/Configurator/Bool.vue b/client/web/compose/src/components/ModuleFields/Configurator/Bool.vue index 590117c9d..40047c98d 100644 --- a/client/web/compose/src/components/ModuleFields/Configurator/Bool.vue +++ b/client/web/compose/src/components/ModuleFields/Configurator/Bool.vue @@ -8,6 +8,7 @@ v-model="f.options.trueLabel" :placeholder="$t('kind.bool.checkedValuePlaceholder')" /> + + + + + + {{ $t('kind.bool.toggleType') }} + + diff --git a/client/web/compose/src/components/ModuleFields/Editor/Bool.vue b/client/web/compose/src/components/ModuleFields/Editor/Bool.vue index 5b12dee1b..00ae205e9 100644 --- a/client/web/compose/src/components/ModuleFields/Editor/Bool.vue +++ b/client/web/compose/src/components/ModuleFields/Editor/Bool.vue @@ -1,19 +1,51 @@ @@ -21,6 +53,10 @@ import base from './base' export default { + i18nOptions: { + namespaces: 'field', + }, + extends: base, computed: { @@ -34,6 +70,13 @@ export default { this.$emit('change', value) }, }, + + checkboxLabel () { + return { + on: this.field.options.trueLabel || this.$t('general:label.yes'), + off: this.field.options.falseLabel || this.$t('general:label.no'), + } + }, }, } diff --git a/lib/js/src/compose/types/module-field/bool.ts b/lib/js/src/compose/types/module-field/bool.ts index 92b45e73c..5b82d13fc 100644 --- a/lib/js/src/compose/types/module-field/bool.ts +++ b/lib/js/src/compose/types/module-field/bool.ts @@ -6,12 +6,14 @@ const kind = 'Bool' interface BoolOptions extends Options { trueLabel: string; falseLabel: string; + switch: boolean; } const defaults = (): Readonly => Object.freeze({ ...defaultOptions(), trueLabel: '', falseLabel: '', + switch: false, }) export class ModuleFieldBool extends ModuleField { @@ -29,6 +31,7 @@ export class ModuleFieldBool extends ModuleField { super.applyOptions(o) Apply(this.options, o, String, 'trueLabel', 'falseLabel') + Apply(this.options, o, Boolean, 'switch') } /** diff --git a/lib/vue/src/components/input/CInputCheckbox.vue b/lib/vue/src/components/input/CInputCheckbox.vue index bbe723dbe..1a845b8cb 100644 --- a/lib/vue/src/components/input/CInputCheckbox.vue +++ b/lib/vue/src/components/input/CInputCheckbox.vue @@ -1,30 +1,31 @@