/** * Process ajax calls from DataTable widget to return records * * @param int $widgetId * @param array $data * @return \Ip\Response\Json */ public function post($widgetId, $data) { $post = ipRequest()->getPost(); if (isset($data['error']) || !isset($data['sourceId']) || !isset($data['tableTypeId'])) { return new \Ip\Response\Json(array('data' => '')); } $table = TableRepository::getTableOf($data['sourceId']); if ($table == null) { return new \Ip\Response\Json(array('data' => '')); } $tableType = TableType::get($data['tableTypeId']); $start = $post['start']; $length = $post['length']; $orderBy = $post['columns'][$post['order'][0]['column']]['data']; $orderDirection = $post['order'][0]['dir']; $searchValue = $post['search']['value']; $result = $table->getRecords($tableType->getSpecificColumns(), $start, $length, $orderBy, $orderDirection, $searchValue); return new \Ip\Response\Json($result); }