* Refactored ResponseCache profiles into consts
* Refactored code to use an extension method for getting user library ids.
* Started server statistics, added a charting library, and added a table sort column (not finished)
* Refactored code and have a fully working example of sortable headers. Still doesn't work with default sorting state, will work on that later.
* Implemented file size, but it's too expensive, so commented out.
* Added a migration to provide extension and length/size information in the DB to allow for faster stat apis.
* Added the ability to force a library scan from library settings.
* Refactored some apis to provide more of a file breakdown rather than just file size.
* Working on visualization of file breakdown
* Fixed the file breakdown visual
* Fixed up 2 visualizations
* Added back an api for member names, started work on top reads
* Hooked up the other library types and username/days.
* Preparing to remove top reads and refactor into Top users
* Added LibraryId to AppUserProgress to help with complex lookups.
* Added the new libraryId hook into some stats methods
* Updated api methods to use libraryId for progress
* More places where LibraryId is needed
* Added some high level server stats
* Got a ton done on server stats
* Updated default theme (dark) to be the default root variables. This will allow user themes to override just what they want, rather than maintain their own css variables.
* Implemented a monster query for top users by reading time. It's very slow and can be cleaned up likely.
* Hooked up top reads. Code needs a big refactor. Handing off for Robbie treatment and I'll switch to User stats.
* Implemented last 5 recently read series (broken) and added some basic css
* Fixed recently read query
* Cleanup the css a bit, Robbie we need you
* More css love
* Cleaned up DTOs that aren't needed anymore
* Fixed top readers query
* When calculating top readers, don't include read events where nothing is read (0 pages)
* Hooked up the date into GetTopUsers
* Hooked top readers up with days and refactored and cleaned up componets not used
* Fixed up query
* Started on a day by day breakdown, but going to take a break from stats.
* Added a temp task to run some migration manually for stats to work
* Ensure OPDS-PS uses new libraryId for progress reporting
* Fixed a code smell
* Adding some styling
* adding more styles
* Removed some debug stuff from user stats
* Bump qs from 6.5.2 to 6.5.3 in /UI/Web
Bumps [qs](https://github.com/ljharb/qs) from 6.5.2 to 6.5.3.
- [Release notes](https://github.com/ljharb/qs/releases)
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.5.2...v6.5.3)
---
updated-dependencies:
- dependency-name: qs
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
* Tweaked some code for bad data cases
* Refactored a chapter lookup to remove un-needed Volume join in 5 places across the code.
* API push
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Added ReadingList age rating from all series and started on some unit tests for the new flows.
* Wrote more unit tests for Reading Lists
* Added ability to restrict user accounts to a given age rating via admin edit user modal and invite user. This commit contains all basic code, but no query modifications.
* When updating a reading list's title via UI, explicitly check if there is an existing RL with the same title.
* Refactored Reading List calculation to work properly in the flows it's invoked from.
* Cleaned up an unused method
* Promoted Collections no longer show tags where a Series exists within them that is above the user's age rating.
* Collection search now respects age restrictions
* Series Detail page now checks if the user has explicit access (as a user might bypass with direct url access)
* Hooked up age restriction for dashboard activity streams.
* Refactored some methods from Series Controller and Library Controller to a new Search Controller to keep things organized
* Updated Search to respect age restrictions
* Refactored all the Age Restriction queries to extensions
* Related Series no longer show up if they are out of the age restriction
* Fixed a bad mapping for the update age restriction api
* Fixed a UI state change after updating age restriction
* Fixed unit test
* Added a migration for reading lists
* Code cleanup
* Refactored invite user flow to separate error handling on create user flow and email flow. This should help users that have unique situations.
* Switch to using files to check LastWriteTime. Debug code in for Robbie to test on rclone
* Updated Parser namespace. Changed the LastWriteTime to check all files and folders.
* Tweaked a Migration to log correctly only if something is going to be done.
* Refactored Reading List Controller code into a dedicated service and cleaned up some methods that aren't needed anymore.
* Fixed a bug where adding a new item to a reading list wasn't adding it at the end.
* Fixed an issue where collection page would re-render the same covers on multiple items.
* Fixed a missing margin-top which made the page extras drawer not render correctly and hence unclosable on small screens.
* Added some timeout on manage users screen to give data time to flush.
Added a dedicated token log for account flows, in case url encoding plays a part (but from testing it doesn't).
* Reverted back to building for ES6 instead of es2020 for old Safari 12.5.5 browsers (10MB difference in build size).
* Cleaned up the logic in removing series not found during scan loop.
* Tweaked the timings for Library Watcher to 1 min and reprocess queue every 30 seconds.