From: Vincent Vanwaelscappel Date: Tue, 14 Mar 2023 14:51:18 +0000 (+0100) Subject: wait #5754 @2.5 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=3dff5fae4d5a6f3b0280a38c281efbd808436f3e;p=fluidbook-toolbox.git wait #5754 @2.5 --- diff --git a/app/Fields/SCORMVersion.php b/app/Fields/SCORMVersion.php index 70930aff4..3d272edae 100644 --- a/app/Fields/SCORMVersion.php +++ b/app/Fields/SCORMVersion.php @@ -11,6 +11,11 @@ class SCORMVersion extends SelectFromArray protected $_default = Version::SCORM_1_2; public function getOptions() + { + return static::getSCORMVersions(); + } + + public static function getSCORMVersions() { return [ Version::SCORM_1_2 => 'SCORM 1.2', diff --git a/app/Fluidbook/Packager/Download.php b/app/Fluidbook/Packager/Download.php index 6c4e0da38..281418ddf 100644 --- a/app/Fluidbook/Packager/Download.php +++ b/app/Fluidbook/Packager/Download.php @@ -22,9 +22,12 @@ class Download extends DownloadBase // __('Fluidbook ":title" (#:nb) installé sur :server') protected $_installSubject = 'Fluidbook ":title" (#:nb) installé sur :server'; - public function __construct($entry, $version, $action, $user) + protected $_params = []; + + public function __construct($entry, $version, $action, $user, $params = []) { parent::__construct($entry, $action, $user); + $this->_params = $params; $this->setVersion($version); } @@ -126,7 +129,7 @@ class Download extends DownloadBase protected function _compileandpackage($zip = true) { - $packager = Packager::package($this->entry->id, $this->version, $zip); + $packager = Packager::package($this->entry->id, $this->version, $zip, true, $this->_params); $packager->makePackage($zip); $url = $packager->getFinalURL(); if ($url) { diff --git a/app/Fluidbook/Packager/Packager.php b/app/Fluidbook/Packager/Packager.php index e8bfd1b93..7fc495d57 100644 --- a/app/Fluidbook/Packager/Packager.php +++ b/app/Fluidbook/Packager/Packager.php @@ -60,7 +60,7 @@ class Packager extends \App\Jobs\Base $packager = new Online($book_id, null, $options); break; case 'scorm': - $packager = new SCORM($book_id, null, $options); + $packager = new Scorm($book_id, null, $options); break; case 'sharepoint': $packager = new Sharepoint($book_id, null, $options); diff --git a/app/Http/Controllers/Admin/Operations/FluidbookPublication/DownloadOperation.php b/app/Http/Controllers/Admin/Operations/FluidbookPublication/DownloadOperation.php index dbf6d70ec..190c89579 100644 --- a/app/Http/Controllers/Admin/Operations/FluidbookPublication/DownloadOperation.php +++ b/app/Http/Controllers/Admin/Operations/FluidbookPublication/DownloadOperation.php @@ -8,6 +8,7 @@ use App\Models\FluidbookPublication; use Cubist\Backpack\Http\Controllers\Base\XSendFileController; use Illuminate\Support\Facades\Route; use Prologue\Alerts\Facades\Alert; + // __('!!Paramètres des fluidbooks') trait DownloadOperation { @@ -15,6 +16,7 @@ trait DownloadOperation { Route::match(['get'], $segment . '/{id}/delivery', $controller . '@delivery'); Route::match(['get'], $segment . '/{id}/package/{action}/{version}', $controller . '@package'); + Route::match(['get'], $segment . '/{id}/package/{action}/scorm/{scormversion}', $controller . '@packageScorm'); Route::match(['get'], $segment . '/{id}_{hash}/download/{file}', $controller . '@download')->withoutMiddleware([CheckIfAdmin::class]);; } @@ -67,4 +69,18 @@ trait DownloadOperation Alert::add('success', __('La compilation a été placée en file d\'attente. Vous recevrez un email lorsqu\'elle sera terminée.'))->flash(); return redirect(backpack_url('fluidbook-publication')); } + + protected function packageScorm($id, $action, $scormVersion) + { + if (!FluidbookPublication::hasPermission($id)) { + abort(401, __('Cette publication ne peut pas être téléchargée')); + } + $fluidbook = FluidbookPublication::find($id); + if (!$fluidbook->scorm_enabled && !can('fluidbook-publication:download:all-versions')) { + abort(401, __('Cette version n\'est pas disponible au téléchargement')); + } + Download::dispatch($fluidbook, 'scorm', $action, backpack_user(), ['scorm_version' => $scormVersion])->onQueue('download'); + Alert::add('success', __('La compilation a été placée en file d\'attente. Vous recevrez un email lorsqu\'elle sera terminée.'))->flash(); + return redirect(backpack_url('fluidbook-publication')); + } } diff --git a/app/Models/Traits/PublicationSettings.php b/app/Models/Traits/PublicationSettings.php index 44908440f..126b06737 100644 --- a/app/Models/Traits/PublicationSettings.php +++ b/app/Models/Traits/PublicationSettings.php @@ -2977,11 +2977,6 @@ trait PublicationSettings 'fake' => true, 'store_in' => 'settings', 'translatable' => false, - 'column' => true, - 'column_label' => '', - 'column_type' => 'model_function', - 'column_view_namespace' => 'crud::columns', - 'column_function_name' => 'getSCORMVersion', ]); $this->addField('scorm_id', LongText::class, $this->__('Identifiant SCORM'), [ 'v2' => '{"type":"text","default":"","editable":true,"label":"\\u00a7!\\u00a7Identifiant SCORM!\\u00a7!","grade":5}', diff --git a/resources/views/columns/owner.blade.php b/resources/views/columns/owner.blade.php index 2f35f711c..47cbc46d5 100644 --- a/resources/views/columns/owner.blade.php +++ b/resources/views/columns/owner.blade.php @@ -6,7 +6,8 @@ @if(!isset($crud->seenOwnersList)) - @php $crud->seenOwnersList=true; + @php + $crud->seenOwnersList=true; $crud->ajaxOwnerList=\Cubist\Backpack\Magic\Fields\SelectFromArray::hashOptions($column['options']); @endphp