r3007 - in trunk/pollen-ui/src/main: java/org/chorem/pollen/ui/base java/org/chorem/pollen/ui/components java/org/chorem/pollen/ui/data java/org/chorem/pollen/ui/pages/poll java/org/chorem/pollen/ui/services resources/i18n
Author: fdesbois Date: 2010-05-20 19:36:51 +0200 (Thu, 20 May 2010) New Revision: 3007 Url: http://chorem.org/repositories/revision/pollen/3007 Log: Create service to manage PollUri Added: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServicePollUri.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServicePollUriImpl.java Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/base/AbstractPollenPage.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Border.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/data/PollUri.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollForm.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollLinks.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/AppModule.java trunk/pollen-ui/src/main/resources/i18n/pollen-ui-fr_FR.properties Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/base/AbstractPollenPage.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/base/AbstractPollenPage.java 2010-05-20 16:50:54 UTC (rev 3006) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/base/AbstractPollenPage.java 2010-05-20 17:36:51 UTC (rev 3007) @@ -4,6 +4,7 @@ import org.apache.tapestry5.ioc.annotations.Inject; import org.chorem.pollen.entity.UserAccount; import org.chorem.pollen.ui.components.Border; +import org.chorem.pollen.ui.services.ServicePollUri; import org.nuiton.web.tapestry5.services.ServiceAuthentication; /** Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Border.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Border.java 2010-05-20 16:50:54 UTC (rev 3006) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/Border.java 2010-05-20 17:36:51 UTC (rev 3007) @@ -41,6 +41,7 @@ import org.chorem.pollen.ui.data.AddressBar; import org.chorem.pollen.ui.pages.Index; import org.chorem.pollen.ui.services.PollenManager; +import org.chorem.pollen.ui.services.ServicePollUri; import org.nuiton.web.tapestry5.components.FeedBack; import org.nuiton.web.tapestry5.services.ServiceAuthentication; import org.slf4j.Logger; @@ -58,6 +59,9 @@ @Inject private Logger logger; + @Inject + private ServicePollUri servicePollUri; + /** * Chaine définissant le style de la page */ @@ -178,6 +182,8 @@ } else { logo = "pollen" + pageLogo + "_en.png"; } + + servicePollUri.setContextPath(getServerPath()); } boolean afterRender() { Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/data/PollUri.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/data/PollUri.java 2010-05-20 16:50:54 UTC (rev 3006) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/data/PollUri.java 2010-05-20 17:36:51 UTC (rev 3007) @@ -20,7 +20,7 @@ protected String accountUid; - protected PollUri() { + public PollUri() { } @@ -32,23 +32,14 @@ // } // } - public static PollUri newUri(String stringUri) { - PollUri uri = new PollUri(); + public void setUri(String stringUri) { String[] tab = stringUri.split(SEPARATOR); - uri.setPollUid(tab[0]); + setPollUid(tab[0]); if (tab.length == 2) { - uri.setAccountUid(tab[1]); + setAccountUid(tab[1]); } - return uri; } - public static PollUri newUri(String accountUid, String pollUid) { - PollUri uri = new PollUri(); - uri.setAccountUid(accountUid); - uri.setPollUid(pollUid); - return uri; - } - public String getAccountUid() { return accountUid; } Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollForm.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollForm.java 2010-05-20 16:50:54 UTC (rev 3006) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollForm.java 2010-05-20 17:36:51 UTC (rev 3007) @@ -21,6 +21,8 @@ import org.apache.tapestry5.services.ComponentSource; import org.apache.tapestry5.services.PageRenderLinkSource; import org.chorem.pollen.PollenBusinessException; +import org.chorem.pollen.bean.PollenEmail; +import org.chorem.pollen.bean.PollenEmailImpl; import org.chorem.pollen.common.ChoiceType; import org.chorem.pollen.common.PollType; import org.chorem.pollen.common.VoteCountingType; @@ -31,6 +33,7 @@ import org.chorem.pollen.entity.PreventRule; import org.chorem.pollen.entity.PreventRuleImpl; import org.chorem.pollen.mail.PreventRuleManager; +import org.chorem.pollen.service.ServiceEmail; import org.chorem.pollen.service.ServicePoll; import org.chorem.pollen.ui.base.AbstractPollenPage; import org.chorem.pollen.ui.components.Border; @@ -42,6 +45,7 @@ import org.chorem.pollen.ui.models.PollFormModel; import org.chorem.pollen.ui.services.PollenManager; import org.chorem.pollen.ui.services.ServiceImage; +import org.chorem.pollen.ui.services.ServicePollUri; import org.nuiton.web.tapestry5.components.FeedBack; import org.slf4j.Logger; @@ -632,23 +636,49 @@ @InjectPage private PollLinks pollLinks; - public void prepareSuccessLinks(Poll newPoll) { - String creatorUid = newPoll.getCreator().getUid(); - String pollUid = newPoll.getUid(); - PollUri uri = PollUri.newUri(creatorUid, pollUid); -// successLink = linkSource.createPageRenderLinkWithContext( -// PollLinks.class, uri); - pollLinks.setPollUri(uri); - } + @Inject + private ServiceEmail serviceEmail; + @Inject + private ServicePollUri servicePollUri; + +// public void prepareSuccessLinks(Poll newPoll) { +// String creatorUid = newPoll.getCreator().getUid(); +// String pollUid = newPoll.getUid(); +// PollUri uri = servicePollUri.getNewPollUri(creatorUid, pollUid); +//// successLink = linkSource.createPageRenderLinkWithContext( +//// PollLinks.class, uri); +// pollLinks.setPollUri(uri); +// } + @Log Object onSuccess() { if (!edited) { PollAccount creator = getPoll().getCreator(); - PollUri uri = PollUri.newUri(creator.getUid(), getPoll().getUid()); + PollUri uri = servicePollUri.getNewPollUri(creator.getUid(), + getPoll().getUid()); + pollLinks.setPollUri(uri); pollLinks.addInfo("Sauvegarde OK !"); if (creator.getEmail() != null) { - pollLinks.addInfo("Vous avez recu un mail !"); + pollLinks.addInfo("Vous avez recu un mail !"); + PollenEmail email = new PollenEmailImpl(); + email.setTo(creator.getEmail()); + email.setSubject(messages.format( + "pollen.email.createPoll.subject", + getPoll().getTitle())); + email.setContent(messages.format( + "pollen.email.createPoll.content", + getPoll().getTitle(), + servicePollUri.getVoteUrl(uri), + servicePollUri.getModerateVoteUrl(uri), + servicePollUri.getPollUpdateUrl(uri))); + try { + serviceEmail.sendEmail(email); + } catch (PollenBusinessException eee) { + String message = manager.getErrorMessage(eee, messages, logger); + addError(message); + return mainZone; + } } if (getPoll().getPollType().isRestrictedOrGroup()) { pollLinks.addInfo("Les votants ont reçu un mail !"); Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollLinks.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollLinks.java 2010-05-20 16:50:54 UTC (rev 3006) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/pages/poll/PollLinks.java 2010-05-20 17:36:51 UTC (rev 3007) @@ -10,6 +10,7 @@ import org.chorem.pollen.ui.components.Border; import org.chorem.pollen.ui.data.AddressBar; import org.chorem.pollen.ui.data.PollUri; +import org.chorem.pollen.ui.services.ServicePollUri; import org.slf4j.Logger; /** @@ -45,7 +46,7 @@ } @Inject - private PageRenderLinkSource linkSource; + private ServicePollUri servicePollUri; private Poll poll; @@ -83,23 +84,16 @@ return poll; } - public Link getPollLink() { - Link link = linkSource.createPageRenderLinkWithContext( - PollForm.class, pollUri); - return link; - } - public Link getVoteLink() { - PollUri voteUri = PollUri.newUri(null, pollUri.getPollUid()); - Link link = linkSource.createPageRenderLinkWithContext( - VoteForPoll.class, voteUri); - return link; + return servicePollUri.getVoteLink(pollUri); } public Link getModerateVoteLink() { - Link link = linkSource.createPageRenderLinkWithContext( - VoteForPoll.class, pollUri); - return link; + return servicePollUri.getModerateVoteLink(pollUri); } + public Link getPollLink() { + return servicePollUri.getPollUpdateLink(pollUri); + } + } Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/AppModule.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/AppModule.java 2010-05-20 16:50:54 UTC (rev 3006) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/AppModule.java 2010-05-20 17:36:51 UTC (rev 3007) @@ -29,6 +29,7 @@ import org.apache.tapestry5.services.ApplicationStateCreator; import org.apache.tapestry5.services.ApplicationStateManager; import org.apache.tapestry5.services.ComponentRequestFilter; +import org.apache.tapestry5.services.PageRenderLinkSource; import org.apache.tapestry5.upload.services.UploadSymbols; import org.chorem.pollen.PollenContextImpl; import org.chorem.pollen.entity.UserAccount; @@ -97,6 +98,11 @@ return new ServiceImageImpl(manager.getContext()); } + public static ServicePollUri buildServicePollUri( + PageRenderLinkSource linkSource) { + return new ServicePollUriImpl(linkSource); + } + public ServiceAuthentication<UserAccount> buildServiceAuthentication( ApplicationStateManager stateManager) { ServiceAuthentication<UserAccount> instance = @@ -187,7 +193,9 @@ @Override public PollUri coerce(String input) { - return PollUri.newUri(input); + PollUri uri = new PollUri(); + uri.setUri(input); + return uri; } }; Added: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServicePollUri.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServicePollUri.java (rev 0) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServicePollUri.java 2010-05-20 17:36:51 UTC (rev 3007) @@ -0,0 +1,35 @@ +package org.chorem.pollen.ui.services; + +import org.apache.tapestry5.Link; +import org.apache.tapestry5.services.PageRenderLinkSource; +import org.chorem.pollen.ui.data.PollUri; +import org.chorem.pollen.ui.pages.poll.PollForm; +import org.chorem.pollen.ui.pages.poll.VoteForPoll; + +/** + * Created: 20 mai 2010 + * + * @author fdesbois <fdesbois@codelutin.com> + * @version $Id$ + */ +public interface ServicePollUri { + + Link getPollUpdateLink(PollUri uri); + + Link getVoteLink(PollUri uri); + + Link getModerateVoteLink(PollUri uri); + + String getPollUpdateUrl(PollUri uri); + + String getVoteUrl(PollUri uri); + + String getModerateVoteUrl(PollUri uri); + + PollUri getNewPollUri(String accountUid, String pollUid); + + PollUri getNewPollUri(String uri); + + void setContextPath(String contextPath); + +} Property changes on: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServicePollUri.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServicePollUriImpl.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServicePollUriImpl.java (rev 0) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServicePollUriImpl.java 2010-05-20 17:36:51 UTC (rev 3007) @@ -0,0 +1,82 @@ +package org.chorem.pollen.ui.services; + +import org.apache.tapestry5.Link; +import org.apache.tapestry5.services.PageRenderLinkSource; +import org.chorem.pollen.ui.data.PollUri; +import org.chorem.pollen.ui.pages.poll.PollForm; +import org.chorem.pollen.ui.pages.poll.VoteForPoll; + +/** + * Created: 20 mai 2010 + * + * @author fdesbois <fdesbois@codelutin.com> + * @version $Id$ + */ +public class ServicePollUriImpl implements ServicePollUri { + + private PageRenderLinkSource linkSource; + + private String contextPath; + + public ServicePollUriImpl(PageRenderLinkSource linkSource) { + this.linkSource = linkSource; + } + + @Override + public Link getPollUpdateLink(PollUri uri) { + Link link = linkSource.createPageRenderLinkWithContext( + PollForm.class, uri); + return link; + } + + @Override + public Link getVoteLink(PollUri uri) { + PollUri voteUri = getNewPollUri(null, uri.getPollUid()); + Link link = linkSource.createPageRenderLinkWithContext( + VoteForPoll.class, voteUri); + return link; + } + + @Override + public Link getModerateVoteLink(PollUri uri) { + Link link = linkSource.createPageRenderLinkWithContext( + VoteForPoll.class, uri); + return link; + } + + @Override + public String getPollUpdateUrl(PollUri uri) { + return contextPath + getPollUpdateLink(uri); + } + + @Override + public String getVoteUrl(PollUri uri) { + return contextPath + getVoteLink(uri); + } + + @Override + public String getModerateVoteUrl(PollUri uri) { + return contextPath + getModerateVoteLink(uri); + } + + @Override + public PollUri getNewPollUri(String accountUid, String pollUid) { + PollUri pollUri = new PollUri(); + pollUri.setAccountUid(accountUid); + pollUri.setPollUid(pollUid); + return pollUri; + } + + @Override + public PollUri getNewPollUri(String uri) { + PollUri pollUri = new PollUri(); + pollUri.setUri(uri); + return pollUri; + } + + @Override + public void setContextPath(String contextPath) { + this.contextPath = contextPath; + } + +} Property changes on: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/services/ServicePollUriImpl.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Modified: trunk/pollen-ui/src/main/resources/i18n/pollen-ui-fr_FR.properties =================================================================== --- trunk/pollen-ui/src/main/resources/i18n/pollen-ui-fr_FR.properties 2010-05-20 16:50:54 UTC (rev 3006) +++ trunk/pollen-ui/src/main/resources/i18n/pollen-ui-fr_FR.properties 2010-05-20 17:36:51 UTC (rev 3007) @@ -6,6 +6,8 @@ ############################ EMAIL ############################################# pollen.email.userRegister.subject=[Pollen] Confirmation de cr\u00e9ation du compte %s pollen.email.userRegister.content=Bienvenue %1$s. Vous venez de cr\u00e9er un compte sur l'application de sondage en ligne Pollen.\n\nIdentifiant : %2$s\nMot de passe : %3$s\n\nVous pouvez d\u00e8s maintenant g\u00e9rer vos sondages en vous identifiant sur le site : \n%4$s +pollen.email.createPoll.subject=[Pollen] Cr\u00e9ation d'un sondage (%1$s) +pollen.email.createPoll.content=Vous venez de cr\u00e9er le sondage "%1$s".\nVous pouvez y acc\u00e9der en suivant les liens ci-dessous.\n\nPage de vote : \n%2$s\nMod\u00e9ration des votes : \n%3$s\nPage de modification : \n%4$s ############################ GLOBAL ############################################ pollen.ui.tooltip.help=Aide @@ -33,7 +35,8 @@ pollen.ui.user.update.cancel=Annuler les changements pollen.ui.user.delete=Supprimer cet utilisateur pollen.ui.user.delete.confirmMessage=Etes-vous s\u00fbr de vouloir d\u00e9finitivement supprimer cet utilisateur ? -############################ USER ############################################## + +############################ LIST ############################################## pollen.ui.list.create.title=Cr\u00e9er une nouvelle liste pollen.ui.list.create.success=La liste %1$s a \u00e9t\u00e9 cr\u00e9\u00e9e avec succ\u00e8s. pollen.ui.list.create.weightHelp=Ce chiffre correspond au poids du vote de la personne, c'est \u00e0 dire le nombre de voix que poss\u00e8de la personne dans le sondage. @@ -58,7 +61,10 @@ pollen.ui.participant.weight-label=Poids pollen.ui.participant.add=Nouveau participant +############################ POLL ############################################## pollen.ui.poll.form.confirmlistChange=Des changements ont \u00e9t\u00e9 effectu\u00e9s sur la/les liste(s), un changement de restriction supprimera les modifications. Voulez-vous continuer ? + + pollen.ui.poll.links.pollName=%1$s par %2$s pollen.ui.poll.links.uriNotDefined=Page inaccessible sans identifiant du sondage dans l'url ! pollen.ui.poll.links.notAllowed=L'url est incorrect, vous n'\u00eates pas autoris\u00e9 \u00e0 acc\u00e9der aux liens du sondage.
participants (1)
-
fdesbois@users.chorem.org