From abfeb0cccddd0af9254756208d5374b26d2bae7c Mon Sep 17 00:00:00 2001 From: Will Rossiter Date: Mon, 23 Oct 2017 22:36:58 +1300 Subject: [PATCH 1/2] =?UTF-8?q?FIX=20Don=E2=80=99t=20override=20ItemReques?= =?UTF-8?q?t=20if=20already=20versioned?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If a developer customises the ItemRequest don’t override it as long as it is already a versioned item hander. --- src/VersionedGridFieldDetailForm.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/VersionedGridFieldDetailForm.php b/src/VersionedGridFieldDetailForm.php index 8a9ef468..fa593217 100644 --- a/src/VersionedGridFieldDetailForm.php +++ b/src/VersionedGridFieldDetailForm.php @@ -20,12 +20,21 @@ class VersionedGridFieldDetailForm extends Extension */ public function updateItemRequestClass(&$class, $gridField, $record, $requestHandler) { - // Conditionally use a versioned item handler + // Conditionally use a versioned item handler if it doesn't already have one. if ($record && $record->has_extension(Versioned::class) && $record->config()->get('versioned_gridfield_extensions') ) { - $class = VersionedGridFieldItemRequest::class; + // don't override custom classes if they already subclass this + if (!$class) { + $class = VersionedGridFieldItemRequest::class; + + return; + } + + if (!is_subclass_of($class, VersionedGridFieldItemRequest::class)) { + $class = VersionedGridFieldItemRequest::class; + } } } } From 427695106c49a538ca58baf5c7628f5a884121c2 Mon Sep 17 00:00:00 2001 From: Robbie Averill Date: Wed, 25 Oct 2017 21:15:49 +1300 Subject: [PATCH 2/2] FIX Combine if statements to simplify logic --- src/VersionedGridFieldDetailForm.php | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/VersionedGridFieldDetailForm.php b/src/VersionedGridFieldDetailForm.php index fa593217..ada689c9 100644 --- a/src/VersionedGridFieldDetailForm.php +++ b/src/VersionedGridFieldDetailForm.php @@ -24,17 +24,9 @@ public function updateItemRequestClass(&$class, $gridField, $record, $requestHan if ($record && $record->has_extension(Versioned::class) && $record->config()->get('versioned_gridfield_extensions') + && (!$class || !is_subclass_of($class, VersionedGridFieldItemRequest::class)) ) { - // don't override custom classes if they already subclass this - if (!$class) { - $class = VersionedGridFieldItemRequest::class; - - return; - } - - if (!is_subclass_of($class, VersionedGridFieldItemRequest::class)) { - $class = VersionedGridFieldItemRequest::class; - } + $class = VersionedGridFieldItemRequest::class; } } }