| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- <?php
- namespace Dcat\Admin\Grid\Tools;
- use Dcat\Admin\Form;
- use Dcat\Admin\Grid;
- use Illuminate\Contracts\Support\Renderable;
- class CreateButton implements Renderable
- {
- /**
- * @var Grid
- */
- protected $grid;
- protected $mode;
- public function __construct(Grid $grid)
- {
- $this->grid = $grid;
- $this->mode = $grid->option('create_mode');
- }
- protected function renderDialogCreateButton()
- {
- if ($this->mode !== Grid::CREATE_MODE_DIALOG) {
- return;
- }
- $new = trans('admin.new');
- $url = $this->grid->getCreateUrl();
- $class = $this->grid->makeName('dialog-create');
- [$width, $height] = $this->grid->option('dialog_form_area');
- Form::dialog($new)
- ->click(".{$class}")
- ->success('Dcat.reload()')
- ->dimensions($width, $height);
- return "<button data-url='$url' class='btn btn-primary {$class}'><i class='feather icon-plus'></i><span class='d-none d-sm-inline'> $new</span></button>";
- }
- protected function renderCreateButton()
- {
- if ($this->mode && $this->mode !== Grid::CREATE_MODE_DEFAULT) {
- return;
- }
- $new = trans('admin.new');
- $url = $this->grid->getCreateUrl();
- return "<a href='{$url}' class='btn btn-primary'>
- <i class='feather icon-plus'></i><span class='d-none d-sm-inline'> {$new}</span>
- </a>";
- }
- public function render()
- {
- return $this->grid->tools()->format(
- "{$this->renderCreateButton()}{$this->renderDialogCreateButton()}"
- );
- }
- }
|