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

No commit message

No commit message
parent 7d977b46
No related branches found
No related tags found
No related merge requests found
Showing
with 327 additions and 162 deletions
......@@ -32,9 +32,7 @@ public abstract class DataTableController<EntityType extends CloneableEntity> im
public void initialize() {
}
public abstract String getEntityTypeName();
// public abstract String getCurrentEntityInstanceName();
public abstract String getClassName();
public EntityType getCurrent() {
return current;
......
......@@ -7,10 +7,15 @@
package gov.anl.aps.dm.portal.controllers;
import gov.anl.aps.dm.portal.model.beans.RoleTypeFacade;
import gov.anl.aps.dm.portal.model.beans.UserExperimentRoleFacade;
import gov.anl.aps.dm.portal.model.beans.UserInfoFacade;
import gov.anl.aps.dm.portal.model.entities.Experiment;
import gov.anl.aps.dm.portal.model.entities.RoleType;
import gov.anl.aps.dm.portal.model.entities.UserInfo;
import gov.anl.aps.dm.portal.model.tempstorage.ExperimentUser;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.enterprise.context.SessionScoped;
......@@ -26,32 +31,101 @@ public class ExperimentUsersController implements Serializable {
@EJB
private UserExperimentRoleFacade userExperimentRoleFacade;
@EJB
private UserInfoFacade userInfoFacade;
@EJB
private RoleTypeFacade roleTypeFacade;
public ExperimentUsersController() {
this.experimentUsersTable = new ExperimentUsersTable();
}
class ExperimentUsersTable extends DataTableController<UserInfo> {
class ExperimentUsersTable extends DataTableController<ExperimentUser> {
// @Override
// public String getClassName() {
// return "UserInfo";
// }
//
// @Override
// public List<UserInfo> findAll() {
// try {
// return userInfoFacade.findUsersInExperiment(experiment.getId());
// } catch (NumberFormatException e) {
// return null;
// }
// }
@Override
public String getEntityTypeName() {
return "UserInfo";
public String getClassName() {
return "ExperimentUser";
}
@Override
public List<UserInfo> findAll() {
// find all users in experiment
return null;
public List<ExperimentUser> findAll() {
experimentUsers.clear();
try {
List<UserInfo> list = userInfoFacade.findUsersInExperiment(experiment.getId());
convertExperimentUsers(list);
return experimentUsers;
} catch (NumberFormatException e) {
return null;
}
}
void convertExperimentUsers(List<UserInfo> list) {
List<RoleType> roleTypes = roleTypeFacade.findByRoleSystemType(false);
generateColumns(roleTypes);
for (UserInfo user : list) {
ExperimentUser eUser = new ExperimentUser();
eUser.setUsername(user.getUsername());
eUser.setName(user.getLastName() + ", " + user.getFirstName());
for (RoleType roleType : roleTypes) {
eUser.setIsInRole(roleType, user.inRole(roleType.getId(), experiment.getId()));
}
experimentUsers.add(eUser);
}
}
}
static class ColumnModel implements Serializable {
private String header;
private int property;
public ColumnModel(String header, int property) {
this.header = header;
this.property = property;
}
public String getHeader() {
return header;
}
public int getProperty() {
return property;
}
}
private ExperimentUsersTable experimentUsersTable;
private Experiment experiment;
private List<ExperimentUser> experimentUsers = new ArrayList<>();
private List<ColumnModel> columns;
public List<ColumnModel> getColumns() {
return columns;
}
public void setColumns(List<ColumnModel> columns) {
this.columns = columns;
}
public Experiment getExperiment() {
return experiment;
}
public void setExperiment(Experiment experiment) {
experimentUsersTable.resetList();
this.experiment = experiment;
}
......@@ -63,44 +137,53 @@ public class ExperimentUsersController implements Serializable {
this.experimentUsersTable = experimentUsersTable;
}
public String getCurrentEntityInstanceName() {
return null;
}
public String remove() {
return null;
}
public boolean canRemove(String removerUsername, UserInfo removee) {
return false;
}
public boolean canAddUsers(String username) {
return true;
}
public boolean isManager(String userId) {
return true;
void generateColumns(List<RoleType> roleTypes) {
for (RoleType role : roleTypes) {
ColumnModel column = new ColumnModel(role.getName(), role.getId());
columns.add(column);
}
}
public boolean isPI(String userId) {
return true;
}
// public boolean getIsInRole() {
//
// }
//
// public void setIsInRole(boolean inRole)
//
public boolean isUser(String userId) {
return true;
}
public boolean canAssignManager(String userId) {
return true;
}
public boolean canAssignPI(String userId) {
return true;
}
public boolean canAssignUser(String userId) {
return true;
}
// public String getCurrentEntityInstanceName() {
// return null;
// }
//
// public String remove() {
// return null;
// }
//
// public boolean canRemove(String removerUsername, UserInfo removee) {
// return false;
// }
//
// public boolean canAddUsers(String username) {
// return true;
// }
//
// public void setIsInRole(int roleId, String userId) {
//
// }
//
// public boolean canAssignManager(String userId) {
// return true;
// }
//
// public boolean canAssignPI(String userId) {
// return true;
// }
//
// public boolean canAssignUser(String userId) {
// return true;
// }
}
......@@ -95,13 +95,13 @@ public class LoginController implements Serializable
public String login() {
loggedIn = false;
if (username == null || password == null || username.isEmpty() || password.isEmpty()) {
SessionUtility.addWarningMessage("Incomplete Input", "Please enter both username and password.");
return (username = password = null);
SessionUtility.addWarningMessage(null, "Incomplete Input. Please enter both username and password.");
return (username = password = null);
}
user = userInfoFacade.findByUsername(username);
if (user == null) {
SessionUtility.addErrorMessage("Unknown User", "Username " + username + " is not registered. Contact administrator.");
SessionUtility.addErrorMessage(null, "Username " + username + " is not registered. Contact administrator.");
return (username = password = null);
}
......@@ -115,7 +115,7 @@ public class LoginController implements Serializable
validCredentials = true;
}
else {
logger.debug("User " + username + " is not authorized");
logger.debug("User " + username + " is not authorized.");
}
if (validCredentials) {
......@@ -126,7 +126,8 @@ public class LoginController implements Serializable
return getLandingPage();
}
else {
SessionUtility.addErrorMessage("Invalid Credentials", "Username/password combination could not be verified.");
SessionUtility.addErrorMessage(null, "Invalid Credentials. Username/password combination could not be verified.");
SessionUtility.addErrorMessage(null, "If you are having difficulty logging in, please see our <a href=\"http://www.anl.gov/employees/working-remotely/login-help\">Login Help</a> page.");
return (username = password = null);
}
......
......@@ -5,7 +5,6 @@ import gov.anl.aps.dm.portal.exceptions.MissingProperty;
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 java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.enterprise.context.SessionScoped;
......
......@@ -37,7 +37,7 @@ public class UserSystemRoleController implements Serializable
class SystemRoleTypeTable extends DataTableController<UserInfo> {
@Override
public String getEntityTypeName() {
public String getClassName() {
return "UserInfo";
}
......@@ -55,7 +55,7 @@ public class UserSystemRoleController implements Serializable
class NoSystemRoleTypeTable extends DataTableController<UserInfo> {
@Override
public String getEntityTypeName() {
public String getClassName() {
return "UserInfo";
}
......
......@@ -57,4 +57,14 @@ public class RoleTypeFacade extends AbstractFacade<RoleType>
return findByName(name) != null;
}
public List<RoleType> findByRoleSystemType(boolean systemType) {
try {
return (List<RoleType>) em.createNamedQuery("RoleType.findByRoleSystemType")
.setParameter("systemType", systemType)
.getResultList();
} catch (NoResultException ex) {
}
return null;
}
}
......@@ -68,4 +68,15 @@ public class UserInfoFacade extends AbstractFacade<UserInfo>
}
return null;
}
public List<UserInfo> findUsersInExperiment(int experimentId) {
try {
return (List<UserInfo>) em.createNamedQuery("UserInfo.findUsersInExperiment")
.setParameter("experimentId", experimentId)
.getResultList();
} catch (NoResultException ex) {
}
return null;
}
}
......@@ -38,7 +38,9 @@ import javax.xml.bind.annotation.XmlTransient;
@NamedQuery(name = "RoleType.findAll", query = "SELECT r FROM RoleType r"),
@NamedQuery(name = "RoleType.findById", query = "SELECT r FROM RoleType r WHERE r.id = :id"),
@NamedQuery(name = "RoleType.findByName", query = "SELECT r FROM RoleType r WHERE r.name = :name"),
@NamedQuery(name = "RoleType.findByDescription", query = "SELECT r FROM RoleType r WHERE r.description = :description")})
@NamedQuery(name = "RoleType.findByDescription", query = "SELECT r FROM RoleType r WHERE r.description = :description"),
@NamedQuery(name = "RoleType.findByRoleSystemType", query = "SELECT r FROM RoleType r WHERE r.isSystemRole = :systemType")})
public class RoleType extends CloneableEntity
{
@Id
......
......@@ -42,7 +42,8 @@ import javax.xml.bind.annotation.XmlTransient;
@NamedQuery(name = "UserInfo.findByDescription", query = "SELECT u FROM UserInfo u WHERE u.description = :description"),
@NamedQuery(name = "UserInfo.findByPassword", query = "SELECT u FROM UserInfo u WHERE u.password = :password"),
@NamedQuery(name = "UserInfo.findNonAdmins", query = "SELECT u FROM UserInfo u WHERE u.id NOT IN (SELECT u2.id from UserInfo u2 JOIN u2.roleTypeList rt WHERE rt.id = :roleTypeId)"),
@NamedQuery(name = "UserInfo.findUsersInRole", query = "SELECT u FROM UserInfo u WHERE u.id IN (SELECT u2.id from UserInfo u2 JOIN u2.roleTypeList rt WHERE rt.id = :roleTypeId)")})
@NamedQuery(name = "UserInfo.findUsersInRole", query = "SELECT u FROM UserInfo u WHERE u.id IN (SELECT u2.id from UserInfo u2 JOIN u2.roleTypeList rt WHERE rt.id = :roleTypeId)"),
@NamedQuery(name = "UserInfo.findUsersInExperiment", query = "SELECT DISTINCT u FROM UserInfo u WHERE u.id IN (SELECT u2.id from UserInfo u2 JOIN u2.userExperimentRoleList r WHERE r.experiment.id = :experimentId)")})
public class UserInfo extends CloneableEntity
{
......@@ -190,6 +191,14 @@ public class UserInfo extends CloneableEntity
public void setUserSettingList(List<UserSetting> userSettingList) {
this.userSettingList = userSettingList;
}
public boolean inRole(int roleId, int experimentId) {
for (UserExperimentRole experimentRole : userExperimentRoleList) {
if ((experimentRole.getUserExperimentRolePK().getRoleTypeId() == roleId) && (experimentRole.getUserExperimentRolePK().getExperimentId() == experimentId))
return true;
}
return false;
}
@Override
public int hashCode() {
......
package gov.anl.aps.dm.portal.model.tempstorage;
import gov.anl.aps.dm.portal.model.entities.CloneableEntity;
import gov.anl.aps.dm.portal.model.entities.RoleType;
import java.util.HashMap;
import java.util.Map;
/**
*
* @author bfrosik
*/
public class ExperimentUser extends CloneableEntity {
String username;
String name;
Map<RoleType, Boolean> roles = new HashMap();
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void setIsInRole(RoleType role, boolean isInRole) {
roles.put(role, isInRole);
}
}
......@@ -68,6 +68,9 @@ a:link:hover, a:visited:hover {
font-weight: normal;
vertical-align: central;
margin-top: 100px;
background-color: #f2f4f7;
color: saddlebrown;
size: auto;
}
.topLeftContent {
......
......@@ -333,13 +333,6 @@ h1 {
vertical-align: middle;
}
/*.homePage {
background-image: url(../../resources/images/ApsStorageRing.png);
background-repeat: no-repeat;
background-position: center;
background-size: auto 100%;
}*/
.pageTitle h1 {
font-family: Arial, "Arial CE", "Lucida Grande CE", lucida, "Helvetica CE", sans-serif;
font-size: 20px;
......@@ -435,4 +428,24 @@ h2 {
background-image: url(../../resources/images/pdf.ico) !important;
background-repeat: no-repeat;
background-position: left
}
.ui-datatable-resizable {
table-layout: auto !important;
}
.ui-datatable {
table-layout: auto !important;
}
.ui-datatable-scrollable {
table-layout: fixed !important;
}
.ui-datatable table, .ui-datatable-resizable table {
table-layout: auto !important;
}
.ui-datatable-scrollable table {
table-layout: fixed !important;
}
\ No newline at end of file
......@@ -74,7 +74,7 @@
<ui:insert name="middleLeft">
</ui:insert>
</div>
<div>
<div id="middleRight" class="middleRightContent">
<ui:insert name="middleRight">
</ui:insert>
......@@ -83,7 +83,7 @@
<ui:insert name="middleCenter">
</ui:insert>
</div>
</div>
</div>
</ui:fragment>
......
......@@ -20,7 +20,7 @@
<p/>
<div class="actionButton">
<p:commandButton action="#{experimentController.update()}" value="Save" alt="Save" icon="ui-icon-check" update="@form"/>
<p:commandButton action="#{experimentController.prepareList()}" immediate="true" value="Done" alt="Done" icon="ui-icon-arrowreturnthick-1-w"/>
<p:commandButton action="#{experimentController.prepareList()}" immediate="true" value="Return" alt="Return" icon="ui-icon-arrowreturnthick-1-w"/>
</div>
</div>
......
......@@ -19,13 +19,14 @@
<f:selectItems value="#{experimentTypeController.getAvailableItems()}"
var="experimentType"
itemValue="#{experimentType}"
itemLabel="#{experimentType.name}"/>
itemLabel="#{experimentType.name}"
itemDescription="#{experimentType.description}" />
</p:selectOneMenu>
<h:outputLabel for="description" value="Description" styleClass="entityDataLabel"/>
<h:inputText id="description" value="#{experimentObject.description}" title="Description" styleClass="entityDataText"/>
<h:outputLabel for="startDate" value="Start Date" styleClass="entityDataLabel"/>
<h:outputLabel for="startDate" value="Start Date"/>
<p:calendar id="startDate" value="#{experimentObject.startDate}" mode="popup" showOn="button" />
<h:outputLabel for="endDate" value="End Date" />
......
......@@ -14,16 +14,14 @@
<h:outputLabel for="name" value="Name" styleClass="entityDataEmphasizedLabel"/>
<h:inputText id="name" value="#{experimentObject.name}" title="Name" styleClass="entityDataEmphasizedText"/>
<h:outputLabel for="id" value="Id" styleClass="entityDataLabel"/>
<h:outputText id="id" value="#{experimentObject.id}" title="Id" styleClass="entityDataText"/>
<h:outputLabel for="experimentType" value="Experiment Type" styleClass="entityDataLabel"/>
<p:selectOneMenu id="experimentType" value="#{experimentObject.experimentType}" styleClass="entityDataText">
<f:selectItem itemLabel="Select Type" itemValue="" noSelectionOption="true" />
<f:selectItems value="#{experimentTypeController.getAvailableItems()}"
var="experimentType"
itemValue="#{experimentType}"
itemLabel="#{experimentType.name}"/>
itemLabel="#{experimentType.name}"
itemDescription="#{experimentType.description}"/>
</p:selectOneMenu>
<h:outputLabel for="description" value="Description" styleClass="entityDataLabel"/>
......
......@@ -18,17 +18,17 @@
widgetVar="experimentListWidget"
emptyMessage="No experiments found.">
<p:column sortBy="#{experimentObject.id}" headerText="Id" width="40">
<p:column sortBy="#{experimentObject.id}" headerText="Id" >
<h:outputText value="#{experimentObject.id}"/>
</p:column>
<p:column sortBy="#{experimentObject.name}" headerText="Name"
filterBy="#{experimentObject.name}" filterMatchMode="contains" width="120">
filterBy="#{experimentObject.name}" filterMatchMode="contains" >
<h:outputText value="#{experimentObject.name}"/>
</p:column>
<p:column sortBy="#{experimentObject.experimentType.name}" headerText="Type"
filterBy="#{experimentObject.experimentType.name}" filterMatchMode="exact" width="120">
filterBy="#{experimentObject.experimentType.name}" filterMatchMode="exact" >
<h:outputText value="#{experimentObject.experimentType.name}"/>
</p:column>
......@@ -38,7 +38,7 @@
</p:column>
<p:column sortBy="#{experimentObject.startDate}" headerText="Start Date"
filterBy="#{experimentObject.startDate}" filterMatchMode="contains" width="120">
filterBy="#{experimentObject.startDate}" filterMatchMode="contains" >
<h:outputText value="#{experimentObject.startDate}">
<f:convertDateTime pattern="#{resources.DatePattern}" type="date" />
......@@ -46,17 +46,18 @@
</p:column>
<p:column sortBy="#{experimentObject.endDate}" headerText="End Date"
filterBy="#{experimentObject.endDate}" filterMatchMode="contains" width="120">
filterBy="#{experimentObject.endDate}" filterMatchMode="contains" >
<h:outputText value="#{experimentObject.endDate}">
<f:convertDateTime pattern="#{resources.DatePattern}" type="date" />
</h:outputText>
</p:column>
<p:column headerText="Actions" width="70">
<p:column headerText="Actions" >
<div class="actionLink">
<p:commandLink action="#{experimentController.prepareView(experimentObject)}" styleClass="ui-icon ui-icon-info" title="View">
<f:setPropertyActionListener value="#{experimentObject}" target="#{experimentUsersController.experiment}"/>
<f:setPropertyActionListener value="#{experimentObject}" target="#{experimentController.current}"/>
</p:commandLink>
<p:commandLink action="#{experimentController.prepareEdit(experimentObject)}" rendered="#{loginController.loggedIn}" styleClass="ui-icon ui-icon-pencil" title="Edit"/>
<p:commandLink oncomplete="PF('experimentDestroyDialogWidget').show()" rendered="#{loginController.loggedIn}" styleClass="ui-icon ui-icon-trash" title="Delete" update="@form">
......
......@@ -7,61 +7,68 @@
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
<div class="actionButton">
<p:commandButton id="experimentUserAddButton" value="Add" rendered="#{experimentUsersController.canAddUsers(loginController.username)}" icon="ui-icon-plus" >
<p:tooltip for="experimentUserAddButton" value="Add new Users."/>
</p:commandButton>
<p:commandButton id="experimentUserAddButton" value="Add" rendered="#{experimentUsersController.canAddUsers(loginController.username)}" icon="ui-icon-plus" >
<p:tooltip for="experimentUserAddButton" value="Add new Users." />
</p:commandButton>
<p:commandButton id="ResetFiltersButton" action="#{experimentUsersController.experimentUsersTable.resetList()}" alt="Clear Filters" icon="ui-icon-refresh" styleClass="actionButtonRight" oncomplete="PF('experimentUsersListWidget').clearFilters()" update="experimentUsersListDataTable">
<p:tooltip for="ResetFiltersButton" value="Reset filters."/>
</p:commandButton>
<p:dataTable id="experimentUsersListDataTable"
var="experimentUserObject"
value="#{experimentUsersController.experimentUsersTable.listDataModel}"
filteredValue="#{experimentUsersController.experimentUsersTable.filteredObjectList}"
paginator="true"
paginatorAlwaysVisible="false"
rows="25"
binding="#{experimentUsersController.experimentUsersTable.listDataTable}"
widgetVar="experimentUsersListWidget"
emptyMessage="No users found.">
<p:column sortBy="#{experimentUserObject.username}" headerText="Username"
filterBy="#{experimentUserObject.username}" filterMatchMode="contains" >
<h:outputText value="#{experimentUserObject.username}"/>
</p:column>
<p:column sortBy="#{experimentUserObject.name}" headerText="Last, First Name"
filterBy="#{experimentUserObject.name}" filterMatchMode="contains" >
<h:outputText value="#{experimentUserObject.name}"/>
</p:column>
<p:commandButton id="ResetFiltersButton" action="#{experimentUsersController.experimentUsersTable.resetFilterList()}" alt="Clear Filters" icon="ui-icon-refresh" styleClass="actionButtonRight">
<p:tooltip for="ResetFiltersButton" value="Reset list filters."/>
</p:commandButton>
</div>
<p:dataTable id="experimentUsersListDataTable"
var="experimentUserObject"
value="#{experimentUsersController.experimentUsersTable.listDataModel}"
filteredValue="#{experimentUsersController.experimentUsersTable.filteredObjectList}"
paginator="true"
paginatorAlwaysVisible="false"
rows="25"
binding="#{experimentUsersController.experimentUsersTable.listDataTable}"
widgetVar="experimentUsersListWidget"
emptyMessage="No users found.">
<p:column sortBy="#{experimentUserObject.username}" headerText="Username"
filterBy="#{experimentUserObject.username}" filterMatchMode="contains" width="100">
<h:outputText value="#{experimentUserObject.username}"/>
</p:column>
<p:column sortBy="#{experimentUserObject.lastName}, #{experimentUserObject.firstName}" headerText="Last, First Name"
filterBy="#{experimentUserObject.lastName}, #{experimentUserObject.firstName}" filterMatchMode="contains" width="120">
<h:outputText value="#{experimentUserObject.lastName}, #{experimentUserObject.firstName}"/>
</p:column>
<p:column headerText="Manager" width="40">
<p:selectBooleanCheckbox value="#{experimentUsersController.isManager(experimentUserObject.id)}" rendered="#{experimentUserObject.canAssignManager(loginController.username)}" />
</p:column>
<p:column headerText="PI" width="40">
<p:selectBooleanCheckbox value="#{experimentUsersController.isPI(experimentUserObject.id)}" rendered="#{experimentUserObject.canAssignPI(loginController.username)}" />
</p:column>
<p:column headerText="User" width="40">
<p:selectBooleanCheckbox value="#{experimentUsersController.isUser(experimentUserObject.id)}" rendered="#{experimentUserObject.canAssignUser(loginController.username)}" />
</p:column>
<p:column headerText="Actions" width="40">
<div class="actionLink" >
<p:commandLink oncomplete="PF('experimentUserRemoveDialogWidget').show()" rendered="#{experimentUsersController.canRemove(loginController.username, experimentUserObject)}" styleClass="ui-icon ui-icon-trash" title="Remove" update="@form" >
<f:setPropertyActionListener value="#{experimentUserObject}" target="#{experimentUsersController.experimentUsersTable.current}" />
</p:commandLink>
</div>
</p:column>
</p:dataTable>
<p:columns value="#{experimentUsersController.columns}" var="column">
<f:facet name=header">
<h:outputText value="#{column.header}" />
</f:facet>
<p:selectBooleanCheckbox value="#{experimentUsersController.isManager(experimentUserObject.id)}" rendered="true" />
</p:columns>
<!-- <p:column headerText="Manager" >
<p:selectBooleanCheckbox value="#{experimentUsersController.isManager(experimentUserObject.id)}" rendered="true" />
</p:column>
<p:column headerText="PI" >
<p:selectBooleanCheckbox value="#{experimentUsersController.isPI(experimentUserObject.id)}" rendered="true" />
</p:column>
<p:column headerText="User" >
<p:selectBooleanCheckbox value="#{experimentUsersController.isUser(experimentUserObject.id)}" rendered="true" />
</p:column>-->
<p:column headerText="Actions" >
<div class="actionLink" >
<p:commandLink oncomplete="PF('experimentUserRemoveDialogWidget').show()" rendered="true" styleClass="ui-icon ui-icon-trash" title="Remove" update="@form" >
<f:setPropertyActionListener value="#{experimentUserObject}" target="#{experimentUsersController.experimentUsersTable.current}" />
</p:commandLink>
</div>
</p:column>
</p:dataTable>
</ui:composition>
......@@ -13,9 +13,6 @@
<h:outputLabel for="name" value="Name" styleClass="entityDataEmphasizedLabel"/>
<h:outputText id="name" value="#{experimentObject.name}" title="Name" styleClass="entityDataEmphasizedText"/>
<h:outputLabel for="id" value="Id" styleClass="entityDataLabel"/>
<h:outputText id="id" value="#{experimentObject.id}" title="Id" styleClass="entityDataText"/>
<h:outputLabel for="experimentType" value="Type" styleClass="entityDataLabel"/>
<h:outputText id="experimentType" value="#{experimentObject.experimentType.name}" title="Name" styleClass="entityDataText"/>
......
......@@ -10,40 +10,34 @@
<ui:define name="middleCenter">
<h:form id="viewExperimentForm">
<div class="middleCenterLeftContent">
<div class="pageTitle">
<h1>Experiment Details</h1>
</div>
<ui:include src="experimentViewPanelGrid.xhtml"/>
<p/>
<c:set var="experimentObject" value="#{experimentController.selected}"/>
<c:set var="isEntityWriteable" value="#{loginController.loggedIn}"/>
<div class="actionButton">
<p:commandButton action="#{experimentController.prepareEdit(experimentObject)}" rendered="#{isEntityWriteable}" value="Edit" alt="Edit" icon="ui-icon-pencil"/>
<p:commandButton onclick="PF('experimentDestroyDialogWidget').show();" rendered="#{loginController.loggedIn}" value="Delete" alt="Delete" icon="ui-icon-trash">
<f:setPropertyActionListener value="#{experimentObject}" target="#{experimentController.current}"/>
</p:commandButton>
<p:commandButton action="#{experimentController.prepareList()}" value="Done" alt="Done" icon="ui-icon-arrowreturnthick-1-w"/>
</div>
<ui:include src="experimentDestroyDialog.xhtml"/>
<p/>
<h2>Experiment Users</h2>
<p/>
<ui:include src="experimentUsersListDataTable.xhtml"/>
<div class="pageTitle">
<h1>Experiment Details</h1>
</div>
</h:form>
<p:accordionPanel multiple="true">
<p:tab title="Experiment Properties">
<div class="middleCenterLeftContent">
<ui:include src="experimentViewPanelGrid.xhtml"/>
</div>
</p:tab>
</ui:define>
<p:tab title="Experiment Users">
<ui:include src="experimentUsersListDataTable.xhtml"/>
</p:tab>
</p:accordionPanel>
<p/>
<div class="actionButton">
<p:commandButton action="#{experimentController.prepareEdit(experimentObject)}" rendered="#{loginController.loggedIn}" value="Edit" alt="Edit" icon="ui-icon-pencil"/>
<p:commandButton onclick="PF('experimentDestroyDialogWidget').show();" rendered="#{loginController.loggedIn}" value="Delete" alt="Delete" icon="ui-icon-trash"/>
<p:commandButton action="#{experimentController.prepareList()}" value="Return" alt="Return" icon="ui-icon-arrowreturnthick-1-w"/>
</div>
<ui:include src="experimentDestroyDialog.xhtml"/>
</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