* Refactored the design of reading list page to follow more in line with list view. Added release date on the reading list items, if it's set in underlying chapter.
Fixed a bug where reordering the list items could sometimes not update correctly with drag and drop.
* Removed a bug marker that I just fixed
* When generating library covers, make them much smaller as they are only ever icons.
* Fixed library settings not showing the correct image.
* Fixed a bug where duplicate collection tags could be created.
Fixed a bug where collection tag normalized title was being set to uppercase.
Redesigned the edit collection tag modal to align with new library settings and provide inline name checks.
* Updated edit reading list modal to align with new library settings modal pattern. Refactored the backend to ensure it flows correctly without allowing duplicate names.
Don't show Continue point on series detail if the whole series is read.
* Added some more unit tests around continue point
* Fixed a bug on series detail when bulk selecting between volume and chapters, the code which determines which chapters are selected didn't take into account mixed layout for Storyline tab.
* Refactored to generate an OpenAPI spec at root of Kavita. This will be loaded by a new API site for easy hosting.
Deprecated EnableSwaggerUi preference as after validation new system works, this will be removed and instances can use our hosting to hit their server (or run a debug build).
* Test GA
* Reverted GA and instead do it in the build step. This will just force developers to commit it in.
* GA please work
* Removed redundant steps from test since build already does it.
* Try another GA
* Moved all test actions into initial build step, which should drastically cut down on time. Only run sonar if the secret is present (so not for forks). Updated build requirements for develop and stable docker pushes.
* Fixed env variable
* Okay not possible to do secrets in if statement
* Fixed the build step to output the openapi.json where it's expected.
* Updated swiper and some packages for reported security issues
* Fixed reading lists promotion not working
* Refactor RenameFileForCopy to use iterative recursion, rather than functional.
* Ensured that bookmarks are fetched and ordered by Created date.
* Fixed a bug where bookmarks were coming back in the correct order, but due to filenames, would not sort correctly.
* Default installs to Debug log level given errors users have and Debug not being too noisy
* Added jumpbar to bookmarks page
* Now added jumpbar to bookmarks
* Refactored some code into pipes and added some debug messaging for prefetcher
* Try loading next and prev chapter's first/last page to cache so it renders faster
* Updated GetImage to do a bound check on max page.
Fixed a critical bug in how manga reader updates image elements src to prefetch/load pages. I was not creating a new reference which broke Angular's ability to update DOM on changes.
* Refactored the image setting code to use a single method which tries to use a cached image always.
* Refactored code to use getPage which favors cache and simplifies image creation code
* Recreated Kavita Logging with Serilog instead of Default. This needs to be move out of the appsettings now, to allow auto updater to patch.
* Refactored the code to be completely configured via Code rather than appsettings.json. This is a required step for Auto Updating.
* Added in the ability to send logs directly to the UI only for users on the log route. Stopping implementation as Alerts page will handle the rest of the implementation.
* Fixed up the backup service to not rely on Config from appsettings.json
* Tweaked the Logging levels available
* Moved everything over to File-scoped namespaces
* Moved everything over to File-scoped namespaces
* Code cleanup, removed an old migration and changed so debug logging doesn't print sensitive db data
* Removed dead code
* 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.
* Added --card-list-item-bg-color for the card list items
* Updated the card list item progress to match how cards render
* Implemented the ability to configure how many backups are retained.
* Fixed a bug where odd jump keys could cause a bad index error for jump bar
* Commented out more code for the pagination route if we go with that.
* Reverted a move of DisableConcurrentExecution to interface, as it seems to not work there.
* Updated manga format utility code to pipes
* Fixed bulk selection on series detail page
* Fixed bulk selection on all other pages
* Changed card item to OnPush
* Updated image component to OnPush
* Updated Series Card to OnPush
* Updated Series Detail to OnPush
* Lots of changes here. Integrated parentscroll support on card detail layout. Added jump bar (custom js implementation) on collection, reading list and all series pages. Updated UserParams to default to no pagination. Lots of cleanup all around
* Updated some notes on a module use
* Some code cleanup
* Fixed up a broken test due to the mapper not being configured in the test.
* Applied TabID pattern to edit collection tags
* Applied css from series detail to collection detail page to remove double scrollbar
* Implemented the ability to sort by Time To Read.
* Throw an error to the UI when we extract an archive and it contains invalid characters in the filename for the Server OS.
* Tweaked how the page scrolls for jumpbar on collection detail. We will have to polish another release
* Cleaned up the styling on directory picker
* Put some code in but it doesn't work for scroll to top on virtual scrolling. I'll do it later.
* Fixed a container bug
* 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
* Implemented the ability to perform multi-selections on cards. Basic selection code is done, CSS needed and exposing actions.
* Implemented a bulk selection bar. Added logic to the card on when to force show checkboxes.
* Fixed some bad parsing groups and cases for Comic Chapters.
* Hooked up some bulk actions on series detail page. Not hooked up to backend yet.
* Fixes#593. URI Enocde library names as sometimes they can have & in them.
* Implemented the ability to mark volume/chapters as read/unread.
* Hooked up mark as unread with specials as well.
* Add to reading list hooked up for Series Detail
* Implemented ability to add multiple series to a reading list.
* Implemented bulk selection for series cards
* Added comments to the new code in ReaderService.cs
* Implemented proper styling on bulk operation bar and integrated for collections.
* Fixed an issue with shift clicking
* Cleaned up css of bulk operations bar
* 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