Source of file VersionedModelAdmin.php
Size: 2,520 Bytes - Last Modified: 2021-12-24T06:51:26+00:00
/var/www/docs.ssmods.com/process/src/code/VersionedModelAdmin.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | <?php namespace Heyday\VersionedDataObjects; use CMSForm; use Controller; use FieldList; use GridField; use GridFieldConfig_RecordEditor; use GridFieldExportButton; use GridFieldPrintButton; use ModelAdmin; /** * Class VersionedModelAdmin */ class VersionedModelAdmin extends ModelAdmin { /** * Customise the edit form so that It uses the VersionedDataObjectDetailsForm as well as make * sure that the reading stage is 'Stage'. * @param null $id * @param null $fields * @return mixed */ public function getEditForm($id = null, $fields = null) { VersionedReadingMode::setStageReadingMode(); $list = $this->getList(); $exportButton = new GridFieldExportButton('buttons-before-left'); $exportButton->setExportColumns($this->getExportFields()); $listField = GridField::create( $this->sanitiseClassName($this->modelClass), false, $list, $fieldConfig = GridFieldConfig_RecordEditor::create($this->stat('page_length')) ->addComponent($exportButton) ->removeComponentsByType('GridFieldFilterHeader') ->removeComponentsByType('GridFieldDeleteAction') ->addComponents(new GridFieldPrintButton('buttons-before-left')) ->removeComponentsByType('GridFieldDetailForm') ->addComponent(new VersionedDataObjectDetailsForm()) ); // Validation if (singleton($this->modelClass)->hasMethod('getCMSValidator')) { $detailValidator = singleton($this->modelClass)->getCMSValidator(); $listField->getConfig()->getComponentByType('GridFieldDetailForm')->setValidator($detailValidator); } $form = CMSForm::create( $this, 'EditForm', new FieldList($listField), new FieldList() )->setHTMLID('Form_EditForm'); $form->setResponseNegotiator($this->getResponseNegotiator()); $form->addExtraClass('cms-edit-form cms-panel-padded center'); $form->setTemplate($this->getTemplatesWithSuffix('_EditForm')); $editFormAction = Controller::join_links($this->Link($this->sanitiseClassName($this->modelClass)), 'EditForm'); $form->setFormAction($editFormAction); $form->setAttribute('data-pjax-fragment', 'CurrentForm'); $this->extend('updateEditForm', $form); VersionedReadingMode::restoreOriginalReadingMode(); return $form; } } |