fix sort order pins

fix group pins to be limited to the one group

remove console
This commit is contained in:
Ulf Gebhardt 2026-01-15 17:52:56 +01:00
parent e08717faf7
commit f0b8b46eb7
Signed by: ulfgebhardt
GPG Key ID: DA6B843E748679C9
3 changed files with 21 additions and 3 deletions

View File

@ -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 },
})

View File

@ -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
}

View File

@ -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 }) {