From: Vincent Vanwaelscappel Date: Thu, 18 Nov 2021 14:59:38 +0000 (+0100) Subject: wip #4891 @2 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=4c9128cdb8e60d3aca31add1a41aebbdc0d91ca2;p=fluidbook-toolbox.git wip #4891 @2 --- diff --git a/app/Fields/FluidbookID.php b/app/Fields/FluidbookID.php index 9b8597a52..6326a6343 100644 --- a/app/Fields/FluidbookID.php +++ b/app/Fields/FluidbookID.php @@ -3,19 +3,23 @@ namespace App\Fields; use Cubist\Backpack\Magic\Fields\SelectFromArray; +use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\DB; class FluidbookID extends SelectFromArray { public function getOptions() { - $res = []; - if(backpack_user()) { - foreach (DB::table('extranet_clean.books')->whereIn('proprietaire', explode(',', backpack_user()->e1_ws_rights))->orderByDesc('book_id')->get() as $book) { - $res[$book->book_id] = $book->book_id . ' - ' . $book->nom; - } + if (backpack_user()) { + return Cache::remember('fluidbok_id_' . backpack_user()->id, 360, function () { + $res = []; + foreach (DB::table('extranet_clean.books')->whereIn('proprietaire', explode(',', backpack_user()->e1_ws_rights))->orderByDesc('book_id')->get() as $book) { + $res[$book->book_id] = $book->book_id . ' - ' . $book->nom; + } + return $res; + }); } - return $res; + return []; } } diff --git a/app/Http/Controllers/Admin/Base/FluidbookTranslateController.php b/app/Http/Controllers/Admin/Base/FluidbookTranslateController.php deleted file mode 100644 index 0d11080e6..000000000 --- a/app/Http/Controllers/Admin/Base/FluidbookTranslateController.php +++ /dev/null @@ -1,13 +0,0 @@ -crud->addButtonFromView('line', 'download', 'fluidbook_collection.download', 'end'); + } + + protected function download($id) + { + $compilepath = protected_path('collection/final/' . $id); + $entry = $this->crud->getEntry($id); + $entry->compile($compilepath); + + $fname = Str::slugCase('collection-' . date('Ymdhis') . '-' . Str::slug($entry->title)) . '.zip'; + $dest = protected_path('collection/download/' . $fname); + + Zip::archive($compilepath, $dest); + + return response(null)->header('Content-Type', 'application/zip') + ->header('Content-Disposition', 'attachment; filename="' . $fname . '"') + ->header('X-Sendfile', $dest); + } +} diff --git a/app/Models/FluidbookCollection.php b/app/Models/FluidbookCollection.php index 7ff07f0b6..bc06839f5 100644 --- a/app/Models/FluidbookCollection.php +++ b/app/Models/FluidbookCollection.php @@ -3,6 +3,7 @@ namespace App\Models; use App\Fields\User; +use App\Http\Controllers\Admin\Operations\FluidbookCollection\DownloadOperation; use App\SubForms\CollectionPublication; use Cubist\Backpack\Magic\Fields\BunchOfFieldsMultiple; use Cubist\Backpack\Magic\Fields\SelectFromArray; @@ -18,6 +19,8 @@ class FluidbookCollection extends CubistMagicAbstractModel 'singular' => 'collection', 'plural' => 'collections']; + protected $_operations = [DownloadOperation::class]; + public static function addOwnerClause(Builder $builder) { if (null === backpack_user()) { @@ -47,8 +50,18 @@ class FluidbookCollection extends CubistMagicAbstractModel $this->addField('type', SelectFromArray::class, __('Type'), ['column' => true, 'options' => ['scorm_multilang' => __('SCORM multilingue')]]); - $this->addField('publications',BunchOfFieldsMultiple::class,__('Publications'),['bunch'=>CollectionPublication::class]); + $this->addField('publications', BunchOfFieldsMultiple::class, __('Publications'), ['bunch' => CollectionPublication::class]); + } + public function compile($path) + { + $data = $this->getPageData(); + if ($data->type === 'scorm_multilang') { + return $this->compileSCORMMultilang($data, $path); + } + } + protected function compileSCORMMultilang($data, $path) + { } } diff --git a/app/Models/FluidbookTranslate.php b/app/Models/FluidbookTranslate.php index 1e2362e21..3e68fb03d 100644 --- a/app/Models/FluidbookTranslate.php +++ b/app/Models/FluidbookTranslate.php @@ -5,13 +5,13 @@ namespace App\Models; use App\Fields\NSISLocale; use App\Http\Controllers\Admin\Base\FluidbookTranslateController; +use App\Http\Controllers\Admin\Operations\FluidbookTranslate\ExcelExportOperation; +use App\Http\Controllers\Admin\Operations\FluidbookTranslate\ExcelImportOperation; use Cubist\Backpack\Facades\App; use Cubist\Backpack\Magic\Models\Translate; class FluidbookTranslate extends Translate { - protected $_baseController = FluidbookTranslateController::class; - protected $table = 'fluidbook_translate'; protected static $_allTranslations = null; @@ -23,6 +23,8 @@ class FluidbookTranslate extends Translate 'plural' => 'traductions', 'oneinstance' => true]; + protected $_operations = [ExcelExportOperation::class, ExcelImportOperation::class]; + public function __construct(array $attributes = []) { diff --git a/resources/views/vendor/backpack/crud/buttons/fluidbook_collection/download.blade.php b/resources/views/vendor/backpack/crud/buttons/fluidbook_collection/download.blade.php new file mode 100644 index 000000000..7507f6516 --- /dev/null +++ b/resources/views/vendor/backpack/crud/buttons/fluidbook_collection/download.blade.php @@ -0,0 +1,2 @@ + {{__('Télécharger')}}