Пример #1
0
 /**
  * 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;
 }
Пример #2
0
 public function getTableTypeIdAttribute($value)
 {
     return TableType::where('id', '=', $value)->first()->type;
 }
Пример #3
0
 /**
  * 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);
 }