Commit Graph

1020 Commits

Author SHA1 Message Date
Julien Nahum 0d6bd1bfde Update Vapor deployment configuration
Remove redundant `php artisan event:cache` and `php artisan optimize` steps in build and deploy processes
2025-02-15 09:18:27 +00:00
Chirag Chhatrala e7585c32d3
Refactor form property logic rule to load condition mapping from external JSON file (#698)
* Refactor form property logic rule to load condition mapping from external JSON file

* fix CONDITION_MAPPING

* use config file for load mapping

* Simplify condition mapping retrieval in FormPropertyLogicRule

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2025-02-14 22:32:55 +00:00
Chirag Chhatrala 82fae97a3e
Clean up empty HTML and help text in form inputs (#700)
* Clean up empty HTML and help text in form inputs

* Update api/app/Http/Requests/UserFormRequest.php

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

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-02-14 15:23:09 +00:00
Chirag Chhatrala c819e76463
On duplicate form re-generate slug (#703)
* when duplicate remove removed_properties

* when duplicate remove removed_properties

* On duplicate form re-generate slug

* On duplicate form re-generate slug
2025-02-14 15:15:10 +00:00
Chirag Chhatrala 33bd85fd2c
when duplicate form remove removed_properties (#702)
* when duplicate remove removed_properties

* when duplicate remove removed_properties
2025-02-13 15:23:51 +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 aae28d09cc
Add workspace update functionality (#699)
* Add workspace update functionality

* Refactor workspace settings header layout and edit button styling

* Update workspace route and API endpoint to use root path

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2025-02-12 13:43:55 +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 b457368398 Merge branch 'main' of https://github.com/JhumanJ/OpnForm 2025-02-10 17:33:08 +01:00
Julien Nahum a27eb0acd4 Optimize PHP extension installation in Dockerfile.api
- Separate PHP extension installation into distinct steps
- Add explicit module verification after each extension installation
- Configure optimization flags for more stable builds
- Improve build process with granular extension configuration
2025-02-10 17:33:01 +01:00
Chirag Chhatrala 9df70b97c7
Add support for additional language locales (#693)
Co-authored-by: Julien Nahum <julien@nahum.net>
2025-02-10 12:33:52 +01:00
Chirag Chhatrala 11d15b56ac
i18n Cookie issue (#694) 2025-02-10 12:29:42 +01:00
Julien Nahum 29640fc70b Enhance Docker API build configuration
- Add system build dependencies for PHP extension compilation
- Update PHP extension installation with explicit configuration
- Configure PostgreSQL extension with explicit path
- Improve build process with parallel extension installation
2025-02-04 20:24:00 +01:00
Chirag Chhatrala 5f0fc2f62d
Quill translate bug (#689)
Co-authored-by: Julien Nahum <julien@nahum.net>
2025-02-03 20:19:03 +01:00
Chirag Chhatrala 717fcc78d1
Fix tag selection method in home page component (#690) 2025-02-03 08:52:26 +01:00
Julien Nahum cc1199f52a Merge branch 'main' of https://github.com/JhumanJ/OpnForm 2025-02-01 22:53:23 +01:00
Julien Nahum f350ed778c Refactor form submission processing with new FormSubmissionProcessor
- Introduce FormSubmissionProcessor service to handle synchronous/asynchronous form submission logic
- Modify PublicFormController to use new processor for submission and redirect handling
- Update StoreFormSubmissionJob to support processed data retrieval
- Add comprehensive test suite for FormSubmissionProcessor
- Improve handling of generated fields and redirect URL processing
2025-02-01 22:52:20 +01:00
nielscodes 3acf046975
Update nginx.conf (#687)
Changed undefined variable original_uri to request_uri which should use the original request uri. (nginx container won't start otherwise)

Co-authored-by: Julien Nahum <julien@nahum.net>
2025-02-01 22:48:53 +01:00
Julien Nahum bb34cd98e5 Update GitHub Actions workflow to use latest GitHub Actions versions
Upgrade GitHub Actions workflow configuration:
- Update actions/checkout from v2 to v4
- Update actions/setup-node from v1 to v4
- Update actions/cache from v2 to v4
- Update actions/upload-artifact from v3 to v4
- Replace deprecated `::set-output` with `>>$GITHUB_OUTPUT`
2025-02-01 22:11:54 +01:00
Julien Nahum 5f0f873fb2 Add configuration option to hide official templates
Introduce a new environment variable and configuration option to allow users to hide official templates in the template gallery. This provides more flexibility for self-hosted instances of OpnForm.
2025-02-01 21:14:28 +01:00
Julien Nahum 932585b9d3 Remove bootstrap cache volume from docker-compose.yml
Simplify Docker configuration by removing an unnecessary volume mapping for the Laravel bootstrap cache directory
2025-01-29 21:45:50 +01:00
Julien Nahum 44a4b983d5 Simplify Docker development setup with minimal configuration
- Remove Redis, queue workers, and scheduler from development environment
- Update docker-compose.dev.yml with simplified service configurations
- Modify Dockerfile.api to support flexible dependency installation
- Update docker-setup.sh script to use single compose file
- Revise Docker development documentation to reflect new lightweight approach
2025-01-29 18:44:42 +01: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
Julien Nahum bf85d8fa76
Developer docker setup (#683)
* Add build context to compose

Signed-off-by: Daniel Ekman <knegge@gmail.com>

* Update Docker documentation with build instructions

Enhance Docker deployment documentation by:
- Adding detailed instructions for building Docker images
- Providing two methods for image building (Docker Compose and manual)
- Clarifying how to use local images with docker-compose.override.yml

* Add development Docker configuration

Introduce development-specific Docker configuration:
- Create docker-compose.dev.yml for local development setup
- Add nginx.dev.conf with development CORS settings
- Update Dockerfile.api to support environment-specific dependency installation
- Configure development services with appropriate volumes and environment variables

* Improve Docker and Development Documentation

- Remove platform-specific ARM64 constraints in docker-compose.dev.yml
- Enhance Nginx configuration with improved proxy and HMR settings
- Update documentation for development setup and Docker deployment
- Add new Docker development documentation page
- Refactor getting started guide with clearer development instructions

* Enhance Docker configuration and CI/CD pipeline

- Update Docker Compose files with improved service configurations
- Add database healthcheck in docker-compose.yml
- Refactor GitHub Actions workflow for Docker image publishing
- Optimize Dockerfile.api with multi-stage build and environment-specific configurations
- Update Nginx configuration for development and production environments

* Add GitHub Actions permissions for Docker image publishing

Configure GitHub Actions workflow with explicit read and write permissions for content and packages to improve security and clarity of Docker image deployment process

---------

Signed-off-by: Daniel Ekman <knegge@gmail.com>
Co-authored-by: Daniel Ekman <knegge@gmail.com>
2025-01-28 17:52:48 +01:00
Daniel Ekman ae74f33a27
Add build context to compose (#680)
* Add build context to compose

Signed-off-by: Daniel Ekman <knegge@gmail.com>

* Update Docker documentation with build instructions

Enhance Docker deployment documentation by:
- Adding detailed instructions for building Docker images
- Providing two methods for image building (Docker Compose and manual)
- Clarifying how to use local images with docker-compose.override.yml

---------

Signed-off-by: Daniel Ekman <knegge@gmail.com>
Co-authored-by: Julien Nahum <julien@nahum.net>
2025-01-28 12:56:01 +01:00
Julien Nahum 735f398605 Fix forms 2025-01-28 09:23:11 +01:00
Julien Nahum c49af07aa1 Merge branch 'main' of https://github.com/JhumanJ/OpnForm 2025-01-27 18:24:33 +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 4fae4e6328
Enhance email settings functionality by adding sender address support (#668)
Co-authored-by: Julien Nahum <julien@nahum.net>
2025-01-27 16:07:01 +01:00
Julien Nahum a91c194161 Update Billing Tab Condition in Settings Page
Change the condition for displaying the Billing tab from checking user subscription status to verifying the presence of a customer ID
2025-01-27 11:37:36 +01:00
Julien Nahum b5f5f40753 Add reCAPTCHA environment variables to documentation
- Updated environment variables table to include reCAPTCHA site and secret keys
- Added front-end and back-end reCAPTCHA configuration variables
- Maintained consistent documentation style with existing entries
2025-01-25 18:12:20 +01:00
Chirag Chhatrala 55bbb476a9
Fix EmailIntegrationActions for display emails (#667)
Co-authored-by: Julien Nahum <julien@nahum.net>
2025-01-16 10:23:59 +01:00
Julien Nahum a67dff14a4 Fixed linting 2025-01-16 10:09:54 +01:00
Julien Nahum 9bf83d5f89 Enhance Tax Export Command Date Handling
- Improved date validation logic in the GenerateTaxExport command.
- Added default start date as the first day of the previous month if not specified, with user confirmation.
- Set default end date to the end of the month based on the start date if not provided.
- Refactored date formatting for better readability and consistency in log messages.
- Enhanced the clarity of the progress bar query options by formatting the expand array.

These changes improve user experience by providing sensible defaults for date inputs and ensuring clear communication of the command's actions.
2025-01-14 14:40:26 +01:00
Julien Nahum 747b41d0a6 Add error logging for integration failures in AbstractIntegrationHandler
- Introduced logging of integration failures to capture detailed error information.
- Enhanced error handling by logging the form ID and integration ID along with the exception data.

These changes improve the observability of integration processes, aiding in debugging and monitoring.
2025-01-14 14:34:03 +01:00
Julien Nahum e3fd709326 Refactor Email Integration Handling
- Removed the AbstractEmailIntegrationHandler class to streamline email integration logic.
- Updated EmailIntegration class to extend AbstractIntegrationHandler instead of the removed class.
- Modified FormEmailNotification to handle mailer configuration internally, eliminating the need to pass the mailer as a parameter.

These changes enhance the clarity and maintainability of the email integration process by consolidating configuration logic and reducing class dependencies.
2025-01-14 13:29:09 +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 b0311257ac
improve s3key exception (#661) 2025-01-06 12:52:20 +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 09c4417731
Embed form flickering bug (#658)
* Embed form flickering bug

* fix issue when remove hidden class
2025-01-03 16:03:02 +01:00
Chirag Chhatrala 2366f9515d
Readonly User (#637)
* Readonly User

* Refactor FormPolicy and TemplatePolicy to centralize write operation logic

- Introduced a private method `canPerformWriteOperation` in both FormPolicy and TemplatePolicy to encapsulate the logic for determining if a user can perform write operations on the respective models.
- Updated the `update`, `delete`, `restore`, and `forceDelete` methods in FormPolicy to use the new method for improved readability and maintainability.
- Simplified the `update` and `delete` methods in TemplatePolicy to leverage the centralized write operation logic.

This refactoring enhances code clarity and reduces duplication across policy classes.

* Refactor user and workspace permissions handling

- Updated FormController to authorize form creation based on workspace context.
- Removed the `is_readonly` attribute from UserResource and integrated it into WorkspaceResource for better encapsulation.
- Refactored User model to eliminate the `getIsReadonlyAttribute` method, shifting readonly logic to the Workspace model.
- Adjusted FormPolicy and TemplatePolicy to utilize workspace readonly checks for user permissions.
- Updated various frontend components to reference workspace readonly status instead of user readonly status, enhancing clarity and consistency in permission handling.

These changes improve the management of user permissions in relation to workspaces, ensuring a more robust and maintainable authorization system.

* Fix isReadonlyUser

* fix pint

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2024-12-30 14:35:23 +01:00
Chirag Chhatrala 9a2d7b9d8d
On slack,discord add support for Include hidden fields (#654) 2024-12-30 11:11:17 +01:00
Chirag Chhatrala 3d9bc60ca1
Evaluate custom validation rules first (#655) 2024-12-30 11:00:10 +01:00