Commit Graph

173 Commits

Author SHA1 Message Date
Julien Nahum d1902112dd Add null check for block type in FormFieldEdit component
- Prevent potential errors when displaying field type information
- Add conditional rendering to handle cases where block type might be undefined
2025-02-19 19:10:13 +01:00
Julien Nahum 28248259be Improve form property logic validation for checkbox conditions
- Update FormPropertyLogicRule to handle operators without values
- Add support for checkbox conditions like 'is_checked' and 'is_not_checked'
- Refactor logic validation in both API and client-side implementations
- Remove unnecessary console.log statements
- Update error modal text for better user experience
2025-02-19 15:11:27 +01:00
Julien Nahum efd31133cc Enhance default field values and block type configuration
- Refactor field options to use default values from blocks_types.json
- Add default values for various form input types in blocks_types.json
- Improve default field initialization logic in FieldOptions and working_form store
- Add camera switching functionality for mobile devices in CameraUpload component
2025-02-19 12:25:26 +01:00
Julien Nahum 55b0f57741 Enhance form column settings and table display
- Add "Show all" and "Hide all" buttons in column settings modal
- Improve column width handling and default width management
- Update OpenSelect and OpenText components to support more flexible prop types
- Add z-index to table header for better visual hierarchy
- Refactor column width property from `cell_width` to `width`
2025-02-17 15:51:14 +01:00
Chirag Chhatrala 29ef44d50e
Enhance form submissions column management (#691)
* Enhance form submissions column management

* Modernize UI components with Nuxt UI and improved styling

- Refactor RecordOperations component to use UButtonGroup and UButton
- Update FormSubmissions component with Nuxt UI buttons and modal
- Improve table cell styling in OpenTable component
- Simplify column management and export functionality

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2025-02-12 13:48:06 +01:00
Chirag Chhatrala 1f9a1f835f
Improve resources loading (#692)
* improve load forms

* improve load submissions

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2025-02-11 17:14:44 +01:00
Julien Nahum 853760484c Enhance form logic property resolver and validation UI
- Refactor `shouldBeRequired()` method in FormLogicPropertyResolver for clearer logic and better handling of conditional requirements
- Add comprehensive test cases for dynamic field requirement logic
- Update CustomFieldValidation component with improved UI and guidance for validation setup
- Improve error message and validation rule description in form validation interface
2025-02-11 15:09:21 +01:00
Julien Nahum f5b9b86c16 Refactor checkbox condition logic with new operators
- Replace legacy 'equals' and 'does_not_equal' checkbox operators with 'is_checked' and 'is_not_checked'
- Update FormLogicConditionChecker in PHP and JavaScript to handle new operators
- Modify open_filters.json to reflect new checkbox comparator structure
- Add migration logic in ColumnCondition.vue to support legacy operator conversion
- Improve checkbox condition handling with explicit true/false checks
2025-02-10 22:03:19 +01:00
Julien Nahum 735f398605 Fix forms 2025-01-28 09:23:11 +01:00
Julien Nahum 4a2adcf8f7 Add client linting to GitHub Actions workflow
Enhance CI/CD pipeline by introducing a new job to run ESLint on the client application. This ensures code quality and consistency for the frontend codebase.
2025-01-27 18:24:27 +01:00
Chirag Chhatrala 06c35121a0
Set char limit on rich text (#662)
* Set char limit on rich text

* richtext placeholder
2025-01-14 11:27:37 +01:00
Chirag Chhatrala 72d139e2af
Fix Submissions Export (#663) 2025-01-09 10:11:55 +01:00
Chirag Chhatrala cc62f614e4
Enhance Form Submission Export Functionality (#657)
* Enhance Form Submission Export Functionality

* Validate new param 'columns'

* Form submission export request as seprate class with validation

* Test case for export

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2025-01-07 15:04:02 +01:00
Chirag Chhatrala 5bc0d3ccc8
fix mobile editor email (#660) 2025-01-06 12:52:03 +01:00
Chirag Chhatrala 75f82b3bc7
Refactor form components (#659)
* Add Barcode Input Component and Integrate Quagga for Scanning

- Introduced a new BarcodeInput component for scanning barcodes using the Quagga library.
- Updated package.json and package-lock.json to include Quagga as a dependency.
- Enhanced form themes to accommodate the new BarcodeInput component.
- Added localization support for barcode scanning actions in English.
- Updated blocks_types.json to register the new barcode input type.

These changes improve the application's functionality by allowing users to scan barcodes directly within forms, enhancing user experience and data input efficiency.

* Update Barcode scanner UI

* Barcode decoder as user selection

* improve barcode

* Refactor form components and update Tailwind configuration

- Removed unused box shadow styles from tailwind.config.js.
- Enhanced DateInput, FileInput, MatrixInput, RichTextAreaInput, and VSelect components with improved styling and error handling.
- Updated theme settings in form-themes.js to include new styles for MatrixInput and other form elements.
- Adjusted labels in FieldOptions.vue for clarity.
- Improved overall UI consistency and responsiveness across form components.

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2025-01-03 16:15:47 +01:00
Chirag Chhatrala 80b7c1e773
Form editor logic copy to x (#656)
* Form editor logic copy to x

* Refactor form components to use UButton and UButtonGroup for improved consistency and styling
2025-01-03 16:09:53 +01:00
Chirag Chhatrala 1285dc18d3
Support for Barcode reader (#650)
* Add Barcode Input Component and Integrate Quagga for Scanning

- Introduced a new BarcodeInput component for scanning barcodes using the Quagga library.
- Updated package.json and package-lock.json to include Quagga as a dependency.
- Enhanced form themes to accommodate the new BarcodeInput component.
- Added localization support for barcode scanning actions in English.
- Updated blocks_types.json to register the new barcode input type.

These changes improve the application's functionality by allowing users to scan barcodes directly within forms, enhancing user experience and data input efficiency.

* Update Barcode scanner UI

* Barcode decoder as user selection

* improve barcode
2025-01-03 16:07:58 +01:00
Chirag Chhatrala d7ce8536c8
Add reCAPTCHA support and update captcha provider handling (#647)
* Add reCAPTCHA support and update captcha provider handling

- Introduced reCAPTCHA as an additional captcha provider alongside hCaptcha.
- Updated form request validation to handle different captcha providers based on user selection.
- Added a new validation rule for reCAPTCHA.
- Modified the forms model to include a 'captcha_provider' field.
- Created a migration to add the 'captcha_provider' column to the forms table.
- Updated frontend components to support dynamic rendering of captcha based on the selected provider.
- Enhanced tests to cover scenarios for both hCaptcha and reCAPTCHA.

These changes improve the flexibility of captcha options available to users, enhancing form security and user experience.

* fix pint

* change comment text

* Refactor captcha implementation and integrate new captcha components

- Removed the old RecaptchaV2 component and replaced it with a new implementation that supports both reCAPTCHA and hCaptcha through a unified CaptchaInput component.
- Updated the OpenForm component to utilize the new CaptchaInput for dynamic captcha rendering based on user-selected provider.
- Cleaned up the package.json by removing the deprecated @hcaptcha/vue3-hcaptcha dependency.
- Enhanced form initialization to set a default captcha provider.
- Improved error handling and cleanup for both reCAPTCHA and hCaptcha scripts.

These changes streamline captcha integration, improve maintainability, and enhance user experience by providing a more flexible captcha solution.

* Refactor captcha error messages and localization support

* Refactor registration process to integrate reCAPTCHA

- Replaced hCaptcha implementation with reCAPTCHA in RegisterController and related test cases.
- Updated validation rules to utilize g-recaptcha-response instead of h-captcha-response.
- Modified RegisterForm component to support reCAPTCHA, including changes to the form data structure and component references.
- Enhanced test cases to reflect the new reCAPTCHA integration, ensuring proper validation and response handling.

These changes improve security and user experience during the registration process by adopting a more widely used captcha solution.

* Fix reCAPTCHA configuration and update RegisterForm styling

- Corrected the configuration key for reCAPTCHA in RegisterController from 'services.recaptcha.secret_key' to 'services.re_captcha.secret_key'.
- Updated the styling of the Captcha input section in RegisterForm.vue to improve layout consistency.

These changes ensure proper reCAPTCHA functionality and enhance the user interface during the registration process.

* Fix reCAPTCHA configuration in RegisterTest to use the correct key format

- Updated the configuration key for reCAPTCHA in RegisterTest from 'services.recaptcha.secret_key' to 'services.re_captcha.secret_key' to ensure proper functionality during tests.

This change aligns the test setup with the recent updates in the reCAPTCHA integration, improving the accuracy of the registration process tests.

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2024-12-18 16:35:09 +01:00
Chirag Chhatrala 49c2d6bf04
ESC-409 image-block-does-not-align (#651) 2024-12-17 17:10:31 +01:00
Chirag Chhatrala 20405ee606
Send mobile editor email (#634)
Co-authored-by: Julien Nahum <julien@nahum.net>
2024-12-12 11:19:09 +01:00
Julien Nahum 705c84dae4 Enhance language support and fix validation messages
- Added support for additional languages (Bengali, Portuguese, Russian, Urdu, Punjabi, German, Javanese, Korean, Vietnamese, Telugu, Marathi, Tamil, Turkish) in the application.
- Updated validation messages across multiple languages to correct formatting issues and improve clarity, including Arabic, English, Spanish, French, Hindi, Japanese, Norwegian, and Chinese.
- Removed obsolete Norwegian language files to streamline localization efforts.
- Improved the language selection interface in the form customization component.

These changes aim to enhance user experience by providing better language support and clearer validation feedback.
2024-12-09 12:47:01 +01:00
Chirag Chhatrala daca69267b
Form Translation (#616)
* Form Translation

* Support for other languages

* Support locale for datepicker

* Apply translation on select input

* Apply translation on select input

* Improve translation

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2024-12-04 18:32:14 +01:00
Chirag Chhatrala c927a235f8
fix subscription success page (#636)
* fix subscription success page

* Fix typo
2024-12-02 10:55:09 +01:00
Chirag Chhatrala 13c40f6e54
Support for Rich Text Input (#630)
* Support for Rich Text Input

* rich text support for prefilled

* apply Purify for rich_text

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2024-11-28 16:12:24 +01:00
Chirag Chhatrala 3d09f32078
fix error display modal (#632) 2024-11-26 12:13:39 +01:00
Chirag Chhatrala 5cd9885185
improve RTL mode (#625)
Co-authored-by: Julien Nahum <julien@nahum.net>
2024-11-21 16:14:27 +01:00
Julien Nahum 3dd36c8560 Bump versions and fix editor sidebar buttons 2024-11-20 17:21:57 +01:00
Chirag Chhatrala ab83aa166c
Matrix Improvements (#606)
* Support disable on matrix

* fix checkbox and radio icon

* Use Nuxt UI toggle

* Can set max_char_limit null

* fix action icon design

* Support for URL prefill for Matrix

* Apply theme color on toggle

* Set --form-color as style variable and use it

* Set default value for form-color

* fix formatting

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2024-11-20 17:06:11 +01:00
Chirag Chhatrala 62e980abae
Right to left mode (#611)
* Right to left mode

* Fix label

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2024-11-20 15:29:08 +01:00
Chirag Chhatrala 2c8f7d5d54
on fetch submission data display error if there (#608)
Co-authored-by: Julien Nahum <julien@nahum.net>
2024-11-13 09:48:28 +01:00
Chirag Chhatrala 8a1282f4b0
Form Editor v2.5 (#599)
* Form Editor v2.5

* Remove log debug

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2024-10-23 10:34:51 +02:00
Chirag Chhatrala dad5c825b1
Apply Mentions everywhere (#595)
* variables and mentions

* fix lint

* add missing changes

* fix tests

* update quilly, fix bugs

* fix lint

* apply fixes

* apply fixes

* Fix MentionParser

* Apply Mentions everywhere

* Fix MentionParserTest

* Small refactoring

* Fixing quill import issues

* Polished email integration, added customer sender mail

* Add missing changes

* improve migration command

---------

Co-authored-by: Frank <csskfaves@gmail.com>
Co-authored-by: Julien Nahum <julien@nahum.net>
2024-10-22 10:34:29 +02:00
Favour Olayinka ef404e1d1e
apply first submission modal changes (#584)
* apply first submission modal changes

* Apply changes

* fix submiussions url

* fix lint

* Fix nuxt versions issues

* Add fixed version of nitropack

* Attempt to fix build

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2024-10-21 17:41:20 +02:00
Favour Olayinka 2ab5e09750
fix closed form (#583) 2024-10-10 09:52:10 +02:00
Favour Olayinka dea8fe5741
106a6 integration performance issues (#581)
* apply performance fixes

* fix integration

* Update client/components/open/forms/components/FirstSubmissionModal.vue

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix unique cache for forms

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2024-10-01 12:42:03 +02:00
Julien Nahum 5dcd4ff8cb
7953e better form editor (#580)
* Form editor v2

* fix template test

* setFormDefaults when save

* fix form cleaning dark mode

* improvements on open sidebar

* UI polish

* Fix change type button

* Ability to drag & add multiple form blocks

---------

Co-authored-by: Chirag Chhatrala <chirag.chhatrala@gmail.com>
2024-09-23 20:15:41 +02:00
Chirag Chhatrala d6181cd249
Form editor v2 (#579)
* Form editor v2

* fix template test

* setFormDefaults when save

* fix form cleaning dark mode

* improvements on open sidebar

* UI polish

* Fix change type button

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2024-09-23 20:02:38 +02:00
Favour Olayinka 47ae11bc58
104a6 simpler submit transition (#576)
* better submit transition

* transition

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2024-09-20 12:07:04 +02:00
Favour Olayinka 33ad2d41b8
form color reset (#577)
* form color reset

* fix link color

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2024-09-20 12:02:06 +02:00
Julien Nahum 5020f9fa74 refactor(FormTimer.vue): change timer variable from let to ref for reactivity
refactor(OpenCompleteForm.vue): remove FormTimer component and related logic to simplify form submission
feat(OpenForm.vue): reintroduce FormTimer component and manage timer start/stop on form events for better user experience
2024-09-19 10:11:34 +02:00
Chirag Chhatrala ceb0648262
Better Form Stats (#567)
* Better Form Stats

* fix lint

* submission timer store in localstorage

* Update test case for stats

* remove extra code

* fix form stats

* on restart remove timer

* fix resetTimer function name

* Improve form timer

* Fix timer after form validation error + polish UI

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2024-09-18 19:20:52 +02:00
Chirag Chhatrala d55379e346
Add rule button click - show alert (#554) 2024-09-03 13:28:59 +02:00
Chirag Chhatrala 6d4b5b8ff4
fix select input options (#550) 2024-08-30 14:39:03 +02:00
Chirag Chhatrala 89513e3b4a
Form analytics now paid feature (#547)
Co-authored-by: Julien Nahum <julien@nahum.net>
2024-08-29 11:14:49 +02:00
Julien Nahum 79d3dd7888
Feature flags (#543)
* Re-organize a bit controllers

* Added the featureflagcontroller

* Implement feature flags in the front-end

* Clean env files

* Clean console.log messages

* Fix feature flag test
2024-08-27 16:49:43 +02:00
Favour Olayinka 1adac8e00f
Dc3e4 new matrix field (#484)
* fix password reset bug

* wip: matrix input

* wip: matrix input

* wip: matrix input

* Fixed matric input component logic

* matrix input cleanup

* fix lint errors

* table border and radius

* cleanup, linting

* fix component methos

* wip matrix input

* matrix condition for contains and not contain

* patch matrix input condition logic

* linting

* refactor and cleanup

* fix syntax error

* Polished the matrix input

* Fix linting

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2024-08-23 15:28:21 +02:00
Chirag Chhatrala fedc382594
Pricing Upgrade Flow changes (#514)
* Pricing Upgrade Flow changes

* remove extra code

* Refactor subscription plan selection and billing management

* Polish the new pricing modal

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2024-08-23 12:23:01 +02:00
Chirag Chhatrala a73badb091
Autofocus first field as settings option (#536)
Co-authored-by: Julien Nahum <julien@nahum.net>
2024-08-23 11:32:09 +02:00
Chirag Chhatrala 1ac71ecf8b
Google Fonts (#525)
* Google Fonts

* Google fonts improvement

* font button color

* Refine font selection UI and update font fetching logic

- Update FontsController to fetch Google fonts sorted by popularity.
- Enhance FontCard component with additional skeleton loaders for better UX during font loading.
- Adjust check icon positioning in FontCard to be absolute for consistent UI.
- Remove unnecessary class in GoogleFontPicker's text input.
- Add border and rounded styling to the font list container in GoogleFontPicker.
- Simplify computed property for enrichedFonts in GoogleFontPicker.
- Implement inline font style preview in FormCustomization component.

---------

Co-authored-by: Frank <csskfaves@gmail.com>
Co-authored-by: Julien Nahum <julien@nahum.net>
2024-08-16 16:25:13 +02:00
Boris Lepikhin 517bccc695
Zapier integration (#491)
* create zapier app

* install sanctum

* move OAuthProviderController

* make `api-external` middleware

* add zapier endpoints

* add tests

* token management

* zapier event handler

* add policy

* use `slug` instead of `id`

* wip

* check policies

* change api prefix to `external`

* ui tweaks

* validate token abilities

* open zapier URL

* zapier ui tweaks

* update zap

* Fix linting

* Added sample endpoints + minor UI changes

* Run PHP code linter

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2024-08-12 11:14:02 +02:00