diff options
| author | MeiMei <30769358+mei23@users.noreply.github.com> | 2018-12-26 23:11:51 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2018-12-26 23:11:50 +0900 |
| commit | 5174e16f7b85349b84b389fa334e122f9310616c (patch) | |
| tree | 88ab3e5fab41142702551707c7ee7c3cf73cc3b2 /src | |
| parent | Make reactions removable (diff) | |
| download | misskey-5174e16f7b85349b84b389fa334e122f9310616c.tar.gz misskey-5174e16f7b85349b84b389fa334e122f9310616c.tar.bz2 misskey-5174e16f7b85349b84b389fa334e122f9310616c.zip | |
Feature to show only my posts in the user page (#3753)
* Fix #3681
* Feature to show only my posts in the user page
Diffstat (limited to 'src')
| -rw-r--r-- | src/client/app/desktop/views/pages/user/user.timeline.vue | 3 | ||||
| -rw-r--r-- | src/server/api/endpoints/users/notes.ts | 17 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/client/app/desktop/views/pages/user/user.timeline.vue b/src/client/app/desktop/views/pages/user/user.timeline.vue index 6d1b23b403..0571ce76f1 100644 --- a/src/client/app/desktop/views/pages/user/user.timeline.vue +++ b/src/client/app/desktop/views/pages/user/user.timeline.vue @@ -4,6 +4,7 @@ <span :data-active="mode == 'default'" @click="mode = 'default'"><fa :icon="['far', 'comment-alt']"/> {{ $t('default') }}</span> <span :data-active="mode == 'with-replies'" @click="mode = 'with-replies'"><fa icon="comments"/> {{ $t('with-replies') }}</span> <span :data-active="mode == 'with-media'" @click="mode = 'with-media'"><fa :icon="['far', 'images']"/> {{ $t('with-media') }}</span> + <span :data-active="mode == 'my-posts'" @click="mode = 'my-posts'"><fa icon="user"/> {{ $t('my-posts') }}</span> </header> <mk-notes ref="timeline" :more="existMore ? more : null"> <p class="empty" slot="empty"><fa :icon="['far', 'comments']"/>{{ $t('empty') }}</p> @@ -65,6 +66,7 @@ export default Vue.extend({ limit: fetchLimit + 1, untilDate: this.date ? this.date.getTime() : new Date().getTime() + 1000 * 86400 * 365, includeReplies: this.mode == 'with-replies', + includeMyRenotes: this.mode != 'my-posts', withFiles: this.mode == 'with-media' }).then(notes => { if (notes.length == fetchLimit + 1) { @@ -85,6 +87,7 @@ export default Vue.extend({ userId: this.user.id, limit: fetchLimit + 1, includeReplies: this.mode == 'with-replies', + includeMyRenotes: this.mode != 'my-posts', withFiles: this.mode == 'with-media', untilDate: new Date((this.$refs.timeline as any).tail().createdAt).getTime() }); diff --git a/src/server/api/endpoints/users/notes.ts b/src/server/api/endpoints/users/notes.ts index e6df1eeece..ec2dab1290 100644 --- a/src/server/api/endpoints/users/notes.ts +++ b/src/server/api/endpoints/users/notes.ts @@ -156,6 +156,7 @@ export default define(meta, (ps, me) => new Promise(async (res, rej) => { const sort = { } as any; const query = { + $and: [ {} ], deletedAt: null, userId: user._id } as any; @@ -188,6 +189,22 @@ export default define(meta, (ps, me) => new Promise(async (res, rej) => { query.replyId = null; } + if (ps.includeMyRenotes === false) { + query.$and.push({ + $or: [{ + userId: { $ne: user._id } + }, { + renoteId: null + }, { + text: { $ne: null } + }, { + fileIds: { $ne: [] } + }, { + poll: { $ne: null } + }] + }); + } + const withFiles = ps.withFiles != null ? ps.withFiles : ps.mediaOnly; if (withFiles) { |