From 2f11cd9a660e3f088faa2ea29b68bee3237afd94 Mon Sep 17 00:00:00 2001 From: gnaegi <none@none> Date: Wed, 23 Mar 2016 19:03:03 +0100 Subject: [PATCH] OO-1952 Add link to course and course title to member list mail --- .../members/MembersCourseNodeRunController.java | 16 ++++++++++++++-- .../nodes/members/MembersMailController.java | 7 ++++++- .../members/_i18n/LocalStrings_de.properties | 1 + .../members/_i18n/LocalStrings_en.properties | 1 + 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/olat/course/nodes/members/MembersCourseNodeRunController.java b/src/main/java/org/olat/course/nodes/members/MembersCourseNodeRunController.java index e4a7147afcd..8e69a22102c 100644 --- a/src/main/java/org/olat/course/nodes/members/MembersCourseNodeRunController.java +++ b/src/main/java/org/olat/course/nodes/members/MembersCourseNodeRunController.java @@ -52,6 +52,7 @@ import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.generic.closablewrapper.CloseableModalController; import org.olat.core.gui.media.MediaResource; +import org.olat.core.helpers.Settings; import org.olat.core.id.Identity; import org.olat.core.id.User; import org.olat.core.id.UserConstants; @@ -375,7 +376,7 @@ public class MembersCourseNodeRunController extends FormBasicController { removeAsListenerAndDispose(cmc); removeAsListenerAndDispose(mailCtrl); - mailCtrl = new MembersMailController(ureq, getWindowControl(), courseEnv, ownerList, coachList, participantList); + mailCtrl = new MembersMailController(ureq, getWindowControl(), courseEnv, ownerList, coachList, participantList, createBodyTemplate()); listenTo(mailCtrl); String title = translate("members.email.title"); @@ -405,7 +406,8 @@ public class MembersCourseNodeRunController extends FormBasicController { ContactMessage cmsg = new ContactMessage(ureq.getIdentity()); cmsg.addEmailTo(contactList); - + // preset body template from i18n + cmsg.setBodyText(createBodyTemplate()); emailController = new ContactFormController(ureq, getWindowControl(), true, false, false, cmsg); listenTo(emailController); @@ -416,6 +418,16 @@ public class MembersCourseNodeRunController extends FormBasicController { } } + private String createBodyTemplate() { + String courseName = courseEnv.getCourseTitle(); + // Build REST URL to course element, use hack via group manager to access repo entry + StringBuilder courseLink = new StringBuilder(); + RepositoryEntry entry = courseEnv.getCourseGroupManager().getCourseEntry(); + courseLink.append(Settings.getServerContextPathURI()) + .append("/url/RepositoryEntry/").append(entry.getKey()); + return translate("email.body.template", new String[]{courseName, courseLink.toString()}); + } + protected void doOpenHomePage(Member member, UserRequest ureq) { String url = "[HomePage:" + member.getKey() + "]"; BusinessControl bc = BusinessControlFactory.getInstance().createFromString(url); diff --git a/src/main/java/org/olat/course/nodes/members/MembersMailController.java b/src/main/java/org/olat/course/nodes/members/MembersMailController.java index 860c44ab5ce..7c6f45413ab 100644 --- a/src/main/java/org/olat/course/nodes/members/MembersMailController.java +++ b/src/main/java/org/olat/course/nodes/members/MembersMailController.java @@ -110,7 +110,7 @@ public class MembersMailController extends FormBasicController { private RepositoryService repositoryService; public MembersMailController(UserRequest ureq, WindowControl wControl, CourseEnvironment courseEnv, - List<Member> ownerList, List<Member> coachList, List<Member> participantList) { + List<Member> ownerList, List<Member> coachList, List<Member> participantList, String bodyTemplate) { super(ureq, wControl, Util.createPackageTranslator(MailHelper.class, ureq.getLocale())); this.courseEnv = courseEnv; @@ -119,6 +119,11 @@ public class MembersMailController extends FormBasicController { this.participantList = participantList; this.contactAttachmentMaxSizeInMb = mailModule.getMaxSizeForAttachement(); initForm(ureq); + + // preset body template if set + if (StringHelper.containsNonWhitespace(bodyTemplate)) { + bodyEl.setValue(bodyTemplate); + } } @Override diff --git a/src/main/java/org/olat/course/nodes/members/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/nodes/members/_i18n/LocalStrings_de.properties index 18c0091b990..7a560fbe4e5 100644 --- a/src/main/java/org/olat/course/nodes/members/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/course/nodes/members/_i18n/LocalStrings_de.properties @@ -13,6 +13,7 @@ owners=Kursbesitzer coaches=Kursbetreuer participants=Kursteilnehmer contact.external.list.example=xyz@olat.com, abc@frentix.com<br/>user@yourcompany.ch +email.body.template=<p /><p /><p>Link zum Kurs <strong>{0}</strong>:<br /><a href='{1}'>{1}</a></p> email.from=Von email.send=Schicken email.function=Emailfunktion diff --git a/src/main/java/org/olat/course/nodes/members/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/nodes/members/_i18n/LocalStrings_en.properties index a1669cb1d0c..2e9a8ab96c7 100644 --- a/src/main/java/org/olat/course/nodes/members/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/course/nodes/members/_i18n/LocalStrings_en.properties @@ -13,6 +13,7 @@ contact.external.list.example=xyz@olat.com, abc@frentix.com<br/>user@yourcompany owners=Course owners coaches=Course coaches participants=Course participants +email.body.template=<p /><p /><p>Link to course <strong>{0}</strong>:<br /><a href='{1}'>{1}</a></p> email.from=From email.send=Send email.function=E-mail function -- GitLab