Fix Group Search
Co-Authored-By: andibuls <andibuls@users.noreply.github.com> Co-Authored-By: Talha Caliskan <killerber4t@users.noreply.github.com>
This commit is contained in:
@ -224,12 +224,12 @@ public class Gruppen2Controller {
|
|||||||
Model model,
|
Model model,
|
||||||
@RequestParam(value = "suchbegriff", required = false) String search) throws EventException {
|
@RequestParam(value = "suchbegriff", required = false) String search) throws EventException {
|
||||||
Account account = keyCloakService.createAccountFromPrincipal(token);
|
Account account = keyCloakService.createAccountFromPrincipal(token);
|
||||||
List<Group> groupse = new ArrayList<>();
|
List<Group> groups = new ArrayList<>();
|
||||||
if (search != null) {
|
if (search != null) {
|
||||||
groupse = groupService.findGroupWith(search, account);
|
groups = groupService.findGroupWith(search, account);
|
||||||
}
|
}
|
||||||
model.addAttribute("account", keyCloakService.createAccountFromPrincipal(token));
|
model.addAttribute("account", keyCloakService.createAccountFromPrincipal(token));
|
||||||
model.addAttribute("gruppen", groupse);
|
model.addAttribute("gruppen", groups);
|
||||||
return "search";
|
return "search";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -302,18 +302,17 @@ public class Gruppen2Controller {
|
|||||||
UUID parentId = group.getParent();
|
UUID parentId = group.getParent();
|
||||||
Group parent = new Group();
|
Group parent = new Group();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fix this please!!!
|
||||||
if (parentId != null) {
|
if (parentId != null) {
|
||||||
parent = userService.getGroupById(parentId);
|
parent = userService.getGroupById(parentId);
|
||||||
}
|
}*/
|
||||||
|
|
||||||
if (group.getUserMaximum() > group.getMembers().size()) {
|
model.addAttribute("group", group);
|
||||||
model.addAttribute("group", group);
|
model.addAttribute("parentId", parentId);
|
||||||
model.addAttribute("parentId", parentId);
|
model.addAttribute("parent", parent);
|
||||||
model.addAttribute("parent", parent);
|
|
||||||
|
|
||||||
return "detailsNoMember";
|
return "detailsNoMember";
|
||||||
}
|
|
||||||
throw new GroupNotFoundException(this.getClass().toString());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator"})
|
@RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator"})
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package mops.gruppen2.service;
|
|||||||
|
|
||||||
import mops.gruppen2.domain.Group;
|
import mops.gruppen2.domain.Group;
|
||||||
import mops.gruppen2.domain.GroupType;
|
import mops.gruppen2.domain.GroupType;
|
||||||
|
import mops.gruppen2.domain.User;
|
||||||
import mops.gruppen2.domain.Visibility;
|
import mops.gruppen2.domain.Visibility;
|
||||||
import mops.gruppen2.domain.dto.EventDTO;
|
import mops.gruppen2.domain.dto.EventDTO;
|
||||||
import mops.gruppen2.domain.event.Event;
|
import mops.gruppen2.domain.event.Event;
|
||||||
@ -80,9 +81,21 @@ public class GroupService {
|
|||||||
createEvents.addAll(eventService.translateEventDTOs(eventRepository.findAllEventsByType("UpdateGroupDescriptionEvent")));
|
createEvents.addAll(eventService.translateEventDTOs(eventRepository.findAllEventsByType("UpdateGroupDescriptionEvent")));
|
||||||
createEvents.addAll(eventService.translateEventDTOs(eventRepository.findAllEventsByType("UpdateGroupTitleEvent")));
|
createEvents.addAll(eventService.translateEventDTOs(eventRepository.findAllEventsByType("UpdateGroupTitleEvent")));
|
||||||
createEvents.addAll(eventService.translateEventDTOs(eventRepository.findAllEventsByType("DeleteGroupEvent")));
|
createEvents.addAll(eventService.translateEventDTOs(eventRepository.findAllEventsByType("DeleteGroupEvent")));
|
||||||
|
createEvents.addAll(eventService.translateEventDTOs(eventRepository.findAllEventsByType("AddUserEvent")));
|
||||||
|
createEvents.addAll(eventService.translateEventDTOs(eventRepository.findAllEventsByType("DeleteUserEvent")));
|
||||||
|
createEvents.addAll(eventService.translateEventDTOs(eventRepository.findAllEventsByType("UpdateUserMaxEvent")));
|
||||||
List<Group> visibleGroups = projectEventList(createEvents);
|
List<Group> visibleGroups = projectEventList(createEvents);
|
||||||
|
|
||||||
List<UUID> userGroupIds = eventService.findGroupIdsByUser(userId);
|
User user = new User(userId, null, null, null);
|
||||||
|
List<UUID> groupIds = eventService.findGroupIdsByUser(user.getId());
|
||||||
|
List<Event> events = getGroupEvents(groupIds);
|
||||||
|
List<Group> groups = projectEventList(events);
|
||||||
|
List<UUID> userGroupIds = new ArrayList<>();
|
||||||
|
for (Group group : groups) {
|
||||||
|
if (group.getMembers().contains(user)) {
|
||||||
|
userGroupIds.add(group.getId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return visibleGroups.parallelStream()
|
return visibleGroups.parallelStream()
|
||||||
.filter(group -> group.getType() != null)
|
.filter(group -> group.getType() != null)
|
||||||
@ -118,8 +131,8 @@ public class GroupService {
|
|||||||
return getAllGroupWithVisibilityPublic(account.getName())
|
return getAllGroupWithVisibilityPublic(account.getName())
|
||||||
.parallelStream()
|
.parallelStream()
|
||||||
.filter(group ->
|
.filter(group ->
|
||||||
group.getTitle().toLowerCase().contains(search.toLowerCase()) ||
|
group.getTitle().toLowerCase().contains(search.toLowerCase()) ||
|
||||||
group.getDescription().toLowerCase().contains(search.toLowerCase()))
|
group.getDescription().toLowerCase().contains(search.toLowerCase()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -56,16 +56,21 @@
|
|||||||
<th scope="col">Mitgliederanzahl</th>
|
<th scope="col">Mitgliederanzahl</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody th:each="gruppe : ${gruppen}">
|
<tbody>
|
||||||
<tr>
|
<tr th:each="gruppe : ${gruppen}" th:switch="${gruppe.getUserMaximum() != 100000}">
|
||||||
<th scope="row">
|
<th scope="row">
|
||||||
<a th:href="@{/gruppen2/detailsSearch(id=${gruppe.getId()})}"
|
<a th:href="@{/gruppen2/detailsSearch(id=${gruppe.getId()})}"
|
||||||
th:text="${gruppe.title}">Gruppenname</a>
|
th:text="${gruppe.getTitle()}">Gruppenname</a>
|
||||||
</th>
|
</th>
|
||||||
<td style="" th:text="${#strings.abbreviate(gruppe.getDescription(), 50)}">
|
<td style="" th:text="${#strings.abbreviate(gruppe.getDescription(), 50)}">
|
||||||
Beschreibung
|
Beschreibung
|
||||||
</td>
|
</td>
|
||||||
<td th:text="${gruppe.getMembers().size()}">Mitgliederanzahl</td>
|
<td th:case="${true}">
|
||||||
|
<a th:text="${gruppe.getMembers().size()}"></a>
|
||||||
|
<a>/</a>
|
||||||
|
<a th:text="${gruppe.getUserMaximum()}"></a>
|
||||||
|
</td>
|
||||||
|
<td th:case="${false}">unbegrenzt</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
Reference in New Issue
Block a user