Author: sletellier Date: 2011-07-15 14:06:48 +0200 (Fri, 15 Jul 2011) New Revision: 123 Url: http://chorem.org/repositories/revision/vradi/123 Log: - Update user preference on reponses Modified: trunk/vradi-web/src/main/java/org/chorem/vradi/InvitationResult.java trunk/vradi-web/src/main/java/org/chorem/vradi/actions/ShowInvitationAction.java trunk/vradi-web/src/main/java/org/chorem/vradi/actions/ShowInvitationResultAction.java Modified: trunk/vradi-web/src/main/java/org/chorem/vradi/InvitationResult.java =================================================================== --- trunk/vradi-web/src/main/java/org/chorem/vradi/InvitationResult.java 2011-07-15 11:54:49 UTC (rev 122) +++ trunk/vradi-web/src/main/java/org/chorem/vradi/InvitationResult.java 2011-07-15 12:06:48 UTC (rev 123) @@ -7,12 +7,51 @@ import static org.nuiton.i18n.I18n._; public enum InvitationResult { - ACCEPT("Accept", EmailType.INVITATION_ACCEPT, EmailType.INVITATION_CONFIRMATION_ACCEPT), + ACCEPT("Accept", EmailType.INVITATION_ACCEPT, EmailType.INVITATION_CONFIRMATION_ACCEPT) { + @Override + public VradiUser updateReceivedUserPreference(VradiUser user, VradiUser from) { + // Do nothing + return user; + } + + @Override + public VradiUser updateSendUserPreference(VradiUser user, VradiUser to) { + // Do nothing + return user; + } + }, + // Same mails are send for both - REJECT("Reject", EmailType.INVITATION_REJECT, EmailType.INVITATION_CONFIRMATION_REJECT), - NO_MORE("NoMoreReceived", "vradi.invitation.nomore", EmailType.INVITATION_REJECT, EmailType.INVITATION_CONFIRMATION_REJECT); + REJECT("Reject", EmailType.INVITATION_REJECT, EmailType.INVITATION_CONFIRMATION_REJECT) { + @Override + public VradiUser updateReceivedUserPreference(VradiUser user, VradiUser from) { + // Do nothing + return user; + } + + @Override + public VradiUser updateSendUserPreference(VradiUser user, VradiUser to) { + // Do nothing + return user; + } + }, + NO_MORE("NoMoreReceived", "vradi.invitation.nomore", EmailType.INVITATION_REJECT, EmailType.INVITATION_CONFIRMATION_REJECT) { + + @Override + public VradiUser updateReceivedUserPreference(VradiUser user, VradiUser from) { + user.addNoReceived(from.getWikittyId()); + return user; + } + + @Override + public VradiUser updateSendUserPreference(VradiUser user, VradiUser to) { + user.addNoSend(to.getWikittyId()); + return user; + } + }; + public static final String BUTTON_PREFIX = ".button"; public static final String CONTENT_PREFIX = ".content"; public static final String TITLE_PREFIX = ".content.title"; @@ -70,4 +109,8 @@ public boolean sendConfirmEmail(Collection<String> recipients, VradiUser user, String comment, String... args) { return confirmationEmailType.sendEmail(recipients, user, comment, args); } + + public abstract VradiUser updateReceivedUserPreference(VradiUser user, VradiUser from); + + public abstract VradiUser updateSendUserPreference(VradiUser user, VradiUser to); } \ No newline at end of file Modified: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/ShowInvitationAction.java =================================================================== --- trunk/vradi-web/src/main/java/org/chorem/vradi/actions/ShowInvitationAction.java 2011-07-15 11:54:49 UTC (rev 122) +++ trunk/vradi-web/src/main/java/org/chorem/vradi/actions/ShowInvitationAction.java 2011-07-15 12:06:48 UTC (rev 123) @@ -175,6 +175,10 @@ public String sendInvitationResult() throws Exception { + // Update preference + VradiUser user = invitationResult.updateReceivedUserPreference(getUser(), getSender()); + setUser(getProxy().store(user)); + String url = null; if (invitationResult.equals(InvitationResult.ACCEPT)) { url = VradiWebHelper.encodeAndGetUrl(SHOW_RESULT_INVITATION_ACTION, noteId, getUser().getWikittyId(), message, messageResult); Modified: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/ShowInvitationResultAction.java =================================================================== --- trunk/vradi-web/src/main/java/org/chorem/vradi/actions/ShowInvitationResultAction.java 2011-07-15 11:54:49 UTC (rev 122) +++ trunk/vradi-web/src/main/java/org/chorem/vradi/actions/ShowInvitationResultAction.java 2011-07-15 12:06:48 UTC (rev 123) @@ -177,6 +177,10 @@ public String sendInvitationResultConfirm() throws Exception { + // Update preference + VradiUser user = invitationResult.updateSendUserPreference(getUser(), getSender()); + setUser(getProxy().store(user)); + if (this.invitationResult.sendConfirmEmail(Collections.singleton(getSender().getLogin()), getUser(), getMessage(), getMessageResult(), getMessageConfirmResult(), getFormNoteSummary())) { return SUCCESS;