diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/CrudEntityController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/CrudEntityController.java index 8e233ac673bd57291d8721f458a7dbe8d83018fc..aa9b5d95331ba3c134a918e4647fb37340f36dfe 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/CrudEntityController.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/CrudEntityController.java @@ -122,10 +122,15 @@ public abstract class CrudEntityController<EntityType extends CloneableEntity, F public String prepareView(EntityType entity) { + clear(); logger.debug("Preparing view"); current = entity; return "view?faces-redirect=true"; } + + public void clear() { + + } public String view() { return "view?faces-redirect=true"; 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 c1a4c8f596a5676f65cc81244883358decd8e75a..50d9bb2e05e5435b222ae449fb6cfc9e62e1cbad 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 @@ -127,18 +127,16 @@ public class UserInfoController extends CrudEntityController<UserInfo, UserInfoF roleTypes = experimentRoles.values(); ExperimentUser experimentUser; for (Experiment experiment : list) { - if ((experimentUser = userExperiments.get(experiment.getId())) == null) { - experimentUser = new ExperimentUser(experiment.getId(), getCurrent().getId()); - experimentUser.setExperimentName(experiment.getName()); - experimentUser.setDescription(experiment.getDescription()); - userExperiments.put(experiment.getId(), experimentUser); - } + experimentUser = new ExperimentUser(experiment.getId(), getCurrent().getId()); + experimentUser.setExperimentName(experiment.getName()); + experimentUser.setDescription(experiment.getDescription()); + userExperiments.add(experimentUser); for (RoleType roleType : roleTypes) { boolean inRole = getCurrent().inRole(roleType.getId(), experiment.getId()); experimentUser.setIsInRole(roleType, inRole); } } - return new ArrayList<>(userExperiments.values()); + return new ArrayList<>(userExperiments); } @Override @@ -149,7 +147,7 @@ public class UserInfoController extends CrudEntityController<UserInfo, UserInfoF private UserInfoController.UserExperimentsTable userExperimentsListTable = new UserInfoController.UserExperimentsTable(); - private final Map<Integer, ExperimentUser> userExperiments = new HashMap<>(); + private final List<ExperimentUser> userExperiments = new ArrayList<>(); private final Map<String, RoleType> experimentRoles = new HashMap<>(); int maxExperimentRoleTypeId; boolean initialized = false; @@ -170,9 +168,10 @@ public class UserInfoController extends CrudEntityController<UserInfo, UserInfoF initialized = true; } + @Override public void clear() { userExperimentsListTable.resetList(); - userExperimentsListTable.resetFilterList(); + userExperiments.clear(); } public UserExperimentsTable getUserExperimentsListTable() { @@ -227,12 +226,6 @@ public class UserInfoController extends CrudEntityController<UserInfo, UserInfoF logger.debug("Inserting new user " + user.getUsername()); } - @Override - public String update() { - clear(); - return super.update(); - } - private void verifyMandatoryParam(UserInfo user) throws MissingProperty { int missing = 0; if ((user.getUsername() == null) || (user.getUsername().length() == 0)) { @@ -280,8 +273,7 @@ public class UserInfoController extends CrudEntityController<UserInfo, UserInfoF } return "User " + user.getUsername() + " already exists."; } - - + public String prepareSessionUserEdit(String viewPath) { UserInfo sessionUser = (UserInfo) SessionUtility.getUser(); if (sessionUser == null) { diff --git a/src/java/DmWebPortal/web/views/experiment/create.xhtml b/src/java/DmWebPortal/web/views/experiment/create.xhtml index f9a48d18e29bee48c6059360935716fbd88484d3..a22b87051c136c754c20204bb4e264f1de197c9f 100644 --- a/src/java/DmWebPortal/web/views/experiment/create.xhtml +++ b/src/java/DmWebPortal/web/views/experiment/create.xhtml @@ -7,7 +7,7 @@ xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" template="../../templates/contentViewTemplate4x3.xhtml"> - + <ui:define name="middleCenter"> <div class="pageTitle"> <h1>Add Experiment</h1> diff --git a/src/java/DmWebPortal/web/views/experiment/edit.xhtml b/src/java/DmWebPortal/web/views/experiment/edit.xhtml index 7ca74d86d81f313d931a36b987b4a377ad957c43..e61944879cb9f39d22b7019cadd04064f38baa6b 100644 --- a/src/java/DmWebPortal/web/views/experiment/edit.xhtml +++ b/src/java/DmWebPortal/web/views/experiment/edit.xhtml @@ -12,7 +12,7 @@ <h:form id="editExperimentForm"> <div class="pageTitle"> - <h1>Edit Experiment</h1> + <h1>Edit Experiment #{experimentController.current.name}</h1> </div> <p:accordionPanel multiple="true" dynamic="true" cache="false" activeIndex="0,1" > diff --git a/src/java/DmWebPortal/web/views/experiment/experimentEditPanelGrid.xhtml b/src/java/DmWebPortal/web/views/experiment/experimentEditPanelGrid.xhtml index 8592664d047daa8c09f20646f15d4f8ec4bb2ab9..47a543821dd15a4fc43acec1e7f6d66ef3eaf8a8 100644 --- a/src/java/DmWebPortal/web/views/experiment/experimentEditPanelGrid.xhtml +++ b/src/java/DmWebPortal/web/views/experiment/experimentEditPanelGrid.xhtml @@ -12,7 +12,7 @@ <p:panelGrid columns="2" > <h:outputLabel for="name" value="Name" styleClass="entityDataEmphasizedLabel"/> - <h:inputText id="name" value="#{experimentObject.name}" title="Name" styleClass="entityDataEmphasizedText"/> + <h:outputText id="name" value="#{experimentObject.name}" title="Name" styleClass="entityDataEmphasizedText"/> <h:outputLabel for="experimentType" value="Experiment Type" styleClass="entityDataLabel"/> <p:selectOneMenu id="experimentType" value="#{experimentObject.experimentType}" styleClass="entityDataText"> diff --git a/src/java/DmWebPortal/web/views/experiment/experimentUsersEditDataTable.xhtml b/src/java/DmWebPortal/web/views/experiment/experimentUsersEditDataTable.xhtml index cd6a59f38d317469c467e4bc0ed44fc50415c030..0a483d7d0af94a9c4190407fdc0ef5da16405a4c 100644 --- a/src/java/DmWebPortal/web/views/experiment/experimentUsersEditDataTable.xhtml +++ b/src/java/DmWebPortal/web/views/experiment/experimentUsersEditDataTable.xhtml @@ -20,13 +20,16 @@ <p:tooltip for="ResetFiltersButton" value="Reset filters."/> </p:commandButton> + <p:commandButton id="#{entityTypeName}NoOp" style="visibility:hidden" value="NoOp"/> + <p:defaultCommand target="#{entityTypeName}NoOp"/> + <p:dataTable id="experimentUsersEditDataTable" var="experimentUserObject" value="#{experimentController.experimentUsersEditTable.listDataModel}" filteredValue="#{experimentController.experimentUsersEditTable.filteredObjectList}" paginator="true" paginatorAlwaysVisible="false" - rows="25" + rows="8" binding="#{experimentController.experimentUsersEditTable.listDataTable}" widgetVar="experimentUsersEditWidget" emptyMessage="No users found."> @@ -44,17 +47,17 @@ <h:outputText value="#{experimentUserObject.name}"/> </p:column> - <p:column headerText="Manager"> + <p:column sortBy="#{!experimentUserObject.isManager}" headerText="Manager"> <h:outputText value="" styleClass="ui-icon ui-icon-check" rendered="#{experimentUserObject.isManager and !isAdmin and !isManager}" /> <p:selectBooleanCheckbox value="#{experimentUserObject.isManager}" rendered="#{isAdmin or isManager}" immediate="true" /> </p:column> - <p:column headerText="Principal Investigator"> + <p:column sortBy="#{!experimentUserObject.isPI}" headerText="Principal Investigator"> <h:outputText value="" styleClass="ui-icon ui-icon-check" rendered="#{experimentUserObject.isPI and !isAdmin and !isPi}" /> <p:selectBooleanCheckbox value="#{experimentUserObject.isPI}" rendered="#{isAdmin or isPi}" /> </p:column> - <p:column headerText="User"> + <p:column sortBy="#{!experimentUserObject.isUser}" headerText="User"> <h:outputText value="" styleClass="ui-icon ui-icon-check" rendered="#{experimentUserObject.isUser and !isAdmin and !isPi}" /> <p:selectBooleanCheckbox value="#{experimentUserObject.isUser}" rendered="#{isAdmin or isPi}" /> </p:column> diff --git a/src/java/DmWebPortal/web/views/experiment/experimentUsersListDataTable.xhtml b/src/java/DmWebPortal/web/views/experiment/experimentUsersListDataTable.xhtml index 3ffb91e5a1bba05872c0f06f268f2782fd4d16a4..b17657ad3873b2e41e176ce271c49d4d8d57eac6 100644 --- a/src/java/DmWebPortal/web/views/experiment/experimentUsersListDataTable.xhtml +++ b/src/java/DmWebPortal/web/views/experiment/experimentUsersListDataTable.xhtml @@ -5,9 +5,12 @@ xmlns:p="http://primefaces.org/ui" xmlns:ui="http://xmlns.jcp.org/jsf/facelets"> + <p:commandButton id="ResetFiltersButton" action="#{experimentController.experimentUsersListTable.resetList()}" alt="Clear Filters" icon="ui-icon-refresh" styleClass="actionButtonRight" oncomplete="PF('experimentUsersListWidget').clearFilters()" update="experimentUsersListDataTable"> <p:tooltip for="ResetFiltersButton" value="Reset filters."/> </p:commandButton> + <p:commandButton id="#{entityTypeName}NoOp" style="visibility:hidden" value="NoOp"/> + <p:defaultCommand target="#{entityTypeName}NoOp"/> <p:dataTable id="experimentUsersListDataTable" var="experimentUserObject" @@ -31,15 +34,15 @@ </p:column> - <p:column headerText="Manager"> + <p:column sortBy="#{!experimentUserObject.isManager}" headerText="Manager" > <h:outputText value="" styleClass="ui-icon ui-icon-check" rendered="#{experimentUserObject.isManager}" /> </p:column> - <p:column headerText="Principal Investigator"> + <p:column sortBy="#{!experimentUserObject.isPI}" headerText="Principal Investigator"> <h:outputText value="" styleClass="ui-icon ui-icon-check" rendered="#{experimentUserObject.isPI}" /> </p:column> - <p:column headerText="User"> + <p:column sortBy="#{!experimentUserObject.isUser}" headerText="User"> <h:outputText value="" styleClass="ui-icon ui-icon-check" rendered="#{experimentUserObject.isUser}" /> </p:column> diff --git a/src/java/DmWebPortal/web/views/experiment/view.xhtml b/src/java/DmWebPortal/web/views/experiment/view.xhtml index e8582377f4f8c90707d2aec5c3791e8bb2b4fbe3..f059e9623db9795bc521d8807c00c05f2c2c237a 100644 --- a/src/java/DmWebPortal/web/views/experiment/view.xhtml +++ b/src/java/DmWebPortal/web/views/experiment/view.xhtml @@ -11,7 +11,7 @@ <ui:define name="middleCenter"> <h:form id="viewExperimentForm"> <div class="pageTitle"> - <h1>Experiment Details</h1> + <h1>Experiment #{experimentController.current.name}</h1> </div> <ui:param name="experimentObject" value="#{experimentController.current}"/> diff --git a/src/java/DmWebPortal/web/views/roleType/list.xhtml b/src/java/DmWebPortal/web/views/roleType/list.xhtml index 73dcee27d1e34115b0776779d2903157b897a2e4..3ae2e81e4a1e100071baf9bbc47bf3c6b737af04 100644 --- a/src/java/DmWebPortal/web/views/roleType/list.xhtml +++ b/src/java/DmWebPortal/web/views/roleType/list.xhtml @@ -20,6 +20,8 @@ <p:commandButton id="#{entityTypeName}ResetFiltersButton" action="#{entityController.resetList()}" alt="Clear Filters" icon="ui-icon-refresh" styleClass="actionButtonRight"> <p:tooltip for="#{entityTypeName}ResetFiltersButton" value="Reset list filters."/> </p:commandButton> + <p:commandButton id="#{entityTypeName}NoOp" style="visibility:hidden" value="NoOp"/> + <p:defaultCommand target="#{entityTypeName}NoOp"/> </div> <h:panelGroup> diff --git a/src/java/DmWebPortal/web/views/userInfo/userExperimentsListDataTable.xhtml b/src/java/DmWebPortal/web/views/userInfo/userExperimentsListDataTable.xhtml index 2df53a706970f12b114ae3a4b2f529022466d211..74727954c3c1b08e7c7aad46c2fd77a3cde39332 100644 --- a/src/java/DmWebPortal/web/views/userInfo/userExperimentsListDataTable.xhtml +++ b/src/java/DmWebPortal/web/views/userInfo/userExperimentsListDataTable.xhtml @@ -5,9 +5,13 @@ xmlns:p="http://primefaces.org/ui" xmlns:ui="http://xmlns.jcp.org/jsf/facelets"> - <p:commandButton id="ResetFiltersButton" action="#{userInfoController.userExperimentsListTable.resetList()}" alt="Clear Filters" icon="ui-icon-refresh" styleClass="actionButtonRight" oncomplete="PF('userExperimentsListWidget').clearFilters()" update="userExperimentsListDataTable"> - <p:tooltip for="ResetFiltersButton" value="Reset filters."/> - </p:commandButton> + <div> + <p:commandButton id="ResetFiltersButton" action="#{userInfoController.userExperimentsListTable.resetList()}" alt="Clear Filters" icon="ui-icon-refresh" styleClass="actionButtonRight" oncomplete="PF('userExperimentsListWidget').clearFilters()" update="userExperimentsListDataTable"> + <p:tooltip for="ResetFiltersButton" value="Reset filters."/> + </p:commandButton> + <p:commandButton id="#{entityTypeName}NoOp" style="visibility:hidden" value="NoOp"/> + <p:defaultCommand target="#{entityTypeName}NoOp"/> + </div> <p:dataTable id="userExperimentsListDataTable" var="userExperimentObject" @@ -15,7 +19,7 @@ filteredValue="#{userInfoController.userExperimentsListTable.filteredObjectList}" paginator="true" paginatorAlwaysVisible="false" - rows="25" + rows="6" binding="#{userInfoController.userExperimentsListTable.listDataTable}" widgetVar="userExperimentsListWidget" emptyMessage="No users found."> @@ -31,15 +35,15 @@ </p:column> - <p:column headerText="Manager"> + <p:column sortBy="#{!experimentUserObject.isManager}" headerText="Manager"> <h:outputText value="" styleClass="ui-icon ui-icon-check" rendered="#{userExperimentObject.isManager}" /> </p:column> - <p:column headerText="Principal Investigator"> + <p:column sortBy="#{!experimentUserObject.isPI}" headerText="Principal Investigator"> <h:outputText value="" styleClass="ui-icon ui-icon-check" rendered="#{userExperimentObject.isPI}" /> </p:column> - <p:column headerText="User"> + <p:column sortBy="#{!experimentUserObject.isUser}" headerText="User"> <h:outputText value="" styleClass="ui-icon ui-icon-check" rendered="#{userExperimentObject.isUser}" /> </p:column> diff --git a/src/java/DmWebPortal/web/views/userInfo/userInfoListDataTable.xhtml b/src/java/DmWebPortal/web/views/userInfo/userInfoListDataTable.xhtml index b75e01aa80f15284622fcb9c30970b73244129e8..fab31128358d0ef53a3cfaabb0ea16cc7e064613 100644 --- a/src/java/DmWebPortal/web/views/userInfo/userInfoListDataTable.xhtml +++ b/src/java/DmWebPortal/web/views/userInfo/userInfoListDataTable.xhtml @@ -54,7 +54,9 @@ <p:column headerText="Actions" > <div class="actionLink"> - <p:commandLink action="#{userInfoController.prepareView(userInfoObject)}" styleClass="ui-icon ui-icon-info" title="View"/> + <p:commandLink action="#{userInfoController.prepareView(userInfoObject)}" styleClass="ui-icon ui-icon-info" title="View"> + <f:setPropertyActionListener value="#{userInfoObject}" target="#{userInfoController.current}"/> + </p:commandLink> <p:commandLink action="#{userInfoController.prepareEdit(userInfoObject)}" rendered="#{loginController.admin}" styleClass="ui-icon ui-icon-pencil" title="Edit"/> <p:commandLink oncomplete="PF('userInfoDestroyDialogWidget').show()" rendered="#{loginController.admin}" styleClass="ui-icon ui-icon-trash" title="Delete" update="@form"> <f:setPropertyActionListener value="#{userInfoObject}" target="#{userInfoController.current}"/> diff --git a/src/java/DmWebPortal/web/views/userInfo/view.xhtml b/src/java/DmWebPortal/web/views/userInfo/view.xhtml index 50f39a1ec7d6762b14c40492522a9024c89dece8..5847bc78b936108867ba93fb8e920e25e331f42b 100644 --- a/src/java/DmWebPortal/web/views/userInfo/view.xhtml +++ b/src/java/DmWebPortal/web/views/userInfo/view.xhtml @@ -11,7 +11,7 @@ <ui:define name="middleCenter"> <h:form id="viewUserInfoForm"> <div class="pageTitle"> - <h1>User Details</h1> + <h1>User #{userInfoController.current.username}</h1> </div> <ui:param name="userInfoObject" value="#{userInfoController.current}"/> diff --git a/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml b/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml index f23059ab4a29180e250570f4acd80a96db067f8a..652683ec88f93f5bfd5b28279377c3d028ed503c 100644 --- a/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml +++ b/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml @@ -19,10 +19,12 @@ <p:commandButton id="systemRoleAddButton" value="Add" onclick="PF('systemRoleAddDialogWidget').show();" rendered="#{loginController.admin}" icon="ui-icon-plus" > <p:tooltip for="systemRoleAddButton" value="Add new Administrators."/> </p:commandButton> - + <p:commandButton id="ResetFiltersButton" action="#{userSystemRoleController.resetSystemRoleUserList()}" alt="Clear Filters" icon="ui-icon-refresh" styleClass="actionButtonRight"> <p:tooltip for="ResetFiltersButton" value="Reset list filters."/> </p:commandButton> + <p:commandButton id="#{entityTypeName}NoOp" style="visibility:hidden" value="NoOp"/> + <p:defaultCommand target="#{entityTypeName}NoOp"/> </div> <h:panelGroup> diff --git a/src/java/DmWebPortal/web/views/userSystemRole/systemRoleAddDialog.xhtml b/src/java/DmWebPortal/web/views/userSystemRole/systemRoleAddDialog.xhtml index 033d51d19551542076d2c11079f86801ac448a0f..df7c4fd97b72679fc18640968fb661589dda8414 100644 --- a/src/java/DmWebPortal/web/views/userSystemRole/systemRoleAddDialog.xhtml +++ b/src/java/DmWebPortal/web/views/userSystemRole/systemRoleAddDialog.xhtml @@ -13,12 +13,13 @@ <p:dialog id="adminAddDialog" header="Add Administrators" widgetVar="systemRoleAddDialogWidget" dynamic="true" styleClass="dialog" width="800"> - <div class="actionButton"> - <p:commandButton id="ResetFilters" actionListener="#{userSystemRoleController.noSystemRoleTable.resetFilterList()}" alt="Clear Filters" icon="ui-icon-refresh" styleClass="actionButtonRight" oncomplete="PF('systemRoleAddDialogWidget').show()" update="adminAddDialog" > - <p:tooltip for="ResetFilters" value="Reset list filters."/> - </p:commandButton> - </div> - + <div class="actionButton"> + <p:commandButton id="ResetFilters" actionListener="#{userSystemRoleController.noSystemRoleTable.resetFilterList()}" alt="Clear Filters" icon="ui-icon-refresh" styleClass="actionButtonRight" oncomplete="PF('systemRoleAddDialogWidget').show()" update="adminAddDialog" > + <p:tooltip for="ResetFilters" value="Reset list filters."/> + </p:commandButton> + <p:commandButton id="systemRoleNoOp" style="visibility:hidden" value="SNoOp"/> + </div> + <div> <p:dataTable id="addSystemRoleList" var="adminUser"