Commit 723eeb02 by Tuomas Riihimäki

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

2 parents 703de789 68240770
......@@ -27,6 +27,7 @@ public class BootstrapBean implements BootstrapBeanLocal {
static {
// {"Query1","Query2",...}
dbUpdates.add(new String[] { "" }); // first version, no changes
dbUpdates.add(new String[] { "ALTER TABLE tournaments ADD COLUMN game integer NOT NULL REFERENCES tournament_games(id)" });
// dbUpdates.add(new String[] { "ALTER TABLE users ALTER COLUMN birthday TYPE date" });
}
......
......@@ -116,7 +116,8 @@ public class MenuBean implements MenuBeanLocal {
MenuNavigation userprofile = usermenu.addPage(null, null);
userprofile.setKey("topnavi.profile");
userprofile.addPage(menuitemfacade.findOrCreate("/user/edit"), UserPermission.MODIFY);
userprofile.addPage(menuitemfacade.findOrCreate("/user/edit"), UserPermission.MODIFY);
userprofile.addPage(menuitemfacade.findOrCreate("/user/changePassword"), UserPermission.VIEW_SELF);
userprofile.addPage(menuitemfacade.findOrCreate("/auth/logout"), UserPermission.LOGOUT);
/*
......@@ -195,6 +196,12 @@ public class MenuBean implements MenuBeanLocal {
adminPlaces.addPage(menuitemfacade.findOrCreate("/place/adminPlacemap"), UserPermission.VIEW_ALL);
// adminPlaces.addPage(menuitemfacade.findOrCreate("/place/adminGroups"), UserPermission.VIEW_ALL); // todo: make new view for managing
MenuNavigation mapnavi = adminPlaces.addPage(null, null);
mapnavi.setKey("topnavi.maps");
mapnavi.addPage(menuitemfacade.findOrCreate("/map/list"), MapPermission.MANAGE_MAPS);
mapnavi.addPage(menuitemfacade.findOrCreate("/map/create"), MapPermission.MANAGE_MAPS);
mapnavi.addPage(menuitemfacade.findOrCreate("/map/edit"), null).setVisible(false);
// event
MenuNavigation adminevent = adminmenu.addPage(null, null);
......
......@@ -8,7 +8,7 @@ import javax.ejb.Stateless;
*/
@Stateless
@LocalBean
public class TournamentBean {
public class TournamentBean implements TournamentBeanLocal {
/**
* Default constructor.
......@@ -16,6 +16,5 @@ public class TournamentBean {
public TournamentBean() {
// TODO Auto-generated constructor stub
}
}
......@@ -642,6 +642,12 @@ public class UserBean implements UserBeanLocal {
}
@Override
@RolesAllowed(SpecialPermission.S_SUPERADMIN)
public List<Feedback> getFeedbacks() {
return feedbackFacade.findAll();
}
@Override
public UserApproval setUserApproval(EventUser user, String approvalName, boolean approvalValue, String notes) {
Approval approval = approvalFacade.findOrCreate(approvalName);
UserApproval ret = userApprovalFacade.findOrCreateApproval(user, approval);
......
......@@ -5,6 +5,7 @@ import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
......@@ -39,7 +40,9 @@ public class DBModelFacade extends GenericFacade<DBModel> {
CriteriaQuery<DBModel> cq = cb.createQuery(DBModel.class);
Root<DBModel> root = cq.from(DBModel.class);
cq.orderBy(cb.desc(root.get(DBModel_.revision)));
return getSingleNullableResult(getEm().createQuery(cq));
TypedQuery<DBModel> q = getEm().createQuery(cq);
q.setMaxResults(1);
return getSingleNullableResult(q);
}
@PersistenceContext
......
package fi.codecrew.moya.beans;
import javax.ejb.Local;
@Local
public interface TournamentBeanLocal {
}
......@@ -7,6 +7,7 @@ import java.util.List;
import javax.ejb.Local;
import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.model.Feedback;
import fi.codecrew.moya.model.GroupMembership;
import fi.codecrew.moya.model.Role;
import fi.codecrew.moya.model.User;
......@@ -83,6 +84,8 @@ public interface UserBeanLocal {
SearchResult<EventUser> getThisEventsUsers(UserSearchQuery searchQuery);
void submitFeedback(String feedback);
List<Feedback> getFeedbacks();
UserApproval setUserApproval(EventUser user, String approvalName, boolean approvalValue, String notes);
......
......@@ -60,6 +60,9 @@ public class Tournament extends GenericEntity implements Serializable {
@Column(name="players_per_team")
private Integer playersPerTeam;
@JoinColumn(name="game", nullable=false)
private TournamentGame tournamentGame;
@OneToMany
@OrderBy("id ASC")
private List<Tournament> subTournaments;
......@@ -105,4 +108,12 @@ public class Tournament extends GenericEntity implements Serializable {
public void setTournamentType(TournamentType tournamentType) {
this.tournamentType = tournamentType;
}
public TournamentGame getTournamentGame() {
return tournamentGame;
}
public void setTournamentGame(TournamentGame tournamentGame) {
this.tournamentGame = tournamentGame;
}
}
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"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" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"
xmlns:users="http://java.sun.com/jsf/composite/tools/user" xmlns:p="http://primefaces.org/ui" xmlns:c="http://java.sun.com/jsp/jstl/core">
<h:body>
<ui:composition template="#{sessionHandler.template}">
<ui:param name="thispage" value="page.feedback.list" />
<f:metadata>
<f:event type="preRenderView" listener="#{feedbackView.initFeedback}" />
</f:metadata>
<ui:define name="content">
<h1>Avautumiset:</h1>
<p:dataList value="#{feedbackView.feedbacks}" var="feedback">
#{feedback.message}, #{feedback.sender.user.nick}
</p:dataList>
</ui:define>
</ui:composition>
</h:body>
</html>
\ No newline at end of file
......@@ -2,7 +2,7 @@
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"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" xmlns:h="http://java.sun.com/jsf/html" xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:users="http://java.sun.com/jsf/composite/cditools/user" xmlns:f="http://java.sun.com/jsf/core">
xmlns:users="http://java.sun.com/jsf/composite/cditools/user" xmlns:f="http://java.sun.com/jsf/core" xmlns:p="http://primefaces.org/ui">
<h:body>
<ui:composition template="#{sessionHandler.template}">
<ui:param name="thispage" value="page.place.mygroups" />
......@@ -18,41 +18,41 @@
<h:outputText rendered="#{empty placeGroupView.groupMemberships}" value="#{i18n['placegroupview.noMemberships']}" />
<h:form rendered="#{!empty placeGroupView.groupMemberships}" id="placelistform">
<h:dataTable value="#{placeGroupView.groupMemberships}" var="member">
<p:dataTable value="#{placeGroupView.groupMemberships}" var="member">
<h:column>
<p:column>
<f:facet name="header">
<h:outputText value="#{i18n['placegroupview.reservationName']}" />
</f:facet>
<h:outputText value="#{member.placeReservation.name}" />
</h:column>
<h:column>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="#{i18n['placegroupview.reservationProduct']}" />
</f:facet>
<h:outputText value="#{member.placeReservation.product.name}" />
</h:column>
<h:column>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="#{i18n['placegroupview.token']}" />
</f:facet>
<h:outputText rendered="#{empty member.user}" value="#{member.inviteToken}" />
<h:outputText rendered="#{!empty member.user}" value="#{member.user.firstnames} #{member.user.lastname} (#{member.user.nick})" />
</h:column>
<h:column>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="#{i18n['placegroupview.groupCreator']}" />
</f:facet>
<h:outputText value="#{member.placeGroup.creator.firstnames} #{member.placeGroup.creator.lastname} (#{member.placeGroup.creator.nick})" />
</h:column>
</p:column>
<h:column>
<p:column>
<h:commandButton rendered="#{placeGroupView.canModifyCurrent and placeGroupView.currentMemberUserNotNull}" action="#{placeGroupView.releasePlace()}" value="#{i18n['placegroupview.releasePlace']}" />
</h:column>
</p:column>
</h:dataTable>
</p:dataTable>
</h:form>
<p>
......
......@@ -17,6 +17,10 @@
</c:when>
<c:otherwise>
<login:login isOneliner="true" />
<br/>
<h:link value="#{i18n['submenu.user.create']}" outcome="/user/create" />
<br/>
<h:link value="#{i18n['submenu.auth.sendResetMail']}" outcome="/auth/sendResetMail" />
</c:otherwise>
</c:choose>
</composite:implementation>
......
......@@ -2,7 +2,11 @@ package fi.codecrew.moya.web.cdiview.tournaments;
import java.io.Serializable;
import fi.codecrew.moya.beans.TournamentBeanLocal;
import fi.codecrew.moya.model.Role;
import fi.codecrew.moya.model.Tournament;
import fi.codecrew.moya.model.TournamentGame;
import fi.codecrew.moya.model.TournamentRule;
import fi.codecrew.moya.web.cdiview.GenericCDIView;
import javax.ejb.EJB;
......@@ -14,26 +18,29 @@ import org.primefaces.event.FlowEvent;
@Named
@ConversationScoped
public class TournamentCreateView implements Serializable {
/**
*
*/
public class TournamentCreateView extends GenericCDIView {
private static final long serialVersionUID = 2547358764980373797L;
private TournamentRule rules = null;
private TournamentGame game = null;
private Tournament tournament = null;
@EJB TournamentBeanLocal tournamentBean;
public void initView() {
System.out.println("MOI");
if(tournament == null) {
this.beginConversation();
tournament = new Tournament();
}
}
// called on finish
public void save(ActionEvent actionEvent) {
}
public String onFlowProcess(FlowEvent event) {
System.out.println(event.getOldStep());
return event.getNewStep();
}
}
......@@ -2,11 +2,13 @@ package fi.codecrew.moya.web.helper;
import javax.ejb.EJB;
import javax.enterprise.context.ConversationScoped;
import javax.faces.model.ListDataModel;
import javax.inject.Named;
import fi.codecrew.moya.beans.PermissionBeanLocal;
import fi.codecrew.moya.beans.UserBeanLocal;
import fi.codecrew.moya.enums.apps.UserPermission;
import fi.codecrew.moya.model.Feedback;
import fi.codecrew.moya.web.cdiview.GenericCDIView;
@Named
......@@ -19,6 +21,8 @@ public class FeedbackView extends GenericCDIView {
private String feedback;
private transient ListDataModel<Feedback> feedbacks;
public void initFeedback() {
super.beginConversation();
}
......@@ -39,6 +43,17 @@ public class FeedbackView extends GenericCDIView {
return null;
}
public ListDataModel<Feedback> getFeedbacks() {
if (feedbacks == null && permissionBean.getCurrentUser().isSuperadmin())
{
feedbacks = new ListDataModel<Feedback>(userbean.getFeedbacks());
}
else {
feedbacks = new ListDataModel<Feedback>();
}
return feedbacks;
}
public String getFeedback() {
return feedback;
}
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!