refactor(app): unify settings tab design for tags, templates & crowd types

Move crowd types management to organisation settings as a new tab and
align all three settings tabs (Tags, Registration Field Templates, Crowd
Types) to the same layout pattern: header with title/subtitle, VDataTable
for active items, and a separate inactive section with VList. Also fix
the API to return inactive records for person tags and registration field
templates so the frontend can display them.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-12 23:18:10 +02:00
parent 1c0ac488b0
commit 63bc351c59
8 changed files with 268 additions and 234 deletions

View File

@@ -51,7 +51,7 @@ class PersonTagTest extends TestCase
$response = $this->getJson("/api/v1/organisations/{$this->organisation->id}/person-tags");
$response->assertOk();
$this->assertCount(3, $response->json('data'));
$this->assertCount(4, $response->json('data'));
}
public function test_store_creates_tag(): void

View File

@@ -39,7 +39,7 @@ class RegistrationFieldTemplateTest extends TestCase
$this->otherOrganisation->users()->attach($this->outsider, ['role' => 'org_admin']);
}
public function test_index_returns_active_templates(): void
public function test_index_returns_all_templates(): void
{
RegistrationFieldTemplate::factory()->count(3)->create([
'organisation_id' => $this->organisation->id,
@@ -53,7 +53,7 @@ class RegistrationFieldTemplateTest extends TestCase
$response = $this->getJson("/api/v1/organisations/{$this->organisation->id}/registration-field-templates");
$response->assertOk();
$this->assertCount(3, $response->json('data'));
$this->assertCount(4, $response->json('data'));
}
public function test_store_creates_template(): void