]> _ Git - fluidbook-toolbox.git/commitdiff
wait #6775 @1.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Thu, 7 Mar 2024 17:59:15 +0000 (18:59 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Thu, 7 Mar 2024 17:59:15 +0000 (18:59 +0100)
app/Http/Controllers/Admin/Operations/Tools/DockerWebContainer.php
app/Http/Controllers/Admin/Operations/Tools/StaticSiteUploader.php [new file with mode: 0644]
app/Http/Controllers/Admin/ToolsController.php
resources/views/tools/sidebar.blade.php

index cfcc6ebba4008061396f944a0235ce429f4f906f..4077b8857fce9edbe4981d65aa11d4eb244f7f76 100644 (file)
@@ -73,7 +73,9 @@ trait DockerWebContainer
                 continue;
             }
             `mv $dir/www/.docker/$env $firstDir/www/.docker/`;
-            rename($dir . '/www/.env.' . $env, $firstDir . '/www/.env.' . $env);
+            if (file_exists($dir . '/www/.env.' . $env)) {
+                rename($dir . '/www/.env.' . $env, $firstDir . '/www/.env.' . $env);
+            }
             $fdir = Files::mkdir($fdir);
             `cp -r $firstDir/www $fdir`;
             copy($dir . '/update', $fdir . 'update');
diff --git a/app/Http/Controllers/Admin/Operations/Tools/StaticSiteUploader.php b/app/Http/Controllers/Admin/Operations/Tools/StaticSiteUploader.php
new file mode 100644 (file)
index 0000000..8e7a6d3
--- /dev/null
@@ -0,0 +1,61 @@
+<?php
+
+namespace App\Http\Controllers\Admin\Operations\Tools;
+
+use Cubist\Backpack\Magic\Fields\SelectFromArray;
+use Cubist\Backpack\Magic\Fields\StandardFile;
+use Cubist\Backpack\Magic\Form;
+use Cubist\Util\CommandLine\Rsync;
+use Cubist\Util\Files\Files;
+use Cubist\Util\Zip;
+
+trait StaticSiteUploader
+{
+
+    protected function _getSites()
+    {
+        return [
+            'cubedesigners-v8' => ['label' => __('Cubedesigners V8'), 'server' => 'godzilla.cubedesigners.com']
+        ];
+    }
+
+    public function staticsiteuploader()
+    {
+        if (!can('staticsite:manage')) {
+            abort(404);
+        }
+        $form = new Form(backpack_url('tools/staticsiteupload'));
+        $form->setTitle(__('Remplacer les contenus d\'un site statique'));
+        $form->setEnctype('multipart/form-data');
+        $form->setSubmitLabel(__('Charger'));
+        $form->setSubmitIcon('lab la-js-square');
+        $form->addField('file', StandardFile::class, __('Fichier zip'), ['accept' => '.zip', 'hint' => __('La racine du zip doit correspondre à la racine du site')]);
+        $s = $this->_getSites();
+        $sites = [];
+        foreach ($s as $k => $item) {
+            $sites[$k] = $item['label'];
+        }
+        $form->addField('website', SelectFromArray::class, __('Site'), ['options' => $sites]);
+        return view('tools.form', ['form' => $form]);
+    }
+
+    public function staticsiteupload()
+    {
+        if (!can('staticsite:manage')) {
+            abort(404);
+        }
+
+        $siteId = request('website');
+        $site = $this->_getSites()[$siteId];
+
+        $zip = Files::tempnam() . '.zip';
+        $file = request()->file('file');
+        rename($file->getPathname(), $zip);
+        $tmp = Files::tmpdir();
+        Zip::extract($zip, $tmp);
+        $dest='staticupload@' . $site['server'] . ':/home/staticupload/' . $siteId;
+        $rsync = new Rsync($tmp, $dest);
+        $rsync->execute();
+        $rsync->dd();
+    }
+}
index f5e1bd40bfbacd87b72663f49ae24563c13a9aa2..d297b584c19fc02b58f95a3f1633349441e5c0b7 100644 (file)
@@ -19,6 +19,7 @@ use App\Http\Controllers\Admin\Operations\Tools\ImportFluidbookSettings;
 use App\Http\Controllers\Admin\Operations\Tools\JSON2Excel;
 use App\Http\Controllers\Admin\Operations\Tools\PDF2SVGOperation;
 use App\Http\Controllers\Admin\Operations\Tools\SASSCompiler;
