/** * Creates the widgets edit form * * @return \Ip\Form * @throws \Ip\Exception */ public static function editForm() { $form = new \Ip\Form(); $form->setEnvironment(\Ip\Form::ENVIRONMENT_ADMIN); $form->addFieldset(new \Ip\Form\Fieldset(__('Source data', 'DataTableWidget-admin', false))); $field = new SingleFile(array('name' => 'sourceFile', 'label' => __('File', 'DataTableWidget-admin', false) . ':')); $form->addField($field); $form->addFieldset(new \Ip\Form\Fieldset(__('View', 'DataTableWidget-admin', false))); $tableTypes = TableType::getAllAsArray(); $values = array(); foreach ($tableTypes as $tableType) { $values[] = array($tableType['id'], $tableType['name']); } $field = new \Ip\Form\Field\Select(array('name' => 'tableTypeId', 'label' => __('Table type', 'DataTableWidget-admin', false) . ':', 'values' => $values)); $field->addValidator('Required'); $form->addField($field); return $form; }
public function getTableTypeIdAttribute($value) { return TableType::where('id', '=', $value)->first()->type; }
/** * 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); }