diff --git a/src/main/java/org/olat/course/editor/NodeConfigFormController.java b/src/main/java/org/olat/course/editor/NodeConfigFormController.java index f98435d7e064af4b7d56987da5b6ed2598af5d67..307cda989ba1d4526d28fcedc7c7db9aef076dfb 100644 --- a/src/main/java/org/olat/course/editor/NodeConfigFormController.java +++ b/src/main/java/org/olat/course/editor/NodeConfigFormController.java @@ -45,9 +45,9 @@ public class NodeConfigFormController extends FormBasicController { /** * Maximum length of a course's short title. */ - public final static int SHORT_TITLE_MAX_LENGTH =25; + public static final int SHORT_TITLE_MAX_LENGTH =25; - private final static String[] displayOptionsKeys = new String[]{ + private static final String[] displayOptionsKeys = new String[]{ CourseNode.DISPLAY_OPTS_SHORT_TITLE_DESCRIPTION_CONTENT, CourseNode.DISPLAY_OPTS_TITLE_DESCRIPTION_CONTENT, CourseNode.DISPLAY_OPTS_SHORT_TITLE_CONTENT, @@ -161,10 +161,14 @@ public class NodeConfigFormController extends FormBasicController { translate("nodeConfigForm.title_content"), translate("nodeConfigForm.content_only")}; displayOptions = uifactory.addDropdownSingleselect("displayOptions", "nodeConfigForm.display_options", formLayout, displayOptionsKeys, values, null); - displayOptions.select(displayOption, true); + for(String displayOptionsKey:displayOptionsKeys) { + if(displayOptionsKey.equals(displayOption)) { + displayOptions.select(displayOption, true); + } + } // Create submit and cancel buttons - final FormLayoutContainer buttonLayout = FormLayoutContainer.createButtonLayout("buttonLayout", getTranslator()); + FormLayoutContainer buttonLayout = FormLayoutContainer.createButtonLayout("buttonLayout", getTranslator()); formLayout.add(buttonLayout); uifactory.addFormSubmitButton("nodeConfigForm.save", buttonLayout) .setElementCssClass("o_sel_node_editor_submit"); @@ -176,20 +180,23 @@ public class NodeConfigFormController extends FormBasicController { */ @Override protected boolean validateFormLogic(UserRequest ureq) { - boolean shortTitleOk = true; + boolean allOk = super.validateFormLogic(ureq); + + shortTitle.clearError(); if (!StringHelper.containsNonWhitespace(shortTitle.getValue())) { // the short title is mandatory - shortTitle.setErrorKey("nodeConfigForm.menumust", new String[] {}); - shortTitleOk = false; + shortTitle.setErrorKey("nodeConfigForm.menumust", null); + allOk &= false; } else if (shortTitle.hasError()) { - shortTitleOk = false; + allOk &= false; } - if (shortTitleOk && super.validateFormLogic(ureq)) { - shortTitle.clearError(); - return true; - } else { - return false; + + if(!displayOptions.isOneSelected()) { + displayOptions.setErrorKey("form.legende.mandatory", null); + allOk &= false; } + + return allOk; } /** diff --git a/src/main/java/org/olat/ims/qti21/model/xml/Onyx38ToQtiWorksHandler.java b/src/main/java/org/olat/ims/qti21/model/xml/Onyx38ToQtiWorksHandler.java index 77719d752574c4333c200019eb1591d2b655efbd..64d74d99aef864da13e7e96f03a1090ee03519e4 100644 --- a/src/main/java/org/olat/ims/qti21/model/xml/Onyx38ToQtiWorksHandler.java +++ b/src/main/java/org/olat/ims/qti21/model/xml/Onyx38ToQtiWorksHandler.java @@ -205,16 +205,25 @@ public class Onyx38ToQtiWorksHandler extends DefaultHandler2 { private void writeAssessmentElement(String qName, Attributes attributes) throws XMLStreamException { + boolean hasToolName = false; + boolean hasVersion = false; xtw.writeStartElement(qName); int numOfAttributes = attributes.getLength(); for(int i=0;i<numOfAttributes; i++) { String attrQName = attributes.getQName(i); String attrValue = attributes.getValue(i); xtw.writeAttribute(attrQName, attrValue); + if("toolName".equals(attrQName)) { + hasToolName = true; + } else if("toolVersion".equals(attrQName)) { + hasVersion = true; + } } - xtw.writeAttribute("toolName", "Onyx Editor"); - if(StringHelper.containsNonWhitespace(version)) { + if(!hasToolName) { + xtw.writeAttribute("toolName", "Onyx Editor"); + } + if(!hasVersion && StringHelper.containsNonWhitespace(version)) { xtw.writeAttribute("toolVersion", version); } } diff --git a/src/main/java/org/olat/ims/qti21/ui/QTI21AdminController.java b/src/main/java/org/olat/ims/qti21/ui/QTI21AdminController.java index 7f5f951d1593ccaa34ad45871b3f3134082336dc..d55c8de00f456c04f0a981bfaf46bc8ee633f65b 100644 --- a/src/main/java/org/olat/ims/qti21/ui/QTI21AdminController.java +++ b/src/main/java/org/olat/ims/qti21/ui/QTI21AdminController.java @@ -147,20 +147,20 @@ public class QTI21AdminController extends FormBasicController { @Override protected boolean validateFormLogic(UserRequest ureq) { - boolean allOk = true; + boolean allOk = super.validateFormLogic(ureq); if(certificateEl.getUploadFile() != null) { File uploadedCertificate = certificateEl.getUploadFile(); if(uploadedCertificate != null && uploadedCertificate.exists()) { - validateCertificatePassword(uploadedCertificate); + allOk &= validateCertificatePassword(uploadedCertificate); } } else { String password = certificatePasswordEl.getValue(); if(!PASSWORD_PLACEHOLDER.equals(password) && certificateEl.getInitialFile() != null) { - validateCertificatePassword(certificateEl.getInitialFile()); + allOk &= validateCertificatePassword(certificateEl.getInitialFile()); } } - return allOk & super.validateFormLogic(ureq); + return allOk; } private boolean validateCertificatePassword(File file) {