* Fixed a bug with RBS on non-admin accounts
* Fixed a bug where get next/prev chapter wouldn't respect floating point volume numbers
* Fixed a bad migration version check
* When building kavita ignore exclusions, ignore blank lines.
* Hooked up the GetFullSeriesByAnyName to check against OriginalName exactly
* Refactored some code for building ignore from library root, to keep the code cleaner
* Tweaked some messaging
* Fixed a bad directory join when a change event occurs in a nested series folder.
* Fixed a bug where cover generation would prioritize a special if there were only chapters in the series.
* Fixed a bug where you couldn't update a series modal if there wasn't a release year present
* Fixed an issue where renaming the Series in Kavita wouldn't allow ScanSeries to see the files, and thus would delete the Series.
* Added an additional check with Hangfire to make sure ScanFolder doesn't kick off a change when a bunch of changes come through for the same directory, but a job is already running.
* Added more documentation
* Migrated more response caching to profiles and merged 2 apis into one, since they do the same thing.
* Fixed a bug where NotApplicable age ratings were breaking Recently Updated Series
* Cleaned up some cache profiles
* More caching
* Provide response caching on Get Next/Prev Chapter
* Code smells
* Moved logic from TachiyomiController.cs to TachiyomiService.cs
* Added GetLatestChapter Unit Tests
* Tachiyomi more tests.
Implemented test for yearly volumes
* MarkVolumesUntilAsRead unit test
* Registered tachiyomi service.
Added new test
* Fixed test pages
* Added missing check if its single-file volume
* Removed dead code
* Added method documentation and breaked thousands with `_`
* Review details and renamed test method to be more descriptive
* Review changes
- Removed automapper
- Added spaces after commas
- Added class documentation (copied from controller)
- Made Culture static
- Added 'R' doc linking to docs.ms
- Added trycatch to service when saving progress and logged
- Removed redundant qualifiers
* finishing touches
Co-authored-by: Joseph Milazzo <joseph.v.milazzo@gmail.com>
* Moved LibraryWatcher to utilize a queue for calculating the change event to ensure the Watcher doesn't get overwhelmed on large moves.
* Fixed a security vulnerability (https://huntr.dev/bounties/8a3e652f-d6bf-436e-877e-0eaf5c69ef95/). This will be disclosed in Stable release changelog.
* Tweaked the log message template
* Removed some dead code from Configuration json patcher
* Fixed a bug with the ComicInfo finding to properly handle root level.
Fixed a bug where sometimes scanner wouldn't choose the first file with ComicInfo for filling out information.
* Added new setting for managing how many logs files are allowed, just like how backups work.
* Added unit tests for new CleanupLogs code
* Fixed a bug where manga reader background color wasn't actually sending from the UI
* Added new stats for tracking to help understand usage in the app and what features are used or not.
* Fixed Stats url
* Fixed a bug where volumes that had larger than 1 difference wouldn't properly return next/prev chapter (for continuous reader)
* Remove a redundant test step in build pipeline, since it's already done at PR stage.
* Updated dockerfile to use the new Heath check endpoint
* Allow force to pass through to scan loop
* Removed some old config stuff from a safety check on config in entrypoint.sh
* Fixed broken unit tests due to new RBS check and how we setup mock data.
* Bumped docnet back up, as user issue was not related to the version. Reworked the logic flow for ConfirmEmailToken. Added new test cases for a bug reported around Docnet and weird characters.
* Removed a duplicate remove from want to read list
* Fixed an issue where series detail didn't appopriately handle remove from want to read.
* Added pagination information to want to read, fixed remove from want to read not reloading page
* When clearing a series of bookmarks, automatically refresh page.
* Added a continue button on reading list page so user can continue where they left off (progress) or start at beginning
* Added todo about design idea
* Added a bug marker
* Updated Series Info Cards to use OnPush and hooked in progress events when we do a mark as read/unread on entities. These events update progress bars but also will now trigger a re-calculation on Read Time Left.
* Removed Library Card Component
* Refactored manga reader title and subtitle calculation to the backend.
* Coverted card actionables to onPush
* Series Card on push cleanup
* Updated edit collection tags for on push
* Update cover image chooser for on push
* Cleaned up carsouel reel
* Updated cover image to allow for uploading gif and webp files
* Bulk add to collection on push
* Updated bulk operation to use on push. Updated bulk operation to have mark as unread and read buttons explicitly. Updated so add to collection is visible and delete.
Fixed a bug where manage library component wasn't invoking the trackBy function
* Updating entity title for on push
* Removed file info component
* Updated Mange Library for on push
* Entity info cards on push
* List item on push
* Updated icon and title for on push and fixed some missing change detection on series detail
* Restricted the typeahead interface to simplify the design
* Edit Series Relation now shows a value in the dropdown for Parent relationships and disables the field.
* Updated edit series relation to focus on new typeahead when adding a new relationship
* Added some documentation and when Scanning a library, don't allow the user to enqueue the same job multiple times.
* Applied the No-enqueue if already enqueued logic to other tasks
* Library detail on push
* Updated events widget to onpush
* Card detail drawer on push. Card detail cover chooser now will show all chapter's covers for selection in cover chooser.
* Chapter metadata detail on push
* Removed Card Detail modal
* All collections on push
* Removed some comments
* Updated bulk selection to use an observable rather than function calls so new on push strategy works
* collection detail now uses on push and scroller is placed on correct element
* Updated library recommended to on push. Ensure that when mark as read occurs, the appropriate streams are refreshed.
* Updated library detail to on push
* Update metadata fiter to onpush. Bugs found and reported to Project
* person badge on push
* Read more on push
* Updated tag badge to on push
* User login on push
* When initing side nav, don't call an authenticated api until we are sure a user is logged in
* Updated splash container to on push
* Dashboard on push
* Side nav slight refactor around some api calls
* Cleaned up series card on push to use same cdRef naming convention
* Updated Static Files to use caching
* Added width and height to logo image
* shortcuts modal on push
* reading lists on push
* Reading list detail on push
* draggable ordered list on push
* Refactored reading-list-detail to use a new item which drastically reduces renders on operations
* series format on push
* circular loader on push
* Badge Expander on push
* update notification modal on push
* drawer on push
* Edit Series Modal on push
* reset password on push
* review series modal on push
* series metadata detail on push
* theme manager on push
* confirm reset password on push
* register on push
* confirm migration email on push
* confirm email on push
* add email to account migration on push
* user preferences on push. Made global settings default open
* edit series relation on push
* Fixed an edge case bug for next chapter where if the current volume had a single chapter of 1 and the next volume had a chapter number of 0, it would say there are no more chapters.
* Updated infinite scroller with on push support
* Moved some animations over to typeahead, not integrated yet.
* Manga reader is now on push
* Reader settings on push
* refactored how we close the book
* Updated table of contents for on push
* Updated book reader for on push. Fixed a bug where table of contents wasn't showing current page anchor due to a scroll calulation bug
* Small code tweak
* Icon and title on push
* nav header on push
* grouped typeahead on push
* typeahead on push and added a new trackby identity function to allow even faster rendering of big lists
* pdf reader on push
* code cleanup
* 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
* Have actionables on series detail action bar and in title to make it easier to use.
* Fixed a bug where super long titles could render over the book content
* Fixed a bug in get continue point where it wasn't working in an edge case
* One more unit test for Tachiyomi
* Removed some debug code in the manga reader menu
* Fixed a typeahead bug where using Enter on add new item or selected options could cause items to disappear from selected state or other visual glitches
* Actually fix the selection issue. We needed to filter out selected before we access element
* Cleaned up collection detail page to align to new side nav design
* Cleaned up some styling on the reading list page
* Fixed a bug where side nav would not be visible on the main app due to some weird redirect logic
* Fixed a bug where when paging to the last page, a page will be skipped and user will have to refresh manually to view
* Fixed some styling bugs on drawer for light themes. Added missing pagination colors on light themes
* On mobile screens, add some padding on series-detail page
* Fixed a bad test case helper
* Moved libraryType into chapter info
* Fixed a bug where you could not reset cover on a series
* Patched in relevant changes from another polish branch
* Refactored invite user setup to shift the checking for accessibility to the backend and always show the link. This will help with users who have some unique setups in docker.
* Refactored invite user to always print the url to setup a new account.
* Single page renderer uses canvasImage rather than re-requesting and relying on cache
* Fixed a rendering issue where fit to split on single on a cover wouldn't force width scaling just for that image
* Fixed a rendering bug with split image functionality
* Added title to copy button
* Fixed a bug in GetContinuePoint when a chapter is added to an already read volume and a new chapter is added loose leaf. The loose leaf would be prioritized over the volume chapter.
Refactored 2 methods from controller into service and unit tested.
* Fixed a bug on opening a volume in series detail that had a chapter added to it after the volume (0 chapter) was read would cause a loose leaf chapter to be opened.
* Added mark as read/actionables on Files in volume detail modal. Fixed a bug where we were showing the wrong page count in a volume detail modal.
* Removed OnDeck page and replaced it with a pre-filtered All-Series. Hooked up the ability to pass read state to the filter via query params. Fixed some spacing on filter post bootstrap update.
* Fixed up some poor documentation on FilterDto.
* Some string equals enhancements to reduce extra allocations
* Fixed an issue when trying to download via a url, to remove query parameters to get the format
* Made an optimization to Normalize method to reduce memory pressure by 100MB over the course of a scan (16k files)
* Adjusted the styles on dashboard for first time setup and used a routerlink rather than href to avoid a fresh load.
* Use framgment on router link
* Hooked in the ability to search by release year (along with series optionally) and series will be returned back.
* Fixed a bug in the filter format code where it was sending the wrong type
* Only show clear all on typeahead when there are at least one selected item
* Cleaned up the styles of the styles of the typeahead
* Removed some dead code
* Implemented the ability to filter against a series name.
* Fixed filter top offset
* Ensure that when we add or remove libraries, the side nav of users gets updated.
* Tweaked the width on the mobile side nav
* Close side nav on clicking overlay on mobile viewport
* Don't show a pointer if the carousel section title is not actually selectable
* Removed the User profile on the side nav so home is always first. Tweaked styles to match
* Fixed up some poor documentation on FilterDto.
* Fixed a bug where Latest read date wasn't being set due to an early short circuit.
* When sending the chapter file, format the title of the FeedEntry more like Series Detail.
* Removed dead code
* adding back side-nav
* Event Widget Update (#1098)
* Took care of some notes in the code
* Fixed an issue where Extra might get flagged as special too early, if in a word like Extraordinary
* Moved Tag cleanup code into Scanner service. Added a SplitQuery to another heavy API. Refactored Scan loop to remove parallelism and use async instead.
* Lots of rework on the codebase to support detailed messages and easier management of message sending. Need to take a break on this work.
* Progress is being made, but slowly. Code is broken in this commit.
* Progress is being made, but slowly. Code is broken in this commit.
* Fixed merge issue
* Fixed unit tests
* CoverUpdate is now hooked into new ProgressEvent structure
* Refactored code to remove custom observables and have everything use standard messages$
* Refactored a ton of instances to NotificationProgressEvent style and tons of the UI to respect that too. UI is still a bit buggy, but wholistically the work is done.
* Working much better. Sometimes events come in too fast. Currently cover update progress doesn't display on UI
* Fixed unit tests
* Removed SignalREvent to minimize internal event types. Updated the UI to use progress bars. Finished SiteThemeService.
* Merged metadata refresh progress events and changed library scan events to merge cleaner in the UI
* Changed RefreshMetadataProgress to CoverUpdateProgress to reflect the event better.
* Theme Cleanup (#1089)
* Fixed e-ink theme not properly applying correctly
* Fixed some seed changes. Changed card checkboxes to use our themed ones
* Fixed recently added carousel not going to recently-added page
* Fixed an issue where no results found would show when searching for a library name
* Cleaned up list a bit, typeahead dropdown still needs work
* Added a TODO to streamline series-card component
* Removed ng-lazyload-image module since we don't use it. We use lazysizes
* Darken card on hover
* Fixing accordion focus style
* ux pass updates
- Fixed typeahead width
- Fixed changelog download buttons
- Fixed a select
- Fixed various input box-shadows
- Fixed all anchors to only have underline on hover
- Added navtab hover and active effects
* more ux pass
- Fixed spacing on theme cards
- Fixed some light theme issues
- Exposed text-muted-color for theme card subtitle color
* UX pass fixes
- Changed back to bright green for primary on dark theme
- Changed fa icon to black on e-ink
* Merged changelog component
* Fixed anchor buttons text decoration
* Changed nav tabs to have a background color instead of open active state
* When user is not authenticated, make sure we set default theme (dark)
* Cleanup on carousel
* Updated Users tab to use small buttons with icons to align with Library tab
* Cleaned up brand to not underline, removed default link underline on hover in dropdown and pill tabs
* Fixed collection detail posters not rendering
Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
* Bump versions by dotnet-bump-version.
* Tweaked some of the emitting code
* Some css, but pretty bad. Robbie please save me
* Removed a todo
* styling update
* Only send filename on FileScanProgress
* Some console.log spam cleanup
* Various updates
* Show events widget activity based on activeEvents
* progress bar color updates
* Code cleanup
Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
* Bump versions by dotnet-bump-version.
* Scanner event hub fix (#1099)
* Scanner event hub fix
- Fixed an issue where the scanner would error when adding a new series because the series didn't have a library name yet. (develop)
* Removing library.type
* Bump versions by dotnet-bump-version.
* Workflow update to add nightly versions (#1100)
# Changed
- Changed: Changed automated workflow to release individual nightly versions on dockerhub
* Bump versions by dotnet-bump-version.
* Updating GA to parse version (#1101)
* Bump versions by dotnet-bump-version.
* GA Fixes (#1103)
**Strictly Repo Changes**
# Fixed
- Fixed: Fixed an issue where patch version was not being added to docker tag.
* Bump versions by dotnet-bump-version.
* Fixed specials being misaligned (#1106)
# Fixed
- Fixed: Fixed issue with specials not being properly aligned (develop)
* Bump versions by dotnet-bump-version.
* Bugfix/ux pass 2 (#1107)
* Adding margin bottom to series detail tabs
* Styling tag badges with green on dark
- Added 3 new css vars
* Removing underline from readmore
* Fixing see more to be on one line
* adding gutter to see more
* Changing queue toasts to info
* adding api key tooltip
* Updating active accordion on user preference.
* Fixing search bar and close btn position
* Fixed a bug where entering book reader in dark mode then closing out, would leave you in a broken white state.
* Fixed broken wiki links
Co-authored-by: Joseph Milazzo <joseph.v.milazzo@gmail.com>
* Bump versions by dotnet-bump-version.
* Series Detail Refactor (#1118)
* Fixed a bug where reading list and collection's summary wouldn't render newlines
* Moved all the logic in the UI for Series Detail into the backend (messy code). We are averaging 400ms max with much optimizations available. Next step is to refactor out of controller and provide unit tests.
* Unit tests for CleanSpecialTitle
* Laid out foundation for testing major code in SeriesController.
* Refactored code so that read doesn't need to be disabled on page load. SeriesId doesn't need the series to actually load.
* Removed old property from Volume
* Changed tagbadge font size to rem.
* Refactored some methods from SeriesController.cs into SeriesService.cs
* UpdateRating unit tested
* Wrote unit tests for SeriesDetail
* Worked up some code where books are rendered only as volumes. However, looks like I will need to use Chapters to better support series_index as floats.
* Refactored Series Detail to change Volume Name on Book libraries to have book name and series_index.
* Some cleanup on the code
* DeleteMultipleSeries test is hard. Going to skip.
* Removed some debug code and make all tabs Books for Book library Type
* Bump versions by dotnet-bump-version.
* Tachiyomi Bugfix (#1119)
* Updated the dependencies for .NET 6.0.2
* Fixed a bad prev chapter logic where we would bleed into chapters from last volume instead of specials.
* Fixed the get prev chapter code to properly walk the order according to documentation and updated some bad test cases
* Updated side nav to float a bit and added user settings to it.
* Refactored the code to hide/show sidenav to be more angular and decoupled
* Moved Changelog out of admin dashboard and into a dedicated page in user menu. Added a wiki link from user menu
* Introduced a side nav item for rendering each item and refactored code to use it.
* Added a filter of side nav when there are more than 10 libraries. Added some themeing overrides for side nav.
* Cleaned up the template code for side nav item so if there is no link, we don't generate that html directive
* Refactored side nav into a module and migrated a few pipes into a pipe module for easy re-use
* Added companion bar on reading list and collection. Updated modules to load pages and make side nav items clickable as anchors, so new tab works.
* Moved metadata filter into separate component/module and the button in the companion bar. Needs cleanup.
* Finished cleanup and refactoring of metadata filter into separate component.
Removed filtering from Collections as it doesn't work and wasn't hooked up.
* Tweaked the css on carousel component
* Added to library detail and series-detail
* Fixes and css vars
* Stop destroying sidenav, animaton timing
* Integrated side nav on the rest of the pages
* Navbar now collapses to icons
* mobile sidenav start
* more mobile fixes
* mobile tweaks
* light and e-ink theme updates
* white and eink dropdown color fixes
* plex inspired side-nav
* theme fixes
* Making spacing more uniform across app
* More fixes
* fixing spacing on cards
* actionable fix for sidenav
* no scroll on mobile when sidenav is open
* hide sidenav on pages
* Adding card spacing
* Adding ability to remove sidenav when in a reader
* tidying up sidenav toggles
* side-nav mobile updates
* fixing up other themes
* overlay fixes
* Cleaned up the code to make the observables have better names.
Removed a bunch of pointless subscriptions. Cleaned up methods that werent needed.
Added jsdocs to help ensure the understandability of the 2 states for the side nav.
* Integrated a highlight effect on side nav. Fixed a ton of places where the nav was being hidden when it shouldn't.
* Fixed where active state wasn't working on all urls
* misc fixes
- smaller hamburger
- z-index fixes
- active fixes
* Revert "Merge branch 'develop' into feature/side-nav-upgrade"
This reverts commit 76b0d15a984692874e0cb57e821686ea703144cf, reversing
changes made to b3ed55395473aa35577500596a211ad22a42631b.
* Fixing edit-series modal spacing
* Give the ability to jump to a library from admin manage libraries page
* Fixed a bug with highlighting active item on side nav
* Moved localized series title to companion bar via subtitle
* Removed old title
* Fixed a bug where clicking a link would reload the whole app, styling fixes on filter, fixed issue with initial load not setting active state, adjusted styles on active style.
* code cleanup
Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
* Fixed a bug where GetNextChapter would return a loose leaf chapter from a special when it should return nothing.
* Fixed a bug in events widget when an update comes in after a user refreshes, the active event counter could get out of sync, thus showing "Nothing going on here"
Refactored the events widget to be named appropriately.
* Refactored code to have errors during threaded tasks propagate to the UI via events widget (css still needed).
Removed ScanLibraryError in favor of generic Error event.
* Fixed up some code and added ability to remove the event from events widget
* Fixed a bug where modifiying certain fields, like summary, wouldn't lock the field
* Fixed a few bugs where lock state was not being set in the DB correctly nor were certain combinations of locking fields and editing fields.
* Removed debug code
* Updated the discord alert to tag new group
* Refactored cover upload to actually handle uploading a temp file via url on the backend so that users can user change cover by url. Fixed up some bugs that occured when chaning the image container in a previous PR.
* Code cleanup
* Cleaned up the css on the error items
* Code cleanup
* Moved libraryType into chapter info
* Fixed a bug where you could not reset cover on a series
* Patched in relevant changes from another polish branch
* Refactored invite user setup to shift the checking for accessibility to the backend and always show the link. This will help with users who have some unique setups in docker.
* Refactored invite user to always print the url to setup a new account.
* Single page renderer uses canvasImage rather than re-requesting and relying on cache
* Fixed a rendering issue where fit to split on single on a cover wouldn't force width scaling just for that image
* Fixed a rendering bug with split image functionality
* Added title to copy button
* Fixed a bug in GetContinuePoint when a chapter is added to an already read volume and a new chapter is added loose leaf. The loose leaf would be prioritized over the volume chapter.
Refactored 2 methods from controller into service and unit tested.
* Fixed a bug on opening a volume in series detail that had a chapter added to it after the volume (0 chapter) was read would cause a loose leaf chapter to be opened.
* Added mark as read/actionables on Files in volume detail modal. Fixed a bug where we were showing the wrong page count in a volume detail modal.
* Removed OnDeck page and replaced it with a pre-filtered All-Series. Hooked up the ability to pass read state to the filter via query params. Fixed some spacing on filter post bootstrap update.
* Fixed up some poor documentation on FilterDto.
* Added the skeleton code for layout, hooked up Age Rating, Publication Status, and Tags
* Tweaked message of Scan service to Finished scan of to better indicate the total scan time
* Hooked in foundation for person typeaheads
* Fixed people not populating typeaheads on load
* For manga/comics, when parsing, set the SeriesSort from ComicInfo if it exists.
* Implemented the ability to override and create new genre tags. Code is ready to flush out the rest.
* Ability to update metadata from the UI is hooked up. Next is locking.
* Updated typeahead to allow for non-multiple usage. Implemented ability to update Language tag in Series Metadata.
* Fixed a bug in GetContinuePoint for a case where we have Volumes, Loose Leaf chapters and no read progress.
* Added ETag headers on Images to allow for better caching (bookmarks and images in manga reader)
* Built out UI code to show locked indication to user
* Implemented Series locking and refactored a lot of styles in typeahead to make the lock setting work, plus misc cleanup.
* Added locked properties to dtos. Updated typeahead loading indicator to not interfere with close button if present
* Hooked up locking flags in UI
* Integrated regular field locking/unlocking
* Removed some old code
* Prevent input group from wrapping
* Implemented some basic layout for metadata on volume/chapter card modal. Refactored out all metadata from Chapter object in terms of UI and put into a separate call to ensure speedy delivery and simplicity of code.
* Refactored code to hide covers section if not an admin
* Implemented ability to modify a chapter/volume cover from the detail modal
* Removed a few variables and change cover image modal
* Added bookmark to single chapter view
* Put a temp fix in for a ngb v12 z-index bug (reported). Bumped ngb to 12.0 stable and fixed some small rendering bugs
* loading buttons ftw
* Lots of cleanup, looks like the story is finished
* Changed action name from Info to Details
* Style tweaks
* Fixed an issue where Summary would assume it's locked due to a subscription firing on setting the model
* Fixed some misc bugs
* Code smells
Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
* 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
* Fixed a bug where ComicInfo Count can be a float and we threw a parse error.
* Fixed a bug in download bookmarks which didn't properly create the filepaths for copying. Refactored into a service with a unit test.
In Scanner, repull genres, people and tags between chunk saves to ensure no unique constraint issues.
* Fixed a bug where card detail layout wouldn't refresh the library name on the card between pages
* Fixed an issue where a check to scrolling page back to top was missing in manga reader
* Fixed a bug where cleaning up collection tags without Series was missing after editing a Series.
* Cleaned up the styles for cover chooser
* Added Regex support for "Series 001 (Digital) (somethingwith1234)" and removed support for "A Compendium of Ghosts - 031 - The Third Story_ Part 12" due to complexity in parsing.
* Fixed a miscommunication on how Tachiyomi needs the API MarkChaptersUntilAsRead implemented. Now 0 chapter volumes will be marked.
* Removed unneeded DI
* Updated the dependencies for .NET 6.0.2
* Fixed a bad prev chapter logic where we would bleed into chapters from last volume instead of specials.
* Fixed the get prev chapter code to properly walk the order according to documentation and updated some bad test cases
* Have language from epubs populate metadata
* series detail needs to reload the underlying volumes when scan event comes in, not just metadata.
* Added Id to chapter detail modal (for debugging)
* Implement IDisposable on applicable Unit Tests
* Removed unused using statements
* Fixed a bug where images would flash like crazy during a scan because the code to refresh the underlying image wasn't checking the entity type or Id.
* When filtering rating, only apply the filter to your account.
* Removed Disposable on tests
* Fixed a bug in Get Next/Prev Chapter where chapters were not correctly between volumes and specials. They now behave correctly
* Fixed the unit tests and added a lot more edge cases for GetNextChapter/GetPrevChapter
* Moved the Server Settings out into a button on nav header
* Refactored Mange Users page to the new design (skeleton). Implemented skeleton code for Invite User.
* Hashed out more of the code, but need to move all the email code to a Kavita controlled API server due to password credentials.
* Cleaned up some warnings
* When no user exists for an api key in Plugin controller, throw 401.
* Hooked in the ability to check if the Kavita instance can be accessed externally so we can determine if the user can invite or not.
* Hooked up some logic if the user's server isn't accessible, then default to old flow
* Basic flow is working for confirm email. Needs validation, error handling, etc.
* Refactored Password validation to account service
* Cleaned up the code in confirm-email to work much better.
* Refactored the login page to have a container functionality, so we can reuse the styles on multiple pages (registration pages). Hooked up the code for confirm email.
* Messy code, but making progress. Refactored Register to be used only for first time user registration. Added a new register component to handle first time flow only.
* Invite works much better, still needs a bit of work for non-accessible server setup. Started work on underlying manage users page to meet new design.
* Changed (you) to a star to indicate who you're logged in as.
* Inviting a user is now working and tested fully.
* Removed the register member component as we now have invite and confirm components.
* Editing a user is now working. Username change and Role/Library access from within one screen. Email changing is on hold.
* Cleaned up code for edit user and disabled email field for now.
* Cleaned up the code to indicate changing a user's email is not possible.
* Implemented a migration for existing accounts so they can validate their emails and still login.
* Change url for email server
* Implemented the ability to resend an email confirmation code (or regenerate for non accessible servers). Fixed an overflow on the confirm dialog.
* Took care of some code cleanup
* Removed 3 db calls from cover refresh and some misc cleanup
* Fixed a broken test
* Added extra unit cases for GetContinuePoint. Fixed a bug where if the series was just read chapters, the first chapter wouldn't be returned and would throw an error.
* Wrote unit tests for MarkChaptersUntilAsRead for Tachiyomi and fixed a few cases where due to tracking on Tachiyomi, Volumes with a single 0 chapter would get marked as read.
* Added a lot of tests
* More tests! Added a Parser.NormalizePath to normalize all paths within Kavita.
* Fixed a bug where MarkChaptersAsUnread implementation wasn't consistent between different files and lead to extra row generation for no reason.
* Added more unit tests
* Found a better implementation for Natural Sorting. Added tests and validate it works. Next commit will swap out natural Sort for new Extension.
* Replaced NaturalSortComparer with OrderByNatural.
* Drastically simplified and sped up FindFirstEntry for finding cover images in archives
* Initial fix for a epub bug where metadata defines key as absolute path but document uses a relative path. We now have a hack to correct for the epub.