diff options
Diffstat (limited to 'src/client/app/desktop/views/components')
7 files changed, 29 insertions, 155 deletions
diff --git a/src/client/app/desktop/views/components/messaging-room-window.vue b/src/client/app/desktop/views/components/messaging-room-window.vue index 00cd423cd2..6c1708b59f 100644 --- a/src/client/app/desktop/views/components/messaging-room-window.vue +++ b/src/client/app/desktop/views/components/messaging-room-window.vue @@ -1,7 +1,7 @@ <template> <mk-window ref="window" width="500px" height="560px" :popout-url="popout" @closed="destroyDom"> - <template #header><fa icon="comments"/> {{ $t('@.messaging') }}: <mk-user-name :user="user"/></template> - <x-messaging-room :user="user" :class="$style.content"/> + <template #header><fa icon="comments"/> {{ $t('@.messaging') }}: <mk-user-name v-if="user" :user="user"/><span v-else>{{ group.name }}</span></template> + <x-messaging-room :user="user" :group="group" :class="$style.content"/> </mk-window> </template> @@ -16,10 +16,14 @@ export default Vue.extend({ components: { XMessagingRoom: () => import('../../../common/views/components/messaging-room.vue').then(m => m.default) }, - props: ['user'], + props: ['user', 'group'], computed: { popout(): string { - return `${url}/i/messaging/${getAcct(this.user)}`; + if (this.user) { + return `${url}/i/messaging/${getAcct(this.user)}`; + } else if (this.group) { + return `${url}/i/messaging/group/${this.group.id}`; + } } } }); diff --git a/src/client/app/desktop/views/components/messaging-window.vue b/src/client/app/desktop/views/components/messaging-window.vue index 1572c40669..7cec9484d6 100644 --- a/src/client/app/desktop/views/components/messaging-window.vue +++ b/src/client/app/desktop/views/components/messaging-window.vue @@ -1,7 +1,7 @@ <template> <mk-window ref="window" width="500px" height="560px" @closed="destroyDom"> <template #header :class="$style.header"><fa icon="comments"/>{{ $t('@.messaging') }}</template> - <x-messaging :class="$style.content" @navigate="navigate"/> + <x-messaging :class="$style.content" @navigate="navigate" @navigateGroup="navigateGroup"/> </mk-window> </template> @@ -20,6 +20,11 @@ export default Vue.extend({ this.$root.new(MkMessagingRoomWindow, { user: user }); + }, + navigateGroup(group) { + this.$root.new(MkMessagingRoomWindow, { + group: group + }); } } }); diff --git a/src/client/app/desktop/views/components/received-follow-requests-window.vue b/src/client/app/desktop/views/components/received-follow-requests-window.vue deleted file mode 100644 index f86b6b0d59..0000000000 --- a/src/client/app/desktop/views/components/received-follow-requests-window.vue +++ /dev/null @@ -1,70 +0,0 @@ -<template> -<mk-window ref="window" is-modal width="450px" height="500px" @closed="destroyDom"> - <template #header><fa :icon="['far', 'envelope']"/> {{ $t('title') }}</template> - - <div class="slpqaxdoxhvglersgjukmvizkqbmbokc"> - <div v-for="req in requests"> - <router-link :key="req.id" :to="req.follower | userPage"> - <mk-user-name :user="req.follower"/> - </router-link> - <span> - <a @click="accept(req.follower)">{{ $t('accept') }}</a>|<a @click="reject(req.follower)">{{ $t('reject') }}</a> - </span> - </div> - </div> -</mk-window> -</template> - -<script lang="ts"> -import Vue from 'vue'; -import i18n from '../../../i18n'; - -export default Vue.extend({ - i18n: i18n('desktop/views/components/received-follow-requests-window.vue'), - data() { - return { - fetching: true, - requests: [] - }; - }, - mounted() { - this.$root.api('following/requests/list').then(requests => { - this.fetching = false; - this.requests = requests; - }); - }, - methods: { - accept(user) { - this.$root.api('following/requests/accept', { userId: user.id }).then(() => { - this.requests = this.requests.filter(r => r.follower.id != user.id); - }); - }, - reject(user) { - this.$root.api('following/requests/reject', { userId: user.id }).then(() => { - this.requests = this.requests.filter(r => r.follower.id != user.id); - }); - }, - close() { - (this as any).$refs.window.close(); - } - } -}); -</script> - -<style lang="stylus" scoped> -.slpqaxdoxhvglersgjukmvizkqbmbokc - padding 16px - - > button - margin-bottom 16px - - > div - display flex - padding 16px - border solid 1px var(--faceDivider) - border-radius 4px - - > span - margin 0 0 0 auto - -</style> diff --git a/src/client/app/desktop/views/components/ui.header.account.vue b/src/client/app/desktop/views/components/ui.header.account.vue index 9b87e0c29f..c00c6b9c64 100644 --- a/src/client/app/desktop/views/components/ui.header.account.vue +++ b/src/client/app/desktop/views/components/ui.header.account.vue @@ -28,12 +28,19 @@ <i><fa icon="angle-right"/></i> </router-link> </li> - <li @click="list"> - <p> + <li> + <router-link to="/i/lists"> <i><fa icon="list" fixed-width/></i> <span>{{ $t('lists') }}</span> <i><fa icon="angle-right"/></i> - </p> + </router-link> + </li> + <li> + <router-link to="/i/groups"> + <i><fa :icon="faUsers" fixed-width/></i> + <span>{{ $t('groups') }}</span> + <i><fa icon="angle-right"/></i> + </router-link> </li> <li> <router-link to="/i/pages"> @@ -42,12 +49,12 @@ <i><fa icon="angle-right"/></i> </router-link> </li> - <li @click="followRequests" v-if="($store.state.i.isLocked || $store.state.i.carefulBot)"> - <p> + <li v-if="($store.state.i.isLocked || $store.state.i.carefulBot)"> + <router-link to="/i/follow-requests"> <i><fa :icon="['far', 'envelope']" fixed-width/></i> <span>{{ $t('follow-requests') }}<i v-if="$store.state.i.pendingReceivedFollowRequestsCount">{{ $store.state.i.pendingReceivedFollowRequestsCount }}</i></span> <i><fa icon="angle-right"/></i> - </p> + </router-link> </li> </ul> <ul> @@ -96,12 +103,10 @@ <script lang="ts"> import Vue from 'vue'; import i18n from '../../../i18n'; -import MkUserListsWindow from './user-lists-window.vue'; -import MkFollowRequestsWindow from './received-follow-requests-window.vue'; // import MkSettingsWindow from './settings-window.vue'; import MkDriveWindow from './drive-window.vue'; import contains from '../../../common/scripts/contains'; -import { faHome, faColumns } from '@fortawesome/free-solid-svg-icons'; +import { faHome, faColumns, faUsers } from '@fortawesome/free-solid-svg-icons'; import { faMoon, faSun, faStickyNote } from '@fortawesome/free-regular-svg-icons'; export default Vue.extend({ @@ -109,7 +114,7 @@ export default Vue.extend({ data() { return { isOpen: false, - faHome, faColumns, faMoon, faSun, faStickyNote + faHome, faColumns, faMoon, faSun, faStickyNote, faUsers }; }, computed: { @@ -147,14 +152,6 @@ export default Vue.extend({ this.close(); this.$root.new(MkDriveWindow); }, - list() { - this.close(); - this.$root.new(MkUserListsWindow); - }, - followRequests() { - this.close(); - this.$root.new(MkFollowRequestsWindow); - }, signout() { this.$root.signout(); }, diff --git a/src/client/app/desktop/views/components/ui.sidebar.vue b/src/client/app/desktop/views/components/ui.sidebar.vue index 1c01f127b9..d1ceec5198 100644 --- a/src/client/app/desktop/views/components/ui.sidebar.vue +++ b/src/client/app/desktop/views/components/ui.sidebar.vue @@ -72,8 +72,6 @@ <script lang="ts"> import Vue from 'vue'; import i18n from '../../../i18n'; -import MkUserListsWindow from './user-lists-window.vue'; -import MkFollowRequestsWindow from './received-follow-requests-window.vue'; import MkSettingsWindow from './settings-window.vue'; import MkDriveWindow from './drive-window.vue'; import MkMessagingWindow from './messaging-window.vue'; diff --git a/src/client/app/desktop/views/components/user-list-window.vue b/src/client/app/desktop/views/components/user-list-window.vue deleted file mode 100644 index 6764579b20..0000000000 --- a/src/client/app/desktop/views/components/user-list-window.vue +++ /dev/null @@ -1,24 +0,0 @@ -<template> -<mk-window ref="window" width="450px" height="500px" @closed="destroyDom"> - <template #header><fa icon="list"/> {{ list.name }}</template> - - <x-editor :list="list"/> -</mk-window> -</template> - -<script lang="ts"> -import Vue from 'vue'; -import XEditor from '../../../common/views/components/user-list-editor.vue'; - -export default Vue.extend({ - components: { - XEditor - }, - - props: { - list: { - required: true - } - } -}); -</script> diff --git a/src/client/app/desktop/views/components/user-lists-window.vue b/src/client/app/desktop/views/components/user-lists-window.vue deleted file mode 100644 index afea01d4a1..0000000000 --- a/src/client/app/desktop/views/components/user-lists-window.vue +++ /dev/null @@ -1,36 +0,0 @@ -<template> -<mk-window ref="window" width="450px" height="500px" @closed="destroyDom"> - <template #header><fa icon="list"/> {{ $t('title') }}</template> - <x-lists :class="$style.content" @choosen="choosen"/> -</mk-window> -</template> - -<script lang="ts"> -import Vue from 'vue'; -import i18n from '../../../i18n'; -import MkUserListWindow from './user-list-window.vue'; - -export default Vue.extend({ - i18n: i18n('desktop/views/components/user-lists-window.vue'), - components: { - XLists: () => import('../../../common/views/components/user-lists.vue').then(m => m.default) - }, - methods: { - close() { - (this as any).$refs.window.close(); - }, - choosen(list) { - this.$root.new(MkUserListWindow, { - list - }); - } - } -}); -</script> - -<style lang="stylus" module> -.content - height 100% - overflow auto - -</style> |