Commit 86d1a3dd by Tuomas Riihimäki

Lisätty pollit

1 parent 246af718
......@@ -39,6 +39,7 @@ public class JaasBean implements JaasBeanLocal, JaasBeanRemote {
public User tryLogin(String username, String password) {
User user = userfacade.findByLogin(username.trim());
logger.debug("Trying to login as {}", username);
User ret = null;
......
......@@ -36,9 +36,16 @@ public class UserFacade extends GenericFacade<Integer, User> {
return em;
}
/**
* Find user by username. Username is converted to lowercase before
* searching.
*
* @param login
* @return
*/
public User findByLogin(String login) {
TypedQuery<User> q = em.createNamedQuery("User.findByLogin", User.class);
q.setParameter("login", login);
q.setParameter("login", login.toLowerCase());
return getSingleNullableResult(q);
}
......@@ -48,5 +55,15 @@ public class UserFacade extends GenericFacade<Integer, User> {
return this.search(name, NAMEFIELDS, "login");
}
@Override
public void create(User user) {
user.setLogin(user.getLogin().toLowerCase().trim());
super.create(user);
}
@Override
public User merge(User user) {
user.setLogin(user.getLogin().toLowerCase().trim());
return super.merge(user);
}
}
......@@ -59,6 +59,7 @@ public class PollQuestion extends GenericEventChild {
return (answers.size() == 1 && answers.get(0).getTextanswer());
}
public void setQuestion(String question) {
this.question = question;
}
......
......@@ -43,7 +43,7 @@ public class PossibleAnswer extends GenericEventChild {
private String description;
@JoinColumns({
@JoinColumn(name = "question_id", referencedColumnName = "id" , nullable=false),
@JoinColumn(name = "question_id", referencedColumnName = "id", nullable = false),
@JoinColumn(name = "event_id", referencedColumnName = "event_id", nullable = false, updatable = false, insertable = false) })
@ManyToOne
private PollQuestion question;
......@@ -99,4 +99,14 @@ public class PossibleAnswer extends GenericEventChild {
return textanswer;
}
public int getCheckedAnswers() {
int ret = 0;
for (PollAnswer and : answers) {
if (and.getAnswerBoolean()) {
++ret;
}
}
return ret;
}
}
......@@ -38,10 +38,10 @@
outcome="/product/createBill" value="#{i18n['topmenu.shoppings']}" /></div>
-->
</tools:isLoggedIn> <tools:canRead target="POLL">
</tools:isLoggedIn> <tools:canExecute target="POLL">
<div class="link#{i18n[util.concat(thispage,'.pagegroup')] == 'poll'?'a': ''}"><h:link
outcome="/poll/start" value="#{i18n['topmenu.poll']}" /></div>
</tools:canRead>
</tools:canExecute>
<div class="link#{i18n[util.concat(thispage,'.pagegroup')] == 'placemap'?'a':''}"><h:link
outcome="/place/placemap" value="#{i18n['topmenu.placemap']}" /></div>
......
<!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:c="http://java.sun.com/jsp/jstl/core">
<h:body>
<ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml">
<ui:param name="thispage" value="page.poll.answer" />
<ui:define name="content">
<table id="pollresultstable" border="1">
<tr>
<ui:repeat value="#{pollView.poll.questions}" var="question">
<th><h:outputText value="#{question.question}" /></th>
</ui:repeat>
</tr>
<tr>
<ui:repeat value="#{pollView.poll.questions}" var="question">
<td>
<table id="pollresultsubform">
<ui:repeat rendered="#{question.freeText}" value="#{question.answers}" var="posAns">
<ui:repeat value="#{posAns.answers}" var="ans">
<tr>
<td><h:outputText value="#{ans.answerText}" /></td>
</tr>
</ui:repeat>
</ui:repeat>
<h:panelGroup rendered="#{!question.freeText}">
<ui:repeat rendered="#{!question.freeText}" value="#{question.answers}" var="posAns">
<tr>
<td><h:outputText value="#{posAns.answer}" /></td>
<td><h:outputText value="#{posAns.checkedAnswers}" /></td>
</tr>
</ui:repeat>
</h:panelGroup>
</table>
</td>
</ui:repeat>
</tr>
</table>
</ui:define>
</ui:composition>
</h:body>
</html>
\ No newline at end of file
......@@ -19,6 +19,10 @@
<h:column>
<h:commandButton action="#{pollView.beginPoll()}" value="#{i18n['poll.answer']}" />
</h:column>
<h:column rendered="#{sessionHandler.hasPermission('POLL','READ')}">
<h:commandButton action="#{pollView.showPoll()}" value="#{i18n['poll.show']}" />
</h:column>
</h:dataTable>
......
......@@ -201,4 +201,23 @@ h1 {
.placegroupPadding {
padding-right: 50px;
}
\ No newline at end of file
}
#pollresultsubform tr td {
text-align: top; margin-bottom : 10px;
border-style: solid;
border-color: #000;
border-width: 0 0 1px 0;
margin-bottom: 10px;
}
#pollresultstable {
border-style: solid;
border-color: #000;
border-width: 1px;
}
#pollresultstable tr td
{
vertical-align:top;
}
......@@ -14,6 +14,9 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.beans.PollBeanLocal;
import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.model.Poll;
import fi.insomnia.bortal.model.PollAnswer;
import fi.insomnia.bortal.model.PollQuestion;
......@@ -33,6 +36,9 @@ public class PollView extends GenericView {
private Poll poll;
@EJB
private UserBeanLocal userbean;
private static final Logger logger = LoggerFactory.getLogger(PollView.class);
public void initPollList() {
......@@ -63,6 +69,13 @@ public class PollView extends GenericView {
return "/poll/answerToPoll";
}
public String showPoll()
{
userbean.fatalPermission(Permission.POLL, RolePermission.READ);
poll = polls.getRowData();
return "/poll/show";
}
public String savePoll() {
if (validate(this)) {
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!