Source of file TeamGroupPageExtension.php
Size: 3,185 Bytes - Last Modified: 2021-12-23T10:59:45+00:00
/var/www/docs.ssmods.com/process/src/src/Extensions/TeamGroupPageExtension.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 | <?php namespace WWN\Team\Extensions; use SilverStripe\Forms\CheckboxField; use SilverStripe\Forms\DropdownField; use SilverStripe\Forms\FieldGroup; use SilverStripe\Forms\FieldList; use SilverStripe\Forms\GridField\GridField; use SilverStripe\Forms\GridField\GridFieldConfig_RecordEditor; use SilverStripe\Forms\LiteralField; use SilverStripe\Forms\TextField; use SilverStripe\ORM\DataExtension; use SilverStripe\ORM\DataList; use SilverStripe\ORM\ManyManyList; use Symbiote\GridFieldExtensions\GridFieldOrderableRows; use WWN\Team\TeamGroup; /** * TeamGroupPageExtension * * @package wwn-page * @property bool $EnableTeamGroupExtension * @method ManyManyList TeamGroups() */ class TeamGroupPageExtension extends DataExtension { /** * @var string[] */ private static $db = [ 'EnableTeamGroupExtension' => 'Boolean', ]; /** * @var string[] */ private static $many_many = [ 'TeamGroups' => TeamGroup::class, ]; /** * @var string[][] */ private static $many_many_extraFields = [ 'TeamGroups' => [ 'Sort' => 'Int', ], ]; /** * @var false[] */ private static $defaults = [ 'EnableTeamGroupExtension' => false, ]; /** * @param FieldList $fields */ public function updateCMSFields(FieldList $fields) { if ($this->owner->ID && $this->owner->EnableTeamGroupExtension) { $grid = GridField::create( 'TeamGroups', _t('WWN\Team\Extensions\TeamGroupPageExtension.many_many_TeamGroups', 'Groups'), $this->owner->TeamGroups(), GridFieldConfig_RecordEditor::create() ->addComponent(new GridFieldOrderableRows('Sort')) ); $fields->findOrMakeTab('Root.TeamGroups', _t( 'WWN\Team\Extensions\TeamGroupPageExtension.many_many_TeamGroups', 'Groups' ) ); $fields->addFieldToTab( 'Root.TeamGroups', $grid ); } else { $fields->removeByName('TeamGroups'); } parent::updateCMSFields($fields); } /** * @param FieldList $fields */ public function updateSettingsFields(FieldList $fields) { $fields->addFieldsToTab( 'Root.Settings', [ $group = FieldGroup::create( CheckboxField::create( 'EnableTeamGroupExtension', _t( 'WWN\Team\Extensions\TeamGroupPageExtension.db_EnableTeamGroupExtension', 'Enable team groups on page' ) ) ), $group->setTitle(_t( 'WWN\Team\Extensions\TeamGroupPageExtension.PLURALNAME', 'Team groups' )), ] ); } /** * @return DataList|ManyManyList */ public function getSortedTeamGroups() { return $this->owner->TeamGroups()->sort('Sort'); } } |