2026-03-11 23:33:10 +00:00
|
|
|
<script setup lang="ts">
|
|
|
|
|
import { Head, useForm } from '@inertiajs/vue3';
|
2026-03-18 00:12:50 +00:00
|
|
|
import Heading from '@/components/Heading.vue';
|
2026-03-11 23:33:10 +00:00
|
|
|
import WorkspaceForm from '@/components/WorkspaceForm.vue';
|
|
|
|
|
import type { WorkspaceFormData } from '@/components/WorkspaceForm.vue';
|
|
|
|
|
import AppLayout from '@/layouts/AppLayout.vue';
|
|
|
|
|
|
|
|
|
|
type Props = {
|
|
|
|
|
indexUrl: string;
|
|
|
|
|
storeUrl: string;
|
|
|
|
|
users: Array<{ id: number; name: string; email: string }>;
|
|
|
|
|
workspaceUserRoles: Record<string, string>;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const props = defineProps<Props>();
|
|
|
|
|
|
|
|
|
|
const form = useForm<WorkspaceFormData>({
|
|
|
|
|
name: '',
|
|
|
|
|
slug: '',
|
|
|
|
|
user_ids: [],
|
|
|
|
|
user_roles: {},
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
function submit() {
|
|
|
|
|
form.post(props.storeUrl);
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<template>
|
|
|
|
|
<AppLayout
|
|
|
|
|
:breadcrumbs="[
|
|
|
|
|
{ title: 'Workspaces', href: props.indexUrl },
|
|
|
|
|
{ title: 'Create workspace' },
|
|
|
|
|
]"
|
|
|
|
|
>
|
|
|
|
|
<Head title="Create workspace" />
|
|
|
|
|
|
|
|
|
|
<div class="flex flex-col space-y-6 p-4">
|
|
|
|
|
<Heading
|
|
|
|
|
title="Create workspace"
|
|
|
|
|
description="Add a new accounting firm workspace (cabinet comptable)"
|
|
|
|
|
/>
|
|
|
|
|
<WorkspaceForm
|
|
|
|
|
:form="form"
|
|
|
|
|
:users="props.users ?? []"
|
|
|
|
|
:workspace-user-roles="props.workspaceUserRoles ?? {}"
|
|
|
|
|
submit-label="Create workspace"
|
|
|
|
|
@submit="submit"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
</AppLayout>
|
|
|
|
|
</template>
|