CreateButton.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. namespace Dcat\Admin\Grid\Tools;
  3. use Dcat\Admin\Form;
  4. use Dcat\Admin\Grid;
  5. use Illuminate\Contracts\Support\Renderable;
  6. class CreateButton implements Renderable
  7. {
  8. /**
  9. * @var Grid
  10. */
  11. protected $grid;
  12. public function __construct(Grid $grid)
  13. {
  14. $this->grid = $grid;
  15. }
  16. protected function renderQuickCreateButton()
  17. {
  18. if (! $this->grid->option('show_quick_create_btn')) {
  19. return;
  20. }
  21. $new = trans('admin.new');
  22. $url = $this->grid->createUrl();
  23. [$width, $height] = $this->grid->option('dialog_form_area');
  24. Form::modal($new)
  25. ->click(".{$this->grid->rowName()}-create")
  26. ->success('LA.reload()')
  27. ->dimensions($width, $height)
  28. ->render();
  29. $text = $this->grid->option('show_create_btn') ? '<i class="fa fa-clone"></i>' : "<i class='ti-plus'></i><span class='hidden-xs'> &nbsp; $new</span>";
  30. return "<a data-url='$url' class='btn btn-sm btn-success {$this->grid->rowName()}-create'>$text</a>";
  31. }
  32. protected function renderCreateButton()
  33. {
  34. if (! $this->grid->option('show_create_btn')) {
  35. return;
  36. }
  37. $new = trans('admin.new');
  38. $url = $this->grid->createUrl();
  39. return "<a href='{$url}' class='btn btn-sm btn-success btn-mini'>
  40. <i class='ti-plus'></i><span class='hidden-xs'>&nbsp;&nbsp;{$new}</span>
  41. </a>";
  42. }
  43. public function render()
  44. {
  45. if (! $this->grid->option('show_create_btn') && ! $this->grid->option('show_quick_create_btn')) {
  46. return;
  47. }
  48. return "<div class='btn-group' style='margin-right:3px'>{$this->renderCreateButton()}{$this->renderQuickCreateButton()}</div>";
  49. }
  50. }