Commit Graph

46 Commits

Author SHA1 Message Date
JhumanJ f2f5213d46 Update Nuxt Configuration and Package Dependencies
- Modified the `nuxt.config.ts` file to correct the `cssPath` for Tailwind CSS from an array to a string format, ensuring proper configuration.
- Updated `package-lock.json` and `package.json` to reflect the following dependency upgrades:
  - Upgraded `@pinia/nuxt` from `0.5.5` to `0.11.0`.
  - Upgraded `@vueuse/core` from `11.2.0` to `13.1.0`.
  - Upgraded `pinia` from `2.2.4` to `3.0.2`.
  - Upgraded `@nuxt/eslint-config` from `0.2.0` to `1.3.0`.
  - Upgraded `@nuxt/icon` from `1.8.2` to `1.12.0`.
  - Upgraded `@nuxtjs/sitemap` from `6.1.3` to `7.2.0`.
  - Upgraded `eslint` from `8.57.1` to `9.0.0`.
  - Upgraded `nuxt` from `3.16.1` to `3.17.1`.

These changes enhance the configuration and ensure compatibility with the latest versions of dependencies, improving overall application stability and performance.
2025-04-29 14:54:20 +02:00
Julien Nahum 5cb07191db
Stripe Payment (#679)
* oAuth for Stripe

* Stripe Payment Frontend - WIP

* Payment block backend validation and new package for stripe

* change stripe scopes

* update PaymentBlockConfigurationRule

* Set loader on provider modal

* stripe oauth

* PaymentFieldOptions as seprate component

* validate Stripe account

* Payment intent

* Stripe Payment as composable

* confirmCardPayment working

* Set payment errors on form.errors

* Validate card other fields

* Store payment id to database and on submission add link for view payment on stripe

* FormPaymentController no need auth middleware

* paymentinput error display on field

* Make payment block as input
change 'nf-payment' to 'payment'

* Refactor payment processing and error handling

* Multi lang & direction support on payment

* reset card on change direction or local

* use connected account for loadstripe

* validate OAuthProvider before delete it

* payment improvements

* display payment by stripe

* use stripe_currencies.json

* Form Payment testcase

* Enhance form auto-save behavior for payment forms

* Restrict payment block in self-hosted environments

* validate form before process payment

* Refactor Nuxt Configuration for Improved Development Server Settings

- Removed the existing Vite server configuration for hot module replacement (HMR) as it was no longer necessary.
- Introduced a new `devServer` configuration to specify the host and port for the development server, allowing for more flexible environment setup based on environment variables.

These changes aim to streamline the development process by enhancing server configuration and ensuring better adaptability to different environments.

* Enhance Payment Handling and User Experience in Forms

- Refactored `FormPaymentController` to improve handling of Stripe account retrieval, including better error messages for both editor preview and public forms.
- Updated `OAuthProviderController` to utilize caching for OAuth connection context, enhancing performance and user experience during account connections.
- Improved `PaymentInput.client.vue` to display a loading state and a preview message for users, guiding them to save the form for payment activation.
- Modified various components to standardize payment-related messages and improve localization support across multiple languages.
- Removed the deprecated `connections.vue` page to streamline the codebase.

These changes aim to enhance the overall user experience when handling payments and improve the maintainability of the payment-related components.

* Refactor Payment Handling and Enhance User Experience in Forms

- Updated `FormPaymentController` to utilize a new method for checking if the Stripe provider belongs to any workspace user, improving security and error logging.
- Modified `OAuthProviderController` to streamline the OAuth provider creation process by directly using the service object.
- Enhanced `Workspace` model with a new method to verify provider ownership, improving code clarity and maintainability.
- Improved `PaymentInput.client.vue` to handle loading states and error messages more effectively, enhancing user feedback during payment processing.
- Refactored `useFormInput.js` to include an `isAdminPreview` prop for better context handling in form components.

These changes aim to improve the overall user experience when handling payments and enhance the maintainability of the payment-related components.

* Enhance Payment Validation and User Experience in Forms

- Updated `UserFormRequest` to improve workspace handling during form submissions, allowing for better context in validation rules.
- Modified `PaymentBlockConfigurationRule` to include workspace validation, ensuring that payment providers are associated with the correct workspace, enhancing security and error logging.
- Improved `PaymentInput.client.vue` to dynamically determine the success state of payment processing, providing clearer user feedback.
- Updated various localization files to include a payment disclaimer, ensuring users are informed about credit card charges during payment processing.

These changes aim to enhance the overall user experience when handling payments and improve the maintainability of payment-related components.

* Enhance Payment Features and User Experience in Forms

- Added checks in `FormPaymentController` to disable payment features for self-hosted instances, improving clarity for users regarding feature availability.
- Updated `PaymentBlockConfigurationRule` to change the minimum amount validation from 0.5 to 1, ensuring stricter payment requirements.
- Enhanced `PaymentInput.client.vue` with dark mode support for various UI elements, improving accessibility and user experience in different themes.
- Modified `useFormInput.js` to include an `isDark` prop, allowing for better theme handling in form components.
- Updated error messages in `useStripeElements.js` to include periods for consistency and improved user feedback.

These changes aim to enhance the overall user experience when handling payments and improve the maintainability of payment-related components.

* Enhance Payment Input Component with Focus Handling and Theme Support

- Updated `PaymentInput.client.vue` to include focus and blur event handlers, improving user interaction by visually indicating when the card input is focused.
- Enhanced theme support by adding new properties in `form-themes.js` for `PaymentInput`, allowing for better styling and transitions based on focus state.
- Introduced a new `isCardFocused` reactive reference to manage the focus state of the card input, enhancing the overall user experience.

These changes aim to improve the usability and visual feedback of the payment input component, aligning with recent enhancements to user experience in payment forms.

* Refactor Payment Handling and Improve Code Consistency

- Updated various files to enhance code consistency by adding spaces in arrow function definitions, improving readability and adhering to coding standards.
- Modified `PaymentBlockConfigurationRule.php`, `FormPaymentController.php`, and `Workspace.php` to ensure uniformity in the use of arrow functions.
- Enhanced `PaymentInput.client.vue` and other components by improving the formatting of template elements for better visual structure.
- Updated `useStripeElements.js` to streamline state management and improve clarity in the handling of Stripe elements.

These changes aim to improve code maintainability and readability across the payment handling components, ensuring a more consistent coding style throughout the codebase.

* Enhance Form Model and Logging Configuration

- Added a new 'auto_save' boolean property to the Form model, allowing for automatic saving of form data.
- Updated the logging configuration to include a 'combined' channel that stacks multiple log channels, improving logging flexibility and error tracking.
- Modified the FormFactory to set a default value for 'auto_save' to false, ensuring consistent behavior across form instances.
- Improved error message structure in FormPaymentTest to provide clearer feedback when a payment block is missing.

These changes aim to enhance the functionality of forms and improve logging capabilities, contributing to better maintainability and user experience.

* Update api/config/logging.php

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

* Refactor Payment Error Handling and Localization Updates

- Updated `FormPaymentTest.php` to improve code consistency by adding spaces in arrow function definitions, enhancing readability.
- Modified `useStripeElements.js` to replace hardcoded error messages with localized strings, improving user experience and maintainability.
- Enhanced various localization files (e.g., `en.json`, `fr.json`, `de.json`, etc.) to include new error messages related to payment processing, ensuring users receive clear and consistent feedback across different languages.

These changes aim to enhance the clarity of error handling in payment processes and improve the overall user experience through better localization support.

* Enhance AddFormBlock and FieldOptions with Authentication Checks

- Added an icon to indicate authentication requirements for blocks in `AddFormBlock.vue`, improving user awareness of access restrictions.
- Implemented alert notifications using `useAlert()` for unauthorized block additions and input cloning, enhancing user feedback.
- Updated `FieldOptions.vue` to conditionally render payment field options, ensuring relevant options are displayed based on the field type.
- Modified `blocks_types.json` to include an `auth_required` property for specific block types, facilitating authentication checks.

These changes aim to improve user experience by providing clear indications of authentication requirements and enhancing form functionality.

* Enhance Authentication Checks in AddFormBlock Component

- Updated `AddFormBlock.vue` to conditionally render authentication-required icons based on user authentication status, improving user awareness of access restrictions.
- Implemented additional authentication checks in the `addBlock` and `handleInputClone` functions, utilizing `useAlert()` for notifying users when login is required to add blocks or clone inputs.
- Introduced a computed property to manage the authenticated state, streamlining the authentication logic within the component.

These changes aim to enhance user experience by providing clear indications of authentication requirements and improving the functionality of the form component.

* Enhance PaymentInput Component with Disabled State Support

- Updated `PaymentInput.client.vue` to include a `disabled` prop for the card holder name and email inputs, improving form accessibility and user experience by preventing interaction when necessary.
- Modified the card options to respect the `disabled` state, ensuring consistent behavior across the payment input fields.

These changes aim to enhance the usability of the payment input component by providing better control over user interactions.

* Add Payment Condition Logic and Update Filters

- Introduced a new payment condition in `FormLogicConditionChecker.php` to handle 'paid' and 'not_paid' states, enhancing form logic capabilities.
- Added corresponding payment comparators in `open_filters.json` for both API and client, ensuring consistent validation and expected types for payment conditions.
- Updated the JavaScript logic in `FormLogicConditionChecker.js` to include the new payment condition checks, improving the overall functionality of form conditions.

These changes aim to enhance the form logic related to payment states, providing better validation and user experience in payment-related forms.

* Refactor Authentication Checks in AddFormBlock and Working Form Store

- Removed redundant authentication checks from `AddFormBlock.vue` for adding blocks and cloning inputs, streamlining the logic.
- Centralized authentication validation in `working_form.js` to ensure consistent user feedback when authentication is required for specific block types.
- Enhanced user experience by utilizing `useAlert()` for notifying users about login requirements, improving clarity and interaction.

These changes aim to simplify the authentication logic and improve user notifications regarding access restrictions in form components.

* Refactor Feature Flags and Update Payment Input Logic

- Updated `FeatureFlagsController.php` to utilize the `Cache` facade directly, improving code clarity and consistency.
- Modified `PaymentInput.client.vue` to enhance the display logic for payment previews, ensuring a better user experience by conditionally showing messages based on the state of the Stripe account.
- Removed the `STRIPE_PUBLISHABLE_KEY` from `runtimeConfig.js` to streamline the configuration and replaced it with a computed property that retrieves the key from feature flags, improving maintainability.
- Adjusted the `.env.example` file to maintain consistency in environment variable definitions.

These changes aim to enhance the clarity of feature flag management and improve the user experience in payment interactions by refining the logic and configuration handling.

* Update Stripe Configuration in Services

- Modified the `services.php` configuration file to enhance the Stripe integration by providing default values for `client_secret` and `redirect` URI. This change ensures that the application can fallback to a predefined secret and a specific callback URL, improving the robustness of the payment service setup.

These changes aim to streamline the configuration process for Stripe, ensuring that necessary values are always available for the application to function correctly.

---------

Co-authored-by: Chirag Chhatrala <chirag.chhatrala@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-04-10 12:04:25 +02:00
Chirag Chhatrala 7efa8ed9cb
Sentry + Nuxt upgrade & (#738)
Implement Enhanced Validation Logging in UserFormRequest

- Added a `failedValidation` method in `UserFormRequest` to log validation errors, including request data and user information, to the combined log channel and Slack.
- Updated `nuxt.config.ts` to integrate the latest Sentry module and adjusted configurations for improved error tracking.
- Refactored the `FeatureBase.vue` component to include error handling during user setup.
- Removed the deprecated Sentry plugin and replaced it with the new Sentry Nuxt integration for better performance and maintainability.

These changes aim to enhance error tracking and improve the overall robustness of form validation and user experience.
2025-04-01 17:41:10 +02:00
Julien Nahum f7df6bc0d7 Refactor Docker configuration and development setup
- Update .dockerignore with comprehensive ignore patterns for API and client
- Modify docker-compose files to improve service configurations
- Enhance Nginx configuration for development and production environments
- Refactor Dockerfile.api with improved build process
- Add docker-setup.sh script for simplified Docker deployment
- Update update-credentials.vue page with improved UI
- Remove hCaptcha dependency from package-lock.json
- Update PHP configuration and entrypoint scripts
2025-01-29 17:19:36 +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 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
Julien Nahum b0e9502d5e Bump dependencies, scan for all icons in json files 2024-11-20 21:17:48 +01:00
Julien Nahum 1b4e0b2533 Bump node & nuxt depencies 2024-11-20 18:41:56 +01:00
Julien Nahum 3dd36c8560 Bump versions and fix editor sidebar buttons 2024-11-20 17:21:57 +01:00
Julien Nahum dfec772d82 Bump dependencies 2024-11-20 17:00:12 +01:00
Julien Nahum fbf0831c6d Fix Nuxt Icon bug 2024-11-15 10:04:52 +01:00
Julien Nahum ccbf9faa3c Fix date input issue 2024-10-30 10:14:28 +01:00
Julien Nahum 9e19338b54 Bump nuxt icon dependency 2024-10-30 09:17:58 +01: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
Julien Nahum 2fdf2a439b Bump versions 2024-10-21 19:51:35 +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
Julien Nahum f65de634ee Update package-lock file 2024-09-19 08:55:08 +02:00
Julien Nahum 3280e38ee1
Docker compose setup (#513)
* fix password reset bug

* self hosted mode middleware changes on  pages

* fix lint

* wip: self hosted changes

* wip: self hosted frontend changes

* wip self hosted mode changes

* typo correction

* remove commented logic

* fix env variable names

* fix lint issues

* fix minor updates

* #445 Switched from single monolithic docker image to a docker-compose
 orchestrated network of services

* Automatically configures shared secret

* Working through some issues

* Use local file storage

* Moved the dockerfiles

* Fixed some issues when building from clean

* Corrected workflow

* Hopefully schedules everything correctly now

* Prep storage for worker process as well

* .env files are required

* Pinned dependency versions

* Disable self hosted in the client as well

* Removed double defaulting logic

* Using regexs is more succinct

* Added FRONT_URL environment variable

* Merge 236e4-self-hosted-mode-changes

* Improve inital user setup

* Finalized the new docker-compose setup

* Fix back-end formatting issues

---------

Co-authored-by: Frank <csskfaves@gmail.com>
Co-authored-by: Don Benjamin <don@webhammer.co.uk>
2024-08-05 12:06:20 +02:00
Julien Nahum 2ca2d97e8e
Better form themes (#465)
* Working on custom radius + input size

* Fix date input clear vertical align

* Moslty finished implementing small size

* Polishing larger theme

* Finish large theme

* Added size/radius options in form editor

* Darken help text, improve switch input help location

* Slight form editor improvement

* Fix styling

* Polish of the form editor
2024-06-27 17:52:49 +02:00
Julien Nahum a912a10145 Fix OpnForm production 2024-06-25 16:41:14 +02:00
Chirag Chhatrala 0334f7c883
Undo/redo form editor (#452)
* Undo/redo form editor

* Fix undo/redo

* Fix history with version check

* Increase default history size

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2024-06-25 15:48:20 +02:00
Julien Nahum 17476107df Migrate to GTM 2024-06-06 18:03:41 +02:00
Favour Olayinka 8760925007
fix field width offset (#417)
* fix store content bug

* fix: form field indexing bug on working form store

* fix column width on  form fied

* fix field width offset

* UI polishing

* Fix cursor grab

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2024-05-22 14:36:42 +02:00
Favour Olayinka bcd45ce8a6
0351d front end linting (#377)
* feat: disable custom script for  trial users

* after lint fix

* frontend linting

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2024-04-15 19:39:03 +02:00
formsdev 6f61faa9ef
Notification & Integrations refactoring (#346)
* Integrations Refactoring - WIP

* integrations list & edit - WIP

* Fix integration store binding issue

* integrations refactor - WIP

* Form integration - WIP

* Form integration Edit - WIP

* Integration Refactor - Slack - WIP

* Integration Refactor - Discord - WIP

* Integration Refactor - Webhook - WIP

* Integration Refactor - Send Submission Confirmation - WIP

* Integration Refactor - Backend handler - WIP

* Form Integration Status field

* Integration Refactor - Backend SubmissionConfirmation - WIP

* IntegrationMigration Command

* skip confirmation email test case

* Small refactoring

* FormIntegration status active/inactive

* formIntegrationData to integrationData

* Rename file name with Integration suffix for integration realted files

* Loader on form integrations

* WIP

* form integration test case

* WIP

* Added Integration card - working on refactoring

* change location for IntegrationCard and update package file

* Form Integration Create/Edit in single Modal

* Remove integration extra pages

* crisp_help_page_slug for integration json

* integration logic as collapse

* UI improvements

* WIP

* Trying to debug vue devtools

* WIP for integrations

* getIntegrationHandler change namespace name

* useForm for integration fields + validation structure

* Integration Test case & apply validation rules

* Apply useform changes to integration other files

* validation rules for FormNotificationsMessageActions fields

* Zapier integration as coming soon

* Update FormCleaner

* set default settings for confirmation integration

* WIP

* Finish validation for all integrations

* Updated purify, added integration formatData

* Fix testcase

* Ran pint; working on integration errors

* Handle integration events

* command for Delete Old Integration Events

* Display Past Events in Modal

* on Integration event create with status error send email to form creator

* Polish styling

* Minor improvements

* Finish badge and integration status

* Fix tests and add an integration event test

* Lint

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2024-03-28 18:14:30 +01:00
Favour Olayinka 659dc5086e
20334 implement desktop camera upload feature (#335)
* wip: camera upload

* Handle camera permissions

* remove console logs

* fix camera theme, hide on small  screen,

* video sizing on camera  upload

* camera feature minor fixes

* Package.json update

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2024-03-25 11:00:00 +01:00
Julien Nahum 06214ebfbf Completely remove nuxtimage 2024-03-20 19:16:17 +01:00
Julien Nahum 91911bc6e5 Multiple bug fixing 2024-02-10 12:20:45 +01:00
Julien Nahum 5dc1713404 Improve .env.example - Add codemirror dependency 2024-01-18 16:07:19 +01:00
Julien Nahum 3555e96ce3 Added sentry 2024-01-17 19:32:17 +01:00
Julien Nahum 5504942605 Fix logic editor bug 2024-01-16 16:46:22 +01:00
Julien Nahum 3d6ee0aab4 Fix codeinput 2024-01-16 12:20:05 +01:00
Julien Nahum 104f722bc1 Updated package-lock.json 2024-01-15 11:28:43 +01:00
Julien Nahum 80962678c1 Fix tests, added gh action nuxt step 2024-01-14 20:52:14 +01:00
Julien Nahum 75f6ca28ec Update package json 2024-01-05 15:43:52 +01:00
Julien Nahum a51ccfebec Fix notifications 2024-01-03 11:19:36 +01:00
Julien Nahum 55debc539c Adding missing module 2024-01-02 19:00:07 +01:00
Julien Nahum 752c3d2fa1 Sitemap done, working on aws amplify 2024-01-02 18:54:10 +01:00
Julien Nahum d1d8e62abb Working on page pre-rendering 2024-01-02 16:35:16 +01:00
formsdev 178424a184
Migrate to nuxt settings page AND remove axios (#266)
* Settings pages migration

* remove axios and use opnFetch

* Make created form reactive (#267)

* Remove verify pages and axios lib

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2024-01-02 13:09:41 +01:00
formsdev 6fd2985ff5
Nuxt Migration notifications (#265)
* Nuxt Migration notifications

* @input to @update:model-value

* change field type fixes

* @update:model-value

* Enable form-block-logic-editor

* vue-confetti migration

* PR request changes

* useAlert in setup
2023-12-31 12:39:01 +01:00
Julien Nahum 5a07064eee Updated cors dependency 2023-12-21 10:23:37 +01:00
Julien Nahum bb519907f6 Refactoring stores and templates pages to comp. api 2023-12-19 13:46:55 +01:00
Julien Nahum 7c2db2052a Figured out auth & middlewares 2023-12-16 19:21:03 +01:00
Julien Nahum a3a9254665 WIP 2023-12-14 16:53:05 +01:00
Julien Nahum 1f853e8178 Work in progress 2023-12-09 15:47:03 +01:00