Commit 31418a0f by Juho Juopperi

Salespoint List View

1 parent c1253309
package fi.insomnia.bortal.beans;
import java.util.List;
import javax.annotation.security.DeclareRoles;
import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.enums.apps.SalespointPermission;
import fi.insomnia.bortal.facade.SalespointFacade;
import fi.insomnia.bortal.model.salespoint.Salespoint;
/**
* Session Bean implementation class SalespointBean
*/
@Stateless
@LocalBean
@DeclareRoles({ SalespointPermission.S_VIEW, SalespointPermission.S_MODIFY })
public class SalespointBean implements SalespointBeanLocal {
private static final Logger logger = LoggerFactory
.getLogger(SalespointBean.class);
@EJB
SalespointFacade salespointFacade;
public SalespointBean() {
}
@Override
public List<Salespoint> findAll() {
List<Salespoint> list = salespointFacade.findAll();
if (list != null)
logger.debug("Found {} salespoints", list.size());
return list;
}
}
package fi.insomnia.bortal.facade;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import fi.insomnia.bortal.beans.EventBeanLocal;
import fi.insomnia.bortal.model.salespoint.Salespoint;
import fi.insomnia.bortal.model.salespoint.Salespoint_;
/**
* Session Bean implementation class SalespointFacade
*/
@Stateless
@LocalBean
public class SalespointFacade extends IntegerPkGenericFacade<Salespoint> {
@EJB
private EventBeanLocal eventbean;
public SalespointFacade() {
super(Salespoint.class);
}
public List<Salespoint> findAll() {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<Salespoint> cq = cb.createQuery(Salespoint.class);
Root<Salespoint> root = cq.from(Salespoint.class);
cq.where(cb.equal(root.get(Salespoint_.event),
eventbean.getCurrentEvent()));
return getEm().createQuery(cq).getResultList();
}
}
package fi.insomnia.bortal.beans;
import java.util.List;
import javax.ejb.Local;
import fi.insomnia.bortal.model.salespoint.Salespoint;
@Local
public interface SalespointBeanLocal {
List<Salespoint> findAll();
}
......@@ -6,6 +6,7 @@ import fi.insomnia.bortal.enums.apps.IAppPermission;
import fi.insomnia.bortal.enums.apps.LayoutPermission;
import fi.insomnia.bortal.enums.apps.MapPermission;
import fi.insomnia.bortal.enums.apps.PollPermission;
import fi.insomnia.bortal.enums.apps.SalespointPermission;
import fi.insomnia.bortal.enums.apps.ShopPermission;
import fi.insomnia.bortal.enums.apps.TerminalPermission;
import fi.insomnia.bortal.enums.apps.UserPermission;
......@@ -19,6 +20,7 @@ public enum BortalApplication {
CONTENT("News, pages and other dynamic content", ContentPermission.class),
TERMINAL("Sales and self help terminal roles", TerminalPermission.class),
LAYOUT("Layoutstuff", LayoutPermission.class),
SALESPOINT("Managing salespoints", SalespointPermission.class),
;
......
package fi.insomnia.bortal.enums.apps;
import fi.insomnia.bortal.enums.BortalApplication;
public enum SalespointPermission implements IAppPermission {
VIEW("View salespoints"), MODIFY("Modify salespoints");
public static final String S_VIEW = "SALESPOINT/VIEW";
public static final String S_MODIFY = "SALESPOINT/MODIFY";
private final String description;
private final String fullName;
private SalespointPermission(String desc) {
description = desc;
fullName = new StringBuilder().append(getParent().toString())
.append(DELIMITER).append(toString()).toString();
}
@Override
public BortalApplication getParent() {
return BortalApplication.SALESPOINT;
}
@Override
public String getDescription() {
return description;
}
@Override
public String getFullName() {
return fullName;
}
}
<?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">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:composite="http://java.sun.com/jsf/composite"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:tools="http://java.sun.com/jsf/composite/tools">
<composite:interface>
</composite:interface>
<composite:implementation>
<h:outputText
rendered="#{salespointListView.salespoints.rowCount le 0}"
value="#{i18n['salespoint.noSalespoints']}" />
<h:form rendered="#{salespointListView.salespoints.rowCount gt 0}">
<h:dataTable styleClass="bordertable" id="salespointList"
value="#{salespointListView.salespoints}" var="salespoint">
<h:column>
<f:facet name="header">
<h:outputText value="${i18n['salespoint.name']}" />
</f:facet>
<h:outputText value="#{salespoint.name}" />
</h:column>
<h:column rendered="#{billListView.canEditSalespoint}">
<h:link outcome="/salespoint/edit"
value="#{i18n['salespoint.edit']}">
<f:param name="salespointid" value="#{salespoint.id}" />
</h:link>
</h:column>
</h:dataTable>
</h:form>
</composite:implementation>
</html>
\ No newline at end of file
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:salespoint="http://java.sun.com/jsf/composite/cditools/salespoint"
xmlns:f="http://java.sun.com/jsf/core">
<h:body>
<ui:composition
template="/layout/#{sessionHandler.layout}/template.xhtml">
<f:metadata>
<f:viewParam name="userid" value="#{userView.userid}" />
<f:event type="preRenderView" listener="#{salespointListView.init}" />
</f:metadata>
<ui:define name="content">
<salespoint:list />
</ui:define>
</ui:composition>
</h:body>
</html>
\ No newline at end of file
package fi.insomnia.bortal.web.cdiview.shop;
import javax.ejb.EJB;
import javax.enterprise.context.ConversationScoped;
import javax.faces.model.ListDataModel;
import javax.inject.Named;
import fi.insomnia.bortal.beans.SalespointBeanLocal;
import fi.insomnia.bortal.enums.apps.SalespointPermission;
import fi.insomnia.bortal.model.salespoint.Salespoint;
import fi.insomnia.bortal.web.cdiview.GenericCDIView;
/**
* Session Bean implementation class SalespointListView
*/
@Named
@ConversationScoped
public class SalespointListView extends GenericCDIView {
@EJB
private SalespointBeanLocal salespointBean;
private static final long serialVersionUID = -8990414681240360892L;
private ListDataModel<Salespoint> salespoints;
private boolean modifySalespoint;
public SalespointListView() {
}
public void init() {
if (super.requirePermissions(SalespointPermission.VIEW)) {
beginConversation();
salespoints = new ListDataModel<Salespoint>(
salespointBean.findAll());
modifySalespoint = permbean
.hasPermission(SalespointPermission.MODIFY);
}
}
public ListDataModel<Salespoint> getSalespoints() {
return salespoints;
}
public void setSalespoints(ListDataModel<Salespoint> salespoints) {
this.salespoints = salespoints;
}
public boolean canEditSalespoint() {
return modifySalespoint;
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!