From: Vincent Vanwaelscappel Date: Mon, 5 Feb 2024 15:11:26 +0000 (+0100) Subject: wait #6712 @0.5 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=bf2b6cabb487c6f36cd34c3a3c2f88d0cb6e62b6;p=fluidbook-toolbox.git wait #6712 @0.5 --- diff --git a/app/Http/Controllers/Admin/Operations/Tools/FluidbookReplicate.php b/app/Http/Controllers/Admin/Operations/Tools/FluidbookReplicate.php new file mode 100644 index 000000000..a9dc49950 --- /dev/null +++ b/app/Http/Controllers/Admin/Operations/Tools/FluidbookReplicate.php @@ -0,0 +1,62 @@ +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')); + } + + +} diff --git a/app/Http/Controllers/Admin/ToolsController.php b/app/Http/Controllers/Admin/ToolsController.php index a5ff5b4b2..1cc0f9175 100644 --- a/app/Http/Controllers/Admin/ToolsController.php +++ b/app/Http/Controllers/Admin/ToolsController.php @@ -12,6 +12,7 @@ use App\Http\Controllers\Admin\Operations\Tools\FluidbookBranchCreate; 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; @@ -34,8 +35,7 @@ class ToolsController extends Controller use FluidbookCopyLinks; use SVGCleaner; use FluidbookReferencesURL; - - + use FluidbookReplicate; protected function index($tool, $args = '') { diff --git a/resources/views/tools/sidebar.blade.php b/resources/views/tools/sidebar.blade.php index c1c08adf7..d802da3e5 100644 --- a/resources/views/tools/sidebar.blade.php +++ b/resources/views/tools/sidebar.blade.php @@ -27,6 +27,9 @@ + diff --git a/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/clone.blade.php b/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/clone.blade.php index 3c1336eba..3b153d72d 100644 --- a/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/clone.blade.php +++ b/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/clone.blade.php @@ -11,6 +11,7 @@ [ 'label'=>__('Uniquement les paramètres et assets'), ], + 'multiple'=>['label'=>__('Dupliquer plusieurs fois'),'url'=>url('tools/fluidbookreplicate?id='.$entry->id)], ]; @endphp