Commit 076f24a5 by Tuomas Riihimäki

Add product limitation editing user interface

1 parent 1f78477b
...@@ -20,6 +20,11 @@ public class ProductLimitation extends GenericEntity { ...@@ -20,6 +20,11 @@ public class ProductLimitation extends GenericEntity {
*/ */
private static final long serialVersionUID = 1373535658851118597L; private static final long serialVersionUID = 1373535658851118597L;
public ProductLimitationType[] getAvailableTypes()
{
return ProductLimitationType.values();
}
@Enumerated(EnumType.STRING) @Enumerated(EnumType.STRING)
@Column(nullable = false) @Column(nullable = false)
private ProductLimitationType type; private ProductLimitationType type;
...@@ -109,4 +114,12 @@ public class ProductLimitation extends GenericEntity { ...@@ -109,4 +114,12 @@ public class ProductLimitation extends GenericEntity {
this.matchingRoles = matchingRoles; this.matchingRoles = matchingRoles;
} }
public boolean getLast() {
return last;
}
public void setLast(boolean last) {
this.last = last;
}
} }
<!DOCTYPE html <!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "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" <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:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:products="http://java.sun.com/jsf/composite/cditools/products" xmlns:p="http://primefaces.org/ui">
xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:products="http://java.sun.com/jsf/composite/cditools/products"
>
<h:head> <h:head>
<title></title> <title></title>
...@@ -20,15 +18,13 @@ ...@@ -20,15 +18,13 @@
<products:edit commitaction="#{productView.saveProduct()}" commitvalue="#{i18n['products.save']}" /> <products:edit commitaction="#{productView.saveProduct()}" commitvalue="#{i18n['products.save']}" />
<hr />
<h:form id="discounts"> <h:form id="discounts">
<h:commandButton rendered="#{!empty productView.product.id}" action="#{productView.initCreateDiscount()}" <h:commandButton rendered="#{!empty productView.product.id}" action="#{productView.initCreateDiscount()}" value="#{i18n['product.createDiscount']}">
value="#{i18n['product.createDiscount']}"
>
</h:commandButton> </h:commandButton>
<h:dataTable border="1" id="discount" value="#{productView.productDiscounts}" var="discount" rendered="#{!empty productView.product.id and !empty productView.product.discounts}">
<h:dataTable border="1" id="discount" value="#{productView.productDiscounts}" var="discount"
rendered="#{!empty productView.product.id and !empty productView.product.discounts}"
>
<h:column> <h:column>
<f:facet name="header"> <f:facet name="header">
<h:outputText value="${i18n['discount.percentage']}" /> <h:outputText value="${i18n['discount.percentage']}" />
...@@ -83,6 +79,27 @@ ...@@ -83,6 +79,27 @@
</h:dataTable> </h:dataTable>
</h:form> </h:form>
<hr />
<h:form id="limits">
<h:commandButton rendered="#{!empty productView.product.id}" action="#{productView.initCreateLimit()}" value="#{i18n['product.createLimit']}">
</h:commandButton>
<p:dataTable border="1" id="discount" value="#{productView.productLimits}" var="limit" rendered="#{!empty productView.product.id and !empty productView.product.productLimits}">
<p:column rowHeader="#{i18n['productLimit.name']}">
<h:outputText value="#{limit.name}" />
</p:column>
<p:column rowHeader="#{i18n['productLimit.type']}">
<h:outputText value="#{limit.type}" />
</p:column>
<p:column rowHeader="#{i18n['productLimit.upperLimit']}">
<h:outputText value="#{limit.lowerLimit}" />
</p:column>
<p:column>
<p:commandButton ajax="false" action="#{productView.editLimit()}" value="#{i18n['productLimit.edit']}" />
</p:column>
</p:dataTable>
</h:form>
</ui:define> </ui:define>
</ui:composition> </ui:composition>
</h:body> </h:body>
......
<?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:p="http://primefaces.org/ui">
<h:head>
<title></title>
</h:head>
<h:body>
<ui:composition template="#{sessionHandler.template}">
<ui:define name="content">
<h:form id="discountform">
<h:link id="back" outcome="/product/edit" value="#{i18n['product.returnProductEdit']} #{productView.product.name}">
<f:param name="productid" value="#{productView.product.id}" />
</h:link>
<p:panelGrid columns="3">
<p:outputLabel for="name" value="#{i18n['productLimit.name']}:" />
<p:inputText id="name" value="#{productView.limit.name}" />
<p:message for="name" />
<p:outputLabel for="description" value="#{i18n['productLimit.description']}:" />
<p:inputText id="description" value="#{productView.limit.description}" />
<p:message for="description" />
<p:outputLabel for="type" value="#{i18n['productLimit.type']}:" />
<p:selectOneMenu id="type" value="#{productView.limit.type}">
<f:selectItem itemValue="" itemLabel="---" />
<f:selectItems var="type" itemLabel="#{type}" itemDescription="#{i18n[type]}" value="#{productView.limit.availableTypes}" />
</p:selectOneMenu>
<p:message for="type" />
<p:outputLabel for="sort" value="#{i18n['productLimit.sort']}:" />
<p:inputText id="sort" value="#{productView.limit.sort}" />
<p:message for="sort" />
<p:outputLabel for="last" value="#{i18n['productLimit.last']}" />
<p:selectBooleanCheckbox id="last" value="#{productView.limit.last}" />
<p:message for="last" />
<p:outputLabel for="upperLimit" value="#{i18n['productLimit.upperLimit']}:" />
<p:inputText id="upperLimit" value="#{productView.limit.upperLimit}" />
<h:message for="upperLimit" />
<h:outputLabel for="lowerLimit" value="#{i18n['productLimit.lowerLimit']}:" />
<p:inputText id="lowerLimit" value="#{productView.limit.lowerLimit}" />
<h:message for="lowerLimit" />
<h:outputLabel for="roles" value="#{i18n['productLimit.roles']}:" />
<p:selectManyCheckbox layout="pageDirection" id="roles" value="#{productView.limit.matchingRoles}" converter="#{roleConverter}">
<f:selectItems var="role" itemLabel="#{role.name}" value="#{roleDataView.roleList}" />
</p:selectManyCheckbox>
<h:message for="roles" />
</p:panelGrid>
<p:commandButton id="commitbtn" action="#{productView.saveLimit}" value="#{i18n['productLimit.save']}" />
</h:form>
</ui:define>
</ui:composition>
</h:body>
</html>
#Generated by ResourceBundle Editor (http://eclipse-rbe.sourceforge.net) #Generated by ResourceBundle Editor (http://eclipse-rbe.sourceforge.net)
#Sat Mar 30 17:56:44 EET 2013 #Sat Mar 30 17:56:44 EET 2013
actionlog.create.header = Create new actionmessage actionlog.create.header = Create new actionmessage
actionlog.create.message = Message actionlog.create.message = Message
actionlog.create.role = Target role actionlog.create.role = Target role
...@@ -15,7 +14,6 @@ actionlog.task = Task ...@@ -15,7 +14,6 @@ actionlog.task = Task
actionlog.tasklist.header = Tasklist actionlog.tasklist.header = Tasklist
actionlog.time = Time actionlog.time = Time
actionlog.user = User actionlog.user = User
adduser.newphoto = Take new photo adduser.newphoto = Take new photo
adduser.newuser = Create new user adduser.newuser = Create new user
adduser.takePhoto = Take photo adduser.takePhoto = Take photo
...@@ -23,7 +21,6 @@ adduser.tostart = Back to start ...@@ -23,7 +21,6 @@ adduser.tostart = Back to start
adduser.update = Update profile picture adduser.update = Update profile picture
adduser.welcome = Welcome adduser.welcome = Welcome
adduser.welcometext = Here you can add new user or update your current user profile image. Please select desired action below. adduser.welcometext = Here you can add new user or update your current user profile image. Please select desired action below.
bill.billAmount = Amount bill.billAmount = Amount
bill.billNumber = Number bill.billNumber = Number
bill.cancel = Cancel bill bill.cancel = Cancel bill
...@@ -33,9 +30,7 @@ bill.markPaid.show = Show Mark paid -buttons ...@@ -33,9 +30,7 @@ bill.markPaid.show = Show Mark paid -buttons
bill.notes.title = Lis\u00E4tietoja bill.notes.title = Lis\u00E4tietoja
bill.save = Save bill.save = Save
bill.showPayButtons = Show pay buttons bill.showPayButtons = Show pay buttons
billine.vatp = vat-% billine.vatp = vat-%
bortalApplication.BILL = Creating, and managing bills bortalApplication.BILL = Creating, and managing bills
bortalApplication.COMPO = Managing compos bortalApplication.COMPO = Managing compos
bortalApplication.CONTENT = Product & shop management bortalApplication.CONTENT = Product & shop management
...@@ -106,27 +101,17 @@ bortalApplication.user.VIEW_SELF = Can view ...@@ -106,27 +101,17 @@ bortalApplication.user.VIEW_SELF = Can view
bortalApplication.user.VITUTTAAKO = Can send feedback bortalApplication.user.VITUTTAAKO = Can send feedback
bortalApplication.user.WRITE_ORGROLES = Modify organization roles bortalApplication.user.WRITE_ORGROLES = Modify organization roles
bortalApplication.user.WRITE_ROLES = Modify roles bortalApplication.user.WRITE_ROLES = Modify roles
card.massprint.title = Print all card.massprint.title = Print all
cardCode.code = Koodi cardCode.code = Koodi
cardCode.type = Tyyppi cardCode.type = Tyyppi
cardTemplate.emptyCardTemplate = ---- cardTemplate.emptyCardTemplate = ----
code.inputfield = Sy\u00F6t\u00E4 viivakoodi code.inputfield = Sy\u00F6t\u00E4 viivakoodi
create = Luo create = Luo
delete = Poista delete = Poista
edit = Muokkaa edit = Muokkaa
error = Virhe error = Virhe
error.contact = If this happens again, contact Info with the following code: error.contact = If this happens again, contact Info with the following code:
error.error = You have encountered an error. error.error = You have encountered an error.
event.domains.title = Domain event.domains.title = Domain
event.edit = Edit event.edit = Edit
event.endTime = End time event.endTime = End time
...@@ -138,18 +123,13 @@ event.properties.title = Properties ...@@ -138,18 +123,13 @@ event.properties.title = Properties
event.referenceNumberBase = Reference number base event.referenceNumberBase = Reference number base
event.save = Save event.save = Save
event.startTime = Start time event.startTime = Start time
eventdomain.add = Add event domain eventdomain.add = Add event domain
eventdomain.domainname = Domain eventdomain.domainname = Domain
eventdomain.remove = Remove eventdomain.remove = Remove
eventmap.active = Active eventmap.active = Active
eventorg.create = Create eventorg.create = Create
foodWave.closeNow = Close now foodWave.closeNow = Close now
foodWave.openNow = Open now foodWave.openNow = Open now
game.active = Aktiivinen game.active = Aktiivinen
game.codecount = Avattuja game.codecount = Avattuja
game.codes.available = Lisenssikoodit game.codes.available = Lisenssikoodit
...@@ -158,24 +138,19 @@ game.create = Create ...@@ -158,24 +138,19 @@ game.create = Create
game.edit = Edit game.edit = Edit
game.out = Gamecodes are out, pleace contact administration game.out = Gamecodes are out, pleace contact administration
game.product = Tuote game.product = Tuote
generic.sure.header = Confirmation generic.sure.header = Confirmation
generic.sure.message = Are you sure? generic.sure.message = Are you sure?
generic.sure.no = No generic.sure.no = No
generic.sure.yes = Yes generic.sure.yes = Yes
global.cancel = Cancel global.cancel = Cancel
global.copyright = Codecrew Ry global.copyright = Codecrew Ry
global.notAuthorizedExecute = You are not authorized to do that!! global.notAuthorizedExecute = You are not authorized to do that!!
global.notauthorized = You don't have enough rights to enter this site. global.notauthorized = You don't have enough rights to enter this site.
global.save = Save global.save = Save
httpsession.creationTime = Created httpsession.creationTime = Created
incomingView.attach = Liit\u00E4 incomingView.attach = Liit\u00E4
incomingView.attachDialogTitle = Liit\u00E4 koodi k\u00E4ytt\u00E4j\u00E4\u00E4n incomingView.attachDialogTitle = Liit\u00E4 koodi k\u00E4ytt\u00E4j\u00E4\u00E4n
incomingView.cancel = Peruuta incomingView.cancel = Peruuta
incomingflow.alreadyShowingUser.message = Piipattu k\u00E4ytt\u00E4j\u00E4 on jo n\u00E4kyviss\u00E4 incomingflow.alreadyShowingUser.message = Piipattu k\u00E4ytt\u00E4j\u00E4 on jo n\u00E4kyviss\u00E4
incomingflow.alreadyShowingUser.title = Valmiiksi valittu incomingflow.alreadyShowingUser.title = Valmiiksi valittu
incomingflow.cardCodes = Kortin koodit incomingflow.cardCodes = Kortin koodit
...@@ -189,18 +164,15 @@ incomingflow.printedCard = Kortti ...@@ -189,18 +164,15 @@ incomingflow.printedCard = Kortti
incomingflow.usereditor = K\u00E4ytt\u00E4j\u00E4 incomingflow.usereditor = K\u00E4ytt\u00E4j\u00E4
incomingflow.usereditor.info = Tiedot incomingflow.usereditor.info = Tiedot
incomingflow.usereditor.picture = Kuvanotto incomingflow.usereditor.picture = Kuvanotto
lanEventPrivateProperty.defaultValue = Default value lanEventPrivateProperty.defaultValue = Default value
lanEventPrivateProperty.editProperty = Edit property lanEventPrivateProperty.editProperty = Edit property
lanEventPrivateProperty.save = Save lanEventPrivateProperty.save = Save
lanEventPrivateProperty.textValue = Text value lanEventPrivateProperty.textValue = Text value
lanEventPrivateProperty.valueIsRawdataWarning = Raw value lanEventPrivateProperty.valueIsRawdataWarning = Raw value
lanEventProperty.booleanValue = Boolean value lanEventProperty.booleanValue = Boolean value
lanEventProperty.defaultValue = Default value lanEventProperty.defaultValue = Default value
lanEventProperty.save = Save lanEventProperty.save = Save
lanEventProperty.textValue = Text value lanEventProperty.textValue = Text value
lecture.availableLectures = Aihealueen kurssit ja luennot lecture.availableLectures = Aihealueen kurssit ja luennot
lecture.availableLecturesCalendar = Kalenterina lecture.availableLecturesCalendar = Kalenterina
lecture.availableLecturesList = Listana lecture.availableLecturesList = Listana
...@@ -224,7 +196,6 @@ lecture.saveLecture = Muokkaa ...@@ -224,7 +196,6 @@ lecture.saveLecture = Muokkaa
lecture.selectgroup = Valitse aihealue lecture.selectgroup = Valitse aihealue
lecture.startTime = Aloitusaika lecture.startTime = Aloitusaika
lecture.unparticipate = Poista ilmoittautuminen lecture.unparticipate = Poista ilmoittautuminen
lectureGroup.createLectureGroup = Luo kurssikokonaisuus lectureGroup.createLectureGroup = Luo kurssikokonaisuus
lectureGroup.createNew = Luo uusi lectureGroup.createNew = Luo uusi
lectureGroup.description = Kuvaus lectureGroup.description = Kuvaus
...@@ -234,87 +205,61 @@ lectureGroup.saveLectureGroup = Muokkaa kurssikokonaisuutta ...@@ -234,87 +205,61 @@ lectureGroup.saveLectureGroup = Muokkaa kurssikokonaisuutta
lectureGroup.selectCount = Montako kurssia saa valita lectureGroup.selectCount = Montako kurssia saa valita
lectureGroup.selectCountUserInfo = Yhden osallistujan kiinti\u00F6 lectureGroup.selectCountUserInfo = Yhden osallistujan kiinti\u00F6
lectureGroup.view = Tarkastele lectureGroup.view = Tarkastele
lecturegroup.create.success = Kurssiryhm\u00E4 luotu onnistuneesti. lecturegroup.create.success = Kurssiryhm\u00E4 luotu onnistuneesti.
lecturegroup.list.title = Luennot lecturegroup.list.title = Luennot
lecturegroup.save.success = Kurssiryhm\u00E4 tallennettu onnistuneesti. lecturegroup.save.success = Kurssiryhm\u00E4 tallennettu onnistuneesti.
login.login = Login login.login = Login
login.logout = Logout login.logout = Logout
login.logoutmessage = You have logged out of the system login.logoutmessage = You have logged out of the system
login.password = Password login.password = Password
login.submit = Login login.submit = Login
login.username = Username login.username = Username
loginerror.header = Login failed loginerror.header = Login failed
loginerror.message = Username of password incorrect. loginerror.message = Username of password incorrect.
loginerror.resetpassword = Reset password loginerror.resetpassword = Reset password
map.id = # map.id = #
navi.auth.login = frontpage navi.auth.login = frontpage
navi.auth.loginerror = frontpage navi.auth.loginerror = frontpage
navi.auth.logout = frontpage navi.auth.logout = frontpage
off = Poissa off = Poissa
on = P\u00E4\u00E4ll\u00E4 on = P\u00E4\u00E4ll\u00E4
page.bill.billSummary.header = Summary of bills page.bill.billSummary.header = Summary of bills
page.bill.edit.header = Edit bill page.bill.edit.header = Edit bill
page.bill.list.header = Bills page.bill.list.header = Bills
page.bill.listAll.header = Bills page.bill.listAll.header = Bills
page.bill.placemap.header = Place map page.bill.placemap.header = Place map
page.bill.show.header = Bill info page.bill.show.header = Bill info
pagegroup.auth.login = frontpage pagegroup.auth.login = frontpage
passwordChanged.body = You can now login with the new password. passwordChanged.body = You can now login with the new password.
passwordChanged.header = Password changed successfully. passwordChanged.header = Password changed successfully.
passwordReset.errorChanging = Unexpected error whilst password reset. Contact your administrator. passwordReset.errorChanging = Unexpected error whilst password reset. Contact your administrator.
passwordReset.hashNotFound = Password change token has expired. Please send the query again. passwordReset.hashNotFound = Password change token has expired. Please send the query again.
permissiondenied.alreadyLoggedIn = You don't have enough rights permissiondenied.alreadyLoggedIn = You don't have enough rights
permissiondenied.header = Access denied permissiondenied.header = Access denied
permissiondenied.notLoggedIn = You don't have enough rights to enter this site. permissiondenied.notLoggedIn = You don't have enough rights to enter this site.
placegroupview.toptext = \ placegroupview.toptext = \
poll.edit = edit poll.edit = edit
print = Print print = Print
product.providedRole = Product defines role product.providedRole = Product defines role
product.returnProductEdit = Return to product: product.returnProductEdit = Return to product:
product.saved = Product saved product.saved = Product saved
productshop.minusOne = -1 productshop.minusOne = -1
productshop.minusTen = -10 productshop.minusTen = -10
productshop.plusOne = +1 productshop.plusOne = +1
productshop.plusTen = +10 productshop.plusTen = +10
reader.autopoll = Jatkuva lukijan seuraaminen reader.autopoll = Jatkuva lukijan seuraaminen
refresh = P\u00E4ivit\u00E4 refresh = P\u00E4ivit\u00E4
registerleaflet.title = Rekisteriseloste registerleaflet.title = Rekisteriseloste
resetMail.header = Reset lost password resetMail.header = Reset lost password
resetMail.username = Username resetMail.username = Username
resetmailSent.body = Email has been sent containing a link where you can change the password. resetmailSent.body = Email has been sent containing a link where you can change the password.
resetmailSent.header = Email sent resetmailSent.header = Email sent
role.userSelectableRole = K\u00E4ytt\u00E4j\u00E4n valittavissaoleva rooli role.userSelectableRole = K\u00E4ytt\u00E4j\u00E4n valittavissaoleva rooli
roleView.adduser = Lis\u00E4\u00E4 k\u00E4ytt\u00E4j\u00E4 roleView.adduser = Lis\u00E4\u00E4 k\u00E4ytt\u00E4j\u00E4
roleView.hidePermissioneditor = Piilota oikeusasetukset roleView.hidePermissioneditor = Piilota oikeusasetukset
roleView.members = K\u00E4ytt\u00E4j\u00E4t roleView.members = K\u00E4ytt\u00E4j\u00E4t
roleView.showPermissioneditor = N\u00E4yt\u00E4 oikeusasetukset roleView.showPermissioneditor = N\u00E4yt\u00E4 oikeusasetukset
save = Tallenna save = Tallenna
submenu.NotImplementedYet = Not implemented submenu.NotImplementedYet = Not implemented
submenu.admin.adduser = K\u00E4ytt\u00E4j\u00E4nlis\u00E4ys submenu.admin.adduser = K\u00E4ytt\u00E4j\u00E4nlis\u00E4ys
submenu.admin.adduser.index = K\u00E4ytt\u00E4j\u00E4nlis\u00E4ys submenu.admin.adduser.index = K\u00E4ytt\u00E4j\u00E4nlis\u00E4ys
...@@ -325,16 +270,12 @@ submenu.info.shop = Kauppa ...@@ -325,16 +270,12 @@ submenu.info.shop = Kauppa
submenu.lectureadmin.lectureParticipants = Tarkastele osallistujia submenu.lectureadmin.lectureParticipants = Tarkastele osallistujia
submenu.lectureadmin.manageLectureGroups = Hallinnoi submenu.lectureadmin.manageLectureGroups = Hallinnoi
submenu.lectures.viewLectures = Ilmoittaudu submenu.lectures.viewLectures = Ilmoittaudu
subnavi.cards = \u0009\u0009 subnavi.cards = \u0009\u0009
subnavi.info = Info subnavi.info = Info
success = Onnistui success = Onnistui
topnavi.adminlectures = Kurssit ja luennot topnavi.adminlectures = Kurssit ja luennot
topnavi.license = Lisenssikoodit topnavi.license = Lisenssikoodit
topnavi.userlectures = Kurssit ja luennot topnavi.userlectures = Kurssit ja luennot
user.cropImage = Crop user.cropImage = Crop
user.imageUpload.imageNotFound = Select image to upload user.imageUpload.imageNotFound = Select image to upload
user.saveUserSelectableRoles = Tallenna user.saveUserSelectableRoles = Tallenna
...@@ -354,8 +295,6 @@ user.shirt.select = Valitse yksi ...@@ -354,8 +295,6 @@ user.shirt.select = Valitse yksi
user.shirtSize = Paidan koko user.shirtSize = Paidan koko
user.unauthenticated = Kirjautumaton user.unauthenticated = Kirjautumaton
user.userSelectableRoles = Valitse yksi user.userSelectableRoles = Valitse yksi
usercart.downloadCsv = CSV usercart.downloadCsv = CSV
usercart.showoverview = Vie tarkastusn\u00E4kym\u00E4\u00E4n usercart.showoverview = Vie tarkastusn\u00E4kym\u00E4\u00E4n
viewlectures.title = Kurssit ja luennot viewlectures.title = Kurssit ja luennot
package fi.codecrew.moya.web.cdiview.shop; package fi.codecrew.moya.web.cdiview.shop;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
...@@ -18,6 +19,7 @@ import fi.codecrew.moya.enums.apps.ShopPermission; ...@@ -18,6 +19,7 @@ import fi.codecrew.moya.enums.apps.ShopPermission;
import fi.codecrew.moya.model.Discount; import fi.codecrew.moya.model.Discount;
import fi.codecrew.moya.model.Product; import fi.codecrew.moya.model.Product;
import fi.codecrew.moya.model.ProductFlag; import fi.codecrew.moya.model.ProductFlag;
import fi.codecrew.moya.model.ProductLimitation;
import fi.codecrew.moya.web.cdiview.GenericCDIView; import fi.codecrew.moya.web.cdiview.GenericCDIView;
@Named @Named
...@@ -40,12 +42,16 @@ public class ProductView extends GenericCDIView { ...@@ -40,12 +42,16 @@ public class ProductView extends GenericCDIView {
private transient ListDataModel<Discount> productDiscounts; private transient ListDataModel<Discount> productDiscounts;
private ProductLimitation limit;
private ListDataModel<ProductLimitation> productLimits;
@SuppressWarnings("unused") @SuppressWarnings("unused")
private static final Logger logger = LoggerFactory.getLogger(ProductView.class); private static final Logger logger = LoggerFactory.getLogger(ProductView.class);
public void initEditView() { public void initEditView() {
if (super.requirePermissions(ShopPermission.MANAGE_PRODUCTS) && product == null) { if (super.requirePermissions(ShopPermission.MANAGE_PRODUCTS) && product == null) {
product = prodbean.findById(getProductId()); product = prodbean.findById(productId);
if (super.requirePermissions(product != null)) { if (super.requirePermissions(product != null)) {
super.beginConversation(); super.beginConversation();
} }
...@@ -108,6 +114,33 @@ public class ProductView extends GenericCDIView { ...@@ -108,6 +114,33 @@ public class ProductView extends GenericCDIView {
return "/product/createDiscount"; return "/product/createDiscount";
} }
public String saveLimit()
{
if (product.getProductLimits() == null) {
product.setProductLimits(new ArrayList<ProductLimitation>());
}
if (!product.getProductLimits().contains(limit)) {
product.getProductLimits().add(limit);
}
prodbean.mergeChanges(product);
limit = null;
return "/product/edit";
}
public String initCreateLimit()
{
setLimit(new ProductLimitation());
getLimit().setProducts(new ArrayList<>(Arrays.asList(product)));
return "/product/editLimit";
}
public String editLimit()
{
limit = productLimits.getRowData();
return "/product/editLimit";
}
public String editDiscount() public String editDiscount()
{ {
discount = productDiscounts.getRowData(); discount = productDiscounts.getRowData();
...@@ -120,8 +153,22 @@ public class ProductView extends GenericCDIView { ...@@ -120,8 +153,22 @@ public class ProductView extends GenericCDIView {
return productDiscounts; return productDiscounts;
} }
public ListDataModel<ProductLimitation> getProductLimits()
{
productLimits = new ListDataModel<ProductLimitation>(product.getProductLimits());
return productLimits;
}
public List<ProductFlag> getProductFlags() public List<ProductFlag> getProductFlags()
{ {
return Arrays.asList(ProductFlag.values()); return Arrays.asList(ProductFlag.values());
} }
public ProductLimitation getLimit() {
return limit;
}
public void setLimit(ProductLimitation limit) {
this.limit = limit;
}
} }
...@@ -28,6 +28,11 @@ public class RoleDataView extends GenericCDIView { ...@@ -28,6 +28,11 @@ public class RoleDataView extends GenericCDIView {
private static final Logger logger = LoggerFactory.getLogger(RoleDataView.class); private static final Logger logger = LoggerFactory.getLogger(RoleDataView.class);
public List<Role> getRoleList()
{
return rolebean.listRoles();
}
public ListDataModel<Role> getRoles() { public ListDataModel<Role> getRoles() {
if (roles == null) { if (roles == null) {
roles = new ListDataModel<Role>(rolebean.listRoles()); roles = new ListDataModel<Role>(rolebean.listRoles());
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!