Fields()->fieldByName($this->sanitiseClassName($this->modelClass)); return $this->modifyGridField($form, $gridField); } /** * If the GridField is for DMSDocument then add a custom "add" button. If it's for DMSDocumentSet then * update the display fields to include some extra columns that are only for this ModelAdmin, so cannot * be added directly to the model's display fields. * * @param CMSForm $form * @param GridField $gridField * @return CMSForm */ protected function modifyGridField(CMSForm $form, GridField $gridField) { $gridFieldConfig = $gridField->getConfig(); if ($this->modelClass === 'DMSDocument') { $gridFieldConfig->removeComponentsByType('GridFieldAddNewButton'); $gridFieldConfig->addComponent(new DMSGridFieldAddNewButton('buttons-before-left'), 'GridFieldExportButton'); } elseif ($this->modelClass === 'DMSDocumentSet') { $dataColumns = $gridFieldConfig->getComponentByType('GridFieldDataColumns'); $fields = $dataColumns->getDisplayFields($gridField); $fields = array('Title' => 'Title', 'Page.Title' => 'Page') + $fields; $dataColumns->setDisplayFields($fields); } return $form; } }