* 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
* Removed some extra spam for the console
* Implemented the code to update RowVersion, which is our concurrency check
* Fixed a critical issue where more than one bookmark could occur for a given chapter due to a race condition. Now we use concurrency checks and we also gracefully allow more than one row, by only grabbing first.
* Cleaned up the logic for IHasConcurencyToken and updated the setters to be private.
* Lots of comments and when deleting a library, remove any user progress items for which chapters don't exist.
* When deleting a Series, cleanup user progress rows.
* Now after a scan of library, if a series is removed, collection tags are pruned as well if there are no longer any series bound to it.
* Updated the image on the Readme to show a better picture
* Small code cleanup to remove null check modifier as I check for null just before then
* Fixed images loading multiple times due to using function in binding with random. You can now click chapter images to read that chapter specifically.
* Fixed cards being different sizes when read vs unread
* Moved over Robbie's workflow changes from notifier. Commented out activity indicators as that is not shipping with this release.
* Remove code that isn't needed
* Reverted GA
* Changed GA to trigger only when HEAD is updated
* Added some documentation. Removed Require Admin Role from Search Tags. Added Summary to be updated on UpdateTag.
* Added Swagger xml doc generation to beef up the documentation. Started adding xml comments to the APIs. This is a needed, slow task for upcoming Plugins system.
* Implemented the ability to upload a custom series image to override the existing cover image.
Refactored some code out to use ImageService and added more documentation
* When a page cache fails, delete cache directory so user can try to reload.
* Implemented the ability to lock a series cover image such that after user uploads something, it wont get refreshed by Kavita.
* Implemented the ability to reset cover image for series by unlocking
* Kick off a series refresh after a cover is unlocked.
* Ability to press enter to load a url
* Ability to reset selection
* Cleaned up cover chooser such that reset is nicer, errors inform user to use file upload, series edit modal now doesn't use scrollable body. Mobile tweaks. CoverImageLocked is now sent to the UI.
* More css changes to look better
* When no bookmarks, don't show both markups
* Fixed issues where images wouldn't refresh after cover image was changed.
* Implemented the ability to change the cover images for collection tags.
* Added property and API for chapter cover image update
* Added UI code to prepare for updating cover image for chapters. need to rearrange components
* Moved a ton of code around to separate card related screens into their own module.
* Implemented the ability to update a chapter/volume cover image
* Refactored action for volume to say edit to reflect modal action
* Fixed issue where after editing chapter cover image, the underlying card wouldn't update
* Fixed an issue where we were passing volumeId to the reset chapter lock. Changed some logic in volume cover image generation.
* Automatically apply when you hit reset cover image
# Added
- Added: Added the ability to bookmark certain pages within the manga (image) reader and later download them from the series context menu.
# Fixed
- Fixed: Fixed an issue where after adding a new folder to an existing library, a scan wouldn't be kicked off
- Fixed: In some cases, after clicking the background of a modal, the modal would close, but state wouldn't be handled as if cancel was pushed
# Changed
- Changed: Admin contextual actions on cards will now be separated by a line to help differentiate.
- Changed: Performance enhancement on an API used before reading
# Dev
- Bumped dependencies to latest versions
=============================================
* Bumped versions of dependencies and refactored bookmark to progress.
* Refactored method names in UI from bookmark to progress to prepare for new bookmark entity
* Basic code is done, user can now bookmark a page (currently image reader only).
* Comments and pipes
* Some accessibility for new bookmark button
* Fixed up the APIs to work correctly, added a new modal to quickly explore bookmarks (not implemented, not final).
* Cleanup on the UI side to get the modal to look decent
* Added dismissed handlers for modals where appropriate
* Refactored UI to only show number of bookmarks across files to simplify delivery. Admin actionables are now separated by hr vs non-admin actions.
* Basic API implemented, now to implement the ability to actually extract files.
* Implemented the ability to download bookmarks.
* Fixed a bug where adding a new folder to an existing library would not trigger a scan library task.
* Fixed an issue that could cause bookmarked pages to get copied out of order.
* Added handler from series-card component
* Code cleanup, refactored FileRepository into Unit of Work.
* Added AutoCloseMenu and ReaderMode user perferences to match UI
* Added extra information to ChapterInfo
* Build changes
* Updated the readme to have open collective information and thanks to sponsors
* Fixed an issue with UnitOfWork refactor and how stats was bootsrapped. Replaced stats.kavitareader with a temp url to test out redirection bug.
* Readme refactored to be more clean and clear, taking inspiration from wiki.js's readme.
* Initial backend for Collections and basic metadata implemented.
* More build flavors for Raspberry Pi users and updated Install since we don't need users to set their own JWT Token Key. Update a typo in appsettings.json file for prod.
* Fixed#224. Sort before getting a First?Last() chatper
* The rough ability to add and get series metadata and tags.
* Fix a bug on getting metadata for when it doesn't exist.
* Fixed a bug where flattening directories with some unique filenames could cause reading order of images to be out of order.
* Added a seed code to ensure all series have SeriesMetdata
* Ensure all instances of opening an epub is using "using" so we don't lock the file. When we have a malformed html file, log the issues and inform the user we can't open the file.
* Book reader now handles @Import "" statements in CSS and inlines the css into css file that references them. This allows for them to be scoped. In addition, if the html or body tag had classes, we now send back a single div with those classes.
* Fixed GetSeriesDtoForCollectionAsync which was not properly returning series
* Implemented cover image for collection tag. Fixed an issue in metadata update call.
* Add check for user access when resolving series for a collection tag. When asking for all tags, if the user is not an admin, only give promotoed tags back.
* Implemented updateTag api
* Implemented the ability to update series the tags have access to.
* Cleanup, sorting, and null check
* More sorting changes
* Ensure we can delete tags when editing a series tags
* Fix order of update to make sure a tag is properly deleted
* Code smells
* More cases for parsing regex
* Fixed a bug where chapter cover images weren't being updated due to a missed not.
* Removed a piece of code that was needed for upgrading, since all beta users agreed to wipe db.
* Fixed InProgress to properly respect order and show more recent activity first. Issue is with IEntityDate LastModified not updating in DataContext.
* Updated dependencies to lastest stable.
* LastModified on Volumes wasn't updating, validated it does update when data is changed.
* Rewrote a check to avoid a small heap object warning.
* Ensure UpdateSeries checks all libraries for unique name.
* Took care of some todos, removed unused imports, on dev go ahead and schedule reoocuring jobs since LiteDB caused the locking issue.
* No Tracking when we aren't using entities.
* Added code to remove abandoned progress rows after a chapter gets deleted.
* RefreshMetadata uses one large query rather than many trips to DB for updating metadata. Significantly faster.
* Fixed a bug where UpdateSeries would always complain about a unique name even when we weren't updating name.
* Files that are linked to a series but can't parse out Vol/Chapter information are properly grouped like other Specials.
* Refresh metadata on UI should call the task directly
* Fixed a bug on updating series to make sure we don't complain if we aren't trying to update the name to an existing name.
* Fixed#142 - Library cards should be sorted.
* Refactored the name of some variables to be more agnostic to comics.
* Implemented ScanLibrary but abandoning it.
* Code Cleanup & removing ScanSeries code.
* Some more tests and new Comparators for natural sorting.
* Fixed#137 - When performing I/O on archives, ignore __MACOSX folders completely.
* Fixed#137 - When performing I/O on archives, ignore __MACOSX folders completely.
* All entities that will show under specials tab should be marked special, rather than just what has a special keyword.
* Don't let specials generate cover images
* Don't let specials generate cover images
* SearchResults should send LocalizedName back since we are searching against it.
* Added some tests around macosx folders found from my actual server.
* Put extra notes about a case where duplicates come about, logger will now tell user about this issue.
* Missed a build issue somehow...
* Some code smells