diff --git a/src/main/java/org/olat/core/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/core/_i18n/LocalStrings_de.properties index cf55a456f8e40fcd6ede1888a0053aea7f246cc3..d6c3410951afa46db373549dd4d4f3cca1539272 100644 --- a/src/main/java/org/olat/core/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/core/_i18n/LocalStrings_de.properties @@ -29,6 +29,7 @@ form.dirty.intro=Achtung! Sie haben noch ungespeicherte Formulardaten form.dirty.ignore=Wenn Sie die Schaltfläche <strong>$:form.dirty.button.ignore</strong> dr\u00FCcken verlassen Sie das Formular ohne zu speichern. <strong>Die enthaltenen \u00C4nderungen gehen damit verloren</strong>. form.dirty.back=Wenn Sie die Schaltfläche <strong>$:form.dirty.button.back</strong> dr\u00FCcken gelangen Sie zurück zum Formular und können dieses abspeichern. form.error.nointeger=Ung\u00FCltige Zahl. Es muss eine Zahl eingegeben werden. +form.error.toolong=Ihre Eingabe ist zu lang. Es sind maximal {0} Zeichen erlaubt. form.general.error=Es sind Eingabefehler aufgetreten. Bitte beachten Sie den Hinweis bei den Eingabefeldern. form.legende.mandatory=<i>Bitte füllen Sie dieses Feld aus</i>. form.legende.wikiMarkup=<i>Dieses Feld erlaubt mit Wiki-Syntax formatierte Eingaben</i> </br >*<b>bold</b>*<br>_<i>italic</i>_<br>* Listen Elemente diff --git a/src/main/java/org/olat/core/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/core/_i18n/LocalStrings_en.properties index d3b14185c31d276101bdaaad6600be67d3b947fb..c676e293bfcc7fd57d2749f7cb6ea9c3ac3e4b3a 100644 --- a/src/main/java/org/olat/core/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/core/_i18n/LocalStrings_en.properties @@ -30,6 +30,7 @@ form.dirty.intro=Attention! You have not saved this form yet. form.dirty.ignore=By clicking <strong>$:form.dirty.button.ignore</strong> you will exit the form without saving. <strong>Changes you made on this page will be lost</strong> form.dirty.back=By clicking <strong>$:form.dirty.button.back</strong> you will get back to the form where you can save it. form.error.nointeger=Illegal number. Please enter an integer. +form.error.toolong=Your input is too long. A maximum of {0} characters are allowed. form.general.error=There are typing errors. Please consider the information next to the input fields. form.legende.mandatory=<i>Please fill in this field.</i> form.legende.wikiMarkup=<i>This field allows formatted entries using the Wiki Markup language.</i> </br >*<b>bold</b>*<br>_<i>italic</i>_<br>* List items diff --git a/src/main/java/org/olat/core/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/core/_i18n/LocalStrings_fr.properties index 03e732f3d4c9dd180b99a3b5fb562c422b33b622..c57a60c8dcba72156d181e11b671379768fb8d8a 100644 --- a/src/main/java/org/olat/core/_i18n/LocalStrings_fr.properties +++ b/src/main/java/org/olat/core/_i18n/LocalStrings_fr.properties @@ -30,6 +30,7 @@ form.dirty.ignore=Si vous appuyez sur le bouton <strong>$\:form.dirty.button.ign form.dirty.intro=Attention\! Le formulaire contient encore des donn\u00E9es que vous n'avez pas enregistr\u00E9es. form.dirty.title=Donn\u00E9es non-enregistr\u00E9es form.error.nointeger=Nombre invalide. Il faut indiquer un nombre. +form.error.toolong=Votre saisie est trop longue. Vous avez au maximum {0} caract\u00E8res \u00E0 disposition. form.general.error=Des erreurs de saisie sont survenues. Suivez les indications relatives aux champs, svp. form.legende.mandatory=<i>Veuillez remplir ce champ.</i> form.legende.wikiMarkup=<i>Ce champ peut \u00EAtre format\u00E9 \u00E0 l'aide des balises Wiki.</i> </br >*<b>bold</b>*<br>_<i>italic</i>_<br>* Liste d'\u00E9l\u00E9ments diff --git a/src/main/java/org/olat/modules/qpool/ui/tree/FinalTreeNode.java b/src/main/java/org/olat/modules/qpool/ui/tree/FinalTreeNode.java index 43e541b2360858bc1d9af5373bdd4321b21fbe2e..c21486576929d7c0531e275388c0ca5d249934b9 100644 --- a/src/main/java/org/olat/modules/qpool/ui/tree/FinalTreeNode.java +++ b/src/main/java/org/olat/modules/qpool/ui/tree/FinalTreeNode.java @@ -80,7 +80,11 @@ public class FinalTreeNode extends GenericTreeNode implements ControllerTreeNode ureq.getIdentity(), ureq.getUserSession().getRoles(), taxonomyLevel); - OLATResourceable ores = OresHelper.createOLATResourceableInstance(FINAL + "_" + taxonomyLevel.getIdentifier(), taxonomyLevel.getKey()); + String resName = FINAL + "_" + taxonomyLevel.getIdentifier(); + if(resName.length() > 50) { + resName = resName.substring(0, 50); + } + OLATResourceable ores = OresHelper.createOLATResourceableInstance(resName, taxonomyLevel.getKey()); WindowControl swControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ureq, ores, null, wControl, true); questionsCtrl = new QuestionsController(ureq, swControl, stackPanel, source, securityCallback, FINAL + taxonomyLevel.getKey(), false); diff --git a/src/main/java/org/olat/modules/qpool/ui/tree/ReviewTreeNode.java b/src/main/java/org/olat/modules/qpool/ui/tree/ReviewTreeNode.java index 143b3ef56b253c9da5f070d9d505520c335ae4bc..2e2e04920a5b17f1d37133a3504f738f50d41c17 100644 --- a/src/main/java/org/olat/modules/qpool/ui/tree/ReviewTreeNode.java +++ b/src/main/java/org/olat/modules/qpool/ui/tree/ReviewTreeNode.java @@ -78,7 +78,11 @@ public class ReviewTreeNode extends GenericTreeNode implements ControllerTreeNod @Override public Controller getController(UserRequest ureq, WindowControl wControl) { if (questionsCtrl == null) { - OLATResourceable ores = OresHelper.createOLATResourceableInstance(REVIEW + "_" + taxonomyLevel.getIdentifier(), taxonomyLevel.getKey()); + String resName = REVIEW + "_" + taxonomyLevel.getIdentifier(); + if(resName.length() > 50) { + resName = resName.substring(0, 50); + } + OLATResourceable ores = OresHelper.createOLATResourceableInstance(resName, taxonomyLevel.getKey()); WindowControl swControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ureq, ores, null, wControl, true); questionsCtrl = new QuestionsController(ureq, swControl, stackPanel, source, securityCallback, REVIEW + taxonomyLevel.getKey(), false); diff --git a/src/main/java/org/olat/modules/taxonomy/ui/EditTaxonomyLevelController.java b/src/main/java/org/olat/modules/taxonomy/ui/EditTaxonomyLevelController.java index 9724fc0e91ece7c572b8dda71299652afeffde6b..b26668a01baa1096b725f8509c30448b827cc32c 100644 --- a/src/main/java/org/olat/modules/taxonomy/ui/EditTaxonomyLevelController.java +++ b/src/main/java/org/olat/modules/taxonomy/ui/EditTaxonomyLevelController.java @@ -211,20 +211,11 @@ public class EditTaxonomyLevelController extends FormBasicController { @Override protected boolean validateFormLogic(UserRequest ureq) { - boolean allOk = true; - - displayNameEl.clearError(); - if(!StringHelper.containsNonWhitespace(displayNameEl.getValue())) { - displayNameEl.setErrorKey("form.legende.mandatory", null); - allOk &= false; - } - - identifierEl.clearError(); - if(!StringHelper.containsNonWhitespace(identifierEl.getValue())) { - identifierEl.setErrorKey("form.legende.mandatory", null); - allOk &= false; - } + boolean allOk = super.validateFormLogic(ureq); + allOk &= validateTextfield(displayNameEl, 255); + allOk &= validateTextfield(identifierEl, 64); + sortOrderEl.clearError(); if(StringHelper.containsNonWhitespace(sortOrderEl.getValue())) { try { @@ -235,7 +226,22 @@ public class EditTaxonomyLevelController extends FormBasicController { } } - return allOk & super.validateFormLogic(ureq); + return allOk; + } + + private boolean validateTextfield(TextElement textEl, int maxSize) { + boolean allOk = true; + + textEl.clearError(); + if(!StringHelper.containsNonWhitespace(identifierEl.getValue())) { + identifierEl.setErrorKey("form.legende.mandatory", null); + allOk &= false; + } else if(identifierEl.getValue().length() >= maxSize) { + identifierEl.setErrorKey("form.error.toolong", new String[] { Integer.toString(maxSize) }); + allOk &= false; + } + + return allOk; } @Override