From: Vincent Vanwaelscappel Date: Thu, 21 Oct 2021 16:02:53 +0000 (+0200) Subject: wait #4830 @1.5 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=973c531c1bcd0bdfc1af07f665d494131827015f;p=cubist_cms-back.git wait #4830 @1.5 --- diff --git a/src/app/Http/Controllers/CubistCrudController.php b/src/app/Http/Controllers/CubistCrudController.php index d81b35a..ca0b4ac 100644 --- a/src/app/Http/Controllers/CubistCrudController.php +++ b/src/app/Http/Controllers/CubistCrudController.php @@ -6,8 +6,8 @@ namespace Cubist\Backpack\Http\Controllers; use Backpack\CRUD\app\Http\Controllers\CrudController; -use Cubist\Backpack\Http\Controllers\Operations\ListOperation; use Cubist\Backpack\Http\Controllers\Operations\MediaOperation; +use Cubist\Backpack\Magic\Operations\ListOperation; use Illuminate\Foundation\Auth\Access\AuthorizesRequests; class CubistCrudController extends CrudController diff --git a/src/app/Http/Controllers/Operations/ListOperation.php b/src/app/Http/Controllers/Operations/ListOperation.php deleted file mode 100644 index d146fed..0000000 --- a/src/app/Http/Controllers/Operations/ListOperation.php +++ /dev/null @@ -1,18 +0,0 @@ -getModelInstance()->addWidgets(); - return $this->baseIndex(); - } -} diff --git a/src/app/Magic/Controllers/CubistMagicController.php b/src/app/Magic/Controllers/CubistMagicController.php index 50c1305..7d6eea9 100644 --- a/src/app/Magic/Controllers/CubistMagicController.php +++ b/src/app/Magic/Controllers/CubistMagicController.php @@ -281,29 +281,6 @@ class CubistMagicController extends CubistCrudController } } - public function index() - { - if ($this->_oneInstance) { - return Redirect::to(backpack_url($this->_routeURL . '/1/edit')); - } - return parent::index(); - } - - public function edit($id) - { - if ($this->_oneInstance) { - $id = 1; - } - $this->getModelInstance()->onBeforeEdit($this, $id); - return parent::edit($id); - } - - public function create() - { - $this->getModelInstance()->onBeforeCreate($this); - return parent::create(); - } - protected function _bulkChangeOnlineStatus($status) { $this->crud->hasAccessOrFail('update'); diff --git a/src/app/Magic/Fields/Field.php b/src/app/Magic/Fields/Field.php index 12a9f4b..148ab56 100644 --- a/src/app/Magic/Fields/Field.php +++ b/src/app/Magic/Fields/Field.php @@ -40,6 +40,7 @@ class Field implements \ArrayAccess protected $_databaseType = 'text'; protected $_databaseUnique = false; protected $_databaseIndex = false; + protected $_databaseDefault = null; /** @var bool|string|array */ protected $_cast = false; @@ -113,7 +114,7 @@ class Field implements \ArrayAccess return 'text'; } } - return $this->_databaseType; + return $this->getAttribute('database_type'); } @@ -142,7 +143,7 @@ class Field implements \ArrayAccess 'default' => '', 'cast' => $this->_cast, 'column_view_namespace' => $this->_columnViewNamespace, 'searchLogic' => $this->_searchLogic, 'allow_null' => true, 'can' => $this->_can, 'can_write' => $this->_canWrite, 'auth' => $this->_auth, - 'database_unique' => $this->_databaseUnique, 'database_index' => $this->_databaseIndex, + 'database_type' => $this->_databaseType, 'database_unique' => $this->_databaseUnique, 'database_index' => $this->_databaseIndex, 'database_default' => $this->_databaseDefault, 'fake' => false, 'store_in' => 'extras', 'attributes' => []]; } @@ -289,15 +290,21 @@ class Field implements \ArrayAccess return; } + $attributes = array_merge( ['notnull' => !$this->getAttribute('allow_null', true)], $this->_databaseAttributes ); + if ($this->getAttribute('database_default') !== null) { + $attributes['default'] = $this->getAttribute('database_default'); + } + $table->addColumn($name, CubistMagicAbstractModel::toDoctrineType($this->getDatabaseType()), $attributes ); + if ($this->getAttribute('database_unique', false)) { $table->addUniqueIndex([$name]); } diff --git a/src/app/Magic/Models/CubistMagicAbstractModel.php b/src/app/Magic/Models/CubistMagicAbstractModel.php index 881ff26..847e086 100644 --- a/src/app/Magic/Models/CubistMagicAbstractModel.php +++ b/src/app/Magic/Models/CubistMagicAbstractModel.php @@ -110,11 +110,22 @@ class CubistMagicAbstractModel extends Model implements HasMedia public static function boot() { parent::boot(); + static::addGlobalScope('ownerclause', function (Builder $builder) { static::addOwnerClause($builder); }); } + + /* + * @param \Illuminate\Database\Eloquent\Builder $query + * @return void + */ + public function scopeCreatedok($query) + { + $query->where('created_ok', 1); + } + public static function addOwnerClause(Builder $builder) { } @@ -190,6 +201,17 @@ class CubistMagicAbstractModel extends Model implements HasMedia 'hidden' => true, 'fillable' => false]); } + $this->addField( + ['name' => 'created_ok', + 'type' => 'Hidden', + 'default' => '1', + 'database_default' => '1', + 'database_type' => 'boolean', + 'translatable' => false, + 'value' => '1', + 'hidden' => true, + 'fillable' => false] + ); $this->fakeColumns = array_unique($this->fakeColumns); if (get_class($this) !== config("auth.providers.users.model")) { @@ -848,10 +870,10 @@ class CubistMagicAbstractModel extends Model implements HasMedia } - /** - * @param $user CubistMagicAuthenticatable - * @return bool - */ + /** + * @param $user CubistMagicAuthenticatable + * @return bool + */ public function canView($user) { return $this->canList($user); diff --git a/src/app/Magic/Operations/CreateOperation.php b/src/app/Magic/Operations/CreateOperation.php index 2d66e24..d31b5e7 100644 --- a/src/app/Magic/Operations/CreateOperation.php +++ b/src/app/Magic/Operations/CreateOperation.php @@ -1,19 +1,38 @@ crud->model; + if ($instance instanceof CubistMagicAbstractModel) { + $instance->setAttribute('created_ok', '0'); + $instance->saveQuietly(); + $id = $instance->getIdValue(); + return redirect(backpack_url($instance->getOption('name') . '/' . $id . '/edit')); + } + return $this->_create(); + } + public function store() { $res = $this->_store(); - if($this->crud->entry instanceof CubistMagicAbstractModel) { + if ($this->crud->entry instanceof CubistMagicAbstractModel) { $this->crud->entry->onAfterSave(); } return $res; diff --git a/src/app/Magic/Operations/ListOperation.php b/src/app/Magic/Operations/ListOperation.php new file mode 100644 index 0000000..8be5e9e --- /dev/null +++ b/src/app/Magic/Operations/ListOperation.php @@ -0,0 +1,28 @@ +getModelInstance()->addWidgets(); + $this->crud->addClause('createdok'); + return $this->_index(); + } + + public function search() + { + $this->crud->addClause('createdok'); + return $this->_search(); + } + + +} diff --git a/src/app/Magic/Operations/UpdateOperation.php b/src/app/Magic/Operations/UpdateOperation.php index 1b07d96..47cc283 100644 --- a/src/app/Magic/Operations/UpdateOperation.php +++ b/src/app/Magic/Operations/UpdateOperation.php @@ -10,7 +10,6 @@ trait UpdateOperation setupUpdateDefaults as _setupUpdateDefaults; } - /** * Update the specified resource in the database. *