diff --git a/app/application/app/Http/Controllers/Admin/Projects/DocumentationsController.php b/app/application/app/Http/Controllers/Admin/Projects/DocumentationsController.php index 3dee28c..ea2f3f7 100644 --- a/app/application/app/Http/Controllers/Admin/Projects/DocumentationsController.php +++ b/app/application/app/Http/Controllers/Admin/Projects/DocumentationsController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers\Admin\Projects; use App\Dto\QuerySettingsDto; use App\Http\Controllers\Admin\Controller; +use App\Http\Requests\Admin\Projects\Documentations\CreateRequest; use App\Http\Requests\Admin\Projects\Documentations\IndexRequest; use App\Http\Requests\Admin\Projects\Documentations\StoreUpdateRequest; use App\Services\Admin\Project\DocumentationService; @@ -32,18 +33,23 @@ final class DocumentationsController extends Controller $this->errors($result); } - return view('admin/projects/documentations/index', $result->getData()); + return view('admin/projects/documentation-versions/documentations/index', $result->getData()); } - public function create(int $projectId, int $versionId, Request $request): View + public function create(int $projectId, int $versionId, CreateRequest $request): View { + $categoryId = null; + if ($request->has('category')) { + $categoryId = (int) $request->input('category'); + } + $user = $request->user(); - $result = $this->documentationService->create($projectId, $versionId, $user); + $result = $this->documentationService->create($projectId, $versionId, $user, $categoryId); if ($result->isError()) { $this->errors($result); } - return view('admin/projects/documentations/create', $result->getData()); + return view('admin/projects/documentation-versions/documentations/create', $result->getData()); } public function edit(int $projectId, int $versionId, int $id, Request $request): View @@ -54,7 +60,7 @@ final class DocumentationsController extends Controller $this->errors($result); } - return view('admin/projects/documentations/edit', $result->getData()); + return view('admin/projects/documentation-versions/documentations/edit', $result->getData()); } public function store(int $projectId, int $versionId, StoreUpdateRequest $request): RedirectResponse diff --git a/app/application/app/Http/Requests/Admin/Projects/Documentations/CreateRequest.php b/app/application/app/Http/Requests/Admin/Projects/Documentations/CreateRequest.php new file mode 100644 index 0000000..f1b3831 --- /dev/null +++ b/app/application/app/Http/Requests/Admin/Projects/Documentations/CreateRequest.php @@ -0,0 +1,18 @@ + ['nullable', 'integer', 'min:1'], + ]; + } +} diff --git a/app/application/app/Services/Admin/Project/DocumentationService.php b/app/application/app/Services/Admin/Project/DocumentationService.php index 4a1313c..d8b7291 100644 --- a/app/application/app/Services/Admin/Project/DocumentationService.php +++ b/app/application/app/Services/Admin/Project/DocumentationService.php @@ -75,7 +75,7 @@ final class DocumentationService extends Service ]); } - public function create(int $projectId, int $versionId, User $user): ServiceResultError | ServiceResultArray + public function create(int $projectId, int $versionId, User $user, ?int $categoryId = null): ServiceResultError | ServiceResultArray { $version = $this->documentationVersionRepository->getVersionById($versionId); $project = $version?->project; @@ -87,11 +87,16 @@ final class DocumentationService extends Service return $this->errFobidden(__('Access is denied')); } + $documentation = new Documentation(); + if ($categoryId !== null) { + $documentation->category_id = $categoryId; + } + $defaultLanguage = $project->languages->where('is_default', 1)->first(); return $this->result([ 'version' => $version, 'project' => $project, - 'documentation' => new Documentation(), + 'documentation' => $documentation, 'categories' => $this->documentationCategoryRepository->getForSelect($version, $defaultLanguage), 'serviceTranslationEnable' => config('translation_service.enable', false), ]); diff --git a/app/application/resources/views/admin/projects/documentations/create.blade.php b/app/application/resources/views/admin/projects/documentation-versions/documentations/create.blade.php similarity index 81% rename from app/application/resources/views/admin/projects/documentations/create.blade.php rename to app/application/resources/views/admin/projects/documentation-versions/documentations/create.blade.php index b03d0d5..405c0ad 100644 --- a/app/application/resources/views/admin/projects/documentations/create.blade.php +++ b/app/application/resources/views/admin/projects/documentation-versions/documentations/create.blade.php @@ -3,14 +3,14 @@ {{ __('admin-sections.Project') . ': ' . $project->name . ' (' . $version->title . ')' }} @endsection - @include('admin.projects.documentations._top') + @include('admin.projects.documentation-versions.documentations._top')

{{ __('admin-sections.Documentation') }}

- @include('admin.projects.documentations._from') + @include('admin.projects.documentation-versions.documentations._from')