From bee7bc689050ceeeb6d972561a06b8950c8b66bf Mon Sep 17 00:00:00 2001 From: srosse <stephane.rosse@frentix.com> Date: Mon, 8 Jun 2020 11:43:21 +0200 Subject: [PATCH] OO-4729: check if the user choose at least a permission in portfolio --- .../portfolio/ui/AccessRightsEditController.java | 2 +- .../portfolio/ui/_i18n/LocalStrings_de.properties | 1 + .../portfolio/ui/_i18n/LocalStrings_en.properties | 1 + .../portfolio/ui/_i18n/LocalStrings_fr.properties | 1 + .../portfolio/ui/shared/SharedPagesController.java | 3 ++- .../ui/wizard/AccessRightsEditStepController.java | 14 ++++++++++++++ .../ui/wizard/_content/access_rights_step.html | 7 ++++++- 7 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/olat/modules/portfolio/ui/AccessRightsEditController.java b/src/main/java/org/olat/modules/portfolio/ui/AccessRightsEditController.java index 6fdfc7e3187..bf46e7ca18c 100644 --- a/src/main/java/org/olat/modules/portfolio/ui/AccessRightsEditController.java +++ b/src/main/java/org/olat/modules/portfolio/ui/AccessRightsEditController.java @@ -167,7 +167,7 @@ public class AccessRightsEditController extends FormBasicController { if(formLayout instanceof FormLayoutContainer) { FormLayoutContainer layoutCont = (FormLayoutContainer)formLayout; layoutCont.contextPut("binderRow", binderRow); - layoutCont.contextPut("grading", new Boolean(grading)); + layoutCont.contextPut("grading", Boolean.valueOf(grading)); } if(hasButtons) { diff --git a/src/main/java/org/olat/modules/portfolio/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/portfolio/ui/_i18n/LocalStrings_de.properties index 4cbe12c191d..88f5094c880 100644 --- a/src/main/java/org/olat/modules/portfolio/ui/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/modules/portfolio/ui/_i18n/LocalStrings_de.properties @@ -186,6 +186,7 @@ error.invalid.type=Dieser Dateityp ist nicht unters\u00FCtzt. error.invitation.mail.used=Diese E-Mailadresse wird bereits von einem OpenOlat-Benutzer verwendet. error.mail.invalid=Bitte geben Sie eine g\u00FCltige E-Mailadresse an. error.mimetype=$org.olat.core.commons.modules.bc\:WrongMimeType +error.missing.permissions=Sie m\u00FCssen mindestens eine Berechtigung w\u00E4hlen. error.score=Punkte m\u00FCssen zwischen {0} und {1} sein. Oder die maximale Punktzahl, welche im Kurs definiert worden ist, wurde bereits mit anderen Sektionen erreicht. Mehr Informationen finden Sie im Bewertungswerkzeug des Kurses "{2}". existing.invitee.selection=Bestehende Benutzer export.binder=Mappe exportieren diff --git a/src/main/java/org/olat/modules/portfolio/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/portfolio/ui/_i18n/LocalStrings_en.properties index 108788f1921..523f0c0ef5f 100644 --- a/src/main/java/org/olat/modules/portfolio/ui/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/modules/portfolio/ui/_i18n/LocalStrings_en.properties @@ -186,6 +186,7 @@ error.invalid.type=This file type is not supported. error.invitation.mail.used=This e-mail address is already used by an OpenOlat user. error.mail.invalid=Please provide a valid e-mail address. error.mimetype=$org.olat.core.commons.modules.bc\:WrongMimeType +error.missing.permissions=You must choose at least one permission. error.score=Score is not between {0} and {1}. Or the maximum score defined in the course has already been reached with other sections. For more details see the assessment tool of the course "{2}". existing.invitee.selection=Existing user export.binder=Export binder diff --git a/src/main/java/org/olat/modules/portfolio/ui/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/modules/portfolio/ui/_i18n/LocalStrings_fr.properties index 50851d1e876..f6f785d9315 100644 --- a/src/main/java/org/olat/modules/portfolio/ui/_i18n/LocalStrings_fr.properties +++ b/src/main/java/org/olat/modules/portfolio/ui/_i18n/LocalStrings_fr.properties @@ -186,6 +186,7 @@ error.invalid.type=Ce type de fichier n'est pas support\u00E9. error.invitation.mail.used=Cette adresse e-mail est d\u00E9j\u00E0 utilis\u00E9e par un utilisateur OLAT. error.mail.invalid=Indiquez une adresse e-mail valide, svp. error.mimetype=$org.olat.core.commons.modules.bc\:WrongMimeType +error.missing.permissions=Vous devez choisir au moins une permission. error.score=Le nombre total de points doit se situer entre {0} et {1}. Ou le nombre de points maximum a d\u00E9j\u00E0 \u00E9t\u00E9 atteint avec d'autres sections. Vous trouverez plus d'informations dans l'outil d'\u00E9valuation du cours "{2}". existing.invitee.selection=Utilisateur existant export.binder=Exporter le classeur diff --git a/src/main/java/org/olat/modules/portfolio/ui/shared/SharedPagesController.java b/src/main/java/org/olat/modules/portfolio/ui/shared/SharedPagesController.java index 9252e3efed1..dfe8e442da5 100644 --- a/src/main/java/org/olat/modules/portfolio/ui/shared/SharedPagesController.java +++ b/src/main/java/org/olat/modules/portfolio/ui/shared/SharedPagesController.java @@ -40,6 +40,7 @@ import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiCellR import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiColumnModel; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModelFactory; +import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableReduceEvent; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableSearchEvent; import org.olat.core.gui.components.form.flexible.impl.elements.table.SelectionEvent; import org.olat.core.gui.components.form.flexible.impl.elements.table.StaticFlexiCellRenderer; @@ -280,7 +281,7 @@ public class SharedPagesController extends FormBasicController implements Activa } } else if(event instanceof FlexiTableSearchEvent) { FlexiTableSearchEvent se = (FlexiTableSearchEvent)event; - if(FlexiTableSearchEvent.QUICK_SEARCH.equals(se.getCommand()) + if(FlexiTableReduceEvent.QUICK_SEARCH.equals(se.getCommand()) || FormEvent.RESET.getCommand().equals(se.getCommand())) { loadModel(true, true); } diff --git a/src/main/java/org/olat/modules/portfolio/ui/wizard/AccessRightsEditStepController.java b/src/main/java/org/olat/modules/portfolio/ui/wizard/AccessRightsEditStepController.java index 3fac4fd2a90..7eaa6316183 100644 --- a/src/main/java/org/olat/modules/portfolio/ui/wizard/AccessRightsEditStepController.java +++ b/src/main/java/org/olat/modules/portfolio/ui/wizard/AccessRightsEditStepController.java @@ -68,6 +68,20 @@ public class AccessRightsEditStepController extends StepFormBasicController { formLayout.add("access_rights", accessRightsCtrl.getInitialFormItem()); } + @Override + protected boolean validateFormLogic(UserRequest ureq) { + boolean allOk = super.validateFormLogic(ureq); + + accessRightsCtrl.getInitialFormItem().clearError(); + List<AccessRightChange> accessRightChanges = accessRightsCtrl.getChanges(); + if(accessRightChanges == null || accessRightChanges.isEmpty()) { + accessRightsCtrl.getInitialFormItem().setErrorKey("error.missing.permissions", null); + allOk &= false; + } + + return allOk; + } + @Override protected void formOK(UserRequest ureq) { List<AccessRightChange> accessRightChanges = accessRightsCtrl.getChanges(); diff --git a/src/main/java/org/olat/modules/portfolio/ui/wizard/_content/access_rights_step.html b/src/main/java/org/olat/modules/portfolio/ui/wizard/_content/access_rights_step.html index 4dc15f93ce0..f17da08bcb7 100644 --- a/src/main/java/org/olat/modules/portfolio/ui/wizard/_content/access_rights_step.html +++ b/src/main/java/org/olat/modules/portfolio/ui/wizard/_content/access_rights_step.html @@ -1 +1,6 @@ -$r.render("access_rights") \ No newline at end of file +$r.render("access_rights") +#if($f.hasError("access_rights")) +<div class="clearfix"> + $r.render("access_rights_ERROR") +</div> +#end \ No newline at end of file -- GitLab