diff --git a/src/main/java/org/olat/core/gui/control/generic/iframe/DeliveryOptionsConfigurationController.java b/src/main/java/org/olat/core/gui/control/generic/iframe/DeliveryOptionsConfigurationController.java index c6fec06a4add179ef8bbbb7d6b2172f536eb4eeb..d81ee5d190ddae05c81c0284e0f6d0f7b90e71e6 100644 --- a/src/main/java/org/olat/core/gui/control/generic/iframe/DeliveryOptionsConfigurationController.java +++ b/src/main/java/org/olat/core/gui/control/generic/iframe/DeliveryOptionsConfigurationController.java @@ -49,7 +49,8 @@ import org.olat.course.editor.NodeEditController; */ public class DeliveryOptionsConfigurationController extends FormBasicController { - private DeliveryOptions config, parentConfig; + private DeliveryOptions config; + private DeliveryOptions parentConfig; private SingleSelection inheritEl; private SingleSelection standardModeEl; @@ -201,6 +202,7 @@ public class DeliveryOptionsConfigurationController extends FormBasicController "1300px", "1320px", "1340px", "1360px", "1380px" }; heightEl = uifactory.addDropdownSingleselect("height", "height.label", formLayout, keys, values, null); + heightEl.setExampleKey("automatic.need.js", null); String[] cssValues = new String[] { translate("option.css.none"), translate("option.css.openolat") @@ -319,7 +321,7 @@ public class DeliveryOptionsConfigurationController extends FormBasicController if(cfg != null && cfg.getOpenolatCss() != null && cfg.getOpenolatCss().booleanValue()) { cssOptionEl.select(cssKeys[1], true); } else { - cssOptionEl.select(cssKeys[0], false);//default none + cssOptionEl.select(cssKeys[0], true);//default none } String encodingContent = (cfg == null ? null : cfg.getContentEncoding()); @@ -348,19 +350,27 @@ public class DeliveryOptionsConfigurationController extends FormBasicController if(!isInherit()) { glossarEl.clearError(); - if(glossarEl.isAtLeastSelected(1)) { - if(!jsOptionEl.isSelected(1)) { - allOk &= false; - glossarEl.setErrorKey("glossary.need.jQuery", null); - } - } - - heightEl.clearError(); - if(heightEl.isSelected(0) - && (standardModeEl.isSelected(0) || jsOptionEl.isSelected(0))) { - heightEl.setErrorKey("automatic.need.js", null); - allOk = false; + if(glossarEl.isAtLeastSelected(1) && !jsOptionEl.isSelected(1)) { + allOk &= false; + glossarEl.setErrorKey("glossary.need.jQuery", null); } + allOk &= validateDropdown(jsOptionEl); + allOk &= validateDropdown(heightEl); + allOk &= validateDropdown(cssOptionEl); + allOk &= validateDropdown(encodingContentEl); + allOk &= validateDropdown(encodingJSEl); + } + + return allOk; + } + + private boolean validateDropdown(SingleSelection element) { + boolean allOk = true; + + element.clearError(); + if(element.isEnabled() && !element.isOneSelected()) { + element.setErrorKey("form.general.error", null); + allOk &= false; } return allOk; diff --git a/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_de.properties index c91f65a8aa4b572507f299d8ee109e527c7cc1d0..b4066954a937320a00bc311101f4d7e4bdc1a255 100644 --- a/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_de.properties @@ -25,4 +25,4 @@ inherit.label=Standardwerte \u00FCbernehmen inherit=Aus Layouteinstellungen der Lernressource \u00FCbernehmen custom=Anpassen glossary.need.jQuery=Glossar braucht jQuery -automatic.need.js=Automatic braucht javascript +automatic.need.js=Automatic funktioniert besser mit Javascript diff --git a/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_en.properties index 434570f05dfaf8aa966576d8cc2abd019aea1142..5d6919df61336b70ee58540bb1c06674feecc4d8 100644 --- a/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_en.properties @@ -1,5 +1,5 @@ #Thu Sep 03 11:09:03 CEST 2015 -automatic.need.js=Automatic needs javascript +automatic.need.js=Automatic works better with Javascript enabled. command.download=Download file custom=Modify encoding.auto=Automatically diff --git a/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_fr.properties index 636e5c6c5d5d9740f5e9c0e646740a8417a6b6f4..9d34aa2102988cade7b1b1ae4d9769f968672b63 100644 --- a/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_fr.properties +++ b/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_fr.properties @@ -1,5 +1,5 @@ #Sun Nov 29 10:58:54 CET 2015 -automatic.need.js=Automatique \u00E0 besoin de javascript +automatic.need.js=Automatique fonctionne de mani\u00E8re optimale avec Javascript command.download=T\u00E9l\u00E9charger fichier custom=Modifi\u00E9 encoding.auto=Automatiquement diff --git a/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_it.properties index bcc0daaa311cc2afdc5bd05d074513b75165cedd..5feb6a2f9ceac041fe9c702d7734269a9430c023 100644 --- a/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_it.properties +++ b/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_it.properties @@ -1,5 +1,4 @@ #Thu Jun 23 10:44:16 CEST 2016 -automatic.need.js=Automatico richiede javascript command.download=Scaricare file custom=Modificare encoding.auto=Automaticamente diff --git a/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_pt_BR.properties index af2e7cbc19bf6f446faeed57bcb34c8c04d760d8..35bd1c35fed853bc8c47f19fd18759786c3de116 100644 --- a/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_pt_BR.properties +++ b/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_pt_BR.properties @@ -1,5 +1,4 @@ #Mon Feb 08 20:04:53 CET 2016 -automatic.need.js=Automaticamente precisa de javascript command.download=Download custom=Modificar encoding.auto=Automaticamente diff --git a/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_zh_CN.properties b/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_zh_CN.properties index 42f2179e9d3cacc1192680935c12fd363782067c..7f001f204a62a11ffa3540bca6f18e71f985f597 100644 --- a/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_zh_CN.properties +++ b/src/main/java/org/olat/core/gui/control/generic/iframe/_i18n/LocalStrings_zh_CN.properties @@ -1,5 +1,4 @@ #Sat Oct 08 10:07:07 CEST 2016 -automatic.need.js=\u81EA\u52A8\u5316\u9700\u8981javascript command.download=\u4E0B\u8F7D custom=\u4FEE\u6539 encoding.auto=\u81EA\u52A8 diff --git a/src/main/java/org/olat/ims/cp/CPManagerImpl.java b/src/main/java/org/olat/ims/cp/CPManagerImpl.java index a5b32f395137d31083fae33d65734368332657a2..b8e0c839d48ea0b7b84279062e21f5a7e28f2e6a 100644 --- a/src/main/java/org/olat/ims/cp/CPManagerImpl.java +++ b/src/main/java/org/olat/ims/cp/CPManagerImpl.java @@ -61,6 +61,7 @@ import org.olat.repository.RepositoryManager; import org.springframework.stereotype.Service; import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.security.ExplicitTypePermission; /** * The CP manager implementation. @@ -81,6 +82,11 @@ public class CPManagerImpl implements CPManager { private static XStream configXstream = XStreamHelper.createXStreamInstance(); static { + XStream.setupDefaultSecurity(configXstream); + Class<?>[] types = new Class[] { + CPPackageConfig.class, DeliveryOptions.class + }; + configXstream.addPermission(new ExplicitTypePermission(types)); configXstream.alias("packageConfig", CPPackageConfig.class); configXstream.alias("deliveryOptions", DeliveryOptions.class); } diff --git a/src/main/java/org/olat/modules/scorm/ScormMainManager.java b/src/main/java/org/olat/modules/scorm/ScormMainManager.java index cce5b7225d4e7a83fe0437fbbd46bdd148d19008..a857220ebffd195b7a10d3ffdc78b02ff07f80ba 100644 --- a/src/main/java/org/olat/modules/scorm/ScormMainManager.java +++ b/src/main/java/org/olat/modules/scorm/ScormMainManager.java @@ -29,17 +29,18 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; +import org.apache.logging.log4j.Logger; import org.olat.core.gui.UserRequest; import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.generic.iframe.DeliveryOptions; import org.olat.core.id.OLATResourceable; -import org.apache.logging.log4j.Logger; import org.olat.core.logging.Tracing; import org.olat.core.util.xml.XStreamHelper; import org.olat.fileresource.FileResourceManager; import org.springframework.stereotype.Service; import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.security.ExplicitTypePermission; /** @@ -54,6 +55,11 @@ public class ScormMainManager { private static final Logger log = Tracing.createLoggerFor(ScormMainManager.class); private static XStream configXstream = XStreamHelper.createXStreamInstance(); static { + XStream.setupDefaultSecurity(configXstream); + Class<?>[] types = new Class[] { + ScormPackageConfig.class, DeliveryOptions.class + }; + configXstream.addPermission(new ExplicitTypePermission(types)); configXstream.alias("packageConfig", ScormPackageConfig.class); configXstream.alias("deliveryOptions", DeliveryOptions.class); }