+use App\Http\Controllers\Admin\Operations\Tools\StaticSiteUploader;
 use App\Http\Controllers\Admin\Operations\Tools\SVGCleaner;
 use App\Http\Controllers\Admin\Operations\Tools\TextToSpeech;
 use App\Http\Controllers\Controller;
@@ -43,6 +44,7 @@ class ToolsController extends Controller
     use SASSCompiler;
     use PDF2SVGOperation;
     use ImportFluidbookSettings;
+    use StaticSiteUploader;
 
     protected function index($tool, $args = '')
     {
index 920565ce624ef8239769d258de80ebee65d7f951..04018364ed3c173f83f6ec0b6fbefee87dda544b 100644 (file)
@@ -1,59 +1,62 @@
 {{-- __('!! Outils') --}}
 <ul class='nav-dropdown-items'>
     <li class='nav-item'><a class='nav-link' href='{{ backpack_url('opentools/pdf2svg') }}'><i
-                class='nav-icon la la-images'></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>
+                    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>
+                    class='nav-icon las la-cloud-download-alt'></i>
             <span>{{__('Téléchargement massif d\'assets dans un fluidbook')}}</span></a></li>
     <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/gitreposcreate') }}'><i
-                class='nav-icon la la-git'></i>
+                    class='nav-icon la la-git'></i>
             <span>{{__('Créer un répertoire GIT')}}</span></a></li>
     <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/dockerwebcontainer') }}'><i
-                class='nav-icon lab la-docker'></i>
+                    class='nav-icon lab la-docker'></i>
             <span>{{__('Créer un container web')}}</span></a></li>
     <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/tts') }}'><i
-                class='nav-icon la la-volume-up'></i>
+                    class='nav-icon la la-volume-up'></i>
             <span>{{__('Text to speech')}}</span></a></li>
     <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/json2excel') }}'><i
-                class='nav-icon la la-file-excel'></i>
+                    class='nav-icon la la-file-excel'></i>
             <span>{{__('JSON to Excel')}}</span></a></li>
     <li class='nav-item'><a class='nav-link' href='{{ backpack_url('opentools/excel2json') }}'><i
-                class='nav-icon las la-code'></i>
+                    class='nav-icon las la-code'></i>
             <span>{{__('Excel to JSON')}}</span></a></li>
     <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/fluidbookcopylinks') }}'><i
-                class='nav-icon las la-link'></i>
+                    class='nav-icon las la-link'></i>
             <span>{{__('Copier les liens ou assets d\'un fluidbook')}}</span></a></li>
     <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/fluidbookreplicate') }}'><i
-                class='nav-icon las la-clone'></i>
+                    class='nav-icon las la-clone'></i>
             <span>{{__('Dupliquer un fluidbook')}}</span></a></li>
     <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/fluidbookbranchcreate') }}'><i
-                class='nav-icon la la-git'></i>
+                    class='nav-icon la la-git'></i>
             <span>{{__('Créer une branche du player fluidbook')}}</span></a></li>
     <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/fluidbookbranchremove') }}'><i
-                class='nav-icon la la-git'></i>
+                    class='nav-icon la la-git'></i>
             <span>{{__('Supprimer une branche du player fluidbook')}}</span></a></li>
     <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/fluidbookrefurl') }}'><i
-                class='nav-icon las la-link'></i>
+                    class='nav-icon las la-link'></i>
             <span>{{__('Importer des bases de données de références fluidbook')}}</span></a></li>
     <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/favicongen') }}'><i
-                class='nav-icon las la-icons'></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>
+                    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>
+                    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>
+                    class='nav-icon la la-broom'></i>
             <span>{{__('Nettoyer un SVG')}}</span></a></li>
     @if (can('fluidbook-publication:admin'))
-    <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/importfluidbooksettings') }}'><i
-                class='nav-icon las la-link'></i>
-            <span>{{__('Importer les paramètres de fluidbook')}}</span></a></li>
+        <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/importfluidbooksettings') }}'><i class="las la-otter"></i>
+                <span>{{__('Importer les paramètres de fluidbook')}}</span></a></li>
     @endif
+    @can('staticsite:manage')
+        <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/staticsiteuploader') }}'><i class="las la-cloud-upload-alt"></i>
+                <span>{{__('Sites statiques')}}</span></a></li>
+        @endcan
 </ul>