1

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:
XXNitram
2020-03-24 16:59:45 +01:00
parent 439bd78b5c
commit 9954f685f5
3 changed files with 35 additions and 18 deletions

View File

@ -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,19 +302,18 @@ 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"})
@GetMapping("/acceptinvite/{link}") @GetMapping("/acceptinvite/{link}")

View File

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

View File

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