diff options
| author | MeiMei <30769358+mei23@users.noreply.github.com> | 2019-01-10 10:22:45 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2019-01-10 10:22:45 +0900 |
| commit | f6a8c8cf76189be47ceec6d7c790ac0a99c6d251 (patch) | |
| tree | b66a0d9c6598367194a03ff957a2165171b79d27 /src | |
| parent | 10.74.0 (diff) | |
| download | misskey-f6a8c8cf76189be47ceec6d7c790ac0a99c6d251.tar.gz misskey-f6a8c8cf76189be47ceec6d7c790ac0a99c6d251.tar.bz2 misskey-f6a8c8cf76189be47ceec6d7c790ac0a99c6d251.zip | |
Toggle show/hide password (#3865)
* Toggle show/hide password
* hoverでアンダーラインが中途半端に出てダサいので出さないように
* Update signin.vue
Diffstat (limited to 'src')
| -rw-r--r-- | src/client/app/common/views/components/signin.vue | 2 | ||||
| -rw-r--r-- | src/client/app/common/views/components/ui/input.vue | 29 |
2 files changed, 30 insertions, 1 deletions
diff --git a/src/client/app/common/views/components/signin.vue b/src/client/app/common/views/components/signin.vue index 5deb3851b5..7efbde38b2 100644 --- a/src/client/app/common/views/components/signin.vue +++ b/src/client/app/common/views/components/signin.vue @@ -6,7 +6,7 @@ <span slot="prefix">@</span> <span slot="suffix">@{{ host }}</span> </ui-input> - <ui-input v-model="password" type="password" required styl="fill"> + <ui-input v-model="password" type="password" :with-password-toggle="true" required styl="fill"> <span>{{ $t('password') }}</span> <span slot="prefix"><fa icon="lock"/></span> </ui-input> diff --git a/src/client/app/common/views/components/ui/input.vue b/src/client/app/common/views/components/ui/input.vue index d9683e2b90..2198b5bacb 100644 --- a/src/client/app/common/views/components/ui/input.vue +++ b/src/client/app/common/views/components/ui/input.vue @@ -39,6 +39,12 @@ </template> <div class="suffix" ref="suffix"><slot name="suffix"></slot></div> </div> + <div class="toggle" v-if="withPasswordToggle"> + <a @click='togglePassword'> + <span v-if="type == 'password'"><fa :icon="['fa', 'eye']"/> {{ $t('@.show-password') }}</span> + <span v-if="type != 'password'"><fa :icon="['far', 'eye-slash']"/> {{ $t('@.hide-password') }}</span> + </a> + </div> <div class="desc"><slot name="desc"></slot></div> </div> </template> @@ -97,6 +103,11 @@ export default Vue.extend({ required: false, default: false }, + withPasswordToggle: { + type: Boolean, + required: false, + default: false + }, inline: { type: Boolean, required: false, @@ -178,6 +189,13 @@ export default Vue.extend({ focus() { this.$refs.input.focus(); }, + togglePassword() { + if(this.type == 'password') { + this.type = 'text' + } else { + this.type = 'password' + } + }, chooseFile() { this.$refs.file.click(); }, @@ -356,6 +374,17 @@ root(fill) if fill padding-right 12px + > .toggle + cursor pointer + padding-left 0.5em + font-size 0.7em + opacity 0.7 + text-align left + + > a + color var(--inputLabel) + text-decoration none + > .desc margin 6px 0 font-size 13px |