From 0f8f5764ff9eacb5e55f0d56c393b1253c0293e6 Mon Sep 17 00:00:00 2001 From: Mathew Morris-Parker Date: Thu, 23 Oct 2025 11:59:07 +0100 Subject: [PATCH] Updated code for SS6 --- composer.json | 28 ++--- .../GridField/GridFieldDuplicateAction.php | 119 +++++++++--------- 2 files changed, 76 insertions(+), 71 deletions(-) diff --git a/composer.json b/composer.json index c7a9cdd..3eee6ab 100644 --- a/composer.json +++ b/composer.json @@ -1,15 +1,15 @@ { - "name": "jinjie/ss4-duplicate-dataobject", - "description": "Adds a duplicate button to GridField in the CMS that enables duplicating of dataobjects", - "type": "silverstripe-vendormodule", - "license": "MIT", - "authors": [ - { - "name": "Kong Jin Jie", - "email": "jinjie@swiftdev.sg" - } - ], - "require": { - "silverstripe/framework": "^5" - } -} + "name": "jinjie/ss4-duplicate-dataobject", + "description": "Adds a duplicate button to GridField in the CMS that enables duplicating of dataobjects", + "type": "silverstripe-vendormodule", + "license": "MIT", + "authors": [ + { + "name": "Kong Jin Jie", + "email": "jinjie@swiftdev.sg" + } + ], + "require": { + "silverstripe/framework": "^6" + } +} \ No newline at end of file diff --git a/src/Forms/GridField/GridFieldDuplicateAction.php b/src/Forms/GridField/GridFieldDuplicateAction.php index 378e8c0..d5ac1e9 100644 --- a/src/Forms/GridField/GridFieldDuplicateAction.php +++ b/src/Forms/GridField/GridFieldDuplicateAction.php @@ -8,72 +8,77 @@ use SilverStripe\Forms\GridField\GridField_ColumnProvider; use SilverStripe\Forms\GridField\GridField_FormAction; -class GridFieldDuplicateAction - implements - GridField_ColumnProvider, - GridField_ActionProvider +class GridFieldDuplicateAction implements GridField_ColumnProvider, GridField_ActionProvider { - public function augmentColumns($gridField, &$columns) - { - if (! in_array('Actions', $columns)) - { - $columns[] = 'Actions'; - } - } + #[\Override] + public function augmentColumns($gridField, &$columns) + { + if (! in_array('Actions', $columns)) + { + $columns[] = 'Actions'; + } + } - public function getColumnAttributes($gridField, $record, $columnNamme) - { - return ['class' => 'grid-field__col-compact']; - } + #[\Override] + public function getColumnAttributes($gridField, $record, $columnNamme) + { + return ['class' => 'grid-field__col-compact']; + } - public function getColumnMetadata($gridField, $columnName) - { - if ($columnName == 'Actions') - { - return ['title' => '']; - } - } + #[\Override] + public function getColumnMetadata($gridField, $columnName) + { + if ($columnName == 'Actions') + { + return ['title' => '']; + } + } - public function getColumnsHandled($gridField) - { - return ['Actions']; - } + #[\Override] + public function getColumnsHandled($gridField) + { + return ['Actions']; + } - public function getColumnContent($gridField, $record, $columnName) - { - if(!$record->canEdit()) return; + #[\Override] + public function getColumnContent($gridField, $record, $columnName) + { + if (!$record->canEdit()) return; - $field = GridField_FormAction::create( - $gridField, - 'DuplicateAction'.$record->ID, - false, - "duplicateobject", - ['RecordID' => $record->ID] - ) - ->addExtraClass('gridfield-button-duplicate btn--icon-md font-icon-page-multiple btn--no-text grid-field__icon-action') - ->setAttribute('title', 'Duplicate ' . $record->singular_name()) - ->setDescription('Duplicate ' . $record->singular_name()); + $field = GridField_FormAction::create( + $gridField, + 'DuplicateAction' . $record->ID, + false, + "duplicateobject", + ['RecordID' => $record->ID] + ) + ->addExtraClass('gridfield-button-duplicate btn--icon-md font-icon-page-multiple btn--no-text grid-field__icon-action') + ->setAttribute('title', 'Duplicate ' . $record->singular_name()) + ->setDescription('Duplicate ' . $record->singular_name()); - return $field->Field(); - } + return $field->Field(); + } - public function getActions($gridField) - { - return ['duplicateobject']; - } + #[\Override] + public function getActions($gridField) + { + return ['duplicateobject']; + } - public function handleAction(GridField $gridField, $actionName, $arguments, $data) - { - if($actionName == 'duplicateobject') { - $item = $gridField->getList()->byID($arguments['RecordID']); + #[\Override] + public function handleAction(GridField $gridField, $actionName, $arguments, $data) + { + if ($actionName == 'duplicateobject') + { + $item = $gridField->getList()->byID($arguments['RecordID']); - $clone = $item->duplicate(); + $clone = $item->duplicate(); - Controller::curr()->getResponse()->setStatusCode( - 200, - "{$item->Title} Duplicated" - ); - } - } -} \ No newline at end of file + Controller::curr()->getResponse()->setStatusCode( + 200, + "{$item->Title} Duplicated" + ); + } + } +}