From b2a233f1f1b7d4db9f8e97a5f40f51cbcfd33f1c Mon Sep 17 00:00:00 2001 From: axolotle Date: Sun, 11 Aug 2024 18:44:27 +0200 Subject: [PATCH] refactor: update form fields definition in views --- app/src/types/form.ts | 8 +-- app/src/views/LoginView.vue | 10 +-- app/src/views/PostInstall.vue | 36 +++++------ app/src/views/_partials/DomainForm.vue | 88 ++++++++++++-------------- app/src/views/group/GroupCreate.vue | 2 +- app/src/views/tool/ToolFirewall.vue | 8 +-- app/src/views/user/UserCreate.vue | 49 +++++++------- app/src/views/user/UserEdit.vue | 64 +++++++++---------- app/src/views/user/UserImport.vue | 16 ++--- 9 files changed, 130 insertions(+), 151 deletions(-) diff --git a/app/src/types/form.ts b/app/src/types/form.ts index f28ad2d8..bf5f39f5 100644 --- a/app/src/types/form.ts +++ b/app/src/types/form.ts @@ -259,7 +259,7 @@ export type FormField< link?: | { text: string; name: RouteLocationRaw } | { text: string; href: string } - rules?: FormFieldRules | ComputedRef> + rules?: FormFieldRules prepend?: string readonly?: false } @@ -270,7 +270,7 @@ export type FormFieldReadonly< label: string cols?: Cols readonly: true - rules: undefined + rules?: undefined } export type FormFieldDisplay< @@ -281,7 +281,7 @@ export type FormFieldDisplay< visible?: boolean | ComputedRef hr?: boolean readonly?: true - rules: undefined + rules?: undefined } export type FormFieldProps< @@ -293,7 +293,7 @@ export type FormFieldProps< export type FormFieldReadonlyProps< C extends AnyWritableComponents, MV extends any, -> = Omit, 'hr' | 'visible' | 'readonly'> & { +> = Omit, 'hr' | 'visible' | 'readonly' | 'rules'> & { modelValue?: MV } diff --git a/app/src/views/LoginView.vue b/app/src/views/LoginView.vue index bd212679..28078841 100644 --- a/app/src/views/LoginView.vue +++ b/app/src/views/LoginView.vue @@ -1,5 +1,5 @@ @@ -214,7 +208,7 @@ const onDomainAdd = onSubmit(async () => { @@ -242,7 +236,7 @@ const onDomainAdd = onSubmit(async () => { :key="key" v-bind="fields[key]" v-model="form[key]" - :validation="v[key]" + :validation="v.form[key]" /> @@ -272,7 +266,7 @@ const onDomainAdd = onSubmit(async () => { diff --git a/app/src/views/group/GroupCreate.vue b/app/src/views/group/GroupCreate.vue index 86d9b8b2..60e0ea43 100644 --- a/app/src/views/group/GroupCreate.vue +++ b/app/src/views/group/GroupCreate.vue @@ -18,7 +18,7 @@ const fields = { label: t('group_name'), description: t('group_format_name_help'), rules: { required, alphalownumdot_ }, - props: { + cProps: { id: 'groupname', placeholder: t('placeholder.groupname'), }, diff --git a/app/src/views/tool/ToolFirewall.vue b/app/src/views/tool/ToolFirewall.vue index ddbdf69c..c435ff31 100644 --- a/app/src/views/tool/ToolFirewall.vue +++ b/app/src/views/tool/ToolFirewall.vue @@ -35,7 +35,7 @@ const fields = { component: 'SelectItem', label: t('action'), rules: { required }, - props: { + cProps: { id: 'input-action', choices: [ { value: 'allow', text: t('open') }, @@ -49,7 +49,7 @@ const fields = { component: 'InputItem', label: t('port'), rules: { number: required, integer, between: between(0, 65535) }, - props: { id: 'input-port', placeholder: '0', type: 'number' }, + cProps: { id: 'input-port', placeholder: '0', type: 'number' }, } satisfies FieldProps<'InputItem', Form['action']>, connection: { @@ -57,7 +57,7 @@ const fields = { component: 'SelectItem', label: t('connection'), rules: { required }, - props: { + cProps: { id: 'input-connection', choices: [ { value: 'ipv4', text: t('ipv4') }, @@ -71,7 +71,7 @@ const fields = { component: 'SelectItem', label: t('protocol'), rules: { required }, - props: { + cProps: { id: 'input-protocol', choices: [ { value: 'TCP', text: t('tcp') }, diff --git a/app/src/views/user/UserCreate.vue b/app/src/views/user/UserCreate.vue index 706323e7..74e76fab 100644 --- a/app/src/views/user/UserCreate.vue +++ b/app/src/views/user/UserCreate.vue @@ -1,5 +1,5 @@