From 4ed84043f2e6204cf0be1ea18722023687899663 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Mon, 12 Sep 2022 20:04:29 +0200 Subject: [PATCH] wait #5448 @0:20 --- .../Operations/Tools/SVGSpriteDownload.php | 20 +++++++++++++++++++ app/Models/ToolSVGSprite.php | 13 ++++++++++++ .../tools/svgsprite/download.blade.php | 6 ++++++ 3 files changed, 39 insertions(+) create mode 100644 resources/views/vendor/backpack/crud/buttons/tools/svgsprite/download.blade.php diff --git a/app/Http/Controllers/Admin/Operations/Tools/SVGSpriteDownload.php b/app/Http/Controllers/Admin/Operations/Tools/SVGSpriteDownload.php index 42604ba94..9d1e3604d 100644 --- a/app/Http/Controllers/Admin/Operations/Tools/SVGSpriteDownload.php +++ b/app/Http/Controllers/Admin/Operations/Tools/SVGSpriteDownload.php @@ -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']); + } } diff --git a/app/Models/ToolSVGSprite.php b/app/Models/ToolSVGSprite.php index c4cdd0166..3f0623399 100644 --- a/app/Models/ToolSVGSprite.php +++ b/app/Models/ToolSVGSprite.php @@ -44,4 +44,17 @@ class ToolSVGSprite extends ToolboxModel } + public function generate() + { + $res = ''; + foreach ($this->icons as $icon) { + if (preg_match('/]*)>(.*)<\/svg>/m', $icon['svgcode'], $matches)) { + $res .= '' . $matches[4] . ''; + } + } + + $res .= ''; + 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 index 000000000..9ce582afc --- /dev/null +++ b/resources/views/vendor/backpack/crud/buttons/tools/svgsprite/download.blade.php @@ -0,0 +1,6 @@ + + {{__('Exporter')}} + -- 2.39.5