Releases: aFFekopp/FretLog
Releases · aFFekopp/FretLog
v0.3.7 Set custom practice time & Bugfixes for mobile view
Added
- Custom Time Editing:
- Dashboard Inline Editor: Added a pen icon next to active session items, allowing users to manually set practice duration via an inline editor.
- Manual Session Entry: Updated the "Add Session" modal to allow precise hour/minute input for each practice item, replacing the previous single-minute field.
- Spinner-Free Inputs: Implemented custom CSS to hide browser spinner arrows on time inputs for a cleaner UI.
Fixed
- Mobile Layout & Overflow:
- Horizontal Scrolling: Fixed a critical issue where the Sessions page would horizontally scroll on mobile due to non-wrapping content in category cards.
- Navigation Bar: Resolved an issue where the bottom mobile navigation bar would disappear or glitch during scrolling by enforcing hardware acceleration and safe-area constraints.
- Card Overflow: Adjusted button sizing and wrapping in the "Category Breakdown" card to prevent it from pushing the page width on small screens.
- Practice Item Layout: Fixed practice item rows on mobile to correctly shrink metadata columns, ensuring long item names don't break the layout.
v0.3.6
Fixed
- Sessions Pagination: Re-implemented robust pagination logic for the Sessions page using window-scoped state management, ensuring stable page transitions and correct item slicing.
- Alphabetical Sorting: Improved the "Add Item" modal in the manual session editor to display library items in alphabetical order, making it easier to find specific entries.
- Duplicate Prevention: Implemented case-insensitive duplicate checks when adding or updating library items to prevent redundant entries within the same category.
- Statistics Alignment: Fixed X-axis label alignment and date formatting in the Practice Trends chart (especially for Month/Year view).
v0.3.5 UI Updates & Idle CPU Load reduction
Added
- Dashboard Item Ratings: Added interactive star ratings to songs in the active session panel. Users can now view and update song ratings directly from the dashboard during practice.
- Desktop-Only View Utilities: Implemented a
.desktop-onlyCSS utility to manage visibility of rich UI elements that are too bulky for mobile screens. - Production Server (Gunicorn): Integrated Gunicorn as the production WSGI server for Docker deployments, significantly improving stability and resource management.
Changed
- Statistics Visual Consistency:
- Replaced the default Chart.js legend in the Category Breakdown chart with a custom, list-based legend in the same style as the Top Practiced Items card.
- Improved grid alignment on the Statistics page to ensure cards don't stretch unevenly when content sizes differ.
- Responsive Layout Polishing:
- Adjusted the width of practice items' time display to ensure metadata like "(100%)" fits on a single line.
- Simplified margin and padding in the Category Breakdown card for a more balanced look.
- Docker Optimization: Optimized Docker image and runtime configuration to reduce idle CPU usage by over 90% by disabling filesystem reloader polling in production.
Fixed
- Statistics Padding: Resolved an issue with excessive bottom padding in the Category Breakdown card.
- Star Rating Persistence: Ensured ratings updated from the dashboard are immediately saved to the library database and persistent across sessions.
- Idle CPU Load: Fixed high CPU usage in Docker environments caused by the Flask development reloader.
v0.3.4 Unified Versioning & Footer Version Display
Added
- Footer Version Display: Added the current version number and a link to the GitHub repository in the application footer.
- Unified Versioning: Created a central
VERSIONfile to manage the application version across the server and client (Service Worker, Data Store, UI).
Fixed
- Mobile Scrolling: Resolved persistent scrollbar issues on mobile devices by adjusting viewport height and removing redundant padding on the Sessions page.
v0.3.3 PWA Support & Architectural Cleanup
Added
- Automatic Cache Busting:
- Implemented versioning for the Service Worker (
sw.js). - Implemented versioning for the LocalStorage data cache (
data.js). - Added logic to automatically clear local browser cache if a version mismatch is detected, ensuring users always have the latest schema and assets.
- Implemented versioning for the Service Worker (
- Progressive Web App (PWA) Support:
- Added
manifest.jsonfor home screen installation and app configuration. - Implemented a Service Worker (
sw.js) for static asset caching, improving load times and adding limited offline support. - Added iOS-specific meta tags and
apple-touch-iconfor a more native mobile experience. - Updated backend server to correctly serve PWA configuration files from the root directory.
- Added
Changed
- UI Simplification:
- Replaced the complex header profile dropdown with a direct Instrument Selector.
- Optimized Settings page layout, moving Appearance (Theme) settings to the top in a streamlined layout.
- Architectural Cleanup:
- Removed the
userstable and all associated code for multiple profiles. - Migrated
default_instrument_idand other preferences to a simplifiedsettingstable. - Cleaned up Export/Import logic to exclude old user profile data (name, email), ensuring a more private and streamlined single-user experience.
- Removed the
Fixed
- Instrument Selection Regressions:
- Implemented the missing
/api/settingsbackend endpoint for persistent settings updates. - Restored instrument highlighting on the Settings page by ensuring full user data is retrieved for comparison.
- Corrected the display refresh logic on the Settings page after changing instruments.
- Implemented the missing
- Dropdown Conflicts: Resolved a click event conflict in
sessions.htmlthat prevented the top-right user profile dropdown from opening. - Menu Interactions: Improved the global click handler to respect multiple different dropdown mechanisms, ensuring smooth navigation and context menu usage.
v0.3.1 Settings & Layout Polish
Added
- Settings Page UX:
- Click-to-select functionality for setting the default instrument, replacing the radio button column.
- Visual highlighting for the selected default instrument row.
- Added
(Selected)text indicator for clarity.
Changed
- Settings Layout:
- Refined Instruments and Categories sections into a responsive 2-column grid.
- Updated table headers to match the Dashboard's rounded, borderless style.
- Aligned action buttons to the right for better visual balance.
- Sessions Page Layout:
- Optimized session list items on desktop to display metadata in a single, wrap-able row.
- Improved mobile layout by removing horizontal overflow clipping to prevent menu cut-offs.
Fixed
- Emoji Picker: Reintegrated emoji picker for selecting icons in the Settings page (Instruments and Categories).
- Mobile Menu Clipping: Resolved an issue where the 3-dot context menu in session lists was being clipped by the container on mobile devices.
- Dropdown Logic: Fixed z-indexing and event handling for dropdown menus to ensure they overlay correctly and close when clicking outside or opening another menu.
v0.3.0 Mobile Optimizations & UI Improvements
Added
- Global Base Template: Centralized header, navigation, and global timer in
templates/base.htmlfor a consistent experience across all pages. - Hybrid Rendering: Implemented server-side injection of user profile data to eliminate the "Musician" flash during page loads.
- Enhanced Library Logic:
- Added ability to toggle star ratings off by clicking the active star.
- Improved pagination to preserve current page during rating updates or item edits.
- Utility Module: Introduced
static/js/utils.jsfor centralized modal management, time formatting, and shared logic.
Changed
- Page refactor: Migrated all pages (
index,sessions,library,statistics,settings) to use the new Flask template system. - Performance: Optimized
data.jswith more robust caching and error handling, ensuring fast item population even with partial cache corruption. - Data Normalization: Improved handling of database timestamps and numeric strings to prevent "Invalid Date" errors.
Fixed
- Critical UI Bugs: Resolved
Invalid DateandNaN:NaNerrors in session tables. - Instrument Mapping: Fixed "Unknown" instrument/category displays by aligning frontend IDs with backend defaults.
- API Endpoints: Restored missing endpoints for category management and fixed data import/export functionality.
- Sidebar Highlighting: Corrected navigation state logic to accurately reflect the active page.
- Database Path: Fixed directory creation logic to ensure the database always lives in the
data/folder.
Removed
- Legacy Files: Removed all standalone
.htmlfiles from the root directory. - Redundant Code: Cleaned up duplicate helper functions across multiple JavaScript files.
v0.2.0 Major refactor, template system and library enhancements
Added
- Global Base Template: Centralized header, navigation, and global timer in
templates/base.htmlfor a consistent experience across all pages. - Hybrid Rendering: Implemented server-side injection of user profile data to eliminate the "Musician" flash during page loads.
- Enhanced Library Logic:
- Added ability to toggle star ratings off by clicking the active star.
- Improved pagination to preserve current page during rating updates or item edits.
- Utility Module: Introduced
static/js/utils.jsfor centralized modal management, time formatting, and shared logic.
Changed
- Page refactor: Migrated all pages (
index,sessions,library,statistics,settings) to use the new Flask template system. - Performance: Optimized
data.jswith more robust caching and error handling, ensuring fast item population even with partial cache corruption. - Data Normalization: Improved handling of database timestamps and numeric strings to prevent "Invalid Date" errors.
Fixed
- Critical UI Bugs: Resolved
Invalid DateandNaN:NaNerrors in session tables. - Instrument Mapping: Fixed "Unknown" instrument/category displays by aligning frontend IDs with backend defaults.
- API Endpoints: Restored missing endpoints for category management and fixed data import/export functionality.
- Sidebar Highlighting: Corrected navigation state logic to accurately reflect the active page.
- Database Path: Fixed directory creation logic to ensure the database always lives in the
data/folder.
Removed
- Legacy Files: Removed all standalone
.htmlfiles from the root directory. - Redundant Code: Cleaned up duplicate helper functions across multiple JavaScript files.
v0.1.1 - Branding Update
- Added Favicon: The application now has a proper favicon for browser tabs.
- Improved Logo: Replaced the SVG logo with the new high-resolution PNG icon (48px) across all pages.
- UI Consistency: Standardized the header identity across Dashboard, Sessions, Library, Statistics, and Settings.
v0.1.0 - Initial Beta: Docker Support & UI Refinement
Fix: Database path for Docker persistence and local-aware timezone st…