1

Merge pull request #76 from hhu-propra2/fix-vis-in-db

partially fix vis in db
This commit is contained in:
kasch309
2020-03-16 13:04:05 +01:00
committed by GitHub
6 changed files with 57 additions and 27 deletions

View File

@ -33,7 +33,6 @@ public class Gruppen2Controller {
private final GroupService groupService; private final GroupService groupService;
private final UserService userService; private final UserService userService;
private final ControllerService controllerService; private final ControllerService controllerService;
private List<Group> groups = new ArrayList<>();
public Gruppen2Controller(KeyCloakService keyCloakService, EventService eventService, GroupService groupService, UserService userService, ControllerService controllerService) { public Gruppen2Controller(KeyCloakService keyCloakService, EventService eventService, GroupService groupService, UserService userService, ControllerService controllerService) {
this.keyCloakService = keyCloakService; this.keyCloakService = keyCloakService;
@ -58,6 +57,7 @@ public class Gruppen2Controller {
model.addAttribute("account", keyCloakService.createAccountFromPrincipal(token)); model.addAttribute("account", keyCloakService.createAccountFromPrincipal(token));
model.addAttribute("gruppen", userService.getUserGroups(user.getUser_id())); model.addAttribute("gruppen", userService.getUserGroups(user.getUser_id()));
model.addAttribute("user",user);
return "index"; return "index";
} }
@ -83,10 +83,16 @@ public class Gruppen2Controller {
@PostMapping("/createGroup") @PostMapping("/createGroup")
public String pCreateGroup(KeycloakAuthenticationToken token, public String pCreateGroup(KeycloakAuthenticationToken token,
@RequestParam(value = "title") String title, @RequestParam(value = "title") String title,
@RequestParam(value = "beschreibung") String beschreibung) { @RequestParam(value = "beschreibung") String beschreibung,
@RequestParam(value = "visibility", required = false) Boolean visibility) {
Account account = keyCloakService.createAccountFromPrincipal(token); Account account = keyCloakService.createAccountFromPrincipal(token);
controllerService.createGroup(account, title, beschreibung); if (visibility == null) {
visibility = true;
}else{
visibility = false;
}
controllerService.createGroup(account, title, beschreibung, visibility);
return "redirect:/gruppen2/"; return "redirect:/gruppen2/";
} }
@ -100,7 +106,7 @@ public class Gruppen2Controller {
User user = new User(account.getName(), account.getGivenname(), account.getFamilyname(), account.getEmail()); User user = new User(account.getName(), account.getGivenname(), account.getFamilyname(), account.getEmail());
if(group!= null) { if(group!= null) {
model.addAttribute("group", group); model.addAttribute("group", group);
model.addAttribute("role",group.getRoles().get(user.getUser_id())); model.addAttribute("role", group.getRoles().get(user.getUser_id()));
return "detailsMember"; return "detailsMember";
} }
throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Group not found"); throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Group not found");

View File

@ -27,10 +27,15 @@ public class ControllerService {
* @param title Gruppentitel * @param title Gruppentitel
* @param description Gruppenbeschreibung * @param description Gruppenbeschreibung
*/ */
public void createGroup(Account account, String title, String description) { public void createGroup(Account account, String title, String description, Boolean visibility) {
Visibility visibility1;
if (visibility){
visibility1 = Visibility.PUBLIC;
}else{
visibility1 = Visibility.PRIVATE;
}
List<Event> eventList = new ArrayList<>(); List<Event> eventList = new ArrayList<>();
Collections.addAll(eventList, new CreateGroupEvent(eventService.checkGroup(), account.getName(), null , GroupType.LECTURE, Visibility.PUBLIC), Collections.addAll(eventList, new CreateGroupEvent(eventService.checkGroup(), account.getName(), null , GroupType.LECTURE, visibility1),
new AddUserEvent(eventService.checkGroup(), account.getName(),account.getGivenname(),account.getFamilyname(),account.getEmail()), new AddUserEvent(eventService.checkGroup(), account.getName(),account.getGivenname(),account.getFamilyname(),account.getEmail()),
new UpdateRoleEvent(eventService.checkGroup(), account.getName(), Role.ADMIN), new UpdateRoleEvent(eventService.checkGroup(), account.getName(), Role.ADMIN),
new UpdateGroupTitleEvent(eventService.checkGroup(), account.getName(), title), new UpdateGroupTitleEvent(eventService.checkGroup(), account.getName(), title),

View File

@ -77,7 +77,7 @@ public class GroupService {
* @throws EventException * @throws EventException
*/ */
public List<Group> getAllGroupWithVisibilityPublic() throws EventException { public List<Group> getAllGroupWithVisibilityPublic() throws EventException {
return projectEventList(eventService.translateEventDTOs(eventRepository.findEventDTOByVisibility(Boolean.FALSE))); return projectEventList(eventService.translateEventDTOs(eventRepository.findEventDTOByVisibility(Boolean.TRUE)));
} }

View File

@ -29,7 +29,7 @@
<h1>Gruppenerstellung</h1> <h1>Gruppenerstellung</h1>
<div class="container-fluid"> <div class="container-fluid">
<form method="post" action="/gruppen2/createGroup"> <form method="post" action="/gruppen2/createGroup">
<div class="shadow p-2" style="border: 10px solid aliceblue; background: aliceblue"> <div class="shadow p-2" style=" border: 10px solid aliceblue; background: aliceblue">
<div class="form-group"> <div class="form-group">
<label for="titel">Titel</label> <label for="titel">Titel</label>
<input type="text" class="form-control" id="titel" th:name="title" required> <input type="text" class="form-control" id="titel" th:name="title" required>
@ -38,11 +38,9 @@
<label for="beschreibung">Beschreibung</label> <label for="beschreibung">Beschreibung</label>
<textarea th:name="beschreibung" class="form-control" id="beschreibung" rows="3" required></textarea> <textarea th:name="beschreibung" class="form-control" id="beschreibung" rows="3" required></textarea>
</div> </div>
<div class="checkbox p-2"> <div class="custom-control custom-checkbox">
<label for="visibility"></label> <input type="checkbox" id="visibility" class="custom-control-input" th:name="visibility">
<input type="checkbox" id="visibility" > Privat <label class="custom-control-label" for="visibility">Private Gruppe</label>
<label for="groupType" class="pr-5"></label>
<input type="checkbox" id="groupType"> Veranstaltung
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="sel1"></label> <label for="sel1"></label>

View File

@ -31,8 +31,8 @@
<form action="/" method="get"> <form action="/" method="get">
<h1 style="color: dodgerblue; font-weight: bold" th:text="${group.getTitle()}"></h1> <h1 style="color: dodgerblue; font-weight: bold" th:text="${group.getTitle()}"></h1>
<p style="font-weight: bold"> <p style="font-weight: bold">
<span class="badge badge-pill badge-dark" style="background: darkslategray" th:if="${group.getVisibility() == group.getVisibility().PUBLIC }">Private Gruppe</span> <span class="badge badge-pill badge-dark" style="background: darkslategray" th:if="${group.getVisibility() == group.getVisibility().PRIVATE }">Private Gruppe</span>
<span class="badge badge-pill badge-primary" th:if="${group.getVisibility() == group.getVisibility().PRIVATE}">Öffentliche Gruppe</span> <span class="badge badge-pill badge-primary" th:if="${group.getVisibility() == group.getVisibility().PUBLIC}">Öffentliche Gruppe</span>
<span class="badge badge-pill badge-success" style="background: lightseagreen" th:if="${group.getType() == group.getType().LECTURE}"> Veranstaltung</span> <span class="badge badge-pill badge-success" style="background: lightseagreen" th:if="${group.getType() == group.getType().LECTURE}"> Veranstaltung</span>
</p> </p>
<p th:text="${group.getDescription()}"></p> <p th:text="${group.getDescription()}"></p>
@ -43,6 +43,7 @@
</div> </div>
</form> </form>
</div> </div>
<div class="col-3" style="white-space: nowrap"> <div class="col-3" style="white-space: nowrap">
<div> <div>
<h2 style="display: inline-block; margin: 0">Mitglieder</h2> <h2 style="display: inline-block; margin: 0">Mitglieder</h2>

View File

@ -25,8 +25,10 @@
</nav> </nav>
</header> </header>
<main th:fragment="bodycontent"> <main th:fragment="bodycontent">
<h1>Meine Gruppen</h1>
<div class="container-fluid"> <div class="container-fluid">
<div class="row" >
<div class="col-10">
<h1>Meine Gruppen</h1>
<form action="/" method="get"> <form action="/" method="get">
<div th:each="gruppe: ${gruppen}"> <div th:each="gruppe: ${gruppen}">
<div style="border: 10px solid aliceblue; background: aliceblue"> <div style="border: 10px solid aliceblue; background: aliceblue">
@ -39,6 +41,24 @@
</div> </div>
</form> </form>
</div> </div>
<div class="col-2" >
<div class="card" style="background: lightgrey">
<div class="card-body">
<h2 class="card-title" th:text="${user.getUser_id()}" style="text-align: center">user_id</h2>
<h3 class="card-text">
<span th:text="${user.getGivenname()}">username</span>
<span th:text="${user.getFamilyname()}">usersurname</span>
</h3>
<p class="card-text" th:text="${user.getEmail()}">usermail</p>
<p>
<small class="card-text">In Gruppen:</small>
<small class="card-text" th:text="${gruppen.size()}"></small>
</p>
</div>
</div>
</div>
</div>
</div>
</main> </main>
</body> </body>
</html> </html>