]> _ Git - fluidbook-toolbox.git/commitdiff
wait #6111 @1
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Thu, 6 Jul 2023 10:38:38 +0000 (12:38 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Thu, 6 Jul 2023 10:38:38 +0000 (12:38 +0200)
app/Http/Controllers/Admin/Operations/Tools/SVGCleaner.php [new file with mode: 0644]
app/Http/Controllers/Admin/ToolsController.php
resources/views/tools/sidebar.blade.php

diff --git a/app/Http/Controllers/Admin/Operations/Tools/SVGCleaner.php b/app/Http/Controllers/Admin/Operations/Tools/SVGCleaner.php
new file mode 100644 (file)
index 0000000..5b02609
--- /dev/null
@@ -0,0 +1,39 @@
+<?php
+
+namespace App\Http\Controllers\Admin\Operations\Tools;
+
+use Cubist\Azure\TTS\Api;
+use Cubist\Backpack\Magic\Fields\SelectFromArray;
+use Cubist\Backpack\Magic\Fields\StandardFile;
+use Cubist\Backpack\Magic\Fields\Textarea;
+use Cubist\Backpack\Magic\Form;
+use Cubist\Excel\ExcelToArray;
+use Cubist\Util\Files\Files;
+use Fluidbook\Tools\SVG\SVGTools;
+use Symfony\Component\HttpFoundation\File\UploadedFile;
+
+trait SVGCleaner
+{
+    public function svgcleaner()
+    {
+        $form = new Form(backpack_url('tools/dosvgcleaner'));
+        $form->setTitle(__('Nettoyer un SVG'));
+        $form->setSubmitLabel(__('Nettoyer et optimiser'));
+        $form->setSubmitIcon('las la-broom');
+        $form->setEnctype('multipart/form-data');
+        $form->addField('file', StandardFile::class, __('Fichier SVG'), ['accept' => '.svg']);
+        return view('tools.form', ['form' => $form]);
+    }
+
+    public function dosvgcleaner()
+    {
+        /** @var UploadedFile $file */
+        $file = request()->file('file');
+        $path = $file->getPathname() . '.svg';
+        move_uploaded_file($file->getPathname(), $path);
+        $clean = SVGTools::optimizeSVG($path);
+        return response()->download($clean, $file->getClientOriginalName(), ['content-type' => 'image/svg'])->deleteFileAfterSend();
+    }
+
+
+}
index 65b4f2f20a383bcd2ffea9b4b7030e780accc5bd..afa953bc6d683cec519930a9b195b772a2ee03e0 100644 (file)
@@ -15,6 +15,7 @@ use App\Http\Controllers\Admin\Operations\Tools\GitReposCreate;
 use App\Http\Controllers\Admin\Operations\Tools\ImagesResizer;
 use App\Http\Controllers\Admin\Operations\Tools\JSON2Excel;
 use App\Http\Controllers\Admin\Operations\Tools\PDF2SVGOperation;
+use App\Http\Controllers\Admin\Operations\Tools\SVGCleaner;
 use App\Http\Controllers\Admin\Operations\Tools\TextToSpeech;
 use App\Http\Controllers\Controller;
 
@@ -31,6 +32,7 @@ class ToolsController extends Controller
     use Favicon;
     use ImagesResizer;
     use FluidbookCopyLinks;
+    use SVGCleaner;
 
     protected function index($tool, $args = '')
     {
index 84bcc3c594a87374f46222f3ba2b5ff89373b41c..49507f3eeaee7ef4826a1fc195a1588b95d1caf0 100644 (file)
@@ -3,7 +3,8 @@
     <li class='nav-item'><a class='nav-link' href='{{ backpack_url('opentools/pdf2svg') }}'><i
                 class='nav-icon la la-images'></i>
             <span>{{__('Conversion de PDF en images')}}</span></a></li>
-    <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/resizer') }}'><i class="nav-icon las la-compress-arrows-alt"></i>
+    <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/resizer') }}'><i
+                class="nav-icon las la-compress-arrows-alt"></i>
             <span>{{__('Redimensionner des images')}}</span></a></li>
     <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/fluidbookassetsdownloader') }}'><i
                 class='nav-icon las la-cloud-download-alt'></i>
     <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/favicongen') }}'><i
                 class='nav-icon las la-icons'></i>
             <span>{{__('Générer des favicons')}}</span></a></li>
-    <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tool-sprite') }}'><i class="nav-icon las la-marker"></i>
+    <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tool-sprite') }}'><i
+                class="nav-icon las la-marker"></i>
             <span>{{__('SVG Sprites')}}</span></a></li>
     <li class='nav-item'><a class='nav-link' href='{{ backpack_url('opentools/sasscompiler') }}'><i
                 class="nav-icon lab la-sass"></i>
             <span>{{__('Compileur SASS')}}</span></a></li>
-
+    <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/svgcleaner') }}'><i
+                class='nav-icon la la-broom'></i>
+            <span>{{__('Nettoyer un SVG')}}</span></a></li>
 </ul>