/** * Set $this->filter values after filter form submitted * @param Form $form * @return void */ public function filterSucceeded(Form $form) { if ($this->snippets_set) { return; } $values = $form->getValues(); if ($this->getPresenter()->isAjax()) { if (isset($form['group_action']['submit']) && $form['group_action']['submit']->isSubmittedBy()) { return; } } /** * Inline edit */ $inline_edit = $form['inline_edit']; if (isset($inline_edit) && isset($inline_edit['submit']) && isset($inline_edit['cancel'])) { if ($inline_edit['submit']->isSubmittedBy() || $inline_edit['cancel']->isSubmittedBy()) { $id = $form->getHttpData(Form::DATA_LINE, 'inline_edit[_id]'); $primary_where_column = $form->getHttpData(Form::DATA_LINE, 'inline_edit[_primary_where_column]'); if ($inline_edit['submit']->isSubmittedBy()) { $this->inlineEdit->onSubmit($id, $values->inline_edit); if ($this->getPresenter()->isAjax()) { $this->getPresenter()->payload->_datagrid_inline_edited = $id; } } $this->redrawItem($id, $primary_where_column); return; } } /** * Inline add */ $inline_add = $form['inline_add']; if (isset($inline_add) && isset($inline_add['submit']) && isset($inline_add['cancel'])) { if ($inline_add['submit']->isSubmittedBy() || $inline_add['cancel']->isSubmittedBy()) { if ($inline_add['submit']->isSubmittedBy()) { $this->inlineAdd->onSubmit($values->inline_add); if ($this->getPresenter()->isAjax()) { $this->getPresenter()->payload->_datagrid_inline_added = TRUE; } } return; } } /** * Filter itself */ $values = $values['filter']; foreach ($values as $key => $value) { /** * Session stuff */ $this->saveSessionData($key, $value); /** * Other stuff */ $this->filter[$key] = $value; } if ($this->getPresenter()->isAjax()) { $this->getPresenter()->payload->_datagrid_sort = []; foreach ($this->columns as $key => $column) { if ($column->isSortable()) { $this->getPresenter()->payload->_datagrid_sort[$key] = $this->link('sort!', ['sort' => $column->getSortNext()]); } } } $this->reload(); }