Commit 65fee7e9 by Tuukka Kivilahti

Merge branch 'master' of codecrew.fi:codecrew/moya into manageParticipants

Conflicts:
	code/MoyaWeb/src/fi/codecrew/moya/resources/i18n.properties
	code/MoyaWeb/src/fi/codecrew/moya/resources/i18n_en.properties
	code/MoyaWeb/src/fi/codecrew/moya/resources/i18n_fi.properties
2 parents 05c013a2 f2a58344
...@@ -234,14 +234,19 @@ public class TournamentBean implements TournamentBeanLocal { ...@@ -234,14 +234,19 @@ public class TournamentBean implements TournamentBeanLocal {
EventUser executor = permissionBean.getCurrentUser(); EventUser executor = permissionBean.getCurrentUser();
// Assert we have permission to remove participant // Assert we have permission to remove participant
// TODO: this will include check for remove any participation too! if(tp.getParticipator().equals(executor)) {
if (!permissionBean.hasPermission(TournamentPermission.REMOVE_OWN_PARTICIPATION) || !tp.getParticipator().equals(executor)) { // own participation, can we delete?
throw new Exception("tournaments.can_only_remove_own_participations"); if(!permissionBean.hasPermission(TournamentPermission.REMOVE_OWN_PARTICIPATION)) {
throw new Exception("tournaments.can_only_remove_own_participations");
}
} else {
if(!permissionBean.hasPermission(TournamentPermission.MANAGE_ALL)) {
throw new Exception("tournaments.cannot_remove_others_participations");
}
} }
// Assert that tournament has not closed participation // Assert that tournament has not closed participation
// TODO: admin exception! if (!permissionBean.hasPermission(TournamentPermission.MANAGE_ALL) && !tp.getTournament().getRegistrationClosesAt().after(new Date())) {
if (!tp.getTournament().getRegistrationClosesAt().after(new Date())) {
throw new Exception("tournaments.cannot_remove_participation_from_closed_tournament"); throw new Exception("tournaments.cannot_remove_participation_from_closed_tournament");
} }
......
...@@ -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>
...@@ -117,10 +117,7 @@ ...@@ -117,10 +117,7 @@
color: #006600; color: #006600;
} }
.lectureCalendar,
.lectureCalendar,
.lectureCalendarParticipating, .lectureCalendarParticipating,
.lectureCalendarDisabled { .lectureCalendarDisabled {
border: 1px solid black; border: 1px solid black;
...@@ -136,3 +133,13 @@ ...@@ -136,3 +133,13 @@
background-color: gray; background-color: gray;
} }
.noBorders tr, .noBorders td {
background: none !important;
border: none !important;
}
.inlineRow > td {
padding: 0 !important;
margin: 0;
padding-left: 40px !important;
}
...@@ -38,7 +38,18 @@ ...@@ -38,7 +38,18 @@
<h:outputText value="#{groupMembership.placeReservation.name}" />&nbsp; <h:outputText value="#{groupMembership.placeReservation.name}" />&nbsp;
</ui:repeat> </ui:repeat>
</p:column> </p:column>
</p:dataTable> <p:column>
<p:commandButton value="#{i18n['delete']}" actionListener="#{tournamentParticipantsView.deleteParticipation}" update="@form">
<p:confirm header="#{i18n['confirmdialog.header']}" message="#{i18n['confirmdialog.are_you_sure']}" icon="ui-icon-alert" />
<f:attribute name="participantid" value="#{participant.id}" />
</p:commandButton>
<p:confirmDialog global="true">
<p:commandButton value="#{i18n['confirmdialog.yes']}" type="button" styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
<p:commandButton value="#{i18n['confirmdialog.no']}" type="button" styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
</p:confirmDialog>
</p:column>
</p:dataTable>
</h:form> </h:form>
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
<p>#{i18n['tournaments.admin.view_tournament_description_teamview_addition']}</p> <p>#{i18n['tournaments.admin.view_tournament_description_teamview_addition']}</p>
<h:form> <h:form>
<p:dataTable value="#{tournamentParticipantsView.tournament.participants}" var="participant"> <p:dataTable value="#{tournamentParticipantsView.tournament.participants}" var="participant">
<p:column style="width:2%"> <p:column style="width:20px">
<p:rowToggler /> <p:rowToggler />
</p:column> </p:column>
<p:column> <p:column>
...@@ -28,32 +28,50 @@ ...@@ -28,32 +28,50 @@
</f:facet> </f:facet>
<h:outputText value="#{participant.participator.nick}" /> <h:outputText value="#{participant.participator.nick}" />
</p:column> </p:column>
<p:rowExpansion> <p:column>
<h:panelGrid id="display" columns="2" cellpadding="4" styleClass=" ui-widget-content grid"> <p:commandButton value="#{i18n['delete']}" actionListener="#{tournamentParticipantsView.deleteParticipation}" update="@form">
<h:outputText value="#{i18n['tournament.team_members']}" /> <p:confirm header="#{i18n['confirmdialog.header']}" message="#{i18n['confirmdialog.are_you_sure']}" icon="ui-icon-alert" />
<h:panelGroup> <f:attribute name="participantid" value="#{participant.id}" />
<ul> </p:commandButton>
<ui:repeat var="member" value="#{participant.teamMembers}"> <p:confirmDialog global="true">
<li> <p:commandButton value="#{i18n['confirmdialog.yes']}" type="button" styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
<h:outputText value="#{member.eventUser.nick}" /> <p:commandButton value="#{i18n['confirmdialog.no']}" type="button" styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
<ul> </p:confirmDialog>
<li> </p:column>
<h:outputText value="#{tournamentParticipantsView.eventUserGameID[member.eventUser.id]}" /> <p:rowExpansion styleClass="inlineRow">
</li> <p:dataTable value="#{participant.teamMembers}" var="member">
<li> <p:column>
<h:outputText value="#{member.eventUser.email}" /> <f:facet name="header">
</li> <h:outputText value="#{i18n['user.nick']}" />
<li> </f:facet>
<ui:repeat rendered="#{not empty member.eventUser.groupMemberships}" var="groupMembership" value="#{member.eventUser.groupMemberships}"> <h:outputText value="#{member.eventUser.nick}" />
<h:outputText value="#{groupMembership.placeReservation.name}" />&nbsp; </p:column>
</ui:repeat>
</li> <p:column>
</ul> <f:facet name="header">
</li> <h:outputText value="#{i18n['tournament.participant_gameid']}" />
</ui:repeat> </f:facet>
</ul> <h:outputText value="#{tournamentParticipantsView.eventUserGameID[member.eventUser.id]}" />
</h:panelGroup> </p:column>
</h:panelGrid>
<p:column>
<f:facet name="header">
<h:outputText value="#{i18n['user.email']}" />
</f:facet>
<h:outputText value="#{member.eventUser.email}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="#{i18n['place.code']}" />
</f:facet>
<ui:repeat rendered="#{not empty member.eventUser.groupMemberships}" var="groupMembership" value="#{member.eventUser.groupMemberships}">
<h:outputText value="#{groupMembership.placeReservation.name}" />&nbsp;
</ui:repeat>
</p:column>
</p:dataTable>
</p:rowExpansion> </p:rowExpansion>
</p:dataTable> </p:dataTable>
</h:form> </h:form>
......
...@@ -17,7 +17,8 @@ ...@@ -17,7 +17,8 @@
<p>#{i18n['tournaments.description']}</p> <p>#{i18n['tournaments.description']}</p>
<h2>#{i18n['tournaments.open_tournaments']}</h2> <h2>#{i18n['tournaments.open_tournaments']}</h2>
<p:dataTable value="#{tournamentListView.setupPhaseTournaments}" var="tournament"> <p:dataTable value="#{tournamentListView.setupPhaseTournaments}" var="tournament">
<p:column style="width:2%">
<p:column style="width:20px">
<p:rowToggler /> <p:rowToggler />
</p:column> </p:column>
<p:column> <p:column>
...@@ -96,7 +97,7 @@ ...@@ -96,7 +97,7 @@
</p:dataTable> </p:dataTable>
<h2>#{i18n['tournaments.setup_closed_tournaments']}</h2> <h2>#{i18n['tournaments.setup_closed_tournaments']}</h2>
<p:dataTable value="#{tournamentListView.setupClosedPhaseTournaments}" var="tournament"> <p:dataTable value="#{tournamentListView.setupClosedPhaseTournaments}" var="tournament">
<p:column style="width:2%"> <p:column style="width:20px">
<p:rowToggler /> <p:rowToggler />
</p:column> </p:column>
<p:column> <p:column>
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
<h2>#{i18n['tournaments.participate_team_members']}</h2> <h2>#{i18n['tournaments.participate_team_members']}</h2>
<p:messages autoUpdate="true" redisplay="false"></p:messages> <p:messages autoUpdate="true" redisplay="false"></p:messages>
<h:form> <h:form>
<p:commandButton style="width: 0px; height: 0px;" value="" action="#{tournamentParticipateView.addMainPlayerToTeam}" update="@form"/>
<h3>#{i18n['tournaments.team_details']}</h3> <h3>#{i18n['tournaments.team_details']}</h3>
<h:panelGrid columns="2"> <h:panelGrid columns="2">
<h:outputText value="#{i18n['tournament.team_name']}" /> <h:outputText value="#{i18n['tournament.team_name']}" />
...@@ -78,7 +79,7 @@ ...@@ -78,7 +79,7 @@
<h:panelGroup> <h:panelGroup>
#{i18n['tournaments.participate_backup_player_count']}: #{i18n['tournaments.participate_backup_player_count']}:
#{tournamentParticipateView.backupPlayerCount}/#{tournamentParticipateView.backupMax} #{tournamentParticipateView.backupPlayerCount}/#{tournamentParticipateView.backupMax}
</h:panelGroup> </h:panelGroup>
</h:panelGrid> </h:panelGrid>
<p:commandButton value="#{i18n['tournaments.cancel_participation']}" action="#{tournamentParticipateView.cancelParticipation}" onerror="location.reload(true);"/> <p:commandButton value="#{i18n['tournaments.cancel_participation']}" action="#{tournamentParticipateView.cancelParticipation}" onerror="location.reload(true);"/>
......
#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
...@@ -127,21 +127,21 @@ error = Virhe ...@@ -127,21 +127,21 @@ 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
...@@ -150,31 +150,31 @@ eventorg.create = Create ...@@ -150,31 +150,31 @@ 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
...@@ -190,10 +190,10 @@ incomingflow.usereditor = K\u00E4ytt\u00E4j\u00E4 ...@@ -190,10 +190,10 @@ 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
...@@ -201,66 +201,66 @@ lanEventProperty.defaultValue = Default value ...@@ -201,66 +201,66 @@ 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.manageParticipants = Hallitse osallistujia lecture.manageParticipants = Hallitse osallistujia
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.showParticipants = N\u00E4yt\u00E4 osallistujat lecture.showParticipants = N\u00E4yt\u00E4 osallistujat
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.header = Login failed
loginerror.message = Username of password incorrect. loginerror.message = Username of password incorrect.
loginerror.resetpassword = Reset password loginerror.resetpassword = Reset password
manageparticipants.addUser = Lis\u00E4\u00E4 osallistuja manageparticipants.addUser = Lis\u00E4\u00E4 osallistuja
manageparticipants.lectureTitle = Kurssin / luennon tiedot manageparticipants.lectureTitle = Kurssin / luennon tiedot
manageparticipants.title = Osallistujat manageparticipants.title = Osallistujat
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
...@@ -275,7 +275,7 @@ page.bill.show.header = Bill info ...@@ -275,7 +275,7 @@ 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.
...@@ -291,9 +291,9 @@ poll.edit = edit ...@@ -291,9 +291,9 @@ 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
...@@ -306,31 +306,31 @@ refresh = P\u00E4ivit\u00E4 ...@@ -306,31 +306,31 @@ 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
...@@ -341,27 +341,27 @@ topnavi.adminlectures = Kurssit ja luennot ...@@ -341,27 +341,27 @@ 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;
}
} }
...@@ -4,6 +4,8 @@ import java.util.HashMap; ...@@ -4,6 +4,8 @@ import java.util.HashMap;
import javax.ejb.EJB; import javax.ejb.EJB;
import javax.enterprise.context.ConversationScoped; import javax.enterprise.context.ConversationScoped;
import javax.faces.event.ActionEvent;
import javax.faces.event.ActionListener;
import javax.inject.Named; import javax.inject.Named;
import fi.codecrew.moya.beans.TournamentBeanLocal; import fi.codecrew.moya.beans.TournamentBeanLocal;
...@@ -12,6 +14,7 @@ import fi.codecrew.moya.model.GameID; ...@@ -12,6 +14,7 @@ import fi.codecrew.moya.model.GameID;
import fi.codecrew.moya.model.Tournament; import fi.codecrew.moya.model.Tournament;
import fi.codecrew.moya.model.TournamentParticipant; import fi.codecrew.moya.model.TournamentParticipant;
import fi.codecrew.moya.model.TournamentTeamMember; import fi.codecrew.moya.model.TournamentTeamMember;
import fi.codecrew.moya.utilities.jsf.MessageHelper;
import fi.codecrew.moya.web.cdiview.GenericCDIView; import fi.codecrew.moya.web.cdiview.GenericCDIView;
@Named @Named
...@@ -27,7 +30,7 @@ public class TournamentParticipantsView extends GenericCDIView { ...@@ -27,7 +30,7 @@ public class TournamentParticipantsView extends GenericCDIView {
public String showView(Integer tournamentId) { public String showView(Integer tournamentId) {
if(eventUserGameID == null) { if(eventUserGameID == null) {
this.setTournament(tournamentBean.getTournamentById(tournamentId)); this.tournament = tournamentBean.getTournamentById(tournamentId);
this.beginConversation(); this.beginConversation();
eventUserGameID = new HashMap<Integer, String>(); eventUserGameID = new HashMap<Integer, String>();
for(TournamentParticipant tp : tournament.getParticipants()) { for(TournamentParticipant tp : tournament.getParticipants()) {
...@@ -46,6 +49,17 @@ public class TournamentParticipantsView extends GenericCDIView { ...@@ -46,6 +49,17 @@ public class TournamentParticipantsView extends GenericCDIView {
return "/tournaments/admin/view_tournament_team.xhtml"; return "/tournaments/admin/view_tournament_team.xhtml";
} }
public void deleteParticipation(ActionEvent ae) {
try {
Integer id = (Integer)ae.getComponent().getAttributes().get("participantid");
tournamentBean.deleteParticipationById(id);
this.tournament = tournamentBean.getTournamentById(this.tournament.getId());
} catch(Exception e) {
MessageHelper.err(e.getMessage());
}
}
public String cancel() { public String cancel() {
this.endConversation(); this.endConversation();
return "/tournaments/admin/index.xhtml"; return "/tournaments/admin/index.xhtml";
......
...@@ -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!