97 Commits

Author SHA1 Message Date
Torsten Schulz (local)
e55ee0f88a style(App): update navigation icons for improved clarity
- Replaced navigation icons in App.vue to better represent their respective sections, enhancing user experience and visual consistency.
2026-03-20 10:53:58 +01:00
Torsten Schulz (local)
128b13c679 style(App): add padding adjustment for collapsed sidebar
- Introduced a new CSS rule to add top padding to the sidebar content when the sidebar is collapsed, improving layout consistency and visual appearance.
2026-03-20 10:43:23 +01:00
Torsten Schulz (local)
65d464eab9 style(App, ScheduleLayoutShell, ScheduleView): enhance layout for full-height routes
- Updated App.vue to conditionally apply full-height styles based on the current route.
- Modified ScheduleLayoutShell.vue to ensure proper height and overflow handling for better layout consistency.
- Adjusted ScheduleView.vue to support full-height content display, improving user experience on specific routes.
2026-03-20 10:40:42 +01:00
Torsten Schulz (local)
5a9e5913a6 style(DiaryParticipantsPanel, Home): enhance layout and responsiveness
- Added horizontal overflow to the diary sidebar for better content management.
- Updated participant row layout to use CSS grid for improved alignment and spacing.
- Adjusted participant name styling to prevent overflow and ensure text is truncated with ellipsis.
- Introduced new authentication action buttons in Home.vue for better user access to registration and login.
- Enhanced mobile responsiveness of the Home view with updated flex and grid properties.
2026-03-20 10:33:38 +01:00
Torsten Schulz (local)
80f8934bc8 style(ScheduleView): improve table responsiveness and layout
- Added minimum widths to player selection table and player name for better layout consistency.
- Adjusted checkbox cell width and added minimum width for improved alignment.
- Enhanced mobile responsiveness with media queries for table padding and minimum widths, ensuring a better user experience on smaller screens.
2026-03-20 10:27:21 +01:00
Torsten Schulz (local)
36690980b7 feat(ViteConfig, App, Router, DialogManager, MembersView, ScheduleView, ClubView, Home, TournamentsView, TrainingStatsView): enhance performance and responsiveness
- Updated Vite configuration to improve chunking strategy and set a chunk size warning limit.
- Refactored App.vue and DialogManager.vue to utilize async component loading for better performance.
- Modified router.js to implement lazy loading for various views, optimizing initial load times.
- Enhanced MembersView, ScheduleView, ClubView, and TournamentsView with responsive design adjustments for improved mobile usability.
- Improved styling and layout in Home.vue and TrainingStatsView to enhance user experience across different screen sizes.
2026-03-20 10:20:48 +01:00
Torsten Schulz (local)
cc6d1f6ebe feat(App, ScheduleView): implement mobile club picker and location dialog
- Added a mobile club picker dialog to enhance club selection on mobile devices, allowing users to select or create a club easily.
- Introduced a location dialog in ScheduleView to display match location details, improving user experience when viewing schedules.
- Updated internationalization files to include new translation keys for mobile club picker hints and location information.
- Enhanced responsive design in various components to ensure a seamless experience across different viewport sizes.
2026-03-20 10:02:38 +01:00
Torsten Schulz (local)
cbc5054f1f feat(i18n, CourtDrawingTool, MembersOverviewSection): enhance internationalization and UI components
- Added new i18n keys for improved translations in the CourtDrawingTool and MembersOverviewSection components.
- Updated CourtDrawingTool to utilize translation keys for various UI elements, enhancing user experience and accessibility.
- Enhanced MembersOverviewSection with translation support for search and filter functionalities, improving usability for non-German speakers.
- Introduced new scripts in package.json for i18n auditing and status checking, streamlining localization management.
2026-03-20 09:05:15 +01:00
Torsten Schulz (local)
542d741428 feat(MembersOverview, MembersView): add training group filtering and display enhancements
- Introduced a new training group filter in MembersOverviewSection for improved member management.
- Updated MembersView to support the new training group selection and display last training date for members.
- Enhanced computed properties to dynamically generate training group options based on member data.
- Improved filtering logic to include selected training group, refining member search capabilities.
2026-03-19 16:10:39 +01:00
Torsten Schulz (local)
9d01ab6ce1 feat(App): enhance club selection and routing logic
- Updated the club selection dropdown to trigger a method on change, improving user interaction.
- Removed the load club button, streamlining the selection process.
- Introduced a computed property for view reloading based on the current club and route.
- Refactored club selection handling to ensure proper routing when selecting a new club or creating one.
2026-03-18 22:03:45 +01:00
Torsten Schulz (local)
269f648ad7 feat(CourtDrawing): enhance CourtDrawingDialog and CourtDrawingTool components
- Updated CourtDrawingDialog to improve layout and responsiveness, including a new drawing dialog body structure and styling adjustments.
- Enhanced CourtDrawingTool with a comprehensive exercise selection workflow, allowing users to configure exercises with detailed options for start positions, strokes, and targets.
- Introduced new UI elements for better user interaction and streamlined the process of adding additional strokes.
- Improved overall styling for a more cohesive and user-friendly experience.
2026-03-18 21:50:31 +01:00
Torsten Schulz (local)
76cc8d9c30 feat(MembersView, i18n): add 'activeDataIncomplete' scope and update member filtering
- Introduced a new translation key for 'activeDataIncomplete' in the German locale.
- Updated MembersView to include filtering for members with active status but incomplete data, enhancing member management capabilities.
2026-03-18 21:17:25 +01:00
Torsten Schulz (local)
b13d33c72c feat(TrainingStatsService, MembersView, TrainingStatsView): enhance training statistics and member management features
- Added new functions in TrainingStatsService to calculate monthly trends and member distribution based on training participation.
- Updated MembersView to improve the display of training groups and address potential data entry issues with visual hints.
- Enhanced TrainingStatsView with new filters for weekdays and training groups, and improved the layout for displaying training statistics, including average participation and attendance rates.
- Introduced additional statistics panels for better insights into training performance and member engagement.
2026-03-18 21:07:52 +01:00
Torsten Schulz (local)
dc15b48b80 refactor(App, Router, Login): streamline authentication flow and enhance route management
- Replaced manual logout handling in App.vue with a dedicated logout method for cleaner code.
- Updated router.js to add public meta properties to several routes, improving route access management.
- Implemented a global navigation guard to redirect unauthenticated users to the login page when accessing protected routes.
- Modified the login process in Login.vue to support redirecting users back to their intended destination after successful login.
2026-03-18 18:20:28 +01:00
Torsten Schulz (local)
c441d4a049 feat(Home): enhance SEO content and layout for improved user engagement
- Added a new SEO-focused section introducing the Vereinssoftware for Tischtennisvereine, detailing its features and benefits.
- Included multiple search topic articles to highlight key functionalities such as member management, training planning, and tournament organization.
- Updated styles for the new sections to ensure a responsive and visually appealing layout.
- Enhanced the SEO copy to clarify the software's relevance in search results, targeting specific user queries.
2026-03-18 18:16:11 +01:00
Torsten Schulz (local)
f94914703a feat(SEO): implement SEO configuration and meta tag management
- Added SEO defaults and route-specific configurations for improved search engine visibility.
- Introduced functions to normalize paths and retrieve SEO settings based on the current route.
- Enhanced server-side rendering to dynamically update meta tags for title, description, and robots directives.
- Created a utility for managing SEO-related meta and link tags in the frontend, ensuring consistent application of SEO practices across routes.
- Updated sitemap with new last modification dates and removed outdated entries for better search engine indexing.
2026-03-18 18:15:01 +01:00
Torsten Schulz (local)
0bb636b91d style(DiaryParticipantsPanel, DiaryView): enhance responsive design and layout
- Updated styles in DiaryParticipantsPanel to improve participant row layout and ensure proper word breaking for names.
- Adjusted styles in DiaryView for better mobile responsiveness, including changes to column display and sidebar padding.
- Ensured consistent minimum width settings across components to enhance overall UI coherence.
2026-03-18 18:09:59 +01:00
Torsten Schulz (local)
bf40927efb refactor(MembersOverviewSection): simplify layout and enhance filtering options
- Removed unnecessary subtitle and member statistics display for a cleaner interface.
- Introduced a collapsible section for advanced filters, improving user experience by organizing search and filter options.
- Maintained existing functionality while enhancing the overall layout and accessibility of member filtering features.
2026-03-18 18:07:01 +01:00
Torsten Schulz (local)
9340ee3509 feat(MemberService, SchedulerService): implement inactive member cleanup functionality
- Added a new method in MemberService to clean up inactive members who haven't trained in the last specified days, enhancing data management.
- Integrated the cleanup method into SchedulerService to run automatically via a scheduled job, improving system maintenance.
- Updated the MembersView to reflect changes in member data, ensuring a consistent user experience.
2026-03-18 18:03:15 +01:00
Torsten Schulz (local)
eea3372057 feat(MembersOverviewSection, MembersView): add age range filter and enhance member scope display
- Introduced age range inputs in the MembersOverviewSection for filtering members by age, allowing users to specify a minimum and maximum age.
- Updated the MembersView to handle new age range properties and emit corresponding updates.
- Enhanced the display of member scope chips by separating label and count for improved readability and styling.
- Refactored related components to ensure consistent functionality and styling across the application.
2026-03-18 17:10:37 +01:00
Torsten Schulz (local)
563a7e8dde feat(MemberTtrHistory): implement TTR history management and UI enhancements
- Added new endpoints in the member controller for retrieving and refreshing TTR history.
- Integrated TTR history functionality into the member service, allowing for seamless data retrieval and updates.
- Updated the member model to include a field for TTR history player ID, enhancing data tracking.
- Enhanced the MembersView to display TTR history with a dedicated dialog for better user interaction.
- Improved the MyTischtennisClient to support fetching historical player IDs, enriching the data provided to users.
- Refactored various components to ensure consistent styling and functionality across the application.
2026-03-18 15:34:10 +01:00
Torsten Schulz (local)
79adad9564 feat(audit, frontend, backend): introduce audit scripts and enhance error handling
- Added new npm scripts for auditing frontend size and inline TODOs, improving code quality management.
- Enhanced error handling in the `nuscoreApiRoutes` to return specific validation error statuses, improving API response clarity.
- Updated SQL migration documentation to establish a clear process for manual migrations and ensure backward compatibility.
- Refactored various components to align with new design standards, enhancing UI consistency across the application.
2026-03-18 11:23:03 +01:00
Torsten Schulz (local)
b7b40f5a9b refactor(MembersView, TeamManagementView, ScheduleView, OPTIMIZATION_TODO): componentize views and update optimization tasks
- Completed the componentization of `MembersView`, `TeamManagementView`, and `ScheduleView` to improve maintainability and reduce file sizes.
- Extracted specific sections into dedicated components, enhancing the focus on core functionalities within each view.
- Updated the optimization documentation to reflect the completion of these tasks, ensuring clarity on the current state of the project.
2026-03-17 16:46:33 +01:00
Torsten Schulz (local)
414c5ccee5 refactor(autoFetchMatchResultsService, MYTISCHTENNIS_AUTO_FETCH_README.md, Optimization TODO): enhance data processing and documentation
- Refactored the `autoFetchMatchResultsService` to separate single and double player statistics processing into distinct methods, improving code clarity and maintainability.
- Updated the README to reflect the current status of rating updates and match results, marking them as active and detailing their functionalities.
- Closed several TODOs in the optimization documentation, confirming the implementation of previously outlined tasks and ensuring no open inline TODOs remain in the main views.
2026-03-17 16:04:10 +01:00
Torsten Schulz (local)
6320c5ca72 feat(DialogExamples, DiaryParticipantsPanel, ImageViewerDialog, MatchReportApiDialog, MemberGalleryDialog, LogsView, TeamManagementView, TournamentTab, i18n): enhance UI components and localization
- Updated various UI components to improve styling and user experience, including DialogExamples, DiaryParticipantsPanel, ImageViewerDialog, and MatchReportApiDialog.
- Introduced new participant status filter in DiaryParticipantsPanel, allowing for 'excused' status.
- Enhanced image upload section in ImageViewerDialog with improved layout and styling.
- Refactored MatchReportApiDialog to streamline pin input handling and feedback mechanisms.
- Added functionality to filter members in MemberGalleryDialog based on a new `shouldShowMember` prop.
- Improved styling in LogsView for better readability and user interaction.
- Refactored TeamManagementView to utilize a new TeamListCard component for better code organization and maintainability.
- Updated TournamentTab to enhance the tournament workspace header with improved data display and interaction.
- Expanded localization files to include new keys for participant status and other UI elements, enhancing accessibility for users in both English and German.
2026-03-17 16:00:30 +01:00
Torsten Schulz (local)
483d5d2bc7 feat(ParticipantController, ParticipantModel, ParticipantRoutes, DiaryParticipantsPanel, i18n): implement participant status management and UI updates
- Added functionality to update participant attendance status, allowing for 'excused' and 'cancelled' states.
- Enhanced the participant model to include a default attendance status and validation for status values.
- Updated participant routes to support status updates and integrated new status handling in the participant controller.
- Modified the DiaryParticipantsPanel to visually indicate participant status and added a toggle for changing status.
- Expanded localization files to include new keys for participant status, improving accessibility for users in both English and German.
2026-03-17 15:23:35 +01:00
Torsten Schulz (local)
46812a0c14 fix(DiaryView): improve drag-and-drop item reordering logic
- Updated the drag-and-drop functionality to correctly handle item indices during reordering, ensuring accurate updates to the training plan.
- Enhanced error handling by loading the training plan after a successful reorder, improving user experience and stability.
2026-03-17 14:54:47 +01:00
Torsten Schulz (local)
1c1f05400f feat(DiaryView): enhance drag-and-drop functionality for training plan items
- Added a new class for sortable rows in the training plan table, improving the drag-and-drop experience.
- Updated the sortable initialization to target the new class, ensuring proper item handling during reordering.
- Implemented a check in the drag end event to prevent errors when no item is moved, enhancing stability.
2026-03-17 14:47:57 +01:00
Torsten Schulz (local)
c325a5a4d6 feat(CourtDrawingDialog, DiaryView): conditionally display duration fields in diary entries
- Updated the CourtDrawingDialog to conditionally render duration input fields based on the new `showDurationFields` property, enhancing user experience.
- Modified the DiaryView to pass the `show-duration-fields` prop, ensuring proper integration with the updated dialog functionality.
- Improved the overall logic for displaying diary fields, allowing for more dynamic user interactions.
2026-03-17 14:34:10 +01:00
Torsten Schulz (local)
b16743d27d feat(CourtDrawingDialog, DiaryView, i18n): add diary fields for duration and group selection
- Introduced new diary fields in the CourtDrawingDialog for inputting duration as text and minutes, along with a group selection dropdown.
- Implemented logic to calculate duration from text input, enhancing user experience in managing diary entries.
- Updated the DiaryView to support the new diary fields, ensuring proper data handling and integration with existing functionalities.
- Expanded localization files for English and German to include new keys related to the diary fields, improving accessibility for users.
2026-03-17 14:26:47 +01:00
Torsten Schulz (local)
afe51f399c feat(Scheduler, MatchService, PredefinedActivity): enhance scheduling and match fetching features
- Added new scheduler routes to manage scheduling functionalities.
- Updated match fetching logic to include a scope parameter for more flexible data retrieval.
- Introduced a new field `excludeFromStats` in the PredefinedActivity model to manage activity visibility in statistics.
- Enhanced the diary date activity controller to handle predefined activities, improving activity management.
- Refactored various services to support new features and improve overall data handling.
2026-03-17 14:10:35 +01:00
Torsten Schulz (local)
f1cfd1147d feat(TeamManagementView, i18n): enhance team management interface and localization
- Added new summary cards to display team statistics, including total teams, fully configured, partially configured, and teams without leagues.
- Implemented search and filter functionality for teams, improving user navigation and management.
- Expanded German localization file with new keys for team management features, enhancing the experience for German-speaking users.
- Updated the layout for automatic job information, improving clarity and user interaction.
2026-03-17 09:04:45 +01:00
Torsten Schulz (local)
44b2b9fdbf feat(DiaryParticipantsPanel): add gallery button and loading state
- Introduced a new button in the DiaryParticipantsPanel for opening the gallery, with a loading state to indicate when the gallery is being created.
- Added a new `galleryLoading` property to manage the button's disabled state and text dynamically.
- Enhanced the layout of the participant toolbar for better user experience.
2026-03-17 00:30:42 +01:00
Torsten Schulz (local)
d0b6e6f0ac feat(DiaryView, i18n): improve diary overview with new readiness indicators and localization updates
- Refactored the DiaryView to implement a tabbed overview for training day, details, and groups, enhancing user navigation.
- Added a readiness panel to display the status of training day elements, including training window, participants, and open plan items.
- Expanded the German localization file with new keys for readiness indicators and checklist items, improving the experience for German-speaking users.
2026-03-17 00:28:36 +01:00
Torsten Schulz (local)
bf770291f6 feat(DiaryView, i18n): enhance diary view with new training day features and localization updates
- Added new sections in the DiaryView for displaying active training day details, including training window, participants, and free activities.
- Implemented toggle functionality for displaying training day and group details, improving user interaction.
- Expanded German localization file with new keys and translations related to training days, groups, and activities, enhancing the user experience for German-speaking users.
2026-03-17 00:16:19 +01:00
Torsten Schulz (local)
2347dccafe feat(memberTransferService, trainingStatsService, i18n): enhance member transfer logic and update localization files
- Updated the member transfer service to only load active members with `testMembership = false`, improving data accuracy during transfers.
- Introduced new functions in the training stats service to count missed training weeks, enhancing training participation tracking.
- Expanded localization files for multiple languages, adding new keys and translations for member management features, improving user experience across the application.
2026-03-16 23:42:28 +01:00
Torsten Schulz (local)
43f96b2491 feat(tournamentService): add validation for stage advancements and enhance tournament configuration
- Implemented a new function `validateStageAdvancements` to ensure the integrity of stage advancements in tournaments, including checks for valid indices, types, and configurations.
- Enhanced the `isGroupAdvancementReady` function to verify group readiness based on match completion and participant positions.
- Updated the tournament management interface to include new validation logic, improving the overall robustness of tournament setup.
- Refactored tournament-related components to improve user experience and ensure accurate data handling across the application.
2026-03-16 22:17:37 +01:00
Torsten Schulz (local)
e1dccb6ff0 feat(OfficialTournaments): redesign tournament management interface
- Introduced a new admin panel for importing tournaments via PDF upload, enhancing user experience for tournament management.
- Reorganized the layout to include tabs for events and participations, improving navigation and accessibility of tournament data.
- Updated event listing with options to edit and delete tournaments, streamlining tournament management tasks.
- Enhanced the visual presentation with clearer headers and descriptions for better user guidance.
2026-03-16 14:12:20 +01:00
Torsten Schulz (local)
adc8857e29 refactor(DiaryView): optimize time checking logic and sound playback
- Simplified the time checking logic for training start and end times, reducing redundancy.
- Introduced a mechanism to prevent repeated sound playback for the same activity marks.
- Enhanced sound playback functions to reset and play sounds more reliably, improving user experience during training sessions.
2026-03-13 17:04:48 +01:00
Torsten Schulz (local)
a030e07b46 refactor(clubSettings): remove myTischtennis club ID and update related logic
- Removed the myTischtennis club ID field from club settings and related backend logic.
- Updated the database migration to eliminate the my_tischtennis_club_id column.
- Adjusted frontend components and services to reflect the removal of the club ID, ensuring the use of association member number instead.
- Enhanced user interface hints to clarify the use of association member number for rankings.
2026-03-12 10:34:10 +01:00
Torsten Schulz (local)
ad09a45b17 feat(clubSettings): enhance club settings with myTischtennis integration
- Added new fields for myTischtennis club ID, federation nickname, and auto-fetch rankings in the club settings.
- Updated the backend to handle the new settings in the updateClubSettings method.
- Implemented automatic ranking updates for clubs based on the new settings in the autoUpdateRatingsService.
- Enhanced the frontend to support the new settings, including validation and user interface updates for better user experience.
2026-03-12 10:25:49 +01:00
Torsten Schulz (local)
595e2eb141 style(LogsView): update success log background color for scheduler runs
- Changed the background color for successful scheduler runs (status 200) from yellow to green for better visibility and user experience.
2026-03-12 10:15:59 +01:00
Torsten Schulz (local)
4251dd6989 feat(clickTtTournamentRegistrationService): add participant registration navigation steps
- Introduced additional steps to navigate to the participant registration section by clicking on 'Teilnehmeranmeldung'.
- Ensured the page waits for the DOM to load and dismisses consent overlays, improving user experience during the registration process.
2026-03-11 21:22:49 +01:00
Torsten Schulz (local)
dba290c1d4 feat(clickTtTournamentRegistrationService): enhance error handling and diagnostics for tournament registration
- Added detailed diagnostics to capture page content and URLs during registration failures, improving error reporting.
- Implemented a function to build a debug HTML path for saving page content, aiding in troubleshooting.
- Updated error handling to include relevant diagnostic information in error messages, enhancing clarity for users.
2026-03-11 21:16:23 +01:00
Torsten Schulz (local)
8776c01e47 refactor(clickTtTournamentRegistrationService): optimize tournament search and link retrieval logic
- Streamlined the tournament search process by caching the results page URL to avoid redundant searches.
- Enhanced the link retrieval mechanism to focus on table rows, improving accuracy in finding relevant tournament links.
- Updated scoring criteria for link selection to better prioritize relevant entries based on tournament and competition context.
2026-03-11 21:10:52 +01:00
Torsten Schulz (local)
fb39aa0e8b feat(clickTtTournamentRegistrationService): implement competition registration saving logic
- Added a new method `_saveCompetitionRegistration` to handle the saving of competition registrations, improving code organization and readability.
- Replaced direct calls to clickTtPlayerRegistrationService for saving with the new method, enhancing maintainability.
- Implemented error handling to verify successful registration and provide feedback if the registration confirmation is not displayed.
2026-03-11 21:00:52 +01:00
Torsten Schulz (local)
f49250e988 refactor(clickTtTournamentRegistrationService): improve link retrieval and scoring logic
- Updated link retrieval to target specific content areas, enhancing accuracy in finding tournament links.
- Added filters to exclude irrelevant links based on href patterns, improving the relevance of selected links.
- Enhanced scoring mechanism for link selection by incorporating additional criteria, ensuring better matching of tournament entries.
2026-03-11 20:58:59 +01:00
Torsten Schulz (local)
555e36ea39 feat(clickTtTournamentRegistrationService): enhance tournament title processing and link retrieval
- Added functions to tokenize tournament titles and generate a search profile, improving the accuracy of title matching.
- Updated the link retrieval logic to utilize the new title processing methods, enhancing the selection of tournament links based on normalized and tokenized title data.
- Improved scoring mechanism for link selection to prioritize relevant tournament entries, ensuring better user experience during registration.
2026-03-11 20:55:14 +01:00
Torsten Schulz (local)
2f82886ad6 feat(officialTournament): add auto-registration for tournament participants
- Implemented a new endpoint to automatically register participants for official tournaments using the Click-TT service.
- Added a corresponding method in the frontend to trigger the auto-registration process, enhancing user experience by simplifying participant management.
- Updated the official tournament controller and routes to support the new functionality.
2026-03-11 20:47:44 +01:00
Torsten Schulz (local)
36ed320893 feat(MembersView): add HTML support for info dialog details
- Introduced a new property `detailsHtml` to the info dialog for rendering HTML content.
- Added a new method `showInfoHtml` to display messages with HTML details.
- Updated the Click-TT application submission flow to utilize the new HTML details feature for improved user feedback.
2026-03-11 20:19:16 +01:00
Torsten Schulz (local)
9d13a2e211 refactor(clickTtPlayerRegistrationService): improve nationality selection logic
- Updated nationality selection to handle multiple selectors, enhancing flexibility in form filling.
- Added checks for 'WONoSelectionString' and specific values to improve validation during player registration.
- Streamlined the selection process by breaking out of the loop once a valid selection is made, improving efficiency.
2026-03-11 17:32:02 +01:00
Torsten Schulz (local)
7cb6b66971 refactor(clickTtPlayerRegistrationService, memberController): improve error handling and diagnostics
- Updated error response structure in memberController to include detailed information instead of a trace array, enhancing clarity for the client.
- Enhanced ClickTtPlayerRegistrationService to capture and return detailed information about the selected search result and last submission attempt, improving error diagnostics.
- Modified frontend to format and display the new detailed error information, providing better context for users during registration failures.
2026-03-11 17:25:15 +01:00
Torsten Schulz (local)
312a1d9d8a refactor(clickTtPlayerRegistrationService): enhance application search and link handling
- Introduced a new function to normalize comparable text for improved matching during application searches.
- Updated the _openApplicationAfterSearch method to accept member data, enhancing the accuracy of application link retrieval based on expected name and birth date.
- Improved error handling to provide clearer feedback when no matching application entry is found, ensuring better user guidance during the registration process.
2026-03-11 17:21:29 +01:00
Torsten Schulz (local)
bfd6068c5c refactor(clickTtPlayerRegistrationService): update nationality selection and gender handling
- Modified nationality selection logic to include an additional condition for 'WONoSelectionString' and a specific value '209', enhancing form validation.
- Updated gender mapping to exclude disabled options, improving the accuracy of gender selection during player registration.
2026-03-11 17:12:09 +01:00
Torsten Schulz (local)
ab466adde7 refactor(clickTtPlayerRegistrationService): enhance error diagnostics and HTML file handling
- Added directory creation for debug HTML file paths to ensure proper file generation during error handling.
- Improved diagnostics object to capture additional error context, including URL and sanitized body text, enhancing troubleshooting capabilities.
- Streamlined error handling to maintain partial diagnostics even when certain data retrieval fails, improving robustness in error reporting.
2026-03-11 17:04:49 +01:00
Torsten Schulz (local)
a77926838b refactor(clickTtPlayerRegistrationService): update debug HTML file path generation
- Modified the buildDebugHtmlPath function to use path.join for constructing the file path, ensuring compatibility across different operating systems.
- This change enhances the maintainability of the code by standardizing file path handling.
2026-03-11 16:42:23 +01:00
Torsten Schulz (local)
c0efd56c9c feat(clickTtPlayerRegistrationService): add debug HTML file generation for error diagnostics
- Introduced a new function to generate a timestamped HTML file containing the page content during error handling, improving diagnostics for failed registration attempts.
- Enhanced error reporting to include the path to the generated HTML file, providing better context for troubleshooting issues in the registration flow.
2026-03-11 16:37:08 +01:00
Torsten Schulz (local)
79cec02c1a refactor(clickTtPlayerRegistrationService): improve nationality and country selection logic
- Replaced direct option selection with a new method that selects options based on partial label matching, enhancing flexibility in form filling.
- Introduced the _selectOptionByLabelContains method to streamline the selection process for nationality and country fields, improving code maintainability.
2026-03-11 16:34:11 +01:00
Torsten Schulz (local)
c1cf903196 refactor(clickTtPlayerRegistrationService): enhance application form filling and consent handling
- Updated the _fillApplicationForm method to include trace logging and improved handling of form fields, ensuring all necessary data is filled correctly.
- Introduced a new method to check and fill empty fields, streamlining the form completion process.
- Added consent overlay dismissal to improve user experience during the registration flow.
2026-03-11 16:31:23 +01:00
Torsten Schulz (local)
6a18d4ce0f refactor(clickTtPlayerRegistrationService): enhance search form handling and error reporting
- Updated the _fillSearchForm method to include trace logging and improved error handling for missing search forms, ensuring better feedback during the registration process.
- Enhanced the _openApplicationEntry method to streamline application entry checks and improve error messaging for missing elements, contributing to a more robust registration flow.
2026-03-11 16:25:34 +01:00
Torsten Schulz (local)
cf376a8f68 refactor(clickTtPlayerRegistrationService): streamline application entry handling
- Replaced the method for ensuring application entry visibility with a more direct approach to open the application entry, improving code clarity and reducing complexity.
- Enhanced error handling to provide clearer feedback when the application entry cannot be found, ensuring better user guidance during the registration process.
2026-03-11 16:14:25 +01:00
Torsten Schulz (local)
5c9901209c feat(clubSettings): enhance club settings UI with loading and error handling
- Added loading and error states to the club settings view, improving user feedback during data retrieval.
- Introduced new translations for error messages in the German locale, enhancing localization support.
- Updated the save method to alert users when no club is selected, ensuring clarity in user actions.
2026-03-11 16:08:47 +01:00
Torsten Schulz (local)
8750ac6d65 fix(clickTtPlayerRegistrationService): improve error messaging for missing association member number
- Updated the club retrieval logic to include specific attributes, enhancing data accuracy.
- Enhanced error handling to provide detailed feedback when the association member number is missing, including the club name for better context.
2026-03-11 15:58:34 +01:00
Torsten Schulz (local)
2919ee3764 feat(clickTtPlayerRegistrationService): enhance registration flow with club context and error handling
- Integrated Club model to retrieve association member number during player registration, ensuring necessary data is available.
- Added methods to select club context and ensure application entry visibility, improving navigation within the Click-TT interface.
- Enhanced error handling for missing association member numbers, providing clearer feedback to users during the registration process.
- Updated consent overlay handling to streamline user interactions and improve automation in the registration flow.
2026-03-11 15:55:21 +01:00
Torsten Schulz (local)
7196fae28e feat(server, models, services, frontend): integrate Click-TT account functionality
- Added ClickTtAccount model and integrated it into the server and database synchronization processes.
- Updated ClickTtPlayerRegistrationService to utilize ClickTtAccount for user account management, enhancing the registration flow.
- Modified frontend components to include navigation to Click-TT account settings and updated routing to support the new account view.
- Improved error handling and user feedback in the registration process, ensuring clarity in account-related operations.
2026-03-11 15:47:58 +01:00
Torsten Schulz (local)
2ddb63b932 feat(clickTtPlayerRegistrationService): enhance login flow and consent handling
- Added a new constant for the Click-TT login URL to streamline navigation during the login process.
- Improved the login flow by directly navigating to the login URL if no direct login fields are found, enhancing user experience.
- Introduced a method to dismiss consent overlays, improving the automation of the registration process by handling consent banners effectively.
2026-03-11 15:36:24 +01:00
Torsten Schulz (local)
8fc754c235 feat(clickTtPlayerRegistrationService, MembersView): enhance Click-TT registration flow and UI feedback
- Replaced the abort confirmation flow with a new function to open the application after a search, improving user experience by directly navigating to the application.
- Updated error handling to provide clearer messages when a confirm dialog is encountered, enhancing traceability.
- Modified the MembersView to track application submission status and display detailed success/error messages, improving user feedback during the registration process.
- Introduced a new method to format and display trace details, aiding in debugging and user communication.
2026-03-11 15:31:37 +01:00
Torsten Schulz (local)
139d169fcc fix(clickTtHttpPageRoutes): improve inline confirm element handling and logging
- Updated the regex for matching inline confirm elements to enhance accuracy in capturing onclick attributes.
- Improved logging to include the full onclick value during inline confirm inspections, aiding in debugging.
- Adjusted the output format for inline confirm elements in logs to JSON for better readability and traceability.
2026-03-11 13:28:58 +01:00
Torsten Schulz (local)
de1382b57e feat(clickTtHttpPageRoutes): add inline confirm elements summarization and logging
- Introduced a new function to summarize inline confirm elements in HTML, capturing relevant attributes for better tracking of user interactions.
- Enhanced the proxy navigation script to log details of inline confirm elements, improving traceability during proxy interactions.
- Updated the existing functionality to ensure inline confirm elements are logged when present, contributing to better debugging and user experience.
2026-03-11 13:25:18 +01:00
Torsten Schulz (local)
08095ce22e feat(memberController, memberRoutes, MembersView): implement Click-TT player registration feature
- Added a new endpoint for Click-TT player registration in memberController, allowing submission of existing player applications.
- Integrated the new endpoint into memberRoutes for handling requests.
- Updated MembersView to include a button for initiating Click-TT registration, with user confirmation and loading state management.
- Enhanced UI feedback for registration status, improving user experience during the application process.
2026-03-11 13:17:59 +01:00
Torsten Schulz (local)
9c30cd181c feat(clickTtHttpPageRoutes): add inline confirm handling to proxy navigation script
- Introduced a new function to manage inline confirm dialogs, allowing user confirmation before proceeding with actions triggered by inline event handlers.
- Enhanced the proxy navigation script to prevent default actions if the inline confirm is not accepted, improving control over user interactions.
- Updated logging to capture confirmation dialog details for better traceability during proxy interactions.
2026-03-11 13:04:37 +01:00
Torsten Schulz (local)
c1f45b2b98 feat(server): add raw body parsing for multipart/form-data and application/octet-stream
- Implemented a new middleware to handle raw body parsing for specific content types, allowing for larger payloads up to 5mb.
- Enhanced form body serialization to support Buffer input, improving compatibility with various data formats during proxy interactions.
2026-03-11 12:45:25 +01:00
Torsten Schulz (local)
e5e1ccba82 feat(clickTtHttpPageRoutes): enhance form submission handling and logging
- Added logic to track the last submitter for forms, improving the accuracy of form data submissions.
- Implemented checks to append hidden fields for submitters without existing form fields, ensuring all relevant data is captured.
- Enhanced logging for form submissions to include submitter details, improving traceability and debugging capabilities during proxy interactions.
2026-03-11 12:37:01 +01:00
Torsten Schulz (local)
3ea9cdd611 feat(clickTtHttpPageRoutes): add sensitive data masking and form body summarization
- Introduced functions to mask sensitive values in form submissions and summarize form body data, enhancing security and logging capabilities.
- Updated the proxy POST route to log detailed information about submitted forms, including field counts and redacted values for sensitive keys.
- Enhanced error handling for URL-encoded body parsing, improving robustness in form data processing.
2026-03-11 12:25:45 +01:00
Torsten Schulz (local)
1398e8911a feat(clickTtHttpPageRoutes, ClickTtView): enhance script injection for improved HTML handling
- Added checks to inject the navigation script into the <head> or <body> of HTML responses, ensuring proper script placement for enhanced functionality.
- Updated ClickTtView to include a reference for the iframe, improving access to the iframe element for future interactions.
- Enhanced overall HTML processing during proxy interactions, contributing to a more robust user experience.
2026-03-11 00:06:42 +01:00
Torsten Schulz (local)
c40ee04e9e feat(clickTtHttpPageRoutes): add inline script normalization for improved HTML processing
- Introduced a new function, normalizeInlineScriptStrings, to standardize inline script content in HTML, ensuring proper handling of escape characters and line breaks.
- Updated the proxy GET and POST routes to utilize the new normalization function, enhancing the robustness of HTML processing during proxy interactions.
- Enhanced existing URL validation logic to include additional allowed domains, improving overall proxy functionality.
2026-03-10 23:33:40 +01:00
Torsten Schulz (local)
dee96a9445 feat(clickTtHttpPageRoutes): enhance HTML processing for proxy handling
- Introduced a new function, applyOutsideScriptTags, to safely transform HTML while preserving script tags, improving the handling of links, meta-refresh, and form actions.
- Updated existing functions to utilize the new transformation method, ensuring that proxy URLs are correctly applied without disrupting script execution.
- Enhanced error handling in HTML processing functions to maintain robustness during URL rewriting operations.
2026-03-10 23:18:45 +01:00
Torsten Schulz (local)
4484f122d2 feat(clickTtHttpPageRoutes): extend proxy URL validation to include liga.nu
- Added a new function, isAllowedProxyUrl, to validate URLs against an updated list of allowed domains, including liga.nu.
- Updated existing checks in the proxy GET and POST routes to utilize the new validation function, ensuring consistent error messaging for unsupported URLs.
- Enhanced error responses to reflect the inclusion of liga.nu in the allowed domains, improving user guidance during proxy interactions.
2026-03-10 23:06:46 +01:00
Torsten Schulz (local)
df95753f4d refactor(clickTtHttpPageRoutes): optimize proxy navigation script for improved readability and performance
- Refactored the proxy navigation script by restructuring the code into a more concise format using an array to build the script content, enhancing readability.
- Maintained the core functionality while ensuring compatibility with existing event handling and URL management logic.
2026-03-10 23:02:46 +01:00
Torsten Schulz (local)
79ce79db8c fix(clickTtHttpPageRoutes): improve event handling in proxy navigation script
- Added a check to prevent default actions if the event has already been prevented, ensuring better control over link navigation.
- Changed the event listener from capturing to bubbling phase to enhance compatibility with other event handlers in the document.
2026-03-10 22:57:06 +01:00
Torsten Schulz (local)
59d7c3559c feat(clickTtHttpPageRoutes, ClickTtView): implement proxy navigation script and enhance URL selection
- Added a new function to inject a navigation script into HTML responses, enabling seamless proxy navigation for links and form submissions.
- Updated the ClickTtView component to include new preset URL options for HTTV and TTDE login, improving user experience by providing quick access to common links.
- Adjusted form handling logic to support the new preset URLs, ensuring proper URL management during proxy interactions.
2026-03-10 22:48:54 +01:00
Torsten Schulz (local)
71ac054d48 feat(ClickTtView): add URL template selection for 'url' page type
- Introduced a new dropdown for selecting predefined URLs when the page type is set to 'url', enhancing user experience by providing quick access to common links.
- Included options for HTTV and TTDE login URLs to streamline navigation for users.
2026-03-10 22:39:26 +01:00
Torsten Schulz (local)
c472bb1fdc fix(clickTtHttpPageRoutes, clickTtHttpPageService): update effective page URL handling in proxy routes
- Introduced a new variable, effectivePageUrl, to ensure the correct URL is used for rewriting links and form actions in both GET and POST proxy requests.
- Updated the logic to derive the page origin from effectivePageUrl, enhancing the accuracy of base tag handling for relative URLs.
- Enhanced logging in the fetchWithLogging function to include the response URL, improving traceability in HTTP requests.
2026-03-10 22:37:30 +01:00
Torsten Schulz (local)
0e4d1707fd feat(logging): enhance HTTP request logging with additional payload details
- Introduced new fields in the HttpPageFetchLog model to capture request and response headers, bodies, and method for improved logging granularity.
- Updated the logging service to serialize and store these new details during HTTP fetch operations, enhancing traceability and debugging capabilities.
- Modified the clickTtHttpPageRoutes to include the new logging features, allowing for optional payload inclusion in log queries.
2026-03-10 22:26:37 +01:00
Torsten Schulz (local)
4f3a1829ca feat(clickTtHttpPageRoutes): add meta-refresh URL rewriting for proxy handling
- Implemented a new function to rewrite meta-refresh URLs in HTML, ensuring redirects after login are routed through the proxy while maintaining session integrity.
- Updated the proxy GET and POST endpoints to include the new meta-refresh handling, enhancing the overall functionality of the proxy interactions.
- Improved error handling in the new function to ensure robustness in processing HTML content.
2026-03-10 22:15:37 +01:00
Torsten Schulz (local)
bacc6b994d refactor(clickTtHttpPageRoutes): standardize variable names for clarity in proxy response handling
- Renamed variables for the response body and content type to improve code readability and maintainability.
- Ensured consistent usage of the new variable names throughout the proxy response processing logic, enhancing overall code clarity.
2026-03-10 22:10:16 +01:00
Torsten Schulz (local)
c5a88324c3 feat(clickTtHttpPageRoutes): enhance proxy functionality with session management and cookie handling
- Introduced session ID management to maintain user sessions across proxy requests, improving tracking and logging capabilities.
- Added functions to extract and format cookies, enabling proper cookie handling for requests and responses.
- Updated link and form action rewriting functions to include session IDs, ensuring seamless integration with the proxy.
- Enhanced the proxy GET and POST endpoints to manage cookies effectively, improving the overall robustness of the proxy interactions.
2026-03-10 22:08:20 +01:00
Torsten Schulz (local)
cab06f9ad6 feat(clickTtHttpPageRoutes): implement form action rewriting and proxy for POST requests
- Added a new function to rewrite form actions in HTML to route submissions through the proxy, enhancing logging for login actions.
- Implemented a POST endpoint for the proxy to handle form submissions, including validation for target URLs and forwarding requests with appropriate headers.
- Enhanced error handling and response management for the new proxy functionality, ensuring robust interaction with external services.
2026-03-10 22:03:32 +01:00
Torsten Schulz (local)
c87cebba36 feat(clickTtHttpPageRoutes): add base tag handling for relative URLs in proxy response
- Implemented logic to dynamically insert a base tag in the HTML response for relative URLs, ensuring proper resolution of form actions during login.
- Enhanced the existing proxy route to improve handling of HTML content fetched from target URLs.
2026-03-10 22:01:39 +01:00
Torsten Schulz (local)
a3148a3781 feat(readme): add configuration details for link rewriting and update proxy URL handling
- Introduced a new section in the README for environment variable configuration related to link rewriting, specifying BACKEND_BASE_URL and BASE_URL usage.
- Updated the clickTtHttpPageRoutes to dynamically construct the proxy base URL from environment variables, enhancing flexibility for different deployment environments.
2026-03-10 21:57:43 +01:00
Torsten Schulz (local)
c13f426b3d feat(tournaments): add update functionality for official tournaments
- Implemented an API endpoint to update the title of official tournaments, including error handling for non-existent tournaments.
- Enhanced the frontend to allow users to edit tournament titles directly, with input validation and feedback for successful updates or errors.
- Updated the German localization file to include new strings for editing titles and error messages.
2026-03-10 21:54:03 +01:00
Torsten Schulz (local)
ea6acd8c6c chore(dependencies): update package-lock.json for dottie, dompurify, and immutable
- Bumped dottie version from 2.0.6 to 2.0.7.
- Updated dompurify from 3.3.1 to 3.3.2, adding node engine compatibility.
- Upgraded immutable from 5.1.3 to 5.1.5.
2026-03-10 21:43:50 +01:00
Torsten Schulz (local)
c324da3938 fix(App.vue): update user permissions check and enhance dropdown behavior
- Changed the condition for displaying the click-TT link from admin status to a more specific permission check (canManagePermissions).
- Adjusted dropdown styling to improve usability by setting a maximum height and enabling vertical scrolling while hiding horizontal overflow.
2026-03-10 21:41:43 +01:00
Torsten Schulz (local)
f35e0510e7 feat(tournaments): enhance age eligibility logic and date parsing
- Improved the getCutoffDate method to derive cutoff dates from performance class if not explicitly provided.
- Updated getAgeLimitFromText to handle various age class formats, returning structured age limit objects.
- Introduced getBirthYearFromPerformanceClass to extract birth year information from performance class strings.
- Refined isEligibleByAge to incorporate new eligibility rules based on performance class and age limits, ensuring accurate age validation for tournament participation.
2026-03-10 21:39:50 +01:00
Torsten Schulz (local)
13379d6b24 feat(logging): add HTTP page fetch logging and enhance click-TT proxy functionality
- Introduced a new logging mechanism for HTTP requests to click-TT/HTTV pages, improving traceability and debugging capabilities.
- Implemented a proxy endpoint for iframe embedding, allowing direct HTML retrieval with enhanced error handling and validation for input URLs.
- Updated the frontend to include a new navigation link for the click-TT feature, accessible to admin users.
- Added a new route for the click-TT view in the router configuration.
2026-03-10 21:27:40 +01:00
Torsten Schulz (local)
055dbf115c feat(diary): improve predefined activities UI and enhance socket event integration
- Updated UI components for managing predefined activities to enhance user experience and accessibility.
- Improved socket event integration for real-time updates related to predefined activities, ensuring seamless interaction with the diary service.
- Refactored related mappers to support new UI changes and maintain data consistency across the application.
2026-03-10 21:24:45 +01:00
Torsten Schulz (local)
78f1196f0a feat(android): configure API and socket endpoints for debug and release builds
- Added API and socket base URLs for both debug and release configurations in gradle.properties.
- Enhanced build.gradle.kts to utilize environment variables for dynamic endpoint configuration.
- Updated debug build type with specific application ID suffix and version name suffix for better differentiation.
- Included necessary dependencies for improved functionality and compatibility.
2026-03-10 21:18:29 +01:00
2656 changed files with 67396 additions and 17222 deletions

