mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2026-01-16 18:01:28 +00:00
fix sort order pins
fix group pins to be limited to the one group remove console
This commit is contained in:
parent
e08717faf7
commit
f0b8b46eb7
@ -29,6 +29,16 @@ const maintainPinnedPosts = (params) => {
|
||||
return params
|
||||
}
|
||||
|
||||
const maintainGroupPinnedPosts = (params) => {
|
||||
const pinnedPostFilter = { groupPinned: true, group: params.filter.group }
|
||||
if (isEmpty(params.filter)) {
|
||||
params.filter = { OR: [pinnedPostFilter, {}] }
|
||||
} else {
|
||||
params.filter = { OR: [pinnedPostFilter, { ...params.filter }] }
|
||||
}
|
||||
return params
|
||||
}
|
||||
|
||||
const filterEventDates = (params) => {
|
||||
if (params.filter?.eventStart_gte) {
|
||||
const date = params.filter.eventStart_gte
|
||||
@ -52,6 +62,7 @@ export default {
|
||||
params = await filterPostsOfMyGroups(params, context)
|
||||
params = await filterInvisiblePosts(params, context)
|
||||
params = await filterForMutedUsers(params, context)
|
||||
params = await maintainGroupPinnedPosts(params)
|
||||
return neo4jgraphql(object, params, context, resolveInfo)
|
||||
},
|
||||
PostsEmotionsCountByEmotion: async (_object, params, context, _resolveInfo) => {
|
||||
@ -468,7 +479,8 @@ export default {
|
||||
await context.database.write({
|
||||
query: `
|
||||
MATCH (post:Post {id: $params.id})-[:IN]->(group:Group)
|
||||
MATCH (:User)-[pinned:GROUP_PINNED]->(:Post)-[:IN]->(:Group {id: group.id})
|
||||
MATCH (:User)-[pinned:GROUP_PINNED]->(oldPinnedPost:Post)-[:IN]->(:Group {id: group.id})
|
||||
REMOVE oldPinnedPost.groupPinned
|
||||
DELETE pinned`,
|
||||
variables: { user: context.user, params },
|
||||
})
|
||||
@ -492,6 +504,7 @@ export default {
|
||||
MATCH (user:User {id: $user.id})
|
||||
MATCH (post:Post {id: $params.id})-[:IN]->(group:Group)
|
||||
MERGE (user)-[pinned:GROUP_PINNED{createdAt: toString(datetime())}]->(post)
|
||||
SET post.groupPinned = true
|
||||
RETURN post {.*, pinnedAt: pinned.createdAt}`,
|
||||
variables: { user: context.user, params },
|
||||
})
|
||||
@ -505,6 +518,7 @@ export default {
|
||||
MATCH (post:Post {id: $postId})
|
||||
OPTIONAL MATCH (:User)-[pinned:GROUP_PINNED]->(post)
|
||||
DELETE pinned
|
||||
REMOVE post.groupPinned
|
||||
RETURN post {.*}`,
|
||||
variables: { postId: params.id },
|
||||
})
|
||||
|
||||
@ -49,6 +49,7 @@ input _PostFilter {
|
||||
language_in: [String!]
|
||||
language_not_in: [String!]
|
||||
pinned: Boolean # required for `maintainPinnedPost`
|
||||
groupPinned: Boolean # required for `maintainGroupPinnedPost`
|
||||
tags: _TagFilter
|
||||
tags_not: _TagFilter
|
||||
tags_in: [_TagFilter!]
|
||||
@ -86,6 +87,7 @@ input _PostFilter {
|
||||
postType_in: [PostType]
|
||||
eventStart_gte: String
|
||||
eventEnd_gte: String
|
||||
|
||||
}
|
||||
|
||||
enum _PostOrdering {
|
||||
@ -111,6 +113,8 @@ enum _PostOrdering {
|
||||
pinned_desc
|
||||
eventStart_asc
|
||||
eventStart_desc
|
||||
groupPinned_asc
|
||||
groupPinned_desc
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -470,7 +470,7 @@ export default {
|
||||
offset: this.offset,
|
||||
filter: this.filter,
|
||||
first: this.pageSize,
|
||||
orderBy: 'sortDate_desc',
|
||||
orderBy: ['groupPinned_asc', 'sortDate_desc'],
|
||||
},
|
||||
updateQuery: UpdateQuery(this, { $state, pageKey: 'profilePagePosts' }),
|
||||
})
|
||||
@ -579,7 +579,7 @@ export default {
|
||||
filter: this.filter,
|
||||
first: this.pageSize,
|
||||
offset: 0,
|
||||
orderBy: 'sortDate_desc',
|
||||
orderBy: ['groupPinned_asc', 'sortDate_desc'],
|
||||
}
|
||||
},
|
||||
update({ profilePagePosts }) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user