]> _ Git - cubist_cms-back.git/commitdiff
wip #4210 @0.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 14 Jun 2022 08:19:00 +0000 (10:19 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 14 Jun 2022 08:19:00 +0000 (10:19 +0200)
src/app/Http/Controllers/CubistCrudController.php
src/app/Http/Controllers/Operations/CloneEditOperation.php [new file with mode: 0644]
src/app/Magic/Controllers/CubistMagicController.php
src/app/Magic/Models/CubistMagicAbstractModel.php

index ca0b4ac075663add526d6fcd10de5fcb0ba9c651..cf5213f0e012b2a2bf0c6bf39d578b209bf9b9fd 100644 (file)
@@ -6,6 +6,7 @@ namespace Cubist\Backpack\Http\Controllers;
 
 use Backpack\CRUD\app\Http\Controllers\CrudController;
 
+use Cubist\Backpack\Http\Controllers\Operations\InfosOperation;
 use Cubist\Backpack\Http\Controllers\Operations\MediaOperation;
 use Cubist\Backpack\Magic\Operations\ListOperation;
 use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
@@ -13,6 +14,7 @@ use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
 class CubistCrudController extends CrudController
 {
     use ListOperation;
+    use InfosOperation;
     use MediaOperation;
     use AuthorizesRequests;
 }
diff --git a/src/app/Http/Controllers/Operations/CloneEditOperation.php b/src/app/Http/Controllers/Operations/CloneEditOperation.php
new file mode 100644 (file)
index 0000000..be7c970
--- /dev/null
@@ -0,0 +1,26 @@
+<?php
+
+namespace Cubist\Backpack\Http\Controllers\Operations;
+
+use Illuminate\Support\Facades\Route;
+
+trait CloneEditOperation{
+    protected function setupBulkPublishRoutes($segment, $routeName, $controller)
+    {
+        Route::get($segment . '/{id}/clone-edit', [
+            'as' => $routeName . '.cloneEdit',
+            'uses' => $controller . '@cloneEdit',
+            'operation' => 'cloneEdit',
+        ]);
+    }
+
+    protected function cloneEdit($id){
+        dd(Route::current());
+        $this->crud->hasAccessOrFail('create');
+        $clonedEntry = $this->crud->model->findOrFail($id)->replicate();
+        $clonedEntry->owner=backpack_user()->id;
+        $clonedEntry->save();
+        $newid=$clonedEntry->id;
+        return response()->redirectTo();
+    }
+}
index 4f0c5222e63921d31ca45f12b0273ca7cc27f2e0..1834896689a63b000a10e53f4355da343bf31aa9 100644 (file)
@@ -25,7 +25,6 @@ use Symfony\Component\HttpFoundation\File\UploadedFile;
 class CubistMagicController extends CubistCrudController
 {
     use HandleAjaxMedia;
-    use InfosOperation;
 
     protected $_modelNamespace;
     protected $_routeURL;
index 50de830cf8dc2167e05c894ba1045db5c26ae44c..262a070d3c6845f0a725bb4a921bd1aff0c9a106 100644 (file)
@@ -5,6 +5,7 @@ namespace Cubist\Backpack\Magic\Models;
 use Backpack\CRUD\app\Http\Controllers\Operations\BulkCloneOperation;
 use Backpack\CRUD\app\Http\Controllers\Operations\BulkDeleteOperation;
 use Backpack\CRUD\app\Http\Controllers\Operations\CloneOperation;
+use Cubist\Backpack\Http\Controllers\Operations\CloneEditOperation;
 use Cubist\Backpack\Magic\Fields\Composed;
 use Cubist\Backpack\Magic\Fields\Files;
 use Cubist\Backpack\Magic\Fields\FilesOrURL;
@@ -430,6 +431,7 @@ class CubistMagicAbstractModel extends Model implements HasMedia
         $ops = $this->_operations;
         if ($this->_enableCreation) {
             $ops[] = CreateOperation::class;
+            $ops[] = CloneEditOperation::class;
         }
         if ($this->_enableEdition) {
             $ops[] = UpdateOperation::class;