diff --git a/src/Forms/GridField/GridFieldConfig_RecordEditor.php b/src/Forms/GridField/GridFieldConfig_RecordEditor.php index 30fbd0f4b..8e30b3d02 100644 --- a/src/Forms/GridField/GridFieldConfig_RecordEditor.php +++ b/src/Forms/GridField/GridFieldConfig_RecordEditor.php @@ -1,6 +1,8 @@ addComponent($sort = new GridFieldSortableHeader()); $this->addComponent($filter = new GridFieldFilterHeader()); $this->addComponent(new GridFieldDataColumns()); - $this->addComponent(new GridFieldVersionedState([ 'Name', 'Title' ])); + // @todo Move to versioned module, add via extension instead + if (class_exists(Versioned::class)) { + $this->addComponent(new GridFieldVersionedState(['Name', 'Title'])); + } $this->addComponent(new GridFieldEditButton()); $this->addComponent(new GridFieldDeleteAction()); $this->addComponent(new GridFieldPageCount('toolbar-header-right')); diff --git a/src/Forms/GridField/GridFieldVersionedState.php b/src/Forms/GridField/GridFieldVersionedState.php index ba0abb605..44500f1b6 100644 --- a/src/Forms/GridField/GridFieldVersionedState.php +++ b/src/Forms/GridField/GridFieldVersionedState.php @@ -1,12 +1,21 @@ getModelClass(); $isModelVersioned = $model::has_extension(Versioned::class); - if (!$isModelVersioned) { return; } @@ -61,7 +73,7 @@ class GridFieldVersionedState implements GridField_ColumnProvider */ public function getColumnsHandled($gridField) { - return [$this->column]; + return $this->column ? [$this->column] : []; } /** @@ -74,7 +86,6 @@ class GridFieldVersionedState implements GridField_ColumnProvider */ public function getColumnContent($gridField, $record, $columnName) { - $flagContent = ''; $flags = $this->getStatusFlags($record); foreach ($flags as $class => $data) { @@ -140,13 +151,16 @@ class GridFieldVersionedState implements GridField_ColumnProvider * ) * ``` * - * @param DataObject $record - the record to check status for + * @param Versioned|DataObject $record - the record to check status for * @return array */ protected function getStatusFlags($record) { - $flags = array(); + if (!$record->hasExtension(Versioned::class)) { + return []; + } + $flags = []; if ($record->isOnLiveOnly()) { $flags['removedfromdraft'] = array( 'text' => _t(__CLASS__ . '.ONLIVEONLYSHORT', 'On live only'),