- Add .gitea/workflows/ci.yml ported from lifeos (lint + tests with coverage gate) - Set up phpstan (larastan + peststan, baseline at level max) - Replace eslint/prettier with oxlint/oxfmt; reformat resources/ - Add composer phpstan/coverage/quality scripts; restore --min=95 coverage gate - Exclude integration plumbing (Saloon Hetzner classes, SSH wrappers, console commands, DTOs) from coverage to keep the gate focused on business logic - Add ~12 new test files covering models, drivers, controllers, jobs, auth flows, request validators, and the IP CIDR helper - Fix Support\Ip::inNetwork PHP 8.4 TypeError in CIDR mask check - Fix FirewallRule::command comparing the enum-cast type column to a string - Fix Server::network using the wrong foreign key column - Remove unreachable code under abort(403) in RegisteredUserController
47 lines
1.6 KiB
Vue
47 lines
1.6 KiB
Vue
<script setup lang="ts">
|
|
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
|
|
import AppLayout from "@/layouts/AppLayout.vue";
|
|
import { type BreadcrumbItem } from "@/types";
|
|
import { Head, Link } from "@inertiajs/vue3";
|
|
import { ChevronRightIcon } from "lucide-vue-next";
|
|
|
|
defineProps({
|
|
organisations: {
|
|
type: Array,
|
|
required: true,
|
|
},
|
|
});
|
|
|
|
const breadcrumbs: BreadcrumbItem[] = [
|
|
{
|
|
title: "Dashboard",
|
|
href: "/dashboard",
|
|
},
|
|
];
|
|
</script>
|
|
|
|
<template>
|
|
<Head title="Dashboard" />
|
|
|
|
<AppLayout :breadcrumbs="breadcrumbs">
|
|
<div class="flex h-full flex-1 flex-col items-center gap-4 rounded-xl p-4">
|
|
<Card class="w-80">
|
|
<CardHeader class="border-b-muted-background border-b">
|
|
<CardTitle>Your Organisation</CardTitle>
|
|
<CardDescription> Select an organisation to view its details. </CardDescription>
|
|
</CardHeader>
|
|
<CardContent class="divide-y-muted-foreground divide-y p-0">
|
|
<Link
|
|
v-for="organisation in organisations"
|
|
:href="route('organisations.show', { organisation: organisation.id })"
|
|
class="flex items-center justify-between px-6 py-3 hover:bg-muted"
|
|
>
|
|
<div>{{ organisation.name }}</div>
|
|
<ChevronRightIcon class="size-4 text-muted-foreground" />
|
|
</Link>
|
|
</CardContent>
|
|
</Card>
|
|
</div>
|
|
</AppLayout>
|
|
</template>
|