diff --git a/app/application/app/Http/Controllers/Admin/Projects/DocumentationCategoriesController.php b/app/application/app/Http/Controllers/Admin/Projects/DocumentationCategoriesController.php index 554984a..b4a9d6f 100644 --- a/app/application/app/Http/Controllers/Admin/Projects/DocumentationCategoriesController.php +++ b/app/application/app/Http/Controllers/Admin/Projects/DocumentationCategoriesController.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\DocumentationCategories\CreateRequest; use App\Http\Requests\Admin\Projects\DocumentationCategories\IndexRequest; use App\Http\Requests\Admin\Projects\DocumentationCategories\StoreUpdateRequest; use App\Services\Admin\Project\DocumentationCategoryService; @@ -32,18 +33,23 @@ final class DocumentationCategoriesController extends Controller $this->errors($result); } - return view('admin/projects/documentation-categories/index', $result->getData()); + return view('admin/projects/documentation-versions/documentation-categories/index', $result->getData()); } - public function create(int $projectId, int $versionId, Request $request): View + public function create(int $projectId, int $versionId, CreateRequest $request): View { + $parentId = null; + if ($request->has('category')) { + $parentId = (int) $request->input('category'); + } + $user = $request->user(); - $result = $this->documentationCategoryService->create($projectId, $versionId, $user); + $result = $this->documentationCategoryService->create($projectId, $versionId, $user, $parentId); if ($result->isError()) { $this->errors($result); } - return view('admin/projects/documentation-categories/create', $result->getData()); + return view('admin/projects/documentation-versions/documentation-categories/create', $result->getData()); } public function edit(int $projectId, int $versionId, int $id, Request $request): View @@ -54,7 +60,7 @@ final class DocumentationCategoriesController extends Controller $this->errors($result); } - return view('admin/projects/documentation-categories/edit', $result->getData()); + return view('admin/projects/documentation-versions/documentation-categories/edit', $result->getData()); } public function store(int $projectId, int $versionId, StoreUpdateRequest $request): RedirectResponse diff --git a/app/application/app/Http/Requests/Admin/Projects/DocumentationCategories/CreateRequest.php b/app/application/app/Http/Requests/Admin/Projects/DocumentationCategories/CreateRequest.php new file mode 100644 index 0000000..1e89fb3 --- /dev/null +++ b/app/application/app/Http/Requests/Admin/Projects/DocumentationCategories/CreateRequest.php @@ -0,0 +1,18 @@ + ['nullable', 'integer', 'min:1'], + ]; + } +} diff --git a/app/application/app/Services/Admin/Project/DocumentationCategoryService.php b/app/application/app/Services/Admin/Project/DocumentationCategoryService.php index 7abce3d..6d2229e 100644 --- a/app/application/app/Services/Admin/Project/DocumentationCategoryService.php +++ b/app/application/app/Services/Admin/Project/DocumentationCategoryService.php @@ -75,7 +75,7 @@ final class DocumentationCategoryService extends Service ]); } - public function create(int $projectId, int $versionId, User $user): ServiceResultError | ServiceResultArray + public function create(int $projectId, int $versionId, User $user, ?int $parentId = null): ServiceResultError | ServiceResultArray { $version = $this->documentationVersionRepository->getVersionById($versionId); $project = $version?->project; @@ -88,10 +88,15 @@ final class DocumentationCategoryService extends Service } $defaultLanguage = $project->languages->where('is_default', 1)->first(); + $category = new DocumentationCategory(); + if ($parentId !== null) { + $category->parent_id = $parentId; + } + return $this->result([ 'version' => $version, 'project' => $project, - 'category' => new DocumentationCategory(), + 'category' => $category, 'categories' => $this->documentationCategoryRepository->getForSelect($version, $defaultLanguage), 'serviceTranslationEnable' => config('translation_service.enable', false), ]); diff --git a/app/application/resources/views/admin/projects/documentation-categories/create.blade.php b/app/application/resources/views/admin/projects/documentation-versions/documentation-categories/create.blade.php similarity index 79% rename from app/application/resources/views/admin/projects/documentation-categories/create.blade.php rename to app/application/resources/views/admin/projects/documentation-versions/documentation-categories/create.blade.php index 83a2b01..c7869f1 100644 --- a/app/application/resources/views/admin/projects/documentation-categories/create.blade.php +++ b/app/application/resources/views/admin/projects/documentation-versions/documentation-categories/create.blade.php @@ -3,14 +3,14 @@ {{ __('admin-sections.Project') . ': ' . $project->name . ' (' . $version->title . ')' }} @endsection - @include('admin.projects.documentation-categories._top') + @include('admin.projects.documentation-versions.documentation-categories._top')

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

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