- Added a file input for PDF uploads with validation for file type and size.
- Implemented file size formatting and user feedback for selected files.
- Created upload and cancel methods with placeholder for future API integration.
feat: Create PaymentForm.vue for handling payments
- Developed a form for entering payment details including date, amount, method, and notes.
- Integrated currency formatting and dropdown for payment methods.
- Implemented save and cancel actions with API call for saving payment data.
docs: Add documentation for dynamic plugin menus and permissions
- Provided guidelines for defining menu items and permissions in plugins.
- Explained the process for synchronizing permissions and integrating menus in the frontend.
- Included examples and best practices for plugin development.
feat: Add database migrations for invoices, invoice items, and payments
- Created migration scripts to define the database schema for invoices, invoice items, and payments.
- Established foreign key relationships between invoices and related entities.
feat: Implement command for synchronizing plugin permissions
- Developed a console command to synchronize plugin permissions with the database.
- Added options for dry-run and force synchronization for unlicensed modules.
feat: Create API controller for plugin menu items
- Implemented API endpoints to retrieve plugin menu items in both flat and grouped formats.
- Ensured access control with role-based permissions for API access.
feat: Develop service for managing plugin menu items
- Created a service to collect and manage menu items from installed plugins.
- Implemented methods for retrieving flat and grouped menu items for frontend use.
feat: Add service for synchronizing plugin permissions
- Developed a service to handle the synchronization of plugin permissions with the database.
- Included logic for creating and updating permission modules based on plugin definitions.
- Added ProjectTask entity with fields for name, description, budget, hour contingent, hourly rate, and total price.
- Created ProjectTaskRepository with methods for querying tasks by project and user access.
- Implemented ProjectTaskVoter for fine-grained access control based on user roles and project membership.
- Developed ProjectTaskSecurityListener to enforce permission checks during task creation.
- Introduced custom ProjectTaskProjectFilter for filtering tasks based on project existence.
- Integrated ProjectTask management in the frontend with Vue.js components, including CRUD operations and filtering capabilities.
- Added API endpoints for ProjectTask with appropriate security measures.
- Created migration for project_tasks table in the database.
- Updated documentation to reflect new module features and usage.
- Added ProjectStatusManagement.vue for managing project statuses with CRUD operations.
- Created migration scripts for projects and project_statuses tables.
- Defined Project and ProjectStatus entities with necessary fields and relationships.
- Implemented repositories for Project and ProjectStatus with custom query methods.
- Enhanced API resource configurations for Project and ProjectStatus entities.
- Introduced typography styles in _typography.scss for headings, paragraphs, blockquotes, and horizontal rules.
- Added utility classes in _utils.scss for card styling and clearfix.
- Updated layout.scss to include new typography and utility styles.
- Defined common CSS variables in _common.scss for consistent theming.
- Created dark and light theme variables in _dark.scss and _light.scss respectively.
- Integrated Tailwind CSS with custom configurations in tailwind.config.js and postcss.config.js.
- Implemented database migrations for contact and contact_persons tables.
- Added data fixtures for generating sample contact data.
- Developed Contact and ContactPerson entities with appropriate validation and serialization.
- Enhanced ContactRepository with search and type filtering methods.
- Introduced a new SettingsManagement view for administrators to manage system settings.
- Added routes and components for settings management, including minimum password length and password login options.
- Implemented a SettingsService to handle retrieval and updating of settings.
- Created a new Setting entity and repository for database interactions.
- Added validation for password length using a custom PasswordMinLength validator.
- Updated SecurityController to check if password login is allowed.
- Enhanced UserManagement view to provide detailed error messages on save and delete operations.
- Implemented a DuplicateEmailExceptionListener to handle unique constraint violations for email addresses.
- Updated security configuration to include the new LoginFormAuthenticator.
- Created API endpoints for fetching and updating settings, secured with ROLE_ADMIN.
- Added UserManagement.vue component for managing users with PrimeVue DataTable.
- Integrated API endpoints for user CRUD operations in the backend.
- Implemented user password hashing using a custom state processor.
- Updated router to include user management route with admin access control.
- Enhanced Dashboard.vue and app.scss for improved styling and responsiveness.
- Documented user management features and API usage in USER-CRUD.md.