diff --git a/frontend/components/project/ProjectDrawer.vue b/frontend/components/project/ProjectDrawer.vue index db3d837..7410d7f 100644 --- a/frontend/components/project/ProjectDrawer.vue +++ b/frontend/components/project/ProjectDrawer.vue @@ -2,13 +2,13 @@
form.code, + set: (value: string) => { + form.code = (value ?? '').toUpperCase().replace(/[^A-Z]/g, '').slice(0, 10) + }, +}) + const clientOptions = computed(() => props.clients.map(c => ({ label: c.name, value: c.id })) ) @@ -222,7 +233,7 @@ async function handleSubmit() { touched.name = true touched.code = true if (!form.name.trim()) return - if (!isEditing.value && (!form.code.trim() || !/^[A-Z]{2,10}$/.test(form.code.trim()))) return + if (!isEditing.value && !/^[A-Z]{2,10}$/.test(form.code)) return isSubmitting.value = true try { @@ -254,7 +265,7 @@ async function handleSubmit() { if (isEditing.value && props.project) { await update(props.project.id, payload) } else { - payload.code = form.code.trim() + payload.code = form.code await create(payload) } diff --git a/frontend/components/ui/ColorPicker.vue b/frontend/components/ui/ColorPicker.vue index b6c86fe..f8e30c8 100644 --- a/frontend/components/ui/ColorPicker.vue +++ b/frontend/components/ui/ColorPicker.vue @@ -1,22 +1,45 @@