Commit Graph

1009 Commits

Author SHA1 Message Date
Julien Nahum d63ecd43cc Refactor Form Submission and Field Management Logic
- Simplified the constructor in StoreFormSubmissionJob for improved readability.
- Enhanced the storeFile method to handle null and empty values more robustly, ensuring better validation of file names.
- Updated StorageFileNameParser to return null for empty file names, improving error handling.
- Refactored OpenForm.vue to optimize form initialization and prevent unnecessary reinitializations, enhancing performance.
- Introduced new methods for managing field groups and preventing recursive updates in OpenForm.vue, improving the overall user experience.
- Enhanced FormEditorSidebar.vue to utilize Pinia store for better state management and clarity.
- Improved FormFieldEdit.vue to prevent page jumps during field editing, ensuring a smoother user experience.
- Added new getters in working_form.js for better page management and navigation within forms.

These changes aim to enhance the maintainability and performance of the form handling logic, providing a more efficient and user-friendly experience.
2025-03-25 18:42:53 +01:00
Julien Nahum 0815613b3d Refactor Form Submission and Field Management Logic
- Simplified the constructor in StoreFormSubmissionJob for improved readability.
- Enhanced the storeFile method to handle null and empty values more robustly, ensuring better validation of file names.
- Updated StorageFileNameParser to return null for empty file names, improving error handling.
- Refactored OpenForm.vue to optimize form initialization and prevent unnecessary reinitializations, enhancing performance.
- Introduced new methods for managing field groups and preventing recursive updates in OpenForm.vue, improving the overall user experience.
- Enhanced FormEditorSidebar.vue to utilize Pinia store for better state management and clarity.
- Improved FormFieldEdit.vue to prevent page jumps during field editing, ensuring a smoother user experience.
- Added new getters in working_form.js for better page management and navigation within forms.

