diff --git a/src/Forms/GridField/GridFieldConfig_RecordEditor.php b/src/Forms/GridField/GridFieldConfig_RecordEditor.php index c67d116bb..5b31ddbef 100644 --- a/src/Forms/GridField/GridFieldConfig_RecordEditor.php +++ b/src/Forms/GridField/GridFieldConfig_RecordEditor.php @@ -21,6 +21,7 @@ class GridFieldConfig_RecordEditor extends GridFieldConfig $this->addComponent($sort = new GridFieldSortableHeader()); $this->addComponent($filter = new GridFieldFilterHeader()); $this->addComponent(new GridFieldDataColumns()); + $this->addComponent(new GridFieldVersionedState()); $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 new file mode 100644 index 000000000..f05ebc9b2 --- /dev/null +++ b/src/Forms/GridField/GridFieldVersionedState.php @@ -0,0 +1,111 @@ +getDisplayFields()} + * @see {@link GridFieldDataColumns}. + * + * @param GridField $gridField + * @param array $columns List reference of all column names. + */ + public function augmentColumns($gridField, &$columns) + { + $model = $gridField->getModelClass(); + $isModelVersioned = $model::has_extension(Versioned::class); + + if(!$isModelVersioned) { + return; + } + + $matchedVersionedFields = array_intersect( + $columns, + $this->versionedLabelFields + ); + + if (count($matchedVersionedFields) > 0) { + $this->column = array_values($matchedVersionedFields)[0]; + } + // Use first column + else if ($columns) { + $this->column = $columns[0]; + } + } + + /** + * Names of all columns which are affected by this component. + * + * @param GridField $gridField + * @return array + */ + public function getColumnsHandled($gridField) + { + return [$this->column]; + } + + /** + * HTML for the column, content of the