* Fixed an issue where sometimes when loading the next page, the pagination area wouldn't be properly setup due to a missed rendering cycle
* Refactored BookController to thin it out and refactor some of the functions to apply IOC. Added some split query statements on a few queries.
* Added Split Query to many queries
* Added a visual indicator for loading state of PDF. Will spruce up css later.
* Added back in logic
* Fixed flash of white when refreshing browser
* Hooked in a loading progress bar for the pdf reader
* Close the pdf reader when pressing ESC
* From previous fix, added the other locking conditions on the update series metadata.
* Fixed a bug where custom series, collection tag, and reading list covers weren't being removed on cleanup.
* Ensure reading list detail has a margin to align to the standard
* Refactored some event stuff to use dedicated consts. Introduced a new event when users read something, which can update progress bars on cards.
* Added recomended and library tags to the library detail page. This will eventually offer more custom analytics
* Cleanup some code onc arousel
* Adjusted scale to height/width css to better fit
* Small css tweaks to better center images in the manga reader in both axis. This takes care of double page rendering as well.
* When a special has a Title set in the metadata, on series detail page, show that on the card rather than filename.
* Fixed a bug where when paging in manga reader, the scroll to top wasn't working due to changing where scrolling is done
* More css goodness for rendering images in manga reader
* Fixed a bug where clearing a typeahead externally wouldn't clear the x button
* Fixed a bug where filering then using keyboard would select wrong option
* Added a new sorting field for Last Chapter Added (new field) to get a similar on deck feel.
* Tweaked recently updated to hit the NFR of 500ms (300ms fresh start) and still give a much better experience.
* Refactored On deck to now go to all series and also sort by last updated. Recently Added Series now loads all series with sort by created.
* Some tweaks on css for cover image chooser
* Fixed a bug in pagination control where multiple pagination events could trigger on load and thus multiple requests for data on parent controller.
* Updated edit series modal to show when the last chapter was added and when user last read it.
* Implemented a highlight on the fitler button when a filter is active.
* Refactored metadata filter screens to perserve the filters in the url and thus when navigating back and forth, it will retain. users should click side nav to reset the state.
* Hide middle section on companion bar on phones
* Cleaned up some prefilters and console.logs
* Don't open drawer by default when a filter is active
* Added playwright and started writing e2e tests.
* To make things easy, disabled other browsers while I get confortable. Added a login flow (assumes my dev env)
* More tests on login page
* Lots more testing code, trying to figure out auth code.
* Ensure we don't track DBs inside config
* Added a new date property for when chapters are added to a series which helps with OnDeck calculations. Changed a lot of heavy api calls to use IEnumerable to stream repsonse to UI.
* Fixed OnDeck with a new field for when last chapter was added on Series. This is a streamlined way to query.
Updated Reading List with NormalizedTitle, CoverImage, CoverImageLocked.
* Implemented the ability to read a random item in the reading list and for the reading list to be intact for order.
* Tweaked the style for webtoon to not span the whole width, but use max width
* When we update a cover image just send an event so we don't need to have logic for when updates occur
* Fixed a bad name for entity type on cover updates
* Aligned the edit collection tag modal to align with new tab design
* Rewrote code for picking the first file for metadata to ensure it always picks the correct file, esp if the first chapter of a series starts with a float (1.1)
* Refactored setting LastChapterAdded to ensure we do it on the Series.
* Updated Chapter updating in scan loop to avoid nested for loop and an additional loop.
* Fixed a bug where locked person fields wouldn't persist between scans.
* Updated Contributing to reflect how to view the swagger api
* Fixed a bug where adding multiple series to reading list would throw an error on UI, but it was successful.
* When a series has a reading list, we now show the connection on Series detail.
* Removed all baseurl code from UI and not-connected component since we no longer use it.
* Fixed tag badges not showing a border. Added last read time to the series detail page
* Fixed up error interceptor to remove no-connection code
* Changed implementation for series detail. Book libraries will never send chapters back. Volume 0 volumes will not be sent in volumes ever. Fixed up more renaming logic on books to send more accurate representations to the UI.
* Cleaned up the selected tab and tab display logic
* Fixed a bad where statement in reading lists for series
* Fixed up tab logic again
* Fixed a small margin on search backdrop
* Made badge expander button smaller to align with badges
* Fixed a few UIs due to .form-group and .form-row being removed
* Updated Theme component page to help with style testing
* Added more components to theme tester
* Cleaned up some styling
* Fixed opacity on search item hover
* Refactored all files to have Interfaces within the same file. Started moving over to file-scoped namespaces.
* Refactored common methods for getting underlying file's cover, pages, and extracting into 1 interface.
* More refactoring around removing dependence on explicit filetype testing for getting information.
* Code is buildable, tests are broken. Huge refactor (not completed) which makes most of DirectoryService testable with a mock filesystem (and thus the services that utilize it).
* Finished porting DirectoryService to use mocked filesystem implementation.
* Added a null check
* Added a null check
* Finished all unit tests for DirectoryService.
* Some misc cleanup on the code
* Fixed up some bugs from refactoring scan loop.
* Implemented CleanupService testing and refactored more of DirectoryService to be non-static.
Fixed a bug where cover file cleanup wasn't properly finding files due to a regex bug.
* Fixed an issue in CleanupBackup() where we weren't properly selecting database files older than 30 days. Finished CleanupService Tests.
* Refactored Flatten and RemoveNonImages to directory service to allow CacheService to be testable.
* Finally have CacheService tested. Rewrote GetCachedPagePath() to be much more straightforward & performant.
* Updated DefaultParserTests.cs to contain all existing tests and follow new test layout format.
* All tests fixed up
* Cleaned up some code. Fixed an issue on books with good table of contents not allowing line tracking (progress) from being saved. Changed Save to Defaults on light mode to be primary.
* Fixed a bug where deleting reading items would not actually delete them
* Fixed a bug where after ordering reading lists then deleting the order would be undone (develop)
* Code cleanup
* Added continous reading to the book reader. Clicking on the max pages to right of progress bar will now go to last page.
* Forgot a file for continous book reading
* Fixed up some code regarding transitioning between chapters. Arrows now show to represent a chapter transition.
* Laid the foundation for reading lists
* All foundation is laid out. Actions are wired in the UI. Backend repository is setup. Redid the migration to have ReadingList track modification so we can order them for the user.
* Updated add modal to have basic skeleton
* Hooked up ability to fetch reading lists from backend
* Made a huge performance improvement to GetChapterIdsForSeriesAsync() by reducing a JOIN and an iteration loop. Improvement went from 2 seconds -> 200 ms.
* Implemented the ability to add all chapters in a series to a reading list.
* Fixed issue with adding new items to reading list not being in a logical order. Lots of work on getting all the information around the reading list view. Added some foreign keys back to chapter so delete should clean up after itself.
* Added ability to open directly the series
* Reading List Items now have progress attached
* Hooked up list deletion and added a case where if doesn't exist on load, then redirect to library.
* Lots of changes. Introduced a dashboard component for the main app. This will sit on libraries route for now and will have 3 tabs to show different sections.
Moved libraries reel down to bottom as people are more likely to access recently added or in progress than explore their whole library.
Note: Bundles are messed up, they need to be reoptimized and routes need to be updated.
* Added pagination to the reading lists api and implemented a page to show all lists
* Cleaned up old code from all-collections component so now it only handles all collections and doesn't have the old code for an individual collection
* Hooked in actions and navigation on reading lists
* When the user re-arranges items, they are now persisted
* Implemented remove read, but performance is pretty poor. Needs to be optimized.
* Lots of API fixes for adding items to a series, returning items, etc. Committing before fixing incorrect fetches of items for a readingListId.
* Rewrote the joins for GetReadingListItemDtosByIdAsync() to not return extra records.
* Remove bug marker now that it is fixed
* Refactor update-by-series to move more of the code to a re-usable function for update-by-volume/chapter APIs
* Implemented the ability to add via series, volume or chapter.
* Added OPDS support for reading lists. This included adding VolumeId to the ReadingListDto.
* Fixed a bug with deleting items
* After we create a library inform user that a scan has started
* Added some extra help information for users on directory picker, since linux users were getting confused.
* Setup for the reading functionality
* Fixed an issue where opening the edit series modal and pressing save without doing anything would empty collection tags. Would happen often when editing cover images.
* Fixed get-next-chapter for reading list. Refactored all methods to use the new GetUserIdByUsernameAsync(), which is much faster and uses less memory.
* Hooked in prev chapter for continuous reading with reading list
* Hooked up the read code for manga reader and book reader to have list id passed
* Manga reader now functions completely with reading lists
* Implemented reading list and incognito mode into book reader
* Refactored some common reading code into reader service
* Added support for "Series - - Vol. 03 Ch. 023.5 - Volume 3 Extras.cbz" format that can occur with FMD2.
* Implemented continuous reading with a reading list between different readers. This incurs a 3x performance hit on the book info api.
* style changes. Don't emit an event if position of draggable item hasn't changed
* Styling and added the edit reading list flow.
* Cleaned up some extra spaces when actionables isn't shown. Lots of cleanup for promoted lists.
* Refactored some filter code to a common service
* Added an RBS check in getting Items for a given user.
* Code smells
* More smells