From e101254e9f9bd15498f920d52de9e69bda3e577d Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Tue, 9 May 2023 10:09:02 +0200 Subject: [PATCH] wip #5918 @0.25 --- app/Fluidbook/Compiler/Compiler.php | 19 ++++++++++++++++++- .../FluidbookPublication/CloneOperation.php | 3 +++ .../FluidbookPublication/LinksOperation.php | 6 ++++++ app/Models/FluidbookPublication.php | 1 + 4 files changed, 28 insertions(+), 1 deletion(-) diff --git a/app/Fluidbook/Compiler/Compiler.php b/app/Fluidbook/Compiler/Compiler.php index d5cd9e876..7d72f9d62 100644 --- a/app/Fluidbook/Compiler/Compiler.php +++ b/app/Fluidbook/Compiler/Compiler.php @@ -1568,7 +1568,6 @@ height="0" width="0" style="display:none;visibility:hidden"> } - /** * @return bool */ @@ -3162,4 +3161,22 @@ height="0" width="0" style="display:none;visibility:hidden"> { return $this->getHeight() / $this->getLinkScale(); } + + /** + * @param $fluidbook int|FluidbookPublication + * @param $scormVariant bool + * @param $hybrid bool + * @param $sync bool + * @return void + * @throws \Exception + */ + public static function compile($fluidbook, $scormVariant = false, $hybrid = false, $sync = false) + { + $compiler = new static($fluidbook instanceof FluidbookPublication ?: FluidbookPublication::withoutGlobalScopes()->find($fluidbook), scormVariant: $scormVariant, hybrid: $hybrid); + if ($sync) { + $compiler->handle(); + } else { + dispatch($compiler); + } + } } diff --git a/app/Http/Controllers/Admin/Operations/FluidbookPublication/CloneOperation.php b/app/Http/Controllers/Admin/Operations/FluidbookPublication/CloneOperation.php index aa1d61161..eb0bfd6df 100644 --- a/app/Http/Controllers/Admin/Operations/FluidbookPublication/CloneOperation.php +++ b/app/Http/Controllers/Admin/Operations/FluidbookPublication/CloneOperation.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers\Admin\Operations\FluidbookPublication; +use App\Fluidbook\Compiler\Compiler; use Illuminate\Http\Client\Response; use Illuminate\Support\Facades\Route; @@ -44,6 +45,7 @@ trait CloneOperation * * @param int $id * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector + * @throws \Exception */ public function clone($id, $action) { @@ -54,6 +56,7 @@ trait CloneOperation } else { $clonedEntry = $entry->replicateSettings(); } + Compiler::compile($clonedEntry); return redirect('/fluidbook-publication/' . $clonedEntry->id . '/edit'); } } diff --git a/app/Http/Controllers/Admin/Operations/FluidbookPublication/LinksOperation.php b/app/Http/Controllers/Admin/Operations/FluidbookPublication/LinksOperation.php index 5007fb2b0..95372fa72 100644 --- a/app/Http/Controllers/Admin/Operations/FluidbookPublication/LinksOperation.php +++ b/app/Http/Controllers/Admin/Operations/FluidbookPublication/LinksOperation.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers\Admin\Operations\FluidbookPublication; // __('!!Paramètres des fluidbooks') +use App\Fluidbook\Compiler\Compiler; use App\Fluidbook\Link\LinksData; use App\Models\FluidbookPublication; use Cubist\Backpack\Http\Controllers\Base\XSendFileController; @@ -44,6 +45,9 @@ trait LinksOperation return XSendFileController::sendfileNoCache($fb->asset_path($file)); } + /** + * @throws \Exception + */ protected function saveLinks($fluidbook_id) { if (!FluidbookPublication::hasPermission($fluidbook_id)) { @@ -56,7 +60,9 @@ trait LinksOperation json_decode(request('links', '[]'), true), json_decode(request('rulers', '[]'), true), ); + $fb = FluidbookPublication::find($fluidbook_id); + Compiler::compile($fb); return response()->json(['assets' => $fb->getLinksAssetsDimensions(), 'versions' => LinksData::getLinksVersions($fluidbook_id)]); } diff --git a/app/Models/FluidbookPublication.php b/app/Models/FluidbookPublication.php index f62bfeffc..3a008a250 100644 --- a/app/Models/FluidbookPublication.php +++ b/app/Models/FluidbookPublication.php @@ -9,6 +9,7 @@ use App\Fields\FluidbookComposition; use App\Fields\FluidbookLocale; use App\Fields\FluidbookStatus; use App\Fields\User; +use App\Fluidbook\Compiler\Compiler; use App\Fluidbook\Farm; use App\Fluidbook\Link\LinksData; use App\Http\Controllers\Admin\Operations\ChangeownerOperation; -- 2.39.5