/** * Resets all filters of filterbox * * @param string $filterboxIdentifier Identifier of filter which should be reset * @return string Rendered reset action */ public function resetAction($filterboxIdentifier) { if ($this->filterboxCollection->hasItem($filterboxIdentifier)) { $this->filterboxCollection->getFilterboxByFilterboxIdentifier($filterboxIdentifier)->reset(); } $this->resetPagers(); $this->redirect('list'); }
/** * Resets a single filter * * Here we reset a single filter within a filterbox. Make sure to give a full qualified filter identifier * which consists of filterboxIdentifier.filterIdentifier. * * @param string $fullQualifiedFilterIdentifier FilterboxIdentifier.FilterIdentifier Identifier of filter to be reseted * @return string Rendered resetFilter Action */ public function resetFilterAction($fullQualifiedFilterIdentifier) { // TODO refactor me, as we use this twice! list($filterboxIdentifier, $filterIdentifier) = explode('.', $fullQualifiedFilterIdentifier); if ($this->filterboxCollection->hasItem($filterboxIdentifier)) { $filterbox = $this->filterboxCollection->getFilterboxByFilterboxIdentifier($filterboxIdentifier); if ($filterbox->hasItem($filterIdentifier)) { $filterbox->getFilterByFilterIdentifier($filterIdentifier)->reset(); } } /** * TODO try to figure out a way how to handle this without redirect * * The problem is, that although GP-vars mapping is done automatically, * we cannot trigger any action when resetting filterboxes without using * the controller. The controller can be executed "too late", so that the filters * are not reset, if their values are requested. * * We should introduce a "global" controller that handles certain actions * before any other controller (and only once!). */ $this->redirect('show'); }