- 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.
- Added PasswordResetController to handle password reset requests and confirmations.
- Created views for password reset request, confirmation, and invalid link scenarios.
- Implemented email sending for password reset requests with security measures.
- Added form validation for password reset confirmation, including password strength requirements.
- Enhanced user experience with success and error messages during the password reset process.
- Created a new CrudDataTable.vue component to handle data display and interactions.
- Integrated column configuration, filtering, and sorting functionalities.
- Added support for dynamic column visibility and order persistence using localStorage.
- Enhanced data loading with error handling and user feedback via toast notifications.
- Updated ContactManagement_old.vue to utilize the new CrudDataTable component, improving code organization and maintainability.
- 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 knpuniversity/oauth2-client-bundle and league/oauth2-client to composer.json
- Updated composer.lock with new dependencies
- Registered KnpUOAuth2ClientBundle in bundles.php
- Configured security.yaml for custom authenticator and access control
- Created OIDC setup documentation (OIDC_SETUP.md)
- Implemented OAuthController for handling Pocket-ID authentication flow
- Developed PocketIdProvider and PocketIdResourceOwner for OIDC integration
- Created PocketIdAuthenticator for user authentication and management
- Updated login.html.twig to include Pocket-ID login button with styling
- Added knpu_oauth2_client.yaml configuration for Pocket-ID client
- 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.