public function updateCMSFields(FieldList $fields) { if (!$fields->hasTabSet()) { return $fields; } $tab = $fields->fieldByName('Root.Content') ? 'Root.Content.Media' : 'Root.Media'; $fields->removeByName(SiteMedia::$plural_name); if ($this->owner->ShowSiteMedia() && $this->owner->ID) { //@todo implement shared $shared = false; $field = new GridField(SiteMedia::$plural_name, 'SiteMedia', $this->owner->SiteMedias(), GridFieldConfig_RelationEditor::create()); $config = $field->getConfig(); $config->removeComponentsByType('GridFieldDeleteAction'); $config->addComponents(new GridFieldOrderableRows('SortOrder'), new GridFieldDeleteAction($shared)); if (!$shared) { $config->removeComponentsByType('GridFieldAddExistingAutocompleter'); } $config->getComponentByType('GridFieldAddNewButton')->setButtonName('Add Media'); $field->setTitle('Media'); $fields->addFieldToTab($tab, $field); } return $fields; }