From dac2d1ad054ff25f845139ef0d91723e6e091f28 Mon Sep 17 00:00:00 2001 From: Stevie Mayhew Date: Wed, 19 Nov 2014 11:34:32 +1300 Subject: [PATCH] FEATURE: allow better buttons to be entirely disabled on certain dataobjects --- README.md | 8 ++++++++ code/extensions/BetterButtonDataObject.php | 7 +++++++ code/extensions/GridFieldBetterButtonsItemRequest.php | 3 +++ 3 files changed, 18 insertions(+) diff --git a/README.md b/README.md index 702eba2..399db7a 100755 --- a/README.md +++ b/README.md @@ -190,3 +190,11 @@ Sometimes, you might not want to sent a request to the controller at all. For th ![Screenshot](http://i.cubeupload.com/YbbhL7.png) +### Disabling Better Buttons + +Sometimes you might find it necessary to disable better buttons on certain classes. You can do this by changing the static `better_buttons_enabled` to be false via YML configuration. + +```yml +MyBetterButtonLessClass + better_buttons_enabled: false +``` \ No newline at end of file diff --git a/code/extensions/BetterButtonDataObject.php b/code/extensions/BetterButtonDataObject.php index 970ce25..db37f47 100644 --- a/code/extensions/BetterButtonDataObject.php +++ b/code/extensions/BetterButtonDataObject.php @@ -14,6 +14,13 @@ */ class BetterButtonDataObject extends DataExtension { + /** + * Enable better buttons for this DataObject + * + * @config + * @var bool + */ + private static $better_buttons_enabled = true; /** * Gets the default actions for all DataObjects. Can be overloaded in subclasses diff --git a/code/extensions/GridFieldBetterButtonsItemRequest.php b/code/extensions/GridFieldBetterButtonsItemRequest.php index 219e550..086eed5 100755 --- a/code/extensions/GridFieldBetterButtonsItemRequest.php +++ b/code/extensions/GridFieldBetterButtonsItemRequest.php @@ -70,6 +70,9 @@ public function addnew(SS_HTTPRequest $r) { * @param Form The ItemEditForm object */ public function updateItemEditForm($form) { + if ($this->getRecord()->stat('better_buttons_enabled') !== true) { + return false; + } Requirements::css(BETTER_BUTTONS_DIR.'/css/gridfield_betterbuttons.css'); Requirements::javascript(BETTER_BUTTONS_DIR.'/javascript/gridfield_betterbuttons.js');