diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/ExportableFlexiTableDataModelDelegate.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/ExportableFlexiTableDataModelDelegate.java index e0ddd1a21eff2611f84fe76a983a9deafbfd2c8e..95767e75ece442f5f172222fdf3d6dad3fb47950 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/ExportableFlexiTableDataModelDelegate.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/ExportableFlexiTableDataModelDelegate.java @@ -37,8 +37,7 @@ import org.olat.core.gui.translator.Translator; public class ExportableFlexiTableDataModelDelegate { public MediaResource export(FlexiTableComponent ftC, Translator translator) { - FlexiTableDataModel<?> dataModel = ftC.getFlexiTableElement().getTableDataModel(); - List<FlexiColumnModel> columns = getColumnModels(dataModel); + List<FlexiColumnModel> columns = getColumnModels(ftC.getFlexiTableElement()); return export(ftC, columns, translator); } @@ -47,13 +46,14 @@ public class ExportableFlexiTableDataModelDelegate { return exporter.export(ftC, columns, translator); } - protected List<FlexiColumnModel> getColumnModels(FlexiTableDataModel<?> delegate) { - FlexiTableColumnModel columnModel = delegate.getTableColumnModel(); + private final List<FlexiColumnModel> getColumnModels(FlexiTableElementImpl tableEl) { + FlexiTableDataModel<?> dataModel = tableEl.getTableDataModel(); + FlexiTableColumnModel columnModel = dataModel.getTableColumnModel(); int numOfColumns = columnModel.getColumnCount(); List<FlexiColumnModel> columns = new ArrayList<>(numOfColumns); for(int i=0; i<numOfColumns; i++) { FlexiColumnModel column = columnModel.getColumnModel(i); - if(column.isDefaultVisible() && column.isExportable()) { + if((column.isDefaultVisible() || tableEl.isColumnModelVisible(column)) && column.isExportable()) { columns.add(column); } } diff --git a/src/main/java/org/olat/course/nodes/scorm/ScormEditController.java b/src/main/java/org/olat/course/nodes/scorm/ScormEditController.java index 0831138d1f5346cd8116c1112a2bf71cd7704225..f1605e49287f2b7292988e05ca28fc40ed80c5f8 100644 --- a/src/main/java/org/olat/course/nodes/scorm/ScormEditController.java +++ b/src/main/java/org/olat/course/nodes/scorm/ScormEditController.java @@ -97,7 +97,6 @@ public class ScormEditController extends ActivateableTabbableDefaultController i public static final String CONFIG_CUTVALUE = "cutvalue"; public static final String CONFIG_DELIVERY_OPTIONS = "deliveryOptions"; - //fxdiff FXOLAT-116: SCORM improvements public final static String CONFIG_FULLWINDOW = "fullwindow"; public final static String CONFIG_CLOSE_ON_FINISH = "CLOSEONFINISH"; @@ -202,7 +201,6 @@ public class ScormEditController extends ActivateableTabbableDefaultController i boolean advanceScore = config.getBooleanSafe(CONFIG_ADVANCESCORE, true); // </OLATCE-289> int cutvalue = config.getIntegerSafe(CONFIG_CUTVALUE, 0); - //fxdiff FXOLAT-116: SCORM improvements boolean fullWindow = config.getBooleanSafe(CONFIG_FULLWINDOW, true); boolean closeOnFinish = config.getBooleanSafe(CONFIG_CLOSE_ON_FINISH, false); @@ -308,13 +306,11 @@ public class ScormEditController extends ActivateableTabbableDefaultController i //save form-values to config config.setBooleanEntry(CONFIG_SHOWMENU, scorevarform.isShowMenu()); - //fxdiff FXOLAT-322 config.setBooleanEntry(CONFIG_SKIPLAUNCHPAGE, scorevarform.isSkipLaunchPage()); config.setBooleanEntry(CONFIG_SHOWNAVBUTTONS, scorevarform.isShowNavButtons()); config.setBooleanEntry(CONFIG_ISASSESSABLE, scorevarform.isAssessable()); config.setStringValue(CONFIG_ASSESSABLE_TYPE, scorevarform.getAssessableType()); config.setIntValue(CONFIG_CUTVALUE, scorevarform.getCutValue()); - //fxdiff FXOLAT-116: SCORM improvements config.setBooleanEntry(CONFIG_FULLWINDOW, scorevarform.isFullWindow()); config.setBooleanEntry(CONFIG_CLOSE_ON_FINISH, scorevarform.isCloseOnFinish()); // <OLATCE-289> @@ -408,17 +404,17 @@ public class ScormEditController extends ActivateableTabbableDefaultController i class VarForm extends FormBasicController { private SelectionElement showMenuEl; private SelectionElement showNavButtonsEl; - private SelectionElement fullWindowEl;//fxdiff FXOLAT-116: SCORM improvements - private SelectionElement closeOnFinishEl;//fxdiff FXOLAT-116: SCORM improvements + private SelectionElement fullWindowEl; + private SelectionElement closeOnFinishEl; private SelectionElement isAssessableEl; - private SelectionElement skipLaunchPageEl; //fxdiff FXOLAT-322 : skip start-page / auto-launch + private SelectionElement skipLaunchPageEl; private IntegerElement cutValueEl; private boolean showMenu, showNavButtons, skipLaunchPage; private String assessableType; private int cutValue; - private boolean fullWindow;//fxdiff FXOLAT-116: SCORM improvements - private boolean closeOnFinish;//fxdiff FXOLAT-116: SCORM improvements + private boolean fullWindow; + private boolean closeOnFinish; private String[] assessableKeys, assessableValues; // <OLATCE-289> @@ -447,7 +443,6 @@ class VarForm extends FormBasicController { this.showNavButtons = showNavButtons; this.assessableType = assessableType; this.cutValue = cutValue; - //fxdiff FXOLAT-116: SCORM improvements this.fullWindow = fullWindow; this.closeOnFinish = closeOnFinish; @@ -472,11 +467,11 @@ class VarForm extends FormBasicController { public int getCutValue() { return cutValueEl.getIntValue(); } - //fxdiff FXOLAT-116: SCORM improvements + public boolean isFullWindow() { return fullWindowEl.isMultiselect() && fullWindowEl.isSelected(0); } - //fxdiff FXOLAT-116: SCORM improvements + public boolean isCloseOnFinish() { return closeOnFinishEl.isMultiselect() && closeOnFinishEl.isSelected(0); } @@ -508,8 +503,6 @@ class VarForm extends FormBasicController { return null; } - - @Override protected void formOK(UserRequest ureq) { fireEvent (ureq, Event.DONE_EVENT); @@ -518,7 +511,17 @@ class VarForm extends FormBasicController { @Override protected boolean validateFormLogic(UserRequest ureq) { boolean allOk = true; - + + cutValueEl.clearError(); + if(cutValueEl.isVisible() && cutValueEl.isEnabled() && StringHelper.containsNonWhitespace(cutValueEl.getValue())) { + try { + Integer.parseInt(cutValueEl.getValue()); + } catch (NumberFormatException e) { + cutValueEl.setErrorKey("cutvalue.validation", null); + allOk &= false; + } + } + return allOk && super.validateFormLogic(ureq); } @@ -534,7 +537,6 @@ class VarForm extends FormBasicController { showNavButtonsEl = uifactory.addCheckboxesHorizontal("shownavbuttons", "shownavbuttons.label", formLayout, new String[]{"xx"}, new String[]{null}); showNavButtonsEl.select("xx", showNavButtons); - //fxdiff FXOLAT-116: SCORM improvements fullWindowEl = uifactory.addCheckboxesHorizontal("fullwindow", "fullwindow.label", formLayout, new String[]{"fullwindow"}, new String[]{null}); fullWindowEl.select("fullwindow", fullWindow);