Listbox.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. namespace Dcat\Admin\Form\Field;
  3. /**
  4. * Class ListBox.
  5. *
  6. * @see https://github.com/istvan-ujjmeszaros/bootstrap-duallistbox
  7. */
  8. class Listbox extends MultipleSelect
  9. {
  10. public static $js = '@jquery.bootstrap-duallistbox';
  11. public static $css = '@jquery.bootstrap-duallistbox';
  12. protected $settings = [];
  13. public function settings(array $settings)
  14. {
  15. $this->settings = $settings;
  16. return $this;
  17. }
  18. public function render()
  19. {
  20. $settings = array_merge($this->settings, [
  21. 'infoText' => trans('admin.listbox.text_total'),
  22. 'infoTextEmpty' => trans('admin.listbox.text_empty'),
  23. 'infoTextFiltered' => trans('admin.listbox.filtered'),
  24. 'filterTextClear' => trans('admin.listbox.filter_clear'),
  25. 'filterPlaceHolder' => trans('admin.listbox.filter_placeholder'),
  26. ]);
  27. $settings = json_encode($settings);
  28. $this->script = <<<JS
  29. $("{$this->getElementClassSelector()}").bootstrapDualListbox($settings);
  30. JS;
  31. return parent::render();
  32. }
  33. }