From 35d681f92d5d189c1b69e1520c2102ae4eea7c51 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Tue, 21 Dec 2021 11:08:49 +0100 Subject: [PATCH] wait #4972 @1 --- .../Controllers/Admin/ToolsController.php | 8 +++---- .../Controllers/Tools/PackageDownload.php | 24 +++++++++++++++++++ app/Jobs/ProducePackage.php | 3 +++ .../vendor/backpack/base/dashboard.blade.php | 12 +++++++++- .../base/inc/sidebar_content.blade.php | 1 + 5 files changed, 43 insertions(+), 5 deletions(-) create mode 100644 app/Http/Controllers/Tools/PackageDownload.php diff --git a/app/Http/Controllers/Admin/ToolsController.php b/app/Http/Controllers/Admin/ToolsController.php index 9cdd924..270ea73 100644 --- a/app/Http/Controllers/Admin/ToolsController.php +++ b/app/Http/Controllers/Admin/ToolsController.php @@ -4,14 +4,14 @@ namespace App\Http\Controllers\Admin; use App\Http\Controllers\Tools\FluidbookConvert; use App\Http\Controllers\Tools\FluidbookPreview; +use App\Http\Controllers\Tools\PackageDownload; -class ToolsController -{ +class ToolsController { use FluidbookConvert; use FluidbookPreview; + use PackageDownload; - public function index($tool, $args = '') - { + public function index($tool, $args = '') { if (!$args) { $args = []; diff --git a/app/Http/Controllers/Tools/PackageDownload.php b/app/Http/Controllers/Tools/PackageDownload.php new file mode 100644 index 0000000..6829b89 --- /dev/null +++ b/app/Http/Controllers/Tools/PackageDownload.php @@ -0,0 +1,24 @@ +header('Content-Disposition', 'attachment;filename=package.zip')->header('Content-Type', Files::_getMimeType($path))->header('X-Sendfile', $path); + } else { + return response(null)->setStatusCode(404); + } + } + +} diff --git a/app/Jobs/ProducePackage.php b/app/Jobs/ProducePackage.php index 0041f46..b9a195b 100644 --- a/app/Jobs/ProducePackage.php +++ b/app/Jobs/ProducePackage.php @@ -4,6 +4,7 @@ namespace App\Jobs; use App\Http\Controllers\FrontController; use Cubist\Util\Files\VirtualDirectory; +use Cubist\Util\Zip; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldBeUnique; use Illuminate\Contracts\Queue\ShouldQueue; @@ -44,6 +45,8 @@ class ProducePackage implements ShouldQueue, ShouldBeUnique { $this->vdir->file_put_contents('ressources.html', $this->_render($frontController->resources())); $this->vdir->sync(true); + + Zip::archive($this->dir,$this->dir.'.zip'); } /** diff --git a/resources/views/vendor/backpack/base/dashboard.blade.php b/resources/views/vendor/backpack/base/dashboard.blade.php index 89cd318..eed94dc 100644 --- a/resources/views/vendor/backpack/base/dashboard.blade.php +++ b/resources/views/vendor/backpack/base/dashboard.blade.php @@ -7,10 +7,20 @@ 'type' => 'jumbotron', 'heading' => 'Bienvenue !', 'content' => 'Bienvenue dans l\'interface de création de la réponse. Utilisez les fonctions dans la barre latérale pour éditer les contenus. Cliquer sur le bouton ci-dessous pour visualiser la réponse.', - 'button_link' => '/front/index.html', + 'button_link' => backpack_url('/front/index.html'), 'button_text' => 'Prévisualisation de la réponse', ]; } + if(can('packagedownload')){ + $widgets['before_content'][] = [ + 'wrapper' => ['class' => 'col-sm-6 col-md-6'], + 'type' => 'jumbotron', + 'heading' => 'Télécharger', + 'content' => 'Télécharger la réponse au format zip pour l\'installation sur les tablettes', + 'button_link' => backpack_url('tools/packagedownload'), + 'button_text' => 'Compiler et télécharger', + ]; + } @endphp @section('content') diff --git a/resources/views/vendor/backpack/base/inc/sidebar_content.blade.php b/resources/views/vendor/backpack/base/inc/sidebar_content.blade.php index d64f041..eb76a02 100644 --- a/resources/views/vendor/backpack/base/inc/sidebar_content.blade.php +++ b/resources/views/vendor/backpack/base/inc/sidebar_content.blade.php @@ -29,6 +29,7 @@ class='la la-map-signs'> Visite guidée @endcan + @endcan -- 2.39.5