* Integration pages from Notion
* Self hosted domain redirect
* Refactor root-redirect middleware and update 404 page layout
- Simplified the `root-redirect.js` middleware by removing the specific route checks, allowing for a more general redirect based on the `self_hosted` feature flag.
- Updated the 404 error page in `[...all].vue` by removing the unnecessary `NuxtLayout` wrapper and replacing `NuxtLink` with a custom `UButton` for navigation, enhancing the overall layout and user experience.
These changes aim to streamline the redirect logic and improve the presentation of the 404 error page.
* Refactor feature flag handling and update middleware
- Updated the condition in `Navbar.vue` to correctly evaluate the feature flags for rendering the AI form builder link.
- Removed the `feature-flags.global.js` middleware as it was no longer needed, streamlining the middleware structure.
- Enhanced the `root-redirect.js` middleware to utilize `h3`'s `sendRedirect` for server-side redirection, improving the redirect logic.
- Modified the `ai-form-builder.vue` page to include the new `root-redirect` middleware, ensuring proper redirection based on feature flags.
These changes aim to improve the handling of feature flags and redirection logic, enhancing the overall application flow.
---------
Co-authored-by: Julien Nahum <julien@nahum.net>
- Added a new `enabled` property to the GTM configuration in `gtm.js`, allowing for conditional enabling of the GTM plugin.
- Updated the `package-lock.json` to include the latest versions of `@gtm-support/vue-gtm` and `@gtm-support/core`, ensuring compatibility and access to new features.
- Modified the `onMounted` lifecycle hook in `FeatureBase.vue` to include a check for the `user` state, preventing script loading when the user is not available.
These changes aim to enhance the GTM integration by providing more control over its activation and ensuring that the latest dependencies are utilized for improved functionality.
- Updated the Crisp plugin configuration in `crisp.client.js` to prevent initialization when on the public form page. This change introduces a new condition that checks if the current route is the 'forms-slug' page, ensuring that the Crisp chat functionality is only enabled on appropriate pages.
These changes aim to improve the user experience by preventing unnecessary chat interactions on specific pages, thereby streamlining the application behavior.
- Updated the `beforeSend` function in `sentry.client.config.ts` to improve error filtering by introducing checks for chunk loading errors and validation exceptions. This prevents unnecessary error reporting to Sentry, enhancing the relevance of logged errors.
- Refactored user information retrieval to use a local variable for better clarity and maintainability.
These changes aim to streamline error reporting and improve the overall reliability of the Sentry integration in the client application.
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.
- Updated ESLint configuration in `.eslintrc.cjs` to enforce error handling for unused variables, allowing for better code quality and maintainability.
- Added `clone-deep` import in `OpenForm.vue` to facilitate deep cloning of objects, enhancing functionality.
- Refactored variable destructuring in `ColumnCondition.vue` and `useAlert.js` to improve readability by using underscore for ignored parameters.
- Modified `pinia-history.js` to use underscore for unused parameters in the `get` and `set` functions, aligning with the new ESLint rules.
These changes aim to improve code quality, maintainability, and consistency across the codebase.
* 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
* Undo/redo form editor
* Fix undo/redo
* Fix history with version check
* Increase default history size
---------
Co-authored-by: Julien Nahum <julien@nahum.net>