]> _ Git - fluidbook-toolbox.git/commitdiff
wip #5918 @0.25
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 9 May 2023 08:09:02 +0000 (10:09 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 9 May 2023 08:09:02 +0000 (10:09 +0200)
app/Fluidbook/Compiler/Compiler.php
app/Http/Controllers/Admin/Operations/FluidbookPublication/CloneOperation.php
app/Http/Controllers/Admin/Operations/FluidbookPublication/LinksOperation.php
app/Models/FluidbookPublication.php

index d5cd9e876cdbf01e756c08273695ca2d1ac57ace..7d72f9d62db203ead80404892255716ed2073ea6 100644 (file)
@@ -1568,7 +1568,6 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
     }
 
 
-
     /**
      * @return bool
      */
@@ -3162,4 +3161,22 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
     {
         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);
+        }
+    }
 }
index aa1d611613b8b304c42c0d76fc9c82d59951f920..eb0bfd6df42cb62f71b52a3f3ea631452fa987ac 100644 (file)
@@ -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');
     }
 }
index 5007fb2b05bf0e6983769953c4c1cb9537be007e..95372fa72970d0fe3a9a98cd7044e4b68104cb78 100644 (file)
@@ -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)]);
     }
index f62bfeffcb4ce99b7362b4e1cb8bfeb44f17fbe2..3a008a250262ca047f49385c4cb1ba51fce19c2f 100644 (file)
@@ -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;