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,
@RequestParam(value = "suchbegriff", required = false) String search) throws EventException {
Account account = keyCloakService.createAccountFromPrincipal(token);
List<Group> groupse = new ArrayList<>();
List<Group> groups = new ArrayList<>();
if (search != null) {
groupse = groupService.findGroupWith(search, account);
groups = groupService.findGroupWith(search, account);
}
model.addAttribute("account", keyCloakService.createAccountFromPrincipal(token));
model.addAttribute("gruppen", groupse);
model.addAttribute("gruppen", groups);
return "search";
}
@ -302,18 +302,17 @@ public class Gruppen2Controller {
UUID parentId = group.getParent();
Group parent = new Group();
/**
* Fix this please!!!
if (parentId != null) {
parent = userService.getGroupById(parentId);
}
}*/
if (group.getUserMaximum() > group.getMembers().size()) {
model.addAttribute("group", group);
model.addAttribute("parentId", parentId);
model.addAttribute("parent", parent);
model.addAttribute("group", group);
model.addAttribute("parentId", parentId);
model.addAttribute("parent", parent);
return "detailsNoMember";
}
throw new GroupNotFoundException(this.getClass().toString());
return "detailsNoMember";
}
@RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator"})

View File

@ -2,6 +2,7 @@ package mops.gruppen2.service;
import mops.gruppen2.domain.Group;
import mops.gruppen2.domain.GroupType;
import mops.gruppen2.domain.User;
import mops.gruppen2.domain.Visibility;
import mops.gruppen2.domain.dto.EventDTO;
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("UpdateGroupTitleEvent")));
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<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()
.filter(group -> group.getType() != null)
@ -118,8 +131,8 @@ public class GroupService {
return getAllGroupWithVisibilityPublic(account.getName())
.parallelStream()
.filter(group ->
group.getTitle().toLowerCase().contains(search.toLowerCase()) ||
group.getDescription().toLowerCase().contains(search.toLowerCase()))
group.getTitle().toLowerCase().contains(search.toLowerCase()) ||
group.getDescription().toLowerCase().contains(search.toLowerCase()))
.collect(Collectors.toList());
}
}

View File

@ -56,16 +56,21 @@
<th scope="col">Mitgliederanzahl</th>
</tr>
</thead>
<tbody th:each="gruppe : ${gruppen}">
<tr>
<tbody>
<tr th:each="gruppe : ${gruppen}" th:switch="${gruppe.getUserMaximum() != 100000}">
<th scope="row">
<a th:href="@{/gruppen2/detailsSearch(id=${gruppe.getId()})}"
th:text="${gruppe.title}">Gruppenname</a>
th:text="${gruppe.getTitle()}">Gruppenname</a>
</th>
<td style="" th:text="${#strings.abbreviate(gruppe.getDescription(), 50)}">
Beschreibung
</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>
</tbody>
</table>