This commit is contained in:
F4ilji
2026-04-13 14:37:57 +05:00
parent 5eb5a7bc06
commit 2e77978d5c
16 changed files with 241 additions and 34 deletions
@@ -3,6 +3,7 @@
namespace App\Containers\Dashboard\UI\WEB\Controllers;
use App\Containers\AppStructure\Models\Page;
use App\Containers\Dashboard\Actions\ContentBuilder\UploadContentBuilderFilesAction;
use App\Containers\Dashboard\Actions\Pages\CreatePageAction;
use App\Containers\Dashboard\Actions\Pages\DeletePageAction;
use App\Containers\Dashboard\Actions\Pages\ListPagesAction;
@@ -10,6 +11,7 @@ use App\Containers\Dashboard\Actions\Pages\UpdatePageAction;
use App\Containers\Dashboard\UI\WEB\Requests\StorePageRequest;
use App\Containers\Dashboard\UI\WEB\Requests\UpdatePageRequest;
use App\Http\Controllers\Controller;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Inertia\Inertia;
@@ -21,6 +23,7 @@ class PageController extends Controller
private readonly CreatePageAction $createPageAction,
private readonly UpdatePageAction $updatePageAction,
private readonly DeletePageAction $deletePageAction,
private readonly UploadContentBuilderFilesAction $uploadContentBuilderFilesAction,
) {}
/**
@@ -115,4 +118,29 @@ class PageController extends Controller
->with('error', 'Ошибка при удалении страницы: ' . $e->getMessage());
}
}
/**
* Загружает файлы для ContentBuilder и возвращает метаданные
*/
public function uploadFiles(Request $request): JsonResponse
{
$request->validate([
'files' => 'required|array',
'files.*' => 'required|file|mimes:pdf,docx,xlsx,pptx,zip,doc,xls,ppt|max:524288',
]);
try {
$results = $this->uploadContentBuilderFilesAction->run($request->file('files'));
return response()->json([
'success' => true,
'files' => $results,
]);
} catch (\Exception $e) {
return response()->json([
'success' => false,
'error' => 'Ошибка при загрузке файлов: ' . $e->getMessage(),
], 500);
}
}
}
@@ -364,6 +364,7 @@ Route::middleware(['access-check', 'dashboard.auth'])->group(function () {
Route::get('/', [PageController::class, 'index'])->name('index');
Route::get('/create', [PageController::class, 'create'])->name('create');
Route::post('/', [PageController::class, 'store'])->name('store');
Route::post('/upload-files', [PageController::class, 'uploadFiles'])->name('upload-files');
Route::get('/{page}/edit', [PageController::class, 'edit'])->name('edit');
Route::put('/{page}', [PageController::class, 'update'])->name('update');
Route::delete('/{page}', [PageController::class, 'destroy'])->name('destroy');