Pollen-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
September 2012
- 3 participants
- 44 discussions
r3693 - in trunk/pollen-ui-struts2/src/main: java/org/chorem/pollen/ui/actions/poll/vote resources/i18n
by tchemit@users.chorem.org 19 Sep '12
by tchemit@users.chorem.org 19 Sep '12
19 Sep '12
Author: tchemit
Date: 2012-09-19 12:07:02 +0200 (Wed, 19 Sep 2012)
New Revision: 3693
Url: http://chorem.org/repositories/revision/pollen/3693
Log:
fixes #811: Bad vote validation
Modified:
trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/poll/vote/VoteForPoll.java
trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_en_GB.properties
trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_fr_FR.properties
Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/poll/vote/VoteForPoll.java
===================================================================
--- trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/poll/vote/VoteForPoll.java 2012-09-19 08:25:53 UTC (rev 3692)
+++ trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/poll/vote/VoteForPoll.java 2012-09-19 10:07:02 UTC (rev 3693)
@@ -111,12 +111,13 @@
VoteCountingStrategy strategy = getVoteCountingStrategy(getPoll());
boolean voteValid = true;
- int voteNumber = 0;
+ int voteNumber = -1;
for (VoteToChoice voteToChoice : vote.getChoiceVoteToChoice()) {
+ voteNumber++;
Integer value = voteToChoice.getVoteValue();
- if (value==null) {
+ if (value == null) {
// check value if same as the one return by request
// otherwise it means there is a conversion error
@@ -127,7 +128,7 @@
// vote value changed
String validMessage =
- _("pollen.error.vote.invalidFormat", paramValue);
+ _("pollen.error.vote.invalidFormat", voteToChoice.getChoice().getName(), paramValue);
addFieldError("vote.choices", validMessage);
voteValid = false;
break;
Modified: trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_en_GB.properties
===================================================================
--- trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_en_GB.properties 2012-09-19 08:25:53 UTC (rev 3692)
+++ trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_en_GB.properties 2012-09-19 10:07:02 UTC (rev 3693)
@@ -232,7 +232,7 @@
pollen.error.user.restrictedListsForbidden=The poll is restricted and you are not allowed to vote. Check if you have correctly used the link sent to you by email.
pollen.error.userNotAllowed=You are not allowed to count the votes for this poll.
pollen.error.vote.invalidCondorcetVoteValue=Invalid position\: in a condorcet vote, you can let empty values, or put values greater than zero.
-pollen.error.vote.invalidFormat=Vote value invalid (must be a integer number)
+pollen.error.vote.invalidFormat=Vote '%s' value %s is invalid (must be a integer number)
pollen.error.vote.maxChoiceNb=The maximal number of choices is %d.
pollen.error.vote.percentage=The sum of the values must be equals to 100.
pollen.fieldset.choice.options=Choices
Modified: trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_fr_FR.properties
===================================================================
--- trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_fr_FR.properties 2012-09-19 08:25:53 UTC (rev 3692)
+++ trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_fr_FR.properties 2012-09-19 10:07:02 UTC (rev 3693)
@@ -233,7 +233,7 @@
pollen.error.user.restrictedListsForbidden=Le sondage est restreint et vous n'êtes pas autorisé à voter. Vérifiez que vous avez bien utiliser le lien qui vous a été envoyé.
pollen.error.userNotAllowed=Vous n'êtes pas autorisé à dépouiller ce sondage.
pollen.error.vote.invalidCondorcetVoteValue=Position invalide \: dans un vote condorcet, vous pouvez soit laisser laisser vide un choix, soit mettre une valeur strictement positive.
-pollen.error.vote.invalidFormat=Valeur de vote %s invalide (doit être un nombre entier)
+pollen.error.vote.invalidFormat=Valeur de vote '%s' %s invalide (doit être un nombre entier)
pollen.error.vote.maxChoiceNb=Le nombre de choix maximal est de %d.
pollen.error.vote.percentage=La somme des valeurs doit être égale à 100.
pollen.fieldset.choice.options=Les choix
1
0
r3692 - in trunk/pollen-ui-struts2/src/main/webapp: WEB-INF/jsp/poll css
by tchemit@users.chorem.org 19 Sep '12
by tchemit@users.chorem.org 19 Sep '12
19 Sep '12
Author: tchemit
Date: 2012-09-19 10:25:53 +0200 (Wed, 19 Sep 2012)
New Revision: 3692
Url: http://chorem.org/repositories/revision/pollen/3692
Log:
factorize poll information ui fragment
Added:
trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/pollInformation.jsp
trunk/pollen-ui-struts2/src/main/webapp/css/pollInformation.css
Modified:
trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/result.jsp
trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/vote.jsp
trunk/pollen-ui-struts2/src/main/webapp/css/results.css
trunk/pollen-ui-struts2/src/main/webapp/css/vote.css
Added: trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/pollInformation.jsp
===================================================================
--- trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/pollInformation.jsp (rev 0)
+++ trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/pollInformation.jsp 2012-09-19 08:25:53 UTC (rev 3692)
@@ -0,0 +1,70 @@
+<%--
+ #%L
+ Pollen :: UI (struts2)
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2009 - 2012 CodeLutin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ #L%
+ --%>
+<%@ page contentType="text/html" language="java" %>
+<%@ taglib prefix="s" uri="/struts-tags" %>
+<div id="pollInformationTop">
+ <div style="white-space:pre-wrap; text-align: start;">
+ <s:property value="poll.description"/>
+ </div>
+ <fieldset>
+ <legend><s:text name="pollen.common.aboutPoll"/></legend>
+ <div style="float: right">
+ <s:if test="creatorOrAdmin">
+ <s:a href="%{summaryUrl}">
+ <img src="<s:url value='/img/editSmall.png'/>"
+ title="<s:text name='pollen.action.summaryPoll'/>"
+ alt="<s:text name='pollen.action.summaryPoll'/>"/>
+ </s:a>
+ </s:if>
+ <s:if test="#showVoteUrl">
+ <s:a href='%{voteUrl}'>
+ <img src="<s:url value='/img/vote.png'/>"
+ title="<s:text name="pollen.common.vote.return-help"/>"
+ alt="<s:text name="pollen.common.vote.return"/>"/>
+ </s:a>
+ </s:if>
+ <s:if test="#showResultUrl">
+ <s:if test="resultAllowed">
+ <s:a href="%{resultUrl}">
+ <img src="<s:url value='/img/count.png'/>"
+ title="<s:text name='pollen.common.vote.results-help'/>"
+ alt="<s:text name='pollen.common.vote.results'/>"/>
+ </s:a>
+ </s:if>
+ </s:if>
+ <s:if test="feedFileExisting">
+ <s:a namespace="/poll" action="getFeed">
+ <s:param name="pollId" value="poll.pollId"/>
+ <img src="<s:url value='/img/feed.png'/>" title="Atom" alt="Atom"/>
+ </s:a>
+ </s:if>
+ </div>
+ <s:label value="%{pollCreatorName}" key='pollen.common.pollCreator'/>
+ <s:label value="%{pollBeginDate}" key='pollen.common.beginDate'/>
+ <s:label value="%{pollEndDate}" key='pollen.common.endDate'/>
+ <s:label value="%{voteCountingTypeName}"
+ key='pollen.common.voteCountingType'
+ tooltip="%{voteCountingTypeHelp}"
+ tooltipIconPath="/img/tooltip.png"/>
+ </fieldset>
+</div>
\ No newline at end of file
Property changes on: trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/pollInformation.jsp
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/result.jsp
===================================================================
--- trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/result.jsp 2012-09-14 16:33:06 UTC (rev 3691)
+++ trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/result.jsp 2012-09-19 08:25:53 UTC (rev 3692)
@@ -20,12 +20,14 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
#L%
--%>
-<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ page contentType="text/html" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
<link rel="stylesheet" type="text/css"
href="<s:url value='/css/results.css'/>"/>
<link rel="stylesheet" type="text/css"
+ href="<s:url value='/css/pollInformation.css'/>"/>
+<link rel="stylesheet" type="text/css"
href="<s:url value='/css/jquery.lightbox-0.5.css'/>"/>
@@ -70,42 +72,46 @@
<h1 class="titleVoteCounting"><s:property value="poll.title"/></h1>
<!-- Informations sur le sondage -->
-<div id="resultTop">
- <div style="white-space:pre-wrap; text-align: start;">
- <s:property value="poll.description"/>
- </div>
- <fieldset>
- <legend><s:text name="pollen.common.aboutPoll"/></legend>
- <div style="float: right">
- <s:if test="creatorOrAdmin">
- <s:a href="%{summaryUrl}">
- <img src="<s:url value='/img/editSmall.png'/>"
- title="<s:text name='pollen.action.summaryPoll'/>"
- alt="<s:text name='pollen.action.summaryPoll'/>"/>
- </s:a>
- </s:if>
- <s:a href='%{voteUrl}'>
- <img src="<s:url value='/img/vote.png'/>"
- title="<s:text name="pollen.common.vote.return-help"/>"
- alt="<s:text name="pollen.common.vote.return"/>"/>
- </s:a>
- <s:if test="feedFileExisting">
- <s:a namespace="/poll" action="getFeed">
- <s:param name="pollId" value="poll.pollId"/>
- <img src="<s:url value='/img/feed.png'/>" title="Atom" alt="Atom"/>
- </s:a>
- </s:if>
- </div>
- <s:label value="%{pollCreatorName}" key='pollen.common.pollCreator'/>
- <s:label value="%{pollBeginDate}" key='pollen.common.beginDate'/>
- <s:label value="%{pollEndDate}" key='pollen.common.endDate'/>
- <s:label value="%{voteCountingTypeName}"
- key='pollen.common.voteCountingType'
- tooltip="%{voteCountingTypeHelp}"
- tooltipIconPath="/img/tooltip.png"/>
- </fieldset>
-</div>
+<s:set name="showVoteUrl" value="true"/>
+<s:set name="showResultUrl" value="false"/>
+<%@include file="pollInformation.jsp" %>
+<%--<div id="resultTop">--%>
+ <%--<div style="white-space:pre-wrap; text-align: start;">--%>
+ <%--<s:property value="poll.description"/>--%>
+ <%--</div>--%>
+ <%--<fieldset>--%>
+ <%--<legend><s:text name="pollen.common.aboutPoll"/></legend>--%>
+ <%--<div style="float: right">--%>
+ <%--<s:if test="creatorOrAdmin">--%>
+ <%--<s:a href="%{summaryUrl}">--%>
+ <%--<img src="<s:url value='/img/editSmall.png'/>"--%>
+ <%--title="<s:text name='pollen.action.summaryPoll'/>"--%>
+ <%--alt="<s:text name='pollen.action.summaryPoll'/>"/>--%>
+ <%--</s:a>--%>
+ <%--</s:if>--%>
+ <%--<s:a href='%{voteUrl}'>--%>
+ <%--<img src="<s:url value='/img/vote.png'/>"--%>
+ <%--title="<s:text name="pollen.common.vote.return-help"/>"--%>
+ <%--alt="<s:text name="pollen.common.vote.return"/>"/>--%>
+ <%--</s:a>--%>
+ <%--<s:if test="feedFileExisting">--%>
+ <%--<s:a namespace="/poll" action="getFeed">--%>
+ <%--<s:param name="pollId" value="poll.pollId"/>--%>
+ <%--<img src="<s:url value='/img/feed.png'/>" title="Atom" alt="Atom"/>--%>
+ <%--</s:a>--%>
+ <%--</s:if>--%>
+ <%--</div>--%>
+ <%--<s:label value="%{pollCreatorName}" key='pollen.common.pollCreator'/>--%>
+ <%--<s:label value="%{pollBeginDate}" key='pollen.common.beginDate'/>--%>
+ <%--<s:label value="%{pollEndDate}" key='pollen.common.endDate'/>--%>
+ <%--<s:label value="%{voteCountingTypeName}"--%>
+ <%--key='pollen.common.voteCountingType'--%>
+ <%--tooltip="%{voteCountingTypeHelp}"--%>
+ <%--tooltipIconPath="/img/tooltip.png"/>--%>
+ <%--</fieldset>--%>
+<%--</div>--%>
+
<h4>
<s:property value="%{voteSizeMessage}"/>
</h4>
Modified: trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/vote.jsp
===================================================================
--- trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/vote.jsp 2012-09-14 16:33:06 UTC (rev 3691)
+++ trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/vote.jsp 2012-09-19 08:25:53 UTC (rev 3692)
@@ -29,6 +29,8 @@
<link rel="stylesheet" type="text/css"
href="<s:url value='/css/vote.css'/>"/>
<link rel="stylesheet" type="text/css"
+ href="<s:url value='/css/pollInformation.css'/>"/>
+<link rel="stylesheet" type="text/css"
href="<s:url value='/css/jquery.lightbox-0.5.css'/>"/>
<script type="text/javascript"
@@ -112,48 +114,52 @@
<h1 class="titleVote"><s:property value="poll.title"/></h1>
<!-- Informations sur le sondage -->
+<!-- Informations sur le sondage -->
+<s:set name="showVoteUrl" value="false"/>
+<s:set name="showResultUrl" value="true"/>
+<%@include file="pollInformation.jsp" %>
-<div id="pollTop">
- <div style="white-space:pre-wrap; text-align: start;">
- <s:property value="poll.description"/>
- </div>
- <fieldset>
- <legend><s:text name="pollen.common.aboutPoll"/></legend>
- <div style="float: right">
- <s:if test="creatorOrAdmin">
- <s:a href="%{summaryUrl}">
- <img src="<s:url value='/img/editSmall.png'/>"
- title="<s:text name='pollen.action.summaryPoll'/>"
- alt="<s:text name='pollen.action.summaryPoll'/>"/>
- </s:a>
- </s:if>
- <s:if test="resultAllowed">
- <s:a href="%{resultUrl}">
- <img src="<s:url value='/img/count.png'/>"
- title="<s:text name='pollen.common.vote.results-help'/>"
- alt="<s:text name='pollen.common.vote.results'/>"/>
- </s:a>
- </s:if>
- <s:if test="feedFileExisting">
- <s:a namespace="/poll" action="getFeed">
- <s:param name="pollId" value="poll.pollId"/>
- <img src="<s:url value='/img/feed.png'/>" title="Atom" alt="Atom"/>
- </s:a>
- </s:if>
- </div>
- <s:label value="%{pollCreatorName}" key='pollen.common.pollCreator'/>
- <s:label value="%{pollBeginDate}" key='pollen.common.beginDate'/>
- <s:label value="%{pollEndDate}" key='pollen.common.endDate'/>
- <s:label value="%{voteCountingTypeName}"
- key='pollen.common.voteCountingType'
- tooltip="%{voteCountingTypeHelp}"
- tooltipIconPath="/img/tooltip.png"/>
- <s:label value="%{pollVoteVisibilityName}"
- key='pollen.common.pollVoteVisibility'
- tooltip="%{pollVoteVisibilityHelp}"
- tooltipIconPath="/img/tooltip.png"/>
- </fieldset>
-</div>
+<%--<div id="pollTop">--%>
+ <%--<div style="white-space:pre-wrap; text-align: start;">--%>
+ <%--<s:property value="poll.description"/>--%>
+ <%--</div>--%>
+ <%--<fieldset>--%>
+ <%--<legend><s:text name="pollen.common.aboutPoll"/></legend>--%>
+ <%--<div style="float: right">--%>
+ <%--<s:if test="creatorOrAdmin">--%>
+ <%--<s:a href="%{summaryUrl}">--%>
+ <%--<img src="<s:url value='/img/editSmall.png'/>"--%>
+ <%--title="<s:text name='pollen.action.summaryPoll'/>"--%>
+ <%--alt="<s:text name='pollen.action.summaryPoll'/>"/>--%>
+ <%--</s:a>--%>
+ <%--</s:if>--%>
+ <%--<s:if test="resultAllowed">--%>
+ <%--<s:a href="%{resultUrl}">--%>
+ <%--<img src="<s:url value='/img/count.png'/>"--%>
+ <%--title="<s:text name='pollen.common.vote.results-help'/>"--%>
+ <%--alt="<s:text name='pollen.common.vote.results'/>"/>--%>
+ <%--</s:a>--%>
+ <%--</s:if>--%>
+ <%--<s:if test="feedFileExisting">--%>
+ <%--<s:a namespace="/poll" action="getFeed">--%>
+ <%--<s:param name="pollId" value="poll.pollId"/>--%>
+ <%--<img src="<s:url value='/img/feed.png'/>" title="Atom" alt="Atom"/>--%>
+ <%--</s:a>--%>
+ <%--</s:if>--%>
+ <%--</div>--%>
+ <%--<s:label value="%{pollCreatorName}" key='pollen.common.pollCreator'/>--%>
+ <%--<s:label value="%{pollBeginDate}" key='pollen.common.beginDate'/>--%>
+ <%--<s:label value="%{pollEndDate}" key='pollen.common.endDate'/>--%>
+ <%--<s:label value="%{voteCountingTypeName}"--%>
+ <%--key='pollen.common.voteCountingType'--%>
+ <%--tooltip="%{voteCountingTypeHelp}"--%>
+ <%--tooltipIconPath="/img/tooltip.png"/>--%>
+ <%--<s:label value="%{pollVoteVisibilityName}"--%>
+ <%--key='pollen.common.pollVoteVisibility'--%>
+ <%--tooltip="%{pollVoteVisibilityHelp}"--%>
+ <%--tooltipIconPath="/img/tooltip.png"/>--%>
+ <%--</fieldset>--%>
+<%--</div>--%>
<div id="pollZone">
<s:if test="pollChoiceOrVoteStarted">
Added: trunk/pollen-ui-struts2/src/main/webapp/css/pollInformation.css
===================================================================
--- trunk/pollen-ui-struts2/src/main/webapp/css/pollInformation.css (rev 0)
+++ trunk/pollen-ui-struts2/src/main/webapp/css/pollInformation.css 2012-09-19 08:25:53 UTC (rev 3692)
@@ -0,0 +1,48 @@
+/*
+ * #%L
+ * Pollen :: UI (struts2)
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2012 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+#pollInformationTop {
+ width: 700px;
+ margin: auto;
+ text-align: center;
+}
+
+#pollInformationTop legend {
+ color: #727a7e;
+ font-weight: bold;
+}
+
+#pollInformationTop fieldset {
+ width: 350px;
+ border: 1px solid #aab;
+ padding: 15px;
+ padding-bottom: 10px;
+ margin: auto;
+ margin-top: 20px;
+ margin-bottom: 20px;
+ vertical-align: top;
+ text-align: left;
+}
+
+#pollInformationTop fieldset .wwlbl {
+ width: 210px;
+}
\ No newline at end of file
Property changes on: trunk/pollen-ui-struts2/src/main/webapp/css/pollInformation.css
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/pollen-ui-struts2/src/main/webapp/css/results.css
===================================================================
--- trunk/pollen-ui-struts2/src/main/webapp/css/results.css 2012-09-14 16:33:06 UTC (rev 3691)
+++ trunk/pollen-ui-struts2/src/main/webapp/css/results.css 2012-09-19 08:25:53 UTC (rev 3692)
@@ -20,33 +20,6 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
-#resultTop {
- width: 700px;
- margin: auto;
- text-align: center;
-}
-
-#resultTop legend {
- color: #727a7e;
- font-weight: bold;
-}
-
-#resultTop fieldset {
- width: 350px;
- border: 1px solid #aab;
- padding: 15px;
- padding-bottom: 10px;
- margin: auto;
- margin-top: 20px;
- margin-bottom: 20px;
- vertical-align: top;
- text-align: left;
-}
-
-#resultTop fieldset .wwlbl {
- width: 210px;
-}
-
#resultChart {
width: 400px;
margin: auto;
Modified: trunk/pollen-ui-struts2/src/main/webapp/css/vote.css
===================================================================
--- trunk/pollen-ui-struts2/src/main/webapp/css/vote.css 2012-09-14 16:33:06 UTC (rev 3691)
+++ trunk/pollen-ui-struts2/src/main/webapp/css/vote.css 2012-09-19 08:25:53 UTC (rev 3692)
@@ -20,33 +20,6 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
-#pollTop {
- width: 700px;
- margin: auto;
- text-align: center;
-}
-
-#pollTop legend {
- color: #727a7e;
- font-weight: bold;
-}
-
-#pollTop fieldset {
- width: 400px;
- border: 1px solid #aab;
- padding: 15px;
- padding-bottom: 10px;
- margin: auto;
- margin-top: 20px;
- margin-bottom: 20px;
- vertical-align: top;
- text-align: left;
-}
-
-#pollTop fieldset .wwlbl {
- width: 210px;
-}
-
#pollZone {
/*padding: 10px;*/
text-align: center;
1
0
r3691 - in trunk: . pollen-persistence/src/main/java/org/chorem/pollen/business/persistence pollen-persistence/src/test/java/org/chorem/pollen/business/persistence pollen-services/src/main/java/org/chorem/pollen/services/impl pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json
by tchemit@users.chorem.org 14 Sep '12
by tchemit@users.chorem.org 14 Sep '12
14 Sep '12
Author: tchemit
Date: 2012-09-14 18:33:06 +0200 (Fri, 14 Sep 2012)
New Revision: 3691
Url: http://chorem.org/repositories/revision/pollen/3691
Log:
fixes #806: Updates to nuiton-utils 2.6.2
fixes #807: Updates to topia 2.7
fixes #808: updates to h2 1.3.168
Modified:
trunk/pollen-persistence/src/main/java/org/chorem/pollen/business/persistence/CommentDAOImpl.java
trunk/pollen-persistence/src/main/java/org/chorem/pollen/business/persistence/PersonListDAOImpl.java
trunk/pollen-persistence/src/main/java/org/chorem/pollen/business/persistence/PollAccountDAOImpl.java
trunk/pollen-persistence/src/main/java/org/chorem/pollen/business/persistence/PollDAOImpl.java
trunk/pollen-persistence/src/main/java/org/chorem/pollen/business/persistence/UserAccountDAOImpl.java
trunk/pollen-persistence/src/main/java/org/chorem/pollen/business/persistence/VoteDAOImpl.java
trunk/pollen-persistence/src/test/java/org/chorem/pollen/business/persistence/CommentDAOImplTest.java
trunk/pollen-persistence/src/test/java/org/chorem/pollen/business/persistence/PersonListDAOImplTest.java
trunk/pollen-persistence/src/test/java/org/chorem/pollen/business/persistence/PollDAOImplTest.java
trunk/pollen-persistence/src/test/java/org/chorem/pollen/business/persistence/UserAccountDAOImplTest.java
trunk/pollen-persistence/src/test/java/org/chorem/pollen/business/persistence/VoteDAOImplTest.java
trunk/pollen-services/src/main/java/org/chorem/pollen/services/impl/FavoriteService.java
trunk/pollen-services/src/main/java/org/chorem/pollen/services/impl/PollCommentService.java
trunk/pollen-services/src/main/java/org/chorem/pollen/services/impl/PollService.java
trunk/pollen-services/src/main/java/org/chorem/pollen/services/impl/UserService.java
trunk/pollen-services/src/main/java/org/chorem/pollen/services/impl/VoteService.java
trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/AbstractJSONPaginedAction.java
trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetCreatedPolls.java
trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetFavoriteListPollAccounts.java
trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetFavoriteLists.java
trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetInvitedPolls.java
trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetParticipatedPolls.java
trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetPollComments.java
trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetPolls.java
trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetUsers.java
trunk/pom.xml
Modified: trunk/pollen-persistence/src/main/java/org/chorem/pollen/business/persistence/CommentDAOImpl.java
===================================================================
--- trunk/pollen-persistence/src/main/java/org/chorem/pollen/business/persistence/CommentDAOImpl.java 2012-09-05 21:04:41 UTC (rev 3690)
+++ trunk/pollen-persistence/src/main/java/org/chorem/pollen/business/persistence/CommentDAOImpl.java 2012-09-14 16:33:06 UTC (rev 3691)
@@ -24,13 +24,13 @@
import com.google.common.base.Preconditions;
import org.nuiton.topia.TopiaException;
-import org.nuiton.topia.persistence.TopiaFilterPagerUtil;
+import org.nuiton.topia.persistence.pager.TopiaPagerBean;
import java.util.List;
public class CommentDAOImpl<E extends Comment> extends CommentDAOAbstract<E> {
- public List<E> findComments(TopiaFilterPagerUtil.FilterPagerBean pager,
+ public List<E> findComments(TopiaPagerBean pager,
String pollId) throws TopiaException {
Preconditions.checkNotNull(pager);
Modified: trunk/pollen-persistence/src/main/java/org/chorem/pollen/business/persistence/PersonListDAOImpl.java
===================================================================
--- trunk/pollen-persistence/src/main/java/org/chorem/pollen/business/persistence/PersonListDAOImpl.java 2012-09-05 21:04:41 UTC (rev 3690)
+++ trunk/pollen-persistence/src/main/java/org/chorem/pollen/business/persistence/PersonListDAOImpl.java 2012-09-14 16:33:06 UTC (rev 3691)
@@ -25,25 +25,23 @@
import com.google.common.base.Preconditions;
import org.apache.commons.lang3.StringUtils;
import org.nuiton.topia.TopiaException;
-import org.nuiton.topia.persistence.TopiaFilterPagerUtil;
+import org.nuiton.topia.persistence.pager.TopiaPagerBean;
import java.util.List;
public class PersonListDAOImpl<E extends PersonList> extends PersonListDAOAbstract<E> {
public List<E> findFavoriteLists(UserAccount user,
- TopiaFilterPagerUtil.FilterPagerBean pager) throws TopiaException {
+ TopiaPagerBean pager) throws TopiaException {
Preconditions.checkNotNull(user);
Preconditions.checkNotNull(pager);
- String countHql = "SELECT COUNT(*) FROM PersonListImpl WHERE " +
- "owner = :owner";
+ String hql = createSimpleQuery("e") + " WHERE e.owner = :owner";
+ String countHql = "SELECT COUNT(*) " + hql;
computeAndAddRecordsToPager(countHql, pager, "owner", user);
- String hql = "FROM PersonListImpl e WHERE e.owner = :owner";
-
List<E> result = findAllByQueryAndPager(hql, pager, "owner", user);
return result;
}
@@ -52,7 +50,7 @@
Preconditions.checkNotNull(user);
- String hql = "FROM PersonListImpl WHERE owner = :owner";
+ String hql = createSimpleQuery("e") + " WHERE e.owner = :owner";
List<E> result = findAllByQuery(hql, "owner", user);
return result;
Modified: trunk/pollen-persistence/src/main/java/org/chorem/pollen/business/persistence/PollAccountDAOImpl.java
===================================================================
--- trunk/pollen-persistence/src/main/java/org/chorem/pollen/business/persistence/PollAccountDAOImpl.java 2012-09-05 21:04:41 UTC (rev 3690)
+++ trunk/pollen-persistence/src/main/java/org/chorem/pollen/business/persistence/PollAccountDAOImpl.java 2012-09-14 16:33:06 UTC (rev 3691)
@@ -29,7 +29,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.topia.TopiaException;
-import org.nuiton.topia.persistence.TopiaFilterPagerUtil;
+import org.nuiton.topia.persistence.pager.TopiaPagerBean;
import java.util.List;
@@ -168,7 +168,7 @@
}
public List<E> findFavoriteListUsers(PersonList favoriteList,
- TopiaFilterPagerUtil.FilterPagerBean pager) throws TopiaException {
+ TopiaPagerBean pager) throws TopiaException {
Preconditions.checkNotNull(favoriteList);
Preconditions.checkNotNull(pager);
@@ -176,7 +176,7 @@
int records = favoriteList.sizePollAccount();
pager.setRecords(records);
- String hql = "FROM PollAccountImpl e WHERE e.personList = :owner";
+ String hql = createSimpleQuery("e") + " WHERE e.personList = :owner";
List<E> result = findAllByQueryAndPager(hql, pager, "owner", favoriteList);
return result;
@@ -188,7 +188,7 @@
Preconditions.checkNotNull(personListToUpdate);
Preconditions.checkNotNull(pollAccount);
- String hql = "FROM PollAccountImpl e WHERE " +
+ String hql = createSimpleQuery("e") + " WHERE " +
"e.personList = :person AND " +
"e.email = :email";
String pollAccountId = pollAccount.getTopiaId();
Modified: trunk/pollen-persistence/src/main/java/org/chorem/pollen/business/persistence/PollDAOImpl.java
===================================================================
--- trunk/pollen-persistence/src/main/java/org/chorem/pollen/business/persistence/PollDAOImpl.java 2012-09-05 21:04:41 UTC (rev 3690)
+++ trunk/pollen-persistence/src/main/java/org/chorem/pollen/business/persistence/PollDAOImpl.java 2012-09-14 16:33:06 UTC (rev 3691)
@@ -28,15 +28,17 @@
import org.apache.commons.lang3.tuple.Pair;
import org.chorem.pollen.PollenFunctions;
import org.nuiton.topia.TopiaException;
-import org.nuiton.topia.persistence.TopiaFilterPagerUtil;
+import org.nuiton.topia.persistence.pager.TopiaPagerBean;
+import org.nuiton.util.PagerBeanUtil;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
public class PollDAOImpl<E extends Poll> extends PollDAOAbstract<E> {
- public List<E> getPolls(TopiaFilterPagerUtil.FilterPagerBean pager) throws TopiaException {
+ public List<E> getPolls(TopiaPagerBean pager) throws TopiaException {
Preconditions.checkNotNull(pager);
@@ -50,7 +52,7 @@
return result;
}
- public List<E> findCreatedPolls(TopiaFilterPagerUtil.FilterPagerBean pager,
+ public List<E> findCreatedPolls(TopiaPagerBean pager,
UserAccount user) throws TopiaException {
Preconditions.checkNotNull(pager);
@@ -67,7 +69,7 @@
return result;
}
- public List<Pair<Poll, PollAccount>> findInvitedPolls(TopiaFilterPagerUtil.FilterPagerBean pager,
+ public List<Pair<Poll, PollAccount>> findInvitedPolls(TopiaPagerBean pager,
UserAccount user) throws TopiaException {
Preconditions.checkNotNull(pager);
@@ -82,7 +84,7 @@
return result;
}
- public List<Pair<Poll, PollAccount>> findParticipatedPolls(TopiaFilterPagerUtil.FilterPagerBean pager,
+ public List<Pair<Poll, PollAccount>> findParticipatedPolls(TopiaPagerBean pager,
UserAccount user) throws TopiaException {
Preconditions.checkNotNull(pager);
@@ -108,7 +110,7 @@
}
protected List<Pair<Poll, PollAccount>> findAllWithPollAccounts(String hql,
- TopiaFilterPagerUtil.FilterPagerBean pager, Object... params)
+ TopiaPagerBean pager, Object... params)
throws TopiaException {
List<Object[]> queryResults = findAllByQuery(Object[].class, hql, params);
@@ -121,13 +123,23 @@
}
long records = mapResult.size();
pager.setRecords((int) records);
- TopiaFilterPagerUtil.computeRecordIndexesAndPagesNumber(pager);
+ PagerBeanUtil.computeRecordIndexesAndPagesNumber(pager);
List<Map.Entry<Poll, PollAccount>> entries =
Lists.newLinkedList(mapResult.entrySet());
List<Pair<Poll, PollAccount>> result =
- Lists.transform(TopiaFilterPagerUtil.getPageFromList(entries, pager),
+ Lists.transform(getPageFromList(entries, pager),
PollenFunctions.MAP_ENTRY_TO_PAIR_FUNCTION);
return result;
}
+ public static <E> List<E> getPageFromList(List<E> elements,
+ TopiaPagerBean pager) {
+
+ PagerBeanUtil.computeRecordIndexesAndPagesNumber(pager);
+ List<E> subList = PagerBeanUtil.getPage(elements, pager.getPageIndex(), pager.getPageSize());
+ List<E> result = new ArrayList<E>(subList);
+
+ return result;
+ }
+
}
Modified: trunk/pollen-persistence/src/main/java/org/chorem/pollen/business/persistence/UserAccountDAOImpl.java
===================================================================
--- trunk/pollen-persistence/src/main/java/org/chorem/pollen/business/persistence/UserAccountDAOImpl.java 2012-09-05 21:04:41 UTC (rev 3690)
+++ trunk/pollen-persistence/src/main/java/org/chorem/pollen/business/persistence/UserAccountDAOImpl.java 2012-09-14 16:33:06 UTC (rev 3691)
@@ -25,7 +25,7 @@
import com.google.common.base.Preconditions;
import org.apache.commons.lang3.StringUtils;
import org.nuiton.topia.TopiaException;
-import org.nuiton.topia.persistence.TopiaFilterPagerUtil;
+import org.nuiton.topia.persistence.pager.TopiaPagerBean;
import java.util.List;
@@ -48,16 +48,16 @@
return result;
}
- public List<E> findUsers(TopiaFilterPagerUtil.FilterPagerBean pager) throws TopiaException {
+ public List<E> findUsers(TopiaPagerBean pager) throws TopiaException {
Preconditions.checkNotNull(pager);
- String countHql = "SELECT COUNT(*) FROM UserAccountImpl";
+ String hql = createSimpleQuery("e");
+ String countHql = "SELECT COUNT(*) " + hql;
+
computeAndAddRecordsToPager(countHql, pager);
- String hql = "FROM UserAccountImpl";
-
List<E> result = findAllByQueryAndPager(hql, pager);
return result;
}
Modified: trunk/pollen-persistence/src/main/java/org/chorem/pollen/business/persistence/VoteDAOImpl.java
===================================================================
--- trunk/pollen-persistence/src/main/java/org/chorem/pollen/business/persistence/VoteDAOImpl.java 2012-09-05 21:04:41 UTC (rev 3690)
+++ trunk/pollen-persistence/src/main/java/org/chorem/pollen/business/persistence/VoteDAOImpl.java 2012-09-14 16:33:06 UTC (rev 3691)
@@ -24,7 +24,7 @@
import com.google.common.base.Preconditions;
import org.nuiton.topia.TopiaException;
-import org.nuiton.topia.persistence.TopiaFilterPagerUtil;
+import org.nuiton.topia.persistence.pager.TopiaPagerBean;
import java.util.List;
@@ -45,7 +45,7 @@
}
public List<E> findAllVotesByPoll(Poll poll,
- TopiaFilterPagerUtil.FilterPagerBean pager) throws TopiaException {
+ TopiaPagerBean pager) throws TopiaException {
Preconditions.checkNotNull(poll);
Preconditions.checkNotNull(pager);
Modified: trunk/pollen-persistence/src/test/java/org/chorem/pollen/business/persistence/CommentDAOImplTest.java
===================================================================
--- trunk/pollen-persistence/src/test/java/org/chorem/pollen/business/persistence/CommentDAOImplTest.java 2012-09-05 21:04:41 UTC (rev 3690)
+++ trunk/pollen-persistence/src/test/java/org/chorem/pollen/business/persistence/CommentDAOImplTest.java 2012-09-14 16:33:06 UTC (rev 3691)
@@ -26,7 +26,7 @@
import org.junit.Assert;
import org.junit.Test;
import org.nuiton.topia.TopiaContext;
-import org.nuiton.topia.persistence.TopiaFilterPagerUtil;
+import org.nuiton.topia.persistence.pager.TopiaPagerBean;
import java.util.List;
@@ -52,9 +52,9 @@
tx.commitTransaction();
List<Comment> actual;
- TopiaFilterPagerUtil.FilterPagerBean pager;
+ TopiaPagerBean pager;
- pager = TopiaFilterPagerUtil.newFilterPagerBean();
+ pager = new TopiaPagerBean();
pager.setPageSize(5);
pager.setSortColumn(Comment.PROPERTY_TEXT);
pager.setSortAscendant(true);
@@ -65,7 +65,7 @@
Assert.assertEquals("comment" + i, actual.get(i).getText());
}
- pager = TopiaFilterPagerUtil.newFilterPagerBean();
+ pager = new TopiaPagerBean();
pager.setPageSize(5);
pager.setPageIndex(2);
pager.setSortColumn(Comment.PROPERTY_TEXT);
@@ -77,7 +77,7 @@
Assert.assertEquals("comment" + (5 + i), actual.get(i).getText());
}
- pager = TopiaFilterPagerUtil.newFilterPagerBean();
+ pager = new TopiaPagerBean();
pager.setPageSize(5);
pager.setSortColumn(Comment.PROPERTY_TEXT);
pager.setSortAscendant(false);
@@ -88,7 +88,7 @@
Assert.assertEquals("comment" + (8 - i), actual.get(i).getText());
}
- pager = TopiaFilterPagerUtil.newFilterPagerBean();
+ pager = new TopiaPagerBean();
pager.setPageSize(5);
pager.setSortColumn(Comment.PROPERTY_TEXT);
pager.setSortAscendant(false);
Modified: trunk/pollen-persistence/src/test/java/org/chorem/pollen/business/persistence/PersonListDAOImplTest.java
===================================================================
--- trunk/pollen-persistence/src/test/java/org/chorem/pollen/business/persistence/PersonListDAOImplTest.java 2012-09-05 21:04:41 UTC (rev 3690)
+++ trunk/pollen-persistence/src/test/java/org/chorem/pollen/business/persistence/PersonListDAOImplTest.java 2012-09-14 16:33:06 UTC (rev 3691)
@@ -26,7 +26,7 @@
import org.junit.Assert;
import org.junit.Test;
import org.nuiton.topia.TopiaContext;
-import org.nuiton.topia.persistence.TopiaFilterPagerUtil;
+import org.nuiton.topia.persistence.pager.TopiaPagerBean;
import java.util.List;
@@ -85,9 +85,9 @@
tx.commitTransaction();
List<PersonList> actual;
- TopiaFilterPagerUtil.FilterPagerBean pager;
+ TopiaPagerBean pager;
- pager = TopiaFilterPagerUtil.newFilterPagerBean();
+ pager = new TopiaPagerBean();
pager.setPageSize(5);
pager.setSortColumn(PersonList.PROPERTY_NAME);
pager.setSortAscendant(true);
@@ -99,7 +99,7 @@
Assert.assertEquals("name" + i, actual.get(i).getName());
}
- pager = TopiaFilterPagerUtil.newFilterPagerBean();
+ pager = new TopiaPagerBean();
pager.setPageSize(5);
pager.setPageIndex(2);
pager.setSortColumn(PersonList.PROPERTY_NAME);
@@ -111,7 +111,7 @@
Assert.assertEquals("name" + (5 + i), actual.get(i).getName());
}
- pager = TopiaFilterPagerUtil.newFilterPagerBean();
+ pager = new TopiaPagerBean();
pager.setPageSize(5);
pager.setSortColumn(PersonList.PROPERTY_NAME);
pager.setSortAscendant(false);
@@ -122,7 +122,7 @@
Assert.assertEquals("name" + (8 - i), actual.get(i).getName());
}
- pager = TopiaFilterPagerUtil.newFilterPagerBean();
+ pager = new TopiaPagerBean();
pager.setPageSize(5);
pager.setSortColumn(PersonList.PROPERTY_NAME);
pager.setSortAscendant(false);
Modified: trunk/pollen-persistence/src/test/java/org/chorem/pollen/business/persistence/PollDAOImplTest.java
===================================================================
--- trunk/pollen-persistence/src/test/java/org/chorem/pollen/business/persistence/PollDAOImplTest.java 2012-09-05 21:04:41 UTC (rev 3690)
+++ trunk/pollen-persistence/src/test/java/org/chorem/pollen/business/persistence/PollDAOImplTest.java 2012-09-14 16:33:06 UTC (rev 3691)
@@ -29,7 +29,7 @@
import org.junit.Assert;
import org.junit.Test;
import org.nuiton.topia.TopiaContext;
-import org.nuiton.topia.persistence.TopiaFilterPagerUtil;
+import org.nuiton.topia.persistence.pager.TopiaPagerBean;
import org.nuiton.util.DateUtil;
import java.util.Date;
@@ -68,9 +68,9 @@
tx.commitTransaction();
List<Poll> actual;
- TopiaFilterPagerUtil.FilterPagerBean pager;
+ TopiaPagerBean pager;
- pager = TopiaFilterPagerUtil.newFilterPagerBean();
+ pager = new TopiaPagerBean();
pager.setPageSize(5);
pager.setSortColumn(Poll.PROPERTY_TITLE);
pager.setSortAscendant(true);
@@ -81,7 +81,7 @@
Assert.assertEquals("title" + i, actual.get(i).getTitle());
}
- pager = TopiaFilterPagerUtil.newFilterPagerBean();
+ pager = new TopiaPagerBean();
pager.setPageSize(5);
pager.setPageIndex(2);
pager.setSortColumn(Poll.PROPERTY_TITLE);
@@ -93,7 +93,7 @@
Assert.assertEquals("title" + (5 + i), actual.get(i).getTitle());
}
- pager = TopiaFilterPagerUtil.newFilterPagerBean();
+ pager = new TopiaPagerBean();
pager.setPageSize(5);
pager.setSortColumn(Poll.PROPERTY_TITLE);
pager.setSortAscendant(false);
@@ -104,7 +104,7 @@
Assert.assertEquals("title" + (8 - i), actual.get(i).getTitle());
}
- pager = TopiaFilterPagerUtil.newFilterPagerBean();
+ pager = new TopiaPagerBean();
pager.setPageSize(5);
pager.setPageIndex(3);
pager.setSortColumn(Poll.PROPERTY_TITLE);
@@ -136,9 +136,9 @@
tx.commitTransaction();
List<Poll> actual;
- TopiaFilterPagerUtil.FilterPagerBean pager;
+ TopiaPagerBean pager;
- pager = TopiaFilterPagerUtil.newFilterPagerBean();
+ pager = new TopiaPagerBean();
pager.setPageSize(5);
pager.setSortColumn(Poll.PROPERTY_TITLE);
pager.setSortAscendant(true);
@@ -149,7 +149,7 @@
Assert.assertEquals("title" + i, actual.get(i).getTitle());
}
- pager = TopiaFilterPagerUtil.newFilterPagerBean();
+ pager = new TopiaPagerBean();
pager.setPageSize(5);
pager.setPageIndex(2);
pager.setSortColumn(Poll.PROPERTY_TITLE);
@@ -161,7 +161,7 @@
Assert.assertEquals("title" + (5 + i), actual.get(i).getTitle());
}
- pager = TopiaFilterPagerUtil.newFilterPagerBean();
+ pager = new TopiaPagerBean();
pager.setPageSize(5);
pager.setSortColumn(Poll.PROPERTY_TITLE);
pager.setSortAscendant(false);
@@ -172,7 +172,7 @@
Assert.assertEquals("title" + (8 - i), actual.get(i).getTitle());
}
- pager = TopiaFilterPagerUtil.newFilterPagerBean();
+ pager = new TopiaPagerBean();
pager.setPageSize(5);
pager.setSortColumn(Poll.PROPERTY_TITLE);
pager.setSortAscendant(false);
@@ -208,10 +208,10 @@
tx.commitTransaction();
- TopiaFilterPagerUtil.FilterPagerBean pager;
+ TopiaPagerBean pager;
List<Pair<Poll, PollAccount>> actual;
- pager = TopiaFilterPagerUtil.newFilterPagerBean();
+ pager = new TopiaPagerBean();
pager.setPageSize(5);
actual = dao.findParticipatedPolls(pager, userAccount1);
Modified: trunk/pollen-persistence/src/test/java/org/chorem/pollen/business/persistence/UserAccountDAOImplTest.java
===================================================================
--- trunk/pollen-persistence/src/test/java/org/chorem/pollen/business/persistence/UserAccountDAOImplTest.java 2012-09-05 21:04:41 UTC (rev 3690)
+++ trunk/pollen-persistence/src/test/java/org/chorem/pollen/business/persistence/UserAccountDAOImplTest.java 2012-09-14 16:33:06 UTC (rev 3691)
@@ -26,7 +26,7 @@
import org.junit.Assert;
import org.junit.Test;
import org.nuiton.topia.TopiaContext;
-import org.nuiton.topia.persistence.TopiaFilterPagerUtil;
+import org.nuiton.topia.persistence.pager.TopiaPagerBean;
import java.util.List;
@@ -92,10 +92,10 @@
tx.commitTransaction();
- TopiaFilterPagerUtil.FilterPagerBean pager;
+ TopiaPagerBean pager;
List<UserAccount> actual;
- pager = TopiaFilterPagerUtil.newFilterPagerBean();
+ pager = new TopiaPagerBean();
pager.setPageSize(5);
pager.setSortColumn(UserAccount.PROPERTY_LOGIN);
pager.setSortAscendant(true);
@@ -106,7 +106,7 @@
Assert.assertEquals("login" + i, actual.get(i).getLogin());
}
- pager = TopiaFilterPagerUtil.newFilterPagerBean();
+ pager = new TopiaPagerBean();
pager.setPageSize(5);
pager.setPageIndex(2);
pager.setSortColumn(UserAccount.PROPERTY_LOGIN);
@@ -118,7 +118,7 @@
Assert.assertEquals("login" + (5 + i), actual.get(i).getLogin());
}
- pager = TopiaFilterPagerUtil.newFilterPagerBean();
+ pager = new TopiaPagerBean();
pager.setPageSize(5);
pager.setSortColumn(UserAccount.PROPERTY_LOGIN);
pager.setSortAscendant(false);
Modified: trunk/pollen-persistence/src/test/java/org/chorem/pollen/business/persistence/VoteDAOImplTest.java
===================================================================
--- trunk/pollen-persistence/src/test/java/org/chorem/pollen/business/persistence/VoteDAOImplTest.java 2012-09-05 21:04:41 UTC (rev 3690)
+++ trunk/pollen-persistence/src/test/java/org/chorem/pollen/business/persistence/VoteDAOImplTest.java 2012-09-14 16:33:06 UTC (rev 3691)
@@ -26,7 +26,7 @@
import org.junit.Assert;
import org.junit.Test;
import org.nuiton.topia.TopiaContext;
-import org.nuiton.topia.persistence.TopiaFilterPagerUtil;
+import org.nuiton.topia.persistence.pager.TopiaPagerBean;
import org.nuiton.util.DateUtil;
import java.util.List;
@@ -107,8 +107,7 @@
tx.commitTransaction();
List<Vote> actual;
- TopiaFilterPagerUtil.FilterPagerBean pager =
- TopiaFilterPagerUtil.newFilterPagerBean();
+ TopiaPagerBean pager = new TopiaPagerBean();
pager.setPageSize(10);
actual = voteDAO.findAllVotesByPoll(poll1, pager);
@@ -118,7 +117,7 @@
Assert.assertEquals(vote1, actual.get(1));
Assert.assertFalse(actual.contains(vote3));
- pager = TopiaFilterPagerUtil.newFilterPagerBean();
+ pager = new TopiaPagerBean();
pager.setPageSize(10);
actual = voteDAO.findAllVotesByPoll(poll2, pager);
Modified: trunk/pollen-services/src/main/java/org/chorem/pollen/services/impl/FavoriteService.java
===================================================================
--- trunk/pollen-services/src/main/java/org/chorem/pollen/services/impl/FavoriteService.java 2012-09-05 21:04:41 UTC (rev 3690)
+++ trunk/pollen-services/src/main/java/org/chorem/pollen/services/impl/FavoriteService.java 2012-09-14 16:33:06 UTC (rev 3691)
@@ -45,7 +45,7 @@
import org.chorem.pollen.services.exceptions.ParticipantNotFoundInListException;
import org.chorem.pollen.services.exceptions.UserNotFoundException;
import org.nuiton.topia.TopiaException;
-import org.nuiton.topia.persistence.TopiaFilterPagerUtil;
+import org.nuiton.topia.persistence.pager.TopiaPagerBean;
import org.nuiton.util.StringUtil;
import javax.naming.NamingEnumeration;
@@ -72,7 +72,7 @@
private static final Log log = LogFactory.getLog(FavoriteService.class);
public List<PersonList> getFavoriteLists(UserAccount user,
- TopiaFilterPagerUtil.FilterPagerBean pager) {
+ TopiaPagerBean pager) {
Preconditions.checkNotNull(user);
Preconditions.checkNotNull(pager);
@@ -128,7 +128,7 @@
}
public List<PollAccount> getFavoriteListUsers(PersonList favoriteList,
- TopiaFilterPagerUtil.FilterPagerBean pager) {
+ TopiaPagerBean pager) {
Preconditions.checkNotNull(favoriteList);
Preconditions.checkNotNull(pager);
Modified: trunk/pollen-services/src/main/java/org/chorem/pollen/services/impl/PollCommentService.java
===================================================================
--- trunk/pollen-services/src/main/java/org/chorem/pollen/services/impl/PollCommentService.java 2012-09-05 21:04:41 UTC (rev 3690)
+++ trunk/pollen-services/src/main/java/org/chorem/pollen/services/impl/PollCommentService.java 2012-09-14 16:33:06 UTC (rev 3691)
@@ -33,7 +33,7 @@
import org.chorem.pollen.services.PollenServiceSupport;
import org.chorem.pollen.services.exceptions.PollCommentNotFound;
import org.nuiton.topia.TopiaException;
-import org.nuiton.topia.persistence.TopiaFilterPagerUtil;
+import org.nuiton.topia.persistence.pager.TopiaPagerBean;
import java.util.List;
@@ -145,8 +145,7 @@
return result;
}
- public List<Comment> getComments(TopiaFilterPagerUtil.FilterPagerBean pager,
- String pollId) {
+ public List<Comment> getComments(TopiaPagerBean pager, String pollId) {
Preconditions.checkNotNull(pager);
Preconditions.checkNotNull(pollId);
Modified: trunk/pollen-services/src/main/java/org/chorem/pollen/services/impl/PollService.java
===================================================================
--- trunk/pollen-services/src/main/java/org/chorem/pollen/services/impl/PollService.java 2012-09-05 21:04:41 UTC (rev 3690)
+++ trunk/pollen-services/src/main/java/org/chorem/pollen/services/impl/PollService.java 2012-09-14 16:33:06 UTC (rev 3691)
@@ -58,7 +58,7 @@
import org.chorem.pollen.services.exceptions.PollChoiceNotFoundException;
import org.chorem.pollen.services.exceptions.PollNotFoundException;
import org.nuiton.topia.TopiaException;
-import org.nuiton.topia.persistence.TopiaFilterPagerUtil;
+import org.nuiton.topia.persistence.pager.TopiaPagerBean;
import org.nuiton.util.beans.Binder;
import javax.imageio.ImageIO;
@@ -421,7 +421,7 @@
return pollToUpdate;
}
- public List<Poll> getPolls(TopiaFilterPagerUtil.FilterPagerBean pager) {
+ public List<Poll> getPolls(TopiaPagerBean pager) {
Preconditions.checkNotNull(pager);
try {
@@ -433,8 +433,7 @@
}
}
- public List<Poll> getCreatedPolls(TopiaFilterPagerUtil.FilterPagerBean pager,
- UserAccount user) {
+ public List<Poll> getCreatedPolls(TopiaPagerBean pager, UserAccount user) {
Preconditions.checkNotNull(pager);
Preconditions.checkNotNull(user);
@@ -448,7 +447,7 @@
}
public List<Pair<Poll, PollAccount>> getInvitedPolls(
- TopiaFilterPagerUtil.FilterPagerBean pager,
+ TopiaPagerBean pager,
UserAccount user) {
Preconditions.checkNotNull(pager);
@@ -469,9 +468,8 @@
}
}
- public List<Pair<Poll, PollAccount>> getParticipatedPolls(
- TopiaFilterPagerUtil.FilterPagerBean pager,
- UserAccount user) {
+ public List<Pair<Poll, PollAccount>> getParticipatedPolls(TopiaPagerBean pager,
+ UserAccount user) {
Preconditions.checkNotNull(pager);
Preconditions.checkNotNull(user);
Modified: trunk/pollen-services/src/main/java/org/chorem/pollen/services/impl/UserService.java
===================================================================
--- trunk/pollen-services/src/main/java/org/chorem/pollen/services/impl/UserService.java 2012-09-05 21:04:41 UTC (rev 3690)
+++ trunk/pollen-services/src/main/java/org/chorem/pollen/services/impl/UserService.java 2012-09-14 16:33:06 UTC (rev 3691)
@@ -39,7 +39,7 @@
import org.chorem.pollen.services.exceptions.UserLoginAlreadyUsedException;
import org.chorem.pollen.services.exceptions.UserNotFoundException;
import org.nuiton.topia.TopiaException;
-import org.nuiton.topia.persistence.TopiaFilterPagerUtil;
+import org.nuiton.topia.persistence.pager.TopiaPagerBean;
import org.nuiton.topia.persistence.util.TopiaEntityBinder;
import org.nuiton.util.StringUtil;
import org.nuiton.util.beans.Binder;
@@ -263,7 +263,7 @@
}
}
- public List<UserAccount> getUsers(TopiaFilterPagerUtil.FilterPagerBean pager) {
+ public List<UserAccount> getUsers(TopiaPagerBean pager) {
Preconditions.checkNotNull(pager);
Modified: trunk/pollen-services/src/main/java/org/chorem/pollen/services/impl/VoteService.java
===================================================================
--- trunk/pollen-services/src/main/java/org/chorem/pollen/services/impl/VoteService.java 2012-09-05 21:04:41 UTC (rev 3690)
+++ trunk/pollen-services/src/main/java/org/chorem/pollen/services/impl/VoteService.java 2012-09-14 16:33:06 UTC (rev 3691)
@@ -45,7 +45,7 @@
import org.chorem.pollen.services.exceptions.PollAccountNotFound;
import org.chorem.pollen.services.exceptions.VoteNotFoundException;
import org.nuiton.topia.TopiaException;
-import org.nuiton.topia.persistence.TopiaFilterPagerUtil;
+import org.nuiton.topia.persistence.pager.TopiaPagerBean;
import java.util.List;
@@ -352,8 +352,7 @@
}
}
- public List<Vote> getVotesByPoll(Poll poll,
- TopiaFilterPagerUtil.FilterPagerBean pager) {
+ public List<Vote> getVotesByPoll(Poll poll, TopiaPagerBean pager) {
try {
VoteDAO dao = getDAO(Vote.class);
List<Vote> results = dao.findAllVotesByPoll(poll, pager);
Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/AbstractJSONPaginedAction.java
===================================================================
--- trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/AbstractJSONPaginedAction.java 2012-09-05 21:04:41 UTC (rev 3690)
+++ trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/AbstractJSONPaginedAction.java 2012-09-14 16:33:06 UTC (rev 3691)
@@ -26,7 +26,7 @@
import org.apache.struts2.json.JSONException;
import org.apache.struts2.json.JSONUtil;
import org.chorem.pollen.ui.actions.PollenActionSupport;
-import org.nuiton.topia.persistence.TopiaFilterPagerUtil;
+import org.nuiton.topia.persistence.pager.TopiaPagerBean;
/**
* Abstract JSON action with pagination support.
@@ -38,16 +38,23 @@
private static final long serialVersionUID = 1L;
- public abstract Integer getRows();
+ public final Integer getRows() {
+ return pager.getPageSize();
+ }
- public abstract Integer getPage();
+ public final Integer getPage() {
+ return pager.getPageIndex();
+ }
- public abstract Integer getTotal();
+ public final Long getTotal() {
+ return pager.getPagesNumber();
+ }
- public abstract Integer getRecords();
+ public final Long getRecords() {
+ return pager.getRecords();
+ }
- protected TopiaFilterPagerUtil.FilterPagerBean pager =
- TopiaFilterPagerUtil.newFilterPagerBean();
+ protected TopiaPagerBean pager = new TopiaPagerBean();
protected String filters;
Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetCreatedPolls.java
===================================================================
--- trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetCreatedPolls.java 2012-09-05 21:04:41 UTC (rev 3690)
+++ trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetCreatedPolls.java 2012-09-14 16:33:06 UTC (rev 3691)
@@ -51,26 +51,6 @@
}
@Override
- public Integer getRows() {
- return pager.getPageSize();
- }
-
- @Override
- public Integer getPage() {
- return pager.getPageIndex();
- }
-
- @Override
- public Integer getTotal() {
- return pager.getPagesNumber();
- }
-
- @Override
- public Integer getRecords() {
- return pager.getRecords();
- }
-
- @Override
public String execute() throws Exception {
PollService pollService = getPollService();
Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetFavoriteListPollAccounts.java
===================================================================
--- trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetFavoriteListPollAccounts.java 2012-09-05 21:04:41 UTC (rev 3690)
+++ trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetFavoriteListPollAccounts.java 2012-09-14 16:33:06 UTC (rev 3691)
@@ -58,26 +58,6 @@
}
@Override
- public Integer getRows() {
- return pager.getPageSize();
- }
-
- @Override
- public Integer getPage() {
- return pager.getPageIndex();
- }
-
- @Override
- public Integer getTotal() {
- return pager.getPagesNumber();
- }
-
- @Override
- public Integer getRecords() {
- return pager.getRecords();
- }
-
- @Override
public String execute() throws Exception {
FavoriteService service = getFavoriteService();
Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetFavoriteLists.java
===================================================================
--- trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetFavoriteLists.java 2012-09-05 21:04:41 UTC (rev 3690)
+++ trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetFavoriteLists.java 2012-09-14 16:33:06 UTC (rev 3691)
@@ -45,26 +45,6 @@
}
@Override
- public Integer getRows() {
- return pager.getPageSize();
- }
-
- @Override
- public Integer getPage() {
- return pager.getPageIndex();
- }
-
- @Override
- public Integer getTotal() {
- return pager.getPagesNumber();
- }
-
- @Override
- public Integer getRecords() {
- return pager.getRecords();
- }
-
- @Override
public String execute() throws Exception {
List<PersonList> allFavoriteLists = getFavoriteService().getFavoriteLists(
Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetInvitedPolls.java
===================================================================
--- trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetInvitedPolls.java 2012-09-05 21:04:41 UTC (rev 3690)
+++ trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetInvitedPolls.java 2012-09-14 16:33:06 UTC (rev 3691)
@@ -54,26 +54,6 @@
}
@Override
- public Integer getRows() {
- return pager.getPageSize();
- }
-
- @Override
- public Integer getPage() {
- return pager.getPageIndex();
- }
-
- @Override
- public Integer getTotal() {
- return pager.getPagesNumber();
- }
-
- @Override
- public Integer getRecords() {
- return pager.getRecords();
- }
-
- @Override
public String execute() throws Exception {
PollService pollService = getPollService();
Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetParticipatedPolls.java
===================================================================
--- trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetParticipatedPolls.java 2012-09-05 21:04:41 UTC (rev 3690)
+++ trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetParticipatedPolls.java 2012-09-14 16:33:06 UTC (rev 3691)
@@ -54,26 +54,6 @@
}
@Override
- public Integer getRows() {
- return pager.getPageSize();
- }
-
- @Override
- public Integer getPage() {
- return pager.getPageIndex();
- }
-
- @Override
- public Integer getTotal() {
- return pager.getPagesNumber();
- }
-
- @Override
- public Integer getRecords() {
- return pager.getRecords();
- }
-
- @Override
public String execute() throws Exception {
PollService pollService = getPollService();
Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetPollComments.java
===================================================================
--- trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetPollComments.java 2012-09-05 21:04:41 UTC (rev 3690)
+++ trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetPollComments.java 2012-09-14 16:33:06 UTC (rev 3691)
@@ -57,26 +57,6 @@
}
@Override
- public Integer getRows() {
- return pager.getPageSize();
- }
-
- @Override
- public Integer getPage() {
- return pager.getPageIndex();
- }
-
- @Override
- public Integer getTotal() {
- return pager.getPagesNumber();
- }
-
- @Override
- public Integer getRecords() {
- return pager.getRecords();
- }
-
- @Override
public String execute() throws Exception {
Preconditions.checkNotNull(pollId);
Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetPolls.java
===================================================================
--- trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetPolls.java 2012-09-05 21:04:41 UTC (rev 3690)
+++ trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetPolls.java 2012-09-14 16:33:06 UTC (rev 3691)
@@ -48,26 +48,6 @@
}
@Override
- public Integer getRows() {
- return pager.getPageSize();
- }
-
- @Override
- public Integer getPage() {
- return pager.getPageIndex();
- }
-
- @Override
- public Integer getTotal() {
- return pager.getPagesNumber();
- }
-
- @Override
- public Integer getRecords() {
- return pager.getRecords();
- }
-
- @Override
public String execute() throws Exception {
PollService pollService = getPollService();
Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetUsers.java
===================================================================
--- trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetUsers.java 2012-09-05 21:04:41 UTC (rev 3690)
+++ trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetUsers.java 2012-09-14 16:33:06 UTC (rev 3691)
@@ -48,26 +48,6 @@
}
@Override
- public Integer getRows() {
- return pager.getPageSize();
- }
-
- @Override
- public Integer getPage() {
- return pager.getPageIndex();
- }
-
- @Override
- public Integer getTotal() {
- return pager.getPagesNumber();
- }
-
- @Override
- public Integer getRecords() {
- return pager.getRecords();
- }
-
- @Override
public String execute() throws Exception {
List<UserAccount> allUsers = getUserService().getUsers(pager);
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2012-09-05 21:04:41 UTC (rev 3690)
+++ trunk/pom.xml 2012-09-14 16:33:06 UTC (rev 3691)
@@ -153,13 +153,13 @@
<projectId>pollen</projectId>
<!-- customized versions -->
- <topiaVersion>2.6.14-SNAPSHOT</topiaVersion>
+ <topiaVersion>2.7</topiaVersion>
<eugenePluginVersion>2.5</eugenePluginVersion>
<nuitonI18nVersion>2.5</nuitonI18nVersion>
<nuitonWebVersion>1.11</nuitonWebVersion>
- <nuitonUtilsVersion>2.6.1</nuitonUtilsVersion>
- <h2Version>1.3.167</h2Version>
+ <nuitonUtilsVersion>2.6.2</nuitonUtilsVersion>
+ <h2Version>1.3.168</h2Version>
<postgresqlVersion>9.1-901-1.jdbc4</postgresqlVersion>
<struts2Version>2.3.4</struts2Version>
<jqueryPluginVersion>3.3.1</jqueryPluginVersion>
1
0
r3690 - trunk/pollen-services/src/main/java/org/chorem/pollen/entities/migration
by tchemit@users.chorem.org 05 Sep '12
by tchemit@users.chorem.org 05 Sep '12
05 Sep '12
Author: tchemit
Date: 2012-09-05 23:04:41 +0200 (Wed, 05 Sep 2012)
New Revision: 3690
Url: http://chorem.org/repositories/revision/pollen/3690
Log:
fixes #804: Can not acces no more to poll where I was admin and voter
Modified:
trunk/pollen-services/src/main/java/org/chorem/pollen/entities/migration/PollenMigrationCallbackV1_4_5_2.java
Modified: trunk/pollen-services/src/main/java/org/chorem/pollen/entities/migration/PollenMigrationCallbackV1_4_5_2.java
===================================================================
--- trunk/pollen-services/src/main/java/org/chorem/pollen/entities/migration/PollenMigrationCallbackV1_4_5_2.java 2012-09-05 20:09:16 UTC (rev 3689)
+++ trunk/pollen-services/src/main/java/org/chorem/pollen/entities/migration/PollenMigrationCallbackV1_4_5_2.java 2012-09-05 21:04:41 UTC (rev 3690)
@@ -8,7 +8,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.chorem.pollen.PollenApplicationContext;
-import org.chorem.pollen.PollenConfiguration;
import org.chorem.pollen.business.persistence.Poll;
import org.chorem.pollen.business.persistence.PollAccount;
import org.chorem.pollen.business.persistence.PollDAO;
@@ -19,13 +18,17 @@
import org.chorem.pollen.services.PollenServiceContext;
import org.chorem.pollen.services.PollenServiceFactory;
import org.chorem.pollen.services.impl.VoteService;
-import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
import org.nuiton.topia.framework.TopiaContextImplementor;
+import org.nuiton.topia.framework.TopiaSQLQuery;
import org.nuiton.topia.migration.TopiaMigrationCallbackByClassNG;
import org.nuiton.util.Version;
import org.nuiton.util.VersionUtil;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
import java.util.Collection;
import java.util.List;
import java.util.Locale;
@@ -54,34 +57,49 @@
boolean showSql,
boolean showProgression) throws TopiaException {
-
- PollenServiceFactory serviceFactory = new PollenServiceFactory();
-
PollenApplicationContext applicationContext = PollenApplicationContext.get(
ActionContext.getContext());
- PollenConfiguration configuration =
- applicationContext.getConfiguration();
-
-
PollenServiceContext sContext = DefaultPollenServiceContext.newContext(
Locale.getDefault(),
tx,
- configuration,
- serviceFactory,
+ applicationContext.getConfiguration(),
+ new PollenServiceFactory(),
applicationContext.getVoteCountingStrategyProvider()
);
// clean pollAccount for votes
// see http://chorem.org/issues/804
- removeDuplicateVoteWithSameUserAccount(sContext, queries);
+ removeDuplicateVoteWithSameUserAccount(tx, sContext, queries);
}
- private void removeDuplicateVoteWithSameUserAccount(PollenServiceContext sContext,
+ private void removeDuplicateVoteWithSameUserAccount(TopiaContextImplementor tx,
+ PollenServiceContext sContext,
List<String> queries) throws TopiaException {
- TopiaContext tx = sContext.getTransaction();
+ // get all poll with several votes with same userAccount
+ TopiaSQLQuery<String> getAllPollIdsQuery = new TopiaSQLQuery<String>() {
+ @Override
+ protected PreparedStatement prepareQuery(Connection connection) throws SQLException {
+ PreparedStatement ps = connection.prepareStatement(
+ "SELECT p.pollid FROM poll p WHERE " +
+ "(SELECT COUNT(pa) > COUNT(DISTINCT(pa.useraccount)) " +
+ "FROM vote v,pollaccount pa WHERE " +
+ "v.poll = p.topiaid AND v.pollaccount = pa.topiaid " +
+ "AND pa.useraccount IS NOT NULL);");
+ return ps;
+ }
+
+ @Override
+ protected String prepareResult(ResultSet set) throws SQLException {
+ String pollId = set.getString(1);
+ return pollId;
+ }
+ };
+
+ List<String> pollIds = getAllPollIdsQuery.findMultipleResult(tx);
+
PollDAO pollDAO = PollenDAOHelper.getPollDAO(tx);
VoteService voteService = sContext.newService(VoteService.class);
@@ -89,15 +107,17 @@
Multimap<Poll, PollAccount> accountToAnonymous = ArrayListMultimap.create();
Multimap<Poll, Vote> voteToFixByPoll = ArrayListMultimap.create();
- long nbPolls = pollDAO.count();
+ long nbPolls = pollIds.size();
int currentPollIndex = 0;
- for (Poll poll : pollDAO) {
+ for (String pollId : pollIds) {
if (log.isInfoEnabled()) {
- log.info("Scan poll [" + (currentPollIndex++) + "/" +
- nbPolls + "]" + poll.getPollId());
+ log.info("Treat bad poll [" + (currentPollIndex++) + "/" +
+ nbPolls + "]" + pollId);
}
+
+ Poll poll = pollDAO.findByPollId(pollId);
boolean pollAnonymous = poll.isAnonymous();
List<Vote> votes = voteService.getAllVotes(poll);
@@ -119,9 +139,8 @@
// ok found a userAccount
if (log.isWarnEnabled()) {
- log.warn("Found a poll" + (pollAnonymous ? "(anonymous)" : "") + " [" + poll.getPollId() + "] with multi vote for the same userAccount : " +
+ log.warn("Poll" + (pollAnonymous ? "(anonymous)" : "") + " [" + poll.getPollId() + "] with multi vote for the same userAccount : " +
userAccount.getEmail());
-
}
if (pollAnonymous) {
for (Vote vote : votesForUser) {
@@ -144,7 +163,7 @@
"poll to fix, will remove the userAccount from " +
"anonymous votes");
}
- String request = "UPDATE pollaccount set useraccount IS NULL WHERE topiaid='%s';";
+ String request = "UPDATE pollaccount set useraccount = NULL WHERE topiaid='%s';";
for (PollAccount account : accountToAnonymous.values()) {
queries.add(String.format(request, account.getTopiaId()));
}
@@ -157,9 +176,12 @@
log.warn("There is " + pollToFix.size() + " other polls " +
"to fix, will remove the userAccount from any votes");
}
+ String request = "UPDATE pollaccount set useraccount = NULL WHERE topiaid='%s';";
+ for (Vote account : voteToFixByPoll.values()) {
+ queries.add(String.format(request, account.getPollAccount().getTopiaId()));
+ }
}
-
}
final Function<Vote, UserAccount> voteToUserAccount = new Function<Vote, UserAccount>() {
1
0
r3689 - in trunk: . pollen-persistence/src/main/xmi pollen-services/src/main/java/org/chorem/pollen/entities/migration pollen-services/src/main/resources/META-INF/services
by tchemit@users.chorem.org 05 Sep '12
by tchemit@users.chorem.org 05 Sep '12
05 Sep '12
Author: tchemit
Date: 2012-09-05 22:09:16 +0200 (Wed, 05 Sep 2012)
New Revision: 3689
Url: http://chorem.org/repositories/revision/pollen/3689
Log:
refs #804: Can not acces no more to poll where I was admin and voter (fix by migration for anonymous poll)
Added:
trunk/pollen-services/src/main/java/org/chorem/pollen/entities/migration/PollenMigrationCallbackV1_4_5_2.java
Modified:
trunk/pollen-persistence/src/main/xmi/pollen.properties
trunk/pollen-services/src/main/resources/META-INF/services/org.nuiton.topia.migration.TopiaMigrationCallbackByClassNG$MigrationCallBackForVersion
trunk/pom.xml
Modified: trunk/pollen-persistence/src/main/xmi/pollen.properties
===================================================================
--- trunk/pollen-persistence/src/main/xmi/pollen.properties 2012-09-05 17:49:33 UTC (rev 3688)
+++ trunk/pollen-persistence/src/main/xmi/pollen.properties 2012-09-05 20:09:16 UTC (rev 3689)
@@ -24,7 +24,7 @@
#model.tagvalue.dbSchema=Pollen
model.tagvalue.constantPrefix=PROPERTY_
model.tagvalue.java.lang.String=text
-model.tagvalue.version=1.4.5
+model.tagvalue.version=1.4.5.2
model.tagvalue.doNotGenerateBooleanGetMethods=true
model.tagvalue.indexForeignKeys=true
Added: trunk/pollen-services/src/main/java/org/chorem/pollen/entities/migration/PollenMigrationCallbackV1_4_5_2.java
===================================================================
--- trunk/pollen-services/src/main/java/org/chorem/pollen/entities/migration/PollenMigrationCallbackV1_4_5_2.java (rev 0)
+++ trunk/pollen-services/src/main/java/org/chorem/pollen/entities/migration/PollenMigrationCallbackV1_4_5_2.java 2012-09-05 20:09:16 UTC (rev 3689)
@@ -0,0 +1,173 @@
+package org.chorem.pollen.entities.migration;
+
+import com.google.common.base.Function;
+import com.google.common.collect.ArrayListMultimap;
+import com.google.common.collect.Multimap;
+import com.opensymphony.xwork2.ActionContext;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.chorem.pollen.PollenApplicationContext;
+import org.chorem.pollen.PollenConfiguration;
+import org.chorem.pollen.business.persistence.Poll;
+import org.chorem.pollen.business.persistence.PollAccount;
+import org.chorem.pollen.business.persistence.PollDAO;
+import org.chorem.pollen.business.persistence.UserAccount;
+import org.chorem.pollen.business.persistence.Vote;
+import org.chorem.pollen.entities.PollenDAOHelper;
+import org.chorem.pollen.services.DefaultPollenServiceContext;
+import org.chorem.pollen.services.PollenServiceContext;
+import org.chorem.pollen.services.PollenServiceFactory;
+import org.chorem.pollen.services.impl.VoteService;
+import org.nuiton.topia.TopiaContext;
+import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.framework.TopiaContextImplementor;
+import org.nuiton.topia.migration.TopiaMigrationCallbackByClassNG;
+import org.nuiton.util.Version;
+import org.nuiton.util.VersionUtil;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Locale;
+import java.util.Set;
+
+/**
+ * Migration for version {@code 1.4.5.2}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.4.5.2
+ */
+public class PollenMigrationCallbackV1_4_5_2 extends TopiaMigrationCallbackByClassNG.MigrationCallBackForVersion {
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(PollenMigrationCallbackV1_4_5_2.class);
+
+ @Override
+ public Version getVersion() {
+ return VersionUtil.valueOf("1.4.5.2");
+ }
+
+ @Override
+ protected void prepareMigrationScript(TopiaContextImplementor tx,
+ List<String> queries,
+ boolean showSql,
+ boolean showProgression) throws TopiaException {
+
+
+ PollenServiceFactory serviceFactory = new PollenServiceFactory();
+
+ PollenApplicationContext applicationContext = PollenApplicationContext.get(
+ ActionContext.getContext());
+
+ PollenConfiguration configuration =
+ applicationContext.getConfiguration();
+
+
+ PollenServiceContext sContext = DefaultPollenServiceContext.newContext(
+ Locale.getDefault(),
+ tx,
+ configuration,
+ serviceFactory,
+ applicationContext.getVoteCountingStrategyProvider()
+ );
+
+ // clean pollAccount for votes
+ // see http://chorem.org/issues/804
+ removeDuplicateVoteWithSameUserAccount(sContext, queries);
+ }
+
+ private void removeDuplicateVoteWithSameUserAccount(PollenServiceContext sContext,
+ List<String> queries) throws TopiaException {
+
+ TopiaContext tx = sContext.getTransaction();
+
+ PollDAO pollDAO = PollenDAOHelper.getPollDAO(tx);
+
+ VoteService voteService = sContext.newService(VoteService.class);
+
+ Multimap<Poll, PollAccount> accountToAnonymous = ArrayListMultimap.create();
+ Multimap<Poll, Vote> voteToFixByPoll = ArrayListMultimap.create();
+
+ long nbPolls = pollDAO.count();
+ int currentPollIndex = 0;
+
+ for (Poll poll : pollDAO) {
+
+ if (log.isInfoEnabled()) {
+ log.info("Scan poll [" + (currentPollIndex++) + "/" +
+ nbPolls + "]" + poll.getPollId());
+ }
+ boolean pollAnonymous = poll.isAnonymous();
+
+ List<Vote> votes = voteService.getAllVotes(poll);
+
+ Multimap<UserAccount, Vote> voteByUserAccount = ArrayListMultimap.create();
+ for (Vote vote : votes) {
+ UserAccount useraccount = voteToUserAccount.apply(vote);
+ if (useraccount != null) {
+ voteByUserAccount.put(useraccount, vote);
+ }
+ }
+
+ for (UserAccount userAccount : voteByUserAccount.keySet()) {
+
+ if (userAccount != null) {
+
+ Collection<Vote> votesForUser = voteByUserAccount.get(userAccount);
+ if (votesForUser.size() > 1) {
+
+ // ok found a userAccount
+ if (log.isWarnEnabled()) {
+ log.warn("Found a poll" + (pollAnonymous ? "(anonymous)" : "") + " [" + poll.getPollId() + "] with multi vote for the same userAccount : " +
+ userAccount.getEmail());
+
+ }
+ if (pollAnonymous) {
+ for (Vote vote : votesForUser) {
+ accountToAnonymous.put(poll, vote.getPollAccount());
+ }
+ } else {
+ voteToFixByPoll.putAll(poll, votesForUser);
+ }
+ }
+ }
+ }
+ }
+
+ // treat anonymous vote
+ Set<Poll> anonymousPollToFix = accountToAnonymous.keySet();
+
+ if (CollectionUtils.isNotEmpty(anonymousPollToFix)) {
+ if (log.isWarnEnabled()) {
+ log.warn("There is " + anonymousPollToFix.size() + " anonymous " +
+ "poll to fix, will remove the userAccount from " +
+ "anonymous votes");
+ }
+ String request = "UPDATE pollaccount set useraccount IS NULL WHERE topiaid='%s';";
+ for (PollAccount account : accountToAnonymous.values()) {
+ queries.add(String.format(request, account.getTopiaId()));
+ }
+ }
+
+ // treat other votes
+ Set<Poll> pollToFix = voteToFixByPoll.keySet();
+ if (CollectionUtils.isNotEmpty(pollToFix)) {
+ if (log.isWarnEnabled()) {
+ log.warn("There is " + pollToFix.size() + " other polls " +
+ "to fix, will remove the userAccount from any votes");
+ }
+ }
+
+
+ }
+
+ final Function<Vote, UserAccount> voteToUserAccount = new Function<Vote, UserAccount>() {
+ @Override
+ public UserAccount apply(Vote input) {
+ PollAccount pollAccount = input.getPollAccount();
+ return pollAccount == null ? null : pollAccount.getUserAccount();
+ }
+ };
+
+}
\ No newline at end of file
Property changes on: trunk/pollen-services/src/main/java/org/chorem/pollen/entities/migration/PollenMigrationCallbackV1_4_5_2.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/pollen-services/src/main/resources/META-INF/services/org.nuiton.topia.migration.TopiaMigrationCallbackByClassNG$MigrationCallBackForVersion
===================================================================
--- trunk/pollen-services/src/main/resources/META-INF/services/org.nuiton.topia.migration.TopiaMigrationCallbackByClassNG$MigrationCallBackForVersion 2012-09-05 17:49:33 UTC (rev 3688)
+++ trunk/pollen-services/src/main/resources/META-INF/services/org.nuiton.topia.migration.TopiaMigrationCallbackByClassNG$MigrationCallBackForVersion 2012-09-05 20:09:16 UTC (rev 3689)
@@ -3,4 +3,5 @@
org.chorem.pollen.entities.migration.PollenMigrationCallbackV1_3
org.chorem.pollen.entities.migration.PollenMigrationCallbackV1_3_1
org.chorem.pollen.entities.migration.PollenMigrationCallbackV1_4
-org.chorem.pollen.entities.migration.PollenMigrationCallbackV1_4_5
\ No newline at end of file
+org.chorem.pollen.entities.migration.PollenMigrationCallbackV1_4_5
+org.chorem.pollen.entities.migration.PollenMigrationCallbackV1_4_5_2
\ No newline at end of file
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2012-09-05 17:49:33 UTC (rev 3688)
+++ trunk/pom.xml 2012-09-05 20:09:16 UTC (rev 3689)
@@ -153,7 +153,7 @@
<projectId>pollen</projectId>
<!-- customized versions -->
- <topiaVersion>2.6.13</topiaVersion>
+ <topiaVersion>2.6.14-SNAPSHOT</topiaVersion>
<eugenePluginVersion>2.5</eugenePluginVersion>
<nuitonI18nVersion>2.5</nuitonI18nVersion>
1
0
r3688 - trunk/pollen-persistence/src/main/java/org/chorem/pollen/business/persistence
by tchemit@users.chorem.org 05 Sep '12
by tchemit@users.chorem.org 05 Sep '12
05 Sep '12
Author: tchemit
Date: 2012-09-05 19:49:33 +0200 (Wed, 05 Sep 2012)
New Revision: 3688
Url: http://chorem.org/repositories/revision/pollen/3688
Log:
refs #804: Can not acces no more to poll where I was admin and voter (for the moment warn when finding more than one voter for a poll...)
Modified:
trunk/pollen-persistence/src/main/java/org/chorem/pollen/business/persistence/PollAccountDAOImpl.java
Modified: trunk/pollen-persistence/src/main/java/org/chorem/pollen/business/persistence/PollAccountDAOImpl.java
===================================================================
--- trunk/pollen-persistence/src/main/java/org/chorem/pollen/business/persistence/PollAccountDAOImpl.java 2012-09-05 17:48:19 UTC (rev 3687)
+++ trunk/pollen-persistence/src/main/java/org/chorem/pollen/business/persistence/PollAccountDAOImpl.java 2012-09-05 17:49:33 UTC (rev 3688)
@@ -24,7 +24,10 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
+import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.nuiton.topia.TopiaException;
import org.nuiton.topia.persistence.TopiaFilterPagerUtil;
@@ -32,6 +35,9 @@
public class PollAccountDAOImpl<E extends PollAccount> extends PollAccountDAOAbstract<E> {
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(PollAccountDAOImpl.class);
+
/**
* Get a restricted poll account for a given poll (by his {@link Poll#getPollId()})
* using the {@link PollAccount#getAccountId()} of the pollAccount
@@ -143,7 +149,21 @@
hql += "e.userAccount = :user";
}
- E result = findByQuery(hql, params.toArray());
+ List<E> allVoter = findAllByQuery(hql, params.toArray());
+ E result = null;
+ if (CollectionUtils.isNotEmpty(allVoter)) {
+ if (allVoter.size() > 1) {
+ if (log.isWarnEnabled()) {
+ log.warn("Multiple voter found for poll " + pollId);
+ for (E e : allVoter) {
+ if (log.isWarnEnabled()) {
+ log.warn("accountId: " + e.getAccountId());
+ }
+ }
+ }
+ }
+ result = allVoter.get(0);
+ }
return result;
}
@@ -156,12 +176,6 @@
int records = favoriteList.sizePollAccount();
pager.setRecords(records);
-// TopiaQuery query = createQuery("e");
-// TopiaFilterPagerUtil.addPagerToQuery(query, pager);
-// query.addWhere("e." + PollAccount.PROPERTY_PERSON_LIST, TopiaQuery.Op.EQ, favoriteList);
-//
-// List<E> result = findAllByQuery(query);
-
String hql = "FROM PollAccountImpl e WHERE e.personList = :owner";
List<E> result = findAllByQueryAndPager(hql, pager, "owner", favoriteList);
@@ -174,21 +188,6 @@
Preconditions.checkNotNull(personListToUpdate);
Preconditions.checkNotNull(pollAccount);
-// // check there is other poll account in this list with same id
-// TopiaQuery query = createQuery("e");
-// query.addWhere("e." + PollAccount.PROPERTY_PERSON_LIST, TopiaQuery.Op.EQ, personListToUpdate);
-// query.addWhere("e." + PollAccount.PROPERTY_EMAIL, TopiaQuery.Op.EQ, pollAccount.getEmail());
-//
-// String pollAccountId = pollAccount.getTopiaId();
-// if (pollAccountId == null) {
-// // no check necessary, it's a new pollAccount
-//
-// } else {
-// query.addWhere("e." + PollAccount.TOPIA_ID, TopiaQuery.Op.NEQ, pollAccountId);
-// }
-//
-// boolean result = existByQuery(query);
-
String hql = "FROM PollAccountImpl e WHERE " +
"e.personList = :person AND " +
"e.email = :email";
1
0
05 Sep '12
Author: tchemit
Date: 2012-09-05 19:48:19 +0200 (Wed, 05 Sep 2012)
New Revision: 3687
Url: http://chorem.org/repositories/revision/pollen/3687
Log:
pass to version 1.4.5.2
Modified:
trunk/pollen-persistence/pom.xml
trunk/pollen-services/pom.xml
trunk/pollen-ui-struts2/pom.xml
trunk/pollen-votecounting-api/pom.xml
trunk/pollen-votecounting-strategy-borda/pom.xml
trunk/pollen-votecounting-strategy-condorcet/pom.xml
trunk/pollen-votecounting-strategy-coombs/pom.xml
trunk/pollen-votecounting-strategy-instant-runoff/pom.xml
trunk/pollen-votecounting-strategy-normal/pom.xml
trunk/pollen-votecounting-strategy-number/pom.xml
trunk/pollen-votecounting-strategy-percentage/pom.xml
trunk/pollen-votecounting-strategy/pom.xml
trunk/pollen-votecounting/pom.xml
trunk/pom.xml
Modified: trunk/pollen-persistence/pom.xml
===================================================================
--- trunk/pollen-persistence/pom.xml 2012-09-05 16:01:25 UTC (rev 3686)
+++ trunk/pollen-persistence/pom.xml 2012-09-05 17:48:19 UTC (rev 3687)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.chorem</groupId>
<artifactId>pollen</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.4.5.2-SNAPSHOT</version>
</parent>
<groupId>org.chorem.pollen</groupId>
Modified: trunk/pollen-services/pom.xml
===================================================================
--- trunk/pollen-services/pom.xml 2012-09-05 16:01:25 UTC (rev 3686)
+++ trunk/pollen-services/pom.xml 2012-09-05 17:48:19 UTC (rev 3687)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.chorem</groupId>
<artifactId>pollen</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.4.5.2-SNAPSHOT</version>
</parent>
<groupId>org.chorem.pollen</groupId>
Modified: trunk/pollen-ui-struts2/pom.xml
===================================================================
--- trunk/pollen-ui-struts2/pom.xml 2012-09-05 16:01:25 UTC (rev 3686)
+++ trunk/pollen-ui-struts2/pom.xml 2012-09-05 17:48:19 UTC (rev 3687)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.chorem</groupId>
<artifactId>pollen</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.4.5.2-SNAPSHOT</version>
</parent>
<groupId>org.chorem.pollen</groupId>
Modified: trunk/pollen-votecounting/pom.xml
===================================================================
--- trunk/pollen-votecounting/pom.xml 2012-09-05 16:01:25 UTC (rev 3686)
+++ trunk/pollen-votecounting/pom.xml 2012-09-05 17:48:19 UTC (rev 3687)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.chorem</groupId>
<artifactId>pollen</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.4.5.2-SNAPSHOT</version>
</parent>
<groupId>org.chorem.pollen</groupId>
Modified: trunk/pollen-votecounting-api/pom.xml
===================================================================
--- trunk/pollen-votecounting-api/pom.xml 2012-09-05 16:01:25 UTC (rev 3686)
+++ trunk/pollen-votecounting-api/pom.xml 2012-09-05 17:48:19 UTC (rev 3687)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.chorem</groupId>
<artifactId>pollen</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.4.5.2-SNAPSHOT</version>
</parent>
<groupId>org.chorem.pollen</groupId>
Modified: trunk/pollen-votecounting-strategy/pom.xml
===================================================================
--- trunk/pollen-votecounting-strategy/pom.xml 2012-09-05 16:01:25 UTC (rev 3686)
+++ trunk/pollen-votecounting-strategy/pom.xml 2012-09-05 17:48:19 UTC (rev 3687)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.chorem</groupId>
<artifactId>pollen</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.4.5.2-SNAPSHOT</version>
</parent>
<groupId>org.chorem.pollen</groupId>
Modified: trunk/pollen-votecounting-strategy-borda/pom.xml
===================================================================
--- trunk/pollen-votecounting-strategy-borda/pom.xml 2012-09-05 16:01:25 UTC (rev 3686)
+++ trunk/pollen-votecounting-strategy-borda/pom.xml 2012-09-05 17:48:19 UTC (rev 3687)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.chorem</groupId>
<artifactId>pollen</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.4.5.2-SNAPSHOT</version>
</parent>
<groupId>org.chorem.pollen</groupId>
Modified: trunk/pollen-votecounting-strategy-condorcet/pom.xml
===================================================================
--- trunk/pollen-votecounting-strategy-condorcet/pom.xml 2012-09-05 16:01:25 UTC (rev 3686)
+++ trunk/pollen-votecounting-strategy-condorcet/pom.xml 2012-09-05 17:48:19 UTC (rev 3687)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.chorem</groupId>
<artifactId>pollen</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.4.5.2-SNAPSHOT</version>
</parent>
<groupId>org.chorem.pollen</groupId>
Modified: trunk/pollen-votecounting-strategy-coombs/pom.xml
===================================================================
--- trunk/pollen-votecounting-strategy-coombs/pom.xml 2012-09-05 16:01:25 UTC (rev 3686)
+++ trunk/pollen-votecounting-strategy-coombs/pom.xml 2012-09-05 17:48:19 UTC (rev 3687)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.chorem</groupId>
<artifactId>pollen</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.4.5.2-SNAPSHOT</version>
</parent>
<groupId>org.chorem.pollen</groupId>
Modified: trunk/pollen-votecounting-strategy-instant-runoff/pom.xml
===================================================================
--- trunk/pollen-votecounting-strategy-instant-runoff/pom.xml 2012-09-05 16:01:25 UTC (rev 3686)
+++ trunk/pollen-votecounting-strategy-instant-runoff/pom.xml 2012-09-05 17:48:19 UTC (rev 3687)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.chorem</groupId>
<artifactId>pollen</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.4.5.2-SNAPSHOT</version>
</parent>
<groupId>org.chorem.pollen</groupId>
Modified: trunk/pollen-votecounting-strategy-normal/pom.xml
===================================================================
--- trunk/pollen-votecounting-strategy-normal/pom.xml 2012-09-05 16:01:25 UTC (rev 3686)
+++ trunk/pollen-votecounting-strategy-normal/pom.xml 2012-09-05 17:48:19 UTC (rev 3687)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.chorem</groupId>
<artifactId>pollen</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.4.5.2-SNAPSHOT</version>
</parent>
<groupId>org.chorem.pollen</groupId>
Modified: trunk/pollen-votecounting-strategy-number/pom.xml
===================================================================
--- trunk/pollen-votecounting-strategy-number/pom.xml 2012-09-05 16:01:25 UTC (rev 3686)
+++ trunk/pollen-votecounting-strategy-number/pom.xml 2012-09-05 17:48:19 UTC (rev 3687)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.chorem</groupId>
<artifactId>pollen</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.4.5.2-SNAPSHOT</version>
</parent>
<groupId>org.chorem.pollen</groupId>
Modified: trunk/pollen-votecounting-strategy-percentage/pom.xml
===================================================================
--- trunk/pollen-votecounting-strategy-percentage/pom.xml 2012-09-05 16:01:25 UTC (rev 3686)
+++ trunk/pollen-votecounting-strategy-percentage/pom.xml 2012-09-05 17:48:19 UTC (rev 3687)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.chorem</groupId>
<artifactId>pollen</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.4.5.2-SNAPSHOT</version>
</parent>
<groupId>org.chorem.pollen</groupId>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2012-09-05 16:01:25 UTC (rev 3686)
+++ trunk/pom.xml 2012-09-05 17:48:19 UTC (rev 3687)
@@ -15,7 +15,7 @@
<groupId>org.chorem</groupId>
<artifactId>pollen</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.4.5.2-SNAPSHOT</version>
<modules>
<module>pollen-votecounting-api</module>
1
0
05 Sep '12
Author: sletellier
Date: 2012-09-05 18:01:25 +0200 (Wed, 05 Sep 2012)
New Revision: 3686
Url: http://chorem.org/repositories/revision/pollen/3686
Log:
Init facebook and twitter registration
Added:
branches/pollen-1.5-SOCIAL/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/user/social/
branches/pollen-1.5-SOCIAL/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/user/social/FacebookCallback.java
branches/pollen-1.5-SOCIAL/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/user/social/LoginWithFacebook.java
branches/pollen-1.5-SOCIAL/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/user/social/LoginWithTwitter.java
branches/pollen-1.5-SOCIAL/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/user/social/TwitterCallback.java
Modified:
branches/pollen-1.5-SOCIAL/pollen-persistence/src/main/java/org/chorem/pollen/PollenConfiguration.java
branches/pollen-1.5-SOCIAL/pollen-persistence/src/main/java/org/chorem/pollen/PollenConfigurationOption.java
branches/pollen-1.5-SOCIAL/pollen-persistence/src/main/xmi/pollen.zargo
branches/pollen-1.5-SOCIAL/pollen-services/pom.xml
branches/pollen-1.5-SOCIAL/pollen-services/src/main/java/org/chorem/pollen/services/impl/UserService.java
branches/pollen-1.5-SOCIAL/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/PollenSession.java
branches/pollen-1.5-SOCIAL/pollen-ui-struts2/src/main/resources/config/struts-user.xml
branches/pollen-1.5-SOCIAL/pom.xml
Modified: branches/pollen-1.5-SOCIAL/pollen-persistence/src/main/java/org/chorem/pollen/PollenConfiguration.java
===================================================================
--- branches/pollen-1.5-SOCIAL/pollen-persistence/src/main/java/org/chorem/pollen/PollenConfiguration.java 2012-09-05 16:00:45 UTC (rev 3685)
+++ branches/pollen-1.5-SOCIAL/pollen-persistence/src/main/java/org/chorem/pollen/PollenConfiguration.java 2012-09-05 16:01:25 UTC (rev 3686)
@@ -213,6 +213,34 @@
return result;
}
+ public String getTwitterConsumerKey() {
+ return applicationConfig.getOption(PollenConfigurationOption.TWITTER_CONSUMER_KEY.key);
+ }
+
+ public String getTwitterConsumerSecret() {
+ return applicationConfig.getOption(PollenConfigurationOption.TWITTER_CONSUMER_SECRET.key);
+ }
+
+ public String getFacebookScope() {
+ return applicationConfig.getOption(PollenConfigurationOption.FACEBOOK_SCOPE.key);
+ }
+
+ public String getFacebookSecret() {
+ return applicationConfig.getOption(PollenConfigurationOption.FACEBOOK_SECRET.key);
+ }
+
+ public String getFacebookApplicationId() {
+ return applicationConfig.getOption(PollenConfigurationOption.FACEBOOK_APPLICATION_ID.key);
+ }
+
+ public String getFacebookCallBackURL() {
+ return applicationConfig.getOption(PollenConfigurationOption.FACEBOOK_CALLBACK_URL.key);
+ }
+
+ public String getTwitterCallBackURL() {
+ return applicationConfig.getOption(PollenConfigurationOption.TWITTER_CALLBACK_URL.key);
+ }
+
public String getCharset() {
String result = applicationConfig.getOption(
PollenConfigurationOption.CHARSET.key);
Modified: branches/pollen-1.5-SOCIAL/pollen-persistence/src/main/java/org/chorem/pollen/PollenConfigurationOption.java
===================================================================
--- branches/pollen-1.5-SOCIAL/pollen-persistence/src/main/java/org/chorem/pollen/PollenConfigurationOption.java 2012-09-05 16:00:45 UTC (rev 3685)
+++ branches/pollen-1.5-SOCIAL/pollen-persistence/src/main/java/org/chorem/pollen/PollenConfigurationOption.java 2012-09-05 16:01:25 UTC (rev 3686)
@@ -123,8 +123,20 @@
DB_LOGIN("hibernate.connection.username", n_("pollen.configuration.dbLogin"), "sa", String.class),
/** passowrd to db. */
- DB_PASSWORD("hibernate.connection.password", n_("pollen.configuration.dbPassword"), "", String.class);
+ DB_PASSWORD("hibernate.connection.password", n_("pollen.configuration.dbPassword"), "", String.class),
+
+ // Social networks: Twitter
+ TWITTER_CONSUMER_KEY("pollen.social.twitter.consumer.key", "consumer key for twitter", null, String.class),
+ TWITTER_CONSUMER_SECRET("pollen.social.twitter.consumer.secret", "Secret consumer key for twitter", null, String.class),
+ TWITTER_CALLBACK_URL("pollen.social.twitter.callback.url", "Call back url for twitter", null, String.class),
+
+ // Social networks: Facebook
+ FACEBOOK_SCOPE("pollen.social.facebook.scope", "Scope for facebook", null, String.class),
+ FACEBOOK_SECRET("pollen.social.facebook.secret", "Secret for facebook", null, String.class),
+ FACEBOOK_APPLICATION_ID("pollen.social.facebook.application.id", "Application id for facebook", null, String.class),
+ FACEBOOK_CALLBACK_URL("pollen.social.facebook.callback.url", "Call back url for facebook", null, String.class);
+
/** Configuration key. */
protected final String key;
Modified: branches/pollen-1.5-SOCIAL/pollen-persistence/src/main/xmi/pollen.zargo
===================================================================
(Binary files differ)
Modified: branches/pollen-1.5-SOCIAL/pollen-services/pom.xml
===================================================================
--- branches/pollen-1.5-SOCIAL/pollen-services/pom.xml 2012-09-05 16:00:45 UTC (rev 3685)
+++ branches/pollen-1.5-SOCIAL/pollen-services/pom.xml 2012-09-05 16:01:25 UTC (rev 3686)
@@ -104,6 +104,23 @@
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
+
+ <!-- Spring Social -->
+ <dependency>
+ <groupId>org.springframework.social</groupId>
+ <artifactId>spring-social-core</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework.social</groupId>
+ <artifactId>spring-social-facebook</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework.social</groupId>
+ <artifactId>spring-social-twitter</artifactId>
+ </dependency>
+
</dependencies>
<!-- ************************************************************* -->
Modified: branches/pollen-1.5-SOCIAL/pollen-services/src/main/java/org/chorem/pollen/services/impl/UserService.java
===================================================================
--- branches/pollen-1.5-SOCIAL/pollen-services/src/main/java/org/chorem/pollen/services/impl/UserService.java 2012-09-05 16:00:45 UTC (rev 3685)
+++ branches/pollen-1.5-SOCIAL/pollen-services/src/main/java/org/chorem/pollen/services/impl/UserService.java 2012-09-05 16:01:25 UTC (rev 3686)
@@ -23,14 +23,21 @@
package org.chorem.pollen.services.impl;
import com.google.common.base.Preconditions;
+import java.util.List;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.chorem.pollen.PollenConfiguration;
import org.chorem.pollen.PollenTechnicalException;
+import org.chorem.pollen.business.persistence.TwitterCredentials;
+import org.chorem.pollen.business.persistence.TwitterCredentialsDAO;
import org.chorem.pollen.business.persistence.UserAccount;
import org.chorem.pollen.business.persistence.UserAccountDAO;
+import org.chorem.pollen.common.FacebookCredentials;
+import org.chorem.pollen.common.FacebookCredentialsDAO;
import org.chorem.pollen.entities.PollenBinderHelper;
import org.chorem.pollen.services.PollenServiceSupport;
import org.chorem.pollen.services.exceptions.InvalidEmailException;
@@ -43,9 +50,21 @@
import org.nuiton.topia.persistence.util.TopiaEntityBinder;
import org.nuiton.util.StringUtil;
import org.nuiton.util.beans.Binder;
+import org.springframework.social.connect.Connection;
+import org.springframework.social.connect.UserProfile;
+import org.springframework.social.facebook.api.Facebook;
+import org.springframework.social.facebook.connect.FacebookConnectionFactory;
+import org.springframework.social.oauth1.AuthorizedRequestToken;
+import org.springframework.social.oauth1.OAuth1Operations;
+import org.springframework.social.oauth1.OAuth1Parameters;
+import org.springframework.social.oauth1.OAuthToken;
+import org.springframework.social.oauth2.AccessGrant;
+import org.springframework.social.oauth2.GrantType;
+import org.springframework.social.oauth2.OAuth2Operations;
+import org.springframework.social.oauth2.OAuth2Parameters;
+import org.springframework.social.twitter.api.Twitter;
+import org.springframework.social.twitter.connect.TwitterConnectionFactory;
-import java.util.List;
-
import static org.nuiton.i18n.I18n._;
public class UserService extends PollenServiceSupport {
@@ -79,6 +98,168 @@
}
}
+ public ImmutablePair<OAuthToken, String> connectWithTwitter() {
+
+ PollenConfiguration config = getConfiguration();
+
+ TwitterConnectionFactory connectionFactory =
+ new TwitterConnectionFactory(config.getTwitterConsumerKey(), config.getTwitterConsumerSecret());
+
+ OAuth1Operations oauthOperations = connectionFactory.getOAuthOperations();
+ OAuthToken requestToken = oauthOperations.fetchRequestToken(config.getTwitterCallBackURL(), null);
+
+ String authorizeUrl = oauthOperations.buildAuthorizeUrl(requestToken.getValue(), OAuth1Parameters.NONE);
+
+ return ImmutablePair.of(requestToken, authorizeUrl);
+ }
+
+ public String connectWithFacebook() {
+
+ PollenConfiguration config = getConfiguration();
+
+ FacebookConnectionFactory connectionFactory =
+ new FacebookConnectionFactory(config.getFacebookApplicationId(), config.getFacebookSecret());
+
+ OAuth2Operations oauthOperations = connectionFactory.getOAuthOperations();
+ OAuth2Parameters params = new OAuth2Parameters();
+ params.setRedirectUri(config.getFacebookCallBackURL());
+ params.setScope(config.getFacebookScope());
+ String authorizeUrl = oauthOperations.buildAuthorizeUrl(GrantType.AUTHORIZATION_CODE, params);
+
+ return authorizeUrl;
+ }
+
+ public UserAccount twitterCallBack(OAuthToken twitterRequestToken, String oauthVerifier) {
+
+ PollenConfiguration config = getConfiguration();
+
+ TwitterConnectionFactory connectionFactory =
+ new TwitterConnectionFactory(config.getTwitterConsumerKey(), config.getTwitterConsumerSecret());
+
+ OAuth1Operations oauthOperations = connectionFactory.getOAuthOperations();
+
+ OAuthToken accessToken = oauthOperations.exchangeForAccessToken(
+ new AuthorizedRequestToken(twitterRequestToken, oauthVerifier), null);
+
+ String twitterAccessTokenValue = accessToken.getValue();
+ String twitterAccessTokenSecret = accessToken.getSecret();
+
+ // get twitter connection
+ Connection<Twitter> twitterConnection = getTwitterConnection(twitterAccessTokenValue, twitterAccessTokenSecret);
+
+ // get user if exist
+ long twitterId = twitterConnection.getApi().userOperations().getUserProfile().getId();
+
+ UserAccountDAO userAccountDAO = getDAO(UserAccount.class);
+ TwitterCredentialsDAO twitterCredentialsDAO = getDAO(TwitterCredentials.class);
+ try {
+
+ // account found
+// UserAccount account = userAccountDAO.findByTwitterId(twitterId)
+ UserAccount account = null;
+
+ if (account == null) {
+ account = userAccountDAO.create();
+ }
+
+ // convert profile to pollen account
+ account = updateAccountWithSocialProfile(account, twitterConnection.fetchUserProfile());
+
+ // create twitter credentials
+ TwitterCredentials twitterCredentials = twitterCredentialsDAO.create(
+ TwitterCredentials.PROPERTY_TWITTER_ID, twitterId,
+ TwitterCredentials.PROPERTY_TWITTER_ACCESS_TOKEN, twitterAccessTokenValue,
+ TwitterCredentials.PROPERTY_TWITTER_ACCESS_TOKEN_SECRET, twitterAccessTokenSecret);
+
+ account.setTwitterCredentials(twitterCredentials);
+
+ return account;
+ } catch (TopiaException eee) {
+ throw new PollenTechnicalException(eee);
+ }
+ }
+
+ public UserAccount facebookCallBack(String facebookCode) {
+
+ // get facebook connection
+ Connection<Facebook> facebookConnection = getFacebookConnection(facebookCode);
+
+ String facebookId = facebookConnection.getApi().userOperations().getUserProfile().getId();
+
+ UserAccountDAO userAccountDAO = getDAO(UserAccount.class);
+ FacebookCredentialsDAO facebookCredentialsDAO = getDAO(FacebookCredentials.class);
+ try {
+
+ // account found
+// UserAccount account = userAccountDAO.findByFacebookId(twitterId)
+ UserAccount account = null;
+
+ if (account == null) {
+ account = userAccountDAO.create();
+ }
+
+ // convert profile to pollen account
+ account = updateAccountWithSocialProfile(account, facebookConnection.fetchUserProfile());
+
+ // create facebook credentials
+ FacebookCredentials facebookCredentials = facebookCredentialsDAO.create(
+ FacebookCredentials.PROPERTY_FACEBOOK_ID, facebookId,
+ FacebookCredentials.PROPERTY_FACEBOOK_CODE, facebookCode);
+
+ account.setFacebookCredentials(facebookCredentials);
+
+ return account;
+ } catch (TopiaException eee) {
+ throw new PollenTechnicalException(eee);
+ }
+ }
+
+ protected Connection<Twitter> getTwitterConnection(UserAccount account) {
+ TwitterCredentials twitterCredentials = account.getTwitterCredentials();
+ return getTwitterConnection(twitterCredentials.getTwitterAccessToken(), twitterCredentials.getTwitterAccessTokenSecret());
+ }
+
+ protected Connection<Twitter> getTwitterConnection(String twitterAccessTokenValue, String twitterAccessTokenSecret) {
+
+ PollenConfiguration config = getConfiguration();
+
+ TwitterConnectionFactory connectionFactory =
+ new TwitterConnectionFactory(config.getTwitterConsumerKey(), config.getTwitterConsumerSecret());
+
+ // retrieve access token
+ OAuthToken userAccessToken = new OAuthToken(twitterAccessTokenValue, twitterAccessTokenSecret);
+ Connection<Twitter> twitterConnection = connectionFactory.createConnection(userAccessToken);
+
+ return twitterConnection;
+ }
+
+ protected Connection<Facebook> getFacebookConnection(UserAccount account) {
+ return getFacebookConnection(account.getFacebookCredentials().getFacebookCode());
+ }
+
+ protected Connection<Facebook> getFacebookConnection(String facebookCode) {
+
+ PollenConfiguration config = getConfiguration();
+
+ // get facebook connection
+ FacebookConnectionFactory connectionFactory =
+ new FacebookConnectionFactory(config.getFacebookApplicationId(), config.getFacebookSecret());
+
+ OAuth2Operations oauthOperations = connectionFactory.getOAuthOperations();
+ AccessGrant accessGrant = oauthOperations.exchangeForAccess(facebookCode, config.getFacebookCallBackURL(), null);
+ Connection<Facebook> facebookConnection = connectionFactory.createConnection(accessGrant);
+
+ return facebookConnection;
+ }
+
+ protected UserAccount updateAccountWithSocialProfile(UserAccount account, UserProfile userProfile) {
+ account.setEmail(userProfile.getEmail());
+ account.setFirstName(userProfile.getFirstName());
+ account.setLastName(userProfile.getLastName());
+
+ return account;
+ }
+
public UserAccount createUser(UserAccount user,
boolean byAdmin) throws UserLoginAlreadyUsedException, UserEmailAlreadyUsedException {
@@ -343,5 +524,4 @@
destination.setEmail(StringUtils.lowerCase(source.getEmail()));
}
}
-
}
Modified: branches/pollen-1.5-SOCIAL/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/PollenSession.java
===================================================================
--- branches/pollen-1.5-SOCIAL/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/PollenSession.java 2012-09-05 16:00:45 UTC (rev 3685)
+++ branches/pollen-1.5-SOCIAL/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/PollenSession.java 2012-09-05 16:01:25 UTC (rev 3686)
@@ -25,17 +25,17 @@
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import com.opensymphony.xwork2.ActionContext;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.chorem.pollen.business.persistence.UserAccount;
-
-import javax.servlet.ServletRequest;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
import java.io.Serializable;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
+import javax.servlet.ServletRequest;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.chorem.pollen.business.persistence.UserAccount;
+import org.springframework.social.oauth1.OAuthToken;
/**
* User session to put in servlet session.
@@ -92,6 +92,8 @@
/** User loggued account (if anonymous, then userAccount is null). */
private UserAccount userAccount;
+ private OAuthToken twitterRequestToken;
+
/** To push dynamic data which should be consumed in a page scope. */
private Map<String, Serializable> dynamicData;
@@ -186,4 +188,12 @@
}
}
}
+
+ public void setTwitterRequestToken(OAuthToken twitterRequestToken) {
+ this.twitterRequestToken = twitterRequestToken;
+ }
+
+ public OAuthToken getTwitterRequestToken() {
+ return twitterRequestToken;
+ }
}
Added: branches/pollen-1.5-SOCIAL/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/user/social/FacebookCallback.java
===================================================================
--- branches/pollen-1.5-SOCIAL/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/user/social/FacebookCallback.java (rev 0)
+++ branches/pollen-1.5-SOCIAL/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/user/social/FacebookCallback.java 2012-09-05 16:01:25 UTC (rev 3686)
@@ -0,0 +1,55 @@
+package org.chorem.pollen.ui.actions.user.social;
+
+import org.chorem.pollen.business.persistence.UserAccount;
+import org.chorem.pollen.ui.actions.PollenActionSupport;
+
+/**
+ * @author Sylvain Letellier <sylvain.letellier(a)wiztivi.com>
+ */
+public class FacebookCallback extends PollenActionSupport {
+
+ private static final long serialVersionUID = 1L;
+
+ public static final String HOME = "home";
+
+ protected String redirectUrl;
+
+ protected String code;
+
+ public String getRedirectUrl() {
+ return redirectUrl;
+ }
+
+ public void setRedirectUrl(String redirectUrl) {
+ this.redirectUrl = redirectUrl;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ @Override
+ public String execute() throws Exception {
+
+ UserAccount userAccount = getUserService().facebookCallBack(code);
+ getPollenSession().setUserAccount(userAccount);
+ addFlashMessage(_("pollen.information.your.are.loggued"));
+
+ String result;
+ if (redirectUrl == null || redirectUrl.contains("/security")) {
+
+ // After security problem, redirect to home
+ result = HOME;
+
+ } else {
+
+ // Stay on the same page identified by redirectUrl
+ result = SUCCESS;
+ }
+ return result;
+ }
+}
\ No newline at end of file
Added: branches/pollen-1.5-SOCIAL/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/user/social/LoginWithFacebook.java
===================================================================
--- branches/pollen-1.5-SOCIAL/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/user/social/LoginWithFacebook.java (rev 0)
+++ branches/pollen-1.5-SOCIAL/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/user/social/LoginWithFacebook.java 2012-09-05 16:01:25 UTC (rev 3686)
@@ -0,0 +1,42 @@
+package org.chorem.pollen.ui.actions.user.social;
+
+import org.chorem.pollen.ui.actions.PollenActionSupport;
+
+/**
+ * @author Sylvain Letellier <sylvain.letellier(a)wiztivi.com>
+ */
+public class LoginWithFacebook extends PollenActionSupport {
+
+ private static final long serialVersionUID = 1L;
+
+ public static final String HOME = "home";
+
+ protected String redirectUrl;
+
+ public String getRedirectUrl() {
+ return redirectUrl;
+ }
+
+ public void setRedirectUrl(String redirectUrl) {
+ this.redirectUrl = redirectUrl;
+ }
+
+ @Override
+ public String execute() throws Exception {
+
+ redirectUrl = getUserService().connectWithFacebook();
+
+ String result;
+ if (redirectUrl == null || redirectUrl.contains("/security")) {
+
+ // After security problem, redirect to home
+ result = HOME;
+
+ } else {
+
+ // Stay on the same page identified by redirectUrl
+ result = SUCCESS;
+ }
+ return result;
+ }
+}
\ No newline at end of file
Added: branches/pollen-1.5-SOCIAL/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/user/social/LoginWithTwitter.java
===================================================================
--- branches/pollen-1.5-SOCIAL/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/user/social/LoginWithTwitter.java (rev 0)
+++ branches/pollen-1.5-SOCIAL/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/user/social/LoginWithTwitter.java 2012-09-05 16:01:25 UTC (rev 3686)
@@ -0,0 +1,50 @@
+package org.chorem.pollen.ui.actions.user.social;
+
+import org.apache.commons.lang3.tuple.ImmutablePair;
+import org.chorem.pollen.ui.actions.PollenActionSupport;
+import org.springframework.social.oauth1.OAuthToken;
+
+/**
+ * @author Sylvain Letellier <sylvain.letellier(a)wiztivi.com>
+ */
+public class LoginWithTwitter extends PollenActionSupport {
+
+ private static final long serialVersionUID = 1L;
+
+ public static final String HOME = "home";
+
+ protected String redirectUrl;
+
+ public String getRedirectUrl() {
+ return redirectUrl;
+ }
+
+ public void setRedirectUrl(String redirectUrl) {
+ this.redirectUrl = redirectUrl;
+ }
+
+ @Override
+ public String execute() throws Exception {
+
+ ImmutablePair<OAuthToken, String> tokenAndRedirectUrl = getUserService().connectWithTwitter();
+
+ // keep twitter token in session
+ getPollenSession().setTwitterRequestToken(tokenAndRedirectUrl.getLeft());
+
+ // redirect to twitter login page
+ this.redirectUrl = tokenAndRedirectUrl.getRight();
+
+ String result;
+ if (redirectUrl == null || redirectUrl.contains("/security")) {
+
+ // After security problem, redirect to home
+ result = HOME;
+
+ } else {
+
+ // Stay on the same page identified by redirectUrl
+ result = SUCCESS;
+ }
+ return result;
+ }
+}
\ No newline at end of file
Added: branches/pollen-1.5-SOCIAL/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/user/social/TwitterCallback.java
===================================================================
--- branches/pollen-1.5-SOCIAL/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/user/social/TwitterCallback.java (rev 0)
+++ branches/pollen-1.5-SOCIAL/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/user/social/TwitterCallback.java 2012-09-05 16:01:25 UTC (rev 3686)
@@ -0,0 +1,64 @@
+package org.chorem.pollen.ui.actions.user.social;
+
+import org.chorem.pollen.business.persistence.UserAccount;
+import org.chorem.pollen.ui.actions.PollenActionSupport;
+
+/**
+ * @author Sylvain Letellier <sylvain.letellier(a)wiztivi.com>
+ */
+public class TwitterCallback extends PollenActionSupport {
+
+ private static final long serialVersionUID = 1L;
+
+ public static final String HOME = "home";
+
+ protected String redirectUrl;
+
+ protected String oauthToken;
+ protected String oauthVerifier;
+
+ public String getRedirectUrl() {
+ return redirectUrl;
+ }
+
+ public void setRedirectUrl(String redirectUrl) {
+ this.redirectUrl = redirectUrl;
+ }
+
+ public String getOauthToken() {
+ return oauthToken;
+ }
+
+ public void setOauthToken(String oauthToken) {
+ this.oauthToken = oauthToken;
+ }
+
+ public String getOauthVerifier() {
+ return oauthVerifier;
+ }
+
+ public void setOauthVerifier(String oauthVerifier) {
+ this.oauthVerifier = oauthVerifier;
+ }
+
+ @Override
+ public String execute() throws Exception {
+
+ UserAccount userAccount = getUserService().twitterCallBack(getPollenSession().getTwitterRequestToken(), oauthVerifier);
+ getPollenSession().setUserAccount(userAccount);
+ addFlashMessage(_("pollen.information.your.are.loggued"));
+
+ String result;
+ if (redirectUrl == null || redirectUrl.contains("/security")) {
+
+ // After security problem, redirect to home
+ result = HOME;
+
+ } else {
+
+ // Stay on the same page identified by redirectUrl
+ result = SUCCESS;
+ }
+ return result;
+ }
+}
\ No newline at end of file
Modified: branches/pollen-1.5-SOCIAL/pollen-ui-struts2/src/main/resources/config/struts-user.xml
===================================================================
--- branches/pollen-1.5-SOCIAL/pollen-ui-struts2/src/main/resources/config/struts-user.xml 2012-09-05 16:00:45 UTC (rev 3685)
+++ branches/pollen-1.5-SOCIAL/pollen-ui-struts2/src/main/resources/config/struts-user.xml 2012-09-05 16:01:25 UTC (rev 3686)
@@ -49,6 +49,30 @@
<result type="redirect2"/>
</action>
+ <!-- login with facebook -->
+ <action name="loginWithFacebook" class="org.chorem.pollen.ui.actions.user.social.LoginWithFacebook">
+ <result name="home" type="redirectToHome"/>
+ <result type="redirect2"/>
+ </action>
+
+ <!-- facebook callBack -->
+ <action name="facebookCallback" class="org.chorem.pollen.ui.actions.user.social.FacebookCallback">
+ <result name="home" type="redirectToHome"/>
+ <result type="redirect2"/>
+ </action>
+
+ <!-- login with twitter -->
+ <action name="loginWithTwitter" class="org.chorem.pollen.ui.actions.user.social.LoginWithTwitter">
+ <result name="home" type="redirectToHome"/>
+ <result type="redirect2"/>
+ </action>
+
+ <!-- twitter callback -->
+ <action name="twitterCallback" class="org.chorem.pollen.ui.actions.user.social.TwitterCallback">
+ <result name="home" type="redirectToHome"/>
+ <result type="redirect2"/>
+ </action>
+
<!-- register user -->
<action name="register" class="org.chorem.pollen.ui.actions.user.Register">
<result name="input">/WEB-INF/jsp/user/register.jsp</result>
Modified: branches/pollen-1.5-SOCIAL/pom.xml
===================================================================
--- branches/pollen-1.5-SOCIAL/pom.xml 2012-09-05 16:00:45 UTC (rev 3685)
+++ branches/pollen-1.5-SOCIAL/pom.xml 2012-09-05 16:01:25 UTC (rev 3686)
@@ -169,6 +169,9 @@
<hibernateVersion>3.6.10.Final</hibernateVersion>
<seleniumVersion>2.25.0</seleniumVersion>
<mockitoVersion>1.9.0</mockitoVersion>
+ <springSocialCoreVersion>1.0.2.RELEASE</springSocialCoreVersion>
+ <springSocialFacebookVersion>1.0.1.RELEASE</springSocialFacebookVersion>
+ <springSocialTwitterVersion>1.0.2.RELEASE</springSocialTwitterVersion>
<pollenI18nBundle>pollen-i18n</pollenI18nBundle>
<!-- license to use -->
@@ -346,6 +349,26 @@
</exclusions>
</dependency>
+ <!-- Spring social -->
+
+ <dependency>
+ <groupId>org.springframework.social</groupId>
+ <artifactId>spring-social-core</artifactId>
+ <version>${springSocialCoreVersion}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework.social</groupId>
+ <artifactId>spring-social-facebook</artifactId>
+ <version>${springSocialFacebookVersion}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework.social</groupId>
+ <artifactId>spring-social-twitter</artifactId>
+ <version>${springSocialTwitterVersion}</version>
+ </dependency>
+
<!-- Logging -->
<dependency>
1
0
Author: sletellier
Date: 2012-09-05 18:00:45 +0200 (Wed, 05 Sep 2012)
New Revision: 3685
Url: http://chorem.org/repositories/revision/pollen/3685
Log:
Creating branche to add social registration
Added:
branches/pollen-1.5-SOCIAL/
Property changes on: branches/pollen-1.5-SOCIAL
___________________________________________________________________
Added: svn:ignore
+ target
nbactions.xml
.settings
.classpath
.project
*.ipr
*.iws
*.iml
.idea
Added: svn:mergeinfo
+
1
0
05 Sep '12
Author: tchemit
Date: 2012-09-05 12:58:51 +0200 (Wed, 05 Sep 2012)
New Revision: 3684
Url: http://chorem.org/repositories/revision/pollen/3684
Log:
[maven-release-plugin] prepare for next development iteration
Modified:
trunk/pollen-persistence/pom.xml
trunk/pollen-services/pom.xml
trunk/pollen-ui-struts2/pom.xml
trunk/pollen-votecounting-api/pom.xml
trunk/pollen-votecounting-strategy-borda/pom.xml
trunk/pollen-votecounting-strategy-condorcet/pom.xml
trunk/pollen-votecounting-strategy-coombs/pom.xml
trunk/pollen-votecounting-strategy-instant-runoff/pom.xml
trunk/pollen-votecounting-strategy-normal/pom.xml
trunk/pollen-votecounting-strategy-number/pom.xml
trunk/pollen-votecounting-strategy-percentage/pom.xml
trunk/pollen-votecounting-strategy/pom.xml
trunk/pollen-votecounting/pom.xml
trunk/pom.xml
Modified: trunk/pollen-persistence/pom.xml
===================================================================
--- trunk/pollen-persistence/pom.xml 2012-09-05 10:58:48 UTC (rev 3683)
+++ trunk/pollen-persistence/pom.xml 2012-09-05 10:58:51 UTC (rev 3684)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.chorem</groupId>
<artifactId>pollen</artifactId>
- <version>1.4.5.1</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.chorem.pollen</groupId>
Modified: trunk/pollen-services/pom.xml
===================================================================
--- trunk/pollen-services/pom.xml 2012-09-05 10:58:48 UTC (rev 3683)
+++ trunk/pollen-services/pom.xml 2012-09-05 10:58:51 UTC (rev 3684)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.chorem</groupId>
<artifactId>pollen</artifactId>
- <version>1.4.5.1</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.chorem.pollen</groupId>
Modified: trunk/pollen-ui-struts2/pom.xml
===================================================================
--- trunk/pollen-ui-struts2/pom.xml 2012-09-05 10:58:48 UTC (rev 3683)
+++ trunk/pollen-ui-struts2/pom.xml 2012-09-05 10:58:51 UTC (rev 3684)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.chorem</groupId>
<artifactId>pollen</artifactId>
- <version>1.4.5.1</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.chorem.pollen</groupId>
Modified: trunk/pollen-votecounting/pom.xml
===================================================================
--- trunk/pollen-votecounting/pom.xml 2012-09-05 10:58:48 UTC (rev 3683)
+++ trunk/pollen-votecounting/pom.xml 2012-09-05 10:58:51 UTC (rev 3684)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.chorem</groupId>
<artifactId>pollen</artifactId>
- <version>1.4.5.1</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.chorem.pollen</groupId>
Modified: trunk/pollen-votecounting-api/pom.xml
===================================================================
--- trunk/pollen-votecounting-api/pom.xml 2012-09-05 10:58:48 UTC (rev 3683)
+++ trunk/pollen-votecounting-api/pom.xml 2012-09-05 10:58:51 UTC (rev 3684)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.chorem</groupId>
<artifactId>pollen</artifactId>
- <version>1.4.5.1</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.chorem.pollen</groupId>
Modified: trunk/pollen-votecounting-strategy/pom.xml
===================================================================
--- trunk/pollen-votecounting-strategy/pom.xml 2012-09-05 10:58:48 UTC (rev 3683)
+++ trunk/pollen-votecounting-strategy/pom.xml 2012-09-05 10:58:51 UTC (rev 3684)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.chorem</groupId>
<artifactId>pollen</artifactId>
- <version>1.4.5.1</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.chorem.pollen</groupId>
Modified: trunk/pollen-votecounting-strategy-borda/pom.xml
===================================================================
--- trunk/pollen-votecounting-strategy-borda/pom.xml 2012-09-05 10:58:48 UTC (rev 3683)
+++ trunk/pollen-votecounting-strategy-borda/pom.xml 2012-09-05 10:58:51 UTC (rev 3684)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.chorem</groupId>
<artifactId>pollen</artifactId>
- <version>1.4.5.1</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.chorem.pollen</groupId>
Modified: trunk/pollen-votecounting-strategy-condorcet/pom.xml
===================================================================
--- trunk/pollen-votecounting-strategy-condorcet/pom.xml 2012-09-05 10:58:48 UTC (rev 3683)
+++ trunk/pollen-votecounting-strategy-condorcet/pom.xml 2012-09-05 10:58:51 UTC (rev 3684)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.chorem</groupId>
<artifactId>pollen</artifactId>
- <version>1.4.5.1</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.chorem.pollen</groupId>
Modified: trunk/pollen-votecounting-strategy-coombs/pom.xml
===================================================================
--- trunk/pollen-votecounting-strategy-coombs/pom.xml 2012-09-05 10:58:48 UTC (rev 3683)
+++ trunk/pollen-votecounting-strategy-coombs/pom.xml 2012-09-05 10:58:51 UTC (rev 3684)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.chorem</groupId>
<artifactId>pollen</artifactId>
- <version>1.4.5.1</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.chorem.pollen</groupId>
Modified: trunk/pollen-votecounting-strategy-instant-runoff/pom.xml
===================================================================
--- trunk/pollen-votecounting-strategy-instant-runoff/pom.xml 2012-09-05 10:58:48 UTC (rev 3683)
+++ trunk/pollen-votecounting-strategy-instant-runoff/pom.xml 2012-09-05 10:58:51 UTC (rev 3684)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.chorem</groupId>
<artifactId>pollen</artifactId>
- <version>1.4.5.1</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.chorem.pollen</groupId>
Modified: trunk/pollen-votecounting-strategy-normal/pom.xml
===================================================================
--- trunk/pollen-votecounting-strategy-normal/pom.xml 2012-09-05 10:58:48 UTC (rev 3683)
+++ trunk/pollen-votecounting-strategy-normal/pom.xml 2012-09-05 10:58:51 UTC (rev 3684)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.chorem</groupId>
<artifactId>pollen</artifactId>
- <version>1.4.5.1</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.chorem.pollen</groupId>
Modified: trunk/pollen-votecounting-strategy-number/pom.xml
===================================================================
--- trunk/pollen-votecounting-strategy-number/pom.xml 2012-09-05 10:58:48 UTC (rev 3683)
+++ trunk/pollen-votecounting-strategy-number/pom.xml 2012-09-05 10:58:51 UTC (rev 3684)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.chorem</groupId>
<artifactId>pollen</artifactId>
- <version>1.4.5.1</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.chorem.pollen</groupId>
Modified: trunk/pollen-votecounting-strategy-percentage/pom.xml
===================================================================
--- trunk/pollen-votecounting-strategy-percentage/pom.xml 2012-09-05 10:58:48 UTC (rev 3683)
+++ trunk/pollen-votecounting-strategy-percentage/pom.xml 2012-09-05 10:58:51 UTC (rev 3684)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.chorem</groupId>
<artifactId>pollen</artifactId>
- <version>1.4.5.1</version>
+ <version>1.5-SNAPSHOT</version>
</parent>
<groupId>org.chorem.pollen</groupId>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2012-09-05 10:58:48 UTC (rev 3683)
+++ trunk/pom.xml 2012-09-05 10:58:51 UTC (rev 3684)
@@ -15,7 +15,7 @@
<groupId>org.chorem</groupId>
<artifactId>pollen</artifactId>
- <version>1.4.5.1</version>
+ <version>1.5-SNAPSHOT</version>
<modules>
<module>pollen-votecounting-api</module>
@@ -539,11 +539,11 @@
<!-- ************************************************************* -->
<scm>
- <connection>scm:svn:http://svn.chorem.org/svn/pollen/tags/pollen-1.4.5.1</connection>
+ <connection>scm:svn:http://svn.chorem.org/svn/pollen/trunk</connection>
<developerConnection>
- scm:svn:http://svn.chorem.org/svn/pollen/tags/pollen-1.4.5.1
+ scm:svn:http://svn.chorem.org/svn/pollen/trunk
</developerConnection>
- <url>http://www.chorem.org/repositories/browse/pollen/tags/pollen-1.4.5.1</url>
+ <url>http://www.chorem.org/repositories/browse/pollen/trunk</url>
</scm>
<distributionManagement>
1
0