Commit Graph

469 Commits

Author SHA1 Message Date
Torsten Schulz (local)
7454a274a1 fix(tournament): refine birth date handling and eligibility checks in TournamentTab
- Updated birth date parsing to support both camelCase and snake_case formats, ensuring accurate eligibility checks for age-restricted classes.
- Enhanced minimum and maximum birth year comparisons to handle edge cases, improving the robustness of member eligibility filtering.
2026-01-30 23:56:03 +01:00
Torsten Schulz (local)
380709c29c fix(tournament): improve birth year eligibility checks in TournamentTab
- Updated the logic for determining minimum and maximum birth years to support both camelCase and snake_case formats from the API.
- Enhanced member eligibility checks to ensure accurate filtering based on birth year restrictions, improving clarity and functionality in the tournament participant selection process.
2026-01-30 23:48:51 +01:00
Torsten Schulz (local)
c6f8b4dd74 fix(tournament): update age eligibility descriptions for mini championships
- Revised comments and localization strings to accurately reflect the age eligibility criteria for mini championships, ensuring clarity in the age classifications for participants.
- Adjusted birth year calculations in the tournamentService to align with the updated descriptions.
2026-01-30 23:36:57 +01:00
Torsten Schulz (local)
02c947b0e3 fix(tournament): update birth year eligibility checks in TournamentTab
- Adjusted the logic for member eligibility based on birth year to ensure that members without a valid birth date are not allowed in age-restricted classes.
- Enhanced comments for clarity regarding age restrictions and eligibility criteria, improving the understanding of the filtering logic.
2026-01-30 23:32:52 +01:00
Torsten Schulz (local)
c3366313d6 feat(tournament): add debug logging for member eligibility checks in TournamentTab
- Introduced debug logging to track member eligibility filtering in the TournamentTab component, providing insights into birth year comparisons and class item constraints for a subset of members.
- This enhancement aids in troubleshooting and ensures clarity in the filtering logic for tournament participants.
2026-01-30 23:28:28 +01:00
Torsten Schulz (local)
b1e184c4c2 refactor(tournament): streamline participant filtering logic in TournamentParticipantsTab and TournamentTab
- Simplified the filtering logic for club members in TournamentParticipantsTab by removing redundant checks, as the parent component already handles class-based filtering.
- Updated the clubMembersForParticipantAdd method in TournamentTab to clarify conditions for returning all members, ensuring consistency in participant eligibility checks.
2026-01-30 23:23:31 +01:00
Torsten Schulz (local)
3e05bdab51 fix(tournament): correct comment typo in addTournament method
- Fixed a typo in the comment for the addTournament method, ensuring clarity in the code documentation.
2026-01-30 23:22:35 +01:00
Torsten Schulz (local)
fde6ba55d2 feat(tournament): enable external participation in tournaments
- Updated tournamentService to allow external participants by setting allowsExternal to true.
- Adjusted frontend TournamentTab component to reflect the change, enabling external participation for mini championships.
2026-01-30 23:21:12 +01:00
Torsten Schulz (local)
19410a0ee2 feat(tournament): enhance age class display in TournamentClassList
- Updated the age class badge logic to display both minimum and maximum birth years when applicable, improving clarity for tournament participants.
- Added conditional rendering for cases where only minimum or maximum birth years are defined, ensuring comprehensive age class information is presented.
2026-01-30 23:18:36 +01:00
Torsten Schulz (local)
28db204aba refactor(tournament): simplify tournament creation by removing duplicate checks
- Removed duplicate tournament existence checks from the addTournament method, streamlining the tournament creation process.
- Enhanced error handling to provide clearer messages related to database migration requirements for mini championships.
2026-01-30 23:16:00 +01:00
Torsten Schulz (local)
47a815dd71 feat(tournament): enhance tournament creation with group settings and winning sets logic
- Updated the tournamentService to set default values for tournament type, number of groups, and advancing participants for group tournaments.
- Adjusted the frontend logic to dynamically determine the number of winning sets based on the mini championship year, ensuring proper configuration for tournaments.
2026-01-30 23:12:44 +01:00
Torsten Schulz (local)
14dc654145 feat(tournament): refine mini championship creation and UI integration
- Updated the addMiniChampionship method to default winning sets to 1 and added transaction handling for improved reliability.
- Enhanced frontend components to include a new property for mini championship identification, ensuring proper configuration in the UI.
- Adjusted the display logic in TournamentConfigTab to conditionally render stage configuration based on the mini championship type.
2026-01-30 23:09:21 +01:00
Torsten Schulz (local)
025ad68cf3 feat(tournament): adjust mini championship year label and winning sets logic
- Updated the German localization for the mini championship year label to simplify the text.
- Introduced a new reactive property to dynamically set the number of winning sets based on the mini championship type, defaulting to 1 for mini championships.
2026-01-30 23:03:50 +01:00
Torsten Schulz (local)
89f30f76f5 feat(tournament): update mini championship creation to include location
- Modified addMiniChampionship method to accept location (ort) instead of tournament name.
- Updated frontend components to reflect the change, including new input for location and localization updates for German language support.
- Enhanced validation to ensure location is provided during mini championship creation.
2026-01-30 23:01:41 +01:00
Torsten Schulz (local)
85c26bc80d feat(tournament): add mini championship functionality and enhance tournament class handling
- Introduced addMiniChampionship method in tournamentService to create tournaments with predefined classes for mini championships.
- Updated getTournaments method to filter tournaments based on type, including support for mini championships.
- Enhanced TournamentClass model to include maxBirthYear for age class restrictions.
- Modified tournamentController and tournamentRoutes to support new mini championship endpoint.
- Updated frontend components to manage mini championship creation and display, including localization for new terms.
2026-01-30 22:58:41 +01:00
Torsten Schulz (local)
6cdcbfe0db feat(tournament): enhance tournament group handling for pools and classes
- Updated TournamentService to manage participant class IDs more effectively in pooled groups, ensuring accurate statistics and match handling.
- Refactored TournamentGroupsTab and TournamentPlacementsTab components to utilize a new method for retrieving group rankings based on class ID, improving data organization.
- Adjusted getLivePosition method to accommodate group objects, enhancing flexibility in live match updates.
- Improved group ranking logic to support multiple entries per group and class, ensuring accurate display of tournament standings.
2026-01-30 22:51:04 +01:00
Torsten Schulz (local)
7e1b09fa97 feat(tournament): add participant gave-up functionality and UI updates
- Implemented setParticipantGaveUp and setExternalParticipantGaveUp methods in tournamentController to handle participant resignation.
- Updated ExternalTournamentParticipant and TournamentMember models to include a gaveUp field for tracking resignation status.
- Enhanced tournamentRoutes to include new endpoints for updating gave-up status.
- Modified TournamentGroupsTab and TournamentParticipantsTab components to display and manage gave-up status visually.
- Added localization strings for "gave up" and related hints in German.
- Updated TournamentResultsTab to reflect gave-up status in match results.
2026-01-30 22:45:54 +01:00
Torsten Schulz (local)
18a191f686 fix(tournament): improve match identification logic for player IDs
- Updated the getMatchLiveResult and handleMatchClick methods to handle potential null values for player IDs, ensuring robust match identification.
- Refactored ID retrieval logic to use optional chaining and fallback values, enhancing code readability and preventing errors when player data is incomplete.
2026-01-30 22:32:47 +01:00
Torsten Schulz (local)
e21b50fc38 fix(accidentForm): update sorting logic to prioritize first name over last name
- Modified the availableMembers computed property to sort filtered members alphabetically by first name first, followed by last name, ensuring a more intuitive display order.
- Updated logging to reflect the new sorting format in the output.
2026-01-14 14:27:27 +01:00
Torsten Schulz (local)
23caeddf9e fix(accidentForm): improve member sorting and add key for reactivity
- Added a unique key to the member selection dropdown to enhance reactivity.
- Updated the sorting logic in availableMembers to trim whitespace and use locale-sensitive comparison, ensuring accurate alphabetical ordering of members.
2026-01-14 14:10:50 +01:00
Torsten Schulz (local)
663125670e fix(accidentForm): prevent reactivity issues by creating a new sorted array
- Modified the sorting logic in AccidentFormDialog to create a new array from the filtered members, addressing potential reactivity problems during sorting.
2026-01-14 14:07:27 +01:00
Torsten Schulz (local)
515e04d1e3 feat(accident): update accident field type and enhance textarea styling
- Changed the accident field type from STRING to TEXT in the Accident model to accommodate larger input.
- Increased the minimum height of the textarea in AccidentFormDialog and added font styling for improved readability.
2026-01-14 14:00:42 +01:00
Torsten Schulz (local)
bf082ea995 chore(deps): update dependencies and remove unused files
- Updated package-lock.json and .package-lock.json to reflect new dependency versions, including body-parser and express.
- Removed deprecated SECURITY.md files from body-parser and raw-body.
- Cleaned up unused files from call-bind and define-data-property modules.
- Enhanced the qs package with fixes and improvements in parsing and stringifying functionality.
- Updated nodemailer to improve handling of SMTP connections and added support for new TLS extensions.
2026-01-14 13:56:19 +01:00
Torsten Schulz (local)
67fc5d45e1 feat(accidentForm): enhance member selection and update handling
- Updated the member selection dropdown to use v-model for better data binding and added a change handler for memberId updates.
- Improved the availableMembers computed property with additional logging for debugging and ensured it returns sorted members.
- Enhanced watchers for localAccident to emit updates only on relevant changes, optimizing performance and preventing unnecessary emissions.
- Added logging to various methods for better traceability during form interactions.
2026-01-14 13:46:13 +01:00
Torsten Schulz (local)
30e3f4f321 feat(accidentForm): sort filtered participants by last and first name
- Enhanced the availableMembers computed property to sort filtered members alphabetically by last name and then by first name, improving the organization of participant lists.
2026-01-14 13:42:54 +01:00
Torsten Schulz (local)
c4e237cfca fix(accidentForm): optimize participant filtering and update localAccident handling
- Improved availableMembers computed property to handle participant IDs more robustly, ensuring correct filtering of members.
- Enhanced watch on accident to prevent unnecessary updates to localAccident, avoiding potential infinite loops.
- Refined localAccident watchers to emit updates only on relevant changes to memberId and accident text, improving performance and reducing redundant emissions.
2026-01-14 13:41:48 +01:00
Torsten Schulz (local)
fea84e210a feat(tournament): implement class merging and pool management features
- Added mergeClassesIntoPool and resetPool functions in tournamentService to handle merging classes into a common pool and resetting pool assignments.
- Introduced new API routes for merging and resetting pools in tournamentRoutes.
- Enhanced TournamentGroupsTab component with UI for merging classes, including selection for source and target classes, strategy options, and out-of-competition settings.
- Updated localization files to include new strings related to class merging functionality.
- Modified TournamentTab to handle merge pool events and manage API interactions for merging classes.
2026-01-07 12:10:33 +01:00
Torsten Schulz (local)
e94a12cd20 feat(tournament): enhance match interaction and navigation
- Refactored match highlighting logic in TournamentGroupsTab to use a dedicated handleMatchClick method for better readability and functionality.
- Added a new event emission for navigating to match results in TournamentResultsTab, allowing users to seamlessly transition to the results view.
- Implemented styling for match states in TournamentResultsTab to visually distinguish between finished, live, and active matches, improving user experience.
2025-12-21 11:40:17 +01:00
438029a3a4 Merge pull request 'chore(deps): update dependency eslint to v9.39.2' (#3) from renovate/eslint-monorepo into main
Reviewed-on: #3
2025-12-19 16:15:43 +01:00
c58491c97a Merge pull request 'chore(deps): update dependency @vitejs/plugin-vue to v6.0.3' (#2) from renovate/vitejs-plugin-vue-6.x-lockfile into main
Reviewed-on: #2
2025-12-19 16:15:34 +01:00
1d9b9dbc45 chore(deps): update dependency eslint to v9.39.2 2025-12-19 16:13:52 +01:00
dc791dc33d chore(deps): update dependency @vitejs/plugin-vue to v6.0.3 2025-12-19 16:13:48 +01:00
57fbbff353 Merge pull request 'chore: Configure Renovate' (#1) from renovate/configure into main
Reviewed-on: #1
2025-12-19 16:08:23 +01:00
b00a35af30 Add renovate.json 2025-12-19 15:59:45 +01:00
Torsten Schulz (local)
dd0f29124c feat(tournament): add player details dialog and enhance player name interactions
- Implemented clickable player names in the TournamentPlacementsTab for improved user experience.
- Added a PlayerDetailsDialog component to display detailed player information when names are clicked.
- Updated localization files to include new strings for player details.
- Enhanced data handling for internal and external participants in player dialog logic.
2025-12-17 14:31:36 +01:00
Torsten Schulz (local)
dc084806ab feat(tournament): add group match creation and enhance match handling
- Implemented createGroupMatches function to generate matches for existing groups without altering group assignments.
- Updated resetMatches function to support optional class filtering when resetting group matches.
- Enhanced frontend components to filter and display group matches based on selected class, improving user experience.
- Adjusted tournament results display to reflect accurate match statistics, including wins and losses.
2025-12-17 13:38:40 +01:00
Torsten Schulz (local)
4b4c48a50f feat(tournament): refine external participant handling in match assignments
- Updated logic to replace null player1 and player2 with external participants, ensuring that the assigned objects do not include the member field.
- Created clean player objects for external participants, maintaining essential attributes while omitting sensitive information.
2025-12-17 08:52:38 +01:00
Torsten Schulz (local)
65acc9e0d5 feat(tournament): enhance validation of tournament members and external participants
- Implemented logic to load and validate TournamentMember and ExternalTournamentParticipant IDs for matches.
- Updated checks to set player1 and player2 to null if they belong to external participants or do not match valid tournament members.
2025-12-17 08:50:05 +01:00
Torsten Schulz (local)
13cd55c051 feat(tournament): validate tournament members and load external participants
- Added logic to check if loaded TournamentMembers belong to the current tournament, setting them to null if not.
- Updated filtering for external participant IDs to ensure only valid IDs are processed for matches with null players.
2025-12-17 08:45:52 +01:00
Torsten Schulz (local)
9bf37399d5 feat(tournament): improve result handling and display for matches and participants 2025-12-15 21:08:38 +01:00
Torsten Schulz (local)
047b1801b3 feat(tournament): enhance tournament configuration and results handling
- Updated TournamentConfigTab.vue to conditionally disable target type selection based on final stage type.
- Improved logic for determining target type and group count based on stage configuration.
- Refactored TournamentPlacementsTab.vue to streamline class and group placements display, including better handling of class visibility and player names.
- Enhanced TournamentResultsTab.vue to handle 'BYE' results and limit displayed entries to top three.
- Modified TournamentTab.vue to robustly determine match winners and losers, including handling 'BYE' scenarios and ensuring accurate knockout progression.
- Added logic to reset knockout matches with optional class filtering.
2025-12-15 15:36:18 +01:00
Torsten Schulz (local)
945ec0d48c feat(tournament): implement multi-stage tournament support with intermediate and final stages
- Added backend controller for tournament stages with endpoints to get, upsert, and advance stages.
- Created database migration for new tables: tournament_stage and tournament_stage_advancement.
- Updated models for TournamentStage and TournamentStageAdvancement.
- Enhanced frontend components to manage tournament stages, including configuration for intermediate and final rounds.
- Implemented logic for saving and advancing tournament stages, including handling of pool rules and third place matches.
- Added error handling and loading states in the frontend for better user experience.
2025-12-14 06:46:00 +01:00
Torsten Schulz (local)
e83bc250a8 Erlaube das Hinzufügen von Teilnehmern ohne Klasse und normalisiere die Anzahl der Gruppen auf mindestens 1 in der Turnierverwaltung 2025-12-13 12:25:17 +01:00
Torsten Schulz (local)
0c28b12978 Enhance HTTPS server setup and logging for Socket.IO
- Added detailed logging for SSL certificate loading and server status checks.
- Implemented error handling for port conflicts, providing guidance on resolving issues.
- Introduced a verification step to confirm server activation after startup.
- Improved fallback behavior for Socket.IO when SSL certificates are not found.
2025-12-01 08:43:31 +01:00
Torsten Schulz (local)
5aa11151cf Improve Socket.IO logging and connection handling
- Enhanced logging during WebSocket upgrade attempts by including specific headers for better debugging.
- Updated frontend socket service to allow forced upgrade attempts after successful polling connections, improving connection reliability.
2025-12-01 08:14:26 +01:00
Torsten Schulz (local)
a651113dee Enhance Socket.IO integration and improve error handling
- Updated CORS configuration for Socket.IO to allow all origins and added specific allowed headers.
- Improved error handling for Socket.IO connections, including detailed logging for connection errors and upgrade attempts.
- Implemented cleanup logic for socket connections during page reloads to prevent stale connections.
- Enhanced reconnection logic with unlimited attempts and improved logging for connection status.
- Updated frontend socket service to manage club room joining and leaving more effectively, with better state handling.
- Configured Vite for improved hot module replacement (HMR) settings to support local development.
2025-11-29 00:52:29 +01:00
Torsten Schulz (local)
bf0d5b0935 Refactor TournamentPlacementsTab to use groupedRankingList and improve final placements display
- Updated the final placements logic to utilize groupedRankingList for better performance and accuracy.
- Enhanced the display of class placements, including handling cases for entries without a class.
- Improved the no placements message condition to reflect the new data structure.
- Added a new computed method to retrieve player names from entry objects, enhancing clarity in the UI.
2025-11-29 00:28:47 +01:00
Torsten Schulz (local)
6acdcfa5c3 Add placements tab and localization support in TournamentTab
- Introduced a new tab for displaying tournament placements in the TournamentTab component.
- Added localization entries for placements in the German language JSON file, enhancing the user interface for German-speaking users.
- Updated the component structure to include the new TournamentPlacementsTab and ensure proper rendering based on the active tab.
2025-11-29 00:23:34 +01:00
Torsten Schulz (local)
dc2c60cefe Implement tournament pairing functionality and enhance participant management
- Introduced new endpoints for managing tournament pairings, including creating, updating, and deleting pairings.
- Updated the tournament service to handle pairing logic, ensuring validation for participants and preventing duplicate pairings.
- Enhanced participant management by adding class-based checks for gender and age restrictions when adding participants.
- Updated the tournament controller and routes to support the new pairing features and improved participant handling.
- Added localization support for new UI elements related to pairings in the frontend, enhancing user experience.
2025-11-29 00:15:01 +01:00
Torsten Schulz (local)
bdbbb88be9 Enhance MemberGalleryDialog to manage initial load state for gallery members. Introduce isInitialLoad flag to control gallery member loading behavior, ensuring size updates only occur on the first load. Reset isInitialLoad on dialog close for consistent state management. 2025-11-26 17:15:42 +01:00