Source of file GridFieldAddExistingSearchButton.php
Size: 2,607 Bytes - Last Modified: 2021-12-23T10:25:33+00:00
/var/www/docs.ssmods.com/process/src/src/GridFieldAddExistingSearchButton.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 | <?php namespace Symbiote\GridFieldExtensions; use SilverStripe\Forms\GridField\GridField_HTMLProvider; use SilverStripe\Forms\GridField\GridField_URLHandler; use SilverStripe\ORM\SS_List; use SilverStripe\View\ArrayData; /** * A modal search dialog which uses search context to search for and add * existing records to a grid field. */ class GridFieldAddExistingSearchButton implements GridField_HTMLProvider, GridField_URLHandler { private static $allowed_actions = array( 'handleSearch' ); protected $title; protected $fragment; protected $searchList; /** * @param string $fragment */ public function __construct($fragment = 'buttons-before-left') { $this->fragment = $fragment; $this->title = _t('GridFieldExtensions.ADDEXISTING', 'Add Existing'); } /** * @return string */ public function getTitle() { return $this->title; } /** * @param string $title * @return GridFieldAddExistingSearchButton $this */ public function setTitle($title) { $this->title = $title; return $this; } /** * @return string */ public function getFragment() { return $this->fragment; } /** * @param string $fragment * @return GridFieldAddExistingSearchButton $this */ public function setFragment($fragment) { $this->fragment = $fragment; return $this; } /** * Sets a custom list to use to provide the searchable items. * * @param SS_List $list * @return GridFieldAddExistingSearchButton $this */ public function setSearchList(SS_List $list) { $this->searchList = $list; return $this; } /** * @return SS_List|null */ public function getSearchList() { return $this->searchList; } public function getHTMLFragments($grid) { GridFieldExtensions::include_requirements(); $data = ArrayData::create([ 'Title' => $this->getTitle(), 'Classes' => 'action btn btn-primary font-icon-search add-existing-search', 'Link' => $grid->Link('add-existing-search'), ]); return [ $this->fragment => $data->renderWith(__CLASS__), ]; } public function getURLHandlers($grid) { return array( 'add-existing-search' => 'handleSearch' ); } public function handleSearch($grid, $request) { return new GridFieldAddExistingSearchHandler($grid, $this); } } |