diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2019-05-15 20:41:01 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2019-05-15 20:41:01 +0900 |
| commit | 23c9f6a6ca1ba938a6a2a7c9f5e1007d47fd28c5 (patch) | |
| tree | 263544de31da121931840839f9b6bae7505fdd43 /src/client | |
| parent | インスタンスの設定画面を整理 (diff) | |
| download | sharkey-23c9f6a6ca1ba938a6a2a7c9f5e1007d47fd28c5.tar.gz sharkey-23c9f6a6ca1ba938a6a2a7c9f5e1007d47fd28c5.tar.bz2 sharkey-23c9f6a6ca1ba938a6a2a7c9f5e1007d47fd28c5.zip | |
Resolve #4833
Diffstat (limited to 'src/client')
| -rw-r--r-- | src/client/app/admin/views/users.vue | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/src/client/app/admin/views/users.vue b/src/client/app/admin/views/users.vue index cc38108532..fd9f0dd8b2 100644 --- a/src/client/app/admin/views/users.vue +++ b/src/client/app/admin/views/users.vue @@ -9,8 +9,9 @@ <ui-button @click="showUser"><fa :icon="faSearch"/> {{ $t('lookup') }}</ui-button> <div class="user" v-if="user"> - <x-user :user='user'/> + <x-user :user="user"/> <div class="actions"> + <ui-button v-if="user.host != null" @click="updateRemoteUser"><fa :icon="faSync"/> {{ $t('update-remote-user') }}</ui-button> <ui-button @click="resetPassword"><fa :icon="faKey"/> {{ $t('reset-password') }}</ui-button> <ui-horizon-group> <ui-button @click="silenceUser"><fa :icon="faMicrophoneSlash"/> {{ $t('make-silence') }}</ui-button> @@ -20,7 +21,7 @@ <ui-button @click="suspendUser" :disabled="suspending"><fa :icon="faSnowflake"/> {{ $t('suspend') }}</ui-button> <ui-button @click="unsuspendUser" :disabled="unsuspending">{{ $t('unsuspend') }}</ui-button> </ui-horizon-group> - <ui-button v-if="user.host != null" @click="updateRemoteUser"><fa :icon="faSync"/> {{ $t('update-remote-user') }}</ui-button> + <ui-button @click="deleteAllFiles"><fa :icon="faTrashAlt"/> {{ $t('delete-all-files') }}</ui-button> <ui-textarea v-if="user" :value="user | json5" readonly tall style="margin-top:16px;"></ui-textarea> </div> </div> @@ -67,7 +68,7 @@ import Vue from 'vue'; import i18n from '../../i18n'; import parseAcct from "../../../../misc/acct/parse"; import { faUsers, faTerminal, faSearch, faKey, faSync, faMicrophoneSlash } from '@fortawesome/free-solid-svg-icons'; -import { faSnowflake } from '@fortawesome/free-regular-svg-icons'; +import { faSnowflake, faTrashAlt } from '@fortawesome/free-regular-svg-icons'; import XUser from './users.user.vue'; export default Vue.extend({ @@ -88,7 +89,7 @@ export default Vue.extend({ offset: 0, users: [], existMore: false, - faTerminal, faUsers, faSnowflake, faSearch, faKey, faSync, faMicrophoneSlash + faTerminal, faUsers, faSnowflake, faSearch, faKey, faSync, faMicrophoneSlash, faTrashAlt }; }, @@ -277,6 +278,25 @@ export default Vue.extend({ this.refreshUser(); }, + async deleteAllFiles() { + if (!await this.getConfirmed(this.$t('delete-all-files-confirm'))) return; + + const process = async () => { + await this.$root.api('admin/delete-all-files-of-a-user', { userId: this.user.id }); + this.$root.dialog({ + type: 'success', + splash: true + }); + }; + + await process().catch(e => { + this.$root.dialog({ + type: 'error', + text: e.toString() + }); + }); + }, + async getConfirmed(text: string): Promise<Boolean> { const confirm = await this.$root.dialog({ type: 'warning', |