diff --git a/src/main/java/org/olat/core/gui/components/stack/BreadcrumbedStackedPanel.java b/src/main/java/org/olat/core/gui/components/stack/BreadcrumbedStackedPanel.java index 0cf943c6e4fa4f78488c5e2268263c854bd6707f..f10fbede193db5151eab379f14de878d6f1c1977 100644 --- a/src/main/java/org/olat/core/gui/components/stack/BreadcrumbedStackedPanel.java +++ b/src/main/java/org/olat/core/gui/components/stack/BreadcrumbedStackedPanel.java @@ -417,7 +417,26 @@ public class BreadcrumbedStackedPanel extends Panel implements StackedPanel, Bre pushController(displayName, iconLeftCss, null, uobject); } + /** + * Push the controller in the stack. If the breadcrumb has no controller, the method + * prevent the last breadcrumb to be the same has the new one and be same, it's mean + * the same uobject. + * + * @param displayName + * @param iconLeftCss + * @param controller + * @param uobject + */ public void pushController(String displayName, String iconLeftCss, Controller controller, Object uobject) { + //deduplicate last crumb + if(uobject != null && controller == null && stack.size() > 0) { + Link lastLink = stack.get(stack.size() - 1); + BreadCrumb lastCrumb = (BreadCrumb)lastLink.getUserObject(); + if(lastCrumb.getController() == null && lastCrumb.getUserObject() != null && lastCrumb.getUserObject().equals(uobject)) { + stack.remove(lastLink); + } + } + Link link = LinkFactory.createLink("crumb_" + stack.size(), (Translator)null, this); link.setCustomDisplayText(StringHelper.escapeHtml(displayName)); if(StringHelper.containsNonWhitespace(iconLeftCss)) { diff --git a/src/main/java/org/olat/modules/forms/ui/CompareEvaluationsFormController.java b/src/main/java/org/olat/modules/forms/ui/CompareEvaluationsFormController.java index 62b14750078bd70e5a3ce11f2594218554ff43b7..5bb435e5c2cb279412a2bcedc2071c72d2befb94 100644 --- a/src/main/java/org/olat/modules/forms/ui/CompareEvaluationsFormController.java +++ b/src/main/java/org/olat/modules/forms/ui/CompareEvaluationsFormController.java @@ -183,6 +183,10 @@ public class CompareEvaluationsFormController extends FormBasicController { private List<EvaluationFormElementWrapper> forgeTextInput(TextInput element) { List<EvaluationFormResponse> responses = identifierToResponses.get(element.getId()); + if (responses == null) { + // in review - selbstreview ?? + return new ArrayList<EvaluationFormElementWrapper>(); + } List<EvaluationFormElementWrapper> inputWrappers = new ArrayList<>(responses.size()); for(EvaluationFormResponse response:responses) { if(StringHelper.containsNonWhitespace(response.getStringuifiedResponse())) { diff --git a/src/main/java/org/olat/modules/forms/ui/EvaluationFormController.java b/src/main/java/org/olat/modules/forms/ui/EvaluationFormController.java index 084413b898367a310592486d9939f9cc96985d69..03afb808e19ae7360e711df9357374fb9d67564d 100644 --- a/src/main/java/org/olat/modules/forms/ui/EvaluationFormController.java +++ b/src/main/java/org/olat/modules/forms/ui/EvaluationFormController.java @@ -238,7 +238,7 @@ public class EvaluationFormController extends FormBasicController implements Val if(element.getRows() > 0) { rows = element.getRows(); } - TextElement textEl = uifactory.addTextAreaElement("textinput_" + (count++), rows, 72, initialValue, flc); + TextElement textEl = uifactory.addTextAreaElement("textinput_" + (count++), null, Integer.MAX_VALUE, rows, 72, false, initialValue, flc); textEl.setEnabled(!readOnly); FormLink saveButton = uifactory.addFormLink("save_" + (count++), "save", null, flc, Link.BUTTON); saveButton.setVisible(!readOnly); diff --git a/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_de.properties index bc5800e9c6a54f410e25936fe3440a4f579f71df..e60350c0e4f4bc152a245f05f0d5cb5ea6c40ef3 100644 --- a/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_de.properties @@ -72,14 +72,18 @@ item.deleted=Frage wurde gel\u00F6scht. item.level=Level item.pooled=Frage {0} wurde zum Pool hinzugef\u00FCgt. item.shared=Frage {0} wurde freigegeben. +item.type.drawing=Zeichnen item.type.essay=Essay item.type.fib=Fill-in-Blank item.type.hotspot=Hotspot +item.type.hottext=Hottext item.type.kprim=KPrim +item.type.match=Matrix item.type.mc=Multiple-Choice item.type.numerical=Numerische Eingabe item.type.sc=Single-Choice item.type.unkown=Unbekannt +item.type.upload=Datei hochladen lifecycle=Lebenszyklus lifecycle.status=Status lifecycle.status.draft=Draft diff --git a/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_en.properties index c7469e96dfb978b8411cb69eb1728c24a4ea8bbe..ca3790e607c66d7d9cfb7384cdb205aeb0d80b82 100644 --- a/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_en.properties @@ -72,14 +72,18 @@ item.deleted=Question has been deleted. item.level=Level item.pooled=Question {0} has been added to the pool. item.shared=Question {0} has been shared. +item.type.drawing=Drawing item.type.essay=Essay item.type.fib=Fill-in-Blank item.type.hotspot=Hotspot +item.type.hottext=Hottext item.type.kprim=KPrim +item.type.match=Match item.type.mc=Multiple-Choice item.type.numerical=Numerical input item.type.sc=Single-Choice item.type.unkown=Unkown +item.type.upload=Upload file lifecycle=Lifecycle lifecycle.status=Status lifecycle.status.draft=Draft