Index: entity/entity-api/api/src/java/org/sakaiproject/entity/api/ResourceProperties.java =================================================================== --- entity/entity-api/api/src/java/org/sakaiproject/entity/api/ResourceProperties.java (revision 38816) +++ entity/entity-api/api/src/java/org/sakaiproject/entity/api/ResourceProperties.java (working copy) @@ -104,6 +104,9 @@ /** Property for a message channel indicating if the channel is 'enabled' (user settable) [Boolean] */ static final String PROP_MAIL_CHANNEL_OPEN = "CHEF:mail-channel-open"; + + /** Property for a mail channel indicating if the channel has replys going back to the list (user settable) [Boolean] */ + static final String PROP_MAIL_CHANNEL_REPLY_LIST = "CHEF:mail-channel-reply-list"; /** Property for a site storing the email notification id associated with the site's mailbox (user settable) [String] */ static final String PROP_SITE_EMAIL_NOTIFICATION_ID = "CHEF:site-email-notification-id"; Index: mailarchive/mailarchive-tool/tool/src/java/org/sakaiproject/mailarchive/tool/MailboxAction.java =================================================================== --- mailarchive/mailarchive-tool/tool/src/java/org/sakaiproject/mailarchive/tool/MailboxAction.java (revision 38816) +++ mailarchive/mailarchive-tool/tool/src/java/org/sakaiproject/mailarchive/tool/MailboxAction.java (working copy) @@ -81,6 +81,8 @@ private static final String FORM_PAGESIZE = "pagesize"; private static final String FORM_OPEN = "open"; + + private static final String FORM_REPLY = "reply"; private static final String FORM_ALIAS = "alias"; @@ -99,6 +101,8 @@ private static final String STATE_OPTION_PAGESIZE = "optSize"; private static final String STATE_OPTION_OPEN = "optOpen"; + + private static final String STATE_OPTION_REPLY = "optReply"; private static final String STATE_OPTION_ALIAS = "optAlias"; @@ -888,6 +892,7 @@ // provide form names context.put("form-pagesize", FORM_PAGESIZE); context.put("form-open", FORM_OPEN); + context.put("form-reply", FORM_REPLY); context.put("form-alias", FORM_ALIAS); context.put("form-submit", BUTTON + "doUpdate"); context.put("form-cancel", BUTTON + "doCancel"); @@ -895,7 +900,10 @@ // in progress values if (state.getAttribute(STATE_OPTION_PAGESIZE) != null) context.put(STATE_OPTION_PAGESIZE, state.getAttribute(STATE_OPTION_PAGESIZE)); - if (state.getAttribute(STATE_OPTION_OPEN) != null) context.put(STATE_OPTION_OPEN, state.getAttribute(STATE_OPTION_OPEN)); + if (state.getAttribute(STATE_OPTION_OPEN) != null) + context.put(STATE_OPTION_OPEN, state.getAttribute(STATE_OPTION_OPEN)); + if (state.getAttribute(STATE_OPTION_REPLY) != null) + context.put(STATE_OPTION_REPLY, state.getAttribute(STATE_OPTION_REPLY)); if (state.getAttribute(STATE_OPTION_ALIAS) != null) context.put(STATE_OPTION_ALIAS, state.getAttribute(STATE_OPTION_ALIAS)); @@ -935,6 +943,8 @@ // state.setAttribute(STATE_OPTION_PAGESIZE, pagesize); String open = data.getParameters().getString(FORM_OPEN); state.setAttribute(STATE_OPTION_OPEN, open); + String replyToList = data.getParameters().getString(FORM_REPLY); + state.setAttribute(STATE_OPTION_REPLY, replyToList); String alias = StringUtil.trimToNull(data.getParameters().getString(FORM_ALIAS)); state.setAttribute(STATE_OPTION_ALIAS, alias); @@ -1045,11 +1055,24 @@ // if the alias saving went well, go on to the rest if (state.getAttribute(STATE_MESSAGE) == null) { + boolean modified = false; // update the channel for open (if changed) boolean ss = new Boolean(open).booleanValue(); if (channel.getOpen() != ss) { edit.setOpen(ss); + modified = true; + } + + ss = new Boolean(replyToList).booleanValue(); + if (channel.getReplyToList() != ss) + { + edit.setReplyToList(ss); + modified = true; + } + + if (modified) + { MailArchiveService.commitChannel(edit); } else @@ -1079,6 +1102,7 @@ // clear state temps. state.removeAttribute(STATE_OPTION_PAGESIZE); state.removeAttribute(STATE_OPTION_OPEN); + state.removeAttribute(STATE_OPTION_REPLY); state.removeAttribute(STATE_OPTION_ALIAS); // re-enable auto-updates when going back to list mode @@ -1113,6 +1137,7 @@ // clear state temps. state.removeAttribute(STATE_OPTION_PAGESIZE); state.removeAttribute(STATE_OPTION_OPEN); + state.removeAttribute(STATE_OPTION_REPLY); state.removeAttribute(STATE_OPTION_ALIAS); // re-enable auto-updates when going back to list mode Index: mailarchive/mailarchive-tool/tool/src/bundle/email.properties =================================================================== --- mailarchive/mailarchive-tool/tool/src/bundle/email.properties (revision 38816) +++ mailarchive/mailarchive-tool/tool/src/bundle/email.properties (working copy) @@ -15,6 +15,9 @@ cus.usethi2 = Site Email Address cus.whoare = Who are messages accepted from? cus.whoare2 = Accept Messages From +cus.replyto = Set the reply to address +cus.replylist = The email archive +cus.replysend = Leave as the original sender gen.alert = Alert: gen.att = Attachments Index: mailarchive/mailarchive-tool/tool/src/webapp/vm/mailarchive/chef_mailbox-customize.vm =================================================================== --- mailarchive/mailarchive-tool/tool/src/webapp/vm/mailarchive/chef_mailbox-customize.vm (revision 38816) +++ mailarchive/mailarchive-tool/tool/src/webapp/vm/mailarchive/chef_mailbox-customize.vm (working copy) @@ -6,6 +6,7 @@ #if($optSize) #set($sizeValue=$optSize) #else #set($sizeValue=$pagesize) #end #if($optOpen) #set($openValue=$optOpen) #else #set($openValue=$channel.Open) #end +#if($optReply) #set($replyValue=$optReply) #else #set($replyValue=$channel.ReplyToList) #end #if($optAlias) #set($aliasValue=$optAlias) #else @@ -51,6 +52,33 @@ $tlang.getString("cus.onluse2")
++ $tlang.getString("cus.replyto") +
++ + +
++ + +
++
true
if the channel sets the reply to address back to the channel */
+ public boolean getReplyToList();
+
/**
* check permissions for addMessage() for the given user.
*