From: Vincent Vanwaelscappel Date: Wed, 28 Jun 2023 12:50:04 +0000 (+0200) Subject: wip #6091 @1.5 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=fb03c64384d23f4cb5b9b5a5807885036174f07c;p=fluidbook-toolbox.git wip #6091 @1.5 --- diff --git a/app/Console/Commands/WorkshopMigration.php b/app/Console/Commands/WorkshopMigration.php index dab5fd264..85a7f2424 100644 --- a/app/Console/Commands/WorkshopMigration.php +++ b/app/Console/Commands/WorkshopMigration.php @@ -92,8 +92,6 @@ class WorkshopMigration extends CubistCommand } else if ($this->option('documents') === 'v2') { DB::update('DELETE FROM fluidbook_document WHERE id<' . self::WS3_DOC_ID); - } else if ($this->option('documents') === 'all') { - FluidbookDocument::truncate(); } else { $range = ArrayUtil::parseRange($this->option('documents')); FluidbookDocument::withoutGlobalScopes()->whereIn('id', $range)->delete(); @@ -118,9 +116,7 @@ class WorkshopMigration extends CubistCommand $c->bookmarks = $this->_migrateBookmarks($e->bookmarks); $c->saveWithoutFlushingCache(); } - if ($this->option('documents') === 'all') { - DB::update('ALTER TABLE ' . $c->getTable() . ' AUTO_INCREMENT = ' . self::WS3_DOC_ID . ';'); - } + } protected function _migrateBookmarks($bookmarks, $default = []) @@ -181,7 +177,7 @@ class WorkshopMigration extends CubistCommand return $res; } - protected function importPublications($reset = false) + protected function importPublications() { if ($this->option('publications') === 'none') { return; @@ -189,10 +185,11 @@ class WorkshopMigration extends CubistCommand PHP::neverStop(); - $map = self::mapNames(); $mapValues = self::mapValues(); + $v3 = FluidbookPublication::withoutGlobalScopes()->where('version', 3)->pluck('id'); + $ignore = []; $this->line('Begin publications migration'); @@ -202,25 +199,27 @@ class WorkshopMigration extends CubistCommand $q = DB::table($this->_oldDB . '.books')->orderBy('book_id', 'asc'); if ($this->option('publications') === 'v2') { - DB::update('DELETE FROM fluidbook_publication WHERE id<' . self::WS3_BOOK_ID); - } else if ($this->option('publications') === 'all') { - FluidbookPublication::truncate(); + DB::update('DELETE FROM fluidbook_publication WHERE version=2 AND id<' . self::WS3_BOOK_ID); } else if ($this->option('publications') === 'missing') { // Get highest fluidbook on toolbox with a number less thant WS3_BOOK_ID $f = FluidbookPublication::withoutGlobalScopes()->where('id', '<', self::WS3_BOOK_ID)->orderBy('id', 'DESC')->first(); $q->where('book_id', '>', $f->id); } else { $range = ArrayUtil::parseRange($this->option('publications')); - FluidbookPublication::withoutGlobalScopes()->whereIn('id', $range)->delete(); + FluidbookPublication::withoutGlobalScopes()->where('version', 2)->whereIn('id', $range)->delete(); $q->whereIn('book_id', $range); } foreach ($q->get() as $e) { $this->line('Import ' . $e->book_id); + if (in_array($e->book_id, $v3)) { + continue; + } $c = new FluidbookPublication(); $c->setIncrementing(false); $c->id = $e->book_id; $e->compiledate = max($e->compiledate, $e->compile1date, $e->compilehtml5date); + $e->version = 2; foreach ($e as $k => $v) { $new = $map[$k] ?? $k; if (!$c->hasField($new)) { @@ -287,9 +286,6 @@ class WorkshopMigration extends CubistCommand dd($e); } } - if ($reset) { - DB::update('ALTER TABLE ' . $c->getTable() . ' AUTO_INCREMENT = ' . self::WS3_BOOK_ID . ';'); - } } public function _normalizeChapters($value) diff --git a/app/Models/FluidbookPublication.php b/app/Models/FluidbookPublication.php index ad6700cfd..911a4b840 100644 --- a/app/Models/FluidbookPublication.php +++ b/app/Models/FluidbookPublication.php @@ -113,6 +113,7 @@ class FluidbookPublication extends ToolboxSettingsModel $this->addField('hash', Hidden::class); $this->addField('cid', Hidden::class); + $this->addField('extranet_task', Hidden::class, __('Tâche de l\'extranet')); $this->addField('export_data', Hidden::class, __('Paramètres d\'export')); // Composed fields @@ -207,6 +208,7 @@ class FluidbookPublication extends ToolboxSettingsModel $this->addField('compilation_date', Datetime::class, __('Dernière compilation'), ['read_only' => true]); $this->addField('composition_updated_at', Datetime::class, __('Dernière modification de la composition'), ['read_only' => true]); $this->addField('status_date', Datetime::class, __('Date de changement de status'), ['read_only' => true]); + $this->addField('version', Hidden::class, 'Version', ['column' => true, 'default' => 3, 'databaseDefault' => 3, 'column_label' => '']); } @@ -607,7 +609,7 @@ class FluidbookPublication extends ToolboxSettingsModel if (!can('fluidbook-publication:admin')) { return false; } - if ($this->id < WorkshopMigration::WS3_BOOK_ID) { + if ($this->version < 3) { return false; } if ($this->status >= 1) { @@ -621,7 +623,7 @@ class FluidbookPublication extends ToolboxSettingsModel if (!can('fluidbook-publication:write')) { return false; } - if ($this->id < WorkshopMigration::WS3_BOOK_ID) { + if ($this->version < 3) { return false; } return true; @@ -663,7 +665,7 @@ class FluidbookPublication extends ToolboxSettingsModel public function allowsDownload() { - if ($this->id < WorkshopMigration::WS3_BOOK_ID) { + if ($this->version < 3) { return false; } if (can('fluidbook-publication:write')) { @@ -704,7 +706,7 @@ class FluidbookPublication extends ToolboxSettingsModel public function replicateFull(array $except = null) { $new = $this->_baseReplicate($except); - if (!$this->composition_fluidbook && $this->id >= 30000) { + if (!$this->composition_fluidbook && $this->version >= 3) { $new->composition_fluidbook = true; $new->composition_fluidbook_id = $this->id; $new->composition_fluidbook_links = true; @@ -732,7 +734,7 @@ class FluidbookPublication extends ToolboxSettingsModel public function syncFromWorkshop() { - if ($this->id >= WorkshopMigration::WS3_BOOK_ID) { + if ($this->version >= 3) { return false; } Artisan::call('ws:migrate --publications=' . $this->id . ' --documents=missing --quick'); diff --git a/public/packages/fluidbook/toolbox/css/context-menu.less b/public/packages/fluidbook/toolbox/css/context-menu.less index 5ac842d20..461d87943 100644 --- a/public/packages/fluidbook/toolbox/css/context-menu.less +++ b/public/packages/fluidbook/toolbox/css/context-menu.less @@ -17,3 +17,9 @@ border-color: #9ec400 !important; color: #9ec400 !important; } + +.context-menu-subtitle { + color: #2f2f2f; + font-weight: 600; + text-align: center; +} diff --git a/public/packages/fluidbook/toolbox/css/style.less b/public/packages/fluidbook/toolbox/css/style.less index c6d4d58c4..abdba961c 100644 --- a/public/packages/fluidbook/toolbox/css/style.less +++ b/public/packages/fluidbook/toolbox/css/style.less @@ -481,3 +481,4 @@ table.dataTable thead .sorting::before, table.dataTable thead .sorting::after, t font-size: 120%; } +@import 'context-menu'; diff --git a/public/packages/fluidbook/toolbox/js/contextdownload.js b/public/packages/fluidbook/toolbox/js/contextdownload.js index 91688a571..5114371bd 100644 --- a/public/packages/fluidbook/toolbox/js/contextdownload.js +++ b/public/packages/fluidbook/toolbox/js/contextdownload.js @@ -10,7 +10,9 @@ $(function () { var disabledOption = $($trigger).data('context-disabled-action'); var actions = {}; + $.each(rawActions, function (key, action) { + console.log(action); if (action != sep) { if (typeof action === 'string') { action = {'label': action}; @@ -22,7 +24,7 @@ $(function () { if (action.target === undefined) { action.target = '_self'; } - action.disabled = (key == disabledOption); + action.disabled = action.disabled || (key == disabledOption); action.isHtmlName = true; } actions[key] = action; diff --git a/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/preview.blade.php b/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/preview.blade.php index 81204882c..2c25fb7f3 100644 --- a/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/preview.blade.php +++ b/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/preview.blade.php @@ -1,9 +1,21 @@ {{-- __('!! Paramètres des fluidbooks') --}} @php - $actions=['preview'=>['label'=>__('Version online'),'url'=>$crud->route.'/preview/'.$entry->getKey().'_'.$entry->hash,'target'=>'_blank']]; + $actions=[]; + $suffixv3=''; + if($entry->version==2){ + $actions['compilev2']=['label'=>''.__('Compilateur V2').'','disabled'=>true,'url'=>'#']; + $actions['preview_v2'] = ['label'=>__('Version online'),'url'=>'https://workshop.fluidbook.com/viewerh/'.$entry->getKey().'_'.$entry->hash,'target'=>'_blank']; + if($entry->isSCORMEnabled()){ + $actions['scorm_v2'] = ['label'=>__('Version SCORM'),'url'=>'https://workshop.fluidbook.com/viewers/'.$entry->getKey().'_'.$entry->hash,'target'=>'_blank']; + } + $actions['sep']='---------'; + $actions['testv3']=['label'=>''.__('Tester le compilateur V3').'','disabled'=>true,'url'=>'#']; + } + $actions['preview']=['label'=>__('Version online'),'url'=>$crud->route.'/preview/'.$entry->getKey().'_'.$entry->hash,'target'=>'_blank']; if($entry->isSCORMEnabled()){ $actions['scorm']=['label'=>__('Version SCORM'),'url'=>$crud->route.'/preview/scorm/'.$entry->getKey().'_'.$entry->hash,'target'=>'_blank']; } + @endphp @if($entry->allowsPreview())