diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/AllowedPolicyValueController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/AllowedPolicyValueController.java index 7da2356288d9f49c04503d00d130f247ec6319c6..c3b200884c04673e8393817f801f3f0735872ebc 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/AllowedPolicyValueController.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/AllowedPolicyValueController.java @@ -6,7 +6,11 @@ import gov.anl.aps.dm.portal.exceptions.ObjectAlreadyExists; import gov.anl.aps.dm.portal.model.entities.AllowedPolicyValue; import gov.anl.aps.dm.portal.model.beans.AllowedPolicyValueFacade; import gov.anl.aps.dm.portal.model.entities.PolicyProperty; +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; import java.util.List; +import java.util.Map; import javax.ejb.EJB; import javax.inject.Named; import javax.enterprise.context.SessionScoped; @@ -20,9 +24,33 @@ import org.apache.log4j.Logger; public class AllowedPolicyValueController extends CrudEntityController<AllowedPolicyValue, AllowedPolicyValueFacade> { private static final Logger logger = Logger.getLogger(AllowedPolicyValueController.class.getName()); + + class ValueCopy { + private final String value; + private final String description; + + ValueCopy(String value, String description) { + this.value = value; + this.description = description; + } + + boolean isUpdated(AllowedPolicyValue editedAllowedPolicyValue) { + return (!editedAllowedPolicyValue.getPolicyValue().equals(value) || !editedAllowedPolicyValue.getDescription().equals(description)); + } + + String getValue() { + return value; + } + + String getDescription() { + return description; + } + } @EJB private AllowedPolicyValueFacade allowedPolicyValueFacade; + + private final Map<AllowedPolicyValue, ValueCopy> editMap = new HashMap<>(); class AllowedPolicyValueInfoTable extends DataTableController<AllowedPolicyValue> { @@ -76,12 +104,17 @@ public class AllowedPolicyValueController extends CrudEntityController<AllowedPo @Override public DataModel createListDataModel() { - return new ListDataModel((List) allowedPolicyValueFacade.findByPolicyPropertyId(policyProperty.getId())); + List<AllowedPolicyValue> allowedValueList = allowedPolicyValueFacade.findByPolicyPropertyId(policyProperty.getId()); + for (AllowedPolicyValue allowedPolicyValue : allowedValueList) { + editMap.put(allowedPolicyValue, new ValueCopy(allowedPolicyValue.getPolicyValue(), allowedPolicyValue.getDescription())); + } + return new ListDataModel((List) allowedValueList); } @Override public List<AllowedPolicyValue> getAvailableItems() { - return (List<AllowedPolicyValue>) allowedPolicyValueFacade.findByPolicyPropertyId(policyProperty.getId()); + List<AllowedPolicyValue> allowedValueList = allowedPolicyValueFacade.findByPolicyPropertyId(policyProperty.getId()); + return (allowedValueList); } @Override @@ -105,7 +138,6 @@ public class AllowedPolicyValueController extends CrudEntityController<AllowedPo @Override public String prepareEdit(AllowedPolicyValue allowedPolicyValue) { super.prepareEdit(allowedPolicyValue); - // return "editAllowedPolicyValue?faces-redirect=true"; return "/views/allowedPolicyValue/edit?faces-redirect=true"; } @@ -113,31 +145,33 @@ public class AllowedPolicyValueController extends CrudEntityController<AllowedPo public String prepareView(AllowedPolicyValue allowedPolicyValue) { current = allowedPolicyValue; super.prepareView(allowedPolicyValue); - // return "editAllowedPolicyValue?faces-redirect=true"; return "/views/allowedPolicyValue/view?faces-redirect=true"; } @Override public String prepareCreate() { super.prepareCreate(); -// return "create?faces-redirect=true"; return "/views/allowedPolicyValue/create?faces-redirect=true"; } @Override public String create() { + AllowedPolicyValue newValue = current; if (super.create() == null) { return null; } + policyProperty.getAllowedPolicyValueList().add(newValue); allowedPolicyValueInfoTable.resetList(); - return "/views/policyProperty/view?faces-redirect=true"; + return null; } @Override public String destroy() { - String view = super.destroy(); + AllowedPolicyValue propertyValue = current; + super.destroy(); + policyProperty.getAllowedPolicyValueList().remove(propertyValue); clear(); - return view; + return null; } @Override @@ -156,16 +190,18 @@ public class AllowedPolicyValueController extends CrudEntityController<AllowedPo @Override public void prepareEntityUpdate(AllowedPolicyValue allowedPolicyValue) throws DmPortalException { - current.setPolicyProperty(policyProperty); if ((allowedPolicyValue.getPolicyValue() == null) || (allowedPolicyValue.getPolicyValue().length() == 0)) { throw new MissingProperty("Policy Value is missing."); } - List<AllowedPolicyValue> propertyAllowedPolicyValueList = allowedPolicyValueFacade.findByPolicyPropertyId(policyProperty.getId()); - for (AllowedPolicyValue policyValue : propertyAllowedPolicyValueList) { - if ((allowedPolicyValue.getPolicyValue().equals(policyValue.getPolicyValue()))) { + ValueCopy tempValueCopy = editMap.get(allowedPolicyValue); + editMap.remove(allowedPolicyValue); + Collection<ValueCopy> propertyAllowedPolicyValueList = editMap.values(); + for (ValueCopy valueCopy : propertyAllowedPolicyValueList) { + if ((valueCopy.getValue().equals(allowedPolicyValue.getPolicyValue()))) { throw new ObjectAlreadyExists("allowed policy value " + allowedPolicyValue.getPolicyValue() + " already exists for this property."); } } + editMap.put(allowedPolicyValue, tempValueCopy); } @Override @@ -184,6 +220,22 @@ public class AllowedPolicyValueController extends CrudEntityController<AllowedPo public void clear() { allowedPolicyValueInfoTable.resetList(); resetList(); + editMap.clear(); + } + + @Override + public String update() { + Iterator<AllowedPolicyValue> iterator = getListDataModel().iterator(); + while (iterator.hasNext()) { + AllowedPolicyValue editedAllowedPolicyValue = iterator.next(); + ValueCopy valueCopy = editMap.get(editedAllowedPolicyValue); + if ((valueCopy != null) && (valueCopy.isUpdated(editedAllowedPolicyValue))) { + current = editedAllowedPolicyValue; + super.update(); + } + } + clear(); + return null; } } 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 71ace99c80cd896c3c088b19d5993b712e234de1..0f8d6130a53a25c257affafa7b8f660369b9c787 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 @@ -6,23 +6,26 @@ import gov.anl.aps.dm.portal.exceptions.DmPortalException; import gov.anl.aps.dm.portal.exceptions.ObjectAlreadyExists; import gov.anl.aps.dm.portal.exceptions.InvalidDate; import gov.anl.aps.dm.portal.exceptions.MissingProperty; -import gov.anl.aps.dm.portal.model.beans.AllowedPolicyValueFacade; import gov.anl.aps.dm.portal.model.entities.Experiment; import gov.anl.aps.dm.portal.model.beans.ExperimentFacade; +import gov.anl.aps.dm.portal.model.beans.ExperimentPolicyFacade; +import gov.anl.aps.dm.portal.model.beans.ExperimentPolicyPropertyValueFacade; import gov.anl.aps.dm.portal.model.beans.PolicyTypeFacade; 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.CloneableEntity; import gov.anl.aps.dm.portal.model.entities.ExperimentPolicy; +import gov.anl.aps.dm.portal.model.entities.ExperimentPolicyPropertyValue; +import gov.anl.aps.dm.portal.model.entities.PolicyProperty; import gov.anl.aps.dm.portal.model.entities.PolicyType; import gov.anl.aps.dm.portal.model.entities.RoleType; 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.Collection; import java.util.HashMap; +import java.util.Iterator; import java.util.List; import java.util.Map; @@ -53,7 +56,16 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper @EJB private UserExperimentRoleFacade userExperimentRoleFacade; - + + @EJB + private PolicyTypeFacade policyTypeFacade; + + @EJB + private ExperimentPolicyFacade experimentPolicyFacade; + + @EJB + private ExperimentPolicyPropertyValueFacade experimentPolicyPropertyValueFacade; + public class ExperimentUser extends CloneableEntity { String name; @@ -73,8 +85,7 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper public UserInfo getUser() { return user; - } - + } public String getGlobusUsername() { return user.getGlobusUsername(); @@ -198,22 +209,140 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper return "noExperimentUsersTable"; } } + + @SessionScoped + class ExperimentPolicyTable extends DataTableController<ExperimentPolicy> { + + @Override + public String getClassName() { + return "ExperimentPolicy"; + } + + @Override + public List<ExperimentPolicy> findAll() { + resetList(); + List<ExperimentPolicy> experimentPolicies = experimentPolicyFacade.findByExperimentId(current.getId()); + return experimentPolicies; + } + + @Override + public String getTableName() { + return "experimentPolicyTable"; + } + } - private int rows = 25; + class PolicyPropertyValue extends CloneableEntity { + private PolicyProperty policyProperty; + private String value; + + public PolicyProperty getPolicyProperty() { + return policyProperty; + } + + public void setPolicyProperty(PolicyProperty policyProperty) { + this.policyProperty = policyProperty; + } + + public String getValue() { + return value; + } + + 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(); + } + } + + void clear() { + for (List<PolicyPropertyValue> list : noPropertyList) { + list.clear(); + } + } + + public List<PolicyPropertyValue> getNoPropertyList(int policyTypeId) { + return noPropertyList[policyTypeId]; + } + + @Override + public String getClassName() { + return "PolicyType"; + } + + @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); + } + } + + return noPolicyTypes; + } + + 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); + } + } + } + + private boolean hasProperty(ExperimentPolicy experimentPolicy, PolicyProperty policyProperty) { + for (ExperimentPolicyPropertyValue ExperimentPolicyPropertyValue : experimentPolicy.getExperimentPolicyPropertyValueList()) { + if (ExperimentPolicyPropertyValue.getPolicyProperty().equals(policyProperty)) { + return true; + } + } + return false; + } + + } + + 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(); 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; public ExperimentController() { - this.experimentUsersListTable = new ExperimentController.ExperimentUsersTable(); - this.experimentUsersEditTable = new ExperimentController.ExperimentUsersTable(); - this.noExperimentUsersTypeTable = new ExperimentController.NoExperimentUsersTypeTable(); } public int getRows() { @@ -271,9 +400,13 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper } } } + List<PolicyType> policyTypesList = policyTypeFacade.findAll(); + for (PolicyType policyType : policyTypesList) { + policyTypes.put(policyType.getId(), policyType); + } initialized = true; } - + @Override public void prepareEntityInsert(Experiment experiment) throws ObjectAlreadyExists, InvalidDate, MissingProperty { if ((experiment.getName() == null) || (experiment.getName().length() == 0)){ @@ -323,6 +456,8 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper experimentUsersEditTable.resetList(); experimentUsers.clear(); noExperimentUsersTypeTable.resetList(); + experimentPolicyListTable.resetList(); + experimentPolicyEditTable.resetList(); } public ExperimentController.ExperimentUsersTable getExperimentUsersListTable() { @@ -348,7 +483,39 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper 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()) { @@ -391,10 +558,23 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper } } } + + Iterator<ExperimentPolicy> iterator = experimentPolicyEditTable.getListDataModel().iterator(); + while (iterator.hasNext()) { + experimentPolicyFacade.edit(iterator.next()); + } clear(); return super.update(); } + + public String updateExperimentPolicy() { + ExperimentPolicy experimentPolicy = experimentPropertyToDelete.getExperimentPolicy(); + experimentPolicy.getExperimentPolicyPropertyValueList().remove(experimentPropertyToDelete); + experimentPolicyFacade.edit(experimentPolicy); + clear(); + return "edit?faces-redirect=true"; + } public String getRemovedUserName() { if (experimentUsersEditTable.getCurrentObject() != null) { @@ -403,6 +583,13 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper return ""; } + public String getRemovedPolicyName() { + if (experimentPropertyToDelete != null) { + return experimentPropertyToDelete.getPolicyProperty().getName(); + } + return ""; + } + public String removeUser() { ExperimentUser experimentUser = experimentUsersEditTable.getCurrentObject(); UserInfo user = experimentUser.getUser(); @@ -417,6 +604,10 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper return "edit?faces-redirect=true"; } + public void removePolicy() { + experimentPolicyPropertyValueFacade.remove(experimentPropertyToDelete); + } + public void removeUserRoles() { ExperimentUser experimentUser = experimentUsersEditTable.getCurrentObject(); UserInfo user = experimentUser.getUser(); 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 ec29307430a085c17bc57252b342e7de7667e2d0..122859bb00bd4f210e2cfa1b8145e883892af750 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 @@ -22,7 +22,7 @@ public class ExperimentTypeController extends CrudEntityController<ExperimentTyp { private static final Logger logger = Logger.getLogger(ExperimentTypeController.class.getName()); - private int rows = 25; + private final int rows = 25; @EJB private ExperimentTypeFacade experimentTypeFacade; 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 67e42f6d8d89a82496ca0262fc171a6624299bda..175e2e0cba857f222e3180484b6155f443d22fd9 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 @@ -10,7 +10,6 @@ import gov.anl.aps.dm.portal.exceptions.DmPortalException; import gov.anl.aps.dm.portal.exceptions.MissingProperty; import gov.anl.aps.dm.portal.exceptions.ObjectAlreadyExists; import gov.anl.aps.dm.portal.model.beans.PolicyPropertyFacade; -import gov.anl.aps.dm.portal.model.entities.AllowedPolicyValue; import gov.anl.aps.dm.portal.model.entities.PolicyProperty; import gov.anl.aps.dm.portal.model.entities.PolicyType; import java.util.List; @@ -35,7 +34,7 @@ public class PolicyPropertyController extends CrudEntityController<PolicyPropert { private PolicyType policyType; - private int rows; + private int rows = 25; private static final Logger logger = Logger.getLogger(PolicyPropertyController.class.getName()); @@ -154,7 +153,6 @@ public class PolicyPropertyController extends CrudEntityController<PolicyPropert @Override public String prepareCreate() { super.prepareCreate(); -// return "create?faces-redirect=true"; return "/views/policyProperty/create?faces-redirect=true"; } @@ -180,7 +178,7 @@ public class PolicyPropertyController extends CrudEntityController<PolicyPropert clear(); return view; } - + public PolicyType getPolicyType() { return policyType; } @@ -198,6 +196,15 @@ public class PolicyPropertyController extends CrudEntityController<PolicyPropert public void setRows(int rows) { this.rows = rows; } + + public boolean hasAllowedValues(PolicyProperty policyProperty) { + return ((policyProperty.getAllowedPolicyValueList() != null) && !policyProperty.getAllowedPolicyValueList().isEmpty()); + } + + public String updateAllowedValueList() { + policyPropertyFacade.edit(current); + return "/views/policyProperty/edit?faces-redirect=true"; + } @FacesConverter(forClass = PolicyProperty.class) public static class PolicyPropertyControllerConverter implements Converter diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/AllowedPolicyValue.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/AllowedPolicyValue.java index be28189c9625ed3ef6322bfabd8ca6927cf12434..42ea1347c2c6019b5efe4d7e3fd18f35aa201566 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/AllowedPolicyValue.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/AllowedPolicyValue.java @@ -41,10 +41,10 @@ public class AllowedPolicyValue extends CloneableEntity @Basic(optional = false) @Column(name = "id") private Integer id; - @Size(max = 2147483647) + @Size(max = 256) @Column(name = "policy_value") private String policyValue; - @Size(max = 2147483647) + @Size(max = 256) @Column(name = "description") private String description; @JoinColumn(name = "policy_property_id", referencedColumnName = "id") diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/AllowedSettingValue.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/AllowedSettingValue.java index fc3a840e516dbfcae9962a7efec81dbcd9a12062..fcbd725a532f10c5d6ef6ef3f13f3f3dbf3911fc 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/AllowedSettingValue.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/AllowedSettingValue.java @@ -39,10 +39,10 @@ public class AllowedSettingValue extends CloneableEntity @Basic(optional = false) @Column(name = "id") private Integer id; - @Size(max = 2147483647) + @Size(max = 256) @Column(name = "setting_value") private String settingValue; - @Size(max = 2147483647) + @Size(max = 256) @Column(name = "description") private String description; @JoinColumn(name = "setting_type_id", referencedColumnName = "id") diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/DataFolder.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/DataFolder.java index 185c99bc2e2b276ce0bffb76186c658d75644631..f15827db143c1dad9a4bd5ee5dc85837ab967de8 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/DataFolder.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/DataFolder.java @@ -48,10 +48,10 @@ public class DataFolder extends CloneableEntity private Integer id; @Basic(optional = false) @NotNull - @Size(min = 1, max = 2147483647) + @Size(min = 1, max = 1024) @Column(name = "data_path") private String dataPath; - @Size(max = 2147483647) + @Size(max = 256) @Column(name = "description") private String description; @JoinTable(name = "experiment_data_folder", joinColumns = { diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/DataFolderPermission.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/DataFolderPermission.java index 410cbb63ec9c9899c6629b8a7c02ea6100a8e839..4e0dcbcd625fdb111b6004df5e2fcde47e19a251 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/DataFolderPermission.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/DataFolderPermission.java @@ -42,10 +42,10 @@ public class DataFolderPermission extends CloneableEntity private Integer id; @Basic(optional = false) @NotNull - @Size(min = 1, max = 2147483647) + @Size(max = 256) @Column(name = "permission_value") private String permissionValue; - @Size(max = 2147483647) + @Size(max = 256) @Column(name = "description") private String description; @JoinColumn(name = "data_folder_id", referencedColumnName = "id") 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 cfcb6c5686ab14c45c5dc8a37fadec5c2aba0818..0f9281f7282fa45d9561a94026a7aa5bcad5fb7b 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 @@ -55,7 +55,7 @@ public class Experiment extends CloneableEntity @Size(max = 64) @Column(name = "name") private String name; - @Size(max = 2147483647) + @Size(max = 2000) @Column(name = "description") private String description; @Column(name = "start_date") diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/ExperimentPolicyPropertyValue.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/ExperimentPolicyPropertyValue.java index 9ee078b9e268024b67645717ec89bcfe8380d8d9..20324449a8ecaca5490efc2e41873e12a7d6b2d8 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/ExperimentPolicyPropertyValue.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/ExperimentPolicyPropertyValue.java @@ -45,12 +45,12 @@ public class ExperimentPolicyPropertyValue extends CloneableEntity @Column(name = "id") private Integer id; @Basic(optional = false) - @Size(min = 1, max = 2147483647) + @Size(max = 256) @Column(name = "policy_property_value") private String policyPropertyValue; @Basic(optional = false) @NotNull - @Size(min = 1, max = 2147483647) + @Size(max = 256) @Column(name = "modified_by") private String modifiedBy; @Basic(optional = false) @@ -124,6 +124,10 @@ public class ExperimentPolicyPropertyValue extends CloneableEntity public void setModifiedDate(Date modifiedDate) { this.modifiedDate = modifiedDate; } + + public String getUnits() { + return policyProperty.getUnits(); + } @Override public int hashCode() { diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/ExperimentType.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/ExperimentType.java index dd204831afacf42103aaf87816b23af874502a0e..a36c2b5a4f0b8362873542a70bd30aad20f51fd1 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/ExperimentType.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/ExperimentType.java @@ -48,10 +48,10 @@ public class ExperimentType extends CloneableEntity @Size(max = 64) @Column(name = "name") private String name; - @Size(max = 2147483647) + @Size(max = 256) @Column(name = "description") private String description; - @Size(max = 2147483647) + @Size(max = 256) @Column(name = "root_data_path") private String rootDataPath; @OneToMany(cascade = CascadeType.ALL, mappedBy = "experimentType") 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 8e463dbed54fa783b510dfb6bcd8cf3bfcb24780..dbc4f4d295ddd06b31ca6ebd6adecdb61927a0dc 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 @@ -49,22 +49,22 @@ public class PolicyProperty extends CloneableEntity private Integer id; @Basic(optional = false) @NotNull - @Size(max = 2147483647) + @Size(max = 256) @Column(name = "name") private String name; - @Size(max = 2147483647) + @Size(max = 256) @Column(name = "units") private String units; - @Size(max = 2147483647) + @Size(max = 256) @Column(name = "lower_limit") private String lowerLimit; - @Size(max = 2147483647) + @Size(max = 256) @Column(name = "upper_limit") private String upperLimit; - @Size(max = 2147483647) + @Size(max = 256) @Column(name = "default_value") private String defaultValue; - @Size(max = 2147483647) + @Size(max = 256) @Column(name = "description") private String description; @JoinColumn(name = "policy_type_id", referencedColumnName = "id") diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/PolicyType.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/PolicyType.java index a4834eb217ac10b65ce1ddd43b586850eaf56937..a0f4b3e01b4d7d32d416220d7211760668cf0843 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/PolicyType.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/PolicyType.java @@ -45,10 +45,10 @@ public class PolicyType extends CloneableEntity private Integer id; @Basic(optional = false) @NotNull - @Size(min = 1, max = 2147483647) + @Size(max = 256) @Column(name = "name") private String name; - @Size(max = 2147483647) + @Size(max = 256) @Column(name = "description") private String description; @OneToMany(cascade = CascadeType.ALL, mappedBy = "policyType") diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/RoleType.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/RoleType.java index bf68b2dd061f19009e744390a2c8fe9d31e478bc..add8bc95d5066421b9c84df37673dea7b4e09a40 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/RoleType.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/RoleType.java @@ -49,10 +49,10 @@ public class RoleType extends CloneableEntity private Integer id; @Basic(optional = false) @NotNull - @Size(max = 64) + @Size(max = 256) @Column(name = "name") private String name; - @Size(max = 2147483647) + @Size(max = 3000) @Column(name = "description") private String description; @NotNull diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/SettingType.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/SettingType.java index ec9e90eb77846debc463c88e7b8d64c1cc46603a..b650ae7527235837116e4826e220b4020aec331a 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/SettingType.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/SettingType.java @@ -46,13 +46,13 @@ public class SettingType extends CloneableEntity private Integer id; @Basic(optional = false) @NotNull - @Size(min = 1, max = 2147483647) + @Size(max = 256) @Column(name = "name") private String name; - @Size(max = 2147483647) + @Size(max = 256) @Column(name = "description") private String description; - @Size(max = 2147483647) + @Size(max = 256) @Column(name = "default_value") private String defaultValue; @Column(name = "is_user_modifiable") 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 4be19e85359d12d9078a4c0dbf3e7a86ccca1336..5b11232e758a0c16452908ea07de69092870dd0d 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 @@ -57,36 +57,36 @@ public class UserInfo extends CloneableEntity private Integer id; @Basic(optional = false) @NotNull - @Size(max = 64) + @Size(max = 256) @Column(name = "username") private String username; @Basic(optional = false) @NotNull - @Size(max = 64) + @Size(max = 256) @Column(name = "first_name") private String firstName; @Basic(optional = false) @NotNull - @Size(max = 64) + @Size(max = 256) @Column(name = "last_name") private String lastName; - @Size(max = 64) + @Size(max = 256) @Column(name = "middle_name") private String middleName; // @Pattern(regexp="[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?", message="Invalid email")//if the field contains email address consider using this annotation to enforce field validation - @Size(max = 2147483647) + @Size(max = 256) @Column(name = "email") private String email; - @Size(max = 120) + @Size(max = 256) @Column(name = "badge") private String badge; - @Size(max = 120) + @Size(max = 256) @Column(name = "globus_username") private String globusUsername; - @Size(max = 120) + @Size(max = 256) @Column(name = "description") private String description; - @Size(max = 64) + @Size(max = 256) @Column(name = "password") private String password; @ManyToMany(mappedBy = "userInfoList") diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserSetting.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserSetting.java index e618cc19670c5c180b641f0593d4953fd7ccaeae..1eb68ac3025450e268221d897fdef765d2c56f56 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserSetting.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserSetting.java @@ -38,7 +38,7 @@ public class UserSetting extends CloneableEntity @Basic(optional = false) @Column(name = "id") private Integer id; - @Size(max = 2147483647) + @Size(max = 256) @Column(name = "setting_value") private String settingValue; @JoinColumn(name = "user_id", referencedColumnName = "id") diff --git a/src/java/DmWebPortal/web/resources/css/portal.css b/src/java/DmWebPortal/web/resources/css/portal.css index 793ec59e97a889359932d4fa34c4e3807793b2fc..1efe9da13ebdba8e4ce2c7de9c9361270bb7d8ec 100644 --- a/src/java/DmWebPortal/web/resources/css/portal.css +++ b/src/java/DmWebPortal/web/resources/css/portal.css @@ -182,6 +182,12 @@ a:link:hover, a:visited:hover { float: left; } +.entityDataTextShort { + font-weight: normal; + float: left; + width: 150px; +} + .entityDataEmphasizedText { font-weight: bold; font-size: 105%; diff --git a/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueDestroyDialog.xhtml b/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueDestroyDialog.xhtml index 5831cf2d666f325809e9d11d8986ef7afb55cf80..48612f7ecaad0a1e8a42884c5fb0b4e33da61897 100644 --- a/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueDestroyDialog.xhtml +++ b/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueDestroyDialog.xhtml @@ -7,7 +7,8 @@ <p:confirmDialog id="allowedPolicyValueDestroyDialog" message="Delete policy property #{allowedPolicyValueController.getCurrentEntityInstanceName()}?" header="Delete Allowed Policy Value" severity="alert" widgetVar="allowedPolicyValueDestroyDialogWidget" styleClass="dialog"> - <p:commandButton value="Yes" oncomplete="allowedPolicyValueDestroyDialogWidget.hide()" action="#{allowedPolicyValueController.destroy()}" update="@form"/> + <ui:param name="deletedValue" value="#{allowedPolicyValueController.current}" /> + <p:commandButton value="Yes" oncomplete="allowedPolicyValueDestroyDialogWidget.hide()" action="#{policyPropertyController.updateAllowedValueList()}" actionListener="#{allowedPolicyValueController.destroy()}" update="@form"/> <p:commandButton value="No" onclick="PF('allowedPolicyValueDestroyDialogWidget').hide()" type="button" /> </p:confirmDialog> </ui:composition> diff --git a/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueEditPanelGrid.xhtml b/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueEditPanelGrid.xhtml deleted file mode 100644 index 70978919f709ddd11c9758b65fd8a0db3b9d3add..0000000000000000000000000000000000000000 --- a/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueEditPanelGrid.xhtml +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<ui:composition xmlns="http://www.w3.org/1999/xhtml" - xmlns:h="http://java.sun.com/jsf/html" - xmlns:p="http://primefaces.org/ui" - xmlns:ui="http://xmlns.jcp.org/jsf/facelets"> - - <ui:param name="allowedPolicyValueObject" value="#{allowedPolicyValueController.current}"/> - - <p:panelGrid columns="2" styleClass="createEntityDetails"> - - <h:outputLabel for="policyValue" value="Policy Value" styleClass="entityDataLabel"/> - <h:inputText id="policyValue" value="#{allowedPolicyValueObject.policyValue}" title="Policy Value" styleClass="entityDataText"/> - - <h:outputLabel for="description" value="Description" styleClass="entityDataLabel"/> - <h:inputText id="description" value="#{allowedPolicyValueObject.description}" title="Description" styleClass="entityDataText"/> - - </p:panelGrid> - -</ui:composition> - - diff --git a/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueListDataTable.xhtml b/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueListDataTable.xhtml index 36e12ebb7f6d370a09b91c21fb848318ef3b89ce..2c5bb0e839b5f8b3224b41c1da3d02cebe730677 100644 --- a/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueListDataTable.xhtml +++ b/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueListDataTable.xhtml @@ -41,12 +41,6 @@ and open the template in the editor. <h:outputText value="#{allowedPolicyValueViewObject.description}"/> </p:column> - <p:column headerText="Actions" > - <div class="actionLink"> - <p:commandLink action="#{allowedPolicyValueController.prepareView(allowedPolicyValueViewObject)}" styleClass="ui-icon ui-icon-info" title="View"/> - <p:commandLink action="#{allowedPolicyValueController.prepareEdit(allowedPolicyValueViewObject)}" rendered="#{loginController.admin}" styleClass="ui-icon ui-icon-pencil" title="Edit"/> - </div> - </p:column> </p:dataTable> </ui:composition> diff --git a/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueListEditDataTable.xhtml b/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueListEditDataTable.xhtml index 1bcbbfbd31e32d0add91a33c291d83720e70b9ca..8a643352114c016efbda13779358710e383e0530 100644 --- a/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueListEditDataTable.xhtml +++ b/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueListEditDataTable.xhtml @@ -36,18 +36,16 @@ and open the template in the editor. <p:column sortBy="#{allowedPolicyValueObject.policyValue}" headerText="Policy Value" filterBy="#{allowedPolicyValueObject.policyValue}" filterMatchMode="contains" > - <h:outputText value="#{allowedPolicyValueObject.policyValue}"/> + <h:inputText value="#{allowedPolicyValueObject.policyValue}" styleClass="entityDataTextShort"/> </p:column> <p:column sortBy="#{allowedPolicyValueObject.description}" headerText="Description" filterBy="#{allowedPolicyValueObject.description}" filterMatchMode="contains"> - <h:outputText value="#{allowedPolicyValueObject.description}"/> + <h:inputText value="#{allowedPolicyValueObject.description}" styleClass="entityDataTextShort"/> </p:column> <p:column headerText="Actions" > <div class="actionLink"> - <p:commandLink action="#{allowedPolicyValueController.prepareView(allowedPolicyValueObject)}" styleClass="ui-icon ui-icon-info" title="View"/> - <p:commandLink action="#{allowedPolicyValueController.prepareEdit(allowedPolicyValueObject)}" rendered="#{loginController.admin}" styleClass="ui-icon ui-icon-pencil" title="Edit"/> <p:commandLink oncomplete="PF('allowedPolicyValueDestroyDialogWidget').show()" rendered="#{loginController.admin}" styleClass="ui-icon ui-icon-trash" title="Delete" update="@form"> <f:setPropertyActionListener value="#{allowedPolicyValueObject}" target="#{allowedPolicyValueController.current}"/> </p:commandLink> diff --git a/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueViewPanelGrid.xhtml b/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueViewPanelGrid.xhtml deleted file mode 100644 index 48afdd96211366a4c1c5be3158b6247b27a0f01a..0000000000000000000000000000000000000000 --- a/src/java/DmWebPortal/web/views/allowedPolicyValue/allowedPolicyValueViewPanelGrid.xhtml +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<ui:composition xmlns="http://www.w3.org/1999/xhtml" - xmlns:h="http://java.sun.com/jsf/html" - xmlns:p="http://primefaces.org/ui" - xmlns:ui="http://xmlns.jcp.org/jsf/facelets"> - - <ui:param name="allowedPolicyValueObject" value="#{allowedPolicyValueController.current}"/> - - <p:panelGrid columns="2" styleClass="createEntityDetails"> - - <h:outputLabel for="policyValue" value="Policy Value" styleClass="entityDataLabel"/> - <h:outputText id="policyValue" value="#{allowedPolicyValueObject.policyValue}" title="Policy Value" styleClass="entityDataText"/> - - <h:outputLabel for="description" value="Description" styleClass="entityDataLabel"/> - <h:outputText id="description" value="#{allowedPolicyValueObject.description}" title="Description" styleClass="entityDataText"/> - - </p:panelGrid> - -</ui:composition> - - diff --git a/src/java/DmWebPortal/web/views/allowedPolicyValue/create.xhtml b/src/java/DmWebPortal/web/views/allowedPolicyValue/create.xhtml index ffca85f0b076cca312a18b1cf4ad47665aa7b453..38542ffe333dfcac84c518b6ce7de261a70680f2 100644 --- a/src/java/DmWebPortal/web/views/allowedPolicyValue/create.xhtml +++ b/src/java/DmWebPortal/web/views/allowedPolicyValue/create.xhtml @@ -23,7 +23,7 @@ <p/> <div class="actionButton"> - <p:commandButton action="#{allowedPolicyValueController.create()}" value="Save" alt="Save" icon="ui-icon-check" update="@form"/> + <p:commandButton action="#{policyPropertyController.updateAllowedValueList()}" actionListener="#{allowedPolicyValueController.create()}" value="Save" alt="Save" icon="ui-icon-check" update="@form"/> <p:commandButton action="#{allowedPolicyValueController.prepareList()}" immediate="true" value="Cancel" alt="Cancel" icon="ui-icon-cancel"/> </div> </h:form> diff --git a/src/java/DmWebPortal/web/views/allowedPolicyValue/edit.xhtml b/src/java/DmWebPortal/web/views/allowedPolicyValue/edit.xhtml deleted file mode 100644 index 06f82e826ef6c3d2605718fdead38f8711a0e755..0000000000000000000000000000000000000000 --- a/src/java/DmWebPortal/web/views/allowedPolicyValue/edit.xhtml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<ui:composition xmlns="http://www.w3.org/1999/xhtml" - xmlns:h="http://java.sun.com/jsf/html" - xmlns:p="http://primefaces.org/ui" - xmlns:f="http://java.sun.com/jsf/core" - xmlns:ui="http://xmlns.jcp.org/jsf/facelets" - xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> - - <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"> - <ui:define name="middleCenter"> - <h:form id="editallowedPolicyValueForm"> - - <div class="middleCenterLeftContent"> - <div class="pageTitle"> - <h1>Policy Type: #{policyTypeController.current.name}<br/> - Policy Property: #{policyPropertyController.current.name}<br/> - Allowed Policy Value</h1> - </div> - - <ui:include src="allowedPolicyValueEditPanelGrid.xhtml"/> - <p/> - <div class="actionButton"> - <p:commandButton action="#{allowedPolicyValueController.update()}" value="Save" alt="Save" icon="ui-icon-check" update="@form"/> - <p:commandButton action="#{allowedPolicyValueController.prepareList()}" immediate="true" value="Return" alt="Return" icon="ui-icon-arrowreturnthick-1-w"/> - </div> - </div> - - </h:form> - - </ui:define> - </ui:composition> -</ui:composition> diff --git a/src/java/DmWebPortal/web/views/allowedPolicyValue/view.xhtml b/src/java/DmWebPortal/web/views/allowedPolicyValue/view.xhtml deleted file mode 100644 index b9efe9d4bca4cf6e94353e707c5e28813e7dffc3..0000000000000000000000000000000000000000 --- a/src/java/DmWebPortal/web/views/allowedPolicyValue/view.xhtml +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<ui:composition xmlns="http://www.w3.org/1999/xhtml" - xmlns:h="http://java.sun.com/jsf/html" - xmlns:p="http://primefaces.org/ui" - xmlns:f="http://java.sun.com/jsf/core" - xmlns:ui="http://xmlns.jcp.org/jsf/facelets" - xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> - - <h:outputScript library="js/common" name="forwardNotLoggedin.js" rendered="#{!loginController.loggedIn}"/> - <ui:composition template="../../templates/dmViewTemplate.xhtml"> - <ui:define name="middleCenter"> - <h:form id="viewallowedPolicyValueForm"> - - <div class="middleCenterLeftContent"> - <div class="pageTitle"> - <h1>Policy Type: #{policyTypeController.current.name}<br/> - Policy Property: #{policyPropertyController.current.name}<br/> - Allowed Policy Value Details</h1> - </div> - - <ui:include src="allowedPolicyValueViewPanelGrid.xhtml"/> - - <p/> - <ui:param name="allowedPolicyValueObject" value="#{allowedPolicyValueController.current}"/> - <div class="actionButton"> - <p:commandButton action="#{allowedPolicyValueController.prepareEdit(allowedPolicyValueObject)}" rendered="#{loginController.admin}" value="Edit" alt="Edit" icon="ui-icon-pencil"/> - <p:commandButton action="#{allowedPolicyValueController.prepareList()}" value="Return" alt="Return" icon="ui-icon-arrowreturnthick-1-w"/> - </div> - </div> - - </h:form> - - </ui:define> - </ui:composition> - -</ui:composition> - - diff --git a/src/java/DmWebPortal/web/views/experiment/edit.xhtml b/src/java/DmWebPortal/web/views/experiment/edit.xhtml index 76c786d92521fdefa51037a1ceb15949ead59d87..d90afbf06e4e4dbaedd250493bffdc05e5dc1c5d 100644 --- a/src/java/DmWebPortal/web/views/experiment/edit.xhtml +++ b/src/java/DmWebPortal/web/views/experiment/edit.xhtml @@ -24,11 +24,10 @@ <div class="middleCenterLeftContent"> <ui:include src="experimentEditPanelGrid.xhtml"/> </div> - </p:tab> <p:tab title="Experiment Policies"> - + <ui:include src="experimentPoliciesEditSelection.xhtml"/> </p:tab> <p:tab title="Experiment Users" id="usersTab"> @@ -43,6 +42,7 @@ </div> <ui:include src="experimentUserRemoveDialog.xhtml" /> + <ui:include src="experimentPolicyRemoveDialog.xhtml" /> </h:form> </ui:define> </ui:composition> diff --git a/src/java/DmWebPortal/web/views/experiment/experimentPoliciesEditSelection.xhtml b/src/java/DmWebPortal/web/views/experiment/experimentPoliciesEditSelection.xhtml index 1950af37da21a248ef86d1ad9e5fb6785f9eb0a8..228b7ed0c4bfd4592780ddec61f66752395fae89 100644 --- a/src/java/DmWebPortal/web/views/experiment/experimentPoliciesEditSelection.xhtml +++ b/src/java/DmWebPortal/web/views/experiment/experimentPoliciesEditSelection.xhtml @@ -7,48 +7,60 @@ xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> - <p/> - <h:panelGrid columns="2" cellpadding="5"> - </h:panelGrid> - -<!-- <p:dataTable id="experimentPoliciesEditDataTable" - var="policyTypeObject" - value="#{experimentController.experimentPoliciesTypeTable.listDataModel}" - filteredValue="#{experimentController.experimentPoliciesTypeTable.filteredObjectList}" + <p:dataTable id="experimentPoliciesListDataTable" + var="experimentPolicyObject" + value="#{experimentController.experimentPolicyEditTable.listDataModel}" + filteredValue="#{experimentController.experimentPolicyEditTable.filteredObjectList}" paginator="true" paginatorAlwaysVisible="false" - rows="25" - binding="#{experimentController.experimentPoliciesTypeTable.listDataTable}" - widgetVar="policyEditWidget" + rows="#{experimentController.rows}" + binding="#{experimentController.experimentPolicyEditTable.listDataTable}" + widgetVar="policyListWidget" emptyMessage="No policies found."> - <p:column sortBy="#{policyTypeObject.policyType}" headerText="Policy Type" > - <h:outputText value="#{policyTypeObject.policyType}"/> - </p:column> + <p:columnGroup type="header" > + <p:column headerText="Property" /> + <p:column headerText="Value" /> + <p:column headerText="Units" /> + <p:column headerText="Description" /> + <p:column headerText="Actions" /> + </p:columnGroup> - <p:column> - <h:outputLabel for="policyValue" value="Policy Value" styleClass="entityDataLabel"/> - <p:selectOneMenu id="policyValue" value="#{policyTypeObject.policyValue}" styleClass="entityDataText"> - <f:selectItem itemLabel="Select Type" itemValue="" noSelectionOption="true" /> - <f:selectItems value="#{experimentController.getAllowedPolicies(policyTypeObject.policyType)}" - var="allowedPolicy" - itemValue="#{policyAValue}" - itemLabel="#{policyAValue.name}" - itemDescription="#{policyAValue.description}" /> - </p:selectOneMenu> - </p:column> + <p:subTable var="propertyValue" value="#{experimentPolicyObject.getExperimentPolicyPropertyValueList()}" > + <f:facet name="header" > + <h:outputText value="#{experimentPolicyObject.policyType.name} Policy"/> + </f:facet> - <p:column sortBy="#{policyTypeObject.policyValue}" headerText="Policy Value" - filterBy="#{policyTypeObject.policyValue}" filterMatchMode="contains" > - <h:outputText value="#{policyTypeObject.policyValue}"/> - </p:column> + <p:column > + <h:outputText value="#{propertyValue.getPolicyProperty().name}"/> + </p:column> + <p:column> + <h:inputText id="propertyValue" value="#{propertyValue.policyPropertyValue}" rendered="#{!policyPropertyController.hasAllowedValues(propertyValue.getPolicyProperty())}" styleClass="entityDataTextShort"/> - <p:column sortBy="#{policyTypeObject.policyType.description}" headerText="Description" - filterBy="#{policyTypeObject.policyType.description}" filterMatchMode="contains"> - <h:outputText value="#{policyTypeObject.policyType.description}"/> + <p:selectOneMenu id="propertyValueSelect" value="#{propertyValue.policyPropertyValue}" 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: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"> + <f:setPropertyActionListener value="#{propertyValue}" target="#{experimentController.experimentPropertyToDelete}"/> + </p:commandLink> + </div> </p:column> - </p:dataTable>--> + </p:subTable> + </p:dataTable> </ui:composition> diff --git a/src/java/DmWebPortal/web/views/experiment/experimentPoliciesViewListDataTable.xhtml b/src/java/DmWebPortal/web/views/experiment/experimentPoliciesViewListDataTable.xhtml index 8df317056ea9d125b302798ad7c0ef7f79985d12..fc6dfd9a45d97c6c7e30af2db2e63d8142754a59 100644 --- a/src/java/DmWebPortal/web/views/experiment/experimentPoliciesViewListDataTable.xhtml +++ b/src/java/DmWebPortal/web/views/experiment/experimentPoliciesViewListDataTable.xhtml @@ -9,30 +9,51 @@ <p/> <p:dataTable id="experimentPoliciesListDataTable" - var="policyObject" - value="#{experimentController.experimentPoliciesTable.listDataModel}" - filteredValue="#{experimentController.experimentPoliciesTable.filteredObjectList}" + var="experimentPolicyObject" + value="#{experimentController.experimentPolicyListTable.listDataModel}" + filteredValue="#{experimentController.experimentPolicyListTable.filteredObjectList}" paginator="true" paginatorAlwaysVisible="false" rows="#{experimentController.rows}" - binding="#{experimentController.experimentPoliciesTable.listDataTable}" + binding="#{experimentController.experimentPolicyListTable.listDataTable}" widgetVar="policyListWidget" emptyMessage="No policies found."> - <p:column sortBy="#{policyObject.policyType.name}" headerText="Policy Type" > - <h:outputText value="#{policyObject.policyType.name}"/> - </p:column> + <p:columnGroup type="header" > + <p:column headerText="Property" /> + <p:column headerText="Value" /> + <p:column headerText="Units" /> + <p:column headerText="Description" /> + <p:column headerText="Last Modified By" /> + <p:column headerText="Last Modified Date" /> + </p:columnGroup> - <p:column sortBy="#{policyObject.policyValue}" headerText="Policy Value" - filterBy="#{policyObject.policyValue}" filterMatchMode="contains" > - <h:outputText value="#{policyObject.policyValue}"/> - </p:column> - - <p:column sortBy="#{policyObject.description}" headerText="Description" - filterBy="#{policyObject.description}" filterMatchMode="contains"> - <h:outputText value="#{policyObject.description}"/> - </p:column> + <p:subTable var="propertyValue" value="#{experimentPolicyObject.getExperimentPolicyPropertyValueList()}" > + <f:facet name="header" > + <h:outputText value="#{experimentPolicyObject.policyType.name} Policy"/> + </f:facet> + <p:column > + <h:outputText value="#{propertyValue.getPolicyProperty().name}"/> + </p:column> + <p:column> + <h:outputText value="#{propertyValue.policyPropertyValue}"/> + </p:column> + <p:column> + <h:outputText value="#{propertyValue.getPolicyProperty().units}"/> + </p:column> + <p:column> + <h:outputText value="#{propertyValue.getPolicyProperty().description}"/> + </p:column> + <p:column> + <h:outputText value="#{propertyValue.modifiedBy}"/> + </p:column> + <p:column> + <h:outputText id="startDate" value="#{propertyValue.modifiedDate}" styleClass="entityDataText"> + <f:convertDateTime pattern="#{resources.DatePattern}" type="date" /> + </h:outputText> + </p:column> + </p:subTable> </p:dataTable> </ui:composition> diff --git a/src/java/DmWebPortal/web/views/experiment/experimentPolicyAddDialog.xhtml b/src/java/DmWebPortal/web/views/experiment/experimentPolicyAddDialog.xhtml new file mode 100644 index 0000000000000000000000000000000000000000..7b7725b74a9f724038452570eed3ce18b661a2f7 --- /dev/null +++ b/src/java/DmWebPortal/web/views/experiment/experimentPolicyAddDialog.xhtml @@ -0,0 +1,70 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<ui:composition xmlns="http://www.w3.org/1999/xhtml" + xmlns:p="http://primefaces.org/ui" + xmlns:ui="http://xmlns.jcp.org/jsf/facelets" + xmlns:h="http://xmlns.jcp.org/jsf/html" + xmlns:f="http://xmlns.jcp.org/jsf/core" + xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> + + <p:dialog id="experimentPolicyAddDialog" + header="Add experiment policies" widgetVar="experimentPolicyAddDialogWidget" dynamic="true" styleClass="dialog" width="800"> + + <p:dataTable id="addExperimentPolicyList" + var="experimentPolicyObject" + value="#{experimentController.noPolicyValueTable.listDataModel}" + filteredValue="#{experimentController.noPolicyValueTable.filteredObjectList}" + paginator="true" + paginatorAlwaysVisible="false" + rows="#{experimentController.rows}" + binding="#{experimentController.noPolicyValueTable.listDataTable}" + widgetVar="experimentPolicyAddTableWidgetVar" + selection="#{experimentController.getNoPolicyValueTable().getNoPropertyList(experimentPolicyObject.getId()).selectedObjectList}" + rowKey="#{propertyValue.getPolicyProperty().name}" + 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 > + <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="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> + </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 new file mode 100644 index 0000000000000000000000000000000000000000..caea55a53eeef7109ac23621fcaacb87e0bd61c7 --- /dev/null +++ b/src/java/DmWebPortal/web/views/experiment/experimentPolicyRemoveDialog.xhtml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<ui:composition xmlns="http://www.w3.org/1999/xhtml" + xmlns:p="http://primefaces.org/ui" + xmlns:ui="http://xmlns.jcp.org/jsf/facelets"> + + <p:confirmDialog id="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="No" onclick="PF('experimentPolicyRemoveDialogWidget').hide()" type="button" /> + </p:confirmDialog> +</ui:composition> diff --git a/src/java/DmWebPortal/web/views/experiment/view.xhtml b/src/java/DmWebPortal/web/views/experiment/view.xhtml index 41bcf85ac76f7a332f4045f65674a8b463bd46b3..7a1f4f8a72d336eb6de56dc8a7871f477b6864f4 100644 --- a/src/java/DmWebPortal/web/views/experiment/view.xhtml +++ b/src/java/DmWebPortal/web/views/experiment/view.xhtml @@ -16,13 +16,15 @@ </div> <ui:param name="experimentObject" value="#{experimentController.current}"/> - <p:accordionPanel multiple="true" activeIndex="0,1" > + <p:accordionPanel multiple="true" activeIndex="0,1,2" > <p:tab title="Experiment Properties"> <div class="middleCenterLeftContent"> <ui:include src="experimentViewPanelGrid.xhtml"/> </div> </p:tab> - + <p:tab title="Experiment Policies"> + <ui:include src="experimentPoliciesViewListDataTable.xhtml"/> + </p:tab> <p:tab title="Experiment Users"> <ui:include src="experimentUsersListDataTable.xhtml"/> </p:tab> diff --git a/src/java/DmWebPortal/web/views/policyProperty/edit.xhtml b/src/java/DmWebPortal/web/views/policyProperty/edit.xhtml index ce871bc18e31aa64d486d08bfdf67ba616d6e04b..95fe25e30c4b2cb080e681a0db6ce66268fd6f42 100644 --- a/src/java/DmWebPortal/web/views/policyProperty/edit.xhtml +++ b/src/java/DmWebPortal/web/views/policyProperty/edit.xhtml @@ -35,7 +35,7 @@ <p/> <div class="actionButton"> - <p:commandButton action="#{policyPropertyController.update()}" actionListener="#{allowedPolicyValueController.clear()}" value="Save" alt="Save" icon="ui-icon-check" update="@form"/> + <p:commandButton action="#{policyPropertyController.update()}" actionListener="#{allowedPolicyValueController.update()}" value="Save" alt="Save" icon="ui-icon-check" update="@form"/> <p:commandButton action="#{policyPropertyController.prepareList()}" immediate="true" value="Return" alt="Return" icon="ui-icon-arrowreturnthick-1-w"/> </div> </div> diff --git a/src/java/DmWebPortal/web/views/roleType/roleTypeListDataTable.xhtml b/src/java/DmWebPortal/web/views/roleType/roleTypeListDataTable.xhtml index 9f8bf29fa458fda763ed0e84266c7cdd78f5cbc8..50023cedba3984e7c0a40e2a1256fcc52a74c7a6 100644 --- a/src/java/DmWebPortal/web/views/roleType/roleTypeListDataTable.xhtml +++ b/src/java/DmWebPortal/web/views/roleType/roleTypeListDataTable.xhtml @@ -32,12 +32,12 @@ filterBy="#{roleTypeObject.description}" filterMatchMode="contains"> <h:outputText value="#{roleTypeObject.description}"/> </p:column> - + <ui:param name="isAdmin" value="#{loginController.admin}" /> <p:column headerText="Actions" > <div class="actionLink"> <p:commandLink action="#{roleTypeController.prepareView(roleTypeObject)}" styleClass="ui-icon ui-icon-info" title="View"/> <p:commandLink action="#{roleTypeController.prepareEdit(roleTypeObject)}" rendered="#{loginController.admin}" styleClass="ui-icon ui-icon-pencil" title="Edit"/> - <p:commandLink action="#{userSystemRoleController.prepareSystemRoleView()}" rendered="#{roleTypeController.isRoleSystemType(roleTypeObject)}" styleClass="ui-icon ui-icon-person" title="List All" > + <p:commandLink action="#{userSystemRoleController.prepareSystemRoleView()}" rendered="#{roleTypeController.isRoleSystemType(roleTypeObject) and isAdmin}" styleClass="ui-icon ui-icon-person" title="List All" > <f:setPropertyActionListener value="#{roleTypeObject}" target="#{userSystemRoleController.systemRole}"/> </p:commandLink> </div> diff --git a/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml b/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml index 3d5782fa212da47c1b9142e990e69a00bf5b08c6..06efa7267244b1a07e854a040da78726d20c8e03 100644 --- a/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml +++ b/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml @@ -8,6 +8,7 @@ xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"> <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"> <ui:define name="middleCenter"> <div class="pageTitle">