--- /dev/null
+<?php
+
+namespace App\Http\Controllers\Admin\Operations\Tools;
+
+use App\Fields\FluidbookID;
+use App\Fluidbook\Link\LinksData;
+use App\Models\FluidbookPublication;
+use Cubist\Backpack\Magic\Fields\Checkbox;
+use Cubist\Backpack\Magic\Fields\Integer;
+use Cubist\Backpack\Magic\Fields\SelectFromArray;
+use Cubist\Backpack\Magic\Form;
+use Prologue\Alerts\Facades\Alert;
+
+// __('!! Outils')
+trait FluidbookReplicate
+{
+
+
+ public function fluidbookreplicate()
+ {
+ $form = new Form(backpack_url('tools/dofluidbookreplicate'));
+ $form->setTitle(__('Dupliquer un Fluidbook'));
+ $form->setSubmitLabel(__('Dupliquer'));
+ $form->setSubmitIcon('la-clone');
+ $form->addField('from', FluidbookID::class, __('Publication à dupliquer'), ['default' => request('id')]);
+ $form->addField('mode', SelectFromArray::class, __('Mode de duplication'), ['allows_null' => false, 'default' => 'settings', 'options' => [
+ 'settings' => __('Uniquement les paramètres et assets'),
+ 'all' => __('Toute la publication')
+ ]
+ ]);
+ $form->addField('times', Integer::class, __('Nombre de duplications'), ['default' => 1]);
+
+ return view('tools.form', ['form' => $form]);
+ }
+
+ public function dofluidbookreplicate()
+ {
+
+ $id = request('from');
+ if (!$id) {
+ Alert::error(__('Vous devez définir le fluidbook à dupliquer'))->flash();
+ return redirect(url('tools/fluidbookreplicate'));
+ }
+
+ if (!FluidbookPublication::hasPermission($id, 'write')) {
+ abort(401);
+ }
+
+ /** @var FluidbookPublication $instance */
+ $instance = FluidbookPublication::withoutGlobalScopes()->find(request('from'));
+ $times = max(1, request('times'));
+ $f = request('mode', 'settings') === 'settings' ? 'replicateSettings' : 'replicateFull';
+ for ($i = 0; $i < $times; $i++) {
+ $instance->$f();
+ }
+
+ Alert::success(__('Duplication effectuée :nb fois', ['nb' => $times]))->flash();
+ return redirect(url('fluidbook-publication'));
+ }
+
+
+}
use App\Http\Controllers\Admin\Operations\Tools\FluidbookBranchRemove;
use App\Http\Controllers\Admin\Operations\Tools\FluidbookCopyLinks;
use App\Http\Controllers\Admin\Operations\Tools\FluidbookReferencesURL;
+use App\Http\Controllers\Admin\Operations\Tools\FluidbookReplicate;
use App\Http\Controllers\Admin\Operations\Tools\GitReposCreate;
use App\Http\Controllers\Admin\Operations\Tools\ImagesResizer;
use App\Http\Controllers\Admin\Operations\Tools\JSON2Excel;
use FluidbookCopyLinks;
use SVGCleaner;
use FluidbookReferencesURL;
-
-
+ use FluidbookReplicate;
protected function index($tool, $args = '')
{
<li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/fluidbookcopylinks') }}'><i
class='nav-icon las la-link'></i>
<span>{{__('Copier les liens ou assets d\'un fluidbook')}}</span></a></li>
+ <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/fluidbookreplicate') }}'><i
+ class='nav-icon las la-clone'></i>
+ <span>{{__('Dupliquer un fluidbook')}}</span></a></li>
<li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/fluidbookbranchcreate') }}'><i
class='nav-icon la la-git'></i>
<span>{{__('Créer une branche du player fluidbook')}}</span></a></li>