* Add hCaptcha on register page
* register page captcha test cases
* Refactor integration validation rules to include form context
- Updated the `getValidationRules` method in various integration handlers (Discord, Email, Google Sheets, Slack, Webhook, Zapier) to accept an optional `Form` parameter, allowing for context-aware validation.
- Enhanced the `EmailIntegration` handler to enforce restrictions based on user plans, ensuring free users can only create one email integration per form and can only send to a single email address.
- Added a new test suite for `EmailIntegration` to validate the new restrictions and ensure proper functionality for both free and pro users.
- Introduced loading state management in the `IntegrationModal` component to improve user experience during save operations.
These changes improve the flexibility and user experience of form integrations, particularly for email handling.
* for self-hosted ignore emil validation for spam
* fix pint
* ignore register throttle for testing env
* support new migration for mysql also
* Register page captcha enable if captcha key set
* fix test case
* fix test case
* fix test case
* fix pint
* Refactor RegisterController middleware and update TestCase setup
- Removed environment check for throttling middleware in RegisterController, ensuring consistent rate limiting for the registration endpoint.
- Updated TestCase to disable throttle middleware during tests, allowing for more flexible testing scenarios without rate limiting interference.
* Enhance hCaptcha integration in tests and configuration
- Added hCaptcha site and secret keys to phpunit.xml for testing purposes.
- Updated RegisterTest to configure hCaptcha secret key dynamically, ensuring proper token validation in production environment.
These changes improve the testing setup for hCaptcha, facilitating more accurate simulation of production conditions.
---------
Co-authored-by: Julien Nahum <julien@nahum.net>
* Add integration action components and update integration JSON files
- Introduced new action components for Email, Slack, Discord, Webhook, and Google Sheets integrations, enhancing the user interface for managing these integrations.
- Updated the `integrations.json` files to include `actions_file_name` for each integration, linking them to their respective action components.
- Improved the `GoogleSheetsIntegrationActions.vue` component by replacing direct provider information display with a badge for better UI consistency.
These changes aim to streamline integration management and improve the overall user experience.
* Minor UI fixes
---------
Co-authored-by: Julien Nahum <julien@nahum.net>
* Custom SMTP Settings
* Fix lint
* Custom SMTP add in Pricing plan
* Allow reset email settings
* improve custom SMTP using seprate abstract class
* test case for custom SMTP
* fix test case
* UI improvement
* add CASHIER_KEY in phpunit for testcase
* Attempt to fix tests
* Run pint and attempt to fix cache tests
* Fix user management tests
* Fix code linters
* Merged main & fix linting
---------
Co-authored-by: Julien Nahum <julien@nahum.net>
* Dynamic OauthDriver scope
* support migration for mysql
* Refactor default scopes for integrations
* Small UI changes
* fix flet select tooltip
* fix linter
* Fix google token size in DB
---------
Co-authored-by: Julien Nahum <julien@nahum.net>
* 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
* Remove old code related to notifications
* 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
* Run linters
---------
Co-authored-by: Forms Dev <chirag+new@notionforms.io>
Co-authored-by: Julien Nahum <julien@nahum.net>