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 e4a7147afcd0a37d5ff0776dad986dc7d4aa0393..8e69a22102c005f4ba86385cf024485c8f102315 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 860c44ab5cef83c41bec8b79ea01ef1ccaf54ccd..7c6f45413ab1e1431b17ae7418f94cc177cd280c 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 18c0091b99084eda50418f5379fa89054c694d4d..7a560fbe4e51ecdf4aa350dec8796c8ae54f7942 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 a1669cb1d0cbdc23b3a6e05ac8102e69a8614cef..2e9a8ab96c75cbbed13d24edb641c945f5f4bbc9 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