public function build($view = '') { $view == '' and $view = 'rapyd::datagrid'; parent::build(); Persistence::save(); foreach ($this->data as $tablerow) { $row = new Row($tablerow); foreach ($this->columns as $column) { $cell = new Cell($column->name); $sanitize = count($column->filters) || $column->cell_callable ? false : true; $value = $this->getCellValue($column, $tablerow, $sanitize); $cell->value($value); $cell->parseFilters($column->filters); if ($column->cell_callable) { $callable = $column->cell_callable; $cell->value($callable($cell->value)); } $row->add($cell); } if (count($this->row_callable)) { foreach ($this->row_callable as $callable) { $callable($row); } } $this->rows[] = $row; } return \View::make($view, array('dg' => $this, 'buttons' => $this->button_container, 'label' => $this->label)); }
protected function makeRow($item) { $row = new Row($item); $row->children = array(); $row->attributes(array('class' => 'datatree-item', 'data-id' => $row->data->getKey())); $index = 0; foreach ($this->columns as $column) { $index++; $cell = new Cell($column->name); $attrs = array(); $attrs['data-field-name'] = strpos($column->name, '{{') === false ? $column->name : '_blade_' . $index; $cell->attributes($attrs); $sanitize = count($column->filters) || $column->cell_callable ? false : true; $value = $this->getCellValue($column, $item, $sanitize); $cell->value($value); $cell->parseFilters($column->filters); if ($column->cell_callable) { $callable = $column->cell_callable; $cell->value($callable($cell->value)); } $row->add($cell); } if (count($this->row_callable)) { foreach ($this->row_callable as $callable) { $callable($row); } } return $row; }