* Updated cover regex for finding cover images in archives to ignore back_cover or back-cover
* Fixed an issue where Tags wouldn't save due to not pulling them from the DB.
* Refactored All series to it's own lazy loaded module
* Modularized Dashboard and library detail. Had to change main dashboard page to be libraries. Subject to change.
* Refactored login component into registration module
* Series Detail module created
* Refactored nav stuff into it's own module, not lazy loaded, but self contained.
* Refactored theme component into a dev only module so we don't incur load for temp testing modules
* Finished off modularization code. Only missing thing is to re-introduce some dashboard functionality for library view.
* Implemented a basic recommendation page for library detail
* 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
* Fixed an issue where when falling back to folder parsing, sometimes the folder name wouldn't parse well, like "Foo 50" which parses as "Foo". Now the fallback will check if we have a solid series parsed from filename before we attempt to parse a folder.
* Ensure SortName is set during a scan loop even if locked and it's empty string.
* Added some null checks for metadata update
* Fixed a bug where Updating a series name with a name of an existing series wouldn't properly check for existing series.
* Tweaked the logic of OnDeck to consider LastChapterCreated from all chapters in a series, not just those with progress.
* Fixed a bug where the hamburger menu was still visible on login/registration page despite not functioning
* Tweaked the logic of OnDeck to consider LastChapterCreated from all chapters in a series, not just those with progress.
* Removed 2 unused packages from ui
* Fixed some bugs around determining what the current installed version is in Announcements
* Use AnyAsync for a query to improve performance
* Fixed up some fallback code
* Tests are finally fixed
* Cleaned up some styles on the progress bar in book reader
* Fixed up some phone-hidden classes and added titles around the codebase. Stat reporting on first run now takes into account that admin user wont exist.
* Fixed manage library page not updating last scan time when a notification event comes in.
* Integrated SeriesSort ComicInfo tag (somehow it got missed)
* Some minor style changes and no results found for bookmarks on chapter detail modal
* Fixed the labels in action bar on book reader so Prev/Next are in same place
* Cleaned up some responsive styles around images and reduced custom classes in light of new display classes on collection detail and series detail pages
* Fixed an issue with webkit browsers and book reader where the scroll to would fail as the document wasn't fully rendered. A 10ms delay seems to fix the issue.
* Cleaned up some code and filtering for collections. Collection detail is missing filtering functionality somehow, disabled the button and will add in future release
* Correctly validate and show a message when a user is not an admin or has change password role when going through forget password flow.
* Fixed a bug on manage libraries where library last scan didn't work on first scan of a library, due to there being no updated series.
* Fixed a rendering issue with text being focused on confirm email page textboxes. Fixed a bug where when deleting a theme that was default, Kavita didn't reset Dark as the default theme.
* Cleaned up the naming and styles for side nav active item hover
* Fixed event widget to have correct styling on eink and light
* Tried to fix a rendering issue on side nav for light themes, but can't figure it out
* On light more, ensure switches are green
* Fixed a bug where opening a page with a preselected filter, the filter toggle button would require 2 clicks to collapse
* Reverted the revert of On Deck.
* Improved the upload by url experience by sending a custom fail error to UI when a url returns 401.
* When deleting a library, emit a series removed event for each series removed so user's dashboards/screens update.
* Fixed an api throwing an error due to text being sent back instead of json.
* Fixed a refresh bug with refreshing pending invites after deleting an invite. Ensure we always refresh pending invites even if user cancel's from invite, as they might invite, then hit cancel, where invite is still active.
* Fixed a bug where invited users with + in the email would fail due to validation, but UI wouldn't properly inform user.
* Started the migration to bootstrap 5. Introduced a breakpoint system that bootstrap reflects for our screens.
* sr only migrated
* mr/ml -> me/ms
* pl/pr -> ps/pe
* btn-block
* removed input-group-append
* Added form-label to all labels
* Added some style overrides for inputs
* Replaced form-group with mb-3
* Ignore journal files
* Update media to d-flex/flex-grow-1
* Fixed reading list detail page
* For develop builds, don't inline critical styles
* Fixed some downstream security issues
* Fixed a layout issue in series detail
* Fixed issue with btn-light not having background color. Updated layout for series detail metadata
* Cleaned up nav search
* Laid out the organization for custom theme components. Update _inputs.scss with variable overrides and depending on theme, it will just work.
* Lots of theming work
* Added inputs to the theme page
* Login and input placeholder changes
- Fixed login screen centering issue on all devices
- Changed the format of the login screen
- Change the input placeholder color
* Added checkbox styles
* Refactored tagbadges and removed some ngdeep selectors
* Added nav bar component and refactored some styles into event widget
* Cleaned nav events again and made dedicated popover body
* Finished pagination component
* Fixed up some styles with buttons
* refactored dropdown component
* Update accordion component
* Refactored breadcrumbs and rating star. Fixed a missing style for cards
* Fixed some styling issues on person badge, added modal component, and some global styles
* Finished moving everything within dark to component files
* Fixed up filter buttons, move card styles into a component theme, fixed slider style
* Refactored library card and grouped typeahead
* Updated normal typeahead component and reduced amount of ngdeep selector
* Refactored grid breakpoints to be available by css variable, but it's hardcoded into the app
* Ensure breakpoints are defined per theme
* Fixed up some styling overrides and customization for nav links and alt button
* Removed some deep styles, moved css out of splash container and brough back labels for login page
* Finished css variable refactor
* Refactored all the theme variable definitions into files for each theme.
* Added back bootstrap overrides
* Added a note about bootstrap theme colors being not-possible to swap out at runtime
* Cleaned up some dead code
* Implemented the ability to set a custom theme on the site. Cleaned up misc code throughout.
* Additional changes
- Fixed nav where "kavita" was not hiding correctly on small viewports
- Fixed search bar to make the behavior more consistent
- Fixed accordion buttons
- Changed accordion buttons to be more responsive
- Added radio button colors
- Fixed radios on theme test page
- Changed login and reset password card layouts to be more consistent.
- Added primary color shade for when darker shading is needed.
* Built a basic site, allow the user to apply different themes, refactored nav service code out.
* Implemented the ability update a user's theme
* Added unit tests for Scan and Get Content in SiteThemeService.
* Fixed a bug in the login code and Pref code which wasn't joining on SiteTheme table. Wrote Unit tests and the UI component to manage current theme.
* Implemented scan so that it manages custom themes with unit tests
* Component updates
- Repositioning style ordering
- Adding indicator override
- Adding select styles
* SignlaR integration, some fixes when creating custom entities, one single migration. Just login functionality left.
* More ui updated
- Added .no-hover to prevent hover on elements where not needed
- Changed all selects I could find to appropriate class
- Changed up nav tabs to work more like bootstrap tabs than pills
- Added padding to top of some containers to make styles consistent
- Added ability to change navbar fontawesome icon colors
- removed some unecessary inline styling
- Changed radio button to appropriate class
- Toned down primate color, a bit too bright for dark theme.
- Added ability to change button fontawesome icon color
* nav-tab fix for series-detail
* Added themes folder to gitignore
* Adding card overlay
* Fixing up light theme
* Everything is done. Only bug is that color-scheme isn't being set properly from css variable.
* Checkboxes have pointer by default. Confirm/Confirm email use default (dark) theme by default
* Fixed an error where color-scheme wasn't reflecting correctly on themes on first load
* Fixed user preferences not available on login
* Changing dual radios to switches and color tweaks
* disabled primary APCA fix
* button APCA fixes
* Fixed some timing issues with first load and image service
* Fixed swiper issues from upgrade
* Changed themes to be scss files again and adjusted Seed code
* Migrated carousel to css variables. Fixed a broken animation for search.
* Cleaned up some backend smells
* Fixed white border outline on nav tabs, added some variables for header
* Nav bar has been css variable-ified
* Added some basic eink stuff to make the app useable
Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
* 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
* 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
* 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
* Implemented forgot password flow. Fixed a bug in manage user where admins were showing the Sharing With section.
* Cleaned up the reset password flow.
* Reverted some debug code
* Fixed an issue with invites due to ImmutableArray not being set.
* 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.
* Removed all code around disabling authentication. Users that were already disabled can look up their password on the wiki.
* 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