diff --git a/src/main/java/org/olat/course/nodes/pf/ui/PFEditFormController.java b/src/main/java/org/olat/course/nodes/pf/ui/PFEditFormController.java index 51611f3a9f59c5121f32d08baedd6a7de290c809..ae35beabcc653b15bd08ad866958ee4600cb406a 100644 --- a/src/main/java/org/olat/course/nodes/pf/ui/PFEditFormController.java +++ b/src/main/java/org/olat/course/nodes/pf/ui/PFEditFormController.java @@ -24,9 +24,9 @@ import java.util.Date; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.form.flexible.FormItem; import org.olat.core.gui.components.form.flexible.FormItemContainer; -import org.olat.core.gui.components.form.flexible.elements.IntegerElement; import org.olat.core.gui.components.form.flexible.elements.SelectionElement; import org.olat.core.gui.components.form.flexible.elements.SpacerElement; +import org.olat.core.gui.components.form.flexible.elements.TextElement; import org.olat.core.gui.components.form.flexible.impl.FormBasicController; import org.olat.core.gui.components.form.flexible.impl.FormEvent; import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer; @@ -34,6 +34,7 @@ import org.olat.core.gui.components.form.flexible.impl.elements.JSDateChooser; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; +import org.olat.core.util.StringHelper; import org.olat.course.nodes.PFCourseNode; /** * @@ -43,7 +44,7 @@ import org.olat.course.nodes.PFCourseNode; public class PFEditFormController extends FormBasicController { private SelectionElement studentDropBox, teacherDropBox, alterFiles, limitFileCount, timeFrame; - private IntegerElement fileCount; + private TextElement fileCount; private JSDateChooser dateStart, dateEnd; private SpacerElement spacerEl; @@ -56,7 +57,6 @@ public class PFEditFormController extends FormBasicController { initForm(ureq); } - @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { @@ -90,7 +90,7 @@ public class PFEditFormController extends FormBasicController { limitFileCount = uifactory.addCheckboxesHorizontal("limit.count", "blank.label", formLayout, new String[]{"xx"}, limitcount); limitFileCount.addActionListener(FormEvent.ONCLICK); limitFileCount.showLabel(Boolean.FALSE); - fileCount = uifactory.addIntegerElement("file.count", 3, formLayout); + fileCount = uifactory.addTextElement("file.count", 4, "3", formLayout); fileCount.showLabel(Boolean.FALSE); fileCount.setHelpTextKey("limit.count.coach.info", null); @@ -106,8 +106,6 @@ public class PFEditFormController extends FormBasicController { .setElementCssClass("o_sel_node_editor_submit"); applyModuleConfig(); - - } private void applyModuleConfig () { @@ -119,7 +117,7 @@ public class PFEditFormController extends FormBasicController { boolean hasLimitCount = pfNode.hasLimitCountConfigured(); limitFileCount.select("xx", hasLimitCount); limitFileCount.setVisible(hasStudentBox); - fileCount.setIntValue(pfNode.getLimitCount()); + fileCount.setValue(String.valueOf(pfNode.getLimitCount())); fileCount.setVisible(hasLimitCount); boolean hasTimeFrame = pfNode.hasDropboxTimeFrameConfigured(); timeFrame.select("xx", hasTimeFrame); @@ -187,7 +185,7 @@ public class PFEditFormController extends FormBasicController { @Override protected boolean validateFormLogic(UserRequest ureq) { - boolean allOk = true; + boolean allOk = super.validateFormLogic(ureq); dateEnd.clearError(); dateStart.clearError(); fileCount.clearError(); @@ -216,23 +214,38 @@ public class PFEditFormController extends FormBasicController { } // if file limit is enabled, ensure limit is greater than 0 if (limitFileCount.isSelected(0)) { - if (1 > fileCount.getIntValue()) { - fileCount.setErrorKey("filecount.error", null); + if(StringHelper.containsNonWhitespace(fileCount.getValue())) { + try { + int numOfFiles = Integer.parseInt(fileCount.getValue()); + if (1 > numOfFiles) { + fileCount.setErrorKey("filecount.error", null); + allOk &= false; + } + } catch (NumberFormatException e) { + fileCount.setErrorKey("form.error.nointeger", null); + allOk &= false; + } + } else { + fileCount.setErrorKey("form.legende.mandatory", null); allOk &= false; } } } - return allOk & super.validateFormLogic(ureq); + return allOk; } - @Override protected void formOK(UserRequest ureq) { + int numOfFiles = 0; + if(fileCount.isVisible() && StringHelper.isLong(fileCount.getValue())) { + numOfFiles = Integer.parseInt(fileCount.getValue()); + } + pfNode.updateModuleConfig(studentDropBox.isSelected(0), teacherDropBox.isSelected(0), alterFiles.isSelected(0), limitFileCount.isSelected(0), - fileCount.getIntValue(), + numOfFiles, timeFrame.isSelected(0), dateStart.getDate(), dateEnd.getDate()); diff --git a/src/main/java/org/olat/resource/accesscontrol/ui/OrdersAdminController.java b/src/main/java/org/olat/resource/accesscontrol/ui/OrdersAdminController.java index e7798ba50596bf220deb7c3e0307f7368170cdf1..0d05fa47d178a4fad4d22b851777c8e46dff6d34 100644 --- a/src/main/java/org/olat/resource/accesscontrol/ui/OrdersAdminController.java +++ b/src/main/java/org/olat/resource/accesscontrol/ui/OrdersAdminController.java @@ -38,10 +38,8 @@ import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiColum import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModelFactory; import org.olat.core.gui.components.form.flexible.impl.elements.table.SelectionEvent; -import org.olat.core.gui.components.panel.StackedPanel; import org.olat.core.gui.components.stack.BreadcrumbPanel; import org.olat.core.gui.components.stack.BreadcrumbPanelAware; -import org.olat.core.gui.components.velocity.VelocityContainer; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; @@ -77,9 +75,6 @@ public class OrdersAdminController extends FormBasicController implements Activa private static final String CMD_SELECT = "sel"; - private StackedPanel mainPanel; - private VelocityContainer mainVC; - private FlexiTableElement tableEl; private OrdersDataSource dataSource; private OrdersDataModel dataModel; @@ -212,7 +207,6 @@ public class OrdersAdminController extends FormBasicController implements Activa // } - @Override protected void event(UserRequest ureq, Controller source, Event event) { if (source == searchForm) { @@ -222,7 +216,11 @@ public class OrdersAdminController extends FormBasicController implements Activa } } else if (source == detailController) { if(event == Event.BACK_EVENT) { - mainPanel.setContent(mainVC); + if(stackPanel == null) { + initialPanel.popContent(); + } else { + stackPanel.popController(detailController); + } removeAsListenerAndDispose(detailController); detailController = null; addSearchToHistory(ureq); @@ -256,7 +254,7 @@ public class OrdersAdminController extends FormBasicController implements Activa listenTo(detailController); if(stackPanel == null) { - mainPanel.setContent(detailController.getInitialComponent()); + initialPanel.pushContent(detailController.getInitialComponent()); } else { detailController.hideBackLink(); stackPanel.pushController(order.getOrderNr(), detailController);