summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMeiMei <30769358+mei23@users.noreply.github.com>2018-12-26 23:11:51 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2018-12-26 23:11:50 +0900
commit5174e16f7b85349b84b389fa334e122f9310616c (patch)
tree88ab3e5fab41142702551707c7ee7c3cf73cc3b2 /src
parentMake reactions removable (diff)
downloadmisskey-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.vue3
-rw-r--r--src/server/api/endpoints/users/notes.ts17
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) {