Refactor Form Submission and Field Management Logic

- Simplified the constructor in StoreFormSubmissionJob for improved readability.
- Enhanced the storeFile method to handle null and empty values more robustly, ensuring better validation of file names.
- Updated StorageFileNameParser to return null for empty file names, improving error handling.
- Refactored OpenForm.vue to optimize form initialization and prevent unnecessary reinitializations, enhancing performance.
- Introduced new methods for managing field groups and preventing recursive updates in OpenForm.vue, improving the overall user experience.
- Enhanced FormEditorSidebar.vue to utilize Pinia store for better state management and clarity.
- Improved FormFieldEdit.vue to prevent page jumps during field editing, ensuring a smoother user experience.
- Added new getters in working_form.js for better page management and navigation within forms.

These changes aim to enhance the maintainability and performance of the form handling logic, providing a more efficient and user-friendly experience.
This commit is contained in:
Julien Nahum
2025-03-25 18:35:16 +01:00
parent 61e9493e1e
commit d63ecd43cc
10 changed files with 348 additions and 75 deletions

View File

@@ -46,19 +46,28 @@
<ul class="mt-4 space-y-2 text-sm">
<li>
Do you want to know why users choose OpnForm?
<NuxtLink class="text-blue-500 hover:text-blue-600" :to="{ name: 'ai-form-builder' }">
<NuxtLink
class="text-blue-500 hover:text-blue-600"
:to="{ name: 'ai-form-builder' }"
>
Learn more here!
</NuxtLink>
</li>
<li>
Browse Templates
<NuxtLink class="text-blue-500 hover:text-blue-600" :to="{ name: 'templates' }">
<NuxtLink
class="text-blue-500 hover:text-blue-600"
:to="{ name: 'templates' }"
>
Get inspired with ready-to-use form templates!
</NuxtLink>
</li>
<li>
Check Out Our Help Center
<NuxtLink class="text-blue-500 hover:text-blue-600" to="https://help.opnform.com/en/">
<NuxtLink
class="text-blue-500 hover:text-blue-600"
to="https://help.opnform.com/en/"
>
Find quick answers to common questions.
</NuxtLink>
</li>
@@ -69,7 +78,6 @@
<div class="mt-20 border-t">
<OpenFormFooter />
</div>
</section>
</main>
</template>

View File

@@ -108,12 +108,6 @@ import RegisterForm from "./RegisterForm.vue"
import { WindowMessageTypes } from "~/composables/useWindowMessage"
const appStore = useAppStore()
const props = defineProps({
redirectUrl: {
type: String,
default: '',
},
})
// Define emits for component interactions
const emit = defineEmits(['close', 'reopen'])