Exemple #1
0
 /**
  * @return array
  */
 protected function asyncTable()
 {
     $columns = $this->modelItem->getColumns();
     $params = [];
     $params['offset'] = Input::get('start');
     $params['limit'] = Input::get('length');
     $params['search'] = Input::get('search.value');
     $orderData = Input::get('order')[0];
     $columnToOrder = $columns[intval($orderData['column'])];
     $params['orderBy'] = $columnToOrder->getName();
     if (method_exists($columnToOrder, 'getOrderBy')) {
         $params['orderBy'] = $columnToOrder->getOrderBy();
     }
     $params['orderDest'] = $orderData['dir'];
     $data = $this->modelRepository->tableData($params);
     $rowsCount = count($data['rows']);
     $result = [];
     $result['draw'] = Input::get('draw');
     $result['recordsTotal'] = $data['totalCount'];
     $result['recordsFiltered'] = $data['totalCount'];
     $result['data'] = [];
     foreach ($data['rows'] as $row) {
         $_row = [];
         foreach ($columns as $column) {
             $_row[] = $column->render($row, $rowsCount);
         }
         $result['data'][] = $_row;
     }
     return $result;
 }
Exemple #2
0
 /**
  * @param WithJoinEloquentBuilder $originalQuery
  * @param $search
  * @internal param $query
  */
 protected function addSearchToQuery(WithJoinEloquentBuilder $originalQuery, $search)
 {
     $originalQuery->getQuery()->whereNested(function (Builder $query) use($search, $originalQuery) {
         $table = $this->instance->getTable();
         $columns = $this->getColumns($table);
         foreach ($columns as $column => $type) {
             $field = implode('.', [$table, $column]);
             if ($this->isDateColumn($type)) {
                 $field = DB::raw('convert(' . $field . ' using utf8)');
             }
             $query->orWhere($field, 'like', $search);
         }
         /** @var ColumnInterface[] $displayColumns */
         $displayColumns = $this->modelItem->getColumns();
         foreach ($displayColumns as $column) {
             $name = $column->getName();
             if (strpos($name, '.') !== false && $this->inWith($name, $originalQuery) && $this->modelItem->isWithJoinEnabled()) {
                 $query->orWhere($name, 'like', $search);
             }
         }
     });
 }
Exemple #3
0
 /** @test */
 public function it_stores_columns()
 {
     $column = Mockery::mock('\\SleepingOwl\\Admin\\Columns\\Column\\ColumnString');
     $modelItem = new ModelItem('\\Foo\\Bar\\Model');
     $modelItem->addColumn($column);
     $this->assertTrue(in_array($column, $modelItem->getColumns()), 'Column havent been added to model item.');
 }