Skip to content
Snippets Groups Projects
Commit 56270cc7 authored by srosse's avatar srosse
Browse files

OO-4401: fix some validation issues in delivery settings panel

parent 8d3bb108
No related branches found
No related tags found
No related merge requests found
Showing
with 40 additions and 21 deletions
...@@ -49,7 +49,8 @@ import org.olat.course.editor.NodeEditController; ...@@ -49,7 +49,8 @@ import org.olat.course.editor.NodeEditController;
*/ */
public class DeliveryOptionsConfigurationController extends FormBasicController { public class DeliveryOptionsConfigurationController extends FormBasicController {
private DeliveryOptions config, parentConfig; private DeliveryOptions config;
private DeliveryOptions parentConfig;
private SingleSelection inheritEl; private SingleSelection inheritEl;
private SingleSelection standardModeEl; private SingleSelection standardModeEl;
...@@ -201,6 +202,7 @@ public class DeliveryOptionsConfigurationController extends FormBasicController ...@@ -201,6 +202,7 @@ public class DeliveryOptionsConfigurationController extends FormBasicController
"1300px", "1320px", "1340px", "1360px", "1380px" "1300px", "1320px", "1340px", "1360px", "1380px"
}; };
heightEl = uifactory.addDropdownSingleselect("height", "height.label", formLayout, keys, values, null); heightEl = uifactory.addDropdownSingleselect("height", "height.label", formLayout, keys, values, null);
heightEl.setExampleKey("automatic.need.js", null);
String[] cssValues = new String[] { String[] cssValues = new String[] {
translate("option.css.none"), translate("option.css.openolat") translate("option.css.none"), translate("option.css.openolat")
...@@ -319,7 +321,7 @@ public class DeliveryOptionsConfigurationController extends FormBasicController ...@@ -319,7 +321,7 @@ public class DeliveryOptionsConfigurationController extends FormBasicController
if(cfg != null && cfg.getOpenolatCss() != null && cfg.getOpenolatCss().booleanValue()) { if(cfg != null && cfg.getOpenolatCss() != null && cfg.getOpenolatCss().booleanValue()) {
cssOptionEl.select(cssKeys[1], true); cssOptionEl.select(cssKeys[1], true);
} else { } else {
cssOptionEl.select(cssKeys[0], false);//default none cssOptionEl.select(cssKeys[0], true);//default none
} }
String encodingContent = (cfg == null ? null : cfg.getContentEncoding()); String encodingContent = (cfg == null ? null : cfg.getContentEncoding());
...@@ -348,19 +350,27 @@ public class DeliveryOptionsConfigurationController extends FormBasicController ...@@ -348,19 +350,27 @@ public class DeliveryOptionsConfigurationController extends FormBasicController
if(!isInherit()) { if(!isInherit()) {
glossarEl.clearError(); glossarEl.clearError();
if(glossarEl.isAtLeastSelected(1)) { if(glossarEl.isAtLeastSelected(1) && !jsOptionEl.isSelected(1)) {
if(!jsOptionEl.isSelected(1)) { allOk &= false;
allOk &= false; glossarEl.setErrorKey("glossary.need.jQuery", null);
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;
} }
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; return allOk;
......
...@@ -25,4 +25,4 @@ inherit.label=Standardwerte \u00FCbernehmen ...@@ -25,4 +25,4 @@ inherit.label=Standardwerte \u00FCbernehmen
inherit=Aus Layouteinstellungen der Lernressource \u00FCbernehmen inherit=Aus Layouteinstellungen der Lernressource \u00FCbernehmen
custom=Anpassen custom=Anpassen
glossary.need.jQuery=Glossar braucht jQuery glossary.need.jQuery=Glossar braucht jQuery
automatic.need.js=Automatic braucht javascript automatic.need.js=Automatic funktioniert besser mit Javascript
#Thu Sep 03 11:09:03 CEST 2015 #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 command.download=Download file
custom=Modify custom=Modify
encoding.auto=Automatically encoding.auto=Automatically
......
#Sun Nov 29 10:58:54 CET 2015 #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 command.download=T\u00E9l\u00E9charger fichier
custom=Modifi\u00E9 custom=Modifi\u00E9
encoding.auto=Automatiquement encoding.auto=Automatiquement
......
#Thu Jun 23 10:44:16 CEST 2016 #Thu Jun 23 10:44:16 CEST 2016
automatic.need.js=Automatico richiede javascript
command.download=Scaricare file command.download=Scaricare file
custom=Modificare custom=Modificare
encoding.auto=Automaticamente encoding.auto=Automaticamente
......
#Mon Feb 08 20:04:53 CET 2016 #Mon Feb 08 20:04:53 CET 2016
automatic.need.js=Automaticamente precisa de javascript
command.download=Download command.download=Download
custom=Modificar custom=Modificar
encoding.auto=Automaticamente encoding.auto=Automaticamente
......
#Sat Oct 08 10:07:07 CEST 2016 #Sat Oct 08 10:07:07 CEST 2016
automatic.need.js=\u81EA\u52A8\u5316\u9700\u8981javascript
command.download=\u4E0B\u8F7D command.download=\u4E0B\u8F7D
custom=\u4FEE\u6539 custom=\u4FEE\u6539
encoding.auto=\u81EA\u52A8 encoding.auto=\u81EA\u52A8
......
...@@ -61,6 +61,7 @@ import org.olat.repository.RepositoryManager; ...@@ -61,6 +61,7 @@ import org.olat.repository.RepositoryManager;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.security.ExplicitTypePermission;
/** /**
* The CP manager implementation. * The CP manager implementation.
...@@ -81,6 +82,11 @@ public class CPManagerImpl implements CPManager { ...@@ -81,6 +82,11 @@ public class CPManagerImpl implements CPManager {
private static XStream configXstream = XStreamHelper.createXStreamInstance(); private static XStream configXstream = XStreamHelper.createXStreamInstance();
static { static {
XStream.setupDefaultSecurity(configXstream);
Class<?>[] types = new Class[] {
CPPackageConfig.class, DeliveryOptions.class
};
configXstream.addPermission(new ExplicitTypePermission(types));
configXstream.alias("packageConfig", CPPackageConfig.class); configXstream.alias("packageConfig", CPPackageConfig.class);
configXstream.alias("deliveryOptions", DeliveryOptions.class); configXstream.alias("deliveryOptions", DeliveryOptions.class);
} }
......
...@@ -29,17 +29,18 @@ import java.io.FileOutputStream; ...@@ -29,17 +29,18 @@ import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import org.apache.logging.log4j.Logger;
import org.olat.core.gui.UserRequest; import org.olat.core.gui.UserRequest;
import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.WindowControl;
import org.olat.core.gui.control.generic.iframe.DeliveryOptions; import org.olat.core.gui.control.generic.iframe.DeliveryOptions;
import org.olat.core.id.OLATResourceable; import org.olat.core.id.OLATResourceable;
import org.apache.logging.log4j.Logger;
import org.olat.core.logging.Tracing; import org.olat.core.logging.Tracing;
import org.olat.core.util.xml.XStreamHelper; import org.olat.core.util.xml.XStreamHelper;
import org.olat.fileresource.FileResourceManager; import org.olat.fileresource.FileResourceManager;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.security.ExplicitTypePermission;
/** /**
...@@ -54,6 +55,11 @@ public class ScormMainManager { ...@@ -54,6 +55,11 @@ public class ScormMainManager {
private static final Logger log = Tracing.createLoggerFor(ScormMainManager.class); private static final Logger log = Tracing.createLoggerFor(ScormMainManager.class);
private static XStream configXstream = XStreamHelper.createXStreamInstance(); private static XStream configXstream = XStreamHelper.createXStreamInstance();
static { static {
XStream.setupDefaultSecurity(configXstream);
Class<?>[] types = new Class[] {
ScormPackageConfig.class, DeliveryOptions.class
};
configXstream.addPermission(new ExplicitTypePermission(types));
configXstream.alias("packageConfig", ScormPackageConfig.class); configXstream.alias("packageConfig", ScormPackageConfig.class);
configXstream.alias("deliveryOptions", DeliveryOptions.class); configXstream.alias("deliveryOptions", DeliveryOptions.class);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment