diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2022-08-31 00:24:33 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2022-08-31 00:24:33 +0900 |
| commit | 786b150ea75111b5f6102c256d5cfa42cb83d1fb (patch) | |
| tree | d552d0c371829d7ff027890d1036a80bb08517f7 /packages/client/src/components/MkTokenGenerateWindow.vue | |
| parent | update deps (diff) | |
| download | sharkey-786b150ea75111b5f6102c256d5cfa42cb83d1fb.tar.gz sharkey-786b150ea75111b5f6102c256d5cfa42cb83d1fb.tar.bz2 sharkey-786b150ea75111b5f6102c256d5cfa42cb83d1fb.zip | |
refactor(client): align filename to component name
Diffstat (limited to 'packages/client/src/components/MkTokenGenerateWindow.vue')
| -rw-r--r-- | packages/client/src/components/MkTokenGenerateWindow.vue | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/packages/client/src/components/MkTokenGenerateWindow.vue b/packages/client/src/components/MkTokenGenerateWindow.vue new file mode 100644 index 0000000000..bf5775d4d8 --- /dev/null +++ b/packages/client/src/components/MkTokenGenerateWindow.vue @@ -0,0 +1,117 @@ +<template> +<XModalWindow ref="dialog" + :width="400" + :height="450" + :with-ok-button="true" + :ok-button-disabled="false" + :can-close="false" + @close="$refs.dialog.close()" + @closed="$emit('closed')" + @ok="ok()" +> + <template #header>{{ title || $ts.generateAccessToken }}</template> + <div v-if="information" class="_section"> + <MkInfo warn>{{ information }}</MkInfo> + </div> + <div class="_section"> + <MkInput v-model="name"> + <template #label>{{ $ts.name }}</template> + </MkInput> + </div> + <div class="_section"> + <div style="margin-bottom: 16px;"><b>{{ $ts.permission }}</b></div> + <MkButton inline @click="disableAll">{{ $ts.disableAll }}</MkButton> + <MkButton inline @click="enableAll">{{ $ts.enableAll }}</MkButton> + <MkSwitch v-for="kind in (initialPermissions || kinds)" :key="kind" v-model="permissions[kind]">{{ $t(`_permissions.${kind}`) }}</MkSwitch> + </div> +</XModalWindow> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue'; +import { permissions } from 'misskey-js'; +import XModalWindow from '@/components/ui/modal-window.vue'; +import MkInput from './form/input.vue'; +import MkTextarea from './form/textarea.vue'; +import MkSwitch from './form/switch.vue'; +import MkButton from './ui/button.vue'; +import MkInfo from './ui/info.vue'; + +export default defineComponent({ + components: { + XModalWindow, + MkInput, + MkTextarea, + MkSwitch, + MkButton, + MkInfo, + }, + + props: { + title: { + type: String, + required: false, + default: null + }, + information: { + type: String, + required: false, + default: null + }, + initialName: { + type: String, + required: false, + default: null + }, + initialPermissions: { + type: Array, + required: false, + default: null + } + }, + + emits: ['done', 'closed'], + + data() { + return { + name: this.initialName, + permissions: {}, + kinds: permissions + }; + }, + + created() { + if (this.initialPermissions) { + for (const kind of this.initialPermissions) { + this.permissions[kind] = true; + } + } else { + for (const kind of this.kinds) { + this.permissions[kind] = false; + } + } + }, + + methods: { + ok() { + this.$emit('done', { + name: this.name, + permissions: Object.keys(this.permissions).filter(p => this.permissions[p]) + }); + this.$refs.dialog.close(); + }, + + disableAll() { + for (const p in this.permissions) { + this.permissions[p] = false; + } + }, + + enableAll() { + for (const p in this.permissions) { + this.permissions[p] = true; + } + } + } +}); +</script> |