Go to file
Chirag Chhatrala ff1a4d17d8
Partial submissions (#705)
* Implement partial form submissions feature

* Add status filtering for form submissions

* Add Partial Submission in Analytics

* improve partial submission

* fix lint

* Add type checking for submission ID in form submission job

* on form stats Partial Submissions only if enable

* Partial Submissions is PRO Feature

* Partial Submissions is PRO Feature

* improvement migration

* Update form submission status labels to 'Submitted' and 'In Progress'

* start partial sync when dataFormValue update

* badge size xs

* Refactor partial submission hash management

* Refactor partial form submission handling in PublicFormController

* fix submissiona

* Refactor form submission ID handling and metadata processing

- Improve submission ID extraction and decoding across controllers
- Add robust handling for submission hash and ID conversion
- Enhance metadata processing in StoreFormSubmissionJob
- Simplify submission storage logic with clearer metadata extraction
- Minor UI improvements in FormSubmissions and OpenTable components

* Enhance form submission settings UI with advanced partial submission options

- Restructure partial submissions toggle with more descriptive label
- Add advanced submission options section with Pro tag
- Improve help text for partial submissions feature
- Update ProTag with more detailed upgrade modal description

* Refactor partial form submission sync mechanism

- Improve partial submission synchronization in usePartialSubmission composable
- Replace interval-based sync with Vue's reactive watch
- Add robust handling for different form data input patterns
- Implement onBeforeUnmount hook for final sync attempt
- Enhance data synchronization reliability and performance

* Improve partial form submission validation and synchronization

* fix lint

* Refactor submission identifier processing in PublicFormController

- Updated the docblock for the method responsible for processing submission identifiers to clarify its functionality. The method now explicitly states that it converts a submission hash or string ID into a numeric submission_id, ensuring consistent internal storage format.

These changes aim to improve code documentation and enhance understanding of the method's purpose and behavior.

* Enhance Form Logic Condition Checker to Exclude Partial Submissions

- Updated the query in FormLogicConditionChecker to exclude submissions with a status of 'partial', ensuring that only complete submissions are processed.
- Minor formatting adjustment in the docblock of PublicFormController for improved clarity.

These changes aim to refine submission handling and enhance the accuracy of form logic evaluations.

* Partial Submission Test

* Refactor FormSubmissionController and PartialSubmissionTest for Consistency

- Updated the `FormSubmissionController` to improve code consistency by adjusting the formatting of anonymous functions in the `filter` and `first` methods.
- Modified `PartialSubmissionTest` to simplify the `Storage::fake()` method call, removing the unnecessary 'local' parameter for better clarity.

These changes aim to enhance code readability and maintainability across the form submission handling and testing components.

* Enhance FormSubmissionController and EditSubmissionTest for Clarity

- Added validation to the `FormSubmissionController` by introducing `$submissionData = $request->validated();` to ensure that only validated data is processed for form submissions.
- Improved code readability in the `FormSubmissionController` by adjusting the formatting of anonymous functions in the `filter` and `first` methods.
- Removed unnecessary blank lines in the `EditSubmissionTest` to streamline the test setup.

These changes aim to enhance data integrity during form submissions and improve overall code clarity and maintainability.

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2025-04-28 17:33:55 +02:00
.cursor/rules Enhance Back-end and Front-end Documentation 2025-03-15 10:21:31 +08:00
.github Update GitHub Actions workflow to use latest GitHub Actions versions 2025-02-01 22:11:54 +01:00
api Partial submissions (#705) 2025-04-28 17:33:55 +02:00
client Partial submissions (#705) 2025-04-28 17:33:55 +02:00
docker Refactor form property logic rule to load condition mapping from external JSON file (#698) 2025-02-14 22:32:55 +00:00
docs Add Telegram Notification Integration (#732) 2025-04-08 12:42:47 +02:00
integrations/zapier Updated zapier integration version 2024-08-23 09:42:44 +02:00
scripts Simplify Docker development setup with minimal configuration 2025-01-29 18:44:42 +01:00
.dockerignore Refactor Docker configuration and development setup 2025-01-29 17:19:36 +01:00
.editorconfig Initial commit 2022-09-20 21:59:52 +02:00
.gitattributes Initial commit 2022-09-20 21:59:52 +02:00
.gitignore Developer docker setup (#683) 2025-01-28 17:52:48 +01:00
LICENSE Changing license to AGPL 2022-09-20 22:03:59 +02:00
README.md Simplify Docker development setup with minimal configuration 2025-01-29 18:44:42 +01:00
amplify.yml Attempt to simplify build 2024-01-08 22:30:58 +01:00
docker-compose.dev.yml Simplify Docker development setup with minimal configuration 2025-01-29 18:44:42 +01:00
docker-compose.yml Remove bootstrap cache volume from docker-compose.yml 2025-01-29 21:45:50 +01:00
generate_tax_exports_2024.sh Update Docker Documentation to Address Line Ending Issues for Windows Users 2025-03-21 16:30:59 +01:00

README.md

OpnForm

Github Stars Commits per month License Report a bug Ask a question Ask a question Ask a question Open Bounties Rewarded Bounties

OpnForm is an open-source form builder.

Get Started

The easiest way to get started with OpnForm is to sign up for our managed service in the Cloud. You get support, backups, upgrades, and more. Your data is safe and secure, and you don't need to worry about maintenance or infrastructure. Check out our quick overview of cloud vs self-hosting.

Key Features

  • 🚀 No-code builder with unlimited forms & submissions
  • 📝 Various input types: Text, Date, URL, File uploads & much more
  • 🌐 Embed anywhere
  • 📧 Email notifications
  • 💬 Integrations (Slack, Webhooks, Discord)
  • 🧠 Form logic & customization
  • 🛡️ Captcha protection
  • 📊 Form analytics

For a complete list of features and detailed documentation, visit our Technical Documentation.

Quick Start

The easiest way to get started with OpnForm is through our official managed service in the Cloud.

For self-hosted installations, please refer to our Deployment Guides. For local development, we provide a minimal Docker-based setup - check out our Docker Development Guide.

Support & Community

If you need help or have questions, please join our Discord community. For more information and assistance, check out the following resources:

License

OpnForm is open-source under the GNU Affero General Public License Version 3 (AGPLv3) or any later version. You can find it here.