* Fixed an issue where cover update events wouldn't refresh an image after the second event came through due to randomization
* Fixed an issue where download event wasn't send consistently when downloading files.
* Fixed a bug where you couldn't add a new role to a user
* Fixed a bug where if you went to edit user library, the roles would get reset to nothing
* Adjust the rendering on reading list page to be better on smaller screens (and worse on larger ones)
* Tweaked the refresh covers message to use queued and not started
* Cleaned up the code for image on when to update based on CoverUpdate event. On dashboard, don't spam reload recently added on every series update or scan complete. Debouce for 1 second between calls.
* Fixed an issue where we sent an error on forgot password confirmation, but really, it was successful.
* Added Reading Lists and Library to search results
* Fixed a bug in the search component where hitting esc to close overlay then typing again wouldn't reopen the overlay
* When resending invites, send the correct link for an invite
* Tell the admin an email was sent on invite
* Fixed the error interceptor to flatten validation error messages more robustly and now confirm email will show validation exceptions
* Fixed a bug in webtoon reader where we were reading the wrong dimension for fitting images to screen on render
* When generating email links, inform who they are for in the logs.
Fixed an issue with an error message on login when password was incorrect, but user hadn't confirmed email yet.
Fixed multiple cases where migration wasn't sending error messages back correctly and hence the user never saw them.
* Show errors on migration UI form
* Changed log rolling to be easier to understand
* Added some extra logic to throw unauthorized
* Tweaked some wording to inform user how to best find email link
* Fixed a code smell
* 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
* Tweaked how the migration to change users with ChangePassword role happens. It will now only run once.
* Refactored bookmarks into it's own service with unit tests. Bookmark management happens in real time and we no longer delete bookmarks on a schedule. This means once you bookmark something, even if you delete the entity, the files will remain.
* Commented out a test that no longer is needed
* Refactored the way cover images are updated from SignalR to use an explicit event that is sent at a granular level for a given type of entity.
Fixed a bad event listener for RefreshMetadata (now removed) to update metadata on Series Detail. Now uses ScanService, which indicates a series has completed a scan.
* Lots of attempts at making webtoon stable. Kinda working kinda not.
* Added a new boolean to hide images until the first prefetch loads the images, to prevent jankiness
* On Search, remove : from query
* Added HasBookmark and NumberOfLibraries to stat service
* Cleaned up some dead code
* Fixed a bug where page number wasn't reset between chapter loads with infinite scroller
* Added recently added series back into the dashboard.
* Cleaned up some code in search bar
Fixed a bad event listener for RefreshMetadata (now removed) to update metadata on Series Detail. Now uses ScanService, which indicates a series has completed a scan.
* Rewrote the delete bookmarked page logic to be more precise with the way it deletes.
* Tell user migration email link is in log
* Fixed up the email service tooltip
* Tweaked messaging
* Removed some dead code from series detail page
* Default to SortName sorting when nothing is explicitly asked
* Updated typeahead to work with changes and fix enter on new/old items
* Cleaned up some extra logic in search result rendering code
* On super small screens (300px width or less), move the server settings to user dropdown
* When downloading bookmarks, prepend the images with chapterId to ensure there are no conflicts.
* Fixed a case where email service wasn't using the custom email service.
* Changed how we render some text in search results
* Update the recently when we receive scan events
* Tweaked the backend for recently updated series to allow for 100 more items to be calculated against.
Close the account migration screen after migration email is sent.
* Cleaned up some code
* Mobile search bar fixes
# Fixed
- Fixed: Fixed an issue with longer usernames causing header to wrap to another line. (develop)
- Fixed: Fixed an issue where the close button for the search was not centered on mobile. Verified on iOS Safari and iOS Chrome. (develop)
* Adding artist to search, fixing cover artist in search
* Changed the default margin for mobile in book reader to 5%
* Fixed a bug where checking for update did no current version validation before sending the update to the UI.
* Added some documentation to the book code
* Changed token expiry to 2 weeks.
* Search bar will by default not have a border outline
* Cleaned up some styles for white mode hovering on search
* Added missing genre search group, reworked some clearing code, fixed click handlers
* Fixed genre property
* Changed the series title to show bookmarks and the edit button will now take you to series
* Fixed up accordion tabpanel color in dark mode
* Fixed a typo of CoverArtist instead of "Cover artist"
* Added some documentation changes
* Fixed a bug where sort options on All-Series wasn't working
* Added a thanks to Palace-Designs who hosts our infrastructure to the readme.
* Fixed a bug where duplicate people for the same role would be returned
* Fixed a bug where when user cleared out input manually, search would retain old search results
* Added ServerSettingKey's for SMTP and moved email service code to Kavita. Nothing integrated in the UI yet.
* Undo all the custom SMTP stuff and prepare for custom email service url.
* Foundation for email service to use a custom url is setup.
* Implemented the ability to hook up custom email url
* Implemented a basic version of enhanced search where we can return multiple types of entities in one go. Current unoptimized version is twice as expensive as normal search, but under NFR. Currently 200ms max.
* Worked in some basic code for grouped typeahead search component. Keyboard navigation is working.
* Most of the code is in place for the typeahead. Needs css work and some accessibility work.
* Hooked up filtering into all-series. Added debouncing on search, clear input field now works. Some optimizations related to memory cleanup
* Added ability to define a custom placeholder
* Hooked in noResults template and logic
* Fixed a duplicate issue in Collection tag searching and commented out old code. OPDS still needs some updates.
* Don't trigger inputChanged when reopening/clicking on input.
* Added Reading list to OPDS search
* Added a new image component so all the images can be lazyloaded without logic duplication
* Added a maxWidth/Height on the image component
* Search css update
* cursor fixes
* card changes
- fixing border radius on cards
- adding bottom card color
* Expose intenral state of if the search component has focus
* Adjusted the accessibility to not use complex keys and just use tab instead since this is a search, not a typeahead
* Cleaned up dead code, removed angular-ng-complete library as it's no longer used.
* Fixes for mobile search
* Merged code
* Fixed a bad merge and some nav bar styling
* Cleaned up the focus code for nav bar
* Removed focusIndex and just use hover state. Fixed clicking on items
* fixing overlay overlap issue
Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>