Commit 107eb0b6 by Petri Jarvisalo

Merge branch 'devel' of codecrew.fi:bortal into devel

2 parents be9c6704 f942451c
......@@ -75,7 +75,7 @@ public class MenuBean implements MenuBeanLocal {
MenuNavigation usermenu = new MenuNavigation(ev, "topnavi.usernavi", menusort = +10);
usermenu.addPage(menuitemfacade.findOrCreate("/index"), UserPermission.ANYUSER);
usermenu.addPage(menuitemfacade.findOrCreate("/frontpage"), UserPermission.ANYUSER);
usermenu.addPage(menuitemfacade.findOrCreate("/permissionDenied"), null).setVisible(false);
usermenu.addPage(menuitemfacade.findOrCreate("/auth/login"), null).setVisible(false);
usermenu.addPage(menuitemfacade.findOrCreate("/auth/loginError"), null).setVisible(false);
......@@ -89,8 +89,8 @@ public class MenuBean implements MenuBeanLocal {
MenuNavigation userEvent = usermenu.addPage(null, null);
userEvent.setKey("topnavi.userevent");
userEvent.addPage(menuitemfacade.findOrCreate("/poll/index"), PollPermission.ANSWER);
userEvent.addPage(menuitemfacade.findOrCreate("/feedback/index"), UserPermission.ANYUSER);
userEvent.addPage(menuitemfacade.findOrCreate("/user/invite"), UserPermission.ANYUSER);
userEvent.addPage(menuitemfacade.findOrCreate("/user/invite"), UserPermission.INVITE_USERS);
userEvent.addPage(menuitemfacade.findOrCreate("/feedback/index"), UserPermission.VITUTTAAKO);
MenuNavigation userkauppa = usermenu.addPage(null, null);
userkauppa.setKey("topnavi.usershop");
......@@ -229,8 +229,12 @@ public class MenuBean implements MenuBeanLocal {
gamenavi.setKey("topnavi.license");
gamenavi.addPage(menuitemfacade.findOrCreate("/license/manageCodes"), LicensePermission.MANAGE);
adminevent.addPage(menuitemfacade.findOrCreate("/eventorg/list"), EventPermission.MANAGE_PROPERTIES);
adminevent.addPage(menuitemfacade.findOrCreate("/feedback/index"), UserPermission.VITUTTAAKO);
navifacade.create(adminmenu);
MenuNavigation shopmenu = new MenuNavigation(ev, "topnavi.shopnavi", menusort = +10);
......@@ -309,7 +313,7 @@ public class MenuBean implements MenuBeanLocal {
MenuNavigation frontTopnavi = usernavi.addPage(null, null);
frontTopnavi.setKey("topnavi.frontpage");
frontTopnavi.addPage(menuitemfacade.findOrCreate("/index"), UserPermission.ANYUSER);
frontTopnavi.addPage(menuitemfacade.findOrCreate("/frontpage"), UserPermission.ANYUSER);
frontTopnavi.addPage(menuitemfacade.findOrCreate("/user/create"), UserPermission.CREATE_NEW);
frontTopnavi.addPage(menuitemfacade.findOrCreate("/auth/sendResetMail"), UserPermission.LOGIN);
frontTopnavi.addPage(menuitemfacade.findOrCreate("/user/invite"), UserPermission.INVITE_USERS);
......
......@@ -6,6 +6,7 @@ import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import fi.codecrew.moya.enums.TournamentStatus;
import fi.codecrew.moya.facade.TournamentFacade;
import fi.codecrew.moya.facade.TournamentGameFacade;
import fi.codecrew.moya.facade.TournamentRuleFacade;
......@@ -65,4 +66,9 @@ public class TournamentBean implements TournamentBeanLocal {
public void createTournament(Tournament tournament) {
tournamentFacade.create(tournament);
}
@Override
public List<Tournament> getActiveTournaments() {
return tournamentFacade.getTournamentsNotInStatus(TournamentStatus.COMPLETED);
}
}
package fi.codecrew.moya.facade;
import java.util.List;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import fi.codecrew.moya.enums.TournamentStatus;
import fi.codecrew.moya.model.Tournament;
import fi.codecrew.moya.model.Tournament_;
import fi.codecrew.moya.model.User;
import fi.codecrew.moya.model.User_;
@Stateless
@LocalBean
......@@ -11,5 +20,15 @@ public class TournamentFacade extends IntegerPkGenericFacade<Tournament> {
public TournamentFacade() {
super(Tournament.class);
}
public List<Tournament> getTournamentsNotInStatus(TournamentStatus status) {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<Tournament> cq = cb.createQuery(Tournament.class);
Root<Tournament> root = cq.from(Tournament.class);
cq.where(cb.notEqual(root.get(Tournament_.tournamentStatus), status));
return getEm().createQuery(cq).getResultList();
}
}
......@@ -18,5 +18,6 @@ public interface TournamentBeanLocal {
TournamentGame findGame(Integer id);
TournamentRule findRule(Integer id);
void createTournament(Tournament tournament);
List<Tournament> getActiveTournaments();
}
......@@ -65,14 +65,6 @@ public class Tournament extends GenericEntity implements Serializable {
@JoinColumn(name="rules", nullable=false)
private TournamentRule rules;
public TournamentRule getRules() {
return rules;
}
public void setRules(TournamentRule rules) {
this.rules = rules;
}
@OneToMany
@OrderBy("id ASC")
......@@ -183,4 +175,11 @@ public class Tournament extends GenericEntity implements Serializable {
public void setSubTournaments(List<Tournament> subTournaments) {
this.subTournaments = subTournaments;
}
public TournamentRule getRules() {
return rules;
}
public void setRules(TournamentRule rules) {
this.rules = rules;
}
}
......@@ -21,7 +21,7 @@ import org.eclipse.persistence.annotations.OptimisticLockingType;
@OptimisticLocking(type = OptimisticLockingType.CHANGED_COLUMNS)
public class TournamentRule extends GenericEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name="name")
private String name;
......@@ -70,6 +70,4 @@ public class TournamentRule extends GenericEntity implements Serializable {
public void setTournamentGame(TournamentGame tournamentGame) {
this.tournamentGame = tournamentGame;
}
}
......@@ -139,6 +139,24 @@
<redirect />
</navigation-case>
</navigation-rule>
<navigation-rule>
<display-name>tournaments/admin/move-to-creation-screen</display-name>
<from-view-id>/tournaments/admin/index.xhtml</from-view-id>
<navigation-case>
<from-outcome>create</from-outcome>
<to-view-id>/tournaments/admin/createwizard.xhtml</to-view-id>
<redirect />
</navigation-case>
</navigation-rule>
<navigation-rule>
<display-name>tournaments/admin/tournament-created</display-name>
<from-view-id>/tournaments/admin/createwizard.xhtml</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/tournaments/admin/index.xhtml</to-view-id>
<redirect />
</navigation-case>
</navigation-rule>
</faces-config>
......
<!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:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<title></title>
</h:head>
<h:body>
<ui:composition template="#{sessionHandler.template}">
<f:metadata>
<f:event type="preRenderView" listener="#{pageOutputView.initIndexView}" />
</f:metadata>
<ui:define name="content">
<h:outputLabel rendered="#{sessionHandler.isInDevelopmentMode()}">
Development-tilassa.
Täällä voit huoletta rikkoa.
</h:outputLabel>
<ui:fragment rendered="#{layoutView.manageContent}">
<h:link value="#{i18n['layout.editContent']}" outcome="/pages/manage">
<f:param name="pagename" value="#{layoutView.pagepath}" />
</h:link>
<br />
</ui:fragment>
<ui:repeat var="cont1" value="#{pageOutputView.contents}">
<h:outputText value="#{cont1.content}" escape="false" />
</ui:repeat>
</ui:define>
</ui:composition>
</h:body>
</html>
\ No newline at end of file
<!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:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<meta http-equiv="refresh" content="1;url=frontpage.jsf" />
<script type="text/javascript">
window.location.href = "frontpage.jsf"
</script>
<title></title>
</h:head>
<h:body>
<ui:composition template="#{sessionHandler.template}">
<f:metadata>
<f:event type="preRenderView" listener="#{pageOutputView.initIndexView}" />
</f:metadata>
<ui:define name="content">
<h:outputLabel rendered="#{sessionHandler.isInDevelopmentMode()}">
Development-tilassa.
Täällä voit huoletta rikkoa.
</h:outputLabel>
<ui:fragment rendered="#{layoutView.manageContent}">
<h:link value="#{i18n['layout.editContent']}" outcome="/pages/manage">
<f:param name="pagename" value="#{layoutView.pagepath}" />
</h:link>
<br />
</ui:fragment>
<ui:repeat var="cont1" value="#{pageOutputView.contents}">
<h:outputText value="#{cont1.content}" escape="false" />
</ui:repeat>
</ui:define>
</ui:composition>
Redirecting to <a href="frontpage.jsf">Frontpage</a>
</h:body>
</html>
\ No newline at end of file
......@@ -4,7 +4,7 @@
<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:login="http://java.sun.com/jsf/composite/cditools/login"
xmlns:tools="http://java.sun.com/jsf/composite/cditools"
xmlns:tools="http://java.sun.com/jsf/composite/cditools" xmlns:p="http://primefaces.org/ui"
>
<composite:interface>
......@@ -13,7 +13,12 @@
<composite:implementation>
<c:choose>
<c:when test='#{sessionHandler.isLoggedIn() }'>
<h:link value="#{i18n['login.logout']}" outcome="/auth/logout" />
<h:form>
<p:commandLink actionListener="#{authView.doLogout}" ajax="false">
<h:outputText value="#{i18n['login.logout']}" />
</p:commandLink>
</h:form>
</c:when>
<c:otherwise>
<login:login isOneliner="true" />
......
......@@ -69,6 +69,7 @@ label {
font-weight: 100;
font-family: Oxygen;
font-size: 10pt;
padding-left: 10px;
}
input,textarea {
......@@ -190,4 +191,8 @@ aside {
#header_right {
text-align: right;
}
\ No newline at end of file
}
th, td {
padding: 5px;
}
......@@ -80,6 +80,7 @@
<f:selectItems value="#{tournamentCreateView.tournamentTypes}" var="val" itemLabel="#{val}" />
</h:selectOneMenu>
<br />
<h:outputText value="#{i18n['tournaments.players_per_match']}" />
<h:panelGrid columns="1" style="margin-bottom:10px">
<p:inputText id="playerSlider" value="#{tournamentCreateView.tournament.playersPerMatch}" />
......@@ -110,7 +111,7 @@
<br />
</p:panel>
<div style="float: right;">
<p:commandButton icon="apply" value="#{i18n['tournaments.admin.create_tournament']}" actionListener="#{tournamentCreateView.save}"/>
<p:commandButton icon="apply" value="#{i18n['tournaments.admin.create_tournament']}" action="#{tournamentCreateView.save}"/>
</div>
</p:tab>
</p:wizard>
......
......@@ -13,9 +13,47 @@
<h1>#{i18n['tournaments.admin.title']}</h1>
<p>#{i18n['tournaments.admin.description']}</p>
<h2>#{i18n['tournaments.active_tournaments']}</h2>
<!-- <p:dataTable styleClass="bordertable" id="actionlogtable" value="#{actionLogMessageView.messages}" var="message" paginator="true" rows="30" paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" rowsPerPageTemplate="10,20,30,50,100" > -->
<p:dataTable value="#{tournamentAdminView.activeTournaments}" var="tournament">
<p:column>
<f:facet name="header">
<h:outputText value="#{i18n['tournament.name']}" />
</f:facet>
<h:outputText value="#{tournament.tournamentName}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="#{i18n['tournament.status']}" />
</f:facet>
<h:outputText value="#{tournament.tournamentStatus}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="#{i18n['tournament.type']}" />
</f:facet>
<h:outputText value="#{tournament.tournamentType}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="#{i18n['tournament.playerspermatch_slash_teamsize']}" />
</f:facet>
<h:outputText value="#{tournament.playersPerMatch}/#{tournament.playersPerTeam}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="#{i18n['tournament.game']}" />
</f:facet>
<h:outputText value="#{tournament.tournamentGame.name}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="#{i18n['tournament.rules']}" />
</f:facet>
<h:outputText value="#{tournament.rules.name}" />
</p:column>
</p:dataTable>
<h:form>
<p:commandButton value="#{i18n['tournament.admin.create']}" action="#{tournamentAdminView.create}" />
</h:form>
</ui:define>
</ui:composition>
</h:body>
......
......@@ -299,6 +299,7 @@ foodWave.activeFoodWaves = Active Foodwaves
foodWave.billLines = Pending Online Payments
foodWave.closeNow = Close now
foodWave.deliveredFoodWaves = Delivered Foodwaves
foodWave.description = Foodwave description
foodWave.list = Active Foodwaves
foodWave.name = Foodwave
foodWave.openNow = Open now
......@@ -593,6 +594,7 @@ page.role.edit.pagegroup = admin
page.role.list.pagegroup = admin
page.shop.readerevents.header = RFID shop
page.svm.failure.header = Payment error
page.svm.notification.header = Suomen verkkomaksut notification
page.svm.pending.header = Payment pending
page.svm.success.header = Payment successfull
page.tests.placemap.pagegroup = shop
......@@ -805,21 +807,26 @@ sendPicture.header = S
shop.accountBalance = Credits
shop.actions = Actions
shop.afterBalance = Balance after action
shop.barcode = Barcode
shop.buy = Buy
shop.buyCash = Buy by Cash
shop.buyCredit = Buy Credit
shop.calcsubtotal = Calc Subtotal
shop.cartPrice = Cart price
shop.cash = Cash
shop.cashBack = Back
shop.cashGiven = Cash given
shop.cashback = Cashback
shop.confirmCreditBuy = Are You sure ?
shop.count = Q
shop.currentBalance = Current balance
shop.price = price
shop.product = Product
shop.readBarcode = Read
shop.shop = Shop
shop.totalPrice = Total
shop.transactionTotal = Transaction total
shop.user = Selling to
sidebar.bill.list = My bills
......@@ -868,7 +875,7 @@ submenu.bill.billSummary = Bill summary
submenu.bill.list = My bills
submenu.bill.listAll = All bills
submenu.eventorg.list = Manage Event
submenu.feedback.index = Feedback
submenu.feedback.index = U Mad?!
submenu.foodadmin.createTemplate = Create foodwave template
submenu.foodadmin.listTemplates = List foodwave templates
submenu.foodmanager.listFoodwaves = List active foodwaves
......@@ -883,6 +890,7 @@ submenu.orgrole.create = Create organisationrole
submenu.orgrole.list = Organisation roles
submenu.pages.create = Create content
submenu.pages.list = List pages
submenu.place.adminGroups = Account places
submenu.place.adminPlacemap = Placemap
submenu.place.editGroup = Edit group
submenu.place.insertToken = Insert placecode
......@@ -895,6 +903,7 @@ submenu.role.create = Create role
submenu.role.list = Show Roles
submenu.shop.createBill = Purchase
submenu.shop.listReaders = List readers
submenu.shop.shopToUser = Shop to user
submenu.shop.showReaderEvents = Reader events
submenu.user.accountEvents = Account events
submenu.user.changePassword = Change password
......@@ -908,10 +917,14 @@ submenu.user.rolelinks = Manage roles
submenu.user.sendPicture = Send picture
submenu.user.shop = Shop
submenu.user.userlinks = User information
submenu.useradmin.accountEvents = Account events
submenu.useradmin.create = Create user
submenu.useradmin.createCardTemplate = Create cardtemplate
submenu.useradmin.edit = Edit user
submenu.useradmin.foodwaveshop = Food wave shop
submenu.useradmin.list = Search Users
submenu.useradmin.listCardTemplates = Card templates
submenu.useradmin.sendPicture = Send a picture
submenu.useradmin.showTakePicture = Show webcam
submenu.useradmin.validateUser = Validate user
submenu.voting.compolist = Compos
......@@ -928,12 +941,14 @@ subnavi.roles = Roles
supernavi.admin = Adminview
supernavi.user = Userview
svm.failure.errorMessage = Payment error.
svm.failure.successMessage = Payment error successfull\u2026 ( Possibly already marked paid )
svm.pending.errorMessage = Unknown error! If payment was successfull email will be sent after verification.
svm.pending.successMessage = Payment pending. You will receive email after payment verification.
svm.success.errorMessage = Payment could not be verified!
svm.success.successMessage = Payment was successfull. You can now your credits in the system.
svm.failure.errorMessage = Payment error.
svm.failure.successMessage = Payment error successfull\u2026 ( Possibly already marked paid )
svm.notification.errorMessage = Payment failed
svm.notification.successMessage = Payment notification received
svm.pending.errorMessage = Unknown error! If payment was successfull email will be sent after verification.
svm.pending.successMessage = Payment pending. You will receive email after payment verification.
svm.success.errorMessage = Payment could not be verified!
svm.success.successMessage = Payment was successfull. You can now your credits in the system.
template.loggedInAs = Logged in as
......@@ -967,6 +982,43 @@ topnavi.usermgmt = Users
topnavi.userplaces = Computer Places
topnavi.usershop = Shop
tournament.admin.create = Create new tournament
tournament.create = Create tournament
tournament.edit = Edit tournament
tournament.game = Game
tournament.name = Tournament name
tournament.playerspermatch_slash_teamsize = Players / team size
tournament.rules = Rules
tournament.status = Status
tournament.type = Type
tournaments.active_tournaments = Active tournaments
tournaments.admin.begin_time_constraints = Tournament begin time
tournaments.admin.create = Create tournament
tournaments.admin.create_a_game = Create a game
tournaments.admin.create_new_ruleset = Create a new ruleset
tournaments.admin.create_tournament = Create a tournament
tournaments.admin.description = Manage tournaments
tournaments.admin.edit = Edit tournament
tournaments.admin.game_description = Game description
tournaments.admin.game_name = Game name
tournaments.admin.registration_time_constraints = Registration time constraints
tournaments.admin.rules = Rules
tournaments.admin.select_a_game = Select a game
tournaments.admin.select_a_ruleset = Select a ruleset
tournaments.admin.set_time_constraints = Set time constraints
tournaments.admin.title = Tournaments management
tournaments.backup_players = Max backup players
tournaments.players_per_match = Max players per match
tournaments.registration_closes = Set registration closing time
tournaments.registration_opens = Set registration opening time
tournaments.ruleset_description = Ruleset description
tournaments.ruleset_name = Ruleset name
tournaments.ruleset_rules = Tournament ruleset
tournaments.tournament_details = Tournament details
tournaments.tournament_name = Tournament name
tournaments.tournament_type = Tournament type
user.accountBalance = Account balance
user.accountEventHeader = Account events
user.accountevents = Account events
......@@ -981,6 +1033,7 @@ user.changepassword.title = Change password
user.create = Create user
user.createdmessage = User has been created successfully. You can now login.
user.cropImage = Crop image
user.cropUserImage = Crop image
user.defaultImage = Default picture
user.edit = Edit
user.edit.title = My information
......@@ -991,6 +1044,7 @@ user.foodwave.products.title = Choose Products
user.foodwavelist.title = Choose Foodwave
user.hasImage = Image
user.image = Image
user.imageTooBig = Image is too big
user.imagelist = Saved images
user.imagesubmit = Send image
user.insert = Insert
......@@ -1021,6 +1075,7 @@ user.roles = Roles
user.rolesave = Save roles
user.save = Save
user.saveFailed = Save failed, Not enough permissions!
user.saveRoles = Save roles
user.saveSuccessfull = Changes saved successfully
user.search = Search
user.searchUser = Search user
......@@ -1050,6 +1105,9 @@ userView.image = Image
usercart.addSearchedUsers = Add searched users
usercart.cartsize = Size
usercart.clear = Clear Cart
usercart.next = Next user
usercart.prev = Previous user
usercart.removeCurrent = Remove from usercart
usercart.showCart = Show usercart
usercart.traverse = Traverse
......
......@@ -300,6 +300,7 @@ foodWave.activeFoodWaves = Aktiiviset Ruokatilaukset
foodWave.billLines = Maksamattomat Verkkomaksut
foodWave.closeNow = Sulje nyt
foodWave.deliveredFoodWaves = Toimitetut Ruokatilaukset
foodWave.description = Ruokatilauksen kuvaus
foodWave.list = Ruokatilaukset
foodWave.name = Ruokatilaus
foodWave.openNow = Avaa nyt
......@@ -585,6 +586,7 @@ page.place.placemap.header = Paikkakartta
page.product.createBill.header = Osta tuotteita
page.product.validateBillProducts.header = Lasku luotu
page.svm.failure.header = Verkkomaksuvirhe
page.svm.notification.header = Maksutapahtuman rekister\u00F6inti
page.svm.pending.header = Maksukuittausta odotetaan
page.svm.success.header = Verkkomaksu onnistui
page.user.create.header = Luo uusi k\u00E4ytt\u00E4j\u00E4
......@@ -787,20 +789,26 @@ sendPicture.header = L\u00E4het\u00E4 kuva
shop.accountBalance = Credits
shop.actions = Hallinta
shop.afterBalance = Saldo tapahtuman j\u00E4lkeen
shop.barcode = Viivakoodi
shop.buy = Osta
shop.buyCash = K\u00E4teismaksu
shop.buyCredit = Credit
shop.calcsubtotal = Laske v\u00E4lisumma
shop.cartPrice = Korin hinta
shop.cash = K\u00E4teinen
shop.cashBack = Vaihtoraha palautettu
shop.cashGiven = K\u00E4teist\u00E4 saatu
shop.cashback = Takaisin
shop.confirmCreditBuy = Varmastikko ?
shop.count = Lkm
shop.currentBalance = T\u00E4m\u00E4nhetkinen saldo
shop.price = Hinta
shop.product = Tuote
shop.readBarcode = Lue
shop.toAccountValue = Tilille
shop.totalPrice = Yhteens\u00E4
shop.transactionTotal = Tapahtuma yhteens\u00E4
shop.user = Myyd\u00E4\u00E4n
sidebar.bill.list = Omat laskut
......@@ -848,7 +856,7 @@ submenu.bill.billSummary = Laskujen yhteenveto
submenu.bill.list = N\u00E4yt\u00E4 omat laskut
submenu.bill.listAll = Kaikki laskut
submenu.eventorg.list = Organisaation hallinta
submenu.feedback.index = Palaute
submenu.feedback.index = Vituttaako?
submenu.foodadmin.createTemplate = Luo tilauspohja
submenu.foodadmin.listTemplates = Muokkaa tilauspohjia
submenu.foodmanager.listFoodwaves = Aktiiviset ruokatilaukset
......@@ -862,6 +870,7 @@ submenu.orgrole.create = Luo j\u00E4rjest\u00E4j\u00E4rooli
submenu.orgrole.list = J\u00E4rjest\u00E4j\u00E4roolit
submenu.pages.create = Luo sis\u00E4lt\u00F6\u00E4
submenu.pages.list = N\u00E4yt\u00E4 sis\u00E4ll\u00F6t
submenu.place.adminGroups = Omat paikat
submenu.place.adminPlacemap = Konepaikat
submenu.place.editGroup = Muokkaa ryhm\u00E4\u00E4
submenu.place.insertToken = Sy\u00F6t\u00E4 paikkakoodi
......@@ -874,6 +883,7 @@ submenu.role.create = Luo rooli
submenu.role.list = N\u00E4yt\u00E4 roolit
submenu.shop.createBill = Osta tuotteita
submenu.shop.listReaders = N\u00E4yt\u00E4 lukijat
submenu.shop.shopToUser = Osta k\u00E4ytt\u00E4j\u00E4lle
submenu.shop.showReaderEvents = Lukijan tapahtumat
submenu.user.accountEvents = Tilitapahtumat
submenu.user.changePassword = Vaihda salasana
......@@ -890,10 +900,14 @@ submenu.user.rolelinks = Hallitse rooleja
submenu.user.sendPicture = L\u00E4het\u00E4 kuva
submenu.user.shop = Kauppaan
submenu.user.userlinks = Muokkaa tietoja
submenu.useradmin.accountEvents = Tunnuksen tapahtumat
submenu.useradmin.create = Luo uusi k\u00E4ytt\u00E4j\u00E4
submenu.useradmin.createCardTemplate = Luo uusi korttipohja
submenu.useradmin.edit = Muokkaa k\u00E4ytt\u00E4j\u00E4\u00E4
submenu.useradmin.foodwaveshop = Ruokatilauskauppa
submenu.useradmin.list = Etsi K\u00E4ytt\u00E4ji\u00E4
submenu.useradmin.listCardTemplates = Listaa korttipohjat
submenu.useradmin.sendPicture = L\u00E4het\u00E4 kuva
submenu.useradmin.showTakePicture = N\u00E4yt\u00E4 webcam
submenu.useradmin.validateUser = Validoi k\u00E4ytt\u00E4j\u00E4
submenu.voting.compolist = Kilpailut
......@@ -910,12 +924,14 @@ subnavi.roles = Roolit
supernavi.admin = Yll\u00E4piton\u00E4kym\u00E4
supernavi.user = K\u00E4ytt\u00E4j\u00E4n\u00E4kym\u00E4
svm.failure.errorMessage = Verkkomaksuvirhe.
svm.failure.successMessage = Maksuvirhe onnistunut. ( Maksu mahdollisesti merkitty jo maksetuksi )
svm.pending.errorMessage = Maksukuittausta odotetaan. Kuittauksesta l\u00E4hetet\u00E4\u00E4n ilmoitus s\u00E4hk\u00F6postitse.
svm.pending.successMessage = Maksukuittausta odotetaan. Kuittauksesta l\u00E4hetet\u00E4\u00E4n ilmoitus s\u00E4hk\u00F6postitse.
svm.success.errorMessage = Verkkomaksua ei voitu verifioida! Virheest\u00E4 on raportoitu eteenp\u00E4in.
svm.success.successMessage = Verkkomaksu onnistui.
svm.failure.errorMessage = Verkkomaksuvirhe.
svm.failure.successMessage = Maksuvirhe onnistunut. ( Maksu mahdollisesti merkitty jo maksetuksi )
svm.notification.errorMessage = Maksutapahtuma ep\u00E4onnistui
svm.notification.successMessage = Maksutapahtuma vastaanotettu
svm.pending.errorMessage = Maksukuittausta odotetaan. Kuittauksesta l\u00E4hetet\u00E4\u00E4n ilmoitus s\u00E4hk\u00F6postitse.
svm.pending.successMessage = Maksukuittausta odotetaan. Kuittauksesta l\u00E4hetet\u00E4\u00E4n ilmoitus s\u00E4hk\u00F6postitse.
svm.success.errorMessage = Verkkomaksua ei voitu verifioida! Virheest\u00E4 on raportoitu eteenp\u00E4in.
svm.success.successMessage = Verkkomaksu onnistui.
template.loggedInAs = Kirjautunut tunnuksella
......@@ -949,6 +965,43 @@ topnavi.usermgmt = K\u00E4ytt\u00E4j\u00E4t
topnavi.userplaces = Konepaikat
topnavi.usershop = Kauppa
tournament.admin.create = Luo uusi turnaus
tournament.create = Luo turnaus
tournament.edit = Muokkaa turnausta
tournament.game = Peli
tournament.name = Turnauksen nimi
tournament.playerspermatch_slash_teamsize = Pelaajat / tiimin koko
tournament.rules = S\u00E4\u00E4nn\u00F6t
tournament.status = Tilanne
tournament.type = Tyyppi
tournaments.active_tournaments = Aktiiviset turnaukset
tournaments.admin.begin_time_constraints = Turnauksen aloitusaika
tournaments.admin.create = Luo turnaus
tournaments.admin.create_a_game = Luo peli
tournaments.admin.create_new_ruleset = Luo uusi s\u00E4\u00E4nn\u00F6st\u00F6
tournaments.admin.create_tournament = Luo turnaus
tournaments.admin.description = Hallinnoi turnauksia
tournaments.admin.edit = Muokkaa turnausta
tournaments.admin.game_description = Pelin kuvaus
tournaments.admin.game_name = Pelin nimi
tournaments.admin.registration_time_constraints = Rekister\u00F6itymisaika
tournaments.admin.rules = S\u00E4\u00E4nn\u00F6t
tournaments.admin.select_a_game = Valitse peli
tournaments.admin.select_a_ruleset = Valitse s\u00E4\u00E4nn\u00F6st\u00F6
tournaments.admin.set_time_constraints = Aseta aikarajat
tournaments.admin.title = Turnauksien hallinnointi
tournaments.backup_players = Maksimim\u00E4\u00E4r\u00E4 varapelaajia
tournaments.players_per_match = Maksimim\u00E4\u00E4r\u00E4 pelaajia matchissa
tournaments.registration_closes = Rekister\u00F6itymisen sulkeutumisaika
tournaments.registration_opens = Rekister\u00F6itymisen aukeamisaika
tournaments.ruleset_description = S\u00E4\u00E4nn\u00F6st\u00F6n kuvaus
tournaments.ruleset_name = S\u00E4\u00E4nn\u00F6st\u00F6n nimi
tournaments.ruleset_rules = Turnauksen s\u00E4\u00E4nn\u00F6t
tournaments.tournament_details = Turnauksen yksityiskohdat
tournaments.tournament_name = Turnauksen nimi
tournaments.tournament_type = Turnauksen tyyppi
user.accountBalance = Tilin saldo
user.accountEventHeader = Tilitapahtumat
user.accountevents = Tilitapahtumat
......@@ -963,6 +1016,7 @@ user.changepassword.title = Vaihda salasana
user.create = Luo k\u00E4ytt\u00E4j\u00E4
user.createdmessage = K\u00E4ytt\u00E4j\u00E4tunnus on luotu onnistuneesti. Voit nyt kirjautua sis\u00E4\u00E4n.
user.cropImage = Rajaa
user.cropUserImage = Crop image
user.defaultImage = Oletukuva
user.edit = Muokkaa
user.edit.title = Omat tiedot
......@@ -972,6 +1026,7 @@ user.food.title = Valitse Menu
user.foodwave.products.title = Valitse tuotteet
user.foodwavelist.title = Valitse Ruokatilaus
user.hasImage = Kuva
user.imageTooBig = Kuva on liian suuri
user.imageUploaded = Kuva l\u00E4hetetty.
user.imagelist = Tallennetut kuvat
user.imagesubmit = L\u00E4het\u00E4 kuva
......@@ -1001,6 +1056,7 @@ user.realname = Nimi
user.roles = Roolit
user.rolesave = Tallenna roolit
user.save = Tallenna
user.saveRoles = Tallenna roolit
user.search = Hae
user.searchUser = Hae k\u00E4ytt\u00E4j\u00E4\u00E4
user.sendPicture = Kuvan l\u00E4hetys
......@@ -1029,6 +1085,9 @@ userView.image = Kuva
usercart.addSearchedUsers = Lis\u00E4\u00E4 haetut k\u00E4ytt\u00E4j\u00E4t
usercart.cartsize = Koko
usercart.clear = Tyhjenn\u00E4 k\u00E4ytt\u00E4j\u00E4kori
usercart.next = Seuraava k\u00E4vij\u00E4
usercart.prev = Edellinen k\u00E4vij\u00E4
usercart.removeCurrent = Poista k\u00E4ytt\u00E4j\u00E4korista
usercart.showCart = K\u00E4ytt\u00E4j\u00E4kori
usercart.traverse = K\u00E4y l\u00E4pi
......
......@@ -41,6 +41,10 @@ public abstract class GenericCDIView implements Serializable {
}
}
public void endConversation() {
if(!conversation.isTransient()) conversation.end();
}
public boolean hasPermission(IAppPermission perm) {
// boolean ret =
// FacesContext.getCurrentInstance().getExternalContext().isUserInRole(perm.getFullName());
......
......@@ -15,6 +15,11 @@ public class TournamentAdminView {
@EJB private TournamentBeanLocal tournamentBean;
public List<Tournament> getActiveTournaments() {
return null;
List<Tournament> tl = tournamentBean.getActiveTournaments();
return tl;
}
public String create() {
return "create";
}
}
......@@ -14,6 +14,7 @@ import fi.codecrew.moya.model.TournamentRule;
import fi.codecrew.moya.web.cdiview.GenericCDIView;
import javax.ejb.EJB;
import javax.ejb.Remove;
import javax.enterprise.context.ConversationScoped;
import javax.faces.event.ActionEvent;
import javax.inject.Named;
......@@ -54,7 +55,7 @@ public class TournamentCreateView extends GenericCDIView {
}
}
public void save(ActionEvent actionEvent) {
public String save() {
tournament.setPlayersPerTeam(tournament.getPlayersPerMatch() + backupPlayers);
tournament.setLanEvent(eventBean.getCurrentEvent());
tournament.setTournamentStatus(TournamentStatus.SETUP);
......@@ -62,6 +63,9 @@ public class TournamentCreateView extends GenericCDIView {
tournament.setRules(rules);
tournamentBean.createTournament(tournament);
this.endConversation();
return "success";
}
public List<TournamentGame> getTournamentGames() {
......
......@@ -53,12 +53,28 @@ public class AuthView extends GenericCDIView {
logger.warn("Error executing logout", e);
}
}
req.getSession().invalidate();
navihandler.forward("logoutDone");
navihandler.forward("/index");
}
public String doLogout() {
HttpServletRequest req = getRequest();
if (permbean.isLoggedIn()) {
try {
req.logout();
} catch (ServletException e) {
logger.warn("Error executing logout", e);
}
}
req.getSession().invalidate();
return "/index";
}
public void executeLogin() {
executeLogin(null);
}
......
......@@ -156,8 +156,7 @@ public class LayoutView {
LanEventProperty logo = eventbean.getProperty(LanEventPropertyKey.EVENT_LOGO);
if (logo != null)
{
if (logo.getByteMime() == null)
{
if (logo.getByteMime() == null || logo.getByteValue() == null) {
headertext = logo.getTextvalue();
} else {
headerimage = new DefaultStreamedContent(new ByteArrayInputStream(logo.getByteValue()), logo.getByteMime());
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!