]> _ Git - fluidbook-toolbox.git/commitdiff
wait #5794 @0.75
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 8 Mar 2023 19:44:44 +0000 (20:44 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 8 Mar 2023 19:44:44 +0000 (20:44 +0100)
app/Console/Commands/WorkshopMigration.php
app/Http/Controllers/Admin/Operations/FluidbookPublication/CloneOperation.php
app/Jobs/FluidbookCompiler.php
app/Models/FluidbookPublication.php

index a044d101e5dc2d2029552383a5caeee310720c19..13d16d345f6f277060cdb4ea2fd167a9f76d9aa4 100644 (file)
@@ -16,11 +16,12 @@ use Cubist\Backpack\Magic\Fields\Files;
 use Cubist\Util\ArrayUtil;
 use Cubist\Util\ObjectUtil;
 use Cubist\Util\PHP;
+use Illuminate\Support\Facades\Artisan;
 use Illuminate\Support\Facades\DB;
 
 class WorkshopMigration extends CubistCommand
 {
-    protected $signature = 'ws:migrate {--publications=v2} {--documents=missing}';
+    protected $signature = 'ws:migrate {--publications=v2} {--documents=missing} {--quick}';
     protected $description = 'Migrate data from Workshop V2';
     protected $_wsRanks = [];
     protected $_oldDB = 'extranet_clean';
@@ -43,6 +44,10 @@ class WorkshopMigration extends CubistCommand
             'Clean caches' => 'cleanCache'
         ];
 
+        if ($this->option('quick')) {
+            $actions = ['Import publications' => 'importPublications'];
+        }
+
         $this->progressBar = $this->output->createProgressBar(count($actions));
 
         $this->line(' Data migration, please wait');
@@ -61,18 +66,18 @@ class WorkshopMigration extends CubistCommand
 
     protected function migrate()
     {
-        $this->executeProcessQuiet('php artisan cubist:magic:generate');
-        $this->executeProcessQuiet('php artisan cubist:magic:migrate');
+        Artisan::call('cubist:magic:generate');
+        Artisan::call('cubist:magic:migrate');
     }
 
     protected function backup()
     {
-        $this->executeProcessQuiet('php artisan backup:run');
+        Artisan::call('backup:run');
     }
 
     protected function cleanCache()
     {
-        $this->executeProcessQuiet('php artisan optimize:clear');
+        Artisan::call('optimize:clear');
     }
 
     protected function importDocuments()
index beec32851b7969ee5d8ffe74e5f31997953f9636..aa1d611613b8b304c42c0d76fc9c82d59951f920 100644 (file)
@@ -50,7 +50,7 @@ trait CloneOperation
         $this->crud->hasAccessOrFail('clone');
         $entry = $this->crud->model->findOrFail($id);
         if ($action === 'complete') {
-            $clonedEntry = $entry->replicate();
+            $clonedEntry = $entry->replicateFull();
         } else {
             $clonedEntry = $entry->replicateSettings();
         }
index 4890e78d1ac0ac8bef2024d1a281df466eb7f180..ca4fd3df7941212a4755af28f0f96c6a854018b7 100644 (file)
@@ -2230,7 +2230,7 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
                 $anchorExists[$linkData['to']] = $linkData;
             }
             if ($linkData['type'] == 35 || $linkData['type'] == 15 || $linkData['type'] == 39) {
-                $linkData = Links::decryptLink($linkData);
+                $linkData = Link::decryptLink($linkData);
                 $animations = ContentLink::parseAnimations($linkData['image_rollover']);
                 foreach ($animations as $animation) {
                     if (isset($animation['backgroundcolor']) && $animation['backgroundcolor'] !== 'transparent') {
index efd514246877d268ab699721a79895183481cd6a..a365cc94851808d930d9ffed3c93b87013719c58 100644 (file)
@@ -34,6 +34,7 @@ use Cubist\Util\Files\Files;
 use Cubist\Util\Graphics\Image;
 use Cubist\Util\Json;
 use Datetime;
+use Illuminate\Support\Facades\Artisan;
 
 // __('!!Paramètres des fluidbooks')
 class FluidbookPublication extends ToolboxSettingsModel
@@ -543,7 +544,11 @@ class FluidbookPublication extends ToolboxSettingsModel
 
     protected function _baseReplicate(array $except = null)
     {
-        $new = parent::replicate($except);
+        $current = $this;
+        if ($this->syncFromWorkshop()) {
+            $current = static::find($this->id);
+        }
+        $new = $current->replicate($except);
         if (backpack_user()) {
             $new->owner = backpack_user()->id;
         }
@@ -553,7 +558,7 @@ class FluidbookPublication extends ToolboxSettingsModel
         return $new;
     }
 
-    public function replicate(array $except = null)
+    public function replicateFull(array $except = null)
     {
         $new = $this->_baseReplicate($except);
         $new->save();
@@ -577,6 +582,15 @@ class FluidbookPublication extends ToolboxSettingsModel
         return $new;
     }
 
+    public function syncFromWorkshop()
+    {
+        if ($this->id >= WorkshopMigration::WS3_BOOK_ID) {
+            return false;
+        }
+        Artisan::call('ws:migrate --publications=' . $this->id . ' --documents=missing --quick');
+        return true;
+    }
+
 
     protected function _replicateMedia($newId)
     {