示例#1
0
 /**
  * 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();
 }