diff --git a/app/src/composables/configPanels.ts b/app/src/composables/configPanels.ts index 5da8ba78..937b84bb 100644 --- a/app/src/composables/configPanels.ts +++ b/app/src/composables/configPanels.ts @@ -465,10 +465,7 @@ export function useConfigPanels>( } else { if (!(await v.value.form.$validate())) return } - const data = await formatFormData(form, { - removeEmpty: false, - removeNull: true, - }) + const data = await formatForm(form, { removeNullish: true }) onPanelApply({ panelId, data, action }, onErrorFn) } diff --git a/app/src/views/PostInstall.vue b/app/src/views/PostInstall.vue index 2d19ad65..203723af 100644 --- a/app/src/views/PostInstall.vue +++ b/app/src/views/PostInstall.vue @@ -14,7 +14,7 @@ import { required, sameAs, } from '@/helpers/validators' -import { formatFormData } from '@/helpers/yunohostArguments' +import { formatForm } from '@/helpers/yunohostArguments' import type { FieldProps, FormFieldDict } from '@/types/form' import LoginView from '@/views/LoginView.vue' import { DomainForm } from '@/views/_partials' @@ -100,15 +100,17 @@ const setUser = onSubmit(async () => { }) async function performPostInstall(force = false) { - // FIXME update formatFormData to unwrap ref auto const { username, fullname, password } = form.value - const data = await formatFormData({ - domain: domain.value, - dyndns_recovery_password: dyndns_recovery_password.value, - username, - fullname, - password, - }) + const data = await formatForm( + { + domain: domain.value, + dyndns_recovery_password: dyndns_recovery_password.value, + username, + fullname, + password, + }, + { removeEmpty: true }, + ) // FIXME does the api will throw an error for bad passwords ? api diff --git a/app/src/views/_partials/DomainForm.vue b/app/src/views/_partials/DomainForm.vue index e4abc042..e1a89c68 100644 --- a/app/src/views/_partials/DomainForm.vue +++ b/app/src/views/_partials/DomainForm.vue @@ -11,7 +11,7 @@ import { required, sameAs, } from '@/helpers/validators' -import { formatFormData } from '@/helpers/yunohostArguments' +import { formatForm } from '@/helpers/yunohostArguments' import { useStoreGetters } from '@/store/utils' import type { AdressModelValue, FieldProps, FormFieldDict } from '@/types/form' @@ -31,7 +31,7 @@ const props = withDefaults( }, ) const emit = defineEmits<{ - submit: [data: { domain: string; dyndns_recovery_password: string }] + submit: [data: Partial<{ domain: string; dyndns_recovery_password: string }>] }>() const { t } = useI18n() @@ -169,11 +169,14 @@ const onDomainAdd = onSubmit(async () => { const domainType = selected.value if (!domainType) return - const data = await formatFormData({ - domain: form.value[domainType], - dyndns_recovery_password: - domainType === 'dynDomain' ? form.value.dynDomainPassword : '', - }) + const data = await formatForm( + { + domain: form.value[domainType], + dyndns_recovery_password: + domainType === 'dynDomain' ? form.value.dynDomainPassword : '', + }, + { removeEmpty: true }, + ) emit('submit', data) }) diff --git a/app/src/views/app/AppInstall.vue b/app/src/views/app/AppInstall.vue index b327d7c6..8fba54b5 100644 --- a/app/src/views/app/AppInstall.vue +++ b/app/src/views/app/AppInstall.vue @@ -9,7 +9,7 @@ import { APIBadRequestError, type APIError } from '@/api/errors' import { useAutoModal } from '@/composables/useAutoModal' import { useInitialQueries } from '@/composables/useInitialQueries' import { - formatFormData, + formatForm, formatI18nField, formatYunoHostArguments, } from '@/helpers/yunohostArguments' @@ -174,11 +174,7 @@ async function performInstall() { if (!confirmed) return } - const { data: args, label } = await formatFormData(form, { - extract: ['label'], - removeEmpty: false, - removeNull: true, - }) + const { label, ...args } = await formatForm(form, { removeNullish: true }) const data = { app: props.id, label, diff --git a/app/src/views/user/UserCreate.vue b/app/src/views/user/UserCreate.vue index f3e2175f..3ff1dc68 100644 --- a/app/src/views/user/UserCreate.vue +++ b/app/src/views/user/UserCreate.vue @@ -15,7 +15,7 @@ import { sameAs, unique, } from '@/helpers/validators' -import { formatFormData } from '@/helpers/yunohostArguments' +import { formatForm } from '@/helpers/yunohostArguments' import { useStoreGetters } from '@/store/utils' import type { FieldProps, FormFieldDict } from '@/types/form' @@ -115,7 +115,7 @@ function onQueriesResponse() { } const onUserCreate = onSubmit(async (onError) => { - const data = await formatFormData(form.value, { flatten: true }) + const data = await formatForm(form) api .post({ uri: 'users' }, data, { key: 'users.create', diff --git a/app/src/views/user/UserEdit.vue b/app/src/views/user/UserEdit.vue index afa324cc..0669a2e3 100644 --- a/app/src/views/user/UserEdit.vue +++ b/app/src/views/user/UserEdit.vue @@ -18,11 +18,7 @@ import { required, sameAs, } from '@/helpers/validators' -import { - formatAdress, - formatFormData, - sizeToM, -} from '@/helpers/yunohostArguments' +import { formatAdress, formatForm, sizeToM } from '@/helpers/yunohostArguments' import { useStoreGetters } from '@/store/utils' import type { AdressModelValue, FieldProps, FormFieldDict } from '@/types/form' @@ -172,9 +168,8 @@ function onQueriesResponse(user_: any) { } const onUserEdit = onSubmit(async (onError, serverErrors) => { - const { data: formData } = await formatFormData(form.value, { - flatten: true, - extract: ['username'], + const { username: _, ...formData } = await formatForm(form, { + removeEmpty: true, }) // FIXME not sure computed can be executed? const user_ = user.value(props.name) diff --git a/app/src/views/user/UserImport.vue b/app/src/views/user/UserImport.vue index 43889990..f2b19ffe 100644 --- a/app/src/views/user/UserImport.vue +++ b/app/src/views/user/UserImport.vue @@ -8,7 +8,7 @@ import api from '@/api' import { useForm } from '@/composables/form' import { useAutoModal } from '@/composables/useAutoModal' import { required } from '@/helpers/validators' -import { formatFormData } from '@/helpers/yunohostArguments' +import { formatForm } from '@/helpers/yunohostArguments' import type { FieldProps, FileModelValue, FormFieldDict } from '@/types/form' const { t } = useI18n() @@ -68,7 +68,7 @@ const onUserImport = onSubmit(async (onError) => { const requestArgs = { ...form.value } as Partial
if (!requestArgs.delete) delete requestArgs.delete if (!requestArgs.update) delete requestArgs.update - const data = await formatFormData(requestArgs) + const data = await formatForm(requestArgs) api .post('users/import', data, null, { asFormData: true }) .then(() => {