From 25127f7969478cad540ab0dc3099223d0e8cc5a6 Mon Sep 17 00:00:00 2001 From: "Barbara B. Frosik" <bfrosik@aps.anl.gov> Date: Mon, 23 Mar 2015 21:12:23 +0000 Subject: [PATCH] --- .../controllers/ExperimentController.java | 496 +++++++++++------- .../controllers/ExperimentTypeController.java | 8 +- .../controllers/PolicyPropertyController.java | 6 +- .../controllers/PolicyTypeController.java | 4 + .../controllers/RoleTypeController.java | 6 +- .../controllers/UserInfoController.java | 10 +- .../controllers/UserSystemRoleController.java | 1 + .../ExperimentPolicyPropertyValueFacade.java | 3 +- .../dm/portal/model/entities/Experiment.java | 4 +- .../portal/model/entities/PolicyProperty.java | 2 +- .../dm/portal/model/entities/UserInfo.java | 2 +- .../DmWebPortal/src/java/resources.properties | 2 +- .../web/resources/js/common/noBack.js | 2 + .../web/templates/dmViewTemplate.xhtml | 2 +- .../web/views/allowedPolicyValue/create.xhtml | 4 +- .../web/views/experiment/create.xhtml | 4 +- .../web/views/experiment/edit.xhtml | 3 + .../experimentCreatePanelGrid.xhtml | 4 +- .../experiment/experimentEditPanelGrid.xhtml | 4 +- .../experimentPoliciesEditSelection.xhtml | 11 +- .../experimentPolicyAddDialog.xhtml | 70 ++- .../experimentPolicyRemoveDialog.xhtml | 2 +- .../web/views/experiment/list.xhtml | 4 +- .../web/views/experiment/view.xhtml | 4 + .../web/views/experimentType/create.xhtml | 4 +- .../web/views/experimentType/edit.xhtml | 5 +- .../web/views/experimentType/list.xhtml | 2 + .../web/views/experimentType/view.xhtml | 3 + src/java/DmWebPortal/web/views/home.xhtml | 2 + .../DmWebPortal/web/views/loginHelp.xhtml | 2 +- .../web/views/policyProperty/create.xhtml | 4 +- .../web/views/policyProperty/edit.xhtml | 3 + .../web/views/policyProperty/view.xhtml | 4 + .../web/views/policyType/edit.xhtml | 3 + .../web/views/policyType/list.xhtml | 2 + .../web/views/policyType/view.xhtml | 3 + .../DmWebPortal/web/views/roleType/edit.xhtml | 3 + .../DmWebPortal/web/views/roleType/list.xhtml | 2 + .../DmWebPortal/web/views/roleType/view.xhtml | 3 + .../web/views/userInfo/create.xhtml | 2 + .../DmWebPortal/web/views/userInfo/edit.xhtml | 7 +- .../DmWebPortal/web/views/userInfo/list.xhtml | 2 + .../DmWebPortal/web/views/userInfo/view.xhtml | 3 + .../web/views/userSystemRole/list.xhtml | 2 + 44 files changed, 458 insertions(+), 261 deletions(-) create mode 100644 src/java/DmWebPortal/web/resources/js/common/noBack.js diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentController.java index 0f8d6130..3f5ed5e5 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentController.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentController.java @@ -24,6 +24,7 @@ import gov.anl.aps.dm.portal.model.entities.UserExperimentRole; import gov.anl.aps.dm.portal.model.entities.UserInfo; import gov.anl.aps.dm.portal.utilities.SessionUtility; import java.util.ArrayList; +import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -42,7 +43,6 @@ import org.apache.log4j.Logger; @SessionScoped public class ExperimentController extends CrudEntityController<Experiment, ExperimentFacade> { - private static final Logger logger = Logger.getLogger(ExperimentController.class.getName()); @EJB @@ -134,7 +134,7 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper public boolean[] getRoles() { return userRoles; } - + @Override public int hashCode() { return user.getId() + experimentId * 100; @@ -177,7 +177,7 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper experimentUsers.put(user, experimentUser); } for (RoleType roleType : experimentRoles.values()) { - boolean inRole = (user.getExperimetRole(roleType.getId(), getCurrent().getId()) != null); + boolean inRole = (user.getExperimentRole(roleType.getId(), getCurrent().getId()) != null); experimentUser.setIsInRole(roleType, inRole); } } @@ -213,6 +213,12 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper @SessionScoped class ExperimentPolicyTable extends DataTableController<ExperimentPolicy> { + boolean forEdit; + + ExperimentPolicyTable(boolean forEdit) { + this.forEdit = forEdit; + } + @Override public String getClassName() { return "ExperimentPolicy"; @@ -222,6 +228,14 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper public List<ExperimentPolicy> findAll() { resetList(); List<ExperimentPolicy> experimentPolicies = experimentPolicyFacade.findByExperimentId(current.getId()); + if (forEdit) { + experimentPropertiesMap.clear(); + for (ExperimentPolicy experimentPolicy : experimentPolicies) { + for (ExperimentPolicyPropertyValue experimentPolicyPropertyValue : experimentPolicy.getExperimentPolicyPropertyValueList()) { + experimentPropertiesMap.put(experimentPolicyPropertyValue.getId(), experimentPolicyPropertyValue.getPolicyPropertyValue()); + } + } + } return experimentPolicies; } @@ -230,8 +244,9 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper return "experimentPolicyTable"; } } - - class PolicyPropertyValue extends CloneableEntity { + + public class PolicyPropertyValue extends CloneableEntity { + private PolicyProperty policyProperty; private String value; @@ -249,104 +264,104 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper public void setValue(String value) { this.value = value; - } - } - - @SessionScoped - class NoPolicyValueTable extends DataTableController<PolicyType> { + } - List<PolicyPropertyValue> [] noPropertyList; - - NoPolicyValueTable() { -// noPropertyList = new ArrayList[policyTypes.size() + 1]; // add 1 so the index is policyTypeId - // TODO need to replace the number with constant temporary for testing - noPropertyList = new ArrayList[3]; - for (int i=0; i<noPropertyList.length; i++) { - noPropertyList[i] = new ArrayList(); - } + public boolean hasAllowedValues() { + return (policyProperty.getAllowedPolicyValueList() != null) && (policyProperty.getAllowedPolicyValueList().size() > 0); } - - void clear() { - for (List<PolicyPropertyValue> list : noPropertyList) { - list.clear(); - } + + public int getId() { + return policyProperty.getId(); } - - public List<PolicyPropertyValue> getNoPropertyList(int policyTypeId) { - return noPropertyList[policyTypeId]; + } + + public class MissingPolicyType extends CloneableEntity { + + private List<PolicyPropertyValue> noPropertyList = new ArrayList<>(); + private final int id; + private final String name; + + MissingPolicyType(int id, String name) { + this.id = id; + this.name = name; } - - @Override - public String getClassName() { - return "PolicyType"; + + public List<PolicyPropertyValue> getNoPropertyList() { + return noPropertyList; } - @Override - public List<PolicyType> findAll() { - resetList(); - clear(); - List<PolicyType> noPolicyTypes = new ArrayList<>(); - for (PolicyType policyType : policyTypes.values()) { - fillMissingProperties(policyType); - if (!noPropertyList[policyType.getId()].isEmpty()) { - noPolicyTypes.add(policyType); - } - } + public void setNoPropertyList(List<PolicyPropertyValue> noPropertyList) { + this.noPropertyList = noPropertyList; + } - return noPolicyTypes; + public int getId() { + return id; } - - private void fillMissingProperties(PolicyType policyType) { - List<ExperimentPolicy> experimentPolicies = current.getExperimentPolicyList(); - ExperimentPolicy theExperimentPolicy = null; - for (ExperimentPolicy experimentPolicy : experimentPolicies) { - if (experimentPolicy.getPolicyType().getId() == policyType.getId()) { - theExperimentPolicy = experimentPolicy; - } - } - - for (PolicyProperty policyProperty : policyType.getPolicyPropertyList()) { - if ((theExperimentPolicy == null) || (!hasProperty(theExperimentPolicy, policyProperty))) { - PolicyPropertyValue policyPropertyValue = new PolicyPropertyValue(); - policyPropertyValue.policyProperty = policyProperty; - policyPropertyValue.value = policyProperty.getDefaultValue(); - noPropertyList[policyType.getId()].add(policyPropertyValue); - } - } + + public String getName() { + return name; } - - private boolean hasProperty(ExperimentPolicy experimentPolicy, PolicyProperty policyProperty) { - for (ExperimentPolicyPropertyValue ExperimentPolicyPropertyValue : experimentPolicy.getExperimentPolicyPropertyValueList()) { - if (ExperimentPolicyPropertyValue.getPolicyProperty().equals(policyProperty)) { - return true; - } - } - return false; + + protected void clear() { + noPropertyList.clear(); } + protected boolean isEmpty() { + return noPropertyList.isEmpty(); + } } + + @SessionScoped + public class NoPolicyValueTable extends DataTableController<PolicyPropertyValue> { + + NoPolicyValueTable() { + } + + @Override + public String getClassName() { + return "PolicyPropertyValue"; + } + + @Override + public List<PolicyPropertyValue> findAll() { + setMissingProperties(experimentPolicyFacade.findByExperimentId(current.getId()), policyTypeFacade.findAll()); + List<PolicyPropertyValue> missingProperties = new ArrayList<>(); + for (MissingPolicyType missingPolicyType : missingPolicyTypes) { + missingProperties.addAll(missingPolicyType.getNoPropertyList()); + } + return missingProperties; + } + } private final int rows = 25; private ExperimentPolicyPropertyValue experimentPropertyToDelete; - private ExperimentController.ExperimentUsersTable experimentUsersListTable = new ExperimentController.ExperimentUsersTable(); private ExperimentController.ExperimentUsersTable experimentUsersEditTable = new ExperimentController.ExperimentUsersTable(); private ExperimentController.NoExperimentUsersTypeTable noExperimentUsersTypeTable = new ExperimentController.NoExperimentUsersTypeTable(); - private ExperimentController.ExperimentPolicyTable experimentPolicyListTable = new ExperimentController.ExperimentPolicyTable(); - private ExperimentController.ExperimentPolicyTable experimentPolicyEditTable = new ExperimentController.ExperimentPolicyTable(); - private ExperimentController.NoPolicyValueTable noPolicyValueTable = new ExperimentController.NoPolicyValueTable(); - + private ExperimentController.ExperimentPolicyTable experimentPolicyListTable = new ExperimentController.ExperimentPolicyTable(false); + private ExperimentController.ExperimentPolicyTable experimentPolicyEditTable = new ExperimentController.ExperimentPolicyTable(true); + private ExperimentController.NoPolicyValueTable noPolicyValueTable = new ExperimentController.NoPolicyValueTable(); final private Map<UserInfo, ExperimentUser> experimentUsers = new HashMap<>(); final private Map<String, RoleType> experimentRoles = new HashMap<>(); - final private Map<Integer, PolicyType> policyTypes = new HashMap<>(); int maxExperimentRoleTypeId = 0; boolean initialized = false; + private List<MissingPolicyType> missingPolicyTypes = new ArrayList<>(); + private final Map<Integer, String> experimentPropertiesMap = new HashMap<>(); public ExperimentController() { } - public int getRows() { - return rows; + @Override + public void clear() { + experimentUsersListTable.resetList(); + experimentUsersEditTable.resetList(); + experimentUsers.clear(); + noExperimentUsersTypeTable.resetList(); + experimentPolicyListTable.resetList(); + missingPolicyTypes.clear(); + experimentPolicyEditTable.resetList(); + noPolicyValueTable.resetList(); + experimentPropertyToDelete = null; } @Override @@ -400,10 +415,6 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper } } } - List<PolicyType> policyTypesList = policyTypeFacade.findAll(); - for (PolicyType policyType : policyTypesList) { - policyTypes.put(policyType.getId(), policyType); - } initialized = true; } @@ -448,88 +459,6 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper } } -// the methods for Experiment User - - @Override - public void clear() { - experimentUsersListTable.resetList(); - experimentUsersEditTable.resetList(); - experimentUsers.clear(); - noExperimentUsersTypeTable.resetList(); - experimentPolicyListTable.resetList(); - experimentPolicyEditTable.resetList(); - } - - public ExperimentController.ExperimentUsersTable getExperimentUsersListTable() { - return experimentUsersListTable; - } - - public void setExperimentUsersListTable(ExperimentController.ExperimentUsersTable experimentUsersTable) { - this.experimentUsersListTable = experimentUsersTable; - } - - public ExperimentController.ExperimentUsersTable getExperimentUsersEditTable() { - return experimentUsersEditTable; - } - - public void setExperimentUsersEditTable(ExperimentController.ExperimentUsersTable experimentUsersTable) { - this.experimentUsersEditTable = experimentUsersTable; - } - - public ExperimentController.NoExperimentUsersTypeTable getNoExperimentUsersTypeTable() { - return noExperimentUsersTypeTable; - } - - public void setNoExperimentUsersTypeTable(ExperimentController.NoExperimentUsersTypeTable noExperimentUsersTypeTable) { - this.noExperimentUsersTypeTable = noExperimentUsersTypeTable; - } - - public ExperimentPolicyTable getExperimentPolicyListTable() { - return experimentPolicyListTable; - } - - public void setExperimentPolicyListTable(ExperimentPolicyTable experimentPolicyTable) { - this.experimentPolicyListTable = experimentPolicyTable; - } - - public ExperimentPolicyTable getExperimentPolicyEditTable() { - return experimentPolicyEditTable; - } - - public void setExperimentPolicyEditTable(ExperimentPolicyTable experimentPolicyEditTable) { - this.experimentPolicyEditTable = experimentPolicyEditTable; - } - - public NoPolicyValueTable getNoPolicyValueTable() { - return noPolicyValueTable; - } - - public void setNoPolicyValueTable(NoPolicyValueTable noPolicyValueTable) { - this.noPolicyValueTable = noPolicyValueTable; - } - - public ExperimentPolicyPropertyValue getExperimentPropertyToDelete() { - return experimentPropertyToDelete; - } - - public void setExperimentPropertyToDelete(ExperimentPolicyPropertyValue experimentPropertyToDelete) { - this.experimentPropertyToDelete = experimentPropertyToDelete; - } - - public void updateRemovedExperimentRoles() { - UserExperimentRole userExperimentRole; - for (UserInfo user : experimentUsers.keySet()) { - ExperimentUser experimentUser = experimentUsers.get(user); - for (RoleType roleType : experimentRoles.values()) { - int roleId = roleType.getId(); - userExperimentRole = user.getExperimetRole(roleId, experimentUser.experimentId); - if ((userExperimentRole != null ) && (!experimentUser.userRoles[roleId]) ) { - userExperimentRoleFacade.remove(userExperimentRole); - } - } - } - } - @Override public String update() { boolean updated; @@ -539,41 +468,92 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper for (RoleType roleType : experimentRoles.values()) { if (!roleType.isIsSystemRole()) { int roleId = roleType.getId(); - if (user.getExperimetRole(roleId, experimentUser.experimentId) == null) { + if (user.getExperimentRole(roleId, experimentUser.experimentId) == null) { if (experimentUser.userRoles[roleId]) { UserExperimentRole userExperimentRole = new UserExperimentRole(user.getId(), experimentUser.experimentId, roleId); user.addUserExperimentRole(userExperimentRole); updated = true; logger.debug("adding userExperimentRole " + user.getId() + " " + experimentUser.experimentId + " " + roleId); } + } else if (!experimentUser.userRoles[roleId]) { + user.removeExperimentRole(roleId, experimentUser.experimentId); + updated = true; + logger.debug("adding userExperimentRole " + user.getId() + " " + experimentUser.experimentId + " " + roleId); } - else if (!experimentUser.userRoles[roleId]) { - user.removeExperimentRole(roleId, experimentUser.experimentId); - updated = true; - logger.debug("adding userExperimentRole " + user.getId() + " " + experimentUser.experimentId + " " + roleId); - } - } - if (updated) { - userInfoFacade.edit(user); - } + } + if (updated) { + userInfoFacade.edit(user); + } } } - + Iterator<ExperimentPolicy> iterator = experimentPolicyEditTable.getListDataModel().iterator(); while (iterator.hasNext()) { - experimentPolicyFacade.edit(iterator.next()); + ExperimentPolicy experimentPolicy = iterator.next(); + for (ExperimentPolicyPropertyValue experimentPolicyPropertyValue : experimentPolicy.getExperimentPolicyPropertyValueList()) { + String oldValue = experimentPropertiesMap.get(experimentPolicyPropertyValue.getId()); + String newValue = experimentPolicyPropertyValue.getPolicyPropertyValue(); + if ((oldValue != null) && !oldValue.equals(experimentPolicyPropertyValue.getPolicyPropertyValue())) { + experimentPolicyPropertyValue.setModifiedBy(((UserInfo) SessionUtility.getUser()).getUsername()); + experimentPolicyPropertyValue.setModifiedDate(new Date()); + experimentPolicyPropertyValue.setPolicyPropertyValue(newValue); + experimentPolicyPropertyValueFacade.edit(experimentPolicyPropertyValue); + } + } } - clear(); return super.update(); } - public String updateExperimentPolicy() { - ExperimentPolicy experimentPolicy = experimentPropertyToDelete.getExperimentPolicy(); - experimentPolicy.getExperimentPolicyPropertyValueList().remove(experimentPropertyToDelete); - experimentPolicyFacade.edit(experimentPolicy); - clear(); - return "edit?faces-redirect=true"; + void setMissingProperties(List<ExperimentPolicy> experimentPolicies, List<PolicyType> policyTypes) { + for (PolicyType policyType : policyTypes) { + ExperimentPolicy theExperimentPolicy = null; + boolean missingProperties = true; + for (ExperimentPolicy experimentPolicy : experimentPolicies) { + if (experimentPolicy.getPolicyType().getId() == policyType.getId()) { + theExperimentPolicy = experimentPolicy; + if (theExperimentPolicy.getExperimentPolicyPropertyValueList().size() == policyType.getPolicyPropertyList().size()) { + missingProperties = false; + } + break; + } + } + if (missingProperties) { + MissingPolicyType missingPolicyType = new MissingPolicyType(policyType.getId(), policyType.getName()); + missingPolicyTypes.add(missingPolicyType); + for (PolicyProperty policyProperty : policyType.getPolicyPropertyList()) { + if ((theExperimentPolicy == null) || (!hasProperty(theExperimentPolicy, policyProperty))) { + PolicyPropertyValue policyPropertyValue = new PolicyPropertyValue(); + policyPropertyValue.policyProperty = policyProperty; + policyPropertyValue.value = policyProperty.getDefaultValue(); + missingPolicyType.getNoPropertyList().add(policyPropertyValue); + } + } + } + } + } + + private boolean hasProperty(ExperimentPolicy experimentPolicy, PolicyProperty policyProperty) { + for (ExperimentPolicyPropertyValue experimentPolicyPropertyValue : experimentPolicy.getExperimentPolicyPropertyValueList()) { + if (experimentPolicyPropertyValue.getPolicyProperty().equals(policyProperty)) { + return true; + } + } + return false; + } + + public void updateRemovedExperimentRoles() { + UserExperimentRole userExperimentRole; + for (UserInfo user : experimentUsers.keySet()) { + ExperimentUser experimentUser = experimentUsers.get(user); + for (RoleType roleType : experimentRoles.values()) { + int roleId = roleType.getId(); + userExperimentRole = user.getExperimentRole(roleId, experimentUser.experimentId); + if ((userExperimentRole != null ) && (!experimentUser.userRoles[roleId]) ) { + userExperimentRoleFacade.remove(userExperimentRole); + } + } + } } public String getRemovedUserName() { @@ -590,6 +570,15 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper return ""; } + public void removeUserRoles() { + ExperimentUser experimentUser = experimentUsersEditTable.getCurrentObject(); + UserInfo user = experimentUser.getUser(); + List<UserExperimentRole> roleList = user.getUserExperimentRoles(experimentUser.experimentId); + for (UserExperimentRole userExperimentRole : roleList) { + userExperimentRoleFacade.remove(userExperimentRole); + } + } + public String removeUser() { ExperimentUser experimentUser = experimentUsersEditTable.getCurrentObject(); UserInfo user = experimentUser.getUser(); @@ -608,15 +597,15 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper experimentPolicyPropertyValueFacade.remove(experimentPropertyToDelete); } - public void removeUserRoles() { - ExperimentUser experimentUser = experimentUsersEditTable.getCurrentObject(); - UserInfo user = experimentUser.getUser(); - List<UserExperimentRole> roleList = user.getUserExperimentRoles(experimentUser.experimentId); - for (UserExperimentRole userExperimentRole : roleList) { - userExperimentRoleFacade.remove(userExperimentRole); - } + public String updateRemovedExperimentPolicy() { + ExperimentPolicy experimentPolicy = experimentPropertyToDelete.getExperimentPolicy(); + experimentPropertiesMap.remove(experimentPropertyToDelete.getId()); + experimentPolicy.getExperimentPolicyPropertyValueList().remove(experimentPropertyToDelete); + experimentPolicyFacade.edit(experimentPolicy); + clear(); + return "edit?faces-redirect=true"; } - + public String addExperimentUser() { List<UserInfo> newUsers = noExperimentUsersTypeTable.getSelectedObjectList(); if (newUsers == null) { @@ -641,6 +630,55 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper } } } + + public String addExperimentPolicyPropertyValues() { + List<PolicyPropertyValue> newProperties = noPolicyValueTable.getSelectedObjectList(); + if (newProperties == null) { + logger.debug("null selected list"); + return null; + } else if (newProperties.isEmpty()) { + logger.debug("empty selected list"); + return null; + } else { + try { + ExperimentPolicyPropertyValue experimentPolicyPropertyValue; + for (PolicyPropertyValue property : newProperties) { + PolicyProperty policyProperty = property.getPolicyProperty(); + experimentPolicyPropertyValue = new ExperimentPolicyPropertyValue(); + experimentPolicyPropertyValue.setPolicyProperty(policyProperty); + experimentPolicyPropertyValue.setPolicyPropertyValue(property.getValue()); + experimentPolicyPropertyValue.setModifiedBy(((UserInfo) SessionUtility.getUser()).getUsername()); + experimentPolicyPropertyValue.setModifiedDate(new Date()); + ExperimentPolicy experimentPolicy = getOrCreateExperimentPolicy(policyProperty.getPolicyType()); + experimentPolicyPropertyValue.setExperimentPolicy(experimentPolicy); + experimentPolicy.getExperimentPolicyPropertyValueList().add(experimentPolicyPropertyValue); + } + super.update(); + current = experimentFacade.find(current.getId()); + clear(); + return "edit?faces-redirect=true"; + } catch (RuntimeException ex) { + SessionUtility.addErrorMessage("Error", "Could not update Experiment Policy" + ": " + ex.getMessage()); + return null; + } + } + } + + private ExperimentPolicy getOrCreateExperimentPolicy(PolicyType policyType) { + List<ExperimentPolicy> experimentPolicyList = current.getExperimentPolicyList(); + for (ExperimentPolicy experimentPolicy: experimentPolicyList) { + if (experimentPolicy.getPolicyType().equals(policyType)) { + return experimentPolicy; + } + } + ExperimentPolicy newExperimentPolicy = new ExperimentPolicy(); + newExperimentPolicy.setExperiment(current); + newExperimentPolicy.setPolicyType(policyType); + experimentPolicyList.add(newExperimentPolicy); + policyType.getExperimentPolicyList().add(newExperimentPolicy); + experimentPolicyFacade.create(newExperimentPolicy); + return newExperimentPolicy; + } public boolean canEditExperiment(Experiment experiment) { UserInfo logged = (UserInfo) SessionUtility.getUser(); @@ -656,7 +694,7 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper // user that is Manager or PI can edit experiment int managerRoleId = experimentRoles.get(RoleTypeName.MANAGER).getId(); int piRoleId = experimentRoles.get(RoleTypeName.PI).getId(); - return (logged.getExperimetRole(managerRoleId, experiment.getId()) != null) || (logged.getExperimetRole(piRoleId, experiment.getId()) != null); + return (logged.getExperimentRole(managerRoleId, experiment.getId()) != null) || (logged.getExperimentRole(piRoleId, experiment.getId()) != null); } public boolean isRestricted() { @@ -669,7 +707,7 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper } int managerRoleId = experimentRoles.get(RoleTypeName.MANAGER).getId(); int piRoleId = experimentRoles.get(RoleTypeName.PI).getId(); - return (logged.getExperimetRole(managerRoleId, current.getId()) == null) && (logged.getExperimetRole(piRoleId, current.getId()) == null); + return (logged.getExperimentRole(managerRoleId, current.getId()) == null) && (logged.getExperimentRole(piRoleId, current.getId()) == null); } public boolean canDeleteExperiment(Experiment experiment) { @@ -684,7 +722,7 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper initializeTables(); } int managerRoleId = experimentRoles.get(RoleTypeName.MANAGER).getId(); - return logged.getExperimetRole(managerRoleId, experiment.getId()) != null; + return logged.getExperimentRole(managerRoleId, experiment.getId()) != null; } public boolean canAddManager() { @@ -702,7 +740,79 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper } return logged.isIsManager() || logged.isIsPI(); } + + public boolean notSelected() { + return (current == null); + } + + public int getRows() { + return rows; + } + public ExperimentController.ExperimentUsersTable getExperimentUsersListTable() { + return experimentUsersListTable; + } + + public void setExperimentUsersListTable(ExperimentController.ExperimentUsersTable experimentUsersTable) { + this.experimentUsersListTable = experimentUsersTable; + } + + public ExperimentController.ExperimentUsersTable getExperimentUsersEditTable() { + return experimentUsersEditTable; + } + + public void setExperimentUsersEditTable(ExperimentController.ExperimentUsersTable experimentUsersTable) { + this.experimentUsersEditTable = experimentUsersTable; + } + + public ExperimentController.NoExperimentUsersTypeTable getNoExperimentUsersTypeTable() { + return noExperimentUsersTypeTable; + } + + public void setNoExperimentUsersTypeTable(ExperimentController.NoExperimentUsersTypeTable noExperimentUsersTypeTable) { + this.noExperimentUsersTypeTable = noExperimentUsersTypeTable; + } + + public ExperimentPolicyTable getExperimentPolicyListTable() { + return experimentPolicyListTable; + } + + public void setExperimentPolicyListTable(ExperimentPolicyTable experimentPolicyTable) { + this.experimentPolicyListTable = experimentPolicyTable; + } + + public ExperimentPolicyTable getExperimentPolicyEditTable() { + return experimentPolicyEditTable; + } + + public void setExperimentPolicyEditTable(ExperimentPolicyTable experimentPolicyEditTable) { + this.experimentPolicyEditTable = experimentPolicyEditTable; + } + + public NoPolicyValueTable getNoPolicyValueTable() { + return noPolicyValueTable; + } + + public void setNoPolicyValueTable(NoPolicyValueTable noPolicyValueTable) { + this.noPolicyValueTable = noPolicyValueTable; + } + + public List<MissingPolicyType> getMissingPolicyTypes() { + return missingPolicyTypes; + } + + public void setMissingPolicyTypes(List<MissingPolicyType> missingPolicyTypes) { + this.missingPolicyTypes = missingPolicyTypes; + } + + public ExperimentPolicyPropertyValue getExperimentPropertyToDelete() { + return experimentPropertyToDelete; + } + + public void setExperimentPropertyToDelete(ExperimentPolicyPropertyValue experimentPropertyToDelete) { + this.experimentPropertyToDelete = experimentPropertyToDelete; + } + @FacesConverter(forClass = Experiment.class) public static class ExperimentControllerConverter implements Converter { diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentTypeController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentTypeController.java index 122859bb..ad652660 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentTypeController.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentTypeController.java @@ -86,14 +86,18 @@ public class ExperimentTypeController extends CrudEntityController<ExperimentTyp } } - @Override + @Override protected String getObjectAlreadyExistMessage(ExperimentType experimentType) { if (experimentType == null) { return null; } return "Experiment Type " + experimentType.getName() + " already exists."; } - + + public boolean notSelected() { + return current == null; + } + @FacesConverter(forClass = ExperimentType.class) public static class ExperimentTypeControllerConverter implements Converter { diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/PolicyPropertyController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/PolicyPropertyController.java index 175e2e0c..5360a764 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/PolicyPropertyController.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/PolicyPropertyController.java @@ -205,7 +205,11 @@ public class PolicyPropertyController extends CrudEntityController<PolicyPropert policyPropertyFacade.edit(current); return "/views/policyProperty/edit?faces-redirect=true"; } - + + public boolean notSelected() { + return current == null; + } + @FacesConverter(forClass = PolicyProperty.class) public static class PolicyPropertyControllerConverter implements Converter { diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/PolicyTypeController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/PolicyTypeController.java index 6b11fa74..73885d59 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/PolicyTypeController.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/PolicyTypeController.java @@ -93,6 +93,10 @@ public class PolicyTypeController extends CrudEntityController<PolicyType, Polic return super.prepareView(current); } + public boolean notSelected() { + return current == null; + } + @FacesConverter(forClass = PolicyType.class) public static class PolicyTypeControllerConverter implements Converter { diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/RoleTypeController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/RoleTypeController.java index acf3f419..7f66224a 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/RoleTypeController.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/RoleTypeController.java @@ -20,7 +20,7 @@ import org.apache.log4j.Logger; public class RoleTypeController extends CrudEntityController<RoleType, RoleTypeFacade> { private static final Logger logger = Logger.getLogger(RoleTypeController.class.getName()); - private int rows = 25; + private final int rows = 25; @EJB private RoleTypeFacade roleTypeFacade; @@ -103,6 +103,10 @@ public class RoleTypeController extends CrudEntityController<RoleType, RoleTypeF return roleType.isIsSystemRole(); } + public boolean notSelected() { + return current == null; + } + @FacesConverter(forClass = RoleType.class) public static class RoleTypeControllerConverter implements Converter { diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserInfoController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserInfoController.java index 19c7335a..618efe5c 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserInfoController.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserInfoController.java @@ -31,7 +31,7 @@ import org.apache.log4j.Logger; public class UserInfoController extends CrudEntityController<UserInfo, UserInfoFacade> { private static final Logger logger = Logger.getLogger(UserInfoController.class.getName()); - private int rows = 25; + private final int rows = 25; @EJB private UserInfoFacade userInfoFacade; @@ -134,7 +134,7 @@ public class UserInfoController extends CrudEntityController<UserInfo, UserInfoF experimentUser.setDescription(experiment.getDescription()); userExperiments.add(experimentUser); for (RoleType roleType : roleTypes) { - boolean inRole = (getCurrent().getExperimetRole(roleType.getId(), experiment.getId()) != null); + boolean inRole = (getCurrent().getExperimentRole(roleType.getId(), experiment.getId()) != null); experimentUser.setIsInRole(roleType, inRole); } } @@ -297,7 +297,11 @@ public class UserInfoController extends CrudEntityController<UserInfo, UserInfoF this.passwordEntry = passwordEntry; } -@FacesConverter(forClass = UserInfo.class) + public boolean notSelected() { + return current == null; + } + + @FacesConverter(forClass = UserInfo.class) public static class UserInfoControllerConverter implements Converter { diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserSystemRoleController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserSystemRoleController.java index 07e0893e..04baac2e 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserSystemRoleController.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserSystemRoleController.java @@ -54,6 +54,7 @@ public class UserSystemRoleController implements Serializable public List<UserInfo> findAll() { return userInfoFacade.findNoSystemRoleUsers(systemRole.getId()); } + } private SystemRoleTypeTable systemRoleTable; diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/beans/ExperimentPolicyPropertyValueFacade.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/beans/ExperimentPolicyPropertyValueFacade.java index 8b8e8189..b1a539d1 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/beans/ExperimentPolicyPropertyValueFacade.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/beans/ExperimentPolicyPropertyValueFacade.java @@ -6,7 +6,6 @@ package gov.anl.aps.dm.portal.model.beans; -import gov.anl.aps.dm.portal.model.entities.ExperimentPolicy; import gov.anl.aps.dm.portal.model.entities.ExperimentPolicyPropertyValue; import java.util.List; import javax.ejb.Stateless; @@ -44,7 +43,7 @@ public class ExperimentPolicyPropertyValueFacade extends AbstractFacade<Experime } return null; } - + public List<ExperimentPolicyPropertyValue> findByExperimentPolicyId(int id) { try { return (List<ExperimentPolicyPropertyValue>) em.createNamedQuery("ExperimentPolicyPropertyValue.findByExperimentPolicyId") diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/Experiment.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/Experiment.java index 0f9281f7..7a32bc7f 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/Experiment.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/Experiment.java @@ -59,10 +59,10 @@ public class Experiment extends CloneableEntity @Column(name = "description") private String description; @Column(name = "start_date") - @Temporal(TemporalType.DATE) + @Temporal(TemporalType.TIMESTAMP) private Date startDate; @Column(name = "end_date") - @Temporal(TemporalType.DATE) + @Temporal(TemporalType.TIMESTAMP) private Date endDate; @ManyToMany(mappedBy = "experimentList") private List<DataFolder> dataFolderList; diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/PolicyProperty.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/PolicyProperty.java index dbc4f4d2..824d05f2 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/PolicyProperty.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/PolicyProperty.java @@ -70,7 +70,7 @@ public class PolicyProperty extends CloneableEntity @JoinColumn(name = "policy_type_id", referencedColumnName = "id") @ManyToOne(optional = false) private PolicyType policyType; - @OneToMany(cascade = CascadeType.ALL, mappedBy = "policyProperty") + @OneToMany(cascade = CascadeType.ALL) private List<ExperimentPolicyPropertyValue> experimentPolicyPropertyValueList; @OneToMany(cascade = CascadeType.ALL, mappedBy = "policyProperty") private List<AllowedPolicyValue> allowedPolicyValueList; diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserInfo.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserInfo.java index 5b11232e..57f5ad1e 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserInfo.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserInfo.java @@ -244,7 +244,7 @@ public class UserInfo extends CloneableEntity userExperimentRoleList.add(userExperimentRole); } - public UserExperimentRole getExperimetRole(int roleId, int experimentId) { + public UserExperimentRole getExperimentRole(int roleId, int experimentId) { for (UserExperimentRole experimentRole : userExperimentRoleList) { if ((experimentRole.getUserExperimentRolePK().getRoleTypeId() == roleId) && (experimentRole.getUserExperimentRolePK().getExperimentId() == experimentId)) return experimentRole; diff --git a/src/java/DmWebPortal/src/java/resources.properties b/src/java/DmWebPortal/src/java/resources.properties index 01b751cd..860aa890 100644 --- a/src/java/DmWebPortal/src/java/resources.properties +++ b/src/java/DmWebPortal/src/java/resources.properties @@ -1,4 +1,4 @@ -DatePattern=MM-dd-yyy +DatePattern=MM/dd/yyyy HH:mm:ss PersistenceErrorOccured=A persistence error occurred. Previous=Previous diff --git a/src/java/DmWebPortal/web/resources/js/common/noBack.js b/src/java/DmWebPortal/web/resources/js/common/noBack.js new file mode 100644 index 00000000..18b4332f --- /dev/null +++ b/src/java/DmWebPortal/web/resources/js/common/noBack.js @@ -0,0 +1,2 @@ + window.history.forward(); + diff --git a/src/java/DmWebPortal/web/templates/dmViewTemplate.xhtml b/src/java/DmWebPortal/web/templates/dmViewTemplate.xhtml index 1971d8b4..9553d6d9 100644 --- a/src/java/DmWebPortal/web/templates/dmViewTemplate.xhtml +++ b/src/java/DmWebPortal/web/templates/dmViewTemplate.xhtml @@ -11,7 +11,7 @@ <h:head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link href="/dm/resources/css/portal.css" rel="stylesheet" type="text/css" /> - <title>Data Management System Portal</title> + </h:head> <h:body> diff --git a/src/java/DmWebPortal/web/views/allowedPolicyValue/create.xhtml b/src/java/DmWebPortal/web/views/allowedPolicyValue/create.xhtml index 38542ffe..8c60655e 100644 --- a/src/java/DmWebPortal/web/views/allowedPolicyValue/create.xhtml +++ b/src/java/DmWebPortal/web/views/allowedPolicyValue/create.xhtml @@ -6,7 +6,9 @@ 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"> - + + <title>Allowed Policy Value Create</title> + <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/> <h:outputScript library="js/common" name="forwardNotAuthorized.js" rendered="#{!loginController.admin}"/> <ui:composition template="../../templates/dmViewTemplate.xhtml"> diff --git a/src/java/DmWebPortal/web/views/experiment/create.xhtml b/src/java/DmWebPortal/web/views/experiment/create.xhtml index 1a0f34da..8f7a6432 100644 --- a/src/java/DmWebPortal/web/views/experiment/create.xhtml +++ b/src/java/DmWebPortal/web/views/experiment/create.xhtml @@ -6,7 +6,9 @@ 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"> - + + <title>Experiment Create</title> + <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/> <h:outputScript library="js/common" name="forwardNotAuthorized.js" rendered="#{!loginController.admin}"/> <ui:composition template="../../templates/dmViewTemplate.xhtml"> diff --git a/src/java/DmWebPortal/web/views/experiment/edit.xhtml b/src/java/DmWebPortal/web/views/experiment/edit.xhtml index d90afbf0..d9f4da35 100644 --- a/src/java/DmWebPortal/web/views/experiment/edit.xhtml +++ b/src/java/DmWebPortal/web/views/experiment/edit.xhtml @@ -7,7 +7,10 @@ xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> + <title>Experiment Edit</title> + <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}" /> + <h:outputScript library="js/common" name="noBack.js" rendered="#{experimentController.notSelected()}" /> <h:outputScript library="js/common" name="forwardNotAuthorized.js" rendered="#{!loginController.admin and experimentController.isRestricted()}"/> <ui:composition template="../../templates/dmViewTemplate.xhtml" > diff --git a/src/java/DmWebPortal/web/views/experiment/experimentCreatePanelGrid.xhtml b/src/java/DmWebPortal/web/views/experiment/experimentCreatePanelGrid.xhtml index 6a8d48f5..a284905a 100644 --- a/src/java/DmWebPortal/web/views/experiment/experimentCreatePanelGrid.xhtml +++ b/src/java/DmWebPortal/web/views/experiment/experimentCreatePanelGrid.xhtml @@ -27,10 +27,10 @@ <h:inputText id="description" value="#{experimentObject.description}" title="Description" styleClass="entityDataText"/> <h:outputLabel for="startDate" value="Start Date"/> - <p:calendar id="startDate" value="#{experimentObject.startDate}" mode="popup" showOn="button" /> + <p:calendar id="startDate" value="#{experimentObject.startDate}" mode="popup" showOn="button" pattern="#{resources.DatePattern}" /> <h:outputLabel for="endDate" value="End Date" /> - <p:calendar id="endDate" value="#{experimentObject.endDate}" mode="popup" showOn="button" /> + <p:calendar id="endDate" value="#{experimentObject.endDate}" mode="popup" showOn="button" pattern="#{resources.DatePattern}" /> </p:panelGrid> diff --git a/src/java/DmWebPortal/web/views/experiment/experimentEditPanelGrid.xhtml b/src/java/DmWebPortal/web/views/experiment/experimentEditPanelGrid.xhtml index 6224cf4c..e0ebffb4 100644 --- a/src/java/DmWebPortal/web/views/experiment/experimentEditPanelGrid.xhtml +++ b/src/java/DmWebPortal/web/views/experiment/experimentEditPanelGrid.xhtml @@ -19,10 +19,10 @@ <h:inputText id="description" value="#{experimentObject.description}" title="Description" styleClass="entityDataText"/> <h:outputLabel for="startDate" value="Start Date" styleClass="entityDataLabel"/> - <p:calendar id="startDate" value="#{experimentObject.startDate}" mode="popup" showOn="button" /> + <p:calendar id="startDate" value="#{experimentObject.startDate}" mode="popup" showOn="button" pattern="#{resources.DatePattern}"/> <h:outputLabel for="endDate" value="End Date" styleClass="entityDataLabel"/> - <p:calendar id="endDate" value="#{experimentObject.endDate}" mode="popup" showOn="button" /> + <p:calendar id="endDate" value="#{experimentObject.endDate}" mode="popup" showOn="button" pattern="#{resources.DatePattern}"/> </p:panelGrid> diff --git a/src/java/DmWebPortal/web/views/experiment/experimentPoliciesEditSelection.xhtml b/src/java/DmWebPortal/web/views/experiment/experimentPoliciesEditSelection.xhtml index 228b7ed0..5e237fc0 100644 --- a/src/java/DmWebPortal/web/views/experiment/experimentPoliciesEditSelection.xhtml +++ b/src/java/DmWebPortal/web/views/experiment/experimentPoliciesEditSelection.xhtml @@ -7,6 +7,15 @@ xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> + <ui:include src="experimentPolicyAddDialog.xhtml" /> + + <ui:param name="isAdmin" value="#{loginController.admin}" /> + + <p:commandButton id="experimentPolicyAddButton" value="Add" onclick="PF('experimentPolicyAddDialogWidget').show();" rendered="true" icon="ui-icon-plus" > + <p:tooltip for="experimentPolicyAddButton" value="Add new properties." /> + </p:commandButton> + <p:commandButton id="addPoliciesNoOp" style="visibility:hidden" value="NoOp"/> + <p:defaultCommand target="addPoliciesNoOp"/> <p:dataTable id="experimentPoliciesListDataTable" var="experimentPolicyObject" @@ -54,7 +63,7 @@ </p:column> <p:column headerText="Actions" > <div class="actionLink"> - <p:commandLink oncomplete="PF('experimentPolicyRemoveDialogWidget').show()" rendered="#{loginController.admin or experimentController.canDeleteExperiment(experimentController.current)}" styleClass="ui-icon ui-icon-trash" title="Delete" update="@form"> + <p:commandLink oncomplete="PF('experimentPolicyRemoveDialogWidget').show()" rendered="#{loginController.admin or experimentController.canDeleteExperiment(experimentController.current)}" styleClass="ui-icon ui-icon-trash" title="Remove" update="@form"> <f:setPropertyActionListener value="#{propertyValue}" target="#{experimentController.experimentPropertyToDelete}"/> </p:commandLink> </div> diff --git a/src/java/DmWebPortal/web/views/experiment/experimentPolicyAddDialog.xhtml b/src/java/DmWebPortal/web/views/experiment/experimentPolicyAddDialog.xhtml index 7b7725b7..6dfbcf3a 100644 --- a/src/java/DmWebPortal/web/views/experiment/experimentPolicyAddDialog.xhtml +++ b/src/java/DmWebPortal/web/views/experiment/experimentPolicyAddDialog.xhtml @@ -11,7 +11,7 @@ header="Add experiment policies" widgetVar="experimentPolicyAddDialogWidget" dynamic="true" styleClass="dialog" width="800"> <p:dataTable id="addExperimentPolicyList" - var="experimentPolicyObject" + var="missingPolicy" value="#{experimentController.noPolicyValueTable.listDataModel}" filteredValue="#{experimentController.noPolicyValueTable.filteredObjectList}" paginator="true" @@ -19,52 +19,46 @@ rows="#{experimentController.rows}" binding="#{experimentController.noPolicyValueTable.listDataTable}" widgetVar="experimentPolicyAddTableWidgetVar" - selection="#{experimentController.getNoPolicyValueTable().getNoPropertyList(experimentPolicyObject.getId()).selectedObjectList}" - rowKey="#{propertyValue.getPolicyProperty().name}" + selection="#{experimentController.getNoPolicyValueTable().selectedObjectList}" + rowKey="#{missingPolicy.id}" rowSelectMode="true" selectionMode="multiple" emptyMessage="No policies found."> - <p:columnGroup type="header" > - <p:column headerText="Property" /> - <p:column headerText="Value" /> - <p:column headerText="Units" /> - <p:column headerText="Description" /> - </p:columnGroup> - <p:subTable var="propertyValue" value="#{experimentController.getNoPolicyValueTable().getNoPropertyList(experimentPolicyObject.getId())}" > - <f:facet name="header" > - <h:outputText value="#{experimentPolicyObject.policyType.name} Policy"/> - </f:facet> + <p:column headerText="PolicyType"> + <h:outputText value="#{missingPolicy.getPolicyProperty().getPolicyType().name}"/> + </p:column> + <p:column headerText="Property" > + <h:outputText value="#{missingPolicy.getPolicyProperty().name}"/> + </p:column> + <p:column headerText="Value"> + <h:inputText id="missingPolicy" value="#{missingPolicy.value}" rendered="#{!missingPolicy.hasAllowedValues()}" styleClass="entityDataTextShort"/> - <p:column > - <h:outputText value="#{propertyValue.getPolicyProperty().name}"/> - </p:column> - <p:column> - <h:inputText id="propertyValue" value="#{propertyValue.value}" rendered="#{!policyPropertyController.hasAllowedValues(propertyValue.getPolicyProperty())}" styleClass="entityDataTextShort"/> + <p:selectOneMenu id="missingPolicySelect" value="#{missingPolicy.value}" styleClass="entityDataText" rendered="#{missingPolicy.hasAllowedValues()}"> + <f:selectItems value="#{missingPolicy.getPolicyProperty().allowedPolicyValueList}" + var="allowedPolicyValue" + itemValue="#{allowedPolicyValue.policyValue}" + itemLabel="#{allowedPolicyValue.policyValue}" /> + </p:selectOneMenu> + <p:tooltip for="missingPolicy" value="Modify property value" /> + </p:column> + <p:column headerText="Units"> + <h:outputText value="#{missingPolicy.getPolicyProperty().units}"/> + </p:column> + <p:column headerText="Description"> + <h:outputText value="#{missingPolicy.getPolicyProperty().description}"/> + </p:column> - <p:selectOneMenu id="propertyValueSelect" value="#{propertyValue.value}" styleClass="entityDataText" rendered="#{policyPropertyController.hasAllowedValues(propertyValue.getPolicyProperty())}"> - <f:selectItems value="#{propertyValue.getPolicyProperty().allowedPolicyValueList}" - var="allowedPolicyValue" - itemValue="#{allowedPolicyValue.policyValue}" - itemLabel="#{allowedPolicyValue.policyValue}" /> - </p:selectOneMenu> - <p:tooltip for="propertyValue" value="Modify property value" /> - </p:column> - <p:column> - <h:outputText value="#{propertyValue.getPolicyProperty().units}"/> - </p:column> - <p:column> - <h:outputText value="#{propertyValue.getPolicyProperty().description}"/> - </p:column> - - </p:subTable> - <f:facet name="footer"> - <p:commandButton value="Add" action="#{experimentController.addExperimentUser()}" oncomplete="PF('experimentUserAddDialogWidget').hide()" update="@form"/> - <p:commandButton value="Clear Selection" onclick="PF('experimentUserAddTableWidgetVar').unselectAllRows()" /> - </f:facet> + <f:facet name="footer"> + <p:commandButton value="Add" action="#{experimentController.addExperimentPolicyPropertyValues()}" oncomplete="PF('experimentPolicyAddDialogWidget').hide()" update="@form"/> + <p:commandButton value="Clear Selection" onclick="PF('experimentPolicyAddTableWidgetVar').unselectAllRows()" /> + </f:facet> </p:dataTable> </p:dialog> </ui:composition> + + + diff --git a/src/java/DmWebPortal/web/views/experiment/experimentPolicyRemoveDialog.xhtml b/src/java/DmWebPortal/web/views/experiment/experimentPolicyRemoveDialog.xhtml index caea55a5..ca682ba8 100644 --- a/src/java/DmWebPortal/web/views/experiment/experimentPolicyRemoveDialog.xhtml +++ b/src/java/DmWebPortal/web/views/experiment/experimentPolicyRemoveDialog.xhtml @@ -7,7 +7,7 @@ <p:confirmDialog id="experimentPolicyRemoveDialog" message="Remove policy #{experimentController.getRemovedPolicyName()} from Experiment?" header="Remove Policy" severity="alert" widgetVar="experimentPolicyRemoveDialogWidget" styleClass="dialog"> - <p:commandButton value="Yes" oncomplete="PF('experimentPolicyRemoveDialogWidget').hide()" action="#{experimentController.updateExperimentPolicy()}" actionListener="#{experimentController.removePolicy()}" update="@form"/> + <p:commandButton value="Yes" oncomplete="PF('experimentPolicyRemoveDialogWidget').hide()" action="#{experimentController.updateRemovedExperimentPolicy()}" actionListener="#{experimentController.removePolicy()}" update="@form"/> <p:commandButton value="No" onclick="PF('experimentPolicyRemoveDialogWidget').hide()" type="button" /> </p:confirmDialog> </ui:composition> diff --git a/src/java/DmWebPortal/web/views/experiment/list.xhtml b/src/java/DmWebPortal/web/views/experiment/list.xhtml index 97706fd3..15e061d0 100644 --- a/src/java/DmWebPortal/web/views/experiment/list.xhtml +++ b/src/java/DmWebPortal/web/views/experiment/list.xhtml @@ -7,11 +7,13 @@ xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> + <title>Experiments List</title> + <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/> <ui:composition template="../../templates/dmViewTemplate.xhtml"> <ui:define name="middleCenter"> <div class="pageTitle"> - <h1>Experiments</h1> + <h1>Experiments</h1> </div> <h:form id="viewExperimentListForm"> diff --git a/src/java/DmWebPortal/web/views/experiment/view.xhtml b/src/java/DmWebPortal/web/views/experiment/view.xhtml index 7a1f4f8a..8791d3c5 100644 --- a/src/java/DmWebPortal/web/views/experiment/view.xhtml +++ b/src/java/DmWebPortal/web/views/experiment/view.xhtml @@ -7,7 +7,11 @@ xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> + <title>Experiment View</title> + <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/> + <h:outputScript library="js/common" name="noBack.js" rendered="#{experimentController.notSelected()}" /> + <ui:composition template="../../templates/dmViewTemplate.xhtml"> <ui:define name="middleCenter"> <h:form id="viewExperimentForm"> diff --git a/src/java/DmWebPortal/web/views/experimentType/create.xhtml b/src/java/DmWebPortal/web/views/experimentType/create.xhtml index 75c24d9d..f155bf5f 100644 --- a/src/java/DmWebPortal/web/views/experimentType/create.xhtml +++ b/src/java/DmWebPortal/web/views/experimentType/create.xhtml @@ -6,7 +6,9 @@ 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"> - + + <title>Experiment Type Edit</title> + <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/> <h:outputScript library="js/common" name="forwardNotAuthorized.js" rendered="#{!loginController.admin}"/> <ui:composition template="../../templates/dmViewTemplate.xhtml"> diff --git a/src/java/DmWebPortal/web/views/experimentType/edit.xhtml b/src/java/DmWebPortal/web/views/experimentType/edit.xhtml index 1331c8ef..a2a17c58 100644 --- a/src/java/DmWebPortal/web/views/experimentType/edit.xhtml +++ b/src/java/DmWebPortal/web/views/experimentType/edit.xhtml @@ -6,8 +6,11 @@ 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"> - + + <title>Experiment Type Edit</title> + <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/> + <h:outputScript library="js/common" name="noBack.js" rendered="#{experimentTypeController.notSelected()}" /> <h:outputScript library="js/common" name="forwardNotAuthorized.js" rendered="#{!loginController.admin}"/> <ui:composition template="../../templates/dmViewTemplate.xhtml"> <ui:define name="middleCenter"> diff --git a/src/java/DmWebPortal/web/views/experimentType/list.xhtml b/src/java/DmWebPortal/web/views/experimentType/list.xhtml index 0f5adbf3..34dce360 100644 --- a/src/java/DmWebPortal/web/views/experimentType/list.xhtml +++ b/src/java/DmWebPortal/web/views/experimentType/list.xhtml @@ -7,6 +7,8 @@ xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> + <title>Experiment Types List</title> + <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/> <ui:composition template="../../templates/dmViewTemplate.xhtml"> <ui:define name="middleCenter"> diff --git a/src/java/DmWebPortal/web/views/experimentType/view.xhtml b/src/java/DmWebPortal/web/views/experimentType/view.xhtml index b4fa02f8..53bc135a 100644 --- a/src/java/DmWebPortal/web/views/experimentType/view.xhtml +++ b/src/java/DmWebPortal/web/views/experimentType/view.xhtml @@ -7,7 +7,10 @@ xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> + <title>Experiment Type View</title> + <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/> + <h:outputScript library="js/common" name="noBack.js" rendered="#{experimentTypeController.notSelected()}" /> <ui:composition template="../../templates/dmViewTemplate.xhtml"> <ui:define name="middleCenter"> <h:form id="viewExperimentTypeForm"> diff --git a/src/java/DmWebPortal/web/views/home.xhtml b/src/java/DmWebPortal/web/views/home.xhtml index e62fae7b..9d2b1bd5 100644 --- a/src/java/DmWebPortal/web/views/home.xhtml +++ b/src/java/DmWebPortal/web/views/home.xhtml @@ -9,6 +9,8 @@ xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> + <title>Data Management System Portal Home</title> + <h:outputScript library="js/common" name="forwardFromHome.js" rendered="#{!loginController.loggedIn}" /> <ui:composition template="../templates/dmViewTemplate.xhtml"> diff --git a/src/java/DmWebPortal/web/views/loginHelp.xhtml b/src/java/DmWebPortal/web/views/loginHelp.xhtml index b057379f..2b297a8d 100644 --- a/src/java/DmWebPortal/web/views/loginHelp.xhtml +++ b/src/java/DmWebPortal/web/views/loginHelp.xhtml @@ -8,7 +8,7 @@ <h:head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link href="../resources/css/login.css" rel="stylesheet" type="text/css" /> - <title>Data Management System Login</title> + <title>Data Management System Login Help</title> </h:head> diff --git a/src/java/DmWebPortal/web/views/policyProperty/create.xhtml b/src/java/DmWebPortal/web/views/policyProperty/create.xhtml index 69a970dc..b251e6ff 100644 --- a/src/java/DmWebPortal/web/views/policyProperty/create.xhtml +++ b/src/java/DmWebPortal/web/views/policyProperty/create.xhtml @@ -6,7 +6,9 @@ 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"> - + + <title>Policy Property Create</title> + <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/> <h:outputScript library="js/common" name="forwardNotAuthorized.js" rendered="#{!loginController.admin}"/> <ui:composition template="../../templates/dmViewTemplate.xhtml"> diff --git a/src/java/DmWebPortal/web/views/policyProperty/edit.xhtml b/src/java/DmWebPortal/web/views/policyProperty/edit.xhtml index 95fe25e3..90d8b375 100644 --- a/src/java/DmWebPortal/web/views/policyProperty/edit.xhtml +++ b/src/java/DmWebPortal/web/views/policyProperty/edit.xhtml @@ -7,7 +7,10 @@ xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> + <title>Policy Property Edit</title> + <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/> + <h:outputScript library="js/common" name="noBack.js" rendered="#{policyPropertyController.notSelected()}" /> <h:outputScript library="js/common" name="forwardNotAuthorized.js" rendered="#{!loginController.admin}"/> <ui:composition template="../../templates/dmViewTemplate.xhtml"> <ui:define name="middleCenter"> diff --git a/src/java/DmWebPortal/web/views/policyProperty/view.xhtml b/src/java/DmWebPortal/web/views/policyProperty/view.xhtml index 623129de..e6b9c2c6 100644 --- a/src/java/DmWebPortal/web/views/policyProperty/view.xhtml +++ b/src/java/DmWebPortal/web/views/policyProperty/view.xhtml @@ -7,7 +7,11 @@ xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> + <title>Policy Property View</title> + <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/> + <h:outputScript library="js/common" name="noBack.js" rendered="#{policyPropertyController.notSelected()}" /> + <ui:composition template="../../templates/dmViewTemplate.xhtml"> <ui:define name="middleCenter"> <h:form id="viewPolicyPropertyForm"> diff --git a/src/java/DmWebPortal/web/views/policyType/edit.xhtml b/src/java/DmWebPortal/web/views/policyType/edit.xhtml index 32594af3..a092d183 100644 --- a/src/java/DmWebPortal/web/views/policyType/edit.xhtml +++ b/src/java/DmWebPortal/web/views/policyType/edit.xhtml @@ -7,7 +7,10 @@ xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> + <title>Policy Type Edit</title> + <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/> + <h:outputScript library="js/common" name="noBack.js" rendered="#{policyTypeController.notSelected()}" /> <h:outputScript library="js/common" name="forwardNotAuthorized.js" rendered="#{!loginController.admin}"/> <ui:composition template="../../templates/dmViewTemplate.xhtml"> <ui:define name="middleCenter"> diff --git a/src/java/DmWebPortal/web/views/policyType/list.xhtml b/src/java/DmWebPortal/web/views/policyType/list.xhtml index 945113b8..b33b22c6 100644 --- a/src/java/DmWebPortal/web/views/policyType/list.xhtml +++ b/src/java/DmWebPortal/web/views/policyType/list.xhtml @@ -7,6 +7,8 @@ xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> + <title>Policy Types List</title> + <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/> <ui:composition template="../../templates/dmViewTemplate.xhtml"> <ui:define name="middleCenter"> diff --git a/src/java/DmWebPortal/web/views/policyType/view.xhtml b/src/java/DmWebPortal/web/views/policyType/view.xhtml index d6f8147a..56682ff8 100644 --- a/src/java/DmWebPortal/web/views/policyType/view.xhtml +++ b/src/java/DmWebPortal/web/views/policyType/view.xhtml @@ -7,7 +7,10 @@ xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> + <title>Policy Type View</title> + <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/> + <h:outputScript library="js/common" name="noBack.js" rendered="#{policyTypeController.notSelected()}" /> <ui:composition template="../../templates/dmViewTemplate.xhtml"> <ui:define name="middleCenter"> <h:form id="viewPolicyTypeForm"> diff --git a/src/java/DmWebPortal/web/views/roleType/edit.xhtml b/src/java/DmWebPortal/web/views/roleType/edit.xhtml index ffb705f4..1981fd42 100644 --- a/src/java/DmWebPortal/web/views/roleType/edit.xhtml +++ b/src/java/DmWebPortal/web/views/roleType/edit.xhtml @@ -7,7 +7,10 @@ xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> + <title>Role Type Edit</title> + <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/> + <h:outputScript library="js/common" name="noBack.js" rendered="#{roleTypeController.notSelected()}" /> <h:outputScript library="js/common" name="forwardNotAuthorized.js" rendered="#{!loginController.admin}"/> <ui:composition template="../../templates/dmViewTemplate.xhtml"> <ui:define name="middleCenter"> diff --git a/src/java/DmWebPortal/web/views/roleType/list.xhtml b/src/java/DmWebPortal/web/views/roleType/list.xhtml index 13a1a205..2c66e757 100644 --- a/src/java/DmWebPortal/web/views/roleType/list.xhtml +++ b/src/java/DmWebPortal/web/views/roleType/list.xhtml @@ -7,6 +7,8 @@ xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> + <title>Role Types List</title> + <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/> <ui:composition template="../../templates/dmViewTemplate.xhtml"> <ui:define name="middleCenter"> diff --git a/src/java/DmWebPortal/web/views/roleType/view.xhtml b/src/java/DmWebPortal/web/views/roleType/view.xhtml index 2c359f41..1545faa5 100644 --- a/src/java/DmWebPortal/web/views/roleType/view.xhtml +++ b/src/java/DmWebPortal/web/views/roleType/view.xhtml @@ -7,7 +7,10 @@ xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> + <title>Role Type View</title> + <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/> + <h:outputScript library="js/common" name="noBack.js" rendered="#{roleTypeController.notSelected()}" /> <ui:composition template="../../templates/dmViewTemplate.xhtml"> <ui:define name="middleCenter"> <h:form id="viewRoleTypeForm"> diff --git a/src/java/DmWebPortal/web/views/userInfo/create.xhtml b/src/java/DmWebPortal/web/views/userInfo/create.xhtml index 160b5147..83fd3ddb 100644 --- a/src/java/DmWebPortal/web/views/userInfo/create.xhtml +++ b/src/java/DmWebPortal/web/views/userInfo/create.xhtml @@ -7,6 +7,8 @@ xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> + <title>User Create</title> + <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/> <h:outputScript library="js/common" name="forwardNotAuthorized.js" rendered="#{!loginController.admin}"/> <ui:composition template="../../templates/dmViewTemplate.xhtml"> diff --git a/src/java/DmWebPortal/web/views/userInfo/edit.xhtml b/src/java/DmWebPortal/web/views/userInfo/edit.xhtml index 51e1c8b1..af3a803f 100644 --- a/src/java/DmWebPortal/web/views/userInfo/edit.xhtml +++ b/src/java/DmWebPortal/web/views/userInfo/edit.xhtml @@ -7,11 +7,14 @@ xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> + <title>User Edit</title> + <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/> + <h:outputScript library="js/common" name="noBack.js" rendered="#{userInfoController.notSelected()}" /> <h:outputScript library="js/common" name="forwardNotAuthorized.js" rendered="#{!loginController.admin}"/> <ui:composition template="../../templates/dmViewTemplate.xhtml"> - <ui:define name="middleCenter"> - <h:form id="editUserInfoForm"> + <ui:define name="middleCenter"> + <h:form id="editUserInfoForm"> <div class="middleCenterLeftContent"> <div class="pageTitle"> diff --git a/src/java/DmWebPortal/web/views/userInfo/list.xhtml b/src/java/DmWebPortal/web/views/userInfo/list.xhtml index b96418de..80585f77 100644 --- a/src/java/DmWebPortal/web/views/userInfo/list.xhtml +++ b/src/java/DmWebPortal/web/views/userInfo/list.xhtml @@ -7,6 +7,8 @@ xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> + <title>Users List</title> + <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/> <ui:composition template="../../templates/dmViewTemplate.xhtml"> <ui:define name="middleCenter"> diff --git a/src/java/DmWebPortal/web/views/userInfo/view.xhtml b/src/java/DmWebPortal/web/views/userInfo/view.xhtml index 33da299b..be2d53cd 100644 --- a/src/java/DmWebPortal/web/views/userInfo/view.xhtml +++ b/src/java/DmWebPortal/web/views/userInfo/view.xhtml @@ -7,7 +7,10 @@ xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> + <title>User View</title> + <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/> + <h:outputScript library="js/common" name="noBack.js" rendered="#{userInfoController.notSelected()}" /> <ui:composition template="../../templates/dmViewTemplate.xhtml"> <ui:define name="middleCenter"> <h:form id="viewUserInfoForm"> diff --git a/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml b/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml index 06efa726..099d4cc9 100644 --- a/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml +++ b/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml @@ -7,6 +7,8 @@ xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> + <title>User System Roles List</title> + <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/> <h:outputScript library="js/common" name="forwardNotAuthorized.js" rendered="#{!loginController.admin}"/> <ui:composition template="../../templates/dmViewTemplate.xhtml"> -- GitLab