protected function setGridResponse(ActionResponse $response = null) { if (empty($response)) { $jsonResponse = true; $response = new ActionResponse(); } $displayedColumns = $this->getRequestColumns(); $availableColumns = $this->getAvailableRequestColumns(); // sort available columns by display state (displayed columns first) $displayedAvailable = array_intersect_key($availableColumns, $displayedColumns); $notDisplayedAvailable = array_diff_key($availableColumns, $displayedColumns); $availableColumns = array_merge($displayedAvailable, $notDisplayedAvailable); $response->set('displayedColumns', $displayedColumns); $response->set('availableColumns', $availableColumns); $response->set('advancedSearchColumns', $this->getAdvancedSearchFields()); $response->set('columnWidths', $this->user->getPreference('columnWidth_' . get_class($this))); $response->set('massForm', $this->getMassForm()); $response->set('offset', $this->request->get('offset')); $response->set('totalCount', '0'); $response->set('filters', $this->request->get('filters')); $response->set('data', $this->lists(false, $displayedColumns)->getData()); if (isset($jsonResponse)) { return $response->getData(); } return $response; }