disable chrome save password dialog for autocompelete = off only

This commit is contained in:
LouisLam 2021-09-07 17:06:33 +08:00
parent 8a4a87716f
commit 0e288ea92d
2 changed files with 31 additions and 4 deletions

View file

@ -13,8 +13,8 @@
:maxlength="maxlength" :maxlength="maxlength"
:autocomplete="autocomplete" :autocomplete="autocomplete"
:required="required" :required="required"
readonly :readonly="isReadOnly"
onfocus="this.removeAttribute('readonly');" @focus="removeReadOnly"
> >
<a v-if="visibility == 'password'" class="btn btn-outline-primary" @click="showInput()"> <a v-if="visibility == 'password'" class="btn btn-outline-primary" @click="showInput()">
@ -47,10 +47,15 @@ export default {
required: { required: {
type: Boolean type: Boolean
}, },
readonly: {
type: Boolean,
default: false,
},
}, },
data() { data() {
return { return {
visibility: "password" visibility: "password",
readOnlyValue: false,
} }
}, },
computed: { computed: {
@ -61,6 +66,21 @@ export default {
set(value) { set(value) {
this.$emit("update:modelValue", value) this.$emit("update:modelValue", value)
} }
},
isReadOnly() {
// Actually readonly from prop
if (this.readonly) {
return true;
}
// Hack - Disable Chrome save password
return this.readOnlyValue;
}
},
created() {
// Hack - Disable Chrome save password
if (this.autocomplete) {
this.readOnlyValue = "readonly";
} }
}, },
methods: { methods: {
@ -69,6 +89,13 @@ export default {
}, },
hideInput() { hideInput() {
this.visibility = "password"; this.visibility = "password";
},
// Hack - Disable Chrome save password
removeReadOnly() {
if (this.autocomplete) {
this.readOnlyValue = false;
}
} }
} }
} }

View file

@ -40,7 +40,7 @@
<template v-if="notification.type === 'telegram'"> <template v-if="notification.type === 'telegram'">
<div class="mb-3"> <div class="mb-3">
<label for="telegram-bot-token" class="form-label">Bot Token</label> <label for="telegram-bot-token" class="form-label">Bot Token</label>
<HiddenInput id="telegram-bot-token" v-model="notification.telegramBotToken" :required="true"></HiddenInput> <HiddenInput id="telegram-bot-token" v-model="notification.telegramBotToken" :required="true" :readonly="true"></HiddenInput>
<div class="form-text"> <div class="form-text">
You can get a token from <a href="https://t.me/BotFather" target="_blank">https://t.me/BotFather</a>. You can get a token from <a href="https://t.me/BotFather" target="_blank">https://t.me/BotFather</a>.
</div> </div>