- Improved the rendering of active and recent servers associated with each IP, providing clearer visual feedback.
- Introduced badges for active and recent servers, including a distinction for primary servers, enhancing user understanding of server status.
- Refactored the UI logic to conditionally display server information, improving overall clarity and usability in the IP details table.
- Updated the copy function to handle clipboard operations more robustly, including a fallback method for unsupported environments.
- Improved user interaction by ensuring that copy actions are properly managed and errors are gracefully handled.
- Refactored the copy event handling in the UI to prevent event propagation, enhancing the overall user experience.
- Updated the table layout in the user traffic and IP detail pages to enhance readability and organization.
- Improved the display of active connections and server information, ensuring a consistent user experience across different views.
- Added responsive styling for table headers and cells, optimizing the interface for various screen sizes.
- Updated the data structure to store multiple servers associated with each user, enhancing the representation of active connections.
- Improved the logic for generating active IP-server rows, utilizing a map for better performance and organization.
- Modified the UI to display a list of servers for each user, improving clarity and usability in the user traffic table.
- Introduced a new derived state to calculate and display active IP-server pairs for each user, enhancing the visibility of user connections.
- Replaced the previous badge display with a structured table format, improving data organization and readability.
- Updated the UI to conditionally render active connections, providing clearer feedback when no active connections are present.
- Introduced a derived state to calculate the count of unique IPs associated with each user, enhancing the data presented in the user traffic table.
- Replaced the previous unordered list with a structured table format for better readability and organization of user traffic and IP data.
- Updated the user interface to display the number of unique IPs alongside user traffic metrics, improving the overall user experience and data clarity.
- Simplified the user data loading process by consolidating API calls for user and unique IP data, enhancing error handling and data presentation.
- Updated the user table to improve interaction, allowing users to click on usernames for detailed views.
- Introduced a new section for displaying active IPs and their associated server information, improving the clarity and usability of the user details page.
- Enhanced the overall user experience with better error messaging for IP data retrieval.
- Updated the user table to conditionally render rows based on the presence of IP-server pairs, improving clarity in data presentation.
- Simplified the rendering of user data when no pairs are available, ensuring a cleaner UI.
- Enhanced the display of user links and metrics, maintaining consistent formatting across different scenarios.
- Added a new API call to fetch unique IPs alongside existing user data, improving the richness of information displayed.
- Implemented derived state to organize unique IPs by user, allowing for better data presentation in the UI.
- Updated the table to display IP-server pairs for each user, enhancing clarity and usability.
- Improved error handling during data fetching to ensure robust user experience.
- Introduced a new `kpiAccent` configuration to manage dynamic styling for various KPI components based on their status (success, warning, danger, etc.).
- Added multiple icons to represent different metrics visually, improving user experience and accessibility.
- Updated the dashboard layout to utilize the new styling and icons, ensuring a consistent and informative presentation of server health, connections, and traffic metrics.
- Implemented derived states for health and connection metrics to reflect real-time data changes effectively.
- Replaced `onMount` with `$effect` for loading data in multiple server route components, improving reactivity and ensuring data is fetched based on the current alias.
- Introduced a new `loadFor` function to handle data fetching with the alias parameter, enhancing code clarity and maintainability.
- Updated all relevant components to utilize the new loading mechanism, ensuring consistent behavior across the application.
- Updated the reverse proxy to redirect `GET` requests for `/api/{alias}/users` to `/v1/stats/users`, ensuring compatibility with Telemt builds that handle these requests differently.
- Added tests to verify that `GET` and `HEAD` requests to `/api/{alias}/users` are correctly rewritten, while `POST` requests and user-specific retrievals remain unchanged.
- Improved documentation in GATEWAY_RUN.md to clarify the behavior of the API routing and the importance of using the correct base URL.
- Updated Dockerfile to build and embed the SvelteKit Web UI directly into the gateway image, eliminating the need for a separate web service.
- Modified .dockerignore to exclude unnecessary directories related to the web service.
- Adjusted config.compose.yaml to remove CORS settings for the web service, as the UI now shares the same origin as the API.
- Enhanced README.md to reflect the new single-port architecture for accessing both the Web UI and API.
- Removed the standalone web Dockerfile and updated related documentation for local development and build processes.
- Added CORS allowed origins in config.compose.yaml to enable cross-origin requests from the web service.
- Updated docker-compose.yml to include a new web service with build context and port mapping for local development.
- Enhanced gateway.go to support additional HTTP methods in CORS responses.
- Updated README.md to document the new web service and its configuration requirements.