diff --git a/app/Http/Requests/UserFormRequest.php b/app/Http/Requests/UserFormRequest.php index 0dcba747..ded6a14b 100644 --- a/app/Http/Requests/UserFormRequest.php +++ b/app/Http/Requests/UserFormRequest.php @@ -90,6 +90,7 @@ abstract class UserFormRequest extends \Illuminate\Foundation\Http\FormRequest 'properties.*.multi_lines' => 'boolean|nullable', 'properties.*.max_char_limit' => 'integer|nullable|min:1|max:2000', 'properties.*.show_char_limit ' => 'boolean|nullable', + 'properties.*.secret_input' => 'boolean|nullable', // Date field 'properties.*.with_time' => 'boolean|nullable', diff --git a/client/components/open/forms/OpenFormField.vue b/client/components/open/forms/OpenFormField.vue index 187bda16..6741f3b0 100644 --- a/client/components/open/forms/OpenFormField.vue +++ b/client/components/open/forms/OpenFormField.vue @@ -341,6 +341,8 @@ export default { inputProperties.pattern = '/d*' } else if (field.type === 'phone_number' && !field.use_simple_text_input) { inputProperties.unavailableCountries = field.unavailable_countries ?? [] + } else if (field.type === 'text' && field.secret_input) { + inputProperties.nativeType = 'password' } return inputProperties diff --git a/client/components/open/forms/fields/components/FieldOptions.vue b/client/components/open/forms/fields/components/FieldOptions.vue index 986471a0..16dc42a0 100644 --- a/client/components/open/forms/fields/components/FieldOptions.vue +++ b/client/components/open/forms/fields/components/FieldOptions.vue @@ -202,7 +202,14 @@ :form="field" name="multi_lines" label="Multi-lines input" - @update:model-value="field.multi_lines = $event" + @update:model-value="onFieldMultiLinesChange" + /> + @@ -802,6 +809,18 @@ export default { this.field.help_position = 'below_input' } }, + onFieldMultiLinesChange(val) { + this.field.multi_lines = val + if (this.field.multi_lines) { + this.field.secret_input = false + } + }, + onFieldSecretInputChange(val) { + this.field.secret_input = val + if (this.field.secret_input) { + this.field.multi_lines = false + } + }, selectAllCountries() { this.field.unavailable_countries = this.allCountries.map(item => { return item.code