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

No commit message

No commit message
parent 3b7e0497
No related branches found
No related tags found
No related merge requests found
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package gov.anl.aps.dm.portal.controllers;
import gov.anl.aps.dm.portal.model.beans.UserExperimentRoleFacade;
import gov.anl.aps.dm.portal.model.entities.Experiment;
import gov.anl.aps.dm.portal.model.entities.UserInfo;
import java.io.Serializable;
import java.util.List;
import javax.ejb.EJB;
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
import org.apache.log4j.Logger;
@Named("experimentUsersController")
@SessionScoped
public class ExperimentUsersController implements Serializable {
private static final Logger logger = Logger.getLogger(ExperimentUsersController.class.getName());
@EJB
private UserExperimentRoleFacade userExperimentRoleFacade;
public ExperimentUsersController() {
this.experimentUsersTable = new ExperimentUsersTable();
}
class ExperimentUsersTable extends DataTableController<UserInfo> {
@Override
public String getEntityTypeName() {
return "UserInfo";
}
@Override
public List<UserInfo> findAll() {
// find all users in experiment
return null;
}
}
private ExperimentUsersTable experimentUsersTable;
private Experiment experiment;
public Experiment getExperiment() {
return experiment;
}
public void setExperiment(Experiment experiment) {
this.experiment = experiment;
}
public ExperimentUsersTable getExperimentUsersTable() {
return experimentUsersTable;
}
public void setExperimentUsersTable(ExperimentUsersTable experimentUsersTable) {
this.experimentUsersTable = experimentUsersTable;
}
public String getCurrentEntityInstanceName() {
return null;
}
public String remove() {
return null;
}
public boolean canRemove(String removerUsername, UserInfo removee) {
return false;
}
public boolean canAddUsers(String username) {
return true;
}
public boolean isManager(String userId) {
return true;
}
public boolean isPI(String userId) {
return true;
}
public boolean isUser(String userId) {
return true;
}
public boolean canAssignManager(String userId) {
return true;
}
public boolean canAssignPI(String userId) {
return true;
}
public boolean canAssignUser(String userId) {
return true;
}
}
......@@ -49,14 +49,16 @@
filterBy="#{experimentObject.endDate}" filterMatchMode="contains" width="120">
<h:outputText value="#{experimentObject.endDate}">
<f:convertDateTime pattern="#{resources.DatePattern}" type="date" />
<f:convertDateTime pattern="#{resources.DatePattern}" type="date" />
</h:outputText>
</p:column>
<c:set var="isEntityWriteable" value="#{loginController.loggedIn}"/>
<p:column headerText="Actions" width="70">
<div class="actionLink">
<p:commandLink action="#{experimentController.prepareView(experimentObject)}" styleClass="ui-icon ui-icon-info" title="View"/>
<p:commandLink action="#{experimentController.prepareView(experimentObject)}" styleClass="ui-icon ui-icon-info" title="View">
<f:setPropertyActionListener value="#{experimentObject}" target="#{experimentUsersController.experiment}"/>
</p:commandLink>
<p:commandLink action="#{experimentController.prepareEdit(experimentObject)}" rendered="#{isEntityWriteable}" styleClass="ui-icon ui-icon-pencil" title="Edit"/>
<p:commandLink oncomplete="PF('experimentDestroyDialogWidget').show()" rendered="#{loginController.loggedIn}" styleClass="ui-icon ui-icon-trash" title="Delete" update="@form">
<f:setPropertyActionListener value="#{experimentObject}" target="#{experimentController.current}"/>
......
<?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="experimentUserRemoveDialog" message="Remove user #{experimentUsersController.getCurrentEntityInstanceName()} from Experiment?"
header="Remove User" severity="alert" widgetVar="experimentUserRemoveDialogWidget"
styleClass="dialog">
<p:commandButton value="Yes" oncomplete="experimentUserRemoveDialogWidget.hide()" action="#{experimentUsersController.remove()}"/>
<p:commandButton value="No" onclick="PF('experimentUserRemoveDialogWidget').hide()" type="button" />
</p:confirmDialog>
</ui:composition>
<?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">
<div class="actionButton">
<p:commandButton id="experimentUserAddButton" value="Add" rendered="#{experimentUsersController.canAddUsers(loginController.username)}" icon="ui-icon-plus" >
<p:tooltip for="experimentUserAddButton" value="Add new Users."/>
</p:commandButton>
<p:commandButton id="ResetFiltersButton" action="#{experimentUsersController.experimentUsersTable.resetFilterList()}" alt="Clear Filters" icon="ui-icon-refresh" styleClass="actionButtonRight">
<p:tooltip for="ResetFiltersButton" value="Reset list filters."/>
</p:commandButton>
</div>
<p:dataTable id="experimentUsersListDataTable"
var="experimentUserObject"
value="#{experimentUsersController.experimentUsersTable.listDataModel}"
filteredValue="#{experimentUsersController.experimentUsersTable.filteredObjectList}"
paginator="true"
paginatorAlwaysVisible="false"
rows="25"
binding="#{experimentUsersController.experimentUsersTable.listDataTable}"
widgetVar="experimentUsersListWidget"
emptyMessage="No users found.">
<p:column sortBy="#{experimentUserObject.username}" headerText="Username"
filterBy="#{experimentUserObject.username}" filterMatchMode="contains" width="100">
<h:outputText value="#{experimentUserObject.username}"/>
</p:column>
<p:column sortBy="#{experimentUserObject.lastName}, #{experimentUserObject.firstName}" headerText="Last, First Name"
filterBy="#{experimentUserObject.lastName}, #{experimentUserObject.firstName}" filterMatchMode="contains" width="120">
<h:outputText value="#{experimentUserObject.lastName}, #{experimentUserObject.firstName}"/>
</p:column>
<p:column headerText="Manager" width="40">
<p:selectBooleanCheckbox value="#{experimentUsersController.isManager(experimentUserObject.id)}" rendered="#{experimentUserObject.canAssignManager(loginController.username)}" />
</p:column>
<p:column headerText="PI" width="40">
<p:selectBooleanCheckbox value="#{experimentUsersController.isPI(experimentUserObject.id)}" rendered="#{experimentUserObject.canAssignPI(loginController.username)}" />
</p:column>
<p:column headerText="User" width="40">
<p:selectBooleanCheckbox value="#{experimentUsersController.isUser(experimentUserObject.id)}" rendered="#{experimentUserObject.canAssignUser(loginController.username)}" />
</p:column>
<p:column headerText="Actions" width="40">
<div class="actionLink" >
<p:commandLink oncomplete="PF('experimentUserRemoveDialogWidget').show()" rendered="#{experimentUsersController.canRemove(loginController.username, experimentUserObject)}" styleClass="ui-icon ui-icon-trash" title="Remove" update="@form" >
<f:setPropertyActionListener value="#{experimentUserObject}" target="#{experimentUsersController.experimentUsersTable.current}" />
</p:commandLink>
</div>
</p:column>
</p:dataTable>
</ui:composition>
......@@ -31,9 +31,14 @@
<ui:include src="experimentDestroyDialog.xhtml"/>
<p/>
<h2>Experiment Users</h2>
<p/>
<ui:include src="experimentUsersListDataTable.xhtml"/>
</div>
</h:form>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment