diff --git a/src/main/java/org/olat/course/reminder/ui/CourseReminderEditController.java b/src/main/java/org/olat/course/reminder/ui/CourseReminderEditController.java index e213a724c161d6c44210b2b0c0b71cb495d805f4..ce7d48fc0174e173a0e3897df3dc7310d8fb1e71 100644 --- a/src/main/java/org/olat/course/reminder/ui/CourseReminderEditController.java +++ b/src/main/java/org/olat/course/reminder/ui/CourseReminderEditController.java @@ -66,6 +66,7 @@ public class CourseReminderEditController extends FormBasicController { private final String[] typeKeys; private final String[] typeValues; + private TextElement subjectEl; private RichTextElement emailEl; private TextElement descriptionEl; private FormLayoutContainer rulesCont; @@ -113,6 +114,7 @@ public class CourseReminderEditController extends FormBasicController { String desc = reminder.getDescription(); descriptionEl = uifactory.addTextElement("reminder.description", "reminder.description", 128, desc, generalCont); + descriptionEl.setMandatory(true); descriptionEl.setElementCssClass("o_sel_course_reminder_desc"); String sendTime = getSendTimeDescription(); @@ -147,12 +149,19 @@ public class CourseReminderEditController extends FormBasicController { FormLayoutContainer contentCont = FormLayoutContainer.createVerticalFormLayout("contents", getTranslator()); contentCont.setRootForm(mainForm); formLayout.add(contentCont); + + //email subject + String subject = reminder.getEmailSubject(); + subjectEl = uifactory.addTextElement("reminder.subject", "reminder.subject", 128, subject, contentCont); + subjectEl.setMandatory(true); + subjectEl.setElementCssClass("o_sel_course_reminder_subject"); String emailContent = reminder == null ? null : reminder.getEmailBody(); if(!StringHelper.containsNonWhitespace(emailContent)) { emailContent = translate("reminder.def.body"); } emailEl = uifactory.addRichTextElementForStringDataMinimalistic("email.content", "email.content", emailContent, 10, 60, contentCont, getWindowControl()); + emailEl.setMandatory(true); String buttonPage = velocity_root + "/edit_rules_buttons.html"; FormLayoutContainer buttonLayout = FormLayoutContainer.createCustomFormLayout("buttons", getTranslator(), buttonPage); @@ -230,6 +239,12 @@ public class CourseReminderEditController extends FormBasicController { descriptionEl.setErrorKey("form.mandatory.hover", null); allOk &= false; } + + subjectEl.clearError(); + if(!StringHelper.containsNonWhitespace(subjectEl.getValue())) { + subjectEl.setErrorKey("form.mandatory.hover", null); + allOk &= false; + } emailEl.clearError(); if(!StringHelper.containsNonWhitespace(emailEl.getValue())) { @@ -328,7 +343,10 @@ public class CourseReminderEditController extends FormBasicController { String configuration = reminderManager.toXML(rules); reminder.setConfiguration(configuration); - + + String emailSubject = subjectEl.getValue(); + reminder.setEmailSubject(emailSubject); + String emailBody = emailEl.getValue(); reminder.setEmailBody(emailBody); diff --git a/src/main/java/org/olat/course/reminder/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/reminder/ui/_i18n/LocalStrings_de.properties index 710f47e1e259dfd3dea1c2241702d3b1b09c7215..59893882d094e9c69e935af28f6afc1dfc85f679 100644 --- a/src/main/java/org/olat/course/reminder/ui/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/course/reminder/ui/_i18n/LocalStrings_de.properties @@ -23,7 +23,8 @@ new.reminder=Neue Erinnerung passed=Bestanden points=Punkte reminder.def.body=<p>Liebe(r) $firstname $lastname</p><p>Sie haben sich in den Kurs "$coursename" eingetragen. Jetzt w\u00E4re ein guter Zeitpunkt diesen zu besuchen\!</p><p>$courseurl</p><p>Viele Gr\u00FCsse</p> -reminder.description=Beschreibung +reminder.description=Beschreibung (nur für Autor) +reminder.subject=E-Mail-Betreff reminder.id=ID reminder.resend=Erinnerung wurde erfolgreich geschickt. reminders=Erinnerungen diff --git a/src/main/java/org/olat/course/reminder/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/reminder/ui/_i18n/LocalStrings_en.properties index 288c4494183d4f11689fe0d89ab6b847656e7307..1f11ae1a987c7baa8bd14218551cc5bdf74880f6 100644 --- a/src/main/java/org/olat/course/reminder/ui/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/course/reminder/ui/_i18n/LocalStrings_en.properties @@ -23,7 +23,8 @@ new.reminder=New reminder passed=Passed points=Points reminder.def.body=<p>Dear $firstname $lastname</p><p>You are registered in the course "$coursename". Now would be a good time to view it!</p><p>$courseurl</p><p>Best regards</p> -reminder.description=Description +reminder.description=Description (only for author) +reminder.subject=E-mail subject reminder.id=ID reminder.resend=Reminder was successfully sent. reminders=Reminders diff --git a/src/main/java/org/olat/modules/reminder/Reminder.java b/src/main/java/org/olat/modules/reminder/Reminder.java index aeaa21b2d6e619e10fe91183fae865e35bdd3f6b..6adb4979cc1cb4a7482cef51a88047aaf93332da 100644 --- a/src/main/java/org/olat/modules/reminder/Reminder.java +++ b/src/main/java/org/olat/modules/reminder/Reminder.java @@ -42,7 +42,11 @@ public interface Reminder extends CreateInfo, ModifiedInfo { public String getConfiguration(); public void setConfiguration(String configuration); - + + public String getEmailSubject(); + + public void setEmailSubject(String emailSubject); + public String getEmailBody(); public void setEmailBody(String emailBody); diff --git a/src/main/java/org/olat/modules/reminder/manager/ReminderDAO.java b/src/main/java/org/olat/modules/reminder/manager/ReminderDAO.java index d25dcc173c99e8625def453c216cad4e36f4bd57..3437eb5b894178277937ccab20ceb7a8f41132c2 100644 --- a/src/main/java/org/olat/modules/reminder/manager/ReminderDAO.java +++ b/src/main/java/org/olat/modules/reminder/manager/ReminderDAO.java @@ -100,6 +100,7 @@ public class ReminderDAO { reminder.setCreator(creator); reminder.setDescription(toCopy.getDescription() + " (Copy)"); reminder.setConfiguration(toCopy.getConfiguration()); + reminder.setEmailSubject(toCopy.getEmailSubject()); reminder.setEmailBody(toCopy.getEmailBody()); dbInstance.getCurrentEntityManager().persist(reminder); return reminder; diff --git a/src/main/java/org/olat/modules/reminder/manager/ReminderServiceImpl.java b/src/main/java/org/olat/modules/reminder/manager/ReminderServiceImpl.java index e60bbf8398e1453d81d704f468bd863bccae890e..36f1ac4e71ca120e76d1aa96ac7ef604564a9323 100644 --- a/src/main/java/org/olat/modules/reminder/manager/ReminderServiceImpl.java +++ b/src/main/java/org/olat/modules/reminder/manager/ReminderServiceImpl.java @@ -210,6 +210,7 @@ public class ReminderServiceImpl implements ReminderService { Reminder reminder = reminderDao.createReminder(newEntry, creator); reminder.setDescription(importReminder.getDescription()); reminder.setEmailBody(importReminder.getEmailBody()); + reminder.setEmailSubject(importReminder.getEmailSubject() == null ? importReminder.getDescription() : importReminder.getEmailSubject()); reminder.setConfiguration(importReminder.getConfiguration()); reminders.add(reminder); } @@ -243,8 +244,13 @@ public class ReminderServiceImpl implements ReminderService { MailContext context = new MailContextImpl("[RepositoryEntry:" + entry.getKey() + "]"); Translator trans = Util.createPackageTranslator(ReminderAdminController.class, I18nModule.getDefaultLocale()); - String subject = trans.translate("reminder.subject"); + String subject = reminder.getEmailSubject(); String body = reminder.getEmailBody(); + if (body.contains("$courseurl")) { + body = body.replace("$courseurl", "<a href=\"$courseurl\">$courseurl</a>"); + } else { + body = body + "<p>---<br />" + trans.translate("reminder.from.course", new String[] {"<a href=\"$courseurl\">$coursename</a>"}) + "</p>"; + } String metaId = UUID.randomUUID().toString(); String url = Settings.getServerContextPathURI() + "/url/RepositoryEntry/" + entry.getKey(); diff --git a/src/main/java/org/olat/modules/reminder/model/ImportExportReminder.java b/src/main/java/org/olat/modules/reminder/model/ImportExportReminder.java index 48b21dc393791124f8605089207918b4bd9d44cf..c1eeba7c1278798033a6e46e834d0dfb268b1602 100644 --- a/src/main/java/org/olat/modules/reminder/model/ImportExportReminder.java +++ b/src/main/java/org/olat/modules/reminder/model/ImportExportReminder.java @@ -35,6 +35,7 @@ public class ImportExportReminder implements Serializable { private String description; private String configuration; + private String emailSubject; // added in OO 12.0 private String emailBody; public ImportExportReminder() { @@ -44,6 +45,7 @@ public class ImportExportReminder implements Serializable { public ImportExportReminder(Reminder reminder) { description = reminder.getDescription(); configuration = reminder.getConfiguration(); + emailSubject = reminder.getEmailSubject(); emailBody = reminder.getEmailBody(); } @@ -63,6 +65,14 @@ public class ImportExportReminder implements Serializable { this.configuration = configuration; } + public String getEmailSubject() { + return emailSubject; + } + + public void setEmailSubject(String emailSubject) { + this.emailSubject = emailSubject; + } + public String getEmailBody() { return emailBody; } diff --git a/src/main/java/org/olat/modules/reminder/model/ReminderImpl.java b/src/main/java/org/olat/modules/reminder/model/ReminderImpl.java index 2dbc078efcd9a6903d8f365800eb997f484ec5ab..1090aaf6026ecd13af87be565726aabeb5b45f4d 100644 --- a/src/main/java/org/olat/modules/reminder/model/ReminderImpl.java +++ b/src/main/java/org/olat/modules/reminder/model/ReminderImpl.java @@ -93,6 +93,8 @@ public class ReminderImpl implements Reminder, Persistable { private Date startDate; @Column(name="r_configuration", nullable=true, insertable=true, updatable=true) private String configuration; + @Column(name="r_email_Subject", nullable=true, insertable=true, updatable=true) + private String emailSubject; @Column(name="r_email_body", nullable=true, insertable=true, updatable=true) private String emailBody; @@ -172,6 +174,16 @@ public class ReminderImpl implements Reminder, Persistable { this.configuration = configuration; } + @Override + public String getEmailSubject() { + return emailSubject; + } + + @Override + public void setEmailSubject(String emailSubject) { + this.emailSubject = emailSubject; + } + @Override public String getEmailBody() { return emailBody; diff --git a/src/main/java/org/olat/modules/reminder/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/reminder/ui/_i18n/LocalStrings_de.properties index 9d79a70eae1c295a43acde05de81944df9980c52..8daac4313e42e61f60b57ed47edd203a72e97808 100644 --- a/src/main/java/org/olat/modules/reminder/ui/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/modules/reminder/ui/_i18n/LocalStrings_de.properties @@ -17,7 +17,7 @@ interval.4=Alle vier Stunden interval.2=Alle zwei Stunden interval.1=Jede Stunde reminder.admin.title=Kurserinnerungen -reminder.subject=Kurserinnerung +reminder.from.course=Erinnerung aus Kurs {0} rule.after.date=Nach Datum rule.course.enrollment.date=Einschreibedatum rule.course.role=Kursrolle diff --git a/src/main/java/org/olat/modules/reminder/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/reminder/ui/_i18n/LocalStrings_en.properties index 2a185d8f5a6ad53c4de5413e6ae5a9f76879f8dd..92b22ac4fededdddd8f944bf03aa575d3ef821ea 100644 --- a/src/main/java/org/olat/modules/reminder/ui/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/modules/reminder/ui/_i18n/LocalStrings_en.properties @@ -17,7 +17,7 @@ interval.4=Every 4 hours interval.2=Every 2 hours interval.1=Every hour reminder.admin.title=Course reminders -reminder.subject=Course reminder +reminder.from.course=Reminder from course {0} rule.after.date=After date rule.course.enrollment.date=Enrollment date rule.course.role=Course role diff --git a/src/main/java/org/olat/modules/reminder/ui/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/modules/reminder/ui/_i18n/LocalStrings_fr.properties index e417adb7147aed4e84857e50a7fb18a705a5b010..832f1e8291f7afb7ffa6080e9e05a63a949536f5 100644 --- a/src/main/java/org/olat/modules/reminder/ui/_i18n/LocalStrings_fr.properties +++ b/src/main/java/org/olat/modules/reminder/ui/_i18n/LocalStrings_fr.properties @@ -17,7 +17,6 @@ interval.4=Toutes les quatre heures interval.6=Quatre fois par jour interval.8=Trois fois par jour reminder.admin.title=Rappels des cours -reminder.subject=Rappel rule.after.date=Fonction de la date rule.course.enrollment.date=Date d'inscription rule.course.role=R\u00F4le au sein du cours diff --git a/src/main/java/org/olat/modules/reminder/ui/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/modules/reminder/ui/_i18n/LocalStrings_it.properties index 8b3716266780dcce2afda126b4476869c663c887..264f346d3e34a4dc8c2142f4c7ce9f0cb4beecf3 100644 --- a/src/main/java/org/olat/modules/reminder/ui/_i18n/LocalStrings_it.properties +++ b/src/main/java/org/olat/modules/reminder/ui/_i18n/LocalStrings_it.properties @@ -17,7 +17,6 @@ interval.4=Ogni 4 ore interval.6=Quattro volte al giorno interval.8=Tre volte al giorno reminder.admin.title=Promemoria dei corsi -reminder.subject=Promemoria di corso rule.after.date=Dopo la data rule.course.enrollment.date=Data di iscrizione rule.course.role=Ruolo nel corso diff --git a/src/main/java/org/olat/modules/reminder/ui/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/modules/reminder/ui/_i18n/LocalStrings_pt_BR.properties index b4bd61fc6154f6b122da201311cd0b24743f3597..a513cd99d4ef147719298d2e805f42e09ff3aa50 100644 --- a/src/main/java/org/olat/modules/reminder/ui/_i18n/LocalStrings_pt_BR.properties +++ b/src/main/java/org/olat/modules/reminder/ui/_i18n/LocalStrings_pt_BR.properties @@ -17,7 +17,6 @@ interval.4=A cada 4 horas interval.6=4 vezes ao dia interval.8=3 vezes ao dia reminder.admin.title=Lembretes de Curso -reminder.subject=Lembrete rule.after.date=Ap\u00F3s data rule.course.enrollment.date=Data de inscri\u00E7\u00E3o rule.course.role=Fun\u00E7\u00E3o curso diff --git a/src/main/java/org/olat/repository/handlers/CourseHandler.java b/src/main/java/org/olat/repository/handlers/CourseHandler.java index 3661f0ecc39caa4f61581ab6f75270151dde0be0..ae064d367260d268aae6811d354d351ec2fe63a3 100644 --- a/src/main/java/org/olat/repository/handlers/CourseHandler.java +++ b/src/main/java/org/olat/repository/handlers/CourseHandler.java @@ -458,6 +458,7 @@ public class CourseHandler implements RepositoryHandler { Reminder clonedReminder = reminderService.createReminder(target, author); clonedReminder.setDescription(reminder.getDescription()); + clonedReminder.setEmailSubject(reminder.getEmailSubject()); clonedReminder.setEmailBody(reminder.getEmailBody()); clonedReminder.setConfiguration(reminderService.toXML(clonedRules)); reminderService.save(clonedReminder); diff --git a/src/main/resources/database/mysql/alter_11_5_x_to_12_0_0.sql b/src/main/resources/database/mysql/alter_11_5_x_to_12_0_0.sql index 3f265f7f1d4ccdf31aea55ee241838395b08c16e..51d5f4f72203e60899403e038b71a575739f2ed9 100644 --- a/src/main/resources/database/mysql/alter_11_5_x_to_12_0_0.sql +++ b/src/main/resources/database/mysql/alter_11_5_x_to_12_0_0.sql @@ -208,3 +208,6 @@ alter table o_lecture_block_audit_log ENGINE = InnoDB; create index idx_lec_audit_entry_idx on o_lecture_block_audit_log(fk_entry); create index idx_lec_audit_ident_idx on o_lecture_block_audit_log(fk_identity); + +alter table o_rem_reminder add column r_email_subject varchar(255); +update o_rem_reminder set r_email_subject=r_description; diff --git a/src/main/resources/database/mysql/setupDatabase.sql b/src/main/resources/database/mysql/setupDatabase.sql index 3422335c294aa76335b8107b2fff4d833c7d0c72..aec3cbaa6032f32eec1bb9d5c6ea49caf4053383 100644 --- a/src/main/resources/database/mysql/setupDatabase.sql +++ b/src/main/resources/database/mysql/setupDatabase.sql @@ -1869,6 +1869,7 @@ create table o_rem_reminder ( r_start datetime, r_sendtime varchar(16), r_configuration mediumtext, + r_email_subject varchar(255), r_email_body mediumtext, fk_creator bigint not null, fk_entry bigint not null, diff --git a/src/main/resources/database/oracle/alter_11_5_x_to_12_0_0.sql b/src/main/resources/database/oracle/alter_11_5_x_to_12_0_0.sql index 16a29f4d8e8e12151bb59ae6c06f44e77df6cd2d..a90f38a26d0a47e3dba87bbbb95d19d4e21d8fdb 100644 --- a/src/main/resources/database/oracle/alter_11_5_x_to_12_0_0.sql +++ b/src/main/resources/database/oracle/alter_11_5_x_to_12_0_0.sql @@ -210,4 +210,7 @@ create index idx_lec_audit_entry_idx on o_lecture_block_audit_log(fk_entry); create index idx_lec_audit_ident_idx on o_lecture_block_audit_log(fk_identity); +alter table o_rem_reminder add column r_email_subject varchar(255); +update o_rem_reminder set r_email_subject=r_description; + diff --git a/src/main/resources/database/oracle/setupDatabase.sql b/src/main/resources/database/oracle/setupDatabase.sql index b036d24208328814d00b204b07d82fa566302741..09ccdc7221aa2cb7fc3d34ddef87d24547669a03 100644 --- a/src/main/resources/database/oracle/setupDatabase.sql +++ b/src/main/resources/database/oracle/setupDatabase.sql @@ -1892,6 +1892,7 @@ create table o_rem_reminder ( r_start date, r_sendtime varchar(16), r_configuration clob, + r_email_subject varchar(255), r_email_body clob, fk_creator number(20) not null, fk_entry number(20) not null, diff --git a/src/main/resources/database/postgresql/alter_11_5_x_to_12_0_0.sql b/src/main/resources/database/postgresql/alter_11_5_x_to_12_0_0.sql index 794b117acc65d84506722eb6c546d284ef320b01..3aa4cbe0cced0637beee5154fd3e7b253dcb51c3 100644 --- a/src/main/resources/database/postgresql/alter_11_5_x_to_12_0_0.sql +++ b/src/main/resources/database/postgresql/alter_11_5_x_to_12_0_0.sql @@ -210,5 +210,7 @@ create index idx_lec_audit_entry_idx on o_lecture_block_audit_log(fk_entry); create index idx_lec_audit_ident_idx on o_lecture_block_audit_log(fk_identity); +alter table o_rem_reminder add column r_email_subject varchar(255); +update o_rem_reminder set r_email_subject=r_description; diff --git a/src/main/resources/database/postgresql/setupDatabase.sql b/src/main/resources/database/postgresql/setupDatabase.sql index 47b69ea0e74df19bb1285ae10ec8cdfd0f240d95..f966649bad99515d300f7fe6d98bb45f023eac8f 100644 --- a/src/main/resources/database/postgresql/setupDatabase.sql +++ b/src/main/resources/database/postgresql/setupDatabase.sql @@ -1866,6 +1866,7 @@ create table o_rem_reminder ( r_start timestamp, r_sendtime varchar(16), r_configuration text, + r_email_subject varchar(255), r_email_body text, fk_creator int8 not null, fk_entry int8 not null, diff --git a/src/test/java/org/olat/modules/reminder/manager/ReminderDAOTest.java b/src/test/java/org/olat/modules/reminder/manager/ReminderDAOTest.java index 38e9d318919e5d8dd2447310b12a12b0ba756600..6357129341f428667e919df8fb122f42b74ec765 100644 --- a/src/test/java/org/olat/modules/reminder/manager/ReminderDAOTest.java +++ b/src/test/java/org/olat/modules/reminder/manager/ReminderDAOTest.java @@ -66,6 +66,7 @@ public class ReminderDAOTest extends OlatTestCase { Assert.assertNotNull(reminder); reminder.setConfiguration("<rules></rules>"); reminder.setDescription("Reminder - 1"); + reminder.setEmailSubject("This is a subject"); reminder.setEmailBody("Hello world"); //save and check @@ -79,6 +80,7 @@ public class ReminderDAOTest extends OlatTestCase { Assert.assertEquals(entry, savedReminder.getEntry()); Assert.assertEquals("Reminder - 1", savedReminder.getDescription()); Assert.assertEquals("<rules></rules>", savedReminder.getConfiguration()); + Assert.assertEquals("This is a subject", savedReminder.getEmailSubject()); Assert.assertEquals("Hello world", savedReminder.getEmailBody()); //reload and double check @@ -92,6 +94,7 @@ public class ReminderDAOTest extends OlatTestCase { Assert.assertEquals(savedReminder, reloadedReminder); Assert.assertEquals("Reminder - 1", reloadedReminder.getDescription()); Assert.assertEquals("<rules></rules>", reloadedReminder.getConfiguration()); + Assert.assertEquals("This is a subject", reloadedReminder.getEmailSubject()); Assert.assertEquals("Hello world", reloadedReminder.getEmailBody()); } @@ -104,6 +107,7 @@ public class ReminderDAOTest extends OlatTestCase { Reminder reminder = reminderDao.createReminder(entry, creator); reminder.setConfiguration("<rules></rules>"); reminder.setDescription("Reminder - 2"); + reminder.setEmailSubject("This is a subject"); reminder.setEmailBody("Hello world"); Reminder savedReminder = reminderDao.save(reminder); Assert.assertNotNull(savedReminder); @@ -152,6 +156,7 @@ public class ReminderDAOTest extends OlatTestCase { Reminder reminder = reminderDao.createReminder(entry, creator); reminder.setConfiguration("<rules></rules>"); reminder.setDescription("Reminder - 12"); + reminder.setEmailSubject("This is a deleted subject"); reminder.setEmailBody("Hello, I'm deleted"); Reminder savedReminder = reminderDao.save(reminder); Assert.assertNotNull(savedReminder); @@ -180,6 +185,7 @@ public class ReminderDAOTest extends OlatTestCase { Reminder reminder = reminderDao.createReminder(entry, creator); reminder.setConfiguration("<rules></rules>"); reminder.setDescription("Reminder - 4"); + reminder.setEmailSubject("This is a subject"); reminder.setEmailBody("Hello world"); Reminder savedReminder = reminderDao.save(reminder); Assert.assertNotNull(savedReminder); @@ -194,6 +200,7 @@ public class ReminderDAOTest extends OlatTestCase { Assert.assertEquals(savedReminder, loadedReminder); Assert.assertEquals(entry, loadedReminder.getEntry()); Assert.assertEquals("Reminder - 4", loadedReminder.getDescription()); + Assert.assertEquals("This is a subject", loadedReminder.getEmailSubject()); Assert.assertEquals("Hello world", loadedReminder.getEmailBody()); } @@ -344,6 +351,7 @@ public class ReminderDAOTest extends OlatTestCase { Assert.assertEquals(creator, reloadedDuplicate.getCreator()); Assert.assertEquals(entry, reloadedDuplicate.getEntry()); Assert.assertEquals(reminderToCopy.getEmailBody(), reloadedDuplicate.getEmailBody()); + Assert.assertEquals(reminderToCopy.getEmailSubject(), reloadedDuplicate.getEmailSubject()); Assert.assertTrue(reloadedDuplicate.getDescription().startsWith(reminderToCopy.getDescription())); Assert.assertEquals(reminderToCopy.getConfiguration(), reloadedDuplicate.getConfiguration()); } @@ -435,6 +443,7 @@ public class ReminderDAOTest extends OlatTestCase { Reminder reminder = reminderDao.createReminder(entry, creator); reminder.setConfiguration("<rules></rules>"); reminder.setDescription("Reminder - " + num); + reminder.setEmailSubject("This is a subject - " + num); reminder.setEmailBody("Hello world - " + num); return reminderDao.save(reminder); } diff --git a/src/test/java/org/olat/selenium/CourseTest.java b/src/test/java/org/olat/selenium/CourseTest.java index 4d82260b7392b7cfaf17d05de078bae1b61fd2dd..40d46a5a16cf364b2794ad2e1006b3015cc55a36 100644 --- a/src/test/java/org/olat/selenium/CourseTest.java +++ b/src/test/java/org/olat/selenium/CourseTest.java @@ -1940,6 +1940,7 @@ public class CourseTest { reminders .addReminder() .setDescription(reminderTitle) + .setSubject(reminderTitle) .setTimeBasedRule(1, "RepositoryEntryLifecycleAfterValidFromRuleSPI", 5, "day") .addRule(1) .setRoleBasedRule(2, "RepositoryEntryRoleRuleSPI", "participant") diff --git a/src/test/java/org/olat/selenium/page/course/RemindersPage.java b/src/test/java/org/olat/selenium/page/course/RemindersPage.java index 7d643ff547c75d307afe9f459cc345eb35642974..1bcdd1edb2733aacf82b890f62590dc560c3cf39 100644 --- a/src/test/java/org/olat/selenium/page/course/RemindersPage.java +++ b/src/test/java/org/olat/selenium/page/course/RemindersPage.java @@ -163,6 +163,12 @@ public class RemindersPage { browser.findElement(descBy).sendKeys(text); return this; } + + public RemindersPage setSubject(String text) { + By subjectBy = By.cssSelector(".o_sel_course_reminder_subject input[type='text']"); + browser.findElement(subjectBy).sendKeys(text); + return this; + } public RemindersPage setTimeBasedRule(int pos, String type, int time, String unit) { //select type