]> _ Git - cubist_cms-back.git/commitdiff
wip #5045 @0.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 21 Jan 2022 16:13:59 +0000 (17:13 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 21 Jan 2022 16:13:59 +0000 (17:13 +0100)
src/app/Http/Controllers/Operations/Base/ImportOperation.php [new file with mode: 0644]

diff --git a/src/app/Http/Controllers/Operations/Base/ImportOperation.php b/src/app/Http/Controllers/Operations/Base/ImportOperation.php
new file mode 100644 (file)
index 0000000..43d2cd6
--- /dev/null
@@ -0,0 +1,34 @@
+<?php
+
+namespace Cubist\Backpack\Http\Controllers\Operations\Base;
+
+use Illuminate\Support\Facades\Route;
+use Symfony\Component\HttpFoundation\File\UploadedFile;
+
+trait ImportOperation{
+    protected function setupImportRoutes($segment, $routeName, $controller)
+    {
+        Route::match(['post'], $segment . '/import', $controller . '@importAction');
+    }
+
+    protected function setupImportDefaults()
+    {
+        $this->crud->addButtonFromView('top', 'import', 'button.import', 'end');
+    }
+
+    protected function importAction()
+    {
+        /** @var UploadedFile[] $files */
+        $files = request()->files->get('file');
+
+        $this->importFromFiles($files);
+
+        return redirect($this->crud->route);
+    }
+
+    /**
+     * @param UploadedFile[] $files
+     * @return void
+     */
+    abstract function importFromFiles($files);
+}