Commit 54411aa0 by Juho Committed by Juho Juopperi

Compojuttuja, createsivun UI about kunnossa

Conflicts:

	code/LanBortalBeans/ejbModule/fi/insomnia/bortal/facade/CompoFacade.java
	code/LanBortalWeb/src/fi/insomnia/bortal/resources/i18n_fi.properties
1 parent 394bb408
package fi.insomnia.bortal.beans; package fi.insomnia.bortal.beans;
import javax.ejb.EJB;
import javax.ejb.LocalBean; import javax.ejb.LocalBean;
import javax.ejb.Stateless; import javax.ejb.Stateless;
import fi.insomnia.bortal.facade.CompoFacade;
import fi.insomnia.bortal.model.Compo;
/** /**
* Session Bean implementation class VotingBean * Session Bean implementation class VotingBean
*/ */
...@@ -10,6 +14,10 @@ import javax.ejb.Stateless; ...@@ -10,6 +14,10 @@ import javax.ejb.Stateless;
@LocalBean @LocalBean
public class VotingBean implements VotingBeanLocal { public class VotingBean implements VotingBeanLocal {
@EJB
private CompoFacade compoFacade;
/** /**
* Default constructor. * Default constructor.
*/ */
...@@ -17,4 +25,9 @@ public class VotingBean implements VotingBeanLocal { ...@@ -17,4 +25,9 @@ public class VotingBean implements VotingBeanLocal {
// TODO Auto-generated constructor stub // TODO Auto-generated constructor stub
} }
public void createCompo(Compo c) {
compoFacade.create(c);
}
} }
...@@ -14,4 +14,4 @@ public class CompoFacade extends IntegerPkGenericFacade<Compo> { ...@@ -14,4 +14,4 @@ public class CompoFacade extends IntegerPkGenericFacade<Compo> {
super(Compo.class); super(Compo.class);
} }
} }
<!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:users="http://java.sun.com/jsf/composite/cditools/user"
xmlns:tools="http://java.sun.com/jsf/composite/cditools" xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:body>
<ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml">
<f:metadata>
<!-- f:event type="preRenderView" listener="#{newsListView.initView}" /-->
</f:metadata>
<ui:define name="content">
<!-- <h:outputStylesheet library="style" name="insomnia2/css/actionlog.css" /> -->
<h1>#{i18n['voting.allcompos.header']}</h1>
<p>#{i18n['voting.allcompos.description']}</p>
<div class="clearfix"></div>
</ui:define>
</ui:composition>
</h:body>
</html>
\ No newline at end of file
<!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:users="http://java.sun.com/jsf/composite/cditools/user"
xmlns:tools="http://java.sun.com/jsf/composite/cditools" xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:body>
<ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml">
<f:metadata>
<!-- f:event type="preRenderView" listener="#{newsListView.initView}" /-->
</f:metadata>
<ui:define name="content">
<!-- <h:outputStylesheet library="style" name="insomnia2/css/actionlog.css" /> -->
<h1>#{i18n['voting.create.header']}</h1>
<p>#{i18n['voting.create.description']}</p>
<div>
<h:form>
<h:panelGrid columns="3">
<h:outputLabel value="Name" for="name"/>
<h:inputText value="#{votingCreateView.name}" id="name" />
<h:message for="name" />
<h:outputLabel value="Kuvaus:" for="desc"/>
<h:inputText value="#{votingCreateView.description}" id="desc" />
<h:message for="desc" />
<h:outputLabel value="Max osallistujat:" for="maxPar" />
<h:inputText value="#{votingCreateView.maxParticipants}" id="maxPar" />
<h:message for="maxPar" />
<h:outputLabel value="Compo start" for="cStart" />
<p:calendar validator="#{votingDateValidator.saveCStart}" value="#{votingCreateView.compoStart}" pattern="dd/MM/yyyy HH:mm" id="cStart" />
<h:message for="cStart" />
<h:outputLabel value="Compo end" for="cEnd"/>
<p:calendar validator="#{votingDateValidator.validateCompo}" value="#{votingCreateView.compoEnd}" pattern="dd/MM/yyyy HH:mm" id="cEnd" />
<h:message for="cEnd" />
<h:outputLabel value="Vote start" for="vStart" />
<p:calendar validator="#{votingDateValidator.saveVStart}" value="#{votingCreateView.voteStart}" pattern="dd/MM/yyyy HH:mm" id="vStart" />
<h:message for="vStart" />
<h:outputLabel value="Vote end" for="vEnd" />
<p:calendar validator="#{votingDateValidator.validateVote}" value="#{votingCreateView.voteEnd}" pattern="dd/MM/yyyy HH:mm" id="vEnd" />
<h:message for="vEnd" />
<h:outputLabel value="Submit start" for="sStart" />
<p:calendar validator="#{votingDateValidator.saveSStart}" value="#{votingCreateView.submitStart}" pattern="dd/MM/yyyy HH:mm" id="sStart" />
<h:message for="sStart" />
<h:outputLabel value="Submit end" for="sEnd" />
<p:calendar validator="#{votingDateValidator.validateSubmit}" value="#{votingCreateView.submitEnd}" pattern="dd/MM/yyyy HH:mm" id="sEnd" />
<h:message for="sEnd" />
<h:commandButton value="Luo" />
</h:panelGrid>
</h:form>
</div>
<div class="clearfix"></div>
</ui:define>
</ui:composition>
</h:body>
</html>
\ No newline at end of file
<!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:users="http://java.sun.com/jsf/composite/cditools/user"
xmlns:tools="http://java.sun.com/jsf/composite/cditools" xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:body>
<ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml">
<f:metadata>
<!-- f:event type="preRenderView" listener="#{newsListView.initView}" /-->
</f:metadata>
<ui:define name="content">
<!-- <h:outputStylesheet library="style" name="insomnia2/css/actionlog.css" /> -->
<h1>#{i18n['voting.details.header']} (KOMPON NIMI)</h1>
<p>Compo#{i18n['voting.details.description']}</p>
<div class="clearfix"></div>
</ui:define>
</ui:composition>
</h:body>
</html>
\ No newline at end of file
package fi.insomnia.bortal.web.cdiview.voting;
import javax.faces.bean.RequestScoped;
import javax.inject.Named;
import fi.insomnia.bortal.web.cdiview.GenericCDIView;
@Named
@RequestScoped
public class VotingCompoListView extends GenericCDIView {
/**
*
*/
private static final long serialVersionUID = 4166316634472472472L;
}
package fi.insomnia.bortal.web.cdiview.voting;
import java.util.Date;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.inject.Named;
import javax.validation.constraints.Min;
import fi.insomnia.bortal.beans.VotingBeanLocal;
import fi.insomnia.bortal.web.cdiview.GenericCDIView;
@ManagedBean
@Named
@RequestScoped
public class VotingCreateView extends GenericCDIView {
/**
*
*/
private static final long serialVersionUID = 4677679766671547462L;
@EJB
private VotingBeanLocal votbean;
@Min(value=4,message="Nimen pitää olla pidempi kuin 4 merkkiä.")
private String name;
private String description;
@Min(value=1, message="Min osallistujia 1.")
private Integer maxParticipants;
private Date compoStart;
private Date compoEnd;
private Date voteStart;
private Date voteEnd;
private Date submitStart;
private Date submitEnd;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Integer getMaxParticipants() {
return maxParticipants;
}
public void setMaxParticipants(Integer maxParticipants) {
this.maxParticipants = maxParticipants;
}
public Date getCompoStart() {
return compoStart;
}
public void setCompoStart(Date compoStart) {
this.compoStart = compoStart;
}
public Date getCompoEnd() {
return compoEnd;
}
public void setCompoEnd(Date compoEnd) {
this.compoEnd = compoEnd;
}
public Date getVoteStart() {
return voteStart;
}
public void setVoteStart(Date voteStart) {
this.voteStart = voteStart;
}
public Date getVoteEnd() {
return voteEnd;
}
public void setVoteEnd(Date voteEnd) {
this.voteEnd = voteEnd;
}
public Date getSubmitStart() {
return submitStart;
}
public void setSubmitStart(Date submitStart) {
this.submitStart = submitStart;
}
public Date getSubmitEnd() {
return submitEnd;
}
public void setSubmitEnd(Date submitEnd) {
this.submitEnd = submitEnd;
}
}
package fi.insomnia.bortal.web.cdiview.voting;
import java.io.Serializable;
import java.util.Date;
import javax.enterprise.context.RequestScoped;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.ValidatorException;
import javax.inject.Inject;
import javax.inject.Named;
import org.eclipse.persistence.exceptions.ValidationException;
import org.hibernate.validator.util.LoggerFactory;
import org.slf4j.Logger;
@Named
@RequestScoped
public class VotingDateValidator implements Serializable {
@Inject
private VotingCreateView view;
private static final Logger logger = org.slf4j.LoggerFactory.getLogger(VotingDateValidator.class);
private Date cStart;
private Date vStart;
private Date sStart;
public void validateCompo(FacesContext context, UIComponent ui, Object object) {
//logger.info("adsda {} self {}", cStart, this);
Date endDate = (Date)object;
//UIComponent foo = ui.findComponent("cStart");
//logger.info("uielement {} ", foo);
if(endDate.before(cStart)) {
message(new FacesMessage("Loppumispvm ennen alkua. KORJAA SE."));
}
}
public void saveCStart(FacesContext context, UIComponent ui, Object object) {
//logger.info("Message: {} self {}", object, this);
cStart = (Date)object;
}
public void validateVote(FacesContext context, UIComponent ui, Object object) {
Date endDate = (Date)object;
if(endDate.before(vStart)) {
message(new FacesMessage("Loppumispvm ennen alkua. NOT VALID."));
}
}
public void saveVStart(FacesContext context, UIComponent ui, Object object) {
vStart = (Date)object;
}
public void validateSubmit(FacesContext context, UIComponent ui, Object object) {
Date endDate = (Date)object;
if(endDate.before(sStart)) {
message(new FacesMessage("Loppumispvm ennen aloitusta. IS AN ERROR."));
}
}
public void saveSStart(FacesContext context, UIComponent ui, Object object) {
sStart = (Date)object;
}
private void message(FacesMessage msg) {
throw new ValidatorException(msg);
}
public VotingCreateView getView() {
return view;
}
public void setView(VotingCreateView view) {
this.view = view;
}
}
package fi.insomnia.bortal.web.cdiview.voting;
import javax.faces.bean.RequestScoped;
import javax.inject.Named;
import fi.insomnia.bortal.web.cdiview.GenericCDIView;
@Named
@RequestScoped
public class VotingDetailsView extends GenericCDIView {
/**
*
*/
private static final long serialVersionUID = -8373473936336396427L;
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!