use \App\Http\Controllers\Admin\Operations\FluidbookPublication\Services\GetPageFromWebsiteOperation;
use \App\Http\Controllers\Admin\Operations\FluidbookPublication\Services\BastideOperation;
use \App\Http\Controllers\Admin\Operations\FluidbookPublication\YSLOperation;
-
+
/*
protected function setupDownloadRoutes($segment, $routeName, $controller)
{
- Route::match(['get','post'], $segment . '/{id}/download_settings', $controller . '@downloadSettingsByIds')->name("download_settings_by_ids");
+ //
}
protected $button = 'fluidbook_collection';
protected $downloadJob = FluidbookCollectionDownload::class;
-
- protected function downloadSettingsByIds($id) {
- $userId = backpack_user()->id;
- $publications = Arr::flatten(FluidbookCollection::where('id',$id)->get('publications')->toArray(), 2);
- $ids = Arr::join(array_column($publications,'fluidbook'), ',');
- $file = (new FluidbookSettingsExport($ids,$userId,true))->handle();
- return response()->download($file, 'settings_export.xlsx')->deleteFileAfterSend();
- }
}
--- /dev/null
+<?php
+
+namespace App\Http\Controllers\Admin\Operations\FluidbookCollection;
+
+use App\Http\Middleware\CheckIfAdmin;
+use App\Jobs\FluidbookSettingsExport;
+use App\Models\FluidbookCollection;
+use Illuminate\Support\Arr;
+use Illuminate\Support\Facades\Route;
+
+trait SettingsExportOperation
+{
+ protected function setupSettingsRoutes($segment, $routeName, $controller)
+ {
+ Route::match(['get','post'], $segment . '/{id}/download_settings', $controller . '@collectionSettings')->name("download_settings_by_ids");
+ }
+
+ protected function collectionSettings($id) {
+ $userId = backpack_user()->id;
+ $publications = Arr::flatten(FluidbookCollection::where('id',$id)->get('publications')->toArray(), 2);
+ $ids = Arr::join(array_column($publications,'fluidbook'), ',');
+ $file = (new FluidbookSettingsExport($ids,$userId,true))->handle();
+ return response()->download($file, 'settings_export.xlsx')->deleteFileAfterSend();
+ }
+}
Route::match(['get'], $segment . '/{id}/package/{action}/{version}', $controller . '@package');
Route::match(['get'], $segment . '/{id}/package/{action}/scorm/{scormversion}', $controller . '@packageScorm');
Route::match(['get'], $segment . '/{id}_{hash}/download/{file}', $controller . '@download')->withoutMiddleware([CheckIfAdmin::class]);
- Route::match(['get','post'], $segment . '/download_settings/{file}', $controller . '@downloadSettings')->withoutMiddleware([CheckIfAdmin::class])->name("download_settings");
- Route::match(['post'], $segment . '/send_link/{ids}', $controller . '@sendLinkForDownload')->middleware([CheckIfAdmin::class])->name("send_link");
}
protected function setupDownloadDefaults()
Alert::add('success', __('La compilation a été placée en file d\'attente. Vous recevrez un email lorsqu\'elle sera terminée.'))->flash();
return back();
}
-
- protected function downloadSettings($file) {
- $name = "settings_export";
- $path = "/tmp/cubist".base64_decode($file);
- if (!file_exists($path)) abort(404);
- return response()->download($path, $name . '.xlsx');
- }
-
- protected function sendLinkForDownload($ids) {
- $userId = backpack_user()->id;
- dispatch_sync(new FluidbookSettingsExport($ids,$userId));
- }
}
--- /dev/null
+<?php
+
+namespace App\Http\Controllers\Admin\Operations\FluidbookPublication;
+
+use App\Http\Middleware\CheckIfAdmin;
+use App\Jobs\FluidbookSettingsExport;
+use Illuminate\Support\Facades\Route;
+
+trait SettingsExportOperation
+{
+ protected function setupSettingsRoutes($segment, $routeName, $controller)
+ {
+ Route::match(['get','post'], $segment . '/download_settings/{file}', $controller . '@fluidbookSettings')->withoutMiddleware([CheckIfAdmin::class])->name("download_settings");
+ Route::match(['post'], $segment . '/send_link/{ids}', $controller . '@sendLinkForDownload')->name("send_link");
+ }
+
+ protected function fluidbookSettings($file) {
+ $name = "settings_export";
+ $path = "/tmp/cubist".base64_decode($file);
+ if (!file_exists($path)) abort(404);
+ return response()->download($path, $name . '.xlsx');
+ }
+
+ protected function sendLinkForDownload($ids) {
+ $userId = backpack_user()->id;
+ dispatch_sync(new FluidbookSettingsExport($ids,$userId));
+ }
+}
{
$user = User::withoutGlobalScopes()->find($this->userID); //5908
+ if(!can('fluidbook-publication:admin')){
+ abort('403');
+ }
+
//
$model = FluidbookPublication::whereIn('id', $this->listID);
use App\Http\Controllers\Admin\Operations\ChangestatusOperation;
use App\Http\Controllers\Admin\Operations\FluidbookCollection\DownloadOperation;
use App\Http\Controllers\Admin\Operations\FluidbookCollection\PreviewOperation;
+use App\Http\Controllers\Admin\Operations\FluidbookCollection\SettingsExportOperation;
use App\Models\Base\ToolboxDownloadable;
use App\Jobs\RefreshUsersTree;
use App\Models\Base\ToolboxStatusModel;
PreviewOperation::class,
DownloadOperation::class,
ChangeownerOperation::class,
- ChangestatusOperation::class
+ ChangestatusOperation::class,
+ SettingsExportOperation::class
];
protected static $_permissionBase = 'fluidbook-collection';
use App\Http\Controllers\Admin\Operations\FluidbookPublication\UpgradeOperation;
use App\Http\Controllers\Admin\Operations\FluidbookPublication\YSLOperation;
use App\Http\Controllers\Admin\Operations\InvoiceOperation;
+use App\Http\Controllers\Admin\Operations\FluidbookPublication\SettingsExportOperation;
use App\Jobs\FluidbookImagesPreprocess;
use App\Jobs\FluidbookSocialImage;
use App\Jobs\GenerateDeliveryThumbnailsPreview;
ChangeownerOperation::class,
ChangestatusOperation::class,
InvoiceOperation::class,
+ SettingsExportOperation::class,
// Services
SocialImageOperation::class,
ExportPdfOperation::class,