Commit 00c8483c by Juho Juopperi

Merge branch 'PlaceProductLimit' into 'master'

Place product limit

Created product limitation web-interface.
2 parents eca9d1d0 076f24a5
...@@ -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 actionlog.create.submitbutton = Send
actionlog.create.submitbutton = Send actionlog.create.taskradio = Task
actionlog.create.taskradio = Task actionlog.crew = Crew
actionlog.crew = Crew actionlog.message = Event
actionlog.message = Event
actionlog.messagelist.description = You can follow and create new action messages in this view actionlog.messagelist.description = You can follow and create new action messages in this view
actionlog.messagelist.header = Messagelist actionlog.messagelist.header = Messagelist
actionlog.state = State actionlog.state = State
actionlog.task = Task 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 adduser.tostart = Back to start
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 bill.expires = Expires
bill.expires = Expires bill.isExpired = Bill is expired
bill.isExpired = Bill is expired bill.markPaid.show = Show Mark paid -buttons
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 bortalApplication.EVENT = Event permissions
bortalApplication.EVENT = Event permissions bortalApplication.LAYOUT = Laout management
bortalApplication.LAYOUT = Laout management bortalApplication.LICENSE = License stuff
bortalApplication.LICENSE = License stuff bortalApplication.MAP = Map management
bortalApplication.MAP = Map management bortalApplication.POLL = Polling stuff
bortalApplication.POLL = Polling stuff bortalApplication.SALESPOINT = Managing salespoint
bortalApplication.SALESPOINT = Managing salespoint bortalApplication.SHOP = Product % shop management
bortalApplication.SHOP = Product % shop management bortalApplication.TERMINAL = Sales and self help terminal roles
bortalApplication.TERMINAL = Sales and self help terminal roles bortalApplication.USER = User management related
bortalApplication.USER = User management related bortalApplication.bill.CREATE_BILL = Create bills for self
bortalApplication.bill.CREATE_BILL = Create bills for self bortalApplication.bill.CREATE_VERKKOMAKSU = Can create web payment to self
bortalApplication.bill.CREATE_VERKKOMAKSU = Can create web payment to self bortalApplication.bill.READ_ALL = "Read all bills"
bortalApplication.bill.READ_ALL = "Read all bills" bortalApplication.bill.VIEW_OWN = View own bills
bortalApplication.bill.VIEW_OWN = View own bills bortalApplication.bill.WRITE_ALL = Modify all bills
bortalApplication.bill.WRITE_ALL = Modify all bills bortalApplication.compo.MANAGE = Manage compos
bortalApplication.compo.MANAGE = Manage compos bortalApplication.compo.SUBMIT_ENTRY = Submit entry
bortalApplication.compo.SUBMIT_ENTRY = Submit entry bortalApplication.compo.VIEW_COMPOS = View compos
bortalApplication.compo.VIEW_COMPOS = View compos bortalApplication.compo.VOTE = Vote
bortalApplication.compo.VOTE = Vote bortalApplication.content.MANAGE_ACTIONLOG = Manage actionlog
bortalApplication.content.MANAGE_ACTIONLOG = Manage actionlog bortalApplication.content.MANAGE_MENU = Manage menus
bortalApplication.content.MANAGE_MENU = Manage menus bortalApplication.content.MANAGE_NEWS = Manage newsgroups
bortalApplication.content.MANAGE_NEWS = Manage newsgroups bortalApplication.content.MANAGE_PAGES = Manage pages
bortalApplication.content.MANAGE_PAGES = Manage pages bortalApplication.event.MANAGE_PRIVATE_PROPERTIES = Can manage event private properties
bortalApplication.event.MANAGE_PRIVATE_PROPERTIES = Can manage event private properties bortalApplication.event.MANAGE_PROPERTIES = Can manage event properties
bortalApplication.event.MANAGE_PROPERTIES = Can manage event properties bortalApplication.license.MANAGE = Can manage licenses
bortalApplication.license.MANAGE = Can manage licenses bortalApplication.license.VIEW_OWN_CODES = Can view own licenses
bortalApplication.license.VIEW_OWN_CODES = Can view own licenses bortalApplication.map.BUY_PLACES = Reserve and buy places from map
bortalApplication.map.BUY_PLACES = Reserve and buy places from map bortalApplication.map.MANAGE_MAPS = Create and modify maps
bortalApplication.map.MANAGE_MAPS = Create and modify maps bortalApplication.map.MANAGE_OTHERS = Manage other users reservations in map
bortalApplication.map.MANAGE_OTHERS = Manage other users reservations in map bortalApplication.map.RELEASE_PLACE = Can release place
bortalApplication.map.RELEASE_PLACE = Can release place bortalApplication.map.VIEW = View maps
bortalApplication.map.VIEW = View maps bortalApplication.poll.ANSWER = Can answer and view availabe polls
bortalApplication.poll.ANSWER = Can answer and view availabe polls bortalApplication.poll.CREATE = Create and manage polls
bortalApplication.poll.CREATE = Create and manage polls bortalApplication.poll.VIEW_RESULTS = View anonymized poll results
bortalApplication.poll.VIEW_RESULTS = View anonymized poll results bortalApplication.salespoint.MODIFY = Modify salespoints
bortalApplication.salespoint.MODIFY = Modify salespoints bortalApplication.salespoint.VIEW = View salespoints
bortalApplication.salespoint.VIEW = View salespoints bortalApplication.shop.LIST_ALL_PRODUCTS = List all products in shop
bortalApplication.shop.LIST_ALL_PRODUCTS = List all products in shop bortalApplication.shop.LIST_USERPRODUCTS = List products for users in shop
bortalApplication.shop.LIST_USERPRODUCTS = List products for users in shop bortalApplication.shop.MANAGE_FOODWAVES = Can manage food waves
bortalApplication.shop.MANAGE_FOODWAVES = Can manage food waves bortalApplication.shop.MANAGE_PRODUCTS = Create and modify products
bortalApplication.shop.MANAGE_PRODUCTS = Create and modify products bortalApplication.shop.SHOP_FOODWAVE = Can shop on food wave
bortalApplication.shop.SHOP_FOODWAVE = Can shop on food wave bortalApplication.shop.SHOP_PRODUCTS = Shop products to self
bortalApplication.shop.SHOP_PRODUCTS = Shop products to self bortalApplication.shop.SHOP_TO_OTHERS = Shop to other users
bortalApplication.shop.SHOP_TO_OTHERS = Shop to other users bortalApplication.terminal.CASHIER = Access cashier terminal functions
bortalApplication.terminal.CASHIER = Access cashier terminal functions bortalApplication.terminal.CUSTOMER = Access client terminal functions
bortalApplication.terminal.CUSTOMER = Access client terminal functions bortalApplication.terminal.SELFHELP = Self help terminal
bortalApplication.terminal.SELFHELP = Self help terminal bortalApplication.tournament.DOUBLE_ELIMINATION = Double elimination
bortalApplication.tournament.DOUBLE_ELIMINATION = Double elimination bortalApplication.tournament.SINGLE_ELIMINATION = Single Elimination
bortalApplication.tournament.SINGLE_ELIMINATION = Single Elimination bortalApplication.user = User permissions
bortalApplication.user = User permissions bortalApplication.user.ANYUSER = All users have this anyways
bortalApplication.user.ANYUSER = All users have this anyways bortalApplication.user.CREATE_NEW = Create new user
bortalApplication.user.CREATE_NEW = Create new user bortalApplication.user.INVITE_USERS = Invite users
bortalApplication.user.INVITE_USERS = Invite users bortalApplication.user.LOGGED_IN_USER = Logged in user
bortalApplication.user.LOGGED_IN_USER = Logged in user bortalApplication.user.LOGIN = Can login
bortalApplication.user.LOGIN = Can login bortalApplication.user.LOGOUT = Can logout
bortalApplication.user.LOGOUT = Can logout bortalApplication.user.MANAGE_HTTP_SESSION = Manage http sessions
bortalApplication.user.MANAGE_HTTP_SESSION = Manage http sessions bortalApplication.user.MODIFY = Modify users
bortalApplication.user.MODIFY = Modify users bortalApplication.user.MODIFY_ACCOUNTEVENTS = Modify Account events
bortalApplication.user.MODIFY_ACCOUNTEVENTS = Modify Account events bortalApplication.user.READ_ORGROLES = View organization roles
bortalApplication.user.READ_ORGROLES = View organization roles bortalApplication.user.READ_ROLES = View all roles.
bortalApplication.user.READ_ROLES = View all roles. bortalApplication.user.VIEW_ACCOUNTEVENTS = Show other users account events
bortalApplication.user.VIEW_ACCOUNTEVENTS = Show other users account events bortalApplication.user.VIEW_ALL = View all users
bortalApplication.user.VIEW_ALL = View all users bortalApplication.user.VIEW_OWN_ACCOUNTEVENTS = View own accountevent
bortalApplication.user.VIEW_OWN_ACCOUNTEVENTS = View own accountevent bortalApplication.user.VIEW_SELF = Can view self
bortalApplication.user.VIEW_SELF = Can view self 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 event.id = Event ID
event.id = Event ID event.name = Event name
event.name = Event name event.nextBillNumber = Initial bill number
event.nextBillNumber = Initial bill number
event.privateProperties.title = Private Properties event.privateProperties.title = Private Properties
event.properties.title = Properties 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
game.codes.opened = Avatut lisenssikoodit game.codes.opened = Avatut lisenssikoodit
game.create = Create 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
incomingflow.codeattached.message = Piipattu koodi liitetty n\u00E4ytett\u00E4v\u00E4\u00E4n korttiin incomingflow.codeattached.message = Piipattu koodi liitetty n\u00E4ytett\u00E4v\u00E4\u00E4n korttiin
incomingflow.codeattached.title = Koodi liittetty incomingflow.codeattached.title = Koodi liittetty
incomingflow.giveplace = Merkitse annetuksi incomingflow.giveplace = Merkitse annetuksi
incomingflow.groupmemberships = Paikkakoodit incomingflow.groupmemberships = Paikkakoodit
incomingflow.invalidbarcode.message = Viivakoodilla ei l\u00F6ytynyt mit\u00E4\u00E4n incomingflow.invalidbarcode.message = Viivakoodilla ei l\u00F6ytynyt mit\u00E4\u00E4n
incomingflow.invalidbarcode.title = virheellinen koodi incomingflow.invalidbarcode.title = virheellinen koodi
incomingflow.printedCard = Kortti 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
lecture.createLecture = Uuden tiedot lecture.createLecture = Uuden tiedot
lecture.createNew = Luo uusi lecture.createNew = Luo uusi
lecture.description = Kuvaus lecture.description = Kuvaus
lecture.full = Kurssi t\u00E4ynn\u00E4 lecture.full = Kurssi t\u00E4ynn\u00E4
lecture.groupFull = Kiinti\u00F6 t\u00E4ynn\u00E4 lecture.groupFull = Kiinti\u00F6 t\u00E4ynn\u00E4
lecture.hours = Kesto, tunteja lecture.hours = Kesto, tunteja
lecture.maxParticipantsCount = Max. osallistujia lecture.maxParticipantsCount = Max. osallistujia
lecture.multicreate = Luo monta putkeen lecture.multicreate = Luo monta putkeen
lecture.name = Nimi lecture.name = Nimi
lecture.participants = Osallistujia lecture.participants = Osallistujia
lecture.participate = Ilmoittaudu lecture.participate = Ilmoittaudu
lecture.participateNotActive.message = Voit ilmoittautua kursseille kun olet ostanut lipun tapahtumaan lecture.participateNotActive.message = Voit ilmoittautua kursseille kun olet ostanut lipun tapahtumaan
lecture.participateNotActive.title = Osta ensiksi p\u00E4\u00E4sylippu lecture.participateNotActive.title = Osta ensiksi p\u00E4\u00E4sylippu
lecture.participatedLectures = Kurssi-ilmoittautumisesi lecture.participatedLectures = Kurssi-ilmoittautumisesi
lecture.participating = Osallistumassa lecture.participating = Osallistumassa
lecture.roles = Roolit lecture.roles = Roolit
lecture.saveLecture = Muokkaa 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 lectureGroup.manageLectures = Hallitse luentoja
lectureGroup.manageLectures = Hallitse luentoja lectureGroup.name = Nimi
lectureGroup.name = Nimi lectureGroup.saveLectureGroup = Muokkaa kurssikokonaisuutta
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.message = Username of password incorrect.
loginerror.header = Login failed
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 submenu.frontpage = Frontpage
submenu.frontpage = Frontpage submenu.info.incoming = Sis\u00E4\u00E4ntulo
submenu.info.incoming = Sis\u00E4\u00E4ntulo submenu.info.index = Infon\u00E4kym\u00E4
submenu.info.index = Infon\u00E4kym\u00E4 submenu.info.shop = Kauppa
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
user.shirt.L = Unisex L user.shirt.L = Unisex L
user.shirt.LadyL = Ladyfit L user.shirt.LadyL = Ladyfit L
user.shirt.LadyM = Ladyfit M user.shirt.LadyM = Ladyfit M
user.shirt.LadyS = Ladyfit S user.shirt.LadyS = Ladyfit S
user.shirt.LadyXL = Ladyfit XL user.shirt.LadyXL = Ladyfit XL
user.shirt.LadyXS = Ladyfit XS user.shirt.LadyXS = Ladyfit XS
user.shirt.LadyXXL = Ladyfit XXL user.shirt.LadyXXL = Ladyfit XXL
user.shirt.M = Unisex M user.shirt.M = Unisex M
user.shirt.S = Unisex S user.shirt.S = Unisex S
user.shirt.XL = Unisex XL user.shirt.XL = Unisex XL
user.shirt.XXL = Unisex XXL user.shirt.XXL = Unisex XXL
user.shirt.XXXL = Unisex XXXL user.shirt.XXXL = Unisex XXXL
user.shirt.select = Valitse yksi 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
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
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());
...@@ -54,7 +59,7 @@ public class RoleDataView extends GenericCDIView { ...@@ -54,7 +59,7 @@ public class RoleDataView extends GenericCDIView {
} }
return roles; return roles;
} }
public List<Role> getUserSelectableRoles() { public List<Role> getUserSelectableRoles() {
return rolebean.listUserSelectableRoles(); return rolebean.listUserSelectableRoles();
} }
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!