-
-
-
-
+
+
+
diff --git a/apps/frontend/src/components/CustomFields/CustomField.vue b/apps/frontend/src/components/CustomFields/CustomField.vue
index e05189d3..d87d2b67 100644
--- a/apps/frontend/src/components/CustomFields/CustomField.vue
+++ b/apps/frontend/src/components/CustomFields/CustomField.vue
@@ -69,6 +69,7 @@ const model = computed({
v-model="model"
:label="field.name"
:required="field.required"
+ :min="0"
/>
>(() => [
// },
// { type: 'DividerItem', name: 'Ausschreibung', visible: hasPermissionToView(['ADMIN', 'GLIEDERUNG_ADMIN']) },
- { type: 'DividerItem', name: 'Meine Daten', visible: true },
+ { type: 'DividerItem', name: 'Meine Daten', visible: hasPermissionToView(['USER']) },
{
type: 'SidebarItem',
name: 'Personen',
route: { name: 'Meine Personen' },
icon: UsersIcon,
- visible: true,
+ visible: hasPermissionToView(['USER']),
},
{
type: 'SidebarItem',
name: 'Anmeldungen',
route: { name: 'Meine Anmeldungen' },
icon: UsersIcon,
- visible: true,
+ visible: hasPermissionToView(['USER']),
},
{ type: 'DividerItem', name: 'Gliederung', visible: hasPermissionToView(['GLIEDERUNG_ADMIN']) },
diff --git a/apps/frontend/src/components/forms/person/FormPersonGeneral.vue b/apps/frontend/src/components/forms/person/FormPersonGeneral.vue
index 18285105..39b4204a 100644
--- a/apps/frontend/src/components/forms/person/FormPersonGeneral.vue
+++ b/apps/frontend/src/components/forms/person/FormPersonGeneral.vue
@@ -249,7 +249,7 @@ const submit = () => {
diff --git a/apps/frontend/src/components/forms/unterveranstaltung/FormUnterveranstaltungGeneral.vue b/apps/frontend/src/components/forms/unterveranstaltung/FormUnterveranstaltungGeneral.vue
index 01185bfa..798551c1 100644
--- a/apps/frontend/src/components/forms/unterveranstaltung/FormUnterveranstaltungGeneral.vue
+++ b/apps/frontend/src/components/forms/unterveranstaltung/FormUnterveranstaltungGeneral.vue
@@ -257,6 +257,11 @@ const disableddates = computed(() => {
required
label="Teilnahmegebühr"
placeholder="Teilnahmegebühr"
+ :min="0"
+ :min-fraction-digits="2"
+ :max-fraction-digits="2"
+ currency="EUR"
+ suffix="€"
/>
@@ -265,6 +270,7 @@ const disableddates = computed(() => {
required
label="Maximale Teilnehmenden Zahl"
placeholder="Maximale Teilnehmenden Zahl"
+ :min="0"
/>
diff --git a/apps/frontend/src/components/forms/veranstaltung/FormVeranstaltungGeneral.vue b/apps/frontend/src/components/forms/veranstaltung/FormVeranstaltungGeneral.vue
index 82840dd0..840d339c 100644
--- a/apps/frontend/src/components/forms/veranstaltung/FormVeranstaltungGeneral.vue
+++ b/apps/frontend/src/components/forms/veranstaltung/FormVeranstaltungGeneral.vue
@@ -154,6 +154,7 @@ const { state: hostnames } = useAsyncState(async () => {
required
label="Maximale Teilnehmenden Zahl"
placeholder="Maximale Teilnehmenden Zahl"
+ :min="0"
/>
@@ -163,6 +164,11 @@ const { state: hostnames } = useAsyncState(async () => {
required
label="Teilnahmegebühr"
placeholder="Teilnahmegebühr"
+ :min="0"
+ :min-fraction-digits="2"
+ :max-fraction-digits="2"
+ currency="EUR"
+ suffix="€"
/>
diff --git a/apps/frontend/src/helpers/handleUpload.ts b/apps/frontend/src/helpers/handleUpload.ts
index a51a1125..b8f20125 100644
--- a/apps/frontend/src/helpers/handleUpload.ts
+++ b/apps/frontend/src/helpers/handleUpload.ts
@@ -1,6 +1,7 @@
import { BlockBlobClient } from '@azure/storage-blob'
import { apiClient } from '@/api'
+import type { RouterInput, RouterOutput } from '@codeanker/api'
type uploadedFile = {
id: string
@@ -8,6 +9,8 @@ type uploadedFile = {
}
type uploadedFiles = uploadedFile[]
+type dbFile = RouterOutput['file']['fileCreate']
+
export function handleUpload(file: File): Promise<{ id: string; mimetype: string }>
export function handleUpload(file: File[]): Promise<{ id: string; mimetype: string }[]>
@@ -19,18 +22,26 @@ export async function handleUpload(file: File | File[]): Promise