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;
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);
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);
// 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);
--- /dev/null
+<?php
+
+namespace App\Http\Controllers\Admin\Operations\FluidbookPublication;
+
+use App\Http\Middleware\CheckIfAdmin;
+use App\Models\FluidbookPublication;
+use Illuminate\Support\Facades\Route;
+use Prologue\Alerts\Facades\Alert;
+
+trait UpgradeOperation
+{
+ protected function setupUpgradeRoutes($segment, $routeName, $controller)
+ {
+ Route::match(['get'], $segment . '/{id}/upgrade', $controller . '@upgrade');
+ }
+
+ protected function setupUpgradeDefaults()
+ {
+ $this->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'));
+ }
+
+}
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;
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')
PreviewOperation::class,
LinksOperation::class,
CompositionOperation::class,
+ UpgradeOperation::class,
StatsOperation::class,
DownloadOperation::class,
CloneOperation::class,
}
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);
+ }
}
);
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) {
];
}
@endphp
-@if($entry->allowsEdit() && $entry->getKey()>=\App\Console\Commands\WorkshopMigration::WS3_BOOK_ID)
+@if($entry->allowsEdit())
<a class="btn btn-sm btn-link" href="#"
data-toggle="tooltip"
title="{{__('Éditer la publication')}}"
--- /dev/null
+{{-- __('!! Paramètres des fluidbooks') --}}
+@php
+ $upgradeConfirmTitle=__('Mise à niveau d\'une publication');
+ $upgradeConfirmText=__('Après la mise à niveau, la publication sera éditable dans Fluidbook Toolbox mais plus éditable dans le Fluidbook Workshop.').' '.
+__('Assurez-vous d\'avoir testé votre publication avec le compilateur en version 3 avant de poursuivre.'.' '.
+__('Cette opération est irréversible.'));
+@endphp
+@if($entry->version<3)
+ <a class="btn btn-sm btn-link" href="{{$crud->route}}/{{$entry->id}}/upgrade"
+ data-toggle="tooltip"
+ data-confirm-title="{{$upgradeConfirmTitle}}"
+ data-confirm-text="{{$upgradeConfirmText}}"
+ data-confirm-confirm="{{__('Mise à niveau')}}"
+ data-confirm-cancel="{{__('Rester en version 2')}}"
+ title="{{__('Mettre à niveau à la version 3')}}"
+ ><i class="las la-arrow-circle-up"></i> {{__('Upgrade')}}</a>
+@endif