diff --git a/src/main/java/org/olat/core/util/openxml/HTMLToOpenXMLHandler.java b/src/main/java/org/olat/core/util/openxml/HTMLToOpenXMLHandler.java index 663daf84ae44158abfdfbfb948d66cc79aabce2c..0357b84f2858849f3264b5d07a2597ff1ef07362 100644 --- a/src/main/java/org/olat/core/util/openxml/HTMLToOpenXMLHandler.java +++ b/src/main/java/org/olat/core/util/openxml/HTMLToOpenXMLHandler.java @@ -55,6 +55,7 @@ public class HTMLToOpenXMLHandler extends DefaultHandler { private boolean latex = false; private StringBuilder textBuffer; private Spacing startSpacing; + protected String relPath; private boolean appendToCursor = true; protected final OpenXMLDocument factory; @@ -72,17 +73,17 @@ public class HTMLToOpenXMLHandler extends DefaultHandler { public HTMLToOpenXMLHandler(OpenXMLDocument document) { this.factory = document; } - /** * @param document The OpenXML document * @param paragraph The current paragraph * @param appendToCursor If true, append automatically to the document */ - public HTMLToOpenXMLHandler(OpenXMLDocument document, Element paragraph, boolean appendToCursor) { + public HTMLToOpenXMLHandler(OpenXMLDocument document, String relPath, Element paragraph, boolean appendToCursor) { this(document); this.currentParagraph = paragraph; this.appendToCursor = appendToCursor; + this.relPath = relPath; } public HTMLToOpenXMLHandler(OpenXMLDocument document, Spacing spacing) { @@ -239,7 +240,7 @@ public class HTMLToOpenXMLHandler extends DefaultHandler { if(cssStyles == null) { return setTextPreferences(); } else { - List<Style> styles = new ArrayList<Style>(4); + List<Style> styles = new ArrayList<>(4); if(cssStyles.contains("bold")) styles.add(Style.bold); if(cssStyles.contains("italic")) styles.add(Style.italic); if(cssStyles.contains("underline")) styles.add(Style.underline); @@ -497,7 +498,10 @@ public class HTMLToOpenXMLHandler extends DefaultHandler { } } - protected String path(String path) { + public String path(String path) { + if(relPath != null) { + return relPath.concat(path); + } return path; } @@ -538,7 +542,7 @@ public class HTMLToOpenXMLHandler extends DefaultHandler { closeParagraph(); currentListParagraph = null; } else if("li".equals(tag)) { - //do nothing + closeParagraph();// close the paragraph but let the list } else if("blockquote".equals(tag)) { popStyle(tag); } else if("div".equals(tag)) { diff --git a/src/main/java/org/olat/core/util/openxml/OpenXMLDocument.java b/src/main/java/org/olat/core/util/openxml/OpenXMLDocument.java index 57f25cca3defd6482b6d1072f1832cb7adb2928f..b8ac1e4c3de0a966e4de7e879bf689fac6f4a368 100644 --- a/src/main/java/org/olat/core/util/openxml/OpenXMLDocument.java +++ b/src/main/java/org/olat/core/util/openxml/OpenXMLDocument.java @@ -435,7 +435,7 @@ public class OpenXMLDocument { html = cleanUpHTML(html); SAXParser parser = new SAXParser(); Element paragraphEl = getParagraphToAppendTo(newParagraph); - parser.setContentHandler(new HTMLToOpenXMLHandler(this, paragraphEl, true)); + parser.setContentHandler(new HTMLToOpenXMLHandler(this, null, paragraphEl, true)); parser.parse(new InputSource(new StringReader(html))); } catch (SAXException e) { log.error("", e); diff --git a/src/main/java/org/olat/ims/qti21/manager/openxml/QTI21WordExport.java b/src/main/java/org/olat/ims/qti21/manager/openxml/QTI21WordExport.java index 7ce330be6c302143baea920e88843521e456e2f5..0860be054553e5178994ddc11fbfacbb426370cc 100644 --- a/src/main/java/org/olat/ims/qti21/manager/openxml/QTI21WordExport.java +++ b/src/main/java/org/olat/ims/qti21/manager/openxml/QTI21WordExport.java @@ -374,7 +374,6 @@ public class QTI21WordExport implements MediaResource { private static class QTI21AndHTMLToOpenXMLHandler extends HTMLToOpenXMLHandler { private final File itemFile; - private final String relPath; private final AssessmentItem assessmentItem; private final boolean withResponses; private final AssessmentHtmlBuilder htmlBuilder; @@ -489,11 +488,6 @@ public class QTI21WordExport implements MediaResource { } } } - - @Override - protected String path(String path) { - return relPath.concat(path); - } @Override public void characters(char[] ch, int start, int length) { @@ -773,7 +767,7 @@ public class QTI21WordExport implements MediaResource { // add the drop panels Element wrapEl = factory.createParagraphEl(); - HTMLToOpenXMLHandler dropTable = new HTMLToOpenXMLHandler(factory, wrapEl, false); + HTMLToOpenXMLHandler dropTable = new HTMLToOpenXMLHandler(factory, relPath, wrapEl, false); dropTable.setMaxWidthCm(7); dropTable.startTable(Columns.valueOf(columnWidthPct - 50)); if(withResponses) { @@ -941,7 +935,7 @@ public class QTI21WordExport implements MediaResource { String backgroundColor = "FFFFFF"; Border sourceBorder = new Border(0, 6, "E9EAF2"); - HTMLToOpenXMLHandler innerTable = new HTMLToOpenXMLHandler(factory, wrapEl, false); + HTMLToOpenXMLHandler innerTable = new HTMLToOpenXMLHandler(factory, relPath, wrapEl, false); innerTable.setMaxWidthCm(7.5); innerTable.startTable(Columns.valueOf(columnWidthPct)); for(SimpleAssociableChoice choice:choices) { @@ -950,7 +944,7 @@ public class QTI21WordExport implements MediaResource { String html = htmlBuilder.flowStaticString(choice.getFlowStatics()); List<Node> nodes = appendHtmlText(html, factory.createParagraphEl(), 7.5); - if(nodes.size() == 0) { + if(nodes.isEmpty()) { contentCell.appendChild(factory.createParagraphEl()); } else { for(Node node:nodes) { @@ -978,7 +972,7 @@ public class QTI21WordExport implements MediaResource { Border dropBorder = new Border(0, 6, "EEEEEE"); Element wrapEl = factory.createParagraphEl(); - HTMLToOpenXMLHandler innerTable = new HTMLToOpenXMLHandler(factory, wrapEl, false); + HTMLToOpenXMLHandler innerTable = new HTMLToOpenXMLHandler(factory, relPath, wrapEl, false); innerTable.setMaxWidthCm(7.5); innerTable.startTable(Columns.valueOf(columnWidthPct)); for(SimpleAssociableChoice choice:targetChoices) { @@ -992,7 +986,7 @@ public class QTI21WordExport implements MediaResource { } // add the drop panels - HTMLToOpenXMLHandler dropTable = new HTMLToOpenXMLHandler(factory, wrapEl, false); + HTMLToOpenXMLHandler dropTable = new HTMLToOpenXMLHandler(factory, relPath, wrapEl, false); dropTable.setMaxWidthCm(7); dropTable.startTable(Columns.valueOf(columnWidthPct - 50)); if(withResponses) { @@ -1003,7 +997,7 @@ public class QTI21WordExport implements MediaResource { Node answerCell = dropTable.addCell(factory.createTableCell(dropBackgroundColor, targetBorder, columnWidthPct - 10, Unit.pct)); String answerHtml = htmlBuilder.flowStaticString(sourceChoice.getFlowStatics()); List<Node> answerNodes = appendHtmlText(answerHtml, factory.createParagraphEl(), 7.5); - if(answerNodes.size() == 0) { + if(answerNodes.isEmpty()) { answerCell.appendChild(factory.createParagraphEl()); } else { for(Node answerNode:answerNodes) { @@ -1115,7 +1109,7 @@ public class QTI21WordExport implements MediaResource { } try { SAXParser parser = new SAXParser(); - HTMLToOpenXMLHandler handler = new HTMLToOpenXMLHandler(factory, wrapEl, false); + HTMLToOpenXMLHandler handler = new HTMLToOpenXMLHandler(factory, relPath, wrapEl, false); handler.setMaxWidthCm(widthCm); parser.setContentHandler(handler); parser.parse(new InputSource(new StringReader(html))); diff --git a/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_de.properties index b12bbbdc668153098d73aa9b60c76565a00ae019..a60ad8bccd3d16c54e1fc3f47a62e6e428a7c074 100644 --- a/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_de.properties @@ -2,6 +2,6 @@ admin.catalog.settings=Katalog settings admin.menu.title=Katalog admin.menu.title.alt=Katalog -catalog.browsing=Katalog \u00FCberfliegen +catalog.browsing=Katalog in "Kurse" catalog.enable=Katalog einschalten catalog.site=Katalog in eigener Site diff --git a/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_en.properties index 7ee286dd24a401b714a909f49d82e1e145f2788e..d97343f5bbbb46352016641fc0fa90987cfc2f11 100644 --- a/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_en.properties @@ -3,5 +3,5 @@ admin.catalog.settings=Catalog settings admin.menu.title=Catalog admin.menu.title.alt=Catalog catalog.enable=Enable catalog -catalog.browsing=Catalog browsing +catalog.browsing=Catalog in "Courses" catalog.site=Catalog in its own site \ No newline at end of file diff --git a/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_fr.properties index 3bf01d8c0e5633fa99cce6da0358a52a609597b3..8258c1af40c3bb8a91399c43b3277e4d03e3558e 100644 --- a/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_fr.properties +++ b/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_fr.properties @@ -2,6 +2,6 @@ admin.catalog.settings=Configuration du catalogue admin.menu.title=Catalogue admin.menu.title.alt=Catalogue -catalog.browsing=Consulter le catalogue +catalog.browsing=Catalogue dans "Cours" catalog.enable=Activer le catalogue catalog.site=Catalogue dans son propre site diff --git a/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_it.properties index 201c64d98404092a6aef10f1398d03d614a91e73..c26059441305228227bd83980b9aaef523da6de9 100644 --- a/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_it.properties +++ b/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_it.properties @@ -2,6 +2,5 @@ admin.catalog.settings=Impostazioni catalogo admin.menu.title=Catalogo admin.menu.title.alt=Catalogo -catalog.browsing=Consultazione catalogo catalog.enable=Abilitare catalogo catalog.site=Catalogo nel proprio sito diff --git a/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_pt_BR.properties index 88eda00e89a385c66314fed8868b36ca46e14d39..3074fe4bab5e41c2ca18517777b9336d84c0d4e9 100644 --- a/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_pt_BR.properties +++ b/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_pt_BR.properties @@ -2,6 +2,5 @@ admin.catalog.settings=Configura\u00E7\u00F5es do Cat\u00E1logo admin.menu.title=Cat\u00E1logo admin.menu.title.alt=Cat\u00E1logo -catalog.browsing=Navega\u00E7\u00E3o do Cat\u00E1logo catalog.enable=Ativar cat\u00E1logo catalog.site=Cat\u00E1logo em p\u00E1gina pr\u00F3pria diff --git a/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_zh_CN.properties b/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_zh_CN.properties index 945fc6a47573f8653028dcd76579c0e439782825..67f78bb9c2478932dca63e4c316bba50d5230596 100644 --- a/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_zh_CN.properties +++ b/src/main/java/org/olat/repository/ui/admin/_i18n/LocalStrings_zh_CN.properties @@ -1,5 +1,4 @@ #Thu Sep 11 09:31:16 CEST 2014 admin.menu.title=\u76EE\u5F55 -catalog.browsing=\u8D85\u51FA\u76EE\u5F55 catalog.enable=\u5F00\u542F\u76EE\u5F55 catalog.site=\u5728\u81EA\u5DF1\u9875\u9762\u7684\u76EE\u5F55