Implement board columns and project workflow settings #7

Merged
Twyco merged 3 commits from codex/0.1-kanban-foundation/04-board-columns-and-project-workflow-settings into main 2026-03-26 20:53:14 +00:00
4 changed files with 9 additions and 23 deletions
Showing only changes of commit 23954e9653 - Show all commits
@@ -9,6 +9,7 @@ use App\Models\BoardColumn;
use App\Models\Project;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Arr;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB;
use Inertia\Inertia;
2
@@ -42,12 +43,13 @@ class ProjectBoardSettingsController extends Controller
$this->projectPermissionService->userCanManageProjectAccess($request->user(), $project),
403,
);
$validated = $request->validated();
$desiredPosition = $request->position() ?? $project->boardColumns()->count() + 1;
$desiredPosition = Arr::get($validated, 'position') ?? $project->boardColumns()->count() + 1;
$boardColumn = DB::transaction(function () use ($project, $request, $desiredPosition): BoardColumn {
$boardColumn = DB::transaction(function () use ($project, $validated, $desiredPosition): BoardColumn {
$boardColumn = $project->boardColumns()->create([
'name' => $request->validated('name'),
'name' => Arr::get($validated, 'name'),
'position' => $project->boardColumns()->count() + 1,
]);
@@ -69,13 +71,14 @@ class ProjectBoardSettingsController extends Controller
$this->projectPermissionService->userCanManageProjectAccess($request->user(), $project),
403,
);
$validated = $request->validated();
DB::transaction(function () use ($boardColumn, $project, $request): void {
DB::transaction(function () use ($boardColumn, $project, $validated): void {
$boardColumn->update([
'name' => $request->validated('name'),
'name' => Arr::get($validated, 'name'),
]);
$this->reorderColumns($project, $boardColumn, $request->position());
$this->reorderColumns($project, $boardColumn, Arr::get($validated, 'position'));
});
return to_route('projects.settings.board', $project)
2
@@ -27,15 +27,4 @@ class StoreBoardColumnRequest extends FormRequest
'position' => ['nullable', 'integer', 'min:1'],
];
}
public function position(): ?int
{
$position = $this->validated('position');
if ($position === null) {
return null;
}
return (int) $position;
}
}
2
@@ -27,9 +27,4 @@ class UpdateBoardColumnRequest extends FormRequest
'position' => ['required', 'integer', 'min:1'],
];
}
public function position(): int
{
return (int) $this->validated('position');
}
}
@@ -5,5 +5,4 @@ export type BoardColumnModel = {
project_id: number;
created_at: string;
updated_at: string;
[key: string]: unknown;
};
Twyco marked this conversation as resolved
Review

kann raus

kann raus