Groups overview
parent
d84245684f
commit
14a1a2eb05
|
|
@ -20,10 +20,16 @@ package org.libreccm.ui.admin.usersgroupsroles;
|
|||
|
||||
import org.libreccm.core.CoreConstants;
|
||||
import org.libreccm.security.AuthorizationRequired;
|
||||
import org.libreccm.security.Group;
|
||||
import org.libreccm.security.GroupRepository;
|
||||
import org.libreccm.security.RequiresPrivilege;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.enterprise.context.RequestScoped;
|
||||
import javax.inject.Inject;
|
||||
import javax.mvc.Controller;
|
||||
import javax.mvc.Models;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.Path;
|
||||
|
||||
|
|
@ -33,14 +39,23 @@ import javax.ws.rs.Path;
|
|||
*/
|
||||
@RequestScoped
|
||||
@Controller
|
||||
@Path("/users-groups-roles/group")
|
||||
@Path("/users-groups-roles/groups")
|
||||
public class GroupsController {
|
||||
|
||||
@Inject
|
||||
private GroupRepository groupRepository;
|
||||
|
||||
@Inject
|
||||
private Models models;
|
||||
|
||||
@GET
|
||||
@Path("/")
|
||||
@AuthorizationRequired
|
||||
@RequiresPrivilege(CoreConstants.PRIVILEGE_ADMIN)
|
||||
public String getGroups() {
|
||||
final List<Group> groups = groupRepository.findAll();
|
||||
models.put("groups", groups);
|
||||
|
||||
return "org/libreccm/ui/admin/users-groups-roles/groups.xhtml";
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,9 @@
|
|||
<!DOCTYPE html>
|
||||
<!DOCTYPE html [<!ENTITY times '×'>]>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
|
||||
xmlns:h="http://xmlns.jcp.org/jsf/html"
|
||||
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
|
||||
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<ui:composition template="/WEB-INF/views/org/libreccm/ui/admin/users-groups-roles.xhtml">
|
||||
<ui:param name="activePage" value="usersgroupsroles" />
|
||||
<ui:param name="activePanel" value="groups" />
|
||||
|
|
@ -21,7 +22,107 @@
|
|||
</ui:define>
|
||||
|
||||
<ui:define name="panel">
|
||||
<p>Groups placeholder</p>
|
||||
<div class="row mb-2">
|
||||
<div class="col-sm-9">
|
||||
|
||||
</div>
|
||||
<div class="col-sm-3 text-right">
|
||||
<a class="btn btn-secondary"
|
||||
href="#">
|
||||
<svg class="bi"
|
||||
width="1em"
|
||||
height="1em"
|
||||
fill="currentColor">
|
||||
<use xlink:href="#{request.contextPath}/assets/bootstrap/bootstrap-icons.svg#plus-circle" />
|
||||
</svg>
|
||||
<span>#{AdminMessages['usersgroupsroles.groups.add']}</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<table class="table table-hover groups-table">
|
||||
<thead class="thead-light">
|
||||
<tr>
|
||||
<th>#{AdminMessages['usersgroupsroles.groups.table.headers.groupname']}</th>
|
||||
<th class="text-center" colspan="2">#{AdminMessages['usersgroupsroles.groups.table.headers.actions']}</th>
|
||||
</tr>
|
||||
<tbody>
|
||||
<c:forEach items="#{groups}"
|
||||
var="group">
|
||||
<tr>
|
||||
<td>#{group.name}</td>
|
||||
<td class="text-center action-col">
|
||||
<a class="btn btn-info"
|
||||
href="#">
|
||||
<svg class="bi"
|
||||
width="1em"
|
||||
height="1em"
|
||||
fill="currentColor">
|
||||
<use xlink:href="#{request.contextPath}/assets/bootstrap/bootstrap-icons.svg#eye" />
|
||||
</svg>
|
||||
<span>
|
||||
#{AdminMessages['usersgroupsroles.groups.detailslink.label']}
|
||||
</span>
|
||||
</a>
|
||||
</td>
|
||||
<td class="text-center action-col">
|
||||
<button class="btn btn-danger"
|
||||
data-toggle="modal"
|
||||
data-target="#confirm-delete-#{group.name}"
|
||||
href="#">
|
||||
<svg class="bi"
|
||||
width="1em"
|
||||
height="1em"
|
||||
fill="currentColor">
|
||||
<use xlink:href="#{request.contextPath}/assets/bootstrap/bootstrap-icons.svg#x-circle" />
|
||||
</svg>
|
||||
<span>
|
||||
#{AdminMessages['usersgroupsroles.groups.delete.button.label']}
|
||||
</span>
|
||||
</button>
|
||||
<div class="modal"
|
||||
id="confirm-delete-#{group.name}"
|
||||
tabindex="-1">
|
||||
<div class="modal-dialog">
|
||||
<form action="#"
|
||||
class="modal-content"
|
||||
method="post">
|
||||
<div class="modal-header">
|
||||
<h3 class="modal-title">
|
||||
#{AdminMessages['usersgroupsroles.groups.delete.confirm.title']}
|
||||
</h3>
|
||||
<button aria-label="#{AdminMessages['usersgroupsroles.groups.delete.confirm.cancel']}"
|
||||
class="close"
|
||||
data-dismiss="modal"
|
||||
type="button">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
#{AdminMessages.getMessage('usersgroupsroles.groups.delete.confirm.message', [group.name])}
|
||||
<input name="confirmed"
|
||||
type="hidden"
|
||||
value="true" />
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-secondary"
|
||||
data-dismiss="modal"
|
||||
type="button">
|
||||
#{AdminMessages['usersgroupsroles.groups.delete.confirm.cancel']}
|
||||
</button>
|
||||
<button class="btn btn-danger"
|
||||
type="submit">
|
||||
#{AdminMessages['usersgroupsroles.groups.delete.confirm.yes']}
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</tbody>
|
||||
</thead>
|
||||
</table>
|
||||
</ui:define>
|
||||
</ui:composition>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -129,3 +129,12 @@ usersgroupsroles.users.user_details.roles.dialog.close=Cancel
|
|||
usersgroupsroles.users.user_details.groups.dialog.save=Save
|
||||
usergroupsroles.users.user_details.family_name=Family Name
|
||||
usergroupsroles.users.user_details.email_addresses.errors.address_empty=Address can't be empty
|
||||
usersgroupsroles.groups.table.headers.groupname=Group
|
||||
usersgroupsroles.groups.table.headers.actions=Actions
|
||||
usersgroupsroles.groups.detailslink.label=Details
|
||||
usersgroupsroles.groups.delete.button.label=Delete
|
||||
usersgroupsroles.groups.delete.confirm.title=Delete group
|
||||
usersgroupsroles.groups.delete.confirm.cancel=Cancel
|
||||
usersgroupsroles.groups.delete.confirm.yes=Delete Group
|
||||
usersgroupsroles.groups.delete.confirm.message=Are you sure to delete group {0}?
|
||||
usersgroupsroles.groups.add=Add group
|
||||
|
|
|
|||
|
|
@ -129,3 +129,12 @@ usersgroupsroles.users.user_details.roles.dialog.close=Abbrechen
|
|||
usersgroupsroles.users.user_details.groups.dialog.save=Anwenden
|
||||
usergroupsroles.users.user_details.family_name=Familienname
|
||||
usergroupsroles.users.user_details.email_addresses.errors.address_empty=Die Addresse kann nicht leer sein
|
||||
usersgroupsroles.groups.table.headers.groupname=Gruppe
|
||||
usersgroupsroles.groups.table.headers.actions=Aktionen
|
||||
usersgroupsroles.groups.detailslink.label=Details
|
||||
usersgroupsroles.groups.delete.button.label=L\u00f6schen
|
||||
usersgroupsroles.groups.delete.confirm.title=Gruppe l\u00f6schen
|
||||
usersgroupsroles.groups.delete.confirm.cancel=Abbrechen
|
||||
usersgroupsroles.groups.delete.confirm.yes=Gruppe l\u00f6schen
|
||||
usersgroupsroles.groups.delete.confirm.message=Sind Sie sicher, dass Sie die Gruppe {0} l\u00f6schen wollen?
|
||||
usersgroupsroles.groups.add=Gruppe hinzuf\u00fcgen
|
||||
|
|
|
|||
Loading…
Reference in New Issue