Skip to content
Snippets Groups Projects
Commit 4df36ddd authored by uhensler's avatar uhensler
Browse files

OO-2982: Option to show/hide email recipients in the inbox

parent b88e4936
No related branches found
No related tags found
No related merge requests found
......@@ -47,6 +47,7 @@ public class MailModule extends AbstractSpringModule {
private static final String INTERN_MAIL_SYSTEM = "internSystem";
private static final String SHOW_RECIPIENT_NAMES = "showRecipientNames";
private static final String SHOW_MAIL_ADDRESSES = "showMailAddresses";
private static final String SHOW_RECIPIENTS_IN_INBOX = "showRecipientsInInbox";
private static final String RECEIVE_REAL_MAIL_USER_DEFAULT_SETTING = "receiveRealMailUserDefaultSetting";
@Value("${mail.intern:false}")
......@@ -55,6 +56,8 @@ public class MailModule extends AbstractSpringModule {
private boolean showRecipientNames;
@Value("${mail.showMailAddresses:false}")
private boolean showMailAddresses;
@Value("${mail.showRecipientsInInbox:true}")
private boolean showRecipientsInInbox;
@Value("${mail.receiveRealMailUserDefaultSetting:true}")
private boolean receiveRealMailUserDefaultSetting;
......@@ -137,7 +140,16 @@ public class MailModule extends AbstractSpringModule {
setStringProperty(SHOW_MAIL_ADDRESSES, showMailAddressesStr, true);
}
public boolean isShowRecipientsInInbox() {
return showRecipientsInInbox;
}
public void setShowRecipientsInInbox(boolean showRecipientsInInbox) {
this.showRecipientsInInbox = showRecipientsInInbox;
String showRecipientsInInboxStr = showRecipientsInInbox ? "true" : "false";
setStringProperty(SHOW_RECIPIENTS_IN_INBOX, showRecipientsInInboxStr, true);
}
/**
* Users can receive real e-mail too. This setting is the default for
* users. They can change it in Preferences Panel.
......@@ -189,4 +201,5 @@ public class MailModule extends AbstractSpringModule {
public String getMailhost() {
return WebappHelper.getMailConfig("mailhost");
}
}
\ No newline at end of file
......@@ -53,6 +53,7 @@ mail.admin.intern.only=E-Mails an das interne OLAT Postfach zustellen
mail.admin.intern.real.mail=E-Mails an das interne OLAT Postfach und die pers\u00f6nliche E-Mail Adresse zustellen
mail.admin.show.mail.addresses=E-Mail Adressen anzeigen
mail.admin.show.recipient.names=Namen der Empf\u00E4nger anzeigen
mail.admin.show.recipient.inbox=Empf\u00E4nger im Eingang anzeigen
mail.settings=Einstellungen
mail.template=E-Mail Vorlage
mail.template.title=E-Mail Vorlage bearbeiten
......
......@@ -18,6 +18,7 @@ mail.admin.intern.only=Send e-mails to the internal OLAT inbox
mail.admin.intern.real.mail=Send e-Mails to the internal OLAT inbox and the personal e-mail address
mail.admin.show.mail.addresses=Show Email address
mail.admin.show.recipient.names=Show the name of the recipient
mail.admin.show.recipient.inbox=Show recipients in the inbox
mail.admin.title=E-mail inbox and outbox
mail.attachments=Attachment
mail.body=Message
......
......@@ -27,7 +27,6 @@ import org.olat.core.gui.control.WindowControl;
/**
*
* Description:<br>
* TODO: srosse Class Description for MailContextResolver
*
* <P>
* Initial Date: 30 mars 2011 <br>
......
......@@ -62,6 +62,7 @@ public class MailController extends FormBasicController {
private String mapperBaseURI;
private final boolean back;
private final boolean outbox;
private final DBMail mail;
private final List<DBMailAttachment> attachments;
private boolean showAllRecipients = false;
......@@ -73,11 +74,12 @@ public class MailController extends FormBasicController {
@Autowired
private MailManager mailManager;
public MailController(UserRequest ureq, WindowControl wControl, DBMail mail, boolean back) {
public MailController(UserRequest ureq, WindowControl wControl, DBMail mail, boolean back, boolean outbox) {
super(ureq, wControl, LAYOUT_VERTICAL);
setTranslator(Util.createPackageTranslator(MailModule.class, ureq.getLocale()));
this.mail = mail;
this.back = back;
this.outbox = outbox;
attachments = mailManager.getAttachments(mail);
if(!attachments.isEmpty()) {
mapperBaseURI = registerMapper(ureq, new MailAttachmentMapper(mailManager));
......@@ -149,7 +151,7 @@ public class MailController extends FormBasicController {
private String getRecipients() {
StringBuilder sb = new StringBuilder();
Set<String> groups = new HashSet<String>();
Set<String> groups = new HashSet<>();
int recipientsCounter = 0;
int groupCounter = 0;
sb.append("<ul class='list-inline'>");
......@@ -173,27 +175,29 @@ public class MailController extends FormBasicController {
groups.add(group);
groupCounter = 0;
}
if (mailModule.isShowRecipientNames()) {
if (recipient.getRecipient() != null) {
// recipient is an individual
Identity repicientIdentity = recipient.getRecipient();
sb.append("<li class='o_recipient'>");
if(groupCounter> 0) sb.append(", ");
sb.append("<span>").append(getFullName(recipient)).append("</span>");
if (mailModule.isShowMailAddresses()) {
sb.append(" &lt;").append(repicientIdentity.getUser().getEmail()).append("&gt;");
if (outbox || mailModule.isShowRecipientsInInbox()) {
if (mailModule.isShowRecipientNames()) {
if (recipient.getRecipient() != null) {
// recipient is an individual
Identity repicientIdentity = recipient.getRecipient();
sb.append("<li class='o_recipient'>");
if(groupCounter> 0) sb.append(", ");
sb.append("<span>").append(getFullName(recipient)).append("</span>");
if (mailModule.isShowMailAddresses()) {
sb.append(" &lt;").append(repicientIdentity.getUser().getEmail()).append("&gt;");
}
sb.append("</li>");
groupCounter++;
}
if (recipient.getEmailAddress() != null) {
// recipient is not an OpenOLAT identity but an external email
sb.append("<li class='o_mail'>");
if(groupCounter > 0) sb.append(", ");
sb.append("&lt;");
sb.append(recipient.getEmailAddress());
sb.append("&gt;</li>");
groupCounter++;
}
sb.append("</li>");
groupCounter++;
}
if (recipient.getEmailAddress() != null) {
// recipient is not an OpenOLAT identity but an external email
sb.append("<li class='o_mail'>");
if(groupCounter > 0) sb.append(", ");
sb.append("&lt;");
sb.append(recipient.getEmailAddress());
sb.append("&gt;</li>");
groupCounter++;
}
}
}
......
......@@ -238,7 +238,7 @@ public class MailListController extends BasicController implements Activateable2
}
//strip meta emails
Set<String> metaIds = new HashSet<String>();
Set<String> metaIds = new HashSet<>();
for(Iterator<DBMailLight> it=mails.iterator(); it.hasNext(); ) {
DBMailLight mail = it.next();
if(StringHelper.containsNonWhitespace(mail.getMetaId())) {
......@@ -254,7 +254,7 @@ public class MailListController extends BasicController implements Activateable2
}
//extract contexts
Map<String, String> bpToContexts = new HashMap<String, String>();
Map<String, String> bpToContexts = new HashMap<>();
for(DBMailLight mail:mails) {
String businessPath = mail.getContext().getBusinessPath();
if(StringHelper.containsNonWhitespace(businessPath) && !bpToContexts.containsKey(businessPath)) {
......@@ -266,8 +266,8 @@ public class MailListController extends BasicController implements Activateable2
}
if(!bpToContexts.isEmpty()) {
List<ShortName> filters = new ArrayList<ShortName>();
Map<String, MailContextShortName> uniqueNames = new HashMap<String,MailContextShortName>();
List<ShortName> filters = new ArrayList<>();
Map<String, MailContextShortName> uniqueNames = new HashMap<>();
ShortName allContextFilter = new MailContextShortName("-");
filters.add(allContextFilter);
for(Map.Entry<String, String> entry:bpToContexts.entrySet()) {
......@@ -462,7 +462,7 @@ public class MailListController extends BasicController implements Activateable2
boolean back = !StringHelper.containsNonWhitespace(mail.getMetaId()) || !outbox;
OLATResourceable ores = OresHelper.createOLATResourceableInstance(DBMail.class, mail.getKey());
WindowControl bwControl = addToHistory(ureq, ores, null);
mailCtr = new MailController(ureq, bwControl, mail, back);
mailCtr = new MailController(ureq, bwControl, mail, back, outbox);
listenTo(mailCtr);
mainVC.put(MAIN_CMP, mailCtr.getInitialComponent());
......
......@@ -44,7 +44,10 @@ import org.springframework.beans.factory.annotation.Autowired;
*/
public class MailSettingsAdminController extends FormBasicController {
private MultipleSelectionElement enabled, showRecipientNamesEl, showMailAddressesEl;
private MultipleSelectionElement enabled;
private MultipleSelectionElement showRecipientNamesEl;
private MultipleSelectionElement showMailAddressesEl;
private MultipleSelectionElement showRecipientsInInboxEl;
private SingleSelection userDefaultSettingEl;
private String[] values = {""};
......@@ -99,6 +102,11 @@ public class MailSettingsAdminController extends FormBasicController {
showMailAddressesEl.addActionListener(FormEvent.ONCHANGE);
showMailAddressesEl.setEnabled(internEnabled);
showRecipientsInInboxEl = uifactory.addCheckboxesHorizontal("mail.admin.show.recipient.inbox", formLayout, keys, values);
showRecipientsInInboxEl.select(keys[0], mailModule.isShowRecipientsInInbox());
showRecipientsInInboxEl.addActionListener(FormEvent.ONCHANGE);
showRecipientsInInboxEl.setEnabled(internEnabled);
final FormLayoutContainer buttonGroupLayout = FormLayoutContainer.createButtonLayout("buttonLayout", getTranslator());
buttonGroupLayout.setRootForm(mainForm);
formLayout.add(buttonGroupLayout);
......@@ -130,6 +138,10 @@ public class MailSettingsAdminController extends FormBasicController {
boolean showMailaddresses = !showMailAddressesEl.getSelectedKeys().isEmpty();
mailModule.setShowMailAddresses(showMailaddresses);
showMailAddressesEl.setEnabled(on);
// recipients in inbox
boolean showRecipientsInInbox = !showRecipientsInInboxEl.getSelectedKeys().isEmpty();
mailModule.setShowRecipientsInInbox(showRecipientsInInbox);
showRecipientsInInboxEl.setEnabled(on);
getWindowControl().setInfo("saved");
}
......@@ -141,6 +153,7 @@ public class MailSettingsAdminController extends FormBasicController {
userDefaultSettingEl.setEnabled(on);
showMailAddressesEl.setEnabled(on);
showRecipientNamesEl.setEnabled(on);
showRecipientsInInboxEl.setEnabled(on);
}
super.formInnerEvent(ureq, source, event);
}
......
......@@ -147,6 +147,7 @@ mail.attachment.maxsize=5
mail.intern=false
mail.showRecipientNames=true
mail.showMailAddresses=false
mail.showRecipientsInInbox=true
mail.receiveRealMailUserDefaultSetting=true
########################################################################
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment