]> _ Git - fluidbook-toolbox.git/commitdiff
wait #5448 @0:20
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Mon, 12 Sep 2022 18:04:29 +0000 (20:04 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Mon, 12 Sep 2022 18:04:29 +0000 (20:04 +0200)
app/Http/Controllers/Admin/Operations/Tools/SVGSpriteDownload.php
app/Models/ToolSVGSprite.php
resources/views/vendor/backpack/crud/buttons/tools/svgsprite/download.blade.php [new file with mode: 0644]

index 42604ba9460894abef15a56bd90938044eb00d36..9d1e3604d08532db9f0079962ad6fe1c306468e3 100644 (file)
@@ -2,7 +2,27 @@
 
 namespace App\Http\Controllers\Admin\Operations\Tools;
 
+use App\Jobs\ElearningPackageDownload;
+use App\Models\ELearningPackage;
+use App\Models\ToolSVGSprite;
+use Illuminate\Support\Facades\Route;
+use Prologue\Alerts\Facades\Alert;
+
 trait SVGSpriteDownload
 {
+    protected function setupDownloadRoutes($segment, $routeName, $controller)
+    {
+        Route::match(['get'], $segment . '/{id}/download', $controller . '@download');
+    }
+
+    protected function setupDownloadDefaults()
+    {
+        $this->crud->addButtonFromView('line', 'download', 'tools.svgsprite.download', 'end');
+    }
 
+    protected function download($id)
+    {
+        $sprite = ToolSVGSprite::find($id);
+        return response($sprite->generate(), 200, ['Content-type' => 'text/plain']);
+    }
 }
index c4cdd0166012b8f52887e51f90a2e5793006fcf1..3f062339908dd5138de35854d8c7fdbdcfad66a8 100644 (file)
@@ -44,4 +44,17 @@ class ToolSVGSprite extends ToolboxModel
 
     }
 
+    public function generate()
+    {
+        $res = '<div class="svg-sprite" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" style="display: none;"></svg></div>';
+        foreach ($this->icons as $icon) {
+            if (preg_match('/<svg(.*)viewBox="([^\"]+)"([^>]*)>(.*)<\/svg>/m', $icon['svgcode'], $matches)) {
+                $res .= '<symbol id="' . $this->prefix . $icon['iconname'] . '" viewBox="' . $matches[2] . '">' . $matches[4] . '</symbol>';
+            }
+        }
+
+        $res .= '</svg/></div>';
+        return $res;
+    }
+
 }
diff --git a/resources/views/vendor/backpack/crud/buttons/tools/svgsprite/download.blade.php b/resources/views/vendor/backpack/crud/buttons/tools/svgsprite/download.blade.php
new file mode 100644 (file)
index 0000000..9ce582a
--- /dev/null
@@ -0,0 +1,6 @@
+<a class="btn btn-sm btn-link" href="{{$crud->route}}/{{$entry->id}}/download" target="_blank"
+   data-toggle="tooltip"
+   title="{{__('Exporter les sprites')}}"
+>
+    <i class="la la-arrow-circle-down"></i> {{__('Exporter')}}
+</a>