From 7ece9891d817dfa66a4f15527886431b9125d04f Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Tue, 8 Dec 2020 20:43:50 +0100 Subject: [PATCH] wip #3753 @1.5 --- .../Operations/ReviseOperation.php | 34 +++++++++++++++++++ .../Magic/Models/CubistMagicAbstractModel.php | 24 ++++++++----- 2 files changed, 50 insertions(+), 8 deletions(-) create mode 100644 src/app/Http/Controllers/Operations/ReviseOperation.php diff --git a/src/app/Http/Controllers/Operations/ReviseOperation.php b/src/app/Http/Controllers/Operations/ReviseOperation.php new file mode 100644 index 0000000..3eeac30 --- /dev/null +++ b/src/app/Http/Controllers/Operations/ReviseOperation.php @@ -0,0 +1,34 @@ +crud->allowAccess('revise'); + + $this->crud->operation('revise', function () { + $this->crud->loadDefaultOperationSettingsFromConfig(); + }); + + $this->crud->operation(['list', 'show'], function () { + + if($this->crud->model->isButtonVisible('revise')) { + // add a button in the line stack + $this->crud->addButton('line', 'revise', 'view', 'revise-operation::revise_button', 'end'); + } + }); + + $crud = $this->crud; + } + +} diff --git a/src/app/Magic/Models/CubistMagicAbstractModel.php b/src/app/Magic/Models/CubistMagicAbstractModel.php index d87e6ea..0fafd49 100644 --- a/src/app/Magic/Models/CubistMagicAbstractModel.php +++ b/src/app/Magic/Models/CubistMagicAbstractModel.php @@ -9,7 +9,7 @@ use Backpack\CRUD\app\Http\Controllers\Operations\CreateOperation; use Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation; use Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation; use Cubist\Backpack\Http\Controllers\Operations\BulkPublishOperation; -use Backpack\ReviseOperation\ReviseOperation; +use Cubist\Backpack\Http\Controllers\Operations\ReviseOperation; use Backpack\CRUD\app\Library\CrudPanel\CrudPanel; use Backpack\CRUD\app\Models\Traits\CrudTrait; use Cubist\Backpack\Magic\BunchOfFields; @@ -47,13 +47,13 @@ class CubistMagicAbstractModel extends Model implements HasMedia protected $connection = null; protected $primaryKey = 'id'; protected $_operations = []; - public $timestamps = true; protected $_enableClone = true; protected $_enableDeletion = true; protected $_enableEdition = true; protected $_enableCreation = true; protected $_enableRevisions = true; + protected $_enableRevisionsButton = false; protected $_enableBulk = true; protected static $_ownerAttribute = null; @@ -102,7 +102,7 @@ class CubistMagicAbstractModel extends Model implements HasMedia public function __construct(array $attributes = []) { $this->setup(); - $this->fill($attributes); + parent::__construct($attributes); } public function setup() @@ -112,9 +112,6 @@ class CubistMagicAbstractModel extends Model implements HasMedia } $this->setFields(); $this->postSetFields(); - $this->bootIfNotBooted(); - $this->initializeTraits(); - $this->syncOriginal(); } /** @@ -390,8 +387,11 @@ class CubistMagicAbstractModel extends Model implements HasMedia $res = str_replace('_' . $name . '_', $value, $res); } - if (!file_exists(dirname($dest))) { - mkdir(dirname($dest), 0777, true); + $dir = dirname($dest); + if (!file_exists($dir)) { + if (!mkdir($concurrentDirectory = $dir, 0777, true) && !is_dir($concurrentDirectory)) { + throw new \RuntimeException(sprintf('Directory "%s" was not created', $concurrentDirectory)); + } } file_put_contents($dest, $res); @@ -773,4 +773,12 @@ class CubistMagicAbstractModel extends Model implements HasMedia return $this->canUpdate($user); } + public function isButtonVisible($button) + { + if ($button === 'revise') { + return $this->_enableRevisionsButton; + } + return true; + } + } -- 2.39.5