These changes aim to enhance the maintainability and performance of the form handling logic, providing a more efficient and user-friendly experience.
2025-03-25 18:35:16 +01:00
Chirag Chhatrala 61e9493e1e
Add Template Creation Functionality in Admin Panel (#729)
* Add create template functionality in Admin Panel

- Implemented a new endpoint for creating templates in AdminController, utilizing the GenerateTemplate command.
- Added a form in the admin settings Vue component to allow users to input a template description and submit it.
- Enhanced the user experience with loading states and success/error alerts during template creation.

These changes facilitate the generation of new form templates directly from the admin interface, improving usability and functionality.

* Update template prompt validation length in AdminController

- Increased the maximum length of the 'template_prompt' field from 1000 to 4000 characters in the createTemplate method.

This change allows for more extensive template descriptions, enhancing the flexibility of template creation in the admin panel.

* Refactor template generation to use job-based approach

- Migrate template generation logic from the GenerateTemplate command to a new GenerateTemplateJob class for improved separation of concerns and better handling of asynchronous processing.
- Update AdminController to utilize the new job for generating templates, enhancing maintainability and clarity in the codebase.
- Remove unused dependencies and streamline the command's handle method for better performance and readability.

* fix lint

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2025-03-25 12:14:09 +01:00
Chirag Chhatrala fba2207e0f
Add 'exists_in_submissions' and 'does_not_exist_in_submissions' valid… (#725)
* Add 'exists_in_submissions' and 'does_not_exist_in_submissions' validation conditions

- Implement new validation conditions in FormLogicConditionChecker to check for existing submissions.
- Update open_filters.json and client-side filters to include the new conditions.
- Enhance FormLogicTest with test cases for the new validation conditions.
- Modify UI components to support the new logic conditions in form validation.

* Fix FormLogicConditionChecker

* Improve custom_validation_only

* fix test

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2025-03-25 11:50:59 +01:00
Chirag Chhatrala 2c746437c9
Re-login modal (#717)
* Implement quick login/register flow with global event handling

- Add QuickRegister component with improved modal management
- Integrate quick login/register with app store state
- Implement custom event handling for login/registration flow
- Update OAuth callback to support quick login in popup windows
- Refactor authentication-related components to use global events

* Refactor authentication flow with centralized useAuth composable

- Create new useAuth composable to centralize login, registration, and social login logic
- Simplify authentication methods in LoginForm and RegisterForm
- Add event-based login/registration flow with quick login support
- Remove redundant API calls and consolidate authentication processes
- Improve error handling and analytics tracking for authentication events

* Enhance QuickRegister and RegisterForm components with unauthorized error handling

- Add closeable functionality to modals based on unauthorized error state
- Implement logout button in QuickRegister for unauthorized users
- Reset unauthorized error state on component unmount
- Update styling for "OR" text in RegisterForm for consistency
- Set unauthorized error flag in app store upon 401 response in API calls

* Refactor Authentication Flow and Remove Unused Callback Views

- Deleted unused callback views for Notion and OAuth to streamline the codebase.
- Updated QuickRegister and LoginForm components to remove the after-login event emission, replacing it with a window message system for better communication between components.
- Enhanced the RegisterForm and other components to utilize the new window message system for handling login completion, improving reliability and maintainability.
- Added a verifyAuthentication method in the useAuth composable to ensure user data is loaded correctly after social logins, including retry logic for fetching user data.

These changes aim to simplify the authentication process and improve the overall user experience by ensuring a more robust handling of login events.

* Add eslint-disable comment to useWindowMessage composable for linting control

* Refactor QuickRegister.vue for improved template structure and clarity

- Adjusted the rendering of horizontal dividers and the "or" text for better semantic HTML.
- Added a compact-header prop to the modal for enhanced layout control.

These changes aim to enhance the readability and maintainability of the QuickRegister component.

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2025-03-25 10:41:11 +01:00
Julien Nahum a711b961d4 Update label for image input in FormCustomization.vue from "Color image" to "Cover image" for improved clarity and consistency in form component labeling. 2025-03-21 17:52:09 +01:00
Chirag Chhatrala aa5c1acf3a
Decouple title from title block (#696)
* Decouple title from title block

* fix lint

* remove dry run for FormTitleMigration

* Skip form title migration for forms with hidden titles

* Refactor AI Form Generation with Dedicated Prompt Services

- Extract AI form generation logic from GenerateTemplate command into dedicated prompt service classes
- Update GenerateAiForm job to use new prompt generation services
- Improve GptCompleter with more robust error handling and token tracking
- Add error field to AiFormCompletion model for better error logging
- Simplify command signature from 'ai:make-form-template' to 'form:generate'

* Consolidate Template Metadata Generation with Unified Prompt Service

- Create GenerateTemplateMetadataPrompt to centralize template metadata generation
- Update GenerateTemplate command to use new consolidated metadata generation approach
- Enhance GptCompleter to support strict JSON schema validation
- Increase form prompt max length to support more complex form descriptions
- Refactor form generation to simplify metadata extraction and processing

* Implement Form Mode Strategy for Flexible Form Rendering

- Introduce FormModeStrategy to centralize form rendering logic
- Add support for different form modes: LIVE, PREVIEW, TEST, EDIT, PREFILL
- Refactor components to use mode-based rendering strategy
- Remove legacy boolean props like adminPreview and creating
- Enhance form component flexibility and reusability

* Refine Form Mode Strategy Display Behavior

- Update FormModeStrategy to hide hidden fields in PREVIEW mode
- Add FormMode getter in UrlFormPrefill component for mode-specific rendering
- Clarify mode-specific validation and display logic in form strategies

* Enhance Form Template Generation with Advanced Field Options

- Update GenerateTemplate command to use front_url for template URL output
- Expand GenerateFormPrompt with comprehensive field configuration options
- Add support for advanced field types: date with time, toggle switches, radio/checkbox selections
- Introduce field width configuration and HTML formatting for text elements
- Re-enable select, multi-select, and matrix field type definitions with enhanced configurations

* Remove Deprecated Template Metadata Generation Services

- Delete multiple AI prompt services related to template metadata generation
- Simplify GenerateTemplate command to use default values instead of complex metadata generation
- Remove GenerateTemplateMetadataPrompt and related classes like GenerateTemplateDescriptionPrompt, GenerateTemplateImageKeywordsPrompt, etc.
- Update form template generation to use basic fallback metadata generation approach

* Restore GenerateTemplateMetadataPrompt for Comprehensive Template Generation

- Reintroduce GenerateTemplateMetadataPrompt to replace default metadata generation
- Update GenerateTemplate command to use consolidated metadata generation approach
- Extract detailed metadata components including title, description, industries, and image search query
- Improve template generation with more dynamic and AI-generated metadata

* Refactor Template Preview Section Layout

- Remove unnecessary nested div in template preview section
- Simplify HTML structure for the template preview component
- Maintain existing styling and functionality while improving code readability

* Refactor Constructor and Code Formatting in AI Form Generation and Prompt Classes

- Updated the constructor in GenerateAiForm.php to use a block structure for improved readability and consistency.
- Added a blank line in the Prompt.php file to enhance code formatting and maintain consistency with PHP coding standards.
- Modified the migration file to use a more concise class declaration syntax, improving clarity.

These changes aim to enhance code readability and maintainability across the affected files.

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2025-03-21 16:59:18 +01:00
Julien Nahum d2b8572d75 Update Docker Documentation to Address Line Ending Issues for Windows Users
- Added a warning for Windows users regarding the importance of maintaining LF (Unix-style) line endings in script files to prevent Docker containers from hanging during startup.
- Included instructions for configuring Git to preserve line endings and fixing the artisan script using dos2unix or sed commands.
- Added a note about potential line ending issues that may arise when using Git or code editors on Windows, emphasizing the need for LF line endings in the `artisan` script.

These changes aim to improve the documentation clarity and assist users in resolving common issues related to line endings when deploying with Docker.
2025-03-21 16:30:59 +01:00
Chirag Chhatrala 5f0140c6df
Create form abuse page (#731)
* Create form abuse page

* Update iframe height in report-abuse.vue for improved user experience

- Increased the minimum height of the iframe from 600px to 1000px to enhance visibility and usability of the abuse report form. This change aims to provide a better user experience by ensuring that the entire form is more easily accessible without the need for scrolling.

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2025-03-20 19:01:40 +01:00
Chirag Chhatrala dafb0e57a8
Refactor Form Not Found Handling and Improve Error Response (#730)
* Refactor Form Not Found Handling and Improve Error Response

- Replace the existing "Whoops" message with a NotFoundForm component for better user experience when a form is not found.
- Enhance error handling in the loadForm function to set a 404 response status when a form cannot be loaded, improving clarity for users and developers.

These changes aim to streamline the user experience and provide clearer feedback when forms are unavailable.

* Refactor Navbar and NotFoundForm Components for Improved User Experience

- Simplify the Navbar component by removing unnecessary conditional rendering for the authentication display, enhancing clarity in the layout.
- Update the NotFoundForm component to utilize a dynamic actions array for rendering navigation options, improving maintainability and flexibility.
- Adjust text styles for better readability and consistency across the NotFoundForm component.

These changes aim to streamline the user interface and enhance the overall user experience when navigating forms and handling not found scenarios.

* Update NotFoundForm Component for Improved Action Clarity

- Adjust the text and icon in the actions array of the NotFoundForm component to enhance clarity and user experience. The "Start Fresh" action has been renamed to "Create Form" and the icon has been updated from a check-circle to a rocket-launch icon, better reflecting the action's purpose.
- Minor formatting adjustments were made to the template for improved readability.

These changes aim to provide users with clearer navigation options and a more intuitive interface when encountering a not found scenario.

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2025-03-20 16:55:53 +01:00
Chirag Chhatrala eb493c357c
Enhance CheckboxInput and ToggleSwitchInput Components with Help Slot Positioning (#728)
- Introduce conditional rendering for help text in CheckboxInput.vue and ToggleSwitchInput.vue, allowing help text to be displayed either above or below the input based on the helpPosition prop.
- Update the structure of the help slot to improve flexibility and user experience.

These changes enhance the usability of the form components by providing clearer guidance to users.
2025-03-20 15:33:14 +01:00
Chirag Chhatrala 37a10cbdfa
Add regex matching filters to open_filters.json (#722)
* Add regex matching filters to open_filters.json

- Introduce new regex-based filters: matches_regex and does_not_match_regex
- Add support for string-based regex matching in both API and client filter configurations
- Update filter schemas to include new regex filter options with expected string type

* Add barcode comparators and regex filters to open_filters.json and validatePropertiesLogic.js

- Introduce new barcode comparators: equals, does_not_equal, contains, does_not_contain, starts_with, ends_with, is_empty, is_not_empty, matches_regex, does_not_match_regex, content_length_equals, content_length_does_not_equal, content_length_greater_than, content_length_greater_than_or_equal_to, content_length_less_than, content_length_less_than_or_equal_to.
- Add regex matching filters: matches_regex and does_not_match_regex to open_filters.json.
- Remove console log statements from validatePropertiesLogic.js and FormPropertyLogicRule.js for cleaner code.

This update enhances the filtering capabilities and improves the validation logic by removing unnecessary debug outputs.

* Refactor Vue Components for Improved Readability and Consistency

- Update CameraUpload.vue to enhance formatting and maintain consistent indentation for better readability.
- Modify OpenFormField.vue to improve tooltip component formatting, ensuring consistent styling across the application.
- Refactor FormSecurityAccess.vue to enhance the layout of the conditional rendering for captcha providers.
- Adjust RegisterForm.vue to improve the formatting of the terms and conditions section, ensuring consistent indentation and readability.

These changes aim to enhance code maintainability and visual consistency across the components, contributing to a cleaner codebase.

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2025-03-15 13:55:42 +08:00
Julien Nahum e100b32929 Merge branch 'main' of https://github.com/JhumanJ/OpnForm 2025-03-15 13:39:12 +08:00
Julien Nahum d836d531a7 Refactor BarcodeInput and CameraUpload Components for Enhanced UI and Functionality
- Replace SVG icon in BarcodeInput with a new Icon component for improved visual consistency.
- Update CameraUpload component to enhance styling and functionality, including:
  - Add a barcode scanning overlay for better user experience during scanning.
  - Refactor video and canvas elements to improve layout and responsiveness.
  - Adjust button sizes and styles for better accessibility and usability.
  - Implement more robust camera handling logic, including improved facing mode management and error handling for mobile devices.

These changes aim to enhance the user interface and overall functionality of the barcode scanning feature, ensuring a smoother experience for users.
2025-03-15 13:38:38 +08:00
Chirag Chhatrala 7e8322a0fd
support barcode on opentable (#724)
Co-authored-by: Julien Nahum <julien@nahum.net>
2025-03-15 13:19:42 +08:00
Julien Nahum e6239f99cd Enhance Back-end and Front-end Documentation
- Update back-end rules to include support for nested PHP files and added debugging guidelines using ray().
- Expand front-end rules to specify the use of form components from client/components/forms and wrapping them in @VForm.vue.

These changes improve clarity and best practices for both back-end and front-end development, ensuring consistency and better debugging practices across the codebase.
2025-03-15 10:21:31 +08:00
Chirag Chhatrala c3c66e0b71
Barcode scanner issue fixed (#721)
Co-authored-by: Julien Nahum <julien@nahum.net>
2025-03-12 15:28:50 +08:00
Chirag Chhatrala 7b942997ce
Hidden field can never be required. Skip that validation (#716)
* Hidden field can never be required. Skip that validation

* Refactor form logic editor UI with improved text and styling

- Replace UAlert with plain text description
- Update action description text
- Remove help text from select input
- Simplify note about hidden field requirements

* Add test for form logic field visibility and validation

- Implement test case for fields hidden by logic conditions
- Update AnswerFormRequest to use new FormLogicPropertyResolver method for hidden field check
- Ensure required fields are skipped when hidden by form logic

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2025-03-12 14:47:06 +08:00
Julien Nahum a5162192b1
Enhance JWT Token Management and Authentication Flow (#720)
- Implement extended token lifetime for "Remember Me" functionality
- Add token expiration details to authentication responses
- Update client-side token handling to support dynamic expiration
- Modify authentication middleware to handle token initialization more robustly
- Configure JWT configuration to support longer token lifetimes
2025-03-10 17:32:17 +08:00
Julien Nahum 06328a47ab Enhance Tax Export Command with Comprehensive Invoice Processing and Metrics
- Improve invoice processing with advanced error handling and tracking
- Add detailed volume metrics for USD and EUR
- Implement robust country detection with multiple fallback strategies
- Enhance logging and progress tracking during tax export generation
- Add performance timing and more granular invoice exclusion reporting
2025-03-10 17:25:15 +08:00
Julien Nahum 8894880cb9 Improve Email Notification Message-ID and Threading Generation
- Refactor email header generation for form submission notifications
- Use MD5 hashed submission ID for more consistent message threading
- Remove timestamp from Message-ID and Thread-Index generation
- Ensure emails are threaded only by submission ID
- Simplify header creation logic for better email client compatibility
2025-03-06 13:21:12 +08:00
Chirag Chhatrala a59b46665c
Billing flow redirect (#713)
* Billing flow redirect

* fix checkout url

* Refactor checkout and subscription flow

- Improve checkout URL generation with ref unwrapping
- Enhance user data handling in subscription modal
- Remove deprecated CheckoutDetailsModal component
- Update form field and register form styling
- Add more robust user data update mechanism

* Refactor checkout and subscription flow

- Improve checkout URL generation with ref unwrapping
- Enhance user data handling in subscription modal
- Remove deprecated CheckoutDetailsModal component
- Update form field and register form styling
- Add more robust user data update mechanism

* Fix accessibility and checkout URL generation

- Add proper label for terms and conditions checkbox in RegisterForm
- Refactor checkout URL generation in SubscriptionModal using computed refs
- Improve form input handling and reactivity

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2025-03-05 19:16:33 +08:00
Julien Nahum b633f97ce1 Refactor FormSubmissionDataFactory to use TestHelpers trait
- Move FormSubmissionDataFactory methods into TestHelpers trait
- Update import statements across multiple test files
- Remove standalone FormSubmissionDataFactory class
- Simplify form submission data generation in tests
- Add documentation for new generateFormSubmissionData method
2025-03-04 13:38:33 +08:00
Julien Nahum d2f77aaa3f Enhance UI components with dark mode and tooltip improvements
- Update FileInput component dark mode text color
- Modify OpenForm dragging state background for dark mode
- Refactor OpenFormField admin preview actions with tooltips and improved styling
- Add z-index and styling improvements for form field action buttons
2025-03-04 12:21:30 +08:00
Julien Nahum cf4688d75e Improve numeric condition handling in form logic checker
- Add robust numeric comparison for zero and negative numbers
- Implement safe numeric parsing and validation
- Enhance condition checking for numeric fields across PHP and JavaScript
- Add comprehensive test cases for edge case numeric comparisons
- Fix 'is_not_empty' operator logic in JavaScript condition checker
2025-03-03 19:29:40 +08:00
Julien Nahum 405ab64e41 Merge branch 'main' of https://github.com/JhumanJ/OpnForm 2025-03-03 17:12:31 +08:00
Julien Nahum 58cff70a97 Update Custom Plan pricing for monthly and yearly subscriptions
- Adjust pricing for custom plan in CustomPlan.vue
- Reduce yearly price from $160 to $79
- Reduce monthly price from $200 to $100
2025-03-03 17:12:21 +08:00
Julien Nahum 267beec582
Refactor form initialization and data management in OpenForm component (#709)
* Refactor form initialization and data management in OpenForm component

- Add resetAndFill method to Form class for more flexible form data handling
- Update initForm method to use nextTick for better reactivity
- Modify form initialization logic to reset and fill form data more consistently
- Remove unnecessary computed import and add debug console.log

* fix on fill again

---------

Co-authored-by: Chirag Chhatrala <chirag.chhatrala@gmail.com>
2025-03-03 14:29:15 +08:00
Julien Nahum c9dbc79f75 Add Docker environment variables documentation
- Update environment-variables.mdx with Docker-specific environment variable guidance
- Add environment variable sections to docker-development.mdx and docker.mdx
- Provide instructions for updating environment variables in Docker containers
- Include a warning about properly recreating containers when changing environment variables
2025-02-27 15:56:18 +08:00
Julien Nahum b388c729ce Refactor Stripe subscription line item management in WorkspaceUsersUpdated job
- Improve handling of extra user line items in Stripe subscriptions
- Add logic to remove line item when quantity is zero
- Optimize line item creation and update process
- Simplify environment check using app() helper method
2025-02-27 15:04:38 +08:00
Julien Nahum d2f938803b Improve Captcha Provider Handling and Availability Checks
- Add conditional rendering for captcha based on site key availability
- Dynamically generate captcha options based on configured providers
- Prevent displaying captcha input when no providers are configured
- Add runtime config checks for captcha site keys
2025-02-27 15:00:56 +08:00
Chirag Chhatrala 308ce7031a
Add localized 'Yes' and 'No' translations for checkbox fields (#710) 2025-02-24 17:08:37 +08:00
Chirag Chhatrala 9c58f2cf6f
integration modal close modal improve (#708)
Co-authored-by: Julien Nahum <julien@nahum.net>
2025-02-24 16:25:06 +08:00
Chirag Chhatrala 65eebb7277
Fix redirect URL mentions (#707) 2025-02-24 16:11:30 +08:00
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
Chirag Chhatrala 83ef18f453
fix camera upload for mobile (#686)
Co-authored-by: Julien Nahum <julien@nahum.net>
2025-02-19 11:23: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
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