Exemple #1
0
 /**
  * Render row item into template
  * @param  Row   $row
  * @return mixed
  */
 public function render(Row $row)
 {
     /**
      * Renderer function may be used
      */
     if ($renderer = $this->getRenderer()) {
         if (!$renderer->getConditionCallback()) {
             return call_user_func_array($renderer->getCallback(), [$row->getItem()]);
         }
         if (call_user_func_array($this->getRenderer(), [$row->getItem()])) {
             return call_user_func_array($renderer->getCallback(), [$row->getItem()]);
         }
     }
     $a = Html::el('a')->href($this->grid->getPresenter()->link($this->href, $this->getItemParams($row)));
     if ($this->icon) {
         $a->add(Html::el('span')->class(DataGrid::$icon_prefix . $this->icon));
         if (strlen($this->name)) {
             $a->add(' ');
         }
     }
     $a->add($this->name);
     if ($this->title) {
         $a->title($this->title);
     }
     if ($this->class) {
         $a->class($this->class);
     }
     if ($confirm = $this->getConfirm($row)) {
         $a->data('confirm', $confirm);
     }
     return $a;
 }
Exemple #2
0
 /**
  * Call export callback
  * @param  array    $data
  * @param  DataGrid $grid
  * @return void
  */
 public function invoke(array $data, DataGrid $grid)
 {
     $columns = $this->getColumns() ?: $grid->getColumns();
     $csv_data_model = new CsvDataModel($data, $columns, $grid->getTranslator());
     if ($grid->getPresenter() instanceof Nette\Application\UI\Presenter) {
         $grid->getPresenter()->sendResponse(new CSVResponse($csv_data_model->getSimpleData(), $this->name, $this->output_encoding, $this->delimiter));
         exit(0);
     }
 }
Exemple #3
0
 /**
  * Create link to custom destination
  * @param  DataGrid $grid
  * @param  string   $href
  * @param  array    $params
  * @return string
  * @throws DataGridHasToBeAttachedToPresenterComponentException
  * @throws \InvalidArgumentException
  */
 protected function createLink(DataGrid $grid, $href, $params)
 {
     try {
         $parent = $grid->getParent();
         return $parent->link($href, $params);
     } catch (DataGridHasToBeAttachedToPresenterComponentException $e) {
         $parent = $grid->getPresenter();
     } catch (\InvalidArgumentException $e) {
         $parent = $grid->getPresenter();
     }
     return $parent->link($href, $params);
 }
Exemple #4
0
 /**
  * Call export callback
  * @param  array    $data
  * @param  DataGrid $grid
  * @return void
  */
 public function invoke(array $data, DataGrid $grid)
 {
     $columns = $this->getColumns() ?: $grid->getColumns();
     $csv_data_model = new CsvDataModel($data, $columns);
     $grid->getPresenter()->sendResponse(new CSVResponse($csv_data_model->getSimpleData(), $this->name));
     exit(0);
 }
 /**
  * Render row item into template
  * @param  Row   $row
  * @return mixed
  */
 public function render(Row $row)
 {
     /**
      * Renderer function may be used
      */
     if ($renderer = $this->getRenderer()) {
         if (!$renderer->getConditionCallback()) {
             return call_user_func_array($renderer->getCallback(), [$row->getItem()]);
         }
         if (call_user_func_array($renderer->getConditionCallback(), [$row->getItem()])) {
             return call_user_func_array($renderer->getCallback(), [$row->getItem()]);
         }
     }
     $value = parent::render($row);
     $href = $this->grid->getPresenter()->link($this->href, $this->getItemParams($row));
     $a = Html::el('a')->href($href)->setText($value);
     if ($this->title) {
         $a->title($this->title);
     }
     if ($this->class) {
         $a->class($this->class);
     }
     return $a;
 }