From cd6b7c5bdb2e56bf8632d9284920435ae0288b17 Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Tue, 10 Nov 2020 14:06:27 +0100
Subject: [PATCH] OO-5060: check if there is an available template

---
 .../modules/appointments/ui/TopicCreateController.java | 10 ++++++++--
 .../appointments/ui/_i18n/LocalStrings_de.properties   |  1 +
 .../appointments/ui/_i18n/LocalStrings_en.properties   |  1 +
 3 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/olat/modules/appointments/ui/TopicCreateController.java b/src/main/java/org/olat/modules/appointments/ui/TopicCreateController.java
index cb19eed57a3..dc22e0b942f 100644
--- a/src/main/java/org/olat/modules/appointments/ui/TopicCreateController.java
+++ b/src/main/java/org/olat/modules/appointments/ui/TopicCreateController.java
@@ -244,7 +244,9 @@ public class TopicCreateController extends FormBasicController {
 			templateEl = uifactory.addDropdownSingleselect("meeting.template", "meeting.template", formLayout,
 					templatesKV.keys(), templatesKV.values());
 			templateEl.addActionListener(FormEvent.ONCHANGE);
-			templateEl.select(templateEl.getKeys()[0], true);
+			if(!templatesKV.isEmpty()) {
+				templateEl.select(templateEl.getKeys()[0], true);
+			}
 			
 			String[] yesNoValues = new String[] { translate("yes"), translate("no")  };
 			recordEl = uifactory.addRadiosVertical("meeting.record", formLayout, KEYS_YES_NO, yesNoValues);
@@ -470,7 +472,11 @@ public class TopicCreateController extends FormBasicController {
 			
 			templateEl.clearError();
 			if(!templateEl.isOneSelected()) {
-				templateEl.setErrorKey("form.legende.mandatory", null);
+				if(templateEl.getKeys() == null || templateEl.getKeys().length == 0) {
+					templateEl.setErrorKey("error.bigbluebutton.no.templates", null);
+				} else {
+					templateEl.setErrorKey("form.legende.mandatory", null);
+				}
 				bbbOk &= false;
 			}
 			
diff --git a/src/main/java/org/olat/modules/appointments/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/appointments/ui/_i18n/LocalStrings_de.properties
index caff81d1a8c..b5092f94838 100644
--- a/src/main/java/org/olat/modules/appointments/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/modules/appointments/ui/_i18n/LocalStrings_de.properties
@@ -67,6 +67,7 @@ edit.topic=Thema bearbeiten
 email.title=Neue Nachricht
 email.organizer.recipients=Organisatoren
 email.organizer.subject=Termin "{0}"
+error.bigbluebutton.no.templates=Vorlage ist erfoderlich. Aber es steht keine zur Verfügung. Bitte wenden Sie sich an Ihren Administrator.
 error.config.not.changeable=Die Konfiguration kann nicht mehr ge\u00e4ndert werden. Sie wurde auf die urspr\u00fcnglichen Werte zur\u00fcckgesetzt.
 error.first.after.start=Der letzte Termin darf nicht vor dem ersten Termin liegen.
 error.not.as.many.participations.left=Es k\u00f6nnen nicht mehr so viele Benutzer zu diesem Termin hinzugef\u00fcgt werden.
diff --git a/src/main/java/org/olat/modules/appointments/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/appointments/ui/_i18n/LocalStrings_en.properties
index 54bfc7c7d8e..a04d0a3d483 100644
--- a/src/main/java/org/olat/modules/appointments/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/modules/appointments/ui/_i18n/LocalStrings_en.properties
@@ -67,6 +67,7 @@ edit.topic=Edit topic
 email.title=New message
 email.organizer.recipients=Organizers
 email.organizer.subject=Appointment "{0}"
+error.bigbluebutton.no.templates=Template is mandatory, but there isn't any available templates. Please contact your administrator.
 error.config.not.changeable=The configuration can no longer be changed. It has been reset to the original values.
 error.first.after.start=The last appointment must not be before the first appointment.
 error.not.as.many.participations.left=Not so many users can be added to this appointment.
-- 
GitLab