mirror of
https://github.com/Bubka/2FAuth.git
synced 2025-03-28 07:56:03 +01:00
Add spaces removal on the Secret field - Closes #311
This commit is contained in:
parent
edd810cafd
commit
1a26c75325
@ -7,6 +7,10 @@
|
|||||||
field: {
|
field: {
|
||||||
type: String,
|
type: String,
|
||||||
required: true
|
required: true
|
||||||
|
},
|
||||||
|
alertType: {
|
||||||
|
type: String,
|
||||||
|
default: 'is-danger'
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
@ -14,7 +18,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<div role="alert">
|
<div role="alert">
|
||||||
<p :id="'valError' + field[0].toUpperCase() + field.toLowerCase().slice(1)"
|
<p :id="'valError' + field[0].toUpperCase() + field.toLowerCase().slice(1)"
|
||||||
class="help is-danger"
|
class="help"
|
||||||
|
:class="alertType"
|
||||||
v-html="error" />
|
v-html="error" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
@ -9,7 +9,8 @@
|
|||||||
const { inputId } = useIdGenerator(props.inputType, props.fieldName)
|
const { inputId } = useIdGenerator(props.inputType, props.fieldName)
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
modelValue: [String, Number, Boolean],
|
modelValue: String,
|
||||||
|
modelModifiers: { default: () => ({}) },
|
||||||
isEditMode: {
|
isEditMode: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false
|
default: false
|
||||||
@ -55,15 +56,45 @@
|
|||||||
})
|
})
|
||||||
|
|
||||||
const fieldIsLocked = ref(props.isDisabled || props.isEditMode)
|
const fieldIsLocked = ref(props.isDisabled || props.isEditMode)
|
||||||
|
const hasBeenTrimmed = ref(false)
|
||||||
|
const componentKey = ref(0);
|
||||||
|
|
||||||
|
const emit = defineEmits(['input:modelValue'])
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes spaces from the input string
|
||||||
|
*/
|
||||||
|
function emitValue(e) {
|
||||||
|
let value = e.target.value
|
||||||
|
|
||||||
|
|
||||||
|
if (props.modelModifiers.trimAll) {
|
||||||
|
value = value.replace(/\s+/g, '')
|
||||||
|
}
|
||||||
|
|
||||||
|
emit('update:modelValue', value)
|
||||||
|
}
|
||||||
|
|
||||||
|
function alertOnSpace(e) {
|
||||||
|
let value = e.target.value
|
||||||
|
hasBeenTrimmed.value = value.includes(' ')
|
||||||
|
|
||||||
|
emit('update:modelValue', value)
|
||||||
|
}
|
||||||
|
|
||||||
|
function forceRefresh(e) {
|
||||||
|
hasBeenTrimmed.value = e.target.value.includes(' ')
|
||||||
|
componentKey.value += 1
|
||||||
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="field" style="margin-bottom: 0.5rem;">
|
<label :for="inputId" class="label" v-html="$t(label)" />
|
||||||
<label :for="inputId" class="label" v-html="$t(label)" />
|
<div class="field has-addons mb-0" :class="{ 'pt-3' : hasOffset }">
|
||||||
</div>
|
|
||||||
<div class="field has-addons" :class="{ 'pt-3' : hasOffset }">
|
|
||||||
<div class="control" :class="{ 'is-expanded': isExpanded }">
|
<div class="control" :class="{ 'is-expanded': isExpanded }">
|
||||||
<input
|
<input
|
||||||
|
:key="componentKey"
|
||||||
:disabled="fieldIsLocked"
|
:disabled="fieldIsLocked"
|
||||||
:id="inputId"
|
:id="inputId"
|
||||||
:type="inputType"
|
:type="inputType"
|
||||||
@ -71,7 +102,9 @@
|
|||||||
:value="modelValue"
|
:value="modelValue"
|
||||||
:placeholder="placeholder"
|
:placeholder="placeholder"
|
||||||
v-bind="$attrs"
|
v-bind="$attrs"
|
||||||
v-on:input="$emit('update:modelValue', $event.target.value)"
|
v-on:input="alertOnSpace"
|
||||||
|
v-on:change="emitValue"
|
||||||
|
v-on:blur="forceRefresh"
|
||||||
:maxlength="maxLength"
|
:maxlength="maxLength"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@ -92,6 +125,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</UseColorMode>
|
</UseColorMode>
|
||||||
</div>
|
</div>
|
||||||
|
<FieldError v-if="hasBeenTrimmed" :error="$t('twofaccounts.forms.spaces_are_ignored')" :field="'spaces'" :alertType="'is-warning'" />
|
||||||
<FieldError v-if="fieldError != undefined" :error="fieldError" :field="fieldName" />
|
<FieldError v-if="fieldError != undefined" :error="fieldError" :field="fieldName" />
|
||||||
<p class="help" v-html="$t(help)" v-if="help"></p>
|
<p class="help" v-html="$t(help)" v-if="help"></p>
|
||||||
</template>
|
</template>
|
||||||
|
@ -461,7 +461,7 @@
|
|||||||
<FormToggle v-model="form.otp_type" :isDisabled="isEditMode" :choices="otp_types" fieldName="otp_type" :fieldError="form.errors.get('otp_type')" label="twofaccounts.forms.otp_type.label" help="twofaccounts.forms.otp_type.help" :hasOffset="true" />
|
<FormToggle v-model="form.otp_type" :isDisabled="isEditMode" :choices="otp_types" fieldName="otp_type" :fieldError="form.errors.get('otp_type')" label="twofaccounts.forms.otp_type.label" help="twofaccounts.forms.otp_type.help" :hasOffset="true" />
|
||||||
<div v-if="form.otp_type != ''">
|
<div v-if="form.otp_type != ''">
|
||||||
<!-- secret -->
|
<!-- secret -->
|
||||||
<FormLockField :isEditMode="isEditMode" v-model="form.secret" fieldName="secret" :fieldError="form.errors.get('secret')" label="twofaccounts.forms.secret.label" help="twofaccounts.forms.secret.help" />
|
<FormLockField :isEditMode="isEditMode" v-model.trimAll="form.secret" fieldName="secret" :fieldError="form.errors.get('secret')" label="twofaccounts.forms.secret.label" help="twofaccounts.forms.secret.help" />
|
||||||
<!-- Options -->
|
<!-- Options -->
|
||||||
<div v-if="form.otp_type !== 'steamtotp'">
|
<div v-if="form.otp_type !== 'steamtotp'">
|
||||||
<h2 class="title is-4 mt-5 mb-2">{{ $t('commons.options') }}</h2>
|
<h2 class="title is-4 mt-5 mb-2">{{ $t('commons.options') }}</h2>
|
||||||
|
@ -96,6 +96,7 @@
|
|||||||
],
|
],
|
||||||
'options_help' => 'You can leave the following options blank if you don\'t know how to set them. The most commonly used values will be applied.',
|
'options_help' => 'You can leave the following options blank if you don\'t know how to set them. The most commonly used values will be applied.',
|
||||||
'alternative_methods' => 'Alternative methods',
|
'alternative_methods' => 'Alternative methods',
|
||||||
|
'spaces_are_ignored' => 'Unwanted spaces will be automatically removed'
|
||||||
],
|
],
|
||||||
'stream' => [
|
'stream' => [
|
||||||
'live_scan_cant_start' => 'Live scan can\'t start :(',
|
'live_scan_cant_start' => 'Live scan can\'t start :(',
|
||||||
|
Loading…
Reference in New Issue
Block a user