From 7c1f14fbd6aa537612d0259dbae37600b3426de9 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Mon, 5 Dec 2016 15:14:19 +0100 Subject: [PATCH] OO-2400: reload the list of questions after cancelling an extended search --- .../form/flexible/elements/FlexiTableElement.java | 8 ++++++++ .../impl/elements/table/FlexiTableElementImpl.java | 5 +++-- .../qpool/ui/AbstractItemListController.java | 13 ++++++++++++- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableElement.java b/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableElement.java index 18174b0e23f..1623beea125 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableElement.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableElement.java @@ -380,6 +380,14 @@ public interface FlexiTableElement extends FormItem { */ public void reset(boolean page, boolean internal, boolean reloadData); + /** + * It will reload all the data without filter. Use it with cautious as + * at some place, there are minimal restrictions to the search string. + * + * @param ureq + */ + public void resetSearch(UserRequest ureq); + public void reloadData(); /** diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java index 71e78716a52..094ef037ac6 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java @@ -1295,7 +1295,7 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle if(StringHelper.containsNonWhitespace(search)) { doSearch(ureq, FlexiTableSearchEvent.QUICK_SEARCH, search, null); } else { - doResetSearch(ureq); + resetSearch(ureq); } } @@ -1367,7 +1367,8 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle search, getSelectedFilters(), getSelectedExtendedFilters(), condQueries, FormEvent.ONCLICK)); } - protected void doResetSearch(UserRequest ureq) { + @Override + public void resetSearch(UserRequest ureq) { conditionalQueries = null; currentPage = 0; if(dataSource != null) { diff --git a/src/main/java/org/olat/modules/qpool/ui/AbstractItemListController.java b/src/main/java/org/olat/modules/qpool/ui/AbstractItemListController.java index 03cb37f6692..18b08a9e9ce 100644 --- a/src/main/java/org/olat/modules/qpool/ui/AbstractItemListController.java +++ b/src/main/java/org/olat/modules/qpool/ui/AbstractItemListController.java @@ -55,6 +55,7 @@ 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.id.OLATResourceable; +import org.olat.core.util.StringHelper; import org.olat.core.util.event.EventBus; import org.olat.core.util.event.GenericEventListener; import org.olat.modules.qpool.QPoolService; @@ -109,7 +110,6 @@ public abstract class AbstractItemListController extends FormBasicController extendedSearchCtrl = new ExtendedSearchController(ureq, getWindowControl(), key, mainForm); extendedSearchCtrl.setEnabled(false); - listenTo(extendedSearchCtrl); initForm(ureq); @@ -167,6 +167,7 @@ public abstract class AbstractItemListController extends FormBasicController itemsTable.setExtendedSearch(extendedSearchCtrl); itemsTable.setColumnIndexForDragAndDropLabel(Cols.title.ordinal()); itemsTable.setAndLoadPersistedPreferences(ureq, "qpool-list-" + prefsKey); + listenTo(extendedSearchCtrl); VelocityContainer detailsVC = createVelocityContainer("item_list_details"); itemsTable.setDetailsRenderer(detailsVC, this); @@ -225,6 +226,16 @@ public abstract class AbstractItemListController extends FormBasicController @Override protected void event(UserRequest ureq, Controller source, Event event) { + if(extendedSearchCtrl == source) { + if(event == Event.CANCELLED_EVENT) { + String quickSearch = itemsTable.getQuickSearchString(); + if(StringHelper.containsNonWhitespace(quickSearch)) { + itemsTable.quickSearch(ureq, quickSearch); + } else { + itemsTable.resetSearch(ureq); + } + } + } super.event(ureq, source, event); } -- GitLab