From 9b58abdab23f19f6341133eafeed353d7d616d76 Mon Sep 17 00:00:00 2001 From: Christoph Date: Fri, 17 Apr 2020 17:24:49 +0200 Subject: [PATCH] add initial search-tags, die finden aber evtl zuviel --- .../gruppen2/domain/model/group/Group.java | 3 +- .../domain/model/group/SortHelper.java | 51 ------------------- .../domain/service/SearchService.java | 5 +- .../domain/service/helper/SortHelper.java | 27 ++++++++++ .../controller/GroupDetailsController.java | 4 +- src/main/resources/templates/search.html | 32 ++++++++++-- 6 files changed, 61 insertions(+), 61 deletions(-) delete mode 100644 src/main/java/mops/gruppen2/domain/model/group/SortHelper.java create mode 100644 src/main/java/mops/gruppen2/domain/service/helper/SortHelper.java diff --git a/src/main/java/mops/gruppen2/domain/model/group/Group.java b/src/main/java/mops/gruppen2/domain/model/group/Group.java index c081f45..0ab9ae8 100644 --- a/src/main/java/mops/gruppen2/domain/model/group/Group.java +++ b/src/main/java/mops/gruppen2/domain/model/group/Group.java @@ -19,6 +19,7 @@ import mops.gruppen2.domain.model.group.wrapper.Link; import mops.gruppen2.domain.model.group.wrapper.Parent; import mops.gruppen2.domain.model.group.wrapper.Title; import mops.gruppen2.domain.service.helper.CommonHelper; +import mops.gruppen2.domain.service.helper.SortHelper; import mops.gruppen2.domain.service.helper.ValidationHelper; import javax.validation.Valid; @@ -302,7 +303,7 @@ public class Group { } public String format() { - return title + " " + description; + return type + ": " + title + " - " + description; } @Override diff --git a/src/main/java/mops/gruppen2/domain/model/group/SortHelper.java b/src/main/java/mops/gruppen2/domain/model/group/SortHelper.java deleted file mode 100644 index 0dbf19d..0000000 --- a/src/main/java/mops/gruppen2/domain/model/group/SortHelper.java +++ /dev/null @@ -1,51 +0,0 @@ -package mops.gruppen2.domain.model.group; - -import lombok.AccessLevel; -import lombok.NoArgsConstructor; - -import java.util.List; - -@NoArgsConstructor(access = AccessLevel.PRIVATE) -public final class SortHelper { - - /** - * Sortiert die übergebene Liste an Gruppen, sodass Veranstaltungen am Anfang der Liste sind. - * - * @param groups Die Liste von Gruppen die sortiert werden soll - */ - public static void sortByGroupType(List groups) { - groups.sort((Group g1, Group g2) -> { - if (g1.getType() == Type.LECTURE) { - return -1; - } - if (g2.getType() == Type.LECTURE) { - return 1; - } - - if (g1.getType() == Type.PUBLIC) { - return -1; - } - - if (g2.getType() == Type.PUBLIC) { - return 1; - } - - return 0; - }); - } - - public static List sortByMemberRole(List memberships) { - memberships.sort((Membership m1, Membership m2) -> { - if (m1.getRole() == Role.ADMIN) { - return -1; - } - if (m2.getRole() == Role.ADMIN) { - return 1; - } - - return 0; - }); - - return memberships; - } -} diff --git a/src/main/java/mops/gruppen2/domain/service/SearchService.java b/src/main/java/mops/gruppen2/domain/service/SearchService.java index d2bedeb..528069b 100644 --- a/src/main/java/mops/gruppen2/domain/service/SearchService.java +++ b/src/main/java/mops/gruppen2/domain/service/SearchService.java @@ -4,7 +4,6 @@ import lombok.RequiredArgsConstructor; import lombok.extern.log4j.Log4j2; import mops.gruppen2.domain.exception.EventException; import mops.gruppen2.domain.model.group.Group; -import mops.gruppen2.domain.model.group.SortHelper; import mops.gruppen2.infrastructure.GroupCache; import org.springframework.stereotype.Service; @@ -30,13 +29,11 @@ public class SearchService { * * @throws EventException Projektionsfehler */ - //TODO: search in lectures public List search(String search, String principal) { List groups = new ArrayList<>(); groups.addAll(groupCache.publics()); groups.addAll(groupCache.lectures()); groups = removeUserGroups(groups, principal); - SortHelper.sortByGroupType(groups); if (search.isEmpty()) { return groups; @@ -44,6 +41,8 @@ public class SearchService { log.debug("Es wurde gesucht nach: {}", search); + // Die Suche nach Typ (LECTURE, PUBLIC), ist nicht wirklich sicher, + // da im gesamtstring danach gesucht wird return groups.stream() .filter(group -> group.format().toLowerCase().contains(search.toLowerCase())) .collect(Collectors.toList()); diff --git a/src/main/java/mops/gruppen2/domain/service/helper/SortHelper.java b/src/main/java/mops/gruppen2/domain/service/helper/SortHelper.java new file mode 100644 index 0000000..2f7583f --- /dev/null +++ b/src/main/java/mops/gruppen2/domain/service/helper/SortHelper.java @@ -0,0 +1,27 @@ +package mops.gruppen2.domain.service.helper; + +import lombok.AccessLevel; +import lombok.NoArgsConstructor; +import mops.gruppen2.domain.model.group.Membership; +import mops.gruppen2.domain.model.group.Role; + +import java.util.List; + +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public final class SortHelper { + + public static List sortByMemberRole(List memberships) { + memberships.sort((Membership m1, Membership m2) -> { + if (m1.getRole() == Role.ADMIN) { + return -1; + } + if (m2.getRole() == Role.ADMIN) { + return 1; + } + + return 0; + }); + + return memberships; + } +} diff --git a/src/main/java/mops/gruppen2/infrastructure/controller/GroupDetailsController.java b/src/main/java/mops/gruppen2/infrastructure/controller/GroupDetailsController.java index 79d5972..81a3dc2 100644 --- a/src/main/java/mops/gruppen2/infrastructure/controller/GroupDetailsController.java +++ b/src/main/java/mops/gruppen2/infrastructure/controller/GroupDetailsController.java @@ -224,7 +224,9 @@ public class GroupDetailsController { Group group = groupCache.group(UUID.fromString(groupId)); ValidationHelper.throwIfNoAdmin(group, principal); - ValidationHelper.throwIfLastAdmin(group, principal); + if (target.equals(principal)) { + ValidationHelper.throwIfLastAdmin(group, principal); + } groupService.toggleMemberRole(group, principal, target); diff --git a/src/main/resources/templates/search.html b/src/main/resources/templates/search.html index 24f6023..c8d7fd6 100644 --- a/src/main/resources/templates/search.html +++ b/src/main/resources/templates/search.html @@ -16,14 +16,36 @@
-
-
- Suchbegriff: +
+
+
+ Suchbegriff: +
+
- + +
- + +
+
+ + +
+ + + + +
+ + +
+
+ + +
+