From 24f7d9272638dfbf1776675876a22e68de2a8ff9 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Thu, 29 Jun 2023 18:08:53 +0200 Subject: [PATCH] wip #6091 @2 --- app/Console/Commands/WorkshopMigration.php | 10 +++--- .../FluidbookPublication/UpgradeOperation.php | 34 +++++++++++++++++++ app/Models/FluidbookPublication.php | 14 ++++++++ .../packages/fluidbook/toolbox/js/bundle.js | 18 ++++++++++ .../fluidbook_publication/edit.blade.php | 2 +- .../fluidbook_publication/upgrade.blade.php | 17 ++++++++++ 6 files changed, 89 insertions(+), 6 deletions(-) create mode 100644 app/Http/Controllers/Admin/Operations/FluidbookPublication/UpgradeOperation.php create mode 100644 resources/views/vendor/backpack/crud/buttons/fluidbook_publication/upgrade.blade.php diff --git a/app/Console/Commands/WorkshopMigration.php b/app/Console/Commands/WorkshopMigration.php index f8f636a8a..02204b35e 100644 --- a/app/Console/Commands/WorkshopMigration.php +++ b/app/Console/Commands/WorkshopMigration.php @@ -24,7 +24,7 @@ class WorkshopMigration extends CubistCommand protected $signature = 'ws:migrate {--publications=v2} {--documents=missing} {--quick}'; protected $description = 'Migrate data from Workshop V2'; protected $_wsRanks = []; - protected $_oldDB = 'extranet_clean'; + const OLD_DB = 'extranet_clean'; protected $_oldRoot = '/home/extranet/www/fluidbook/'; protected static $_admin = 5; @@ -84,11 +84,11 @@ class WorkshopMigration extends CubistCommand PHP::neverStop(); - $q = DB::table($this->_oldDB . '.documents')->orderBy('document_id', 'desc'); + $q = DB::table(self::OLD_DB . '.documents')->orderBy('document_id', 'desc'); if ($this->option('documents') === 'missing') { $maxID = FluidbookDocument::withoutGlobalScopes()->where('id', '<', self::WS3_DOC_ID)->orderBy('id', 'DESC')->first()->id; - $q = DB::table($this->_oldDB . '.documents')->where('document_id', '>', $maxID)->orderBy('document_id', 'desc'); + $q = DB::table(self::OLD_DB . '.documents')->where('document_id', '>', $maxID)->orderBy('document_id', 'desc'); } else if ($this->option('documents') === 'v2') { DB::update('DELETE FROM fluidbook_document WHERE id<' . self::WS3_DOC_ID); @@ -196,7 +196,7 @@ class WorkshopMigration extends CubistCommand FluidbookTheme::$updateWS2ViewOnChange = false; - $q = DB::table($this->_oldDB . '.books')->orderBy('book_id', 'asc'); + $q = DB::table(self::OLD_DB . '.books')->orderBy('book_id', 'asc'); if ($this->option('publications') === 'v2') { DB::update('DELETE FROM fluidbook_publication WHERE version=2 AND id<' . self::WS3_BOOK_ID); @@ -275,7 +275,7 @@ class WorkshopMigration extends CubistCommand // Composition $composition = []; - foreach (DB::table($this->_oldDB . '.book_pages')->where('book_id', $e->book_id)->get() as $p) { + foreach (DB::table(self::OLD_DB . '.book_pages')->where('book_id', $e->book_id)->get() as $p) { $composition[$p->book_page] = [$p->document_id, $p->document_page]; } $c->setAttribute('composition', $composition); diff --git a/app/Http/Controllers/Admin/Operations/FluidbookPublication/UpgradeOperation.php b/app/Http/Controllers/Admin/Operations/FluidbookPublication/UpgradeOperation.php new file mode 100644 index 000000000..dfb6be420 --- /dev/null +++ b/app/Http/Controllers/Admin/Operations/FluidbookPublication/UpgradeOperation.php @@ -0,0 +1,34 @@ +crud->operation(['list', 'show'], function () { + $this->crud->addButton('line', 'upgrade', 'view', 'crud::buttons.fluidbook_publication.upgrade', 'end'); + }); + } + + public function upgrade($id) + { + if (!FluidbookPublication::hasPermission($id, 'write')) { + abort(401); + } + FluidbookPublication::find($id)->upgrade(); + Alert::add('success', __('La publication a été mise à niveau à la dernière version.'))->flash(); + return redirect(backpack_url('fluidbook-publication')); + } + +} diff --git a/app/Models/FluidbookPublication.php b/app/Models/FluidbookPublication.php index 13dceba7f..995d35c19 100644 --- a/app/Models/FluidbookPublication.php +++ b/app/Models/FluidbookPublication.php @@ -28,6 +28,7 @@ use App\Http\Controllers\Admin\Operations\FluidbookPublication\Services\BastideO use App\Http\Controllers\Admin\Operations\FluidbookPublication\Services\ExportPdfOperation; use App\Http\Controllers\Admin\Operations\FluidbookPublication\Services\SocialImageOperation; use App\Http\Controllers\Admin\Operations\FluidbookPublication\StatsOperation; +use App\Http\Controllers\Admin\Operations\FluidbookPublication\UpgradeOperation; use App\Jobs\FluidbookImagesPreprocess; use App\Jobs\FluidbookSocialImage; use App\Models\Base\ToolboxSettingsModel; @@ -54,6 +55,7 @@ use Cubist\Util\Json; use Cubist\Util\Str; use Datetime; use Illuminate\Support\Facades\Artisan; +use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; // __('!!Paramètres des fluidbooks') @@ -82,6 +84,7 @@ class FluidbookPublication extends ToolboxSettingsModel PreviewOperation::class, LinksOperation::class, CompositionOperation::class, + UpgradeOperation::class, StatsOperation::class, DownloadOperation::class, CloneOperation::class, @@ -904,4 +907,15 @@ class FluidbookPublication extends ToolboxSettingsModel } return $this->_fluidbookToUseForComposition->$name; } + + public function upgrade($version = "latest") + { + if ($version === 'latest') { + $version = 3; + } + $this->version = $version; + $this->save(); + + DB::update('UPDATE ' . WorkshopMigration::OLD_DB . '.books SET version=' . $version . ' WHERE book_id=' . $this->id); + } } diff --git a/public/packages/fluidbook/toolbox/js/bundle.js b/public/packages/fluidbook/toolbox/js/bundle.js index 95a5789d7..ef7c3733e 100644 --- a/public/packages/fluidbook/toolbox/js/bundle.js +++ b/public/packages/fluidbook/toolbox/js/bundle.js @@ -34,6 +34,24 @@ $(function () { ); return false; }); + + $(document).on('click', '[data-confirm-title]', function (e) { + e.preventDefault(); + new swal({ + title: $(this).data('confirm-title'), + text: $(this).data('confirm-text'), + icon: "warning", + showCancelButton: true, + confirmButtonText: $(this).data('confirm-confirm'), + cancelButtonText:$(this).data('confirm-cancel'), + reverseButtons: true, + dangerMode: true, + }).then((result) => { + if (result.isConfirmed) { + window.location = $(this).attr('href'); + } + }); + }); }); function showLoader(message, progress) { diff --git a/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/edit.blade.php b/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/edit.blade.php index 4cbdf0b4a..48db07453 100644 --- a/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/edit.blade.php +++ b/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/edit.blade.php @@ -19,7 +19,7 @@ ]; } @endphp -@if($entry->allowsEdit() && $entry->getKey()>=\App\Console\Commands\WorkshopMigration::WS3_BOOK_ID) +@if($entry->allowsEdit()) version<3) + {{__('Upgrade')}} +@endif -- 2.39.5