Skip to content
Snippets Groups Projects
Commit bb0882b4 authored by Barbara B. Frosik's avatar Barbara B. Frosik
Browse files

Added Role Type pages

parent d6e988fc
No related branches found
No related tags found
No related merge requests found
Showing
with 408 additions and 1 deletion
package gov.anl.aps.dm.portal.controllers;
import gov.anl.aps.dm.portal.exceptions.DmPortalException;
import gov.anl.aps.dm.portal.exceptions.ObjectAlreadyExists;
import gov.anl.aps.dm.portal.model.beans.RoleTypeFacade;
import gov.anl.aps.dm.portal.model.entities.RoleType;
import gov.anl.aps.dm.portal.utilities.SessionUtility;
import java.util.List;
import javax.ejb.EJB;
import javax.enterprise.context.SessionScoped;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;
import javax.inject.Named;
import org.apache.log4j.Logger;
@Named("roleTypeController")
@SessionScoped
public class RoleTypeController extends CrudEntityController<RoleType, RoleTypeFacade>
{
private static final Logger logger = Logger.getLogger(RoleTypeController.class.getName());
@EJB
private RoleTypeFacade roleTypeFacade;
public RoleTypeController() {
}
@Override
protected RoleTypeFacade getFacade() {
return roleTypeFacade;
}
@Override
protected RoleType createEntityInstance() {
return new RoleType();
}
@Override
public String getEntityTypeName() {
return "roleType";
}
@Override
public String getCurrentEntityInstanceName() {
if (getCurrent() != null) {
return getCurrent().getName();
}
return "";
}
@Override
public List<RoleType> getAvailableItems() {
return super.getAvailableItems();
}
@Override
public String prepareEdit(RoleType roleType) {
return super.prepareEdit(roleType);
}
@Override
public void prepareEntityInsert(RoleType roleType) throws ObjectAlreadyExists {
RoleType existingRoleType = roleTypeFacade.findByName(roleType.getName());
if (existingRoleType != null) {
throw new ObjectAlreadyExists("Role Type " + roleType.getName() + " already exists.");
}
logger.debug("Inserting new roleType " + roleType.getName());
}
@Override
public void prepareEntityUpdate(RoleType roleType) throws DmPortalException {
super.prepareEntityUpdate(roleType);
}
@FacesConverter(forClass = RoleType.class)
public static class RoleTypeControllerConverter implements Converter
{
@Override
public Object getAsObject(FacesContext facesContext, UIComponent component, String value) {
if (value == null || value.length() == 0) {
return null;
}
RoleTypeController controller = (RoleTypeController) facesContext.getApplication().getELResolver().
getValue(facesContext.getELContext(), null, "roleTypeController");
return controller.getEntity(getKey(value));
}
java.lang.Integer getKey(String value) {
java.lang.Integer key;
key = Integer.valueOf(value);
return key;
}
String getStringKey(java.lang.Integer value) {
StringBuilder sb = new StringBuilder();
sb.append(value);
return sb.toString();
}
@Override
public String getAsString(FacesContext facesContext, UIComponent component, Object object) {
if (object == null) {
return null;
}
if (object instanceof RoleType) {
RoleType o = (RoleType) object;
return getStringKey(o.getId());
}
else {
throw new IllegalArgumentException("object " + object + " is of type " + object.getClass().getName() + "; expected type: " + RoleType.class.getName());
}
}
}
}
\ No newline at end of file
......@@ -9,6 +9,7 @@ package gov.anl.aps.dm.portal.model.beans;
import gov.anl.aps.dm.portal.model.entities.RoleType;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
/**
......@@ -30,4 +31,19 @@ public class RoleTypeFacade extends AbstractFacade<RoleType>
super(RoleType.class);
}
public RoleType findByName(String name) {
try {
return (RoleType) em.createNamedQuery("RoleType.findByName")
.setParameter("name", name)
.getSingleResult();
}
catch (NoResultException ex) {
}
return null;
}
public boolean checkIfNameExists(String name) {
return findByName(name) != null;
}
}
......@@ -57,6 +57,7 @@
<p:menubar>
<p:menuitem value="Home" url="/views/home.xhtml" icon="ui-icon-home"/>
<p:menuitem value="Experiment Types" url="/views/experimentType/list.xhtml"/>
<p:menuitem value="Role Types" url="/views/roleType/list.xhtml"/>
<p:menuitem value="Users" url="/views/userInfo/list.xhtml"/>
<p:menuitem value="Login" onclick="PF('loginDialog').show();" rendered="#{!loginController.loggedIn}" icon="ui-icon-person"/>
<p:menuitem value="Logout" action="#{loginController.logout()}" rendered="#{loginController.loggedIn}" icon="ui-icon-close"/> </p:menubar>
......
......@@ -11,7 +11,6 @@
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="../resources/css/portal.css" rel="stylesheet" type="text/css" />
<link href="../../resources/css/portal.css" rel="stylesheet" type="text/css" />
<title>Data Management System Portal</title>
</h:head>
......@@ -59,6 +58,7 @@
<p:menubar>
<p:menuitem value="Home" url="/views/home.xhtml" icon="ui-icon-home"/>
<p:menuitem value="Experiment Types" url="/views/experimentType/list.xhtml"/>
<p:menuitem value="Role Types" url="/views/roleType/list.xhtml"/>
<p:menuitem value="Users" url="/views/userInfo/list.xhtml"/>
<p:menuitem value="Login" onclick="PF('loginDialog').show();" rendered="#{!loginController.loggedIn}" icon="ui-icon-person"/>
<p:menuitem value="Logout" action="#{loginController.logout()}" rendered="#{loginController.loggedIn}" icon="ui-icon-close"/> </p:menubar>
......
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
template="../../templates/contentViewTemplate4x3.xhtml">
<ui:define name="middleCenter">
<div class="pageTitle">
<h1>Add Role</h1>
</div>
<h:form id="addRoleTypeForm">
<ui:include src="roleTypeCreatePanelGrid.xhtml"/>
<p/>
<div class="actionButton">
<p:commandButton action="#{roleTypeController.create()}" value="Save" alt="Save" icon="ui-icon-check" update="@form"/>
<p:commandButton action="#{roleTypeController.prepareList()}" immediate="true" value="Cancel" alt="Cancel" icon="ui-icon-cancel"/>
</div>
</h:form>
</ui:define>
</ui:composition>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
template="../../templates/contentViewTemplate4x3.xhtml">
<ui:define name="middleCenter">
<h:form id="editRoleTypeForm">
<div class="middleCenterLeftContent">
<div class="pageTitle">
<h1>Edit Role Type</h1>
</div>
<ui:include src="roleTypeEditPanelGrid.xhtml"/>
<p/>
<div class="actionButton">
<p:commandButton action="#{roleTypeController.update()}" value="Save" alt="Save" icon="ui-icon-check" update="@form"/>
<p:commandButton action="#{roleTypeController.prepareList()}" immediate="true" value="Done" alt="Done" icon="ui-icon-arrowreturnthick-1-w"/>
</div>
</div>
</h:form>
</ui:define>
</ui:composition>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
template="../../templates/contentViewTemplate4x3.xhtml">
<ui:define name="middleCenter">
<div class="pageTitle">
<h1>Role Types</h1>
</div>
<h:form id="viewRoleTypeListForm">
<c:set var="entityController" value="#{roleTypeController}"/>
<ui:include src="../common/commonListActionButtons.xhtml"/>
<h:panelGroup>
<ui:include src="roleTypeListDataTable.xhtml"/>
</h:panelGroup>
<ui:include src="roleTypeDestroyDialog.xhtml"/>
<h:outputScript library="js/roleType" name="list.filter.js" rendered="#{loginController.loggedIn}"/>
</h:form>
</ui:define>
</ui:composition>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
<c:set var="roleTypeObject" value="#{roleTypeController.selected}"/>
<p:panelGrid columns="3" styleClass="createEntityDetails">
<h:outputLabel for="name" value="Role Name" styleClass="entityDataEmphasizedLabel"/>
<h:inputText id="name" value="#{roleTypeObject.name}" title="Role Name" required="true" styleClass="entityDataEmphasizedText"/>
<p:message for="name"/>
<h:outputLabel for="description" value="Description" styleClass="entityDataLabel"/>
<h:inputText id="description" value="#{roleTypeObject.description}" title="Description" styleClass="entityDataText"/>
<p:message for="description"/>
</p:panelGrid>
</ui:composition>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:p="http://primefaces.org/ui"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<p:confirmDialog id="roleTypeDestroyDialog" message="Destroy role #{roleTypeController.getCurrentEntityInstanceName()}?"
header="Destroy RoleType" severity="alert" widgetVar="roleTypeDestroyDialogWidget"
styleClass="dialog">
<p:commandButton value="Yes" oncomplete="roleTypeDestroyDialogWidget.hide()" action="#{roleTypeController.destroy()}"/>
<p:commandButton value="No" onclick="roleTypeDestroyDialogWidget.hide()" type="button" />
</p:confirmDialog>
</ui:composition>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
<c:set var="roleTypeObject" value="#{roleTypeController.selected}"/>
<c:set var="isFieldWriteable" value="#{loginController.loggedIn}"/>
<p:panelGrid columns="3" styleClass="editEntityDetails">
<h:outputLabel for="name" value="Name" styleClass="entityDataEmphasizedLabel"/>
<h:inputText id="name" value="#{roleTypeObject.name}" title="Name" required="true" styleClass="entityDataEmphasizedText"/>
<p:message for="name"/>
<h:outputLabel for="id" value="Id" styleClass="entityDataLabel"/>
<h:outputText id="id" value="#{roleTypeObject.id}" title="Id" styleClass="entityDataText"/>
<p:message for="id"/>
<h:outputLabel for="description" value="Description" styleClass="entityDataLabel"/>
<h:inputText id="description" value="#{roleTypeObject.description}" title="Description" styleClass="entityDataText"/>
<p:message for="description"/>
</p:panelGrid>
</ui:composition>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
<p:dataTable id="roleTypeListDataTable"
var="roleTypeObject"
value="#{roleTypeController.listDataModel}"
filteredValue="#{roleTypeController.filteredObjectList}"
paginator="true"
paginatorAlwaysVisible="false"
rows="25"
binding="#{roleTypeController.listDataTable}"
widgetVar="roleTypeListWidget"
emptyMessage="No role types found.">
<p:column sortBy="#{roleTypeObject.id}" headerText="Id">
<h:outputText value="#{roleTypeObject.id}"/>
</p:column>
<p:column sortBy="#{roleTypeObject.name}" headerText="Role Type"
filterBy="#{roleTypeObject.name}" filterMatchMode="contains">
<h:outputText value="#{roleTypeObject.name}"/>
</p:column>
<p:column sortBy="#{roleTypeObject.description}" headerText="Description"
filterBy="#{roleTypeObject.description}" filterMatchMode="contains">
<h:outputText value="#{roleTypeObject.description}"/>
</p:column>
<c:set var="isEntityWriteable" value="#{loginController.loggedIn}"/>
<p:column headerText="Actions">
<div class="actionLink">
<p:commandLink action="#{roleTypeController.prepareView(roleTypeObject)}" styleClass="ui-icon ui-icon-info" title="View"/>
<p:commandLink action="#{roleTypeController.prepareEdit(roleTypeObject)}" rendered="#{isEntityWriteable}" styleClass="ui-icon ui-icon-pencil" title="Edit"/>
<p:commandLink oncomplete="roleTypeDestroyDialogWidget.show()" rendered="#{loginController.loggedIn}" styleClass="ui-icon ui-icon-trash" title="Delete" update="@form">
<f:setPropertyActionListener value="#{roleTypeObject}" target="#{roleTypeController.current}"/>
</p:commandLink>
</div>
</p:column>
</p:dataTable>
</ui:composition>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
<c:set var="roleTypeObject" value="#{roleTypeController.selected}"/>
<p:panelGrid columns="2" styleClass="viewEntityDetails">
<h:outputLabel for="name" value="Name" styleClass="entityDataEmphasizedLabel"/>
<h:outputText id="name" value="#{roleTypeObject.name}" title="Name" styleClass="entityDataEmphasizedText"/>
<h:outputLabel for="id" value="Id" styleClass="entityDataLabel"/>
<h:outputText id="id" value="#{roleTypeObject.id}" title="Id" styleClass="entityDataText"/>
<h:outputLabel for="description" value="Description" styleClass="entityDataLabel"/>
<h:outputText id="description" value="#{roleTypeObject.description}" title="Description" styleClass="entityDataText"/>
</p:panelGrid>
</ui:composition>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
template="../../templates/contentViewTemplate4x3.xhtml">
<ui:define name="middleCenter">
<h:form id="viewRoleTypeForm">
<div class="middleCenterLeftContent">
<div class="pageTitle">
<h1>Role Type Details</h1>
</div>
<ui:include src="roleTypeViewPanelGrid.xhtml"/>
<p/>
<c:set var="roleTypeObject" value="#{roleTypeController.selected}"/>
<c:set var="isEntityWriteable" value="#{loginController.loggedIn}"/>
<div class="actionButton">
<p:commandButton action="#{roleTypeController.prepareEdit(roleTypeObject)}" rendered="#{isEntityWriteable}" value="Edit" alt="Edit" icon="ui-icon-pencil"/>
<p:commandButton onclick="PF('roleTypeDestroyDialogWidget').show();" rendered="#{loginController.loggedIn}" value="Delete" alt="Delete" icon="ui-icon-trash">
<f:setPropertyActionListener value="#{roleTypeObject}" target="#{roleTypeController.current}"/>
</p:commandButton>
<p:commandButton action="#{roleTypeController.prepareList()}" value="Done" alt="Done" icon="ui-icon-arrowreturnthick-1-w"/>
</div>
<ui:include src="roleTypeDestroyDialog.xhtml"/>
</div>
</h:form>
</ui:define>
</ui:composition>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment