/** * Get list of items. Returns JSON reply with * ORM object field data; * Filtering, pagination and search are available * Sends JSON reply in the result * and closes the application. */ public function listAction() { $pager = Request::post('pager', 'array', array()); $filter = Request::post('filter', 'array', array()); $query = Request::post('search', 'string', false); $filter = array_merge($filter, Request::extFilters()); $dataModel = Model::factory($this->_objectName); if (isset($filter['date']) && !empty($filter['date'])) { $date = date('Y-m-d', strtotime($filter['date'])); $filter['date'] = new Db_Select_Filter('date', array($date . ' 00:00:00', $date . ' 23:59:59'), Db_Select_Filter::BETWEEN); } $data = $dataModel->getListVc($pager, $filter, $query, $this->_listFields); if (empty($data)) { Response::jsonSuccess(array(), array('count' => 0)); } $userIds = Utils::fetchCol('user_id', $data); $userData = array(); if (!empty($userIds)) { $userData = Model::factory('User')->getList(false, array('id' => $userIds), array('id', 'name')); if (!empty($userData)) { $userData = Utils::rekey('id', $userData); } foreach ($data as $k => &$v) { if (isset($userData[$v['user_id']])) { $v['user_name'] = $userData[$v['user_id']]['name']; } else { $v['user_name'] = ''; } } } unset($v); Response::jsonSuccess($data, array('count' => $dataModel->getCount($filter, $query))); }
/** * Get list of items. Returns JSON reply with * ORM object field data; * Filtering, pagination and search are available * Sends JSON reply in the result * and closes the application. */ public function listAction() { $pager = Request::post('pager', 'array', array()); $filter = Request::post('filter', 'array', array()); $query = Request::post('search', 'string', false); $filter = array_merge($filter, Request::extFilters()); $dataModel = Model::factory($this->_objectName); $data = $dataModel->getListVc($pager, $filter, $query, $this->_listFields); if (empty($data)) { Response::jsonSuccess(array(), array('count' => 0)); } Response::jsonSuccess($data, array('count' => $dataModel->getCount($filter, $query))); }
/** * (non-PHPdoc) * @see Backend_Controller_Crud::listAction() */ public function listAction() { $pager = Request::post('pager', 'array', array()); $filter = Request::post('filter', 'array', array()); $query = Request::post('search', 'string', false); $filter = array_merge($filter, Request::extFilters()); $dataModel = Model::factory($this->_objectName); $vc = Model::factory('vc'); $data = $dataModel->getListVc($pager, $filter, $query, $this->_listFields, 'user', 'updater'); if (empty($data)) { Response::jsonSuccess(array(), array('count' => 0)); } $ids = Utils::fetchCol('id', $data); $maxRevisions = $vc->getLastVersion($this->_objectName, $ids); foreach ($data as $k => &$v) { if (isset($maxRevisions[$v['id']])) { $v['last_version'] = $maxRevisions[$v['id']]; } else { $v['last_version'] = 0; } } Response::jsonSuccess($data, array('count' => $dataModel->getCount($filter, $query))); }