Source of file HasOneMiniGridField.php
Size: 1,805 Bytes - Last Modified: 2021-12-24T06:48:32+00:00
/var/www/docs.ssmods.com/process/src/src/Forms/HasOneMiniGridField.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | <?php namespace Fromholdio\MiniGridField\Forms; use Fromholdio\MiniGridField\ORM\HasOneRelationList; use SilverStripe\Forms\GridField\GridFieldDetailForm; use SilverStripe\Versioned\Versioned; class HasOneMiniGridField extends MiniGridField { protected $record; public function __construct($name, $title, $parent, $showLimitMessage = null, $relationName = null) { parent::__construct($name, $title, $parent, null, 1, $showLimitMessage, $relationName); $this->setRecord($parent->{$this->getRelationName()}()); } public function getGridField() { $field = parent::getGridField(); $field->addExtraClass('hasone-minigridfield'); return $field; } public function getGridConfig() { $config = parent::getGridConfig(); $detailForm = $config->getComponentByType(GridFieldDetailForm::class); $detailForm->setShowPagination(false); $detailForm->setShowAdd(false); return $config; } public function getGridList() { $parent = $this->parent; $list = HasOneRelationList::create($parent, $this->record, $this->getRelationName()); $list = $list->filter('ID', $this->record->ID); $this->extend('updateGridList', $list); return $list; } public function isVersioned() { $parent = $this->parent; $relation = $parent->{$this->getRelationName()}(); return $relation->hasExtension(Versioned::class); } public function isSorted() { return false; } public function getLimit() { return 1; } public function getRecord() { return $this->record; } public function setRecord($record) { $this->record = $record; return $this; } } |