From c7cc3dcdfd2c0962a39e7186852a17dbd09b6a5b Mon Sep 17 00:00:00 2001
From: syuilo
Date: Sat, 18 May 2019 20:36:33 +0900
Subject: ユーザーグループ
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Resolve #3218
---
src/client/app/desktop/script.ts | 18 +++++-
.../views/components/messaging-room-window.vue | 12 ++--
.../desktop/views/components/messaging-window.vue | 7 ++-
.../components/received-follow-requests-window.vue | 70 ----------------------
.../desktop/views/components/ui.header.account.vue | 33 +++++-----
.../app/desktop/views/components/ui.sidebar.vue | 2 -
.../desktop/views/components/user-list-window.vue | 24 --------
.../desktop/views/components/user-lists-window.vue | 36 -----------
.../app/desktop/views/pages/messaging-room.vue | 28 ++++++---
src/client/app/desktop/views/widgets/messaging.vue | 7 ++-
10 files changed, 70 insertions(+), 167 deletions(-)
delete mode 100644 src/client/app/desktop/views/components/received-follow-requests-window.vue
delete mode 100644 src/client/app/desktop/views/components/user-list-window.vue
delete mode 100644 src/client/app/desktop/views/components/user-lists-window.vue
(limited to 'src/client/app/desktop')
diff --git a/src/client/app/desktop/script.ts b/src/client/app/desktop/script.ts
index 464f7d3ce9..c6479f477c 100644
--- a/src/client/app/desktop/script.ts
+++ b/src/client/app/desktop/script.ts
@@ -22,6 +22,7 @@ import MkShare from '../common/views/pages/share.vue';
import MkFollow from '../common/views/pages/follow.vue';
import MkNotFound from '../common/views/pages/not-found.vue';
import MkSettings from './views/pages/settings.vue';
+import DeckColumn from '../common/views/deck/deck.column-template.vue';
import Ctx from './views/components/context-menu.vue';
import PostFormWindow from './views/components/post-form-window.vue';
@@ -138,9 +139,14 @@ init(async (launch, os) => {
{ path: '/search', component: () => import('../common/views/deck/deck.search-column.vue').then(m => m.default) },
{ path: '/tags/:tag', name: 'tag', component: () => import('../common/views/deck/deck.hashtag-column.vue').then(m => m.default) },
{ path: '/featured', name: 'featured', component: () => import('../common/views/deck/deck.featured-column.vue').then(m => m.default) },
- { path: '/explore', name: 'explore', component: () => import('../common/views/deck/deck.explore-column.vue').then(m => m.default) },
- { path: '/explore/tags/:tag', name: 'explore-tag', props: true, component: () => import('../common/views/deck/deck.explore-column.vue').then(m => m.default) },
- { path: '/i/favorites', component: () => import('../common/views/deck/deck.favorites-column.vue').then(m => m.default) }
+ { path: '/explore', name: 'explore', component: DeckColumn, props: route => ({ component: () => import('../common/views/pages/explore.vue').then(m => m.default) }) },
+ { path: '/explore/tags/:tag', name: 'explore-tag', component: DeckColumn, props: route => ({ component: () => import('../common/views/pages/explore.vue').then(m => m.default), tag: route.params.tag }) },
+ { path: '/i/favorites', component: () => import('../common/views/deck/deck.favorites-column.vue').then(m => m.default) },
+ { path: '/i/pages', component: DeckColumn, props: route => ({ component: () => import('../common/views/pages/pages.vue').then(m => m.default) }) },
+ { path: '/i/lists', component: DeckColumn, props: route => ({ component: () => import('../common/views/pages/user-lists.vue').then(m => m.default) }) },
+ { path: '/i/lists/:listId', component: DeckColumn, props: route => ({ component: () => import('../common/views/pages/user-list-editor.vue').then(m => m.default), listId: route.params.listId }) },
+ { path: '/i/groups', component: DeckColumn, props: route => ({ component: () => import('../common/views/pages/user-groups.vue').then(m => m.default) }) },
+ { path: '/i/groups/:groupId', component: DeckColumn, props: route => ({ component: () => import('../common/views/pages/user-group-editor.vue').then(m => m.default), groupId: route.params.groupId }) },
]}
: { path: '/', component: MkHome, children: [
{ path: '', name: 'index', component: MkHomeTimeline },
@@ -157,11 +163,17 @@ init(async (launch, os) => {
{ path: '/explore/tags/:tag', name: 'explore-tag', props: true, component: () => import('../common/views/pages/explore.vue').then(m => m.default) },
{ path: '/i/favorites', component: () => import('./views/home/favorites.vue').then(m => m.default) },
{ path: '/i/pages', component: () => import('../common/views/pages/pages.vue').then(m => m.default) },
+ { path: '/i/lists', component: () => import('../common/views/pages/user-lists.vue').then(m => m.default) },
+ { path: '/i/lists/:listId', props: true, component: () => import('../common/views/pages/user-list-editor.vue').then(m => m.default) },
+ { path: '/i/groups', component: () => import('../common/views/pages/user-groups.vue').then(m => m.default) },
+ { path: '/i/groups/:groupId', props: true, component: () => import('../common/views/pages/user-group-editor.vue').then(m => m.default) },
+ { path: '/i/follow-requests', component: () => import('../common/views/pages/follow-requests.vue').then(m => m.default) },
]},
{ path: '/@:user/pages/:page', props: true, component: () => import('./views/pages/page.vue').then(m => m.default) },
{ path: '/@:user/pages/:pageName/view-source', props: true, component: () => import('./views/pages/page-editor.vue').then(m => m.default) },
{ path: '/i/pages/new', component: () => import('./views/pages/page-editor.vue').then(m => m.default) },
{ path: '/i/pages/edit/:pageId', props: true, component: () => import('./views/pages/page-editor.vue').then(m => m.default) },
+ { path: '/i/messaging/group/:group', component: MkMessagingRoom },
{ path: '/i/messaging/:user', component: MkMessagingRoom },
{ path: '/i/drive', component: MkDrive },
{ path: '/i/drive/folder/:folder', component: MkDrive },
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 @@
- {{ $t('@.messaging') }}:
-
+ {{ $t('@.messaging') }}: {{ group.name }}
+
@@ -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 @@
{{ $t('@.messaging') }}
-
+
@@ -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 @@
-
-
- {{ $t('title') }}
-
-
-
-
-
-
-
-
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 @@
-
-
+
+
{{ $t('lists') }}
-
+
+
+
+
+
+ {{ $t('groups') }}
+
+
@@ -42,12 +49,12 @@
-
-
+
+
{{ $t('follow-requests') }}{{ $store.state.i.pendingReceivedFollowRequestsCount }}
-
+
@@ -96,12 +103,10 @@
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 @@
-
-
- {{ $t('title') }}
-
-
-
-
-
-
-
diff --git a/src/client/app/desktop/views/pages/messaging-room.vue b/src/client/app/desktop/views/pages/messaging-room.vue
index 376b402d30..c725074b7d 100644
--- a/src/client/app/desktop/views/pages/messaging-room.vue
+++ b/src/client/app/desktop/views/pages/messaging-room.vue
@@ -1,6 +1,6 @@
-
+
@@ -19,7 +19,8 @@ export default Vue.extend({
data() {
return {
fetching: true,
- user: null
+ user: null,
+ group: null
};
},
watch: {
@@ -47,14 +48,25 @@ export default Vue.extend({
Progress.start();
this.fetching = true;
- this.$root.api('users/show', parseAcct(this.$route.params.user)).then(user => {
- this.user = user;
- this.fetching = false;
+ if (this.$route.params.user) {
+ this.$root.api('users/show', parseAcct(this.$route.params.user)).then(user => {
+ this.user = user;
+ this.fetching = false;
- document.title = this.$t('@.messaging') + ': ' + getUserName(this.user);
+ document.title = this.$t('@.messaging') + ': ' + getUserName(this.user);
- Progress.done();
- });
+ Progress.done();
+ });
+ } else {
+ this.$root.api('users/groups/show', { groupId: this.$route.params.group }).then(group => {
+ this.group = group;
+ this.fetching = false;
+
+ document.title = this.$t('@.messaging') + ': ' + this.group.name;
+
+ Progress.done();
+ });
+ }
}
}
});
diff --git a/src/client/app/desktop/views/widgets/messaging.vue b/src/client/app/desktop/views/widgets/messaging.vue
index 1e82ae3d3a..e94e745c19 100644
--- a/src/client/app/desktop/views/widgets/messaging.vue
+++ b/src/client/app/desktop/views/widgets/messaging.vue
@@ -4,7 +4,7 @@
{{ $t('@.messaging') }}
-
+
@@ -31,6 +31,11 @@ export default define({
user: user
});
},
+ navigateGroup(group) {
+ this.$root.new(MkMessagingRoomWindow, {
+ group: group
+ });
+ },
add() {
this.$root.new(MkMessagingWindow);
},
--
cgit v1.2.3-freya