namespace App\Http\Controllers\Admin\Operations\Tools;
use App\Fields\FluidbookID;
+use Cubist\Backpack\Magic\Fields\Checkbox;
use Cubist\Backpack\Magic\Fields\SelectFromArray;
use Cubist\Backpack\Magic\Fields\Textarea;
use Cubist\Backpack\Magic\Form;
+use Cubist\Util\PHP;
use Prologue\Alerts\Facades\Alert;
trait FluidbookAssetsDownloader
$form->addField(['name' => 'fluidbook',
'label' => __('Fluidbook de destination'),
'type' => FluidbookID::class]);
- $form->addField('folder',SelectFromArray::class,__('Dossier'),['allows_null'=>false,'options'=>['commerce'=>__('Panier / eCommerce'),'working'=>__('Assets et liens')]]);
+ $form->addField('folder', SelectFromArray::class, __('Dossier'), ['allows_null' => false, 'options' => ['commerce' => __('Panier / eCommerce'), 'working' => __('Assets et liens')]]);
$form->addField('url', Textarea::class, __('Liste des urls à télécharger'), ['hint' => __('Une URL par ligne')]);
- $form->addField('type', SelectFromArray::class, __('Méthode'), ['allows_null' => false, 'options' => [ 'unzip' => __('Télécharger et dézipper'),'download' => __('Télécharger les fichier')], 'hint' => __('Dézipper ne conservera pas l\'arborescence des fichiers dans le zip')]);
+ $form->addField('type', SelectFromArray::class, __('Méthode'), ['allows_null' => false, 'options' => ['unzip' => __('Télécharger et dézipper'),'unzip_recursive' => __('Télécharger et dézipper'), 'download' => __('Télécharger les fichier')], 'hint' => __('Dézipper ne conservera pas l\'arborescence des fichiers dans le zip')]);
+ $form->addField('debug', Checkbox::class, __('Mode débogage'));
return view('tools.form', ['form' => $form]);
}
public function fluidbookassetsdownloaderDownload()
{
$request = request();
- \App\Jobs\Tools\FluidbookAssetsDownloader::dispatch($request->input('url'), $request->input('type'), $request->input('fluidbook'), $request->input('folder'),backpack_user());
+ $func = 'dispatch';
+ if ($request->input('debug', '0')) {
+ $func = 'dispatchSync';
+ PHP::neverStop(false);
+ }
+ \App\Jobs\Tools\FluidbookAssetsDownloader::$func($request->input('url'), $request->input('type'), $request->input('fluidbook'), $request->input('folder'), backpack_user());
Alert::add('success', __('L\'opération a été placée en file d\'attente. Vous recevrez un email lorsqu\'elle sera terminée.'))->flash();
return redirect($request->input('_referrer'));
}