Groups overview
parent
d84245684f
commit
14a1a2eb05
|
|
@ -20,10 +20,16 @@ package org.libreccm.ui.admin.usersgroupsroles;
|
||||||
|
|
||||||
import org.libreccm.core.CoreConstants;
|
import org.libreccm.core.CoreConstants;
|
||||||
import org.libreccm.security.AuthorizationRequired;
|
import org.libreccm.security.AuthorizationRequired;
|
||||||
|
import org.libreccm.security.Group;
|
||||||
|
import org.libreccm.security.GroupRepository;
|
||||||
import org.libreccm.security.RequiresPrivilege;
|
import org.libreccm.security.RequiresPrivilege;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import javax.enterprise.context.RequestScoped;
|
import javax.enterprise.context.RequestScoped;
|
||||||
|
import javax.inject.Inject;
|
||||||
import javax.mvc.Controller;
|
import javax.mvc.Controller;
|
||||||
|
import javax.mvc.Models;
|
||||||
import javax.ws.rs.GET;
|
import javax.ws.rs.GET;
|
||||||
import javax.ws.rs.Path;
|
import javax.ws.rs.Path;
|
||||||
|
|
||||||
|
|
@ -33,14 +39,23 @@ import javax.ws.rs.Path;
|
||||||
*/
|
*/
|
||||||
@RequestScoped
|
@RequestScoped
|
||||||
@Controller
|
@Controller
|
||||||
@Path("/users-groups-roles/group")
|
@Path("/users-groups-roles/groups")
|
||||||
public class GroupsController {
|
public class GroupsController {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private GroupRepository groupRepository;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private Models models;
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Path("/")
|
@Path("/")
|
||||||
@AuthorizationRequired
|
@AuthorizationRequired
|
||||||
@RequiresPrivilege(CoreConstants.PRIVILEGE_ADMIN)
|
@RequiresPrivilege(CoreConstants.PRIVILEGE_ADMIN)
|
||||||
public String getGroups() {
|
public String getGroups() {
|
||||||
|
final List<Group> groups = groupRepository.findAll();
|
||||||
|
models.put("groups", groups);
|
||||||
|
|
||||||
return "org/libreccm/ui/admin/users-groups-roles/groups.xhtml";
|
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"
|
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||||
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
|
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
|
||||||
xmlns:h="http://xmlns.jcp.org/jsf/html"
|
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:composition template="/WEB-INF/views/org/libreccm/ui/admin/users-groups-roles.xhtml">
|
||||||
<ui:param name="activePage" value="usersgroupsroles" />
|
<ui:param name="activePage" value="usersgroupsroles" />
|
||||||
<ui:param name="activePanel" value="groups" />
|
<ui:param name="activePanel" value="groups" />
|
||||||
|
|
@ -21,7 +22,107 @@
|
||||||
</ui:define>
|
</ui:define>
|
||||||
|
|
||||||
<ui:define name="panel">
|
<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:define>
|
||||||
</ui:composition>
|
</ui:composition>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
|
|
@ -129,3 +129,12 @@ usersgroupsroles.users.user_details.roles.dialog.close=Cancel
|
||||||
usersgroupsroles.users.user_details.groups.dialog.save=Save
|
usersgroupsroles.users.user_details.groups.dialog.save=Save
|
||||||
usergroupsroles.users.user_details.family_name=Family Name
|
usergroupsroles.users.user_details.family_name=Family Name
|
||||||
usergroupsroles.users.user_details.email_addresses.errors.address_empty=Address can't be empty
|
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
|
usersgroupsroles.users.user_details.groups.dialog.save=Anwenden
|
||||||
usergroupsroles.users.user_details.family_name=Familienname
|
usergroupsroles.users.user_details.family_name=Familienname
|
||||||
usergroupsroles.users.user_details.email_addresses.errors.address_empty=Die Addresse kann nicht leer sein
|
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