Enhanced the bans component to retain search state using the History API. Updated the history component to support paginated and filtered data loading based on user input and search terms.
Reduced the width of `.historyReason` and increased the width of `.historyDate` to improve layout alignment. These changes ensure better visual balance and accommodate content more effectively.
Added support for searching and filtering user names using `HistoryService`. Implemented a dropdown for search suggestions with dynamic filtering and selection. Updated UI and styles to accommodate the new input functionality.
Added `ORDER BY time DESC` to ensure that history query results are consistently returned with the most recent entries first. This update improves data clarity and usability for end-users.
Some styling changes for the punishments page. Also changes how the dates are displayed - they should display differently depending on what region you're in.
Introduced a new API endpoint `/history/total` for fetching the total counts of bans, mutes, kicks, and warnings. Added database mapping and DTO classes to support this functionality, along with necessary schema and controller updates.
The database tables are now automatically created
The history lookup now uses a view for names (for simplicity and readability)
The all history lookup now uses a view combining all punishment history for efficiency
Consolidated and simplified imports from '../../api' to clean up the code. This reduces redundancy and improves readability while maintaining functionality.
Redesigned history-related APIs to streamline handling of user and UUID punishments, moving from POST to GET endpoints. Added support for LiteBans database with mappers for retrieving punishment records by name and UUID, and implemented global exception handling for better error reporting. Updated schema paths and added enums (UserType, HistoryType) and a new Gradle dependency.
Moved API files from `sub_api` to `schemas` for better organization. Updated schema references to use `ApiError` instead of `Error`. Adjusted build configuration to include new schema folder in the API generation process.
This new field captures the name of the staff member who removed a punishment. It provides additional traceability and accountability for punishment actions.
Updated API definitions and endpoints to better support punishment history and team queries. Introduced new parameters, schemas, and operations to improve functionality, and reorganized related controllers into appropriate packages.
Modularized OpenAPI definitions by splitting into dedicated files for teams, bans, and errors. Improved backend logging for database connections, CORS configuration, and debugging. Updated application properties to support environment-specific CORS origins and logging levels.
The TeamMemberDto import was unnecessary and not used in the code. Removing it improves code cleanliness and reduces potential confusion. This is a minor optimization with no functional changes.
Replaced static member entries with dynamic rendering using `getTeamMembers` for better scalability. Added caching and data deduplication logic to optimize API calls. This enhances maintainability and reduces redundancy in the team component.
Reorganized database-related code into a dedicated module, added mappings for UUID handling, and updated SQL queries for clarity. Enhanced team members API to use player data directly, ensuring consistency and better handling of UUIDs. Introduced new database table for connection settings and adjusted Gradle configurations for modularization.
Deleted unused `AppModule` to streamline the project structure. Enhanced the `TeamComponent` by integrating team member data from the API and updating its template. Improved the `HeaderComponent` by adding `priority` to the logo image for better performance.
Refactored Angular components to standalone modules, enhancing modularity and reducing dependency on `AppModule`. Updated routes to facilitate lazy loading for improved performance and maintainability. Replaced `platformBrowserDynamic` with `bootstrapApplication` for modern bootstrapping.
Introduce new CSS styles to ensure consistent layout and design for the birthday member section. These styles handle width, padding, text alignment, and font styling for improved visual presentation.
Introduced a new BirthdaysComponent with its corresponding HTML, SCSS, and spec files. Added a route for '/birthdays' in the application and integrated it into the module and routing. This component showcases staff and previous staff birthdays.
Replaced inline styles with a reusable `.teamContainer` class in the team component. This improves maintainability and ensures consistent styling across sections.
Updated Privacy, Team, Terms, and About components to implement OnInit. Each component now calls the `scrollToTop` method of the `ScrollService` in the `ngOnInit` lifecycle to ensure the page starts at the top when initialized.
Replaced the external Typeform link with an internal [routerLink] to route to the "/contact" page. This ensures consistency and improves navigation within the application.
Created a new SocialsComponent with corresponding HTML, SCSS, and tests. Updated `app.module.ts` to include the Socials route and modified the Team page to use `ngSrc` for image optimization.
Expanded the Terms of Use content with sections on fair use, donations, external services, and more to improve clarity and coverage. Updated SCSS to enhance readability and layout. Updated expired links to their current live version.
Minor punctuation fix in the Privacy Policy for consistency.
Updated privacy policies with revised dates, modernized links, and replaced references from Mojang's expired links to their Privacy Policy to Microsoft's Privacy Policy. Replaced hardcoded links with Angular router links for improved maintainability. Updated the "Last Updated" date.
Replaced placeholder privacy content with a comprehensive privacy policy, including sections on data collection, usage, third-party involvement, and user rights. Added necessary styles for the privacy policy layout.
Also actually fixed the social icons in the footer
Introduced `TermsComponent` and `PrivacyComponent` with basic templates, styles, and unit tests. Updated routing in `app.module` to include `/terms` and `/privacy` paths and registered these components.