Commit Graph

641 Commits

Author SHA1 Message Date
Torsten Schulz (local)
2c11f6b975 chore(dependencies): update package versions in package-lock.json and package.json
- Upgraded nodemailer from version 7.0.9 to 8.0.4 for improved email handling.
- Updated brace-expansion, flatted, picomatch, and socket.io-parser to their latest versions across frontend and backend for better performance and security.
- Incremented versions of other dependencies like sequelize and jspdf to ensure compatibility and access to new features.
2026-03-28 11:18:16 +01:00
Torsten Schulz (local)
68f14eb5d6 feat(TournamentConfigTab, TournamentResultsTab): enhance stage configuration and knockout actions
- Added ensureStageConfigurationPersisted method to validate and save stage advancements, ensuring proper configuration before advancing stages.
- Updated advanceStage method to call ensureStageConfigurationPersisted, improving the flow of tournament advancement.
- Introduced primary action buttons in TournamentResultsTab for starting and resetting knockout rounds, enhancing user interaction during tournament management.
- Styled results-primary-actions for better visibility and usability in the results tab.
2026-03-28 11:15:38 +01:00
Torsten Schulz (local)
7fdbe85d3c feat(TournamentService, TournamentConfigTab): enhance tournament advancement logic and knockout stage handling
- Introduced a new function to compare advancement candidates based on multiple criteria, improving the selection process for tournament participants.
- Updated participant data structure to include additional metrics for better ranking and comparison.
- Enhanced the TournamentConfigTab to automatically configure knockout stage settings when applicable, ensuring a smoother user experience during tournament setup.
2026-03-28 11:09:40 +01:00
Torsten Schulz (local)
adefb120c0 feat(TournamentResultsTab, TournamentTab): add knockout operation handling
- Introduced knockoutOperationInProgress state to manage button states during knockout operations in TournamentResultsTab.vue.
- Updated button elements to disable during ongoing operations, enhancing user experience and preventing multiple submissions.
- Integrated knockoutOperationInProgress state in TournamentTab.vue to control the flow of knockout-related actions.
2026-03-28 10:57:29 +01:00
Torsten Schulz (local)
9d023b534d feat(SEO, Sitemap, Routing): enhance SEO and sitemap for new features
- Updated update-sitemap.sh to include new URLs for Vereinssoftware, Mitgliederverwaltung, Trainingsplanung, and Turniersoftware with appropriate lastmod dates and change frequencies.
- Enhanced server.js and seo.js with SEO configurations for the new pages, ensuring proper indexing and descriptions.
- Added new routes in router.js for the additional features, improving navigation and user access.
- Updated Home.vue to include links to the new features, enhancing user engagement and visibility.
2026-03-27 11:42:11 +01:00
Torsten Schulz (local)
a7d3e5b094 feat(Sitemap, SEO): update sitemap generation and SEO configurations
- Enhanced update-sitemap.sh to generate a new sitemap structure with lastmod dates for additional URLs.
- Updated SEO configurations in server.js and seo.js to allow indexing for impressum and datenschutz pages.
- Introduced a list of noindex prefixes to manage SEO settings dynamically based on route paths.
- Added structured FAQ schema in index.html to improve search engine visibility and user engagement.
2026-03-27 11:22:55 +01:00
Torsten Schulz (local)
ddb3025b84 feat(App): improve layout responsiveness and overflow handling
- Added min-width and max-width properties to App.vue for better layout control.
- Enhanced main-content and content classes with overflow-x hidden and box-sizing border-box to improve responsiveness and prevent overflow issues.
2026-03-27 10:57:52 +01:00
Torsten Schulz (local)
85cf0d0ddc feat(ScheduleLayoutShell, ScheduleView): refine layout and responsiveness
- Enhanced ScheduleLayoutShell.vue with improved width and box-sizing properties for better layout management.
- Updated ScheduleView.vue to ensure consistent width handling and overflow properties, enhancing mobile responsiveness and user experience.
2026-03-27 10:51:41 +01:00
Torsten Schulz (local)
37f9ba83aa feat(ScheduleLayoutShell, ScheduleView): enhance layout and overflow handling
- Updated ScheduleLayoutShell.vue to improve overflow properties and ensure better layout management for tab panels and workspace components.
- Enhanced ScheduleView.vue with max-width adjustments and touch-action properties for improved responsiveness and user interaction on mobile devices.
2026-03-27 10:23:54 +01:00
Torsten Schulz (local)
32ba433008 feat(AutoFetchMatchResultsService, ScheduleView): enhance date and time parsing for match results
- Implemented a new method in AutoFetchMatchResultsService to parse match date and time from various formats, improving robustness in handling date inputs.
- Updated storeMatchResult method to utilize the new date parsing logic, ensuring accurate match date handling.
- Enhanced ScheduleView to maintain consistent display of match dates and times, improving user experience in the schedule table.
2026-03-26 19:34:46 +01:00
Torsten Schulz (local)
c7d51efb5d feat(MatchReportApiDialog): implement meeting details polling functionality
- Added methods to start and stop polling for meeting details at regular intervals.
- Introduced logic to build a signature for meeting details to detect changes.
- Enhanced data handling to update meeting information based on the latest fetched details.
- Improved error handling during polling to ensure robustness in data retrieval.
2026-03-25 18:43:52 +01:00
Torsten Schulz (local)
c2a31d3b24 feat(Tournament): add doubles tournament support and related UI enhancements
- Updated tournamentController.js and tournamentService.js to include isDoublesTournament parameter for tournament creation and updates.
- Modified Tournament model to add isDoublesTournament field, allowing differentiation between singles and doubles tournaments.
- Enhanced frontend components (TournamentConfigTab, TournamentParticipantsTab, TournamentTab) to support doubles tournament configuration and display.
- Added internationalization keys for doubles tournament labels and hints in multiple languages.
- Improved participant assignment logic for doubles tournaments to ensure proper class assignments.
2026-03-25 11:49:47 +01:00
Torsten Schulz (local)
64090d9ff0 feat(MatchReportApiDialog, ScheduleLayoutShell, ScheduleView): enhance lineup management and layout improvements
- Updated MatchReportApiDialog.vue to improve lineup tab accessibility based on team status.
- Enhanced player selection filtering to ensure only valid players are displayed in lineups.
- Modified ScheduleLayoutShell.vue to adjust overflow properties for better layout handling.
- Improved ScheduleView.vue with new methods for sorting matches by date and combining league matches, enhancing match display and user experience.
- Added sticky header styling for better visibility in match lists.
2026-03-25 10:12:50 +01:00
Torsten Schulz (local)
02f1bed452 feat(MemberOrders): implement member orders feature
- Added new models and routes for managing member orders and order history.
- Updated server.js to include member order routes and sync functionality.
- Enhanced frontend with new components and dialogs for viewing and managing orders.
- Integrated internationalization support for order-related texts across multiple languages.
- Updated navigation and views to include access to the new orders feature, improving user experience.
2026-03-24 17:01:57 +01:00
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