View File

@@ -5,6 +5,16 @@ plugins {
id("org.jetbrains.kotlin.plugin.compose")
}
fun propOrEnv(name: String, defaultValue: String): String {
val gradleValue = project.findProperty(name) as String?
val envValue = System.getenv(name)
return when {
!gradleValue.isNullOrBlank() -> gradleValue
!envValue.isNullOrBlank() -> envValue
else -> defaultValue
}
}
android {
namespace = "de.trainingstagebuch.app"
compileSdk = 34
@@ -23,8 +33,34 @@ android {
}
buildTypes {
debug {
applicationIdSuffix = ".debug"
versionNameSuffix = "-debug"
resValue("string", "app_name", "Trainingstagebuch Debug")
buildConfigField(
"String",
"API_BASE_URL",
"\"${propOrEnv("API_BASE_URL_DEBUG", "http://10.0.2.2:3005/api/")}\""
)
buildConfigField(
"String",
"SOCKET_BASE_URL",
"\"${propOrEnv("SOCKET_BASE_URL_DEBUG", "http://10.0.2.2:3005")}\""
)
}
release {
isMinifyEnabled = false
resValue("string", "app_name", "Trainingstagebuch")
buildConfigField(
"String",
"API_BASE_URL",
"\"${propOrEnv("API_BASE_URL_RELEASE", "http://10.0.2.2:3005/api/")}\""
)
buildConfigField(
"String",
"SOCKET_BASE_URL",
"\"${propOrEnv("SOCKET_BASE_URL_RELEASE", "http://10.0.2.2:3005")}\""
)
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
@@ -42,6 +78,7 @@ android {
buildFeatures {
compose = true
buildConfig = true
}
packaging {
@@ -64,6 +101,7 @@ dependencies {
val composeBom = platform("androidx.compose:compose-bom:2024.10.01")
implementation("androidx.core:core-ktx:1.13.1")
implementation("androidx.appcompat:appcompat:1.7.0")
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.8.7")
implementation("androidx.activity:activity-compose:1.9.3")
implementation(composeBom)

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Automatically generated file. DO NOT MODIFY -->
<!-- Value from build type: debug -->
<string name="app_name" translatable="false">Trainingstagebuch Debug</string>
</resources>

View File

@@ -0,0 +1,16 @@
/**
* Automatically generated file. DO NOT MODIFY
*/
package de.trainingstagebuch.app;
public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String APPLICATION_ID = "de.trainingstagebuch.app.debug";
public static final String BUILD_TYPE = "debug";
public static final int VERSION_CODE = 1;
public static final String VERSION_NAME = "1.0-debug";
// Field from build type: debug
public static final String API_BASE_URL = "https://tt-tagebuch.de/api/";
// Field from build type: debug
public static final String SOCKET_BASE_URL = "https://tt-tagebuch.de:3051";
}

View File

@@ -4,7 +4,7 @@
"type": "COMPATIBLE_SCREEN_MANIFEST",
"kind": "Directory"
},
"applicationId": "de.trainingstagebuch.app",
"applicationId": "de.trainingstagebuch.app.debug",
"variantName": "debug",
"elements": []
}

Some files were not shown because too many files have changed in this diff Show More