From 5b84611a07cf728b638987170b0145703ccfcc47 Mon Sep 17 00:00:00 2001 From: Asli Aykan Date: Sun, 16 Feb 2025 22:08:09 +0100 Subject: [PATCH 1/2] fix search scope --- .../ConversationMessageRepository.java | 4 +-- .../app/shared/metis/post/post.component.html | 2 +- .../communication/MessageIntegrationTest.java | 26 +++++++++++++++++++ 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/tum/cit/aet/artemis/communication/repository/ConversationMessageRepository.java b/src/main/java/de/tum/cit/aet/artemis/communication/repository/ConversationMessageRepository.java index 42f59ed2a24d..819b2c7c8c3f 100644 --- a/src/main/java/de/tum/cit/aet/artemis/communication/repository/ConversationMessageRepository.java +++ b/src/main/java/de/tum/cit/aet/artemis/communication/repository/ConversationMessageRepository.java @@ -3,7 +3,6 @@ import static de.tum.cit.aet.artemis.communication.repository.MessageSpecs.getAnsweredOrReactedSpecification; import static de.tum.cit.aet.artemis.communication.repository.MessageSpecs.getConversationSpecification; import static de.tum.cit.aet.artemis.communication.repository.MessageSpecs.getConversationsSpecification; -import static de.tum.cit.aet.artemis.communication.repository.MessageSpecs.getCourseWideChannelsSpecification; import static de.tum.cit.aet.artemis.communication.repository.MessageSpecs.getOwnSpecification; import static de.tum.cit.aet.artemis.communication.repository.MessageSpecs.getPinnedSpecification; import static de.tum.cit.aet.artemis.communication.repository.MessageSpecs.getSearchTextSpecification; @@ -87,8 +86,7 @@ default Page findMessages(PostContextFilterDTO postContextFilter, Pageable * @return returns a Page of Messages */ default Page findCourseWideMessages(PostContextFilterDTO postContextFilter, Pageable pageable, long userId) { - var specification = Specification.where(getCourseWideChannelsSpecification(postContextFilter.courseId())) - .and(getConversationsSpecification(postContextFilter.courseWideChannelIds())); + Specification specification = Specification.where(getConversationsSpecification(postContextFilter.courseWideChannelIds())); specification = configureSearchSpecification(specification, postContextFilter, userId); return findPostsWithSpecification(pageable, specification); } diff --git a/src/main/webapp/app/shared/metis/post/post.component.html b/src/main/webapp/app/shared/metis/post/post.component.html index a63356e0aa1f..3dd8c7445466 100644 --- a/src/main/webapp/app/shared/metis/post/post.component.html +++ b/src/main/webapp/app/shared/metis/post/post.component.html @@ -42,7 +42,7 @@ } - @if (showChannelReference && (pageType === PageType.OVERVIEW || previewMode())) { + @if (showChannelReference && (pageType === PageType.OVERVIEW || previewMode()) && contextInformation.displayName !== '') { @if (contextInformation.routerLinkComponents) { searchResults = conversationMessageRepository.findCourseWideMessages(filter, Pageable.unpaged(), student1.getId()); + List resultPosts = searchResults.getContent(); + assertThat(resultPosts).extracting(Post::getContent).contains("SearchTestDirect", "SearchTestGroup"); + } + private long getUnreadMessagesCount(Conversation conversation, User user) { return oneToOneChatRepository.findByIdWithConversationParticipantsAndUserGroups(conversation.getId()).orElseThrow().getConversationParticipants().stream() .filter(conversationParticipant -> Objects.equals(conversationParticipant.getUser().getId(), user.getId())).findFirst().orElseThrow().getUnreadMessagesCount(); From 470041c2426d99311bfaf5af2ce9c7cd4934df80 Mon Sep 17 00:00:00 2001 From: Asli Aykan Date: Fri, 21 Feb 2025 03:47:27 +0100 Subject: [PATCH 2/2] fix filtering for all public messages page --- .../repository/ConversationMessageRepository.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/tum/cit/aet/artemis/communication/repository/ConversationMessageRepository.java b/src/main/java/de/tum/cit/aet/artemis/communication/repository/ConversationMessageRepository.java index 819b2c7c8c3f..f4bacaff5b5f 100644 --- a/src/main/java/de/tum/cit/aet/artemis/communication/repository/ConversationMessageRepository.java +++ b/src/main/java/de/tum/cit/aet/artemis/communication/repository/ConversationMessageRepository.java @@ -3,6 +3,7 @@ import static de.tum.cit.aet.artemis.communication.repository.MessageSpecs.getAnsweredOrReactedSpecification; import static de.tum.cit.aet.artemis.communication.repository.MessageSpecs.getConversationSpecification; import static de.tum.cit.aet.artemis.communication.repository.MessageSpecs.getConversationsSpecification; +import static de.tum.cit.aet.artemis.communication.repository.MessageSpecs.getCourseWideChannelsSpecification; import static de.tum.cit.aet.artemis.communication.repository.MessageSpecs.getOwnSpecification; import static de.tum.cit.aet.artemis.communication.repository.MessageSpecs.getPinnedSpecification; import static de.tum.cit.aet.artemis.communication.repository.MessageSpecs.getSearchTextSpecification; @@ -86,7 +87,11 @@ default Page findMessages(PostContextFilterDTO postContextFilter, Pageable * @return returns a Page of Messages */ default Page findCourseWideMessages(PostContextFilterDTO postContextFilter, Pageable pageable, long userId) { - Specification specification = Specification.where(getConversationsSpecification(postContextFilter.courseWideChannelIds())); + Specification specification = Specification.where(getCourseWideChannelsSpecification(postContextFilter.courseId())) + .and(getConversationsSpecification(postContextFilter.courseWideChannelIds())); + if (postContextFilter.searchText() != null && !postContextFilter.searchText().isEmpty()) { + specification = Specification.where(getConversationsSpecification(postContextFilter.courseWideChannelIds())); + } specification = configureSearchSpecification(specification, postContextFilter, userId); return findPostsWithSpecification(pageable, specification); }