Commit 00cde394 by Tuomas Riihimäki

Foodwave cleanausta

1 parent 7fc5ab1d
......@@ -12,7 +12,6 @@ import sun.reflect.generics.reflectiveObjects.NotImplementedException;
import fi.insomnia.bortal.enums.apps.ShopPermission;
import fi.insomnia.bortal.facade.FoodWaveFacade;
import fi.insomnia.bortal.facade.FoodWaveTemplateFacade;
import fi.insomnia.bortal.facade.GenericFacade;
import fi.insomnia.bortal.facade.ProductFacade;
import fi.insomnia.bortal.model.FoodWave;
import fi.insomnia.bortal.model.FoodWaveTemplate;
......@@ -22,7 +21,7 @@ import fi.insomnia.bortal.model.Product;
* Session Bean implementation class FoodWaveBean
*/
@Stateless
@DeclareRoles(ShopPermission.S_MANAGE_PRODUCTS)
@DeclareRoles({ ShopPermission.S_MANAGE_PRODUCTS, ShopPermission.S_SHOP_FOODWAVE, ShopPermission.S_MANAGE_FOODWAVES })
public class FoodWaveBean implements FoodWaveBeanLocal {
@EJB
......@@ -63,11 +62,12 @@ public class FoodWaveBean implements FoodWaveBeanLocal {
}
@Override
@RolesAllowed("SHOP/READ")
@RolesAllowed(ShopPermission.S_SHOP_FOODWAVE)
public List<FoodWave> getOpenFoodWaves() {
return foodWaveFacade.getOpenFoodWaves();
}
@RolesAllowed({ ShopPermission.S_SHOP_FOODWAVE, ShopPermission.S_MANAGE_FOODWAVES })
public FoodWave findFoodwave(Integer foodwaveId) {
return foodWaveFacade.find(foodwaveId);
}
......@@ -94,6 +94,7 @@ public class FoodWaveBean implements FoodWaveBeanLocal {
}
@Override
@RolesAllowed(ShopPermission.S_MANAGE_FOODWAVES)
public FoodWaveTemplate addProductToTemplate(FoodWaveTemplate template, Product product) {
template = fwtFacade.reload(template);
if (product.getId() == null)
......@@ -112,7 +113,6 @@ public class FoodWaveBean implements FoodWaveBeanLocal {
}
template.getProducts().add(product);
product.getFoodWaveTemplates().add(template);
return template;
}
......
......@@ -58,6 +58,7 @@ import fi.insomnia.bortal.model.User;
ShopPermission.S_MANAGE_PRODUCTS,
ShopPermission.S_SHOP_PRODUCTS,
ShopPermission.S_SHOP_FOODWAVE,
ShopPermission.S_MANAGE_FOODWAVES,
BillPermission.S_CREATE_BILL,
BillPermission.S_READ_ALL,
......
......@@ -187,4 +187,10 @@ public class RoleBean implements RoleBeanLocal {
}
}
}
@Override
@RolesAllowed(UserPermission.S_READ_ROLES)
public List<Role> getRoles(EventUser selectedUser) {
return roleFacade.findForUser(selectedUser);
}
}
......@@ -34,4 +34,6 @@ public interface RoleBeanLocal {
public void saveRoles(EventUser usr, List<Role> usersRoles);
public List<Role> getRoles(EventUser selectedUser);
}
......@@ -10,6 +10,7 @@ public enum ShopPermission implements IAppPermission {
SHOP_PRODUCTS, // ("Shop products to self"),
MANAGE_PRODUCTS, // ("Create and modify products"),
SHOP_FOODWAVE, // Shop for food
MANAGE_FOODWAVES,
;
......@@ -19,6 +20,7 @@ public enum ShopPermission implements IAppPermission {
public static final String S_SHOP_PRODUCTS = "SHOP/SHOP_PRODUCTS";
public static final String S_MANAGE_PRODUCTS = "SHOP/MANAGE_PRODUCTS";
public static final String S_SHOP_FOODWAVE = "SHOP/SHOP_FOODWAVE";
public static final String S_MANAGE_FOODWAVES = "SHOP/MANAGE_FOODWAVES";
private final String fullName;
private final String key;
......
......@@ -48,7 +48,7 @@
<f:facet name="header">
<h:outputText value="${i18n['foodWave.unconfirmedOrders']}" />
</f:facet>
<h:link outcome="/foodmanager/listOrders" value="#{foodWaveView.billLines.size()}">
<h:link outcome="/foodmanager/listOrders" value="#{foodWaveView.billLines.rowCount}">
<f:param name="foodwaveid" value="#{foodwave.id}" />
</h:link>
</h:column><!--
......
......@@ -13,12 +13,12 @@
template="/layout/#{sessionHandler.layout}/template.xhtml">
<f:metadata>
<f:viewParam name="userid" value="#{userView.userid}" />
<f:event type="preRenderView"
listener="#{foodWaveView.initTemplateList}" />
<f:viewParam name="templateid" value="#{foodWaveView.templateId}" />
<f:event type="preRenderView" listener="#{foodWaveView.initListFoodwaves}" />
</f:metadata>
<ui:define name="title">
<h1>#{i18n['user.shop.title']}</h1>
<h1>#{i18n['user.foodwavelist.title']}</h1>
</ui:define>
<ui:define name="content">
......@@ -36,7 +36,7 @@
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="${i18n['foodWave.template.name']}" />
<h:outputText value="${i18n['foodWave.templatename']}" />
</f:facet>
<h:link outcome="/foodwave/listProducts"
value="#{foodwave.template.name}">
......
......@@ -15,9 +15,7 @@
</ui:define>
<ui:define name="content">
<foodwave:listTemplates selectaction="#{foodWaveView.selectTemplate}" items="#{foodWaveView.templates}"
commitValue="#{i18n['food']}"
/>
<foodwave:listTemplates outcome="/foodwave/list" items="#{foodWaveView.templates}" />
</ui:define>
......
<?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">
<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:attribute name="items" required="true" />
<composite:attribute name="selectaction"
method-signature="java.lang.String action()" required="true" />
<composite:attribute name="outcome" required="true" />
</composite:interface>
<composite:implementation>
......@@ -21,29 +15,26 @@
<!-- <h:outputScript target="head" library="script" name="shopscript.js" /> -->
<h:outputScript library="primefaces" name="jquery/jquery.js" />
<h:form>
<h:dataTable columnClasses="nowrap,numalign,numalign,nowrap,numalign"
styleClass="bordertable" id="billcart" value="#{cc.attrs.items}"
var="template">
<h:column>
<f:facet name="header">
<h:outputText id="name" value="${i18n['foodWave.name']}" />
</f:facet>
<h:commandLink action="#{cc.attrs.selectaction}"
value="#{template.name}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="${i18n['foodWave.description']}" />
</f:facet>
<h:outputText id="description" value="#{template.description}" />
</h:column>
</h:dataTable>
</h:form>
<h:dataTable columnClasses="nowrap,numalign,numalign,nowrap,numalign" styleClass="bordertable" id="billcart" value="#{cc.attrs.items}" var="template">
<h:column>
<f:facet name="header">
<h:outputText id="name" value="${i18n['foodWave.name']}" />
</f:facet>
<h:link outcome="#{cc.attrs.outcome}" value="#{template.name}">
<f:param name="templateid" value="#{template.id}" />
</h:link>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="${i18n['foodWave.description']}" />
</f:facet>
<h:outputText id="description" value="#{template.description}" />
</h:column>
</h:dataTable>
</composite:implementation>
</html>
......@@ -9,6 +9,9 @@ import javax.faces.model.ListDataModel;
import javax.inject.Inject;
import javax.inject.Named;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.beans.AccountEventBeanLocal;
import fi.insomnia.bortal.beans.BillBeanLocal;
import fi.insomnia.bortal.beans.EventBeanLocal;
......@@ -34,62 +37,54 @@ public class FoodWaveFoodView extends GenericCDIView {
@EJB
private FoodWaveBeanLocal foodWaveBean;
@EJB
EventBeanLocal eventBean;
@EJB
private AccountEventBeanLocal accountEventBean;
@EJB
private BillBeanLocal billBean;
private FoodWave foodWave = null;
@EJB
private transient ProductBeanLocal productBean;
@Inject
@SelectedUser
private EventUser user;
@Inject
private BillEditView billEditView;
private Integer foodwaveid = 0;
private ListDataModel<Product> products;
private transient ListDataModel<ProductShopItem> shoppingcart;
private static final Logger logger = LoggerFactory.getLogger(FoodWaveFoodView.class);
public void initFoodWaveFoods() {
if( requirePermissions(ShopPermission.LIST_USERPRODUCTS) &&
getFoodwaveid() > 0 && getShoppingcart() == null) {
setFoodWave(foodWaveBean.findFoodwave(getFoodwaveid()));
setShoppingcart(new ListDataModel<ProductShopItem>(
ProductShopItem.productGTList( getFoodWave().getTemplate().getProducts() )));
System.out.println("beginconversation");
if (requirePermissions(ShopPermission.LIST_USERPRODUCTS) && getFoodwaveid() > 0 && getShoppingcart() == null) {
foodWave = foodWaveBean.findFoodwave(getFoodwaveid());
logger.debug("Foodwave {}", foodWave);
shoppingcart = new ListDataModel<ProductShopItem>(ProductShopItem.productGTList(foodWave.getTemplate().getProducts()));
this.beginConversation();
//products = new ListDataModel<Product>(getFoodWave().getTemplate().getProducts());
}
}
public ListDataModel<Product> getProducts() {
return products;
}
public void setProducts(ListDataModel<Product> products) {
this.products = products;
}
public Integer getFoodwaveid() {
return foodwaveid;
}
......@@ -109,10 +104,10 @@ public class FoodWaveFoodView extends GenericCDIView {
public String add(Integer count) {
ProductShopItem item = getShoppingcart().getRowData();
item.setCount(item.getCount().add(BigDecimal.valueOf(count)));
System.out.println("foobar"+item.getCount());
System.out.println("foobar" + item.getCount());
return null;
}
public String addOne()
{
return add(1);
......@@ -131,15 +126,13 @@ public class FoodWaveFoodView extends GenericCDIView {
return ret;
}
/**
* Just create bills, they are nice
* <insert picture of bill gates here>
/**
* Just create bills, they are nice <insert picture of bill gates here>
*
* @return
*/
public Bill createBillFromShoppingcart() {
Bill bill = new Bill(eventBean.getCurrentEvent(), user);
bill.setOurReference(eventBean.getCurrentEvent().getName());
......@@ -152,26 +145,24 @@ public class FoodWaveFoodView extends GenericCDIView {
return bill;
}
public String buyFromCounter() {
createBillFromShoppingcart();
return "/foodwave/ThanksForOrderingFromCounter";
}
public String buyFromInternet() {
Bill bill = createBillFromShoppingcart();
if(bill != null) {
if (bill != null) {
getBillEditView().setBillid(bill.getId());
return "/bill/showBill?faces-redirect=true&IncludeViewParams=true";
}
return null;
}
public void setUser(EventUser user) {
this.user = user;
......@@ -199,20 +190,12 @@ public class FoodWaveFoodView extends GenericCDIView {
return false;
}
public BillEditView getBillEditView() {
return billEditView;
}
public void setBillEditView(BillEditView billEditView) {
this.billEditView = billEditView;
}
}
......@@ -5,7 +5,6 @@ import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.TreeSet;
import java.util.Vector;
import javax.ejb.EJB;
import javax.enterprise.context.ConversationScoped;
......@@ -36,7 +35,6 @@ public class FoodWaveView extends GenericCDIView {
@Inject
private FoodWaveFoodView foodWaveFoodView;
private ListDataModel<FoodWaveTemplate> templates;
private FoodWaveTemplate template;
private Integer templateId;
@EJB
......@@ -44,29 +42,29 @@ public class FoodWaveView extends GenericCDIView {
@EJB
private ProductBeanLocal productbeanlocal;
private ListDataModel<FoodWave> foodWaves;
private FoodWave selectedFoodWave = null;
private Date startDate;
private Product currentProduct;
private ListDataModel<BillLine> billLines;
private Integer foodWaveId;
private ListDataModel<AccountEvent> accountEventLines;
private List<FoodWave> foodWaves;
public List<Product> getProducts() {
return productbeanlocal.getProducts();
return productbeanlocal.getProducts();
}
public void initTemplateList() {
if (super.requirePermissions(ShopPermission.LIST_USERPRODUCTS)) {
super.requirePermissions(ShopPermission.SHOP_FOODWAVE);
}
setTemplates(new ListDataModel<FoodWaveTemplate>(foodWaveBean.getTemplates()));
super.beginConversation();
public void initFoodwaveManagerList() {
if (super.requirePermissions(ShopPermission.MANAGE_FOODWAVES))
{
foodWaves = foodWaveBean.getEventFoodWaves();
}
}
......@@ -75,19 +73,33 @@ public class FoodWaveView extends GenericCDIView {
Calendar c = Calendar.getInstance();
c.setTime(startDate);
selectedFoodWave.setTime(c);
foodWaveBean.createFoodWave(selectedFoodWave);
initFoodwaveManagerList();
// initFoodwaveManagerList();
return "/foodmanager/listFoodwaves";
}
public void initListFoodwaves()
{
if (super.requirePermissions(ShopPermission.SHOP_FOODWAVE) && template == null)
{
if (templateId != null)
{
template = foodWaveBean.findTemplate(templateId);
foodWaves = template.getFoodwaves();
} else {
foodWaves = foodWaveBean.getOpenFoodWaves();
}
super.beginConversation();
}
}
public void initEditTemplate() {
if (super.requirePermissions(ShopPermission.MANAGE_PRODUCTS) && template == null)
{
template = foodWaveBean.findTemplate(templateId);
// prepare to make new foodwaves
selectedFoodWave = new FoodWave();
selectedFoodWave.setTemplate(template);
......@@ -102,27 +114,27 @@ public class FoodWaveView extends GenericCDIView {
template = new FoodWaveTemplate();
template.setProducts(new ArrayList<Product>());
template.setEvent(eventbean.getCurrentEvent());
createNewProductSkeleton();
super.beginConversation();
}
}
private void createNewProductSkeleton() {
TreeSet<ProductFlag> ts = new TreeSet<ProductFlag>();
ts.add(ProductFlag.PREPAID_INSTANT_CREATE);
currentProduct = new Product();
currentProduct.setProductFlags(ts);
currentProduct.setEvent(eventbean.getCurrentEvent());
}
public void addProductToTemplate() {
template = foodWaveBean.addProductToTemplate(template, currentProduct);
template = foodWaveBean.addProductToTemplate(template, currentProduct);
createNewProductSkeleton();
}
public Product getCurrentProduct() {
return currentProduct;
}
......@@ -131,29 +143,26 @@ public class FoodWaveView extends GenericCDIView {
this.currentProduct = currentProduct;
}
public void initUserFoodWaveList() {
this.foodWaves = new ListDataModel<FoodWave>(foodWaveBean.getOpenFoodWaves());
}
public void initFoodwaveManagerList() {
this.foodWaves = new ListDataModel<FoodWave>(foodWaveBean.getEventFoodWaves());
}
// public void initUserFoodWaveList() {
// this.foodWaves = new
// ListDataModel<FoodWave>(foodWaveBean.getOpenFoodWaves());
// }
//
// public void initFoodwaveManagerList() {
// this.foodWaves = new
// ListDataModel<FoodWave>(foodWaveBean.getEventFoodWaves());
// }
public void initFoodWaveOrderList() {
if (foodWaveId != null) {
setSelectedFoodWave(foodWaveBean.findFoodwave(foodWaveId));
this.setBillLines(new ListDataModel<BillLine>(selectedFoodWave.getBillLines()));
if (super.requirePermissions(ShopPermission.MANAGE_FOODWAVES) && selectedFoodWave == null) {
selectedFoodWave = foodWaveBean.findFoodwave(foodWaveId);
billLines = new ListDataModel<BillLine>(selectedFoodWave.getBillLines());
this.accountEventLines = new ListDataModel<AccountEvent>(selectedFoodWave.getAccountEvents());
super.beginConversation();
}
}
public String editTemplate() {
setTemplate(getTemplates().getRowData());
return "/foodadmin/editTemplate";
}
public String saveTemplate()
......@@ -171,34 +180,8 @@ public class FoodWaveView extends GenericCDIView {
this.template = template;
}
public ListDataModel<FoodWaveTemplate> getTemplates() {
return templates;
}
public void setTemplates(ListDataModel<FoodWaveTemplate> templates) {
this.templates = templates;
}
public ListDataModel<FoodWave> getFoodWaves() {
return foodWaves;
}
public String selectFoodWave() {
if (foodWaves.isRowAvailable()) {
// setSelectedFoodWave(foodWaves.getRowData());
}
return "/foodwave/listProducts";
}
public String selectTemplate() {
if (templates.isRowAvailable()) {
foodWaves = new ListDataModel<FoodWave>(templates.getRowData()
.getOrderableFoodwaves());
}
return "/foodwave/list";
public List<FoodWaveTemplate> getTemplates() {
return foodWaveBean.getTemplates();
}
public FoodWave getSelectedFoodWave() {
......@@ -209,14 +192,6 @@ public class FoodWaveView extends GenericCDIView {
this.selectedFoodWave = selectedFoodWave;
}
private FoodWaveFoodView getFoodWaveFoodView() {
return foodWaveFoodView;
}
private void setFoodWaveFoodView(FoodWaveFoodView foodWaveFoodView) {
this.foodWaveFoodView = foodWaveFoodView;
}
public Integer getTemplateId() {
return templateId;
}
......@@ -226,7 +201,7 @@ public class FoodWaveView extends GenericCDIView {
}
public void removeProductFromList(Product product) {
template.getProducts().remove(product);
}
......@@ -253,4 +228,13 @@ public class FoodWaveView extends GenericCDIView {
public void setBillLines(ListDataModel<BillLine> billLines) {
this.billLines = billLines;
}
public void setFoodWaves(List<FoodWave> foodWaves) {
this.foodWaves = foodWaves;
}
public List<FoodWave> getFoodWaves() {
return foodWaves;
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!