Source of file LocationCategory.php
Size: 3,487 Bytes - Last Modified: 2021-12-24T06:46:21+00:00
/var/www/docs.ssmods.com/process/src/src/objects/LocationCategory.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 | <?php namespace Dynamic\Locator; use SilverStripe\Forms\GridField\GridField; use SilverStripe\Forms\GridField\GridFieldAddExistingAutocompleter; use SilverStripe\Forms\GridField\GridFieldAddNewButton; use SilverStripe\Forms\GridField\GridFieldConfig_RelationEditor; use SilverStripe\ORM\DataObject; use SilverStripe\ORM\ManyManyList; use SilverStripe\Security\Permission; use Symbiote\GridFieldExtensions\GridFieldAddExistingSearchButton; /** * Class LocationCategory * * @property string $Name * @method Locations|ManyManyList LocationSet() * @method Locators|ManyManyList Locators() */ class LocationCategory extends DataObject { /** * @var string */ private static $singular_name = 'Category'; /** * @var string */ private static $plural_name = 'Categories'; /** * @var array */ private static $db = array( 'Name' => 'Varchar(100)', ); /** * @var array */ private static $belongs_many_many = array( 'Locators' => Locator::class, 'LocationSet' => Location::class, ); /** * @var string */ private static $table_name = 'LocationCategory'; /** * @var string */ private static $default_sort = 'Name'; /** * @return \SilverStripe\Forms\FieldList */ public function getCMSFields() { $this->beforeUpdateCMSFields(function ($fields) { $fields->removeByName([ 'Locations', 'LocationSet', 'Locators', 'LinkTracking', 'FileTracking', ]); if ($this->ID) { // Locations $config = GridFieldConfig_RelationEditor::create(); $config->removeComponentsByType([ GridFieldAddExistingAutocompleter::class, GridFieldAddNewButton::class ]) ->addComponents([ new GridFieldAddExistingSearchButton(), ]); $locations = $this->Locations(); $locationField = GridField::create('Locations', 'Locations', $locations, $config); $fields->addFieldsToTab('Root.Main', array( $locationField, )); } }); $fields = parent::getCMSFields(); return $fields; } /** * For backwards compatability * @return Locations|ManyManyList */ public function Locations() { return $this->LocationSet(); } /** * @param null $member * @param array $context * @return bool */ public function canView($member = null, $context = []) { return true; } /** * @param null $member * @param array $context * @return bool|int */ public function canEdit($member = null, $context = []) { return Permission::check('Location_EDIT', 'any', $member); } /** * @param null $member * @param array $context * @return bool|int */ public function canDelete($member = null, $context = []) { return Permission::check('Location_DELETE', 'any', $member); } /** * @param null $member * @param array $context * @return bool|int */ public function canCreate($member = null, $context = []) { return Permission::check('Location_CREATE', 'any', $member); } } |