CreateButton.php
1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?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()}"
);
}
}