From 839bba939eb0ae51bb458dae8354671195361e8e Mon Sep 17 00:00:00 2001 From: "Barbara B. Frosik" <bfrosik@aps.anl.gov> Date: Wed, 4 Feb 2015 23:17:14 +0000 Subject: [PATCH] --- .../controllers/CrudEntityController.java | 5 ++++ .../controllers/UserInfoController.java | 26 +++++++------------ .../web/views/experiment/create.xhtml | 2 +- .../web/views/experiment/edit.xhtml | 2 +- .../experiment/experimentEditPanelGrid.xhtml | 2 +- .../experimentUsersEditDataTable.xhtml | 11 +++++--- .../experimentUsersListDataTable.xhtml | 9 ++++--- .../web/views/experiment/view.xhtml | 2 +- .../DmWebPortal/web/views/roleType/list.xhtml | 2 ++ .../userExperimentsListDataTable.xhtml | 18 ++++++++----- .../userInfo/userInfoListDataTable.xhtml | 4 ++- .../DmWebPortal/web/views/userInfo/view.xhtml | 2 +- .../web/views/userSystemRole/list.xhtml | 4 ++- .../userSystemRole/systemRoleAddDialog.xhtml | 13 +++++----- 14 files changed, 58 insertions(+), 44 deletions(-) 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 8e233ac6..aa9b5d95 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 c1a4c8f5..50d9bb2e 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 f9a48d18..a22b8705 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 7ca74d86..e6194487 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 8592664d..47a54382 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 cd6a59f3..0a483d7d 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 3ffb91e5..b17657ad 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 e8582377..f059e962 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 73dcee27..3ae2e81e 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 2df53a70..74727954 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 b75e01aa..fab31128 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 50f39a1e..5847bc78 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 f23059ab..652683ec 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 033d51d1..df7c4fd9 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" -- GitLab