From 26ff71f42bb41340e0e96b2d4be57c76491fae11 Mon Sep 17 00:00:00 2001 From: Joe Milazzo Date: Sat, 20 Sep 2025 15:16:21 -0500 Subject: [PATCH] OPDS Enhancements, Epub fixes, and a lot more (#4035) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Amelia <77553571+Fesaa@users.noreply.github.com> Co-authored-by: Robbie Davis Co-authored-by: Fabian Pammer Co-authored-by: Vinícius Licz --- API.Tests/Services/BookServiceTests.cs | 17 + API.Tests/Services/CleanupServiceTests.cs | 6 +- API.Tests/Services/SiteThemeServiceTests.cs | 6 +- .../BookService/Relative Key Test File.epub | Bin 0 -> 681985 bytes API/Controllers/AccountController.cs | 25 +- API/Controllers/AnnotationController.cs | 11 + API/Controllers/BookController.cs | 15 +- API/Controllers/ChapterController.cs | 4 +- API/Controllers/ColorScapeController.cs | 2 +- API/Controllers/FallbackController.cs | 7 +- API/Controllers/OPDSController.cs | 343 +- API/Controllers/ReaderController.cs | 14 +- API/Controllers/SeriesController.cs | 2 +- API/Controllers/SettingsController.cs | 3 + API/Controllers/UsersController.cs | 1 + API/DTOs/OPDS/Feed.cs | 9 +- API/DTOs/Reader/AnnotationDto.cs | 1 + API/DTOs/Reader/BookResourceResultDto.cs | 16 + API/DTOs/UserPreferencesDto.cs | 3 + API/Data/DataContext.cs | 3 + ...250919114119_ColorScapeSetting.Designer.cs | 3854 +++++++++++++++++ .../20250919114119_ColorScapeSetting.cs | 29 + .../Migrations/DataContextModelSnapshot.cs | 5 + .../AppUserSmartFilterRepository.cs | 11 + API/Data/Repositories/ChapterRepository.cs | 53 +- .../Repositories/CollectionTagRepository.cs | 14 + API/Data/Repositories/GenreRepository.cs | 8 +- .../Repositories/ReadingListRepository.cs | 20 +- API/Data/Repositories/UserRepository.cs | 38 +- API/Entities/AppUserPreferences.cs | 4 + API/Entities/Enums/LibraryType.cs | 3 +- API/Extensions/StringExtensions.cs | 12 + API/Helpers/AnnotationHelper.cs | 7 +- API/Helpers/AutoMapperProfiles.cs | 2 +- API/Helpers/PagedList.cs | 5 + API/I18N/en.json | 4 +- API/Services/AccountService.cs | 29 + API/Services/BookService.cs | 47 +- API/Services/KoreaderService.cs | 2 +- API/Services/OidcService.cs | 3 +- API/Services/SettingsService.cs | 10 +- API/Services/TachiyomiService.cs | 2 +- API/Services/Tasks/SiteThemeService.cs | 4 +- API/Startup.cs | 4 +- README.md | 10 +- UI/Web/angular.json | 11 + UI/Web/package.json | 2 + UI/Web/proxy.conf.json | 37 + UI/Web/src/app/_guards/auth.guard.ts | 10 +- .../src/app/_guards/library-access.guard.ts | 4 +- .../app/_interceptors/error.interceptor.ts | 9 +- .../src/app/_interceptors/jwt.interceptor.ts | 4 +- .../app/_models/preferences/preferences.ts | 1 + UI/Web/src/app/_pipes/default-date.pipe.ts | 5 +- UI/Web/src/app/_pipes/language-name.pipe.ts | 4 +- .../app/_pipes/library-type-subtitle.pipe.ts | 30 + UI/Web/src/app/_pipes/manga-format.pipe.ts | 4 +- .../src/app/_pipes/publication-status.pipe.ts | 5 +- UI/Web/src/app/_pipes/read-time-left.pipe.ts | 4 +- UI/Web/src/app/_pipes/read-time.pipe.ts | 5 +- UI/Web/src/app/_pipes/sort-field.pipe.ts | 5 +- UI/Web/src/app/_pipes/time-ago.pipe.ts | 8 +- .../_resolvers/reading-profile.resolver.ts | 4 +- .../src/app/_resolvers/url-filter.resolver.ts | 4 +- UI/Web/src/app/_services/account.service.ts | 10 - .../app/_services/action-factory.service.ts | 7 +- .../src/app/_services/annotation.service.ts | 4 + UI/Web/src/app/_services/chapter.service.ts | 6 +- .../app/_services/collection-tag.service.ts | 7 +- .../src/app/_services/colorscape.service.ts | 7 +- UI/Web/src/app/_services/dashboard.service.ts | 5 +- UI/Web/src/app/_services/device.service.ts | 7 +- UI/Web/src/app/_services/email.service.ts | 5 +- .../app/_services/epub-reader-menu.service.ts | 34 + .../_services/epub-reader-settings.service.ts | 17 +- .../app/_services/external-source.service.ts | 5 +- UI/Web/src/app/_services/filter.service.ts | 5 +- UI/Web/src/app/_services/image.service.ts | 5 +- UI/Web/src/app/_services/library.service.ts | 8 +- .../src/app/_services/localization.service.ts | 4 +- UI/Web/src/app/_services/member.service.ts | 6 +- UI/Web/src/app/_services/metadata.service.ts | 6 +- UI/Web/src/app/_services/nav.service.ts | 9 +- UI/Web/src/app/_services/person.service.ts | 7 +- .../src/app/_services/reading-list.service.ts | 7 +- .../app/_services/recommendation.service.ts | 7 +- UI/Web/src/app/_services/review.service.ts | 6 +- .../src/app/_services/scrobbling.service.ts | 8 +- UI/Web/src/app/_services/search.service.ts | 6 +- UI/Web/src/app/_services/series.service.ts | 7 +- UI/Web/src/app/_services/server.service.ts | 6 +- .../src/app/_services/statistics.service.ts | 11 +- UI/Web/src/app/_services/theme.service.ts | 42 +- UI/Web/src/app/_services/toggle.service.ts | 6 +- UI/Web/src/app/_services/upload.service.ts | 4 +- UI/Web/src/app/_services/volume.service.ts | 6 +- .../age-rating-image.component.html | 2 +- .../annotations-tab.component.html | 16 +- .../annotations-tab.component.ts | 13 +- .../card-actionables.component.html | 8 +- .../card-actionables.component.scss | 4 - .../cover-image/cover-image.component.html | 6 +- .../details-tab/details-tab.component.html | 28 +- .../edit-chapter-modal.component.html | 20 +- .../edit-volume-modal.component.html | 8 +- .../match-series-modal.component.html | 4 +- .../match-series-result-item.component.html | 6 +- .../publisher-flipper.component.html | 12 +- .../related-tab/related-tab.component.html | 8 +- .../review-card-modal.component.ts | 17 +- .../review-card/review-card.component.html | 2 +- .../review-card/review-card.component.ts | 5 +- .../reviews/reviews.component.html | 4 +- .../series-preview-drawer.component.html | 10 +- .../directory-picker.component.html | 110 +- .../directory-picker.component.ts | 13 +- .../admin/edit-user/edit-user.component.html | 6 +- .../import-mappings.component.html | 13 +- .../invite-user/invite-user.component.html | 8 +- .../library-selector.component.html | 2 +- .../app/admin/license/license.component.html | 4 +- .../app/admin/license/license.component.scss | 5 - .../manage-library.component.html | 17 +- .../manage-library.component.scss | 13 - .../manage-matched-metadata.component.html | 2 +- .../manage-open-idconnect.component.html | 12 +- ...ge-public-metadata-settings.component.html | 2 +- .../manage-scrobbling.component.html | 4 +- .../manage-system.component.html | 2 +- .../manage-users/manage-users.component.html | 6 +- UI/Web/src/app/admin/settings.service.ts | 6 +- .../all-filters/all-filters.component.html | 2 +- .../all-series/all-series.component.html | 4 +- .../announcements.component.html | 2 +- .../changelog-update-item.component.html | 18 +- .../changelog/changelog.component.html | 4 +- .../new-update-modal.component.html | 2 +- .../update-notification-modal.component.html | 2 +- .../update-notification-modal.component.ts | 9 +- UI/Web/src/app/app.component.html | 12 +- UI/Web/src/app/app.component.ts | 5 +- .../annotation-card.component.html | 23 +- .../annotation-card.component.scss | 17 +- .../annotation-card.component.ts | 10 +- .../highlight-bar.component.html | 6 +- .../highlight-bar/highlight-bar.component.ts | 4 +- .../epub-setting-drawer.component.html | 11 +- .../epub-setting-drawer.component.scss | 9 + .../view-annotations-drawer.component.html | 16 +- .../view-annotations-drawer.component.scss | 8 + .../view-annotations-drawer.component.ts | 12 +- .../view-bookmark-drawer.component.html | 4 +- .../view-bookmark-drawer.component.scss | 9 + ...view-edit-annotation-drawer.component.html | 92 +- ...view-edit-annotation-drawer.component.scss | 5 + .../view-edit-annotation-drawer.component.ts | 60 +- .../view-toc-drawer.component.html | 4 +- .../view-toc-drawer.component.scss | 9 + .../book-reader/book-reader.component.html | 107 +- .../book-reader/book-reader.component.scss | 30 + .../book-reader/book-reader.component.ts | 113 +- .../quill-wrapper.component.html | 16 +- .../quill-wrapper.component.scss | 11 + .../quill-wrapper/quill-wrapper.component.ts | 10 +- .../reader-settings.component.html | 16 +- .../reader-settings.component.ts | 4 +- .../table-of-contents.component.html | 2 +- .../bookmarks/bookmarks.component.html | 4 +- .../bulk-add-to-collection.component.ts | 4 +- .../edit-collection-tags.component.html | 9 +- .../edit-series-modal.component.html | 20 +- .../src/app/cards/bulk-selection.service.ts | 8 +- .../card-detail-layout.component.html | 32 +- .../card-detail-layout.component.ts | 37 +- .../cards/card-item/card-item.component.html | 16 +- .../chapter-card/chapter-card.component.html | 12 +- .../cover-image-chooser.component.html | 8 +- .../download-indicator.component.html | 2 +- .../external-series-card.component.html | 2 +- .../next-expected-card.component.html | 2 +- .../person-card/person-card.component.html | 6 +- .../series-card/series-card.component.html | 12 +- .../volume-card/volume-card.component.html | 10 +- .../carousel-reel.component.html | 6 +- .../chapter-detail.component.html | 24 +- .../all-collections.component.html | 4 +- .../collection-detail.component.html | 14 +- .../collection-detail.component.ts | 18 +- .../collection-owner.component.html | 2 +- .../import-mal-collection.component.html | 2 +- .../_components/dashboard.component.html | 26 +- .../library-detail.component.html | 8 +- .../double-no-cover-renderer.component.html | 36 +- .../double-no-cover-renderer.component.ts | 26 +- .../double-renderer.component.html | 36 +- .../double-renderer.component.ts | 25 +- .../double-reverse-renderer.component.html | 37 +- .../double-reverse-renderer.component.ts | 46 +- .../infinite-scroller.component.ts | 26 +- .../manga-reader/manga-reader.component.html | 27 +- .../single-renderer.component.ts | 21 +- .../_service/manga-reader.service.ts | 8 +- .../metadata-filter-row.component.html | 5 +- .../metadata-filter.component.html | 11 +- .../grouped-typeahead.component.html | 26 +- .../nav-header/nav-header.component.html | 24 +- UI/Web/src/app/ng-swipe/ng-swipe.directive.ts | 10 +- .../pdf-reader/pdf-reader.component.html | 27 +- .../pdf-reader/pdf-reader.component.scss | 4 + .../pdf-reader/pdf-reader.component.ts | 3 +- .../edit-person-modal.component.html | 3 +- .../person-detail.component.html | 18 +- .../draggable-ordered-list.component.html | 12 +- .../import-cbl/import-cbl.component.html | 16 +- .../reading-list-detail.component.html | 10 +- .../reading-list-detail.component.ts | 16 +- .../reading-list-item.component.html | 8 +- .../reading-lists.component.html | 7 +- .../reading-lists/reading-lists.component.ts | 16 +- .../step-tracker/step-tracker.component.html | 18 +- .../step-tracker/step-tracker.component.ts | 7 +- .../add-to-list-modal.component.html | 56 +- .../add-to-list-modal.component.ts | 11 +- .../edit-reading-list-modal.component.html | 216 +- .../edit-reading-list-modal.component.ts | 17 +- .../confirm-email-change.component.ts | 14 +- .../confirm-email.component.html | 2 +- .../confirm-email/confirm-email.component.ts | 14 +- .../confirm-migration-email.component.ts | 12 +- .../confirm-reset-password.component.html | 22 +- .../confirm-reset-password.component.ts | 17 +- .../register/register.component.html | 4 +- .../reset-password.component.html | 20 +- .../reset-password.component.ts | 4 +- .../splash-container.component.html | 4 +- .../user-login/user-login.component.html | 2 +- .../external-rating.component.html | 10 +- .../metadata-detail-row.component.html | 6 +- .../metadata-detail.component.html | 4 +- .../rating-modal/rating-modal.component.html | 2 +- .../series-detail.component.html | 70 +- .../series-detail/series-detail.component.ts | 12 +- .../setting-button.component.html | 2 +- .../setting-color-picker.component.html | 6 +- .../setting-item/setting-item.component.html | 8 +- .../setting-item/setting-item.component.ts | 4 +- .../setting-switch.component.html | 2 +- .../setting-title.component.html | 2 +- .../settings/settings.component.html | 64 +- .../preview-image-modal.component.html | 2 +- .../off-canvas-resize.component.html | 7 + .../off-canvas-resize.component.scss | 71 + .../off-canvas-resize.component.ts | 179 + .../_services/filter-utilities.service.ts | 2 +- .../app/shared/_services/utility.service.ts | 7 +- UI/Web/src/app/shared/a11y-click.directive.ts | 6 +- .../badge-expander.component.html | 2 +- .../circular-loader.component.html | 5 +- UI/Web/src/app/shared/confirm.service.ts | 6 +- .../app/shared/drawer/drawer.component.html | 12 +- .../src/app/shared/drawer/drawer.component.ts | 6 +- .../icon-and-title.component.html | 2 +- .../app/shared/loading/loading.component.html | 12 +- .../app/shared/loading/loading.component.ts | 4 +- .../person-badge/person-badge.component.html | 6 +- .../person-badge/person-badge.component.ts | 2 +- .../series-format.component.html | 2 +- .../shared/tag-badge/tag-badge.component.html | 2 +- .../customize-sidenav-streams.component.html | 2 +- .../manage-customization.component.html | 8 +- .../manage-external-sources.component.html | 2 +- .../manage-external-sources.component.ts | 4 +- .../manage-smart-filters.component.html | 2 +- .../side-nav-companion-bar.component.html | 6 +- .../side-nav-companion-bar.component.ts | 9 +- .../side-nav-item.component.html | 14 +- .../side-nav/side-nav.component.html | 26 +- .../sidenav-stream-list-item.component.html | 59 +- .../sidenav-stream-list-item.component.ts | 2 +- .../library-settings-modal.component.html | 20 +- .../library-settings-modal.component.ts | 13 +- .../preference-nav.component.html | 2 +- .../file-breakdown-stats.component.ts | 4 +- .../manga-format-stats.component.html | 47 +- .../manga-format-stats.component.ts | 4 +- .../publication-status-stats.component.html | 66 +- .../publication-status-stats.component.ts | 8 +- .../reading-activity.component.html | 72 +- .../reading-activity.component.ts | 4 +- .../server-stats/server-stats.component.html | 160 +- .../server-stats/server-stats.component.ts | 18 +- .../stat-list/stat-list.component.html | 2 +- .../user-stats-info-cards.component.ts | 8 +- .../user-stats/user-stats.component.html | 39 +- .../user-stats/user-stats.component.ts | 17 +- .../_components/typeahead.component.html | 4 +- .../_components/typeahead.component.ts | 24 +- .../edit-device-modal.component.html | 2 +- .../change-age-restriction.component.html | 2 +- .../change-email/change-email.component.html | 4 +- .../change-email/change-email.component.ts | 3 +- .../manage-devices.component.html | 3 +- .../manage-opds/manage-opds.component.html | 4 +- .../manage-reading-profiles.component.html | 6 +- ...manage-scrobbling-providers.component.html | 4 +- .../manage-user-preferences.component.html | 14 +- .../manage-user-preferences.component.ts | 3 + .../restriction-selector.component.html | 2 +- .../restriction-selector.component.ts | 7 +- .../scrobble-provider-item.component.html | 2 +- .../theme-manager.component.html | 10 +- .../scrobbling-holds.component.html | 6 +- .../volume-detail.component.html | 25 +- .../want-to-read/want-to-read.component.html | 4 +- .../want-to-read/want-to-read.component.ts | 37 +- UI/Web/src/assets/langs/cs.json | 2 +- UI/Web/src/assets/langs/de.json | 2 +- UI/Web/src/assets/langs/en.json | 33 +- UI/Web/src/assets/langs/es.json | 2 +- UI/Web/src/assets/langs/fr.json | 2 +- UI/Web/src/assets/langs/ga.json | 2 +- UI/Web/src/assets/langs/it.json | 2 +- UI/Web/src/assets/langs/ja.json | 2 +- UI/Web/src/assets/langs/ko.json | 2 +- UI/Web/src/assets/langs/nl.json | 2 +- UI/Web/src/assets/langs/pl.json | 2 +- UI/Web/src/assets/langs/pt.json | 2 +- UI/Web/src/assets/langs/pt_BR.json | 2 +- UI/Web/src/assets/langs/sk.json | 2 +- UI/Web/src/assets/langs/sv.json | 2 +- UI/Web/src/assets/langs/ta.json | 2 +- UI/Web/src/assets/langs/vi.json | 2 +- UI/Web/src/assets/langs/zh_Hans.json | 2 +- UI/Web/src/assets/langs/zh_Hant.json | 2 +- UI/Web/src/environments/environment.proxy.ts | 22 + UI/Web/src/httpLoader.ts | 3 +- UI/Web/src/styles.scss | 2 + UI/Web/src/theme/components/_buttons.scss | 14 + UI/Web/src/theme/directives/resize.scss | 71 + 339 files changed, 6923 insertions(+), 1971 deletions(-) create mode 100644 API.Tests/Services/Test Data/BookService/Relative Key Test File.epub create mode 100644 API/DTOs/Reader/BookResourceResultDto.cs create mode 100644 API/Data/Migrations/20250919114119_ColorScapeSetting.Designer.cs create mode 100644 API/Data/Migrations/20250919114119_ColorScapeSetting.cs create mode 100644 UI/Web/proxy.conf.json create mode 100644 UI/Web/src/app/_pipes/library-type-subtitle.pipe.ts create mode 100644 UI/Web/src/app/shared/_components/off-canvas-resize/off-canvas-resize.component.html create mode 100644 UI/Web/src/app/shared/_components/off-canvas-resize/off-canvas-resize.component.scss create mode 100644 UI/Web/src/app/shared/_components/off-canvas-resize/off-canvas-resize.component.ts create mode 100644 UI/Web/src/environments/environment.proxy.ts create mode 100644 UI/Web/src/theme/directives/resize.scss diff --git a/API.Tests/Services/BookServiceTests.cs b/API.Tests/Services/BookServiceTests.cs index 5848c74ba..6037e0715 100644 --- a/API.Tests/Services/BookServiceTests.cs +++ b/API.Tests/Services/BookServiceTests.cs @@ -1,10 +1,12 @@ using System.IO; using System.IO.Abstractions; +using System.Threading.Tasks; using API.Entities.Enums; using API.Services; using API.Services.Tasks.Scanner.Parser; using Microsoft.Extensions.Logging; using NSubstitute; +using VersOne.Epub; using Xunit; namespace API.Tests.Services; @@ -142,4 +144,19 @@ public class BookServiceTests Assert.Equal(parserInfo.Title, comicInfo.Title); Assert.Equal(parserInfo.Series, comicInfo.Title); } + + /// + /// Tests that the ./ rewrite hack works as expected + /// + [Fact] + public async Task ShouldBeAbleToLookUpImage() + { + var testDirectory = Path.Join(Directory.GetCurrentDirectory(), "../../../Services/Test Data/BookService"); + var filePath = Path.Join(testDirectory, "Relative Key Test File.epub"); + + var result = await _bookService.GetResourceAsync(filePath, "./images/titlepage800.png"); + + Assert.True(result.IsSuccess); + Assert.Equal("image/png", result.ContentType); + } } diff --git a/API.Tests/Services/CleanupServiceTests.cs b/API.Tests/Services/CleanupServiceTests.cs index db310d957..ed082cbed 100644 --- a/API.Tests/Services/CleanupServiceTests.cs +++ b/API.Tests/Services/CleanupServiceTests.cs @@ -633,7 +633,7 @@ public class CleanupServiceTests(ITestOutputHelper outputHelper): AbstractDbTest await readerService.MarkChaptersAsRead(user, s.Id, new List() {c}); await unitOfWork.CommitAsync(); - var chapter = await unitOfWork.ChapterRepository.GetChapterDtoAsync(c.Id); + var chapter = await unitOfWork.ChapterRepository.GetChapterDtoAsync(c.Id, 1); await unitOfWork.ChapterRepository.AddChapterModifiers(user.Id, chapter); Assert.NotNull(chapter); @@ -644,7 +644,7 @@ public class CleanupServiceTests(ITestOutputHelper outputHelper): AbstractDbTest unitOfWork.ChapterRepository.Update(c); await unitOfWork.CommitAsync(); - chapter = await unitOfWork.ChapterRepository.GetChapterDtoAsync(c.Id); + chapter = await unitOfWork.ChapterRepository.GetChapterDtoAsync(c.Id, 1); await unitOfWork.ChapterRepository.AddChapterModifiers(user.Id, chapter); Assert.NotNull(chapter); Assert.Equal(2, chapter.PagesRead); @@ -655,7 +655,7 @@ public class CleanupServiceTests(ITestOutputHelper outputHelper): AbstractDbTest new DirectoryService(Substitute.For>(), new MockFileSystem())); await cleanupService.EnsureChapterProgressIsCapped(); - chapter = await unitOfWork.ChapterRepository.GetChapterDtoAsync(c.Id); + chapter = await unitOfWork.ChapterRepository.GetChapterDtoAsync(c.Id, 1); await unitOfWork.ChapterRepository.AddChapterModifiers(user.Id, chapter); Assert.NotNull(chapter); diff --git a/API.Tests/Services/SiteThemeServiceTests.cs b/API.Tests/Services/SiteThemeServiceTests.cs index c936b8d89..327d82060 100644 --- a/API.Tests/Services/SiteThemeServiceTests.cs +++ b/API.Tests/Services/SiteThemeServiceTests.cs @@ -33,7 +33,7 @@ public class SiteThemeServiceTest(ITestOutputHelper outputHelper): AbstractDbTes var filesystem = CreateFileSystem(); filesystem.AddFile($"{SiteThemeDirectory}custom.css", new MockFileData("123")); var ds = new DirectoryService(Substitute.For>(), filesystem); - var siteThemeService = new ThemeService(ds, unitOfWork, _messageHub, Substitute.For(), + var siteThemeService = new ThemeService(ds, unitOfWork, _messageHub, Substitute.For>(), Substitute.For()); context.SiteTheme.Add(new SiteTheme() @@ -62,7 +62,7 @@ public class SiteThemeServiceTest(ITestOutputHelper outputHelper): AbstractDbTes var filesystem = CreateFileSystem(); filesystem.AddFile($"{SiteThemeDirectory}custom.css", new MockFileData("123")); var ds = new DirectoryService(Substitute.For>(), filesystem); - var siteThemeService = new ThemeService(ds, unitOfWork, _messageHub, Substitute.For(), + var siteThemeService = new ThemeService(ds, unitOfWork, _messageHub, Substitute.For>(), Substitute.For()); context.SiteTheme.Add(new SiteTheme() @@ -91,7 +91,7 @@ public class SiteThemeServiceTest(ITestOutputHelper outputHelper): AbstractDbTes var filesystem = CreateFileSystem(); filesystem.AddFile($"{SiteThemeDirectory}custom.css", new MockFileData("123")); var ds = new DirectoryService(Substitute.For>(), filesystem); - var siteThemeService = new ThemeService(ds, unitOfWork, _messageHub, Substitute.For(), + var siteThemeService = new ThemeService(ds, unitOfWork, _messageHub, Substitute.For>(), Substitute.For()); context.SiteTheme.Add(new SiteTheme() diff --git a/API.Tests/Services/Test Data/BookService/Relative Key Test File.epub b/API.Tests/Services/Test Data/BookService/Relative Key Test File.epub new file mode 100644 index 0000000000000000000000000000000000000000..2b58afec135096fc5ff5ff34d16a6d5c5df05ec8 GIT binary patch literal 681985 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

u9)ef8V=JfK^2PCnF>_iORj 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¨H_vT*tXXGc1uQJ9g~yuMz56?~A;6-?TotXBL}2v9H_c zc6tO>{#=r2O>Zm$W+akjz$^n~w$sY0psqSUiTB?VKWUGNdY6rSAvTTi254=N>C?s@ zJtiwyqlwW&l2p4gIAzE_VZk8e_kSKdMP=cq_;2AYPV|jJ+ScR5cNTH0JhI#nZS3O# zLHU`Q>jSC4BC(X5osCjSF6Wc@t5MOsfAOaN3GNo-MxMm!HkU^sQeC@*ia7o|e8Yilx5&pgsrKYj*1vz2W_4`%ClCVP=K&YqUo8Ct?r7J@H>W{5$Z}o+{TSw`inD zfo76i6fv;QI`nPby{pzdJtn2$FO7c(b*uQ+3#j~2rrS?CHe+z}3wL0B;+=^H-jsBb z6qV8XhvC7yTh&iN@oRvM%Ph;wP zbR5*)#U*mbi2Ph)GFn+UdAV692ZZ%iJ=@>6*Qdqb@KE21aCkT1#kYWL?h(90x3YxVpZ%j>Ao}hD)ovsSXm}2-LiiH?pd+ z_r-o$_`k;&f3%0jU316Uta3xANXWJ}G7^5vWf^LzCA_&|CFRKBOAoskZ|<&71Gy%&7s94@->6@&Q(YYQaofO2 zDFwQ5=m)SB&fa*)TZT4KC}2O=&NGj2zvEh^+>5ij(QUMU0_m%$UWbU9~STYMQ-*wY)_==%y9DV{{TsxdJ;HAK8kXCoMcvZf#44m{6e__$x+bI_|YMh^|N8wA0H)ZV#a=^EdtUze=ZMHLj)^=gbYt|2P}QbCX)EuKCY=Ni7oVrw>LtPUV+!# zL=PYB9RC0asBY$o9zo%6fIcAc#;b9y`0jZ;H*I?}+|Off>iU(#G2B2Lt-68o<+nHh z0E4Ld2TirpJTanL=^9IJU z#kYs-_9#;}+$>|axu6XH02g?aX!eHM1OAmN;GgaT-|Jp?(YiFzFug|!&;5k1G2B%Rk{1JDfeO>CR?SpM6pPvxmUDz{Vg70C@& z9U9$Tluvel)x>%)`%V1?XF>g;;%!kQEYsXc&=c~ij;GiPOlxDQxSsFFxAAG#;KQdQ z24T~W?>DLR73e>*mc6E1{@8zE(?I(%@GhyQqxN}H=F(Ox>-R|f4SDa1wRpZCcxpX5 z!S`y{*;SYhRCH-irUAl_Q=Z0|`z13$`(k`6jeb z#@_PYKzc9-=y8xLV#ry?t$5->=|%*@09syQT++XB2hznyA>dduA!&-Y=K-V&iODc_^^;PTo*8}ld=J#0ft(J#l=E)*iAQ8rTw2Z~G zj@wal?Mrd)cbcZMbwx)V%EErxGJ9e}LMM3OZ6q^4IVZ|Dc0s(PHs3T*&odY?gC z+PRNTw@9MK^V`r>JrhX#O~Tz>48n(UqkkKAC)iP8r(*vAg|uO50KA%KR!8$YyEhE}w+WdRJh{{UGse5$Ot8<_3s^zYdb zY_%;;GvjSu_rtoSy4c=n?+kHV{fJ<-lov6TFhL@71FO(J2VtZEFIp zHuwDud1mnyoJ$;6%dNyZCCh!Db{&9q8yNjU=Bc-c?BSVWzY}Q}EN~;#Q)032wZ>J4 zzUt_%?yRJNC%2Jf41RlNJjQ?7^&jWhc_+v3kGfC6Js(MvQPU2#H6K2Awey5Y1*}1L z&g@ZwsAokP01{6)2OebUNjn{Inz7BP(~(3 zY#w&Vi;rhv-n=Kqe;d9U`2PSzpHJ$#J0@EA^Wu#v z?^e)lG+z_x{w<2fOA%aZ8eB4^y2{c!c`DMPmMXhRU@?}!JQ~IDt<-wXn`tAk^K|K$ zmHLmA{{T9xf1r3{OdB;T=UH~;p@H`@pTJUhYfQDVf=yP;Pj9C&Wi4=da1UDa6cR@Z zo4%prEh6t<)htYB_bQ|@JrkZ!)}?#ctnJ0TP8JAoxCen${7vE~iOsdKF#w^R&)&fq z1KWzj@WqwxxYG!RZHs*Jx!@m9t!>cB?pwT?^TiSyD_8q9rhj=k<0Jg`tqniJ+9rh< zDP}b*fy+yA^Dp4N2jy0pT{lMAZ@k@1P6SbMNv)fUDDGj3Gid88CQL_yg!sDjlHejpA32qgz##5hm@dsz)C!*axsm}q@VUxhkE@T@@2f5dxub6w>jeg zoD*LQe#b7p75MR_X);`-HvS{Gmc^n6JEx6WXaV>6T}S)%_tc?M%5n(iCIkNYHOEo= z$D>C`pEvk7$69pX7OZ8}HCtFUTb)5{)~DJn;y z75Ulm2TFPTTjC*Z=H7U3+FNNm$09IfVd=G$5%jOMtUfpC-w^bBJM9|cB-C$VSuU-l zbrQijAG}Su$sxC3jtIdO&X$K%wR#>M@iIH#gCDe2kHl!KE~fD8(*2)Uk_0ZkM2qFh zPBKFUD#{O5hymB1RM$LxrfXK0cG^U-Ynpt^wKW?_L&EBNj`_!80SB*2lImGUn;pWL z1c0oGGUPZtLj%DTVBx@mKF8jn(k z#1DcV6Znu~y1un-J6(XQL9S_-g6SE4>pKhy3gBS3E02|yxV=(O+9Tn7Z9bi=S$tXW z{0q3psacD=Il(kIa6kwc4pNrFhH({MP?(9^q(yB6aaUfY~!fj?<> z_=lxVFMJ;!je8jhHQt+e?P}TT5-CTRgmaM0*!3MMzr-7ud|Pv4iDaG~JsE9exF0$O z!F3*rNE~#?&1m@g-Zs@EzKVDr?&y}8VPJB@A2G*s+@7_~!))`Nu1hgI0a-adYogRr zRx%?-53nigv;a7-SNK(`=-v^yzq{4N(_CFbut2tud4&^p<}Jv^NMFjZEW9~yZD!Y+ zjm%nYlt(gL&D+oqbK1QzwLcDcGg8nrSJUp}7y5Hu3*!Sw<M$yk!3g@zZ$6g~hS`pEulQQX(wYJiE@|!M)@NLWZ z3i?L+5Fl^|2EH%&Eq^zIJ}l|CE6uK`qB)bG+z#Mz>M+>)*W33<8fH}+vVKqobLmcY zPUul>MJ8oHxr*TrR)vOV}6IZvkn8;UfV-W#{QA1OEUXABgW<2Ct_%xFiBcy=F~lZB!N`BynDb z>df;cqdmvMHc@$UdG>hQfDO&1uLRGF%Fi@oR21X!ys)oiIy^qKL01Uh}<83Zz zbxTOJlN=^EwLLu+7qvxP0fB{d1Nd9FLZ_PZ{{Y#h!uP}4Zl^WAp4abj6m4*bKy_Wj zg1P$iuD9Z+ijz^(Ak(ajkO^3|(nz~sXy~WgJfEPY*FmM+@=qE3SNNr?cy7~2);xRS zEq_eVtz@>*=d`LY(3oZf?L!g z{{Rv9=qkP2YELWZeH_CdWTFW6Fvu#!T22lLa(maf zd=s%mU3XS27ATc0R!+d+Nhjn4f1P|$sCW)vhBJ$=18R4^9n@olF~p4a_h19^O$o|4 zJ%L_3VBn9lz6*H2PxyuVH|Sc&hpi`qR%g?-t2bTmYpR9~aEwNBtgMe2&-%7O)kqmN zeNda$%#*~HH@^}u8VINREs7kdJ(oR5^)=J@E5W)igW`@jEiI48-IE%5Kf-ZYp&;r{>)-`~v40?BrbYYB7HGD-${>K_ek{t_GaS zE9kv{_I1-f1pGOh;sbb_N%7Zh>k*eD8Dr z00jQ{J!SB-$581W8`XSK;~2CpLQNl2@h-0<@~zj|+{1`s5yCM0Ncjoky@%l^!M}%E zuftD=zA4gv7x*hc*Do|JJ5`SA+rzetaSYO1qcGl3wm~EkNjV&nd9Ok6Y==d_3|N+;}@vD`2styB|rs-En5YoM7!OEC*>S3^?PU)m@@C zI}xwyX?m@9aV*NMiEZ3~tUH3BV+3S$ua@+01nZh#!`~BpFVfaqzZHBe)c*jqd>i(L zcRGfXF6r#y4*PfSg{~~y1Spa?f%}#9zNMwEqMOj{xC7;G&FpKy{xaS}@YBVf4EV7w z+e;lTZ}>(0Q+5I)N2J}%rrzbssayBLMZ+dH48btBCi6$x_5GKNdDw}PW*`WyuFlt43l&+5s}xpT_;1C} z+M~eU5*NB%u$#wP&9O0OOm#~*Bpp=Uup#!I2#hf8n(?JVN>+*MMyy&QcV#+;81APhavlr&>P@R)?tggI(}%hkhcbi8XHw*!VI#Nt)`{!Ej9` zp>Gqq;e=}Ig+ke2g;f;cKnkHp72>Z5{3O+HU&K0orKxF}UC=T~;oB>9ERvJT#L@yH zLVtwr3zLEd0P-z4+IgiiJ4q=!ndD;b-sGHAgjbVV zr1O1_+}c`}K2!zwlu^(Y?s4B0k98q->%gbWF(`p=ko1NT@EgAqwFRPAf4Bs$B@wqMWuX5y>Y#%}CR<#fx%HL31dE z7m)N-EPo2o1K9W9+22Lo@c#f>y<{NjT8qXr{7Do_s(G477a*!(45%DJTO*}7IognrYIu9L0&V}Za$i&(oV5B)W|MpOR)kLJE` z@ZO>JJ8uxcjbR#H+AJ*BQLDIJz@IB4gqamm9CW?%It)@;x`Pql!_a}X2)!~4(t5Svwy++eRl)}Mgo-?vnRV7sI=vaU^e>xt4 z%6uKp=M?TDG?OWSVrBKiXmo#hc4bG40)*lNs{_qvQiT6+F@bqgc9aEp&r* z{)cZXP2~m|3`cX+k3m3vmt5TxLicavYAC z_Nej*#wttOJDoP|?Qbolv$;$bhGp8rBOv3@`qU3P!3>O7J5-*vqtuj<5Zndj;{Z)FbmPuGTpfj58=B zbZ!@GC?g?=?_QyAr)iqbqo`{W!w#G^JIU^?bPX0CE*pO`MsX77K3pgpYOf~>2W;0N z;kmROM#IILmxqF=kEK6jAKBAf z{h|IKv=3nMd^OVCMdEErQc-S!P{&Szhb<(4pp}uA%ZbS>8RHBIv+J+;CqKb=@bAOh zzlvJbr<1OD!X<}EiPLLY=!n3@v@$CxxNv4~nU$j!=YpobyJrA(rF%8fEg`o{XzcBx zK@2d!s*-yFYae~g|WZAbQBv(dFbhnjWVx-|O5=h;hN-o=KNbThh!wgJ^q zqsd~fc?EHq`yKpZ@Xv{U7il+MCDEdTSMc7ge=UZcYYSaLtm{tlw3>~)%eh-Vd&UVR zP_q!&3Pj6mF~uBj!#x6KxbX*#JX@#R+xW*{*Y5B2>E-#}CKBQuJspNbQ0-B)^<^2z zRmY5IKNfWDfA-+N@iooRm134%D@>JJ=C|^#j1bD8^Nqq%tUtfFS4-m$iPoM3YcCD> zuTp2$KG8kx#*L*%=1nZmD;Fh>6ayh(H!%8Fnt1!iKNfVa328STHuzPb_*Tl-QbDI) z&tlMO>c=dx?rBSGWd}J$Rw@YTT-xh?rtKr?9~XF0?XPY%n`px=+XjRJm|J)vJzSE9MAWRcVBg&lOr)Il?0*XS55xA*-)Y*Gk1^jO28?IZx8!Ta{8gf+ zzu>%>*X zd@a)CBU$l9ym$KC$iy|Sm>)2~k&HC%o0w-JG+qdkkCHTWn?&%ApM4&oY?Epe%2v)Y z8dQxwUG6`G6Tr_=S^oeNe0?{@uZzAa@x;-zDXwY_HMA};(AppoTEuz&7?Bt7tC}u@ zd9B?2n@h5LsT2Uk1{Fv9P0)AhYtW|@mZvruzbmXV3btiS<7aIEwc6Szu5Cz^7zD4ufdx_|(>Lw2F{I zfJoq?*OLmdfR2d{=fTNO4cb*yWSJ@*I-x21XL_qMLQ|nS#+G)NU%Yr7k z$1*o9_<9P**E~}5lA=NvvZ?-bi#PTE029HaK+#(e(&HP4MgIWn*PUEyGhfWi?9NHa zCzDNoHttQ*94B8=YIx#~EeZSwDn&pYE@s_wQT`w=>^OB=<73^10m3=aPS=OVpOj z7q4^U4SdTXJpe7)5FUcP2jN)$!~Lp$0$;-$LXv9tR!YQSSQ|NzfP0)tirDZDiDluh z3BA?nf;)?*S!SAcRa8^LE?a^9NvV8MGFyCM{hY6$Af#S1jt%HW&?TDHdX70(f7YV< zlJ!49W8;I^;@66ERU?%lgyw>*H&G3!l1MYkdzDWZ261=i;Q$ zd=UC%PmM=kX45Uyby&)iJf5H|dw^llnFo5{z7aq#d|fu42l_i(38cqFSlDAenJfq6 zSw9>6M;4>;Lgo_Npz!^Y*{E(pPbd>i!|J90ebm>c{2B1W_-nz-dv_kqS6CwEP{Zer z9De3A>A~DbP|inci{4f%Xr6+kaqrN2S2;edrFdq46L^~M20=R6MZhvhBaKIvp5@DD zw;4PNu-+=s;PGX@haXk89w3s{?}nBfHNb%i29&7fR5PH-#!C!lyjS9filJ?C`rb*w zveK?60Cs6v%SgxQaK773RGoyC+0%G4RMmbb_}=E@Q;-WwD7@dZ$NsJywhjYa>k8{ySwQ!ox#d|G1p4tK$U`Q$s zaBIf?IQ(tD_+#+XQ}L7*_F9GHSC+Om*0;?5OUX2tEZYcdDlCnFMs{N(HJhlfWN8>T zs~P)gc>R12<6nTjBGmL-?;L2Bdd2+Ecuz&x_xGB@+mEo^#{pJpRt(LOn|3sjvE7iT zw)h#M$?-4ZMc>B%02Syr-V*y3oBsd^--dL55!#!3`&a{+FD~a-iY)xX zQ(h_H&xl_TZoh6Xgf^Zx&~#fw*1R34!KF>6JD8%5SlaEb;tuT5%1yGuz~Jp}q#O^b zJX>;Z8q&sV!3nr+^3OAU)E!SffBMx|*^1kvx0A=3NZ$>ez`36UF4bVU_iDKv-Kjc@Y!*q{<9u;RRg z5=848e58RR91|OTUGa1F&+xCpPl%d_g>Lk%M^}9^8)Ak)2eyM$V;zQ#E@eRzHqw10?B(pZ{s*^^;3Q<*6Ren_pp>PHVG}L*n zw>O71z2g4>i~c<8dN#eOTzbCT-cid;xyC3ixhA5g3)#&BmLkVRD}%1aKte2 z{Ub?zO68DFQ5WWx;#MS&Qc2{osNNYk`3^pnXHL?twJWHst)pj}W(pK~`k!i1N((_w zPEPFW?L0f-c(nQMT~$F#4}!Ak#C{tcCubIihQx8 zQIC~K92P88es!bb`x|W!LxaNB1W6%vxYTD}cd+}b^v^i<9`(;yX_Lcgb!{At6nAQ| z%tsrMST^6LK>Vt?u8g@_WotVDtu)%cvpIs!NlP$azbQQJQRp}yg+EjAB(qz6i%W!Q z`g#m3X~RFcKK0Y-9}N6S=Zr{SC6t-I`6cBo{T$mA*9ilaWesq>)aW*&*9TKF$ZidRIr*XLdDBmB#54pdU^E6)t9q9n5dp@8RU>@x$S=2QW;0L2WkWY`9p1 z%I81sqYC@4TeyQtvAmt1Y$%M(%y6op5=r(0HS+g_ydr!&nh%U@JVqtgtS0+QSw{#0 z)re&Pu_t&c#2x_ojd#8uy4JsFzlq=QhHDz6ns}gQ^`0D#|*`Q{Ec#2rSFtUSwwCR7+^X4 z>-1XB;LpR24%#Rz`~{(+$H0>A7P^^_t30gC$K2K*jXoCmV)D?*AA~$PaT2NB3+WIL z2e-+Zor}HM@b-uC@5X)+iBb(*>Q;;Y04`df`$S}VD-*qc;4D6s?0yOTpmeVs+JrD2 zCs|NTmM-DZzuJwkH!raOj{ddJ`1jyHf^RQ;%RK?Ksj^G1n|Cx(k^bRgqy7Q~VB7pO z&@`un+G&dfkq|_lYqRInu_V?~lpm?Id9S{QW$|7cA0Bvq8FdR7WYn}`X49|0{p3?XmQMi3eLzz3Yi-OeJb6*gaZH|w`_C@pqk3( zLP+E6^vs+h1<#Od2ZXt`-}DG9RaTq*Yzz^#TuEu)ovDfz$+AM^2Kha_+ww;9;cFV$u!hl z-;hd5Cgh(K?xpefhx}K6ropLc+9shD^gbTBbM|+RHr!FzDa$r8TWer}@{l&4u)Y!L zelFKMORaoX@!hLvTK2VSwmu*5*bJ?s>5ReNNddzNW+4LZ0rm%G3+4qM1~=L*8D&Xj zwUrn&cNWr=c-S1PD=#X*fI%FB1%2cDEc|@2`27R;YsNRw>7Np;ArJPV$rL^$fPc%x zN^ln8Kmu5Y4Ur=7%oSCp+;m^?#ww~(S2z4)@c#hAJ~fJT*R&fgO=riNFu{BRyPK*fQC8b41`< z%d1{5MA*(V^uSU2*9+sXi;-wIHr5wXrIqc|2&}YQD9qRQPII+mgbl=;9&iU8YmyFe zc8e}nmqXxR65Hy&1Mw6#8rGA0;hz-g>@F8g)nVA=D_}Yim6j$TfauJv&J9=bpY2KU zFI88DPaEnQHK+kr%fgUHr{E9aGa~t|$6URACHqqNcK61bZ-G2FaV@kO)}1Zpt9v}Z zzn4#nR7H;2Sx@nmW@QI%QCpmXd;t6t(Tve1sj6RGg4;}Xik9fd+>p)r5niP>noXmU zNv#p!{vz?+_lT!ybyw8&nQ?}jTh(rEnEgXB70xx~m^^7(TKfny{LOu4J`H#}%l$@$ z7Vd@aBzc(rEX007l|C5weh^tSi(*DkF)ehdBb~*)&y_6ok!bs^p@z-6ZnS2Fzcpc9 zPM`5}#WptHMX!wfQD+X^c~EQDJ2C0BxfSeb|t!G1vN7nB~vuhlJM7X(C`%00X3xGEc ze~1(BS1xpj^#~SgH!+p~?P0}wE|Aumz*#ILw7gJy#Hv|-qZt*^h+s?!ql?@!ftt%p z=#6=s-1*N|(k|^vnP50$g=OR)rC}zV*ZTFnqbVD3&JSVK*RFhN)|S<*EG*JE(fsR#@WfJFUR>YY5YtM*Lt`8YyV%96yB|e-0D+^AS(Ql$s}y4%xnuqncf>K- z_}j#K&7^V19<`=OV^1*rml2F-@ePsrQSdF+-$c}39d1;gqObn|UbxddvTEBAfzyR@;_FwU-HIEX!z8RuJquPyY=V^GqpwRVnMs4Q;eiW{RILiy3F1(2@h#^7)mj)uO7 zwz`+Z{{RTQHFa~DFD+q6o!M~C6EW`h%Bq_3{{V@40EP64oE2FlVH5T}G6(oji925o z{8K&*yVCA%z7BjD@olxVYL6p$Wa-+JxEwLMCUxKH-d88Eucka7`*?gVxziHcSiQUW zQK-hMqRUs)!L|FjZzAf|8a7aJpf{H1`=Y)#w+7;=Wy~$7wa|;oz13qpNiOFF?a{ea3$@Df z#BSO-pMYPoXN$jR>vMCWOKIT`0$NDc(s-Ko+{z?%QVe!h;IEv@*j8p`MZ*lUDO&NZ zP3G|(-1;t+9nJR7lIiRbor4kg0}hAOk}+Rhd>s9wW<6$A~;Dq}i>d zlp1{FNYoJq0)SPdg|?_aDMZ|GOAbvq*)2sT`X5#NHTWCgpV|KaLVW|ldVJRA`c-{T zSH5vRrKz&;rfEO}YLB}Tg^fvK6c!}>VK%Yje~VugN5e_y(EKxJ9MWnq-NOUB&u*&n zLo%~5-prw}sue>c0)9&R>*0^>8{i*|UMaKFbe&G`NAWC@86)t=iY?a4`ejxm`79Zs zxcNb1A(5CbB}X;J_^06wyj}~^b!`?^v-qv>zgE=Nz}}*-_MV+3)5_M(yBp*3XHy?J z3xB+>N zX|l>WuIm2);+~9_v#e9M+e(#+B~s^c9CY-rD)CQ_G|z_q7rxPaU#@8y4vXSjceNUB zs*iDfdXj+?8*50jETr#M$W|F)oK}ujdKswqJ-@=9A=7+Yr?mP$t*7gW5yQ!*+^pF2 z+^TY?*nwG|Fwv}aD?95gPR(@<7gn~G$5645kdwnIm6A3i1O`?kBanIPUlI7SF9&H_ zBI@1)PZ#)i#GVTB*Tj}SCx%N6Vp}ONQ&B*qFcFfal|q3Wo0(T??(KXr`%3u7KzOaS z%a!qtjzA2TVN&EN!3>iq`Hnhn3=gR5Q7PHju3pEpd@yLV`wd^=Z;S4%{7E*8r^d03 zTg#jKZ$f|F!!+?SfgxSKM87E;&=N^}pO60lXz$o#;P=DH?R-OT@rAw_ctYWVCxO(kCc5U;)K(FKj|?|@Z-ee!=DwrISjXc8@SZq3g9x2 zKGJC0D=oCj07?m*MJ3d4UG|AJ4Ni69Td8)Bkx!Qj zksMG)~lgA|kMpALLgdEuF^8L_s)XJuX9yK!WT=mGVsm%j+~ z$*q~~FYYbnMJ&eXtD|GCNC2q!&lH|K@ie{+{{Vt_H-~3Ljr?`-21|`CBs*U7O@cUN zmhL6$(TSl|6rBZE6xPEpXaVU40cntqp}V`gJBE&d8FD1w z_x{1XYn|A8-Lvl5nvKxlBKlZlad4@mBgWs717e@+MT$M304K}Y(pmpd;v73F+`B9i zJY9g5?mmE$Fr>IO`@|DD1ZE6=Apk$!Mdmh+(I;Qj?k>sFZ=~oTNqCjCBY(0%l0XLM zywCLPc*5jV!1VJ(E~BlPp{cnmp=bi_mf`~60R3E)?U_?4l>MHi&G`Y9ApCUgP745a zMo94N7XifU>Xv(8$Lkb)$?ik{8A-rYwWwm5i#Tk+$aC}!pzw!cdf*Q91_--;NeBNY zhjJ9g*X80D?e&y%m7(VOZBM#DM>fZ2^@?BH7U96prdQ0==r2J+&$prPKi#3d<9!T+ zb>nv|h*;ZGZ6bFFP(pF+Z}6@;?JG;LtB_=4g9BB!Yk*&00@or08w|Tw^8#A)lhTsl#wc7B{ z5_Eq(EOH3#t;oJ+CIN3*hs}+l4U`GcZtCX4XZHEJ_DykthC?j|I-w=N4(WHMCi5P5 zEsjRa2p~Vym&IiE$>LO9w^|(}rhV(WWZ!JQEKB!_ZQDn$R9mqEKR*$#X0NoQ#`;ag z3w+#977g4u0J3Bmr?chuhk+~d;$~36SP3vfqAOg#5oCgRJweJ6-5{5jq31|vjRETG zt6;3&G=-;$%G&Q-v=Qu8Cp&VA&D>kF==o4{Xxct?sK~w-(q?pKXl?K8@Hy^mZT&q) zKXnjCSI;TPGO55a()KwurWRtVk)^S8M=pD`j;_Fq-sZGTD&Sv6V@uSgH~X>aodeUs zE`W)n0C<4MefR0c-zs7}jh8i-6yJKRt9d@3|6Uh&UAe8QI+rGTkc>lz_Q=F%L|P`K zf9=FKx1i`O6I7B?wtXt3oBC2%w!W^!+LVyF@#Cf#O^0>xyEkr1Z$)(6&3NOqtIdR>T$J!&%gQ?GwNrJhR42M&#(c49ud?b~okCB>= zNvd1ur{6-|=lGaCVkI39X&YGZva{NQD19>!)_S&*N=I zm&kAo5wWNn69t@V+sBdid=g`^?;-QIerW?&RuXg@>akdKH8dDnCQ)l3*0YnY*3p## zQhE^)+5%7pNJe6KCmaa}GQ|qPq9!M;%?r0#a&4{IOzA)Bs8}|%_2W?hc)(9vr2UUA zQPrglvpkM+#;q;Q$=5a>6LPJ<{BO>wOYfLslF~#lu5JApL1*m*J*8(P1U>G1aXNgA zj#UO*V|MqiKYm-?m%!;p=h2(pDb*3}C!VmN~dJOT_t8K59( zehP~8>?p7<-5Bd2jhs+?lBD^v$P>TXUy*G8pt>8>KSg^V0RO&sg=B+A3~4Nr&;8ej z9prJ)_`rtFInic?=Sfkz`^`%W~%Fwb5%m4`y1Y zf9}SV5Ox^54%~51lv@&NFDd>XJQEwok@hd&Ftvv3&`x(Jp*n9F$_~r^sLKEMJss1O zIB@Zm9KHs<0y__2qiq3?UkUGntL@e7e06_$#@PGmUtWPMWq_r)6)BF*(o}A*8W+yI zeEDpiHts9bZL=VMZG9yYHSZ1qFK1 z;nb_$2#ukqdFVj9fqvikj6G3?Z!vPSwi2=jd@}7KtzSwDM}gW2IC#_ z`l(sSzd0;^pws}5&Nc>Li5KrwvA?ZkTGg2?7>rLeL3NMf(%}|HT=jQ4NIFhzY=f5p z{~yeIUVdNx#A%!M&MW7m@lxXh@c~MQU)UR9#M;R3M>{roHn2rsWp1kBTKf$^avcQ! zd=+V+ObRXy|MlIxVaemgOAtk>MdvR5xB+kWE$n|SQSvf6VVp!m(YM< zT*y&FOUbu2aI|sbh}m*9$t!X^OD)HvIE##`&s7QRBS@&kj*<<)m-5%FbM!NeDqp6D@HAb^Eks zNbax*$bOJJ*!d%nvY%ia@;;(y28{mu2CZ<*MEPK_O31&?;1WYt;`e@eSxMJ9iNaGm zB{v+UxBmQE?$g)x(^)|MCT=!>1K)kARvhG~#eeUM8LellhRV9X`)oNn z>|`8+aXbr(eRy9M39PL|n97jSL;xR36nOZ&<~O$#o9|)Or}Tl*;^nvG3N@eL36*x@ zpB(AuNx;U~{g!?9Uw+vbnQ3b`;K-$^q#RfG)fw&#=bC*Ox) ze_k}y-L!)(n2fZBu^cqZ-X>CHdgZSSW2 z>A9k^zlIFy(-Xwa_!kP5$CQ`Y=Q?FAXKO|#YkRC;6!|OY6(`Ak5mp%a`^8jTR;@nS zVPk>^ONM1%ZHRj}RZZ^l%gjYwzqN%znDXPL-}9i3Az=vx*xB%$Z@jXCG8VI)#hDTY zmy3if+c{YH^Dc8!E7Ie$B-lKp7)8cQaTO?UvMyYRJ(Vl?d4~8y7}bEd*1{4G?7# zWs5Nd5YXvJRl0Q6sQZncoAoEYDF?bU@&KxaBlI8bl_V&`ypnw0dC?URCWeSp8$Cd< zk<$Ll*iLC?>#;@0iyAZWZPSJ-)_)=_%#rh+Jr_z(=v%!3DQfj?C<~U8j(PJ1(Z^S^ zm26ukaO>j1yhq&9QyM`}qD*T&$nJZeoN0VqSp|mLsy6`6H}jP{{M(#_BX=Y3p#axL z@sL-}OvZ2C2CWSXVA~A{Vrh{e9<1i?&>Qh}6}< zwUX$|Mg~L9)B$P6>a~((KsbO1fOZLCW8oE#;#RFFOILEnoqk{nJe72TZwgmK+Q@rp zI>du_8d4*AgUCie8}R5Sla8hDj$B%~TQuSLEcG>Mgbc!o2>S7I#XbQ`TTKa(of0k8 zb5#aSXF@cGQG{5ii07Hg>jPrri_T#=O+!l)Rcf-u2RW-uOm|~qe`<34-C?HMu&CUb z0ky8`_*e~P$yeR%2lTx59u?IVMc7VM5aC@9?y0No!j9_uD2sea^PVf*xgt@$_}*j` zJIFJ!H}A{<BA<}3(&e7l zNH`!W4HoY;C4~D)=(H^ls@r+-Rqw!HtQ}4^zwf;wCo9i}-U7iW&Q9@+%-Wr#o{Eq9>}H8ih6iP^b`8B?LzYtP47r;D})Qmf@iIb6BM^ zbn6We@hqGVbi+o4TVbmIwercxRq9C9vQopR)04!I#7qg_tUS+L{@X(GQn|hTfvsAS zwXF?RD6#9eHU72gf5nG*8(J47z^P#OKOJ?h%oxFW(!Ft9sppessJ6 zP=U!u&&GBuZvR%?lCV^vR3|9;1v46gED04nJtX?4iB%km-3E^oP4lODxZfGjB*hK> z`R?eXNpa}ue&4J7N8C&QXF0l%+eL2v-b6^hR~;7#N=l2+R`~{4XC5$ME8WLr*T}t` zFo9P8UWeRAuoebXpR1xxvN^!6x4tTJrN!pNUAM|o=^}&0BYg?`oe_87J;Rwr280nT z>3FK_T*}lMIz*aP$;}I4adE z6QC1ghR&tB+fO+bF2m${!*t`_pW|qix>{C`83NT2;(Nx3vhb9@{tED#D*HNk$H*%K z^tBS)B|d<4vK|^vO)-sWf3i~!%B|M*l2p^pd~RSnUyyFF zAihWbq;hiURAuRkIIY>}mZ4pUIl=NBu46m}r5u>S2mZJj6iST<<_U^>6pIk?4H!xY z_bl)%HHpHv3^}&!AZCc*-23}wd{Brh8&4=9P8>H-?AdX)Xi@A7+*B7@IxxkicV*FN zjC?yKwk;#9e&Dk@MUBymk=PMQEs2P0e@>ItJTm1g7baWjkv1zsx5J12?z(1irBdJ4 zgbeO%OG78_uzX3wL>Bvd^!#=7MOnKRUYc(UCS_$KmBX!}&~va}%myf%%s*=-4|oRg zaIm)hFgUU#`XNB|QT+#d*$e=P-kX`z^xC#huBp4=!Hho2a``^$2OHa!la;PVm}Sa? zD_+@D+L*vTx&4v|<*xJE`JlmXr~%wrJxq!qs?)Swl?M`E{G%ylg3fc`<84LWhi*FC z89%T%l05}M=wSQ%7BtnMy)_8hbh_F*I&a*c_)BRVhFj|Lv}8|jfS+O_CwS*#B#qGj z>cVo869}!B+6K7;|DU=9fRX5YVLJ}za++eHZwIYY**##-a^6#VcLwDo`JAwBeRIP6 zb8(scSzTrA0P=d3B-O1{4|Jb9abk=>u)(aj=8vpwWPwYl(NJk5DejmCRd{XlMbLCG7Szi*jT3R)V$ z!rHiIz$!*rhq>ZV_}+FLvgwW3|~qES$apu-W}1AtQ+s?ShBK6G9JyB9v0h8v9_(ZOHpq?28eS zrsPdi!_$)qmXG_G6hymbuo)xIAxEI$;G;@O(&{<2(=%)NsJX(%yDB#B7O$X)T+#)q zTyBNGRWqo|w~nMLu%eNHdHHsy{1QP2a#u30?BfYhuj54QZ;4nOD4D?M>6>qhKNeZp zu6Q<1h*O=aoJ_WX3E!$B$0tTmP?AjAVD|khrr09iJxjI@x~j%lJ|-pbaY-}3(uQ7Q z`m{vfaR#{hYU8V~WxTf|kw1xp6vQz=7-5zD&_)j6>yu_n!sX|d(ses(xdI=W8=?Tc zJl_rIG2{k(PPqlI>21f3+9#S?4&!N8p6NDs=KCzxOYfqw(U8I%8h>z$KXpdII+v?y z>q;UNkDiK1DJ`W--JD>({06YS3R{0!IJ3Ol!QA9}eNgC`&(vjo9ZXD%3x2SCK2&=I6q1W!a2y7C(OOY-Yf0AK?wEL2oe9~ruOWUY5D6J1^V6pDV{pQw@m+Sx z_GVw7FrSkf3Bt1@#udx@TfR%`$4QG_C_nXFNvQ=>0aaB7)C{%fjJk$LIT_H2ZD`tz zG&4u^EJC7x$5`n;HA&H=JJwlp3ZCYM7bc!+J5)_aTeZ)ty<`$yQXSJ4Vh?&&q0bO1 zlO`_L4F{}d`po*vG-aaeU(%8*QWV})tXmGHE)K8X54CVFJ&c|hlVvsRABeS+8N4=$8)b>+iyyB&gQJycf&1f!CFHsQt zSKTqNE=|{RPm--J?MJ+oD(>;9{<(_DJ4JW~K?dAIU~1b#~yazuJGBYAA;e?^(^vD`rz3ql*He3o7L(44OMyWs-qy-lIjzh8;~7FiOV zbs`7=`?nar$Z`-~AmtcR+^1S#r2>uo1`_+mcg&drjozn^rodcR}_{5)Un0WA5JGvX8Yr1P zbfI$*@Vm;|)3tMjy*M%XJAKGFC6nGmHWq&0$Qg5M>nzU}wxrNXWRq*jdSeK)Bc-xT z+fvOK6@mO($Pf-`RGM@PbF4+R9P`KV?U58> z+$jz|pCN~PD`iq2DqDZ#Sux{$iX-a7KpovDV#vIYlLHeD#0cxt27Q3fZuUwv=Z>h? z+xyi@jJ4m$oc8h_(e`0!lg&`*qK*p^Hyp9)8@P!IvIx}!f(5XL?rjNHn~_HLnvHB`}Y9{9ggIX zGckV$w~NAww}~*cJ8PdZTqt44_%rb{wJrVuf#%72?3C;Ga%1^D$|oAHmwl$#QE01K zun}`&f&Ek!ui(W!Qm^_moo<=EIEjck3}w*QaU|-JXXay-e!M8R_QH2#0d7F`Fi{9H z>ref3loAdAKILH0dw;&Rxyz;m1bg{-{o9dzA zk?md?2z|uDQHU(ZPm{hWcYnc~7tRIE4fBNykl(DGYLSJiGU~y3f#O0DN^`ee?y`>j zIt!pXVc@2Cid)m>MJyRiFIb&XIIJlsSxr@i5_+A0e zWy5tfBwz|Ce3}Ap807b(kT*H~nljnt;Lz|Z&b>EH0!#G$(J}s65b?92Sb%MY+p##V4kqsif)y~vYKm!izfa&zf(gUM$k&$W!XF3H5ukO zT2ZI)sFI;lJzGrc(t*_I?KKHC;gry{A3iK=bO*_H$vLu*-{OSKa*Iw4AF{~)Iw+NOc(G+Be$(RY}E(L+|z z!Wm$tUm2Ehg-OQr$VOasL}s!szCZ0Ruu*^uLp#WUctEBR@J=KZ3?*c_A6>y;`EM^p z5cU@SAfIj+)*9rGLzI&iLULTag;0~f*CUBMg`rHW@!;* zUP_rJR;C(PUMHl}@*a!5f2n1Ih_Du~!W()a)x0^s`Q+4~FOLIs=OjqFHlK|vhP2(A zC5ny#)`+!GY>4nKrj&KuQ5UrMx;&^3mrRp^pMrXr{2ERLfJW9g`ZG1Vs{r6WVeHB4DY^Cfje8evX%OFXe=n# zKWX1iWPjk}V8)r2eR!uuR!6q-5$1QV3-2=%`4D9LSMQ8(LCRy}j|X}%OQwpRP(b-A zQ==U^!dR+C)jP*=m527l7`bYjVm7jBn!->bMSS)I@S!v5Um`StZ(o+r}(7(n=C0g-)hi= zKw`3j`3=Dj1p)OiZSAu_c3{faH$a%<=Y(BWX}z8~URGsKaU3OZ7BEFup9Y!ryDiOU zZs!}q^|pUd6;2b<61;h0I=ZlFWDl9sf)s;Qd(OqdLe$A9w8KDUgzJkBDl6MZjdTu_W&HjZk#IR+Ip_lfzSVmZFBP0wSUssbH zM6_m%z&P#hYSwfXn_A+V5U{yc*9vC-PC}lSTZw05fGKi%x-U$8&e+PLQFsjUo&H}U;)=u|2` zP^YBR0m6an9d8G>Vt;@0d0Bqj zCM&=Hw%&yKdKOF3IG8)qo4jyC#Hy*PlW&_AhCiKEY-}JyM$oYNQmL73IDC%hEWjXW zHH`0m1S8<$Jj;;L)Y1|Gg=wQFa&ObBZHfP|Ec1mpq?#{J zdP7{X<)!psm9@SP7eNZbMRjBN6XEif+*R>@RrK2xIk31T1tQlOd`p$7`g|m#@U|1@oe`eF?PU zDr4&y{g5P@~XPp-?FMF6XYzsx|Jos_WOX-W^cWSpEhaq+$age07F2$zbK|x z8Dxxg_FJ2NGB?3|ipLq}ED*nIaU?=SrrfsNovitz(P<02%}QEvBqNpVzod}zFAC&B z;0EhpnYu5svH*(I^4%+>nSDlHm}A9BJC840f>;gnIsb%B3p%bE>n@A9kIUgt`4JZP z6WddANJ;A6D7!ziCmDYO&vJ_tgMJg$B)&G6m?x4WvMiVU!HVfaJgM=YbhR8N7_E=? zhFt^hoC5L4xn>jSs0h5H+MEVH($)JB{)wF~Sr}Pc8<9o9?EfCj0xw8-gxtAZT$lCyx&P710nBf6ko!gDRM<$YF_b92?=XR9W+y{iL)*rW- zl1`>jO$X-)y|m@8F9TPeIpOw&{-5CPdp++?{*ahPTxg67@`Z7a#Vvg6b)iro-l`iu z;$5h!W1PNwKIhh0VWC|FfvP>xg@v~yqncY|U+Y&g;KH zsAA2IQs`+Vt9OSDfIlA`w3NZhpJ#*V&kkU-h4ecd zQD1ejEx6F{d82Q}Gf{mlj!d@TZz zTl{|zm^+yK4FF*PPbvEFkj6M;^QE))3_K}p?Ithp<_zejV-#Ecz)vT-p2PQT_{e6< zIznWeqYIIC-rtF$Y>K;nW}bKAts%0>{m?Y`tTn@;*O^E4^P&`EC4`N=Uy0)JKcs>>F389eAfG5fmlA|ySte!ouMTYK7UUv7gUhANy z#%Z_t*4P0776k-8?Y%ma0`u>s{&MjD+Ov&+ma?2=$ebePj&-g;l8f9E9@WDzwr|=S zfD?pK^OM!l9ws*Vtzwq9u>##gGmPp9iV2JlhSI3UlH?8d;OMK`TfolR!%BinW;o-e zJs512dWr%yerW(%sYQ@KSDfB=b3(hjaD1*Dd4;WzHR(#^Tzv7xM{f*+$eyX+7lTz1 z?P~4#2uTW?1~VfY#r^CGwnoVH({qEEvTj>vh@pI?Y8u2v|L7j=ggpE4hjnv2i?uJ!_JJv}&ef+pSul!8w!hj~(UtetDi9?K z>_aI_-vD@0XRj#rJ&{p(^7|QvFNef0?gl0&6IMX?pP#}2PPgRB{?@P+&DT}<3yfl) zettzgR5tPe2XA_rhzQ%6*XmiJrutbITp1MciUDJfxdbg=Zw$0sJQg&2F{O-=yq=nz&)NfWYsy5ILEf&uhj?JH0*QX}t{L9tAY$-(by{3~ z(U?Cm^znSCefCN9@pA$?N~YvP5#^@(nP2Vz?^R}L zUu=_*)(%MELhmC-OS4Q{Ypf%pIHU8`$4y;Qd+Q2#8l;I7d>w`TI6_49dKN#J9Lrx84o~5gpCx@xI#15qL(~gnXDpUod~Mw@`TebHc%i@;^Gu>0!F^K>t#O%fT%Y z_B9TEOR)s*#%xWyxetc%KKEV*_-U*7mg%J81fo@lzf%ZZd|=M{d7kXUtEe4+^f_Jz zSy?CTBzPsiVhmV4q_lf`{*A?A=XAp1*dqA9Vp8pA0OL#DTaDS?!i4|(9_j4$EF8!? zZ&&-Rjw2RN&t>h@M7ta=Q*~*Xt6`m5KP-1JEBxp2VaW8Oon^XIeak$n?}tkXAJUy% zltcIm$2JWtc5?>&1m6+du+ibnE5r9Qh=t;0hmPWBS8kURkA>&JxQE-3FaIl^Yn~oD z|3IFe`pGi4TR$i6bSM)P@AHuTW#$8^HvUu%=-G3!oySq^H88zf`s;*L_XcR};drGt z;ofU$|K4p3b7jKH+onhjWy^C7@H2O|YeBDQTI5*cZTOVqMBYD)8;(}T0-###z%9Ss zE-oDK=MT}5{6~^C;4YRUaxwq_xw7u(1oev1cR+QAa=276fhFVS2zK>MF-n_c@2yP} zKfc@v8;WyiuGHGzTO=c574qg>#>nLb&Sx^&QIO1vNRuQqo~}5SP7hQ{a-|u)0Xk@K z#LvrXay*N-icI6Tl_&?@UzpE&C&j5tyoOQL zmuqE>6Q$J`I4nA{Q@Jd7!7Xn}>kVK4%UhS$;R~dI%Eoh;fRE1gJ;~+LLWmkJ{Qsdo znA+XNY|OwFY8=_XbpQX2+md!}Pj=?O{uq0maKWNFrhObeKytaM;)g*>G0fGq! z1K$8lLtUh-_U1|7-9ekD_ewK~C0{h_(;cUGG<@^!<%$E6pzi&rd#dl&B|fpFvshUn zB1gzDoR2-*AI?PhYI$$7&zt28x=gtwb)>{HlTie?npyx$^<(-od8amAt54F$8biz2 zW50~#53AOe#}64@&#dc${oeqXx5hXpPi&qi?1hWli_M6V6bf+((0>{0*hUEUz1^Lww;D%6C5uReJLzSelAz73nQaTt&V}IR8#_6QTIK3Vt2^)#>7dNL*O9G3kDmQqs zIp$|^R#H?|^oB8XZ(4P(XfOIpzpt~cI(ziU?&x&IGxg&Q zAiZ#h%Fe#RKYL02Qakfa|U`1Hh_1j%3m(={M#s)^ zyLr+u)7(|hA964@?nIwg?bLN|wiS^=lQwA0;7&~YPK*e;BUl)d=frE>bJK)|Gu_sI z_r;h?>^RkCPAc^>Pe_*ykiXyg0Hjn|=#-{P-d66@*OT8u6%`kX*-G2DaBC((s&A(W zQ4j$zuXGaceOh20T=>G3$WhuPy`Mk?m)_k8CpB7zQGmZUEI6c0_AFjvDy-@oa~BSpP*�}Icu6mnt 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 WcQ@A(>gL8Pd9A+HX$%EKK4UB3L%SfZLl6Sv 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�w*LUXEB+PqH|+$@jGrPoYDIHi!X#lpRRL5C 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

    $$af-~i}unE%x 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 XKfs$6ocwthco_Vc85riKfSdsUeD7E0 literal 0 HcmV?d00001 diff --git a/API/Controllers/AccountController.cs b/API/Controllers/AccountController.cs index 0b0a17160..2277f438c 100644 --- a/API/Controllers/AccountController.cs +++ b/API/Controllers/AccountController.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Globalization; using System.Linq; using System.Reflection; using System.Threading.Tasks; @@ -17,7 +16,6 @@ using API.Errors; using API.Extensions; using API.Helpers.Builders; using API.Services; -using API.Services.Plus; using API.SignalR; using AutoMapper; using Hangfire; @@ -29,7 +27,6 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.RateLimiting; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; -using SharpCompress; namespace API.Controllers; @@ -53,7 +50,6 @@ public class AccountController : BaseApiController private readonly IEmailService _emailService; private readonly IEventHub _eventHub; private readonly ILocalizationService _localizationService; - private readonly IOidcService _oidcService; /// public AccountController(UserManager userManager, @@ -62,8 +58,7 @@ public class AccountController : BaseApiController ILogger logger, IMapper mapper, IAccountService accountService, IEmailService emailService, IEventHub eventHub, - ILocalizationService localizationService, - IOidcService oidcService) + ILocalizationService localizationService) { _userManager = userManager; _signInManager = signInManager; @@ -75,7 +70,6 @@ public class AccountController : BaseApiController _emailService = emailService; _eventHub = eventHub; _localizationService = localizationService; - _oidcService = oidcService; } ///

    @@ -197,11 +191,7 @@ public class AccountController : BaseApiController var result = await _userManager.CreateAsync(user, registerDto.Password); if (!result.Succeeded) return BadRequest(result.Errors); - // Assign default streams - _accountService.AddDefaultStreamsToUser(user); - - // Assign default reading profile - await _accountService.AddDefaultReadingProfileToUser(user); + await _accountService.SeedUser(user); var token = await _userManager.GenerateEmailConfirmationTokenAsync(user); if (string.IsNullOrEmpty(token)) return BadRequest(await _localizationService.Get("en", "confirm-token-gen")); @@ -534,6 +524,11 @@ public class AccountController : BaseApiController return Ok(); } + /// + /// Change the Age Rating restriction for the user + /// + /// + /// [HttpPost("update/age-restriction")] public async Task UpdateAgeRestriction(UpdateAgeRestrictionDto dto) { @@ -745,11 +740,7 @@ public class AccountController : BaseApiController var result = await _userManager.CreateAsync(user, AccountService.DefaultPassword); if (!result.Succeeded) return BadRequest(result.Errors); - // Assign default streams - _accountService.AddDefaultStreamsToUser(user); - - // Assign default reading profile - await _accountService.AddDefaultReadingProfileToUser(user); + await _accountService.SeedUser(user); // Assign Roles var roles = dto.Roles; diff --git a/API/Controllers/AnnotationController.cs b/API/Controllers/AnnotationController.cs index f6fcfbb87..5da784dc3 100644 --- a/API/Controllers/AnnotationController.cs +++ b/API/Controllers/AnnotationController.cs @@ -45,6 +45,17 @@ public class AnnotationController : BaseApiController return Ok(await _unitOfWork.UserRepository.GetAnnotations(User.GetUserId(), chapterId)); } + /// + /// Returns all annotations by Series + /// + /// + /// + [HttpGet("all-for-series")] + public async Task> GetAnnotationsBySeries(int seriesId) + { + return Ok(await _unitOfWork.UserRepository.GetAnnotationDtosBySeries(User.GetUserId(), seriesId)); + } + /// /// Returns the Annotation by Id. User must have access to annotation. /// diff --git a/API/Controllers/BookController.cs b/API/Controllers/BookController.cs index 2fcf8567a..c41ad4077 100644 --- a/API/Controllers/BookController.cs +++ b/API/Controllers/BookController.cs @@ -111,19 +111,16 @@ public class BookController : BaseApiController public async Task GetBookPageResources(int chapterId, [FromQuery] string file) { if (chapterId <= 0) return BadRequest(await _localizationService.Get("en", "chapter-doesnt-exist")); - var chapter = await _unitOfWork.ChapterRepository.GetChapterAsync(chapterId); + + var chapter = await _cacheService.Ensure(chapterId); if (chapter == null) return BadRequest(await _localizationService.Get("en", "chapter-doesnt-exist")); - using var book = await EpubReader.OpenBookAsync(chapter.Files.ElementAt(0).FilePath, BookService.LenientBookReaderOptions); - var key = BookService.CoalesceKeyForAnyFile(book, file); + var cachedFilePath = Path.Join(_cacheService.GetCachePath(chapterId), Path.GetFileName(chapter.Files.ElementAt(0).FilePath)); + var result = await _bookService.GetResourceAsync(cachedFilePath, file); - if (!book.Content.AllFiles.ContainsLocalFileRefWithKey(key)) return BadRequest(await _localizationService.Get("en", "file-missing")); + if (!result.IsSuccess) return BadRequest(await _localizationService.Translate(User.GetUserId(), result.ErrorMessage)); - var bookFile = book.Content.AllFiles.GetLocalFileRefByKey(key); - var content = await bookFile.ReadContentAsBytesAsync(); - - var contentType = BookService.GetContentType(bookFile.ContentType); - return File(content, contentType, $"{chapterId}-{file}"); + return File(result.Content, result.ContentType, $"{chapterId}-{file}"); } /// diff --git a/API/Controllers/ChapterController.cs b/API/Controllers/ChapterController.cs index 94535d499..4ddbd86a0 100644 --- a/API/Controllers/ChapterController.cs +++ b/API/Controllers/ChapterController.cs @@ -51,9 +51,7 @@ public class ChapterController : BaseApiController [HttpGet] public async Task> GetChapter(int chapterId) { - var chapter = - await _unitOfWork.ChapterRepository.GetChapterDtoAsync(chapterId, - ChapterIncludes.People | ChapterIncludes.Files); + var chapter = await _unitOfWork.ChapterRepository.GetChapterDtoAsync(chapterId, User.GetUserId()); return Ok(chapter); } diff --git a/API/Controllers/ColorScapeController.cs b/API/Controllers/ColorScapeController.cs index 04827658d..bc9293b7a 100644 --- a/API/Controllers/ColorScapeController.cs +++ b/API/Controllers/ColorScapeController.cs @@ -50,7 +50,7 @@ public class ColorScapeController : BaseApiController [HttpGet("chapter")] public async Task> GetColorScapeForChapter(int id) { - var entity = await _unitOfWork.ChapterRepository.GetChapterDtoAsync(id); + var entity = await _unitOfWork.ChapterRepository.GetChapterDtoAsync(id, User.GetUserId()); return GetColorSpaceDto(entity); } diff --git a/API/Controllers/FallbackController.cs b/API/Controllers/FallbackController.cs index 0c925476f..9aff82027 100644 --- a/API/Controllers/FallbackController.cs +++ b/API/Controllers/FallbackController.cs @@ -20,8 +20,13 @@ public class FallbackController : Controller _taskScheduler = taskScheduler; } - public PhysicalFileResult Index() + public IActionResult Index() { + if (HttpContext.Request.Path.StartsWithSegments("/api")) + { + return NotFound(); + } + return PhysicalFile(Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "index.html"), "text/HTML"); } } diff --git a/API/Controllers/OPDSController.cs b/API/Controllers/OPDSController.cs index 0fd9c437a..e59620340 100644 --- a/API/Controllers/OPDSController.cs +++ b/API/Controllers/OPDSController.cs @@ -18,6 +18,7 @@ using API.DTOs.Filtering.v2; using API.DTOs.OPDS; using API.DTOs.Person; using API.DTOs.Progress; +using API.DTOs.ReadingLists; using API.DTOs.Search; using API.Entities; using API.Entities.Enums; @@ -105,33 +106,32 @@ public class OpdsController : BaseApiController private readonly XmlSerializer _xmlSerializer; private readonly XmlSerializer _xmlOpenSearchSerializer; - private readonly FilterDto _filterDto = new FilterDto() + private readonly FilterDto _filterDto = new() { - Formats = new List(), - Character = new List(), - Colorist = new List(), - Editor = new List(), - Genres = new List(), - Inker = new List(), - Languages = new List(), - Letterer = new List(), - Penciller = new List(), - Libraries = new List(), - Publisher = new List(), + Formats = [], + Character = [], + Colorist = [], + Editor = [], + Genres = [], + Inker = [], + Languages = [], + Letterer = [], + Penciller = [], + Libraries = [], + Publisher = [], Rating = 0, - Tags = new List(), - Translators = new List(), - Writers = new List(), - AgeRating = new List(), - CollectionTags = new List(), - CoverArtist = new List(), + Tags = [], + Translators = [], + Writers = [], + AgeRating = [], + CollectionTags = [], + CoverArtist = [], ReadStatus = new ReadStatus(), SortOptions = null, - PublicationStatus = new List() + PublicationStatus = [] }; - private readonly FilterV2Dto _filterV2Dto = new FilterV2Dto(); - private readonly ChapterSortComparerDefaultLast _chapterSortComparerDefaultLast = ChapterSortComparerDefaultLast.Default; + private readonly FilterV2Dto _filterV2Dto = new(); private const int PageSize = 20; public const string UserId = nameof(UserId); @@ -187,10 +187,10 @@ public class OpdsController : BaseApiController { Text = await _localizationService.Translate(userId, "browse-on-deck") }, - Links = new List() - { + Links = + [ CreateLink(FeedLinkRelation.SubSection, FeedLinkType.AtomNavigation, $"{prefix}{apiKey}/on-deck"), - } + ] }); break; case DashboardStreamType.NewlyAdded: @@ -202,10 +202,10 @@ public class OpdsController : BaseApiController { Text = await _localizationService.Translate(userId, "browse-recently-added") }, - Links = new List() - { + Links = + [ CreateLink(FeedLinkRelation.SubSection, FeedLinkType.AtomNavigation, $"{prefix}{apiKey}/recently-added"), - } + ] }); break; case DashboardStreamType.RecentlyUpdated: @@ -217,10 +217,10 @@ public class OpdsController : BaseApiController { Text = await _localizationService.Translate(userId, "browse-recently-updated") }, - Links = new List() - { + Links = + [ CreateLink(FeedLinkRelation.SubSection, FeedLinkType.AtomNavigation, $"{prefix}{apiKey}/recently-updated"), - } + ] }); break; case DashboardStreamType.MoreInGenre: @@ -235,10 +235,10 @@ public class OpdsController : BaseApiController { Text = await _localizationService.Translate(userId, "browse-more-in-genre", randomGenre.Title) }, - Links = new List() - { + Links = + [ CreateLink(FeedLinkRelation.SubSection, FeedLinkType.AtomNavigation, $"{prefix}{apiKey}/more-in-genre?genreId={randomGenre.Id}"), - } + ] }); break; case DashboardStreamType.SmartFilter: @@ -269,10 +269,10 @@ public class OpdsController : BaseApiController { Text = await _localizationService.Translate(userId, "browse-reading-lists") }, - Links = new List() - { + Links = + [ CreateLink(FeedLinkRelation.SubSection, FeedLinkType.AtomNavigation, $"{prefix}{apiKey}/reading-list"), - } + ] }); feed.Entries.Add(new FeedEntry() { @@ -282,10 +282,10 @@ public class OpdsController : BaseApiController { Text = await _localizationService.Translate(userId, "browse-want-to-read") }, - Links = new List() - { + Links = + [ CreateLink(FeedLinkRelation.SubSection, FeedLinkType.AtomNavigation, $"{prefix}{apiKey}/want-to-read"), - } + ] }); feed.Entries.Add(new FeedEntry() { @@ -295,10 +295,10 @@ public class OpdsController : BaseApiController { Text = await _localizationService.Translate(userId, "browse-libraries") }, - Links = new List() - { + Links = + [ CreateLink(FeedLinkRelation.SubSection, FeedLinkType.AtomNavigation, $"{prefix}{apiKey}/libraries"), - } + ] }); feed.Entries.Add(new FeedEntry() { @@ -308,10 +308,10 @@ public class OpdsController : BaseApiController { Text = await _localizationService.Translate(userId, "browse-collections") }, - Links = new List() - { + Links = + [ CreateLink(FeedLinkRelation.SubSection, FeedLinkType.AtomNavigation, $"{prefix}{apiKey}/collections"), - } + ] }); if ((_unitOfWork.AppUserSmartFilterRepository.GetAllDtosByUserId(userId)).Any()) @@ -324,30 +324,13 @@ public class OpdsController : BaseApiController { Text = await _localizationService.Translate(userId, "browse-smart-filters") }, - Links = new List() - { + Links = + [ CreateLink(FeedLinkRelation.SubSection, FeedLinkType.AtomNavigation, $"{prefix}{apiKey}/smart-filters"), - } + ] }); } - // if ((await _unitOfWork.AppUserExternalSourceRepository.GetExternalSources(userId)).Any()) - // { - // feed.Entries.Add(new FeedEntry() - // { - // Id = "allExternalSources", - // Title = await _localizationService.Translate(userId, "external-sources"), - // Content = new FeedEntryContent() - // { - // Text = await _localizationService.Translate(userId, "browse-external-sources") - // }, - // Links = new List() - // { - // CreateLink(FeedLinkRelation.SubSection, FeedLinkType.AtomNavigation, $"{prefix}{apiKey}/external-sources"), - // } - // }); - // } - return CreateXmlResult(SerializeXml(feed)); } @@ -396,12 +379,12 @@ public class OpdsController : BaseApiController [HttpGet("{apiKey}/smart-filters")] [Produces("application/xml")] - public async Task GetSmartFilters(string apiKey) + public async Task GetSmartFilters(string apiKey, [FromQuery] int pageNumber = 0) { var userId = GetUserIdFromContext(); var (_, prefix) = await GetPrefix(); - var filters = _unitOfWork.AppUserSmartFilterRepository.GetAllDtosByUserId(userId); + var filters = await _unitOfWork.AppUserSmartFilterRepository.GetPagedDtosByUserIdAsync(userId, GetUserParams(pageNumber)); var feed = CreateFeed(await _localizationService.Translate(userId, "smartFilters"), $"{apiKey}/smart-filters", apiKey, prefix); SetFeedId(feed, "smartFilters"); @@ -419,40 +402,10 @@ public class OpdsController : BaseApiController }); } + AddPagination(feed, filters, $"{prefix}{apiKey}/smart-filters"); return CreateXmlResult(SerializeXml(feed)); } - [HttpGet("{apiKey}/external-sources")] - [Produces("application/xml")] - public async Task GetExternalSources(string apiKey) - { - // NOTE: This doesn't seem possible in OPDS v2.1 due to the resulting stream using relative links and most apps resolve against source url. Even using full paths doesn't work - var userId = GetUserIdFromContext(); - var (_, prefix) = await GetPrefix(); - - var externalSources = await _unitOfWork.AppUserExternalSourceRepository.GetExternalSources(userId); - var feed = CreateFeed(await _localizationService.Translate(userId, "external-sources"), $"{apiKey}/external-sources", apiKey, prefix); - SetFeedId(feed, "externalSources"); - foreach (var externalSource in externalSources) - { - var opdsUrl = $"{externalSource.Host}api/opds/{externalSource.ApiKey}"; - feed.Entries.Add(new FeedEntry() - { - Id = externalSource.Id.ToString(), - Title = externalSource.Name, - Summary = externalSource.Host, - Links = new List() - { - CreateLink(FeedLinkRelation.Start, FeedLinkType.AtomNavigation, opdsUrl), - CreateLink(FeedLinkRelation.Thumbnail, FeedLinkType.Image, $"{opdsUrl}/favicon") - } - }); - } - - return CreateXmlResult(SerializeXml(feed)); - } - - [HttpGet("{apiKey}/libraries")] [Produces("application/xml")] public async Task GetLibraries(string apiKey) @@ -463,7 +416,7 @@ public class OpdsController : BaseApiController SetFeedId(feed, "libraries"); // Ensure libraries follow SideNav order - var userSideNavStreams = await _unitOfWork.UserRepository.GetSideNavStreams(userId, false); + var userSideNavStreams = await _unitOfWork.UserRepository.GetSideNavStreams(userId); foreach (var library in userSideNavStreams.Where(s => s.StreamType == SideNavStreamType.Library).Select(sideNavStream => sideNavStream.Library)) { feed.Entries.Add(new FeedEntry() @@ -506,14 +459,14 @@ public class OpdsController : BaseApiController [HttpGet("{apiKey}/collections")] [Produces("application/xml")] - public async Task GetCollections(string apiKey) + public async Task GetCollections(string apiKey, [FromQuery] int pageNumber = 0) { var userId = GetUserIdFromContext(); var user = await _unitOfWork.UserRepository.GetUserByIdAsync(userId); if (user == null) return Unauthorized(); - var tags = await _unitOfWork.CollectionTagRepository.GetCollectionDtosAsync(user.Id, true); + var tags = await _unitOfWork.CollectionTagRepository.GetCollectionDtosPagedAsync(user.Id, GetUserParams(pageNumber), true); var (baseUrl, prefix) = await GetPrefix(); var feed = CreateFeed(await _localizationService.Translate(userId, "collections"), $"{apiKey}/collections", apiKey, prefix); @@ -536,6 +489,7 @@ public class OpdsController : BaseApiController ] })); + AddPagination(feed, tags, $"{prefix}{apiKey}/collections"); return CreateXmlResult(SerializeXml(feed)); } @@ -609,14 +563,6 @@ public class OpdsController : BaseApiController return CreateXmlResult(SerializeXml(feed)); } - private static UserParams GetUserParams(int pageNumber) - { - return new UserParams() - { - PageNumber = pageNumber, - PageSize = PageSize - }; - } [HttpGet("{apiKey}/reading-list/{readingListId}")] [Produces("application/xml")] @@ -645,13 +591,22 @@ public class OpdsController : BaseApiController var feed = CreateFeed(readingList.Title + " " + await _localizationService.Translate(userId, "reading-list"), $"{apiKey}/reading-list/{readingListId}", apiKey, prefix); SetFeedId(feed, $"reading-list-{readingListId}"); - var items = await _unitOfWork.ReadingListRepository.GetReadingListItemDtosByIdAsync(readingListId, userId); + + var items = (await _unitOfWork.ReadingListRepository.GetReadingListItemDtosByIdAsync(readingListId, userId, GetUserParams(pageNumber))).ToList(); + + // Check if there is reading progress or not, if so, inject a "continue-reading" item + var firstReadReadingListItem = items.FirstOrDefault(i => i.PagesRead > 0); + if (firstReadReadingListItem != null) + { + await AddContinueReadingPoint(apiKey, firstReadReadingListItem, userId, feed, prefix, baseUrl); + } + foreach (var item in items) { - var chapterDto = await _unitOfWork.ChapterRepository.GetChapterDtoAsync(item.ChapterId); + var chapterDto = await _unitOfWork.ChapterRepository.GetChapterDtoAsync(item.ChapterId, userId); // If there is only one file underneath, add a direct acquisition link, otherwise add a subsection - if (chapterDto != null && chapterDto.Files.Count == 1) + if (chapterDto is {Files.Count: 1}) { var series = await _unitOfWork.SeriesRepository.GetSeriesDtoByIdAsync(item.SeriesId, userId); feed.Entries.Add(await CreateChapterWithFile(userId, item.SeriesId, item.VolumeId, item.ChapterId, @@ -668,6 +623,29 @@ public class OpdsController : BaseApiController return CreateXmlResult(SerializeXml(feed)); } + private async Task AddContinueReadingPoint(string apiKey, int seriesId, ChapterDto chapterDto, int userId, + Feed feed, string prefix, string baseUrl) + { + var series = await _unitOfWork.SeriesRepository.GetSeriesDtoByIdAsync(seriesId, userId); + if (chapterDto is {Files.Count: 1}) + { + feed.Entries.Add(await CreateContinueReadingFromFile(userId, seriesId, chapterDto.VolumeId, chapterDto.Id, + chapterDto.Files.First(), series!, chapterDto, apiKey, prefix, baseUrl)); + } + } + + private async Task AddContinueReadingPoint(string apiKey, ReadingListItemDto firstReadReadingListItem, int userId, + Feed feed, string prefix, string baseUrl) + { + var chapterDto = await _unitOfWork.ChapterRepository.GetChapterDtoAsync(firstReadReadingListItem.ChapterId, userId); + var series = await _unitOfWork.SeriesRepository.GetSeriesDtoByIdAsync(firstReadReadingListItem.SeriesId, userId); + if (chapterDto is {Files.Count: 1}) + { + feed.Entries.Add(await CreateContinueReadingFromFile(userId, firstReadReadingListItem.SeriesId, firstReadReadingListItem.VolumeId, firstReadReadingListItem.ChapterId, + chapterDto.Files.First(), series!, chapterDto, apiKey, prefix, baseUrl)); + } + } + [HttpGet("{apiKey}/libraries/{libraryId}")] [Produces("application/xml")] public async Task GetSeriesForLibrary(int libraryId, string apiKey, [FromQuery] int pageNumber = 0) @@ -684,14 +662,14 @@ public class OpdsController : BaseApiController var filter = new FilterV2Dto { - Statements = new List() { + Statements = [ new () { Comparison = FilterComparison.Equal, Field = FilterField.Libraries, Value = libraryId + string.Empty } - } + ] }; var series = await _unitOfWork.SeriesRepository.GetSeriesDtoForLibraryIdV2Async(userId, GetUserParams(pageNumber), filter); @@ -735,6 +713,7 @@ public class OpdsController : BaseApiController var userId = GetUserIdFromContext(); var (baseUrl, prefix) = await GetPrefix(); var genre = await _unitOfWork.GenreRepository.GetGenreById(genreId); + if (genre == null) return BadRequest(await _localizationService.Translate(userId, "genre-doesnt-exist")); var seriesDtos = await _unitOfWork.SeriesRepository.GetMoreIn(userId, 0, genreId, GetUserParams(pageNumber)); var seriesMetadatas = await _unitOfWork.SeriesRepository.GetSeriesMetadataForIds(seriesDtos.Select(s => s.Id)); @@ -750,6 +729,13 @@ public class OpdsController : BaseApiController return CreateXmlResult(SerializeXml(feed)); } + /// + /// Returns recently updated series. While pagination is avaible, total amount of pages is not due to implementation + /// details + /// + /// + /// + /// [HttpGet("{apiKey}/recently-updated")] [Produces("application/xml")] public async Task GetRecentlyUpdated(string apiKey, [FromQuery] int pageNumber = 1) @@ -832,7 +818,7 @@ public class OpdsController : BaseApiController return BadRequest(await _localizationService.Translate(userId, "query-required")); } query = query.Replace(@"%", string.Empty); - // Get libraries user has access to + var libraries = (await _unitOfWork.LibraryRepository.GetLibrariesForUserIdAsync(userId)).ToList(); if (libraries.Count == 0) return BadRequest(await _localizationService.Translate(userId, "libraries-restricted")); @@ -855,15 +841,15 @@ public class OpdsController : BaseApiController Id = collection.Id.ToString(), Title = collection.Title, Summary = collection.Summary, - Links = new List() - { + Links = + [ CreateLink(FeedLinkRelation.SubSection, FeedLinkType.AtomNavigation, $"{prefix}{apiKey}/collections/{collection.Id}"), CreateLink(FeedLinkRelation.Image, FeedLinkType.Image, $"{baseUrl}api/image/collection-cover?collectionId={collection.Id}&apiKey={apiKey}"), CreateLink(FeedLinkRelation.Thumbnail, FeedLinkType.Image, $"{baseUrl}api/image/collection-cover?collectionId={collection.Id}&apiKey={apiKey}") - } + ] }); } @@ -874,14 +860,14 @@ public class OpdsController : BaseApiController Id = readingListDto.Id.ToString(), Title = readingListDto.Title, Summary = readingListDto.Summary, - Links = new List() - { + Links = + [ CreateLink(FeedLinkRelation.SubSection, FeedLinkType.AtomNavigation, $"{prefix}{apiKey}/reading-list/{readingListDto.Id}"), - } + ] }); } - // TODO: Search should allow Chapters/Files and more + feed.Total = feed.Entries.Count; return CreateXmlResult(SerializeXml(feed)); } @@ -926,20 +912,30 @@ public class OpdsController : BaseApiController SetFeedId(feed, $"series-{series.Id}"); feed.Links.Add(CreateLink(FeedLinkRelation.Image, FeedLinkType.Image, $"{baseUrl}api/image/series-cover?seriesId={seriesId}&apiKey={apiKey}")); + + // Check if there is reading progress or not, if so, inject a "continue-reading" item + var anyUserProgress = await _unitOfWork.AppUserProgressRepository.AnyUserProgressForSeriesAsync(seriesId, userId); + if (anyUserProgress) + { + var chapterDto = await _readerService.GetContinuePoint(seriesId, userId); + await AddContinueReadingPoint(apiKey, seriesId, chapterDto, userId, feed, prefix, baseUrl); + } + + var chapterDict = new Dictionary(); var fileDict = new Dictionary(); + var seriesDetail = await _seriesService.GetSeriesDetail(seriesId, userId); foreach (var volume in seriesDetail.Volumes) { - var chaptersForVolume = await _unitOfWork.ChapterRepository.GetChaptersAsync(volume.Id, ChapterIncludes.Files | ChapterIncludes.People); + var chaptersForVolume = await _unitOfWork.ChapterRepository.GetChapterDtosAsync(volume.Id, userId); - foreach (var chapter in chaptersForVolume) + foreach (var chapterDto in chaptersForVolume) { - var chapterId = chapter.Id; + var chapterId = chapterDto.Id; if (!chapterDict.TryAdd(chapterId, 0)) continue; - var chapterDto = _mapper.Map(chapter); - foreach (var mangaFile in chapter.Files) + foreach (var mangaFile in chapterDto.Files) { // If a chapter has multiple files that are within one chapter, this dict prevents duplicate key exception if (!fileDict.TryAdd(mangaFile.Id, 0)) continue; @@ -999,25 +995,31 @@ public class OpdsController : BaseApiController return NotFound(); } - var libraryType = await _unitOfWork.LibraryRepository.GetLibraryTypeAsync(series.LibraryId); var volume = await _unitOfWork.VolumeRepository.GetVolumeAsync(volumeId, VolumeIncludes.Chapters); if (volume == null) { return NotFound(); } - var feed = CreateFeed(series.Name + " - Volume " + volume!.Name + $" - {_seriesService.FormatChapterName(userId, libraryType)}s ", + var feed = CreateFeed($"{series.Name} - Volume {volume!.Name}", $"{apiKey}/series/{seriesId}/volume/{volumeId}", apiKey, prefix); - SetFeedId(feed, $"series-{series.Id}-volume-{volume.Id}-{_seriesService.FormatChapterName(userId, libraryType)}s"); + SetFeedId(feed, $"series-{series.Id}-volume-{volume.Id}"); - foreach (var chapterId in volume.Chapters.Select(c => c.Id)) + var chapterDtos = await _unitOfWork.ChapterRepository.GetChapterDtoByIdsAsync(volume.Chapters.Select(c => c.Id), userId); + + // Check if there is reading progress or not, if so, inject a "continue-reading" item + var firstChapterWithProgress = chapterDtos.FirstOrDefault(c => c.PagesRead > 0); + if (firstChapterWithProgress != null) { - var chapterDto = await _unitOfWork.ChapterRepository.GetChapterDtoAsync(chapterId, ChapterIncludes.Files | ChapterIncludes.People); - if (chapterDto == null) continue; + var chapterDto = await _readerService.GetContinuePoint(seriesId, userId); + await AddContinueReadingPoint(apiKey, seriesId, chapterDto, userId, feed, prefix, baseUrl); + } + foreach (var chapterDto in chapterDtos) + { foreach (var mangaFile in chapterDto.Files) { - feed.Entries.Add(await CreateChapterWithFile(userId, seriesId, volumeId, chapterId, mangaFile, series, chapterDto!, apiKey, prefix, baseUrl)); + feed.Entries.Add(await CreateChapterWithFile(userId, seriesId, volumeId, chapterDto.Id, mangaFile, series, chapterDto!, apiKey, prefix, baseUrl)); } } @@ -1032,14 +1034,17 @@ public class OpdsController : BaseApiController var (baseUrl, prefix) = await GetPrefix(); var series = await _unitOfWork.SeriesRepository.GetSeriesDtoByIdAsync(seriesId, userId); + if (series == null) return BadRequest(await _localizationService.Translate(userId, "series-doesnt-exist")); + var libraryType = await _unitOfWork.LibraryRepository.GetLibraryTypeAsync(series.LibraryId); - var chapter = await _unitOfWork.ChapterRepository.GetChapterDtoAsync(chapterId, ChapterIncludes.Files | ChapterIncludes.People); + var chapter = await _unitOfWork.ChapterRepository.GetChapterDtoAsync(chapterId, userId); if (chapter == null) return BadRequest(await _localizationService.Translate(userId, "chapter-doesnt-exist")); var volume = await _unitOfWork.VolumeRepository.GetVolumeAsync(volumeId); - var feed = CreateFeed(series.Name + " - Volume " + volume!.Name + $" - {_seriesService.FormatChapterName(userId, libraryType)}s", + var chapterName = await _seriesService.FormatChapterName(userId, libraryType); + var feed = CreateFeed( $"{series.Name} - Volume {volume!.Name} - {chapterName} {chapterId}", $"{apiKey}/series/{seriesId}/volume/{volumeId}/chapter/{chapterId}", apiKey, prefix); SetFeedId(feed, $"series-{series.Id}-volume-{volumeId}-{_seriesService.FormatChapterName(userId, libraryType)}-{chapterId}-files"); @@ -1197,6 +1202,17 @@ public class OpdsController : BaseApiController }; } + private async Task CreateContinueReadingFromFile(int userId, int seriesId, int volumeId, int chapterId, + MangaFileDto mangaFile, SeriesDto series, ChapterDto chapter, string apiKey, string prefix, string baseUrl) + { + var entry = await CreateChapterWithFile(userId, seriesId, volumeId, chapterId, mangaFile, series, chapter, + apiKey, prefix, baseUrl); + + entry.Title = await _localizationService.Translate(userId, "opds-continue-reading-title", entry.Title); + + return entry; + } + private async Task CreateChapterWithFile(int userId, int seriesId, int volumeId, int chapterId, MangaFileDto mangaFile, SeriesDto series, ChapterDto chapter, string apiKey, string prefix, string baseUrl) { @@ -1216,6 +1232,7 @@ public class OpdsController : BaseApiController { var volumeLabel = await _localizationService.Translate(userId, "volume-num", string.Empty); SeriesService.RenameVolumeName(volume, libraryType, volumeLabel); + if (!volume.IsLooseLeaf()) { title += $" - {volume.Name}"; @@ -1231,10 +1248,10 @@ public class OpdsController : BaseApiController } // Chunky requires a file at the end. Our API ignores this - var accLink = - CreateLink(FeedLinkRelation.Acquisition, fileType, + var accLink = CreateLink(FeedLinkRelation.Acquisition, fileType, $"{prefix}{apiKey}/series/{seriesId}/volume/{volumeId}/chapter/{chapterId}/download/{filename}", filename); + accLink.TotalPages = chapter.Pages; var entry = new FeedEntry() @@ -1269,6 +1286,9 @@ public class OpdsController : BaseApiController entry.Links.Add(await CreatePageStreamLink(series.LibraryId, seriesId, volumeId, chapterId, mangaFile, apiKey, prefix)); } + // Patch in reading status on the item (as OPDS is seriously lacking) + entry.Title = $"{GetReadingProgressIcon(chapter.PagesRead, chapter.Pages)} {entry.Title}"; + return entry; } @@ -1306,12 +1326,27 @@ public class OpdsController : BaseApiController // Save progress for the user (except Panels, they will use a direct connection) var userAgent = Request.Headers["User-Agent"].ToString(); + + + if (!userAgent.StartsWith("Panels", StringComparison.InvariantCultureIgnoreCase) || !saveProgress) { + // Kavita expects 0-N for progress, KOReader doesn't respect the OPDS-PS spec and does some wierd stuff + // https://github.com/Kareadita/Kavita/pull/4014#issuecomment-3313677492 + var koreaderOffset = 0; + if (userAgent.StartsWith("Koreader", StringComparison.InvariantCultureIgnoreCase)) + { + var totalPages = await _unitOfWork.ChapterRepository.GetChapterTotalPagesAsync(chapterId); + if (totalPages - pageNumber < 2) + { + koreaderOffset = 1; + } + } + await _readerService.SaveReadingProgress(new ProgressDto() { ChapterId = chapterId, - PageNum = pageNumber, + PageNum = pageNumber + koreaderOffset, SeriesId = seriesId, VolumeId = volumeId, LibraryId =libraryId @@ -1322,7 +1357,7 @@ public class OpdsController : BaseApiController } catch (Exception) { - _cacheService.CleanupChapters(new []{ chapterId }); + _cacheService.CleanupChapters([chapterId]); throw; } } @@ -1334,6 +1369,7 @@ public class OpdsController : BaseApiController var userId = GetUserIdFromContext(); var files = _directoryService.GetFilesWithExtension(Path.Join(Directory.GetCurrentDirectory(), ".."), @"\.ico"); if (files.Length == 0) return BadRequest(await _localizationService.Translate(userId, "favicon-doesnt-exist")); + var path = files[0]; var content = await _directoryService.ReadFileAsync(path); var format = Path.GetExtension(path); @@ -1452,8 +1488,35 @@ public class OpdsController : BaseApiController } } + private static UserParams GetUserParams(int pageNumber) + { + return new UserParams() + { + PageNumber = pageNumber, + PageSize = PageSize + }; + } + private static string RemoveInvalidXmlChars(string input) { return new string(input.Where(XmlConvert.IsXmlChar).ToArray()); } + + private static string GetReadingProgressIcon(int pagesRead, int totalPages) + { + if (pagesRead == 0) return "⭘"; + + var percentageRead = (double)pagesRead / totalPages; + + return percentageRead switch + { + // 100% + >= 1.0 => "⬤", + // > 50% and < 100% + > 0.5 => "◕", + // > 25% and <= 50% + > 0.25 => "◑", + _ => "◔" + }; + } } diff --git a/API/Controllers/ReaderController.cs b/API/Controllers/ReaderController.cs index 09790c17b..6281c2888 100644 --- a/API/Controllers/ReaderController.cs +++ b/API/Controllers/ReaderController.cs @@ -516,7 +516,7 @@ public class ReaderController : BaseApiController { var user = await _unitOfWork.UserRepository.GetUserByUsernameAsync(User.GetUsername(), AppUserIncludes.Progress); if (user == null) return Unauthorized(); - user.Progresses ??= new List(); + user.Progresses ??= []; var volumes = await _unitOfWork.VolumeRepository.GetVolumesForSeriesAsync(dto.SeriesIds.ToArray(), true); foreach (var volume in volumes) @@ -566,9 +566,11 @@ public class ReaderController : BaseApiController public async Task SaveProgress(ProgressDto progressDto) { var userId = User.GetUserId(); - if (!await _readerService.SaveReadingProgress(progressDto, userId)) - return BadRequest(await _localizationService.Translate(User.GetUserId(), "generic-read-progress")); + if (!await _readerService.SaveReadingProgress(progressDto, userId)) + { + return BadRequest(await _localizationService.Translate(userId, "generic-read-progress")); + } return Ok(true); } @@ -627,7 +629,7 @@ public class ReaderController : BaseApiController { var user = await _unitOfWork.UserRepository.GetUserByUsernameAsync(User.GetUsername(), AppUserIncludes.Bookmarks); if (user == null) return Unauthorized(); - if (user.Bookmarks == null) return Ok(await _localizationService.Translate(User.GetUserId(), "nothing-to-do")); + if (user.Bookmarks == null || user.Bookmarks.Count == 0) return Ok(await _localizationService.Translate(User.GetUserId(), "nothing-to-do")); try { @@ -667,7 +669,7 @@ public class ReaderController : BaseApiController { var user = await _unitOfWork.UserRepository.GetUserByUsernameAsync(User.GetUsername(), AppUserIncludes.Bookmarks); if (user == null) return Unauthorized(); - if (user.Bookmarks == null) return Ok(await _localizationService.Translate(User.GetUserId(), "nothing-to-do")); + if (user.Bookmarks == null || user.Bookmarks.Count == 0) return Ok(await _localizationService.Translate(User.GetUserId(), "nothing-to-do")); try { @@ -882,7 +884,7 @@ public class ReaderController : BaseApiController { var userId = User.GetUserId(); var series = await _unitOfWork.SeriesRepository.GetSeriesDtoByIdAsync(seriesId, userId); - var chapter = await _unitOfWork.ChapterRepository.GetChapterDtoAsync(chapterId); + var chapter = await _unitOfWork.ChapterRepository.GetChapterDtoAsync(chapterId, userId); if (series == null || chapter == null) return BadRequest(await _localizationService.Translate(User.GetUserId(), "generic-error")); // Patch in the reading progress diff --git a/API/Controllers/SeriesController.cs b/API/Controllers/SeriesController.cs index ae9c7ddd8..e33ecebe1 100644 --- a/API/Controllers/SeriesController.cs +++ b/API/Controllers/SeriesController.cs @@ -180,7 +180,7 @@ public class SeriesController : BaseApiController [HttpGet("chapter")] public async Task> GetChapter(int chapterId) { - var chapter = await _unitOfWork.ChapterRepository.GetChapterDtoAsync(chapterId); + var chapter = await _unitOfWork.ChapterRepository.GetChapterDtoAsync(chapterId, User.GetUserId()); if (chapter == null) return NoContent(); return Ok(await _unitOfWork.ChapterRepository.AddChapterModifiers(User.GetUserId(), chapter)); } diff --git a/API/Controllers/SettingsController.cs b/API/Controllers/SettingsController.cs index 5a9ad49f8..340116d18 100644 --- a/API/Controllers/SettingsController.cs +++ b/API/Controllers/SettingsController.cs @@ -71,6 +71,9 @@ public class SettingsController : BaseApiController public async Task> GetSettings() { var settingsDto = await _unitOfWork.SettingsRepository.GetSettingsDtoAsync(); + + // Do not send OIDC secret to user + settingsDto.OidcConfig.Secret = "*".Repeat(settingsDto.OidcConfig.Secret.Length); return Ok(settingsDto); } diff --git a/API/Controllers/UsersController.cs b/API/Controllers/UsersController.cs index abf8468f0..f67b90a43 100644 --- a/API/Controllers/UsersController.cs +++ b/API/Controllers/UsersController.cs @@ -109,6 +109,7 @@ public class UsersController : BaseApiController existingPreferences.NoTransitions = preferencesDto.NoTransitions; existingPreferences.CollapseSeriesRelationships = preferencesDto.CollapseSeriesRelationships; existingPreferences.ShareReviews = preferencesDto.ShareReviews; + existingPreferences.ColorScapeEnabled = preferencesDto.ColorScapeEnabled; existingPreferences.BookReaderHighlightSlots = preferencesDto.BookReaderHighlightSlots; if (await _licenseService.HasActiveLicense()) diff --git a/API/DTOs/OPDS/Feed.cs b/API/DTOs/OPDS/Feed.cs index 5f4c4b115..e10465844 100644 --- a/API/DTOs/OPDS/Feed.cs +++ b/API/DTOs/OPDS/Feed.cs @@ -4,11 +4,6 @@ using System.Xml.Serialization; namespace API.DTOs.OPDS; -// TODO: OPDS Dtos are internal state, shouldn't be in DTO directory - -/// -/// -/// [XmlRoot("feed", Namespace = "http://www.w3.org/2005/Atom")] public sealed record Feed { @@ -41,10 +36,10 @@ public sealed record Feed public int? StartIndex { get; set; } = null; [XmlElement("link")] - public List Links { get; set; } = new List() ; + public List Links { get; set; } = []; [XmlElement("entry")] - public List Entries { get; set; } = new List(); + public List Entries { get; set; } = []; public bool ShouldSerializeTotal() { diff --git a/API/DTOs/Reader/AnnotationDto.cs b/API/DTOs/Reader/AnnotationDto.cs index 911e3ab47..b73fa3baa 100644 --- a/API/DTOs/Reader/AnnotationDto.cs +++ b/API/DTOs/Reader/AnnotationDto.cs @@ -49,6 +49,7 @@ public sealed record AnnotationDto /// public int SelectedSlotIndex { get; set; } + public required int ChapterId { get; set; } public required int VolumeId { get; set; } public required int SeriesId { get; set; } diff --git a/API/DTOs/Reader/BookResourceResultDto.cs b/API/DTOs/Reader/BookResourceResultDto.cs new file mode 100644 index 000000000..9935341d9 --- /dev/null +++ b/API/DTOs/Reader/BookResourceResultDto.cs @@ -0,0 +1,16 @@ +namespace API.DTOs.Reader; + +public sealed record BookResourceResultDto +{ + public bool IsSuccess { get; init; } + public string ErrorMessage { get; init; } + public byte[] Content { get; init; } + public string ContentType { get; init; } + public string FileName { get; init; } + + public static BookResourceResultDto Success(byte[] content, string contentType, string fileName) => + new() { IsSuccess = true, Content = content, ContentType = contentType, FileName = fileName }; + + public static BookResourceResultDto Error(string errorMessage) => + new() { IsSuccess = false, ErrorMessage = errorMessage }; +} diff --git a/API/DTOs/UserPreferencesDto.cs b/API/DTOs/UserPreferencesDto.cs index b7fd625f4..f4c72bfe8 100644 --- a/API/DTOs/UserPreferencesDto.cs +++ b/API/DTOs/UserPreferencesDto.cs @@ -37,6 +37,9 @@ public sealed record UserPreferencesDto /// [Required] public string Locale { get; set; } + /// + [Required] + public bool ColorScapeEnabled { get; set; } = true; /// public bool AniListScrobblingEnabled { get; set; } diff --git a/API/Data/DataContext.cs b/API/Data/DataContext.cs index a455cc32f..36a4526af 100644 --- a/API/Data/DataContext.cs +++ b/API/Data/DataContext.cs @@ -139,6 +139,9 @@ public sealed class DataContext : IdentityDbContext() .Property(b => b.AllowAutomaticWebtoonReaderDetection) .HasDefaultValue(true); + builder.Entity() + .Property(b => b.ColorScapeEnabled) + .HasDefaultValue(true); builder.Entity() .Property(b => b.AllowScrobbling) diff --git a/API/Data/Migrations/20250919114119_ColorScapeSetting.Designer.cs b/API/Data/Migrations/20250919114119_ColorScapeSetting.Designer.cs new file mode 100644 index 000000000..67c146f48 --- /dev/null +++ b/API/Data/Migrations/20250919114119_ColorScapeSetting.Designer.cs @@ -0,0 +1,3854 @@ +// +using System; +using System.Collections.Generic; +using API.Data; +using API.Entities.MetadataMatching; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace API.Data.Migrations +{ + [DbContext(typeof(DataContext))] + [Migration("20250919114119_ColorScapeSetting")] + partial class ColorScapeSetting + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder.HasAnnotation("ProductVersion", "9.0.7"); + + modelBuilder.Entity("API.Entities.AppRole", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("TEXT"); + + b.Property("Name") + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.Property("NormalizedName") + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .IsUnique() + .HasDatabaseName("RoleNameIndex"); + + b.ToTable("AspNetRoles", (string)null); + }); + + modelBuilder.Entity("API.Entities.AppUser", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AccessFailedCount") + .HasColumnType("INTEGER"); + + b.Property("AgeRestriction") + .HasColumnType("INTEGER"); + + b.Property("AgeRestrictionIncludeUnknowns") + .HasColumnType("INTEGER"); + + b.Property("AniListAccessToken") + .HasColumnType("TEXT"); + + b.Property("ApiKey") + .HasColumnType("TEXT"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("TEXT"); + + b.Property("ConfirmationToken") + .HasColumnType("TEXT"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("Email") + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.Property("EmailConfirmed") + .HasColumnType("INTEGER"); + + b.Property("HasRunScrobbleEventGeneration") + .HasColumnType("INTEGER"); + + b.Property("IdentityProvider") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(0); + + b.Property("LastActive") + .HasColumnType("TEXT"); + + b.Property("LastActiveUtc") + .HasColumnType("TEXT"); + + b.Property("LockoutEnabled") + .HasColumnType("INTEGER"); + + b.Property("LockoutEnd") + .HasColumnType("TEXT"); + + b.Property("MalAccessToken") + .HasColumnType("TEXT"); + + b.Property("MalUserName") + .HasColumnType("TEXT"); + + b.Property("NormalizedEmail") + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.Property("NormalizedUserName") + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.Property("OidcId") + .HasColumnType("TEXT"); + + b.Property("PasswordHash") + .HasColumnType("TEXT"); + + b.Property("PhoneNumber") + .HasColumnType("TEXT"); + + b.Property("PhoneNumberConfirmed") + .HasColumnType("INTEGER"); + + b.Property("RowVersion") + .IsConcurrencyToken() + .HasColumnType("INTEGER"); + + b.Property("ScrobbleEventGenerationRan") + .HasColumnType("TEXT"); + + b.Property("SecurityStamp") + .HasColumnType("TEXT"); + + b.Property("TwoFactorEnabled") + .HasColumnType("INTEGER"); + + b.Property("UserName") + .HasMaxLength(256) + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasDatabaseName("EmailIndex"); + + b.HasIndex("NormalizedUserName") + .IsUnique() + .HasDatabaseName("UserNameIndex"); + + b.ToTable("AspNetUsers", (string)null); + }); + + modelBuilder.Entity("API.Entities.AppUserAnnotation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("ChapterId") + .HasColumnType("INTEGER"); + + b.Property("ChapterTitle") + .HasColumnType("TEXT"); + + b.Property("Comment") + .HasColumnType("TEXT"); + + b.Property("ContainsSpoiler") + .HasColumnType("INTEGER"); + + b.Property("Context") + .HasColumnType("TEXT"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("EndingXPath") + .HasColumnType("TEXT"); + + b.Property("HighlightCount") + .HasColumnType("INTEGER"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("LibraryId") + .HasColumnType("INTEGER"); + + b.Property("PageNumber") + .HasColumnType("INTEGER"); + + b.Property("SelectedSlotIndex") + .HasColumnType("INTEGER"); + + b.Property("SelectedText") + .HasColumnType("TEXT"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.Property("VolumeId") + .HasColumnType("INTEGER"); + + b.Property("XPath") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.HasIndex("ChapterId"); + + b.ToTable("AppUserAnnotation"); + }); + + modelBuilder.Entity("API.Entities.AppUserBookmark", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("ChapterId") + .HasColumnType("INTEGER"); + + b.Property("ChapterTitle") + .HasColumnType("TEXT"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("FileName") + .HasColumnType("TEXT"); + + b.Property("ImageOffset") + .HasColumnType("INTEGER"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("Page") + .HasColumnType("INTEGER"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.Property("VolumeId") + .HasColumnType("INTEGER"); + + b.Property("XPath") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.ToTable("AppUserBookmark"); + }); + + modelBuilder.Entity("API.Entities.AppUserChapterRating", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("ChapterId") + .HasColumnType("INTEGER"); + + b.Property("HasBeenRated") + .HasColumnType("INTEGER"); + + b.Property("Rating") + .HasColumnType("REAL"); + + b.Property("Review") + .HasColumnType("TEXT"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.HasIndex("ChapterId"); + + b.HasIndex("SeriesId"); + + b.ToTable("AppUserChapterRating"); + }); + + modelBuilder.Entity("API.Entities.AppUserCollection", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AgeRating") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(0); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("CoverImage") + .HasColumnType("TEXT"); + + b.Property("CoverImageLocked") + .HasColumnType("INTEGER"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("LastSyncUtc") + .HasColumnType("TEXT"); + + b.Property("MissingSeriesFromSource") + .HasColumnType("TEXT"); + + b.Property("NormalizedTitle") + .HasColumnType("TEXT"); + + b.Property("PrimaryColor") + .HasColumnType("TEXT"); + + b.Property("Promoted") + .HasColumnType("INTEGER"); + + b.Property("SecondaryColor") + .HasColumnType("TEXT"); + + b.Property("Source") + .HasColumnType("INTEGER"); + + b.Property("SourceUrl") + .HasColumnType("TEXT"); + + b.Property("Summary") + .HasColumnType("TEXT"); + + b.Property("Title") + .HasColumnType("TEXT"); + + b.Property("TotalSourceCount") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.ToTable("AppUserCollection"); + }); + + modelBuilder.Entity("API.Entities.AppUserDashboardStream", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("IsProvided") + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("Order") + .HasColumnType("INTEGER"); + + b.Property("SmartFilterId") + .HasColumnType("INTEGER"); + + b.Property("StreamType") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(4); + + b.Property("Visible") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.HasIndex("SmartFilterId"); + + b.HasIndex("Visible"); + + b.ToTable("AppUserDashboardStream"); + }); + + modelBuilder.Entity("API.Entities.AppUserExternalSource", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("ApiKey") + .HasColumnType("TEXT"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("Host") + .HasColumnType("TEXT"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.ToTable("AppUserExternalSource"); + }); + + modelBuilder.Entity("API.Entities.AppUserOnDeckRemoval", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.HasIndex("SeriesId"); + + b.ToTable("AppUserOnDeckRemoval"); + }); + + modelBuilder.Entity("API.Entities.AppUserPreferences", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AllowAutomaticWebtoonReaderDetection") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(true); + + b.Property("AniListScrobblingEnabled") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(true); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("AutoCloseMenu") + .HasColumnType("INTEGER"); + + b.Property("BackgroundColor") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT") + .HasDefaultValue("#000000"); + + b.Property("BlurUnreadSummaries") + .HasColumnType("INTEGER"); + + b.Property("BookReaderFontFamily") + .HasColumnType("TEXT"); + + b.Property("BookReaderFontSize") + .HasColumnType("INTEGER"); + + b.Property("BookReaderHighlightSlots") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT") + .HasDefaultValue("[]"); + + b.Property("BookReaderImmersiveMode") + .HasColumnType("INTEGER"); + + b.Property("BookReaderLayoutMode") + .HasColumnType("INTEGER"); + + b.Property("BookReaderLineSpacing") + .HasColumnType("INTEGER"); + + b.Property("BookReaderMargin") + .HasColumnType("INTEGER"); + + b.Property("BookReaderReadingDirection") + .HasColumnType("INTEGER"); + + b.Property("BookReaderTapToPaginate") + .HasColumnType("INTEGER"); + + b.Property("BookReaderWritingStyle") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(0); + + b.Property("BookThemeName") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT") + .HasDefaultValue("Dark"); + + b.Property("CollapseSeriesRelationships") + .HasColumnType("INTEGER"); + + b.Property("ColorScapeEnabled") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(true); + + b.Property("EmulateBook") + .HasColumnType("INTEGER"); + + b.Property("GlobalPageLayoutMode") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(0); + + b.Property("LayoutMode") + .HasColumnType("INTEGER"); + + b.Property("Locale") + .IsRequired() + .ValueGeneratedOnAdd() + .HasColumnType("TEXT") + .HasDefaultValue("en"); + + b.Property("NoTransitions") + .HasColumnType("INTEGER"); + + b.Property("PageSplitOption") + .HasColumnType("INTEGER"); + + b.Property("PdfScrollMode") + .HasColumnType("INTEGER"); + + b.Property("PdfSpreadMode") + .HasColumnType("INTEGER"); + + b.Property("PdfTheme") + .HasColumnType("INTEGER"); + + b.Property("PromptForDownloadSize") + .HasColumnType("INTEGER"); + + b.Property("ReaderMode") + .HasColumnType("INTEGER"); + + b.Property("ReadingDirection") + .HasColumnType("INTEGER"); + + b.Property("ScalingOption") + .HasColumnType("INTEGER"); + + b.Property("ShareReviews") + .HasColumnType("INTEGER"); + + b.Property("ShowScreenHints") + .HasColumnType("INTEGER"); + + b.Property("SwipeToPaginate") + .HasColumnType("INTEGER"); + + b.Property("ThemeId") + .HasColumnType("INTEGER"); + + b.Property("WantToReadSync") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(true); + + b.HasKey("Id"); + + b.HasIndex("AppUserId") + .IsUnique(); + + b.HasIndex("ThemeId"); + + b.ToTable("AppUserPreferences"); + }); + + modelBuilder.Entity("API.Entities.AppUserProgress", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("BookScrollId") + .HasColumnType("TEXT"); + + b.Property("ChapterId") + .HasColumnType("INTEGER"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("LibraryId") + .HasColumnType("INTEGER"); + + b.Property("PagesRead") + .HasColumnType("INTEGER"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.Property("VolumeId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.HasIndex("ChapterId"); + + b.HasIndex("SeriesId"); + + b.ToTable("AppUserProgresses"); + }); + + modelBuilder.Entity("API.Entities.AppUserRating", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("HasBeenRated") + .HasColumnType("INTEGER"); + + b.Property("Rating") + .HasColumnType("REAL"); + + b.Property("Review") + .HasColumnType("TEXT"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.Property("Tagline") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.HasIndex("SeriesId"); + + b.ToTable("AppUserRating"); + }); + + modelBuilder.Entity("API.Entities.AppUserReadingProfile", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AllowAutomaticWebtoonReaderDetection") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(true); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("AutoCloseMenu") + .HasColumnType("INTEGER"); + + b.Property("BackgroundColor") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT") + .HasDefaultValue("#000000"); + + b.Property("BookReaderFontFamily") + .HasColumnType("TEXT"); + + b.Property("BookReaderFontSize") + .HasColumnType("INTEGER"); + + b.Property("BookReaderImmersiveMode") + .HasColumnType("INTEGER"); + + b.Property("BookReaderLayoutMode") + .HasColumnType("INTEGER"); + + b.Property("BookReaderLineSpacing") + .HasColumnType("INTEGER"); + + b.Property("BookReaderMargin") + .HasColumnType("INTEGER"); + + b.Property("BookReaderReadingDirection") + .HasColumnType("INTEGER"); + + b.Property("BookReaderTapToPaginate") + .HasColumnType("INTEGER"); + + b.Property("BookReaderWritingStyle") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(0); + + b.Property("BookThemeName") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT") + .HasDefaultValue("Dark"); + + b.Property("DisableWidthOverride") + .HasColumnType("INTEGER"); + + b.Property("EmulateBook") + .HasColumnType("INTEGER"); + + b.Property("Kind") + .HasColumnType("INTEGER"); + + b.Property("LayoutMode") + .HasColumnType("INTEGER"); + + b.Property("LibraryIds") + .HasColumnType("TEXT"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("NormalizedName") + .HasColumnType("TEXT"); + + b.Property("PageSplitOption") + .HasColumnType("INTEGER"); + + b.Property("PdfScrollMode") + .HasColumnType("INTEGER"); + + b.Property("PdfSpreadMode") + .HasColumnType("INTEGER"); + + b.Property("PdfTheme") + .HasColumnType("INTEGER"); + + b.Property("ReaderMode") + .HasColumnType("INTEGER"); + + b.Property("ReadingDirection") + .HasColumnType("INTEGER"); + + b.Property("ScalingOption") + .HasColumnType("INTEGER"); + + b.Property("SeriesIds") + .HasColumnType("TEXT"); + + b.Property("ShowScreenHints") + .HasColumnType("INTEGER"); + + b.Property("SwipeToPaginate") + .HasColumnType("INTEGER"); + + b.Property("WidthOverride") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.ToTable("AppUserReadingProfiles"); + }); + + modelBuilder.Entity("API.Entities.AppUserRole", b => + { + b.Property("UserId") + .HasColumnType("INTEGER"); + + b.Property("RoleId") + .HasColumnType("INTEGER"); + + b.HasKey("UserId", "RoleId"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetUserRoles", (string)null); + }); + + modelBuilder.Entity("API.Entities.AppUserSideNavStream", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("ExternalSourceId") + .HasColumnType("INTEGER"); + + b.Property("IsProvided") + .HasColumnType("INTEGER"); + + b.Property("LibraryId") + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("Order") + .HasColumnType("INTEGER"); + + b.Property("SmartFilterId") + .HasColumnType("INTEGER"); + + b.Property("StreamType") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(5); + + b.Property("Visible") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.HasIndex("SmartFilterId"); + + b.HasIndex("Visible"); + + b.ToTable("AppUserSideNavStream"); + }); + + modelBuilder.Entity("API.Entities.AppUserSmartFilter", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("Filter") + .HasColumnType("TEXT"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.ToTable("AppUserSmartFilter"); + }); + + modelBuilder.Entity("API.Entities.AppUserTableOfContent", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("BookScrollId") + .HasColumnType("TEXT"); + + b.Property("ChapterId") + .HasColumnType("INTEGER"); + + b.Property("ChapterTitle") + .HasColumnType("TEXT"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("LibraryId") + .HasColumnType("INTEGER"); + + b.Property("PageNumber") + .HasColumnType("INTEGER"); + + b.Property("SelectedText") + .HasColumnType("TEXT"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.Property("Title") + .HasColumnType("TEXT"); + + b.Property("VolumeId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.HasIndex("ChapterId"); + + b.HasIndex("SeriesId"); + + b.ToTable("AppUserTableOfContent"); + }); + + modelBuilder.Entity("API.Entities.AppUserWantToRead", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.HasIndex("SeriesId"); + + b.ToTable("AppUserWantToRead"); + }); + + modelBuilder.Entity("API.Entities.Chapter", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AgeRating") + .HasColumnType("INTEGER"); + + b.Property("AgeRatingLocked") + .HasColumnType("INTEGER"); + + b.Property("AlternateCount") + .HasColumnType("INTEGER"); + + b.Property("AlternateNumber") + .HasColumnType("TEXT"); + + b.Property("AlternateSeries") + .HasColumnType("TEXT"); + + b.Property("AverageExternalRating") + .HasColumnType("REAL"); + + b.Property("AvgHoursToRead") + .HasColumnType("REAL"); + + b.Property("CharacterLocked") + .HasColumnType("INTEGER"); + + b.Property("ColoristLocked") + .HasColumnType("INTEGER"); + + b.Property("Count") + .HasColumnType("INTEGER"); + + b.Property("CoverArtistLocked") + .HasColumnType("INTEGER"); + + b.Property("CoverImage") + .HasColumnType("TEXT"); + + b.Property("CoverImageLocked") + .HasColumnType("INTEGER"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("EditorLocked") + .HasColumnType("INTEGER"); + + b.Property("GenresLocked") + .HasColumnType("INTEGER"); + + b.Property("ISBN") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT") + .HasDefaultValue(""); + + b.Property("ISBNLocked") + .HasColumnType("INTEGER"); + + b.Property("ImprintLocked") + .HasColumnType("INTEGER"); + + b.Property("InkerLocked") + .HasColumnType("INTEGER"); + + b.Property("IsSpecial") + .HasColumnType("INTEGER"); + + b.Property("KPlusOverrides") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT") + .HasDefaultValue("[]"); + + b.Property("Language") + .HasColumnType("TEXT"); + + b.Property("LanguageLocked") + .HasColumnType("INTEGER"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("LettererLocked") + .HasColumnType("INTEGER"); + + b.Property("LocationLocked") + .HasColumnType("INTEGER"); + + b.Property("MaxHoursToRead") + .HasColumnType("INTEGER"); + + b.Property("MaxNumber") + .HasColumnType("REAL"); + + b.Property("MinHoursToRead") + .HasColumnType("INTEGER"); + + b.Property("MinNumber") + .HasColumnType("REAL"); + + b.Property("Number") + .HasColumnType("TEXT"); + + b.Property("Pages") + .HasColumnType("INTEGER"); + + b.Property("PencillerLocked") + .HasColumnType("INTEGER"); + + b.Property("PrimaryColor") + .HasColumnType("TEXT"); + + b.Property("PublisherLocked") + .HasColumnType("INTEGER"); + + b.Property("Range") + .HasColumnType("TEXT"); + + b.Property("ReleaseDate") + .HasColumnType("TEXT"); + + b.Property("ReleaseDateLocked") + .HasColumnType("INTEGER"); + + b.Property("SecondaryColor") + .HasColumnType("TEXT"); + + b.Property("SeriesGroup") + .HasColumnType("TEXT"); + + b.Property("SortOrder") + .HasColumnType("REAL"); + + b.Property("SortOrderLocked") + .HasColumnType("INTEGER"); + + b.Property("StoryArc") + .HasColumnType("TEXT"); + + b.Property("StoryArcNumber") + .HasColumnType("TEXT"); + + b.Property("Summary") + .HasColumnType("TEXT"); + + b.Property("SummaryLocked") + .HasColumnType("INTEGER"); + + b.Property("TagsLocked") + .HasColumnType("INTEGER"); + + b.Property("TeamLocked") + .HasColumnType("INTEGER"); + + b.Property("Title") + .HasColumnType("TEXT"); + + b.Property("TitleName") + .HasColumnType("TEXT"); + + b.Property("TitleNameLocked") + .HasColumnType("INTEGER"); + + b.Property("TotalCount") + .HasColumnType("INTEGER"); + + b.Property("TranslatorLocked") + .HasColumnType("INTEGER"); + + b.Property("VolumeId") + .HasColumnType("INTEGER"); + + b.Property("WebLinks") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT") + .HasDefaultValue(""); + + b.Property("WordCount") + .HasColumnType("INTEGER"); + + b.Property("WriterLocked") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("VolumeId"); + + b.ToTable("Chapter"); + }); + + modelBuilder.Entity("API.Entities.CollectionTag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("CoverImage") + .HasColumnType("TEXT"); + + b.Property("CoverImageLocked") + .HasColumnType("INTEGER"); + + b.Property("NormalizedTitle") + .HasColumnType("TEXT"); + + b.Property("Promoted") + .HasColumnType("INTEGER"); + + b.Property("RowVersion") + .HasColumnType("INTEGER"); + + b.Property("Summary") + .HasColumnType("TEXT"); + + b.Property("Title") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("Id", "Promoted") + .IsUnique(); + + b.ToTable("CollectionTag"); + }); + + modelBuilder.Entity("API.Entities.Device", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("EmailAddress") + .HasColumnType("TEXT"); + + b.Property("IpAddress") + .HasColumnType("TEXT"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("LastUsed") + .HasColumnType("TEXT"); + + b.Property("LastUsedUtc") + .HasColumnType("TEXT"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("Platform") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.ToTable("Device"); + }); + + modelBuilder.Entity("API.Entities.EmailHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("Body") + .HasColumnType("TEXT"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("DeliveryStatus") + .HasColumnType("TEXT"); + + b.Property("EmailTemplate") + .HasColumnType("TEXT"); + + b.Property("ErrorMessage") + .HasColumnType("TEXT"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("SendDate") + .HasColumnType("TEXT"); + + b.Property("Sent") + .HasColumnType("INTEGER"); + + b.Property("Subject") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.HasIndex("Sent", "AppUserId", "EmailTemplate", "SendDate"); + + b.ToTable("EmailHistory"); + }); + + modelBuilder.Entity("API.Entities.FolderPath", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("LastScanned") + .HasColumnType("TEXT"); + + b.Property("LibraryId") + .HasColumnType("INTEGER"); + + b.Property("Path") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("LibraryId"); + + b.ToTable("FolderPath"); + }); + + modelBuilder.Entity("API.Entities.Genre", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("NormalizedTitle") + .HasColumnType("TEXT"); + + b.Property("Title") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedTitle") + .IsUnique(); + + b.ToTable("Genre"); + }); + + modelBuilder.Entity("API.Entities.History.ManualMigrationHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("ProductVersion") + .HasColumnType("TEXT"); + + b.Property("RanAt") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("ManualMigrationHistory"); + }); + + modelBuilder.Entity("API.Entities.Library", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AllowMetadataMatching") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(true); + + b.Property("AllowScrobbling") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(true); + + b.Property("CoverImage") + .HasColumnType("TEXT"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("EnableMetadata") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(true); + + b.Property("FolderWatching") + .HasColumnType("INTEGER"); + + b.Property("IncludeInDashboard") + .HasColumnType("INTEGER"); + + b.Property("IncludeInRecommended") + .HasColumnType("INTEGER"); + + b.Property("IncludeInSearch") + .HasColumnType("INTEGER"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("LastScanned") + .HasColumnType("TEXT"); + + b.Property("ManageCollections") + .HasColumnType("INTEGER"); + + b.Property("ManageReadingLists") + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("PrimaryColor") + .HasColumnType("TEXT"); + + b.Property("RemovePrefixForSortName") + .HasColumnType("INTEGER"); + + b.Property("SecondaryColor") + .HasColumnType("TEXT"); + + b.Property("Type") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("Library"); + }); + + modelBuilder.Entity("API.Entities.LibraryExcludePattern", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("LibraryId") + .HasColumnType("INTEGER"); + + b.Property("Pattern") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("LibraryId"); + + b.ToTable("LibraryExcludePattern"); + }); + + modelBuilder.Entity("API.Entities.LibraryFileTypeGroup", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("FileTypeGroup") + .HasColumnType("INTEGER"); + + b.Property("LibraryId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("LibraryId"); + + b.ToTable("LibraryFileTypeGroup"); + }); + + modelBuilder.Entity("API.Entities.MangaFile", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Bytes") + .HasColumnType("INTEGER"); + + b.Property("ChapterId") + .HasColumnType("INTEGER"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("Extension") + .HasColumnType("TEXT"); + + b.Property("FileName") + .HasColumnType("TEXT"); + + b.Property("FilePath") + .HasColumnType("TEXT"); + + b.Property("Format") + .HasColumnType("INTEGER"); + + b.Property("KoreaderHash") + .HasColumnType("TEXT"); + + b.Property("LastFileAnalysis") + .HasColumnType("TEXT"); + + b.Property("LastFileAnalysisUtc") + .HasColumnType("TEXT"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("Pages") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("ChapterId"); + + b.ToTable("MangaFile"); + }); + + modelBuilder.Entity("API.Entities.MediaError", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Comment") + .HasColumnType("TEXT"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("Details") + .HasColumnType("TEXT"); + + b.Property("Extension") + .HasColumnType("TEXT"); + + b.Property("FilePath") + .HasColumnType("TEXT"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("MediaError"); + }); + + modelBuilder.Entity("API.Entities.Metadata.ExternalRating", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Authority") + .HasColumnType("INTEGER"); + + b.Property("AverageScore") + .HasColumnType("INTEGER"); + + b.Property("ChapterId") + .HasColumnType("INTEGER"); + + b.Property("FavoriteCount") + .HasColumnType("INTEGER"); + + b.Property("Provider") + .HasColumnType("INTEGER"); + + b.Property("ProviderUrl") + .HasColumnType("TEXT"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("ChapterId"); + + b.ToTable("ExternalRating"); + }); + + modelBuilder.Entity("API.Entities.Metadata.ExternalRecommendation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AniListId") + .HasColumnType("INTEGER"); + + b.Property("CoverUrl") + .HasColumnType("TEXT"); + + b.Property("MalId") + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("Provider") + .HasColumnType("INTEGER"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.Property("Summary") + .HasColumnType("TEXT"); + + b.Property("Url") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("SeriesId"); + + b.ToTable("ExternalRecommendation"); + }); + + modelBuilder.Entity("API.Entities.Metadata.ExternalReview", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Authority") + .HasColumnType("INTEGER"); + + b.Property("Body") + .HasColumnType("TEXT"); + + b.Property("BodyJustText") + .HasColumnType("TEXT"); + + b.Property("ChapterId") + .HasColumnType("INTEGER"); + + b.Property("Provider") + .HasColumnType("INTEGER"); + + b.Property("Rating") + .HasColumnType("INTEGER"); + + b.Property("RawBody") + .HasColumnType("TEXT"); + + b.Property("Score") + .HasColumnType("INTEGER"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.Property("SiteUrl") + .HasColumnType("TEXT"); + + b.Property("Tagline") + .HasColumnType("TEXT"); + + b.Property("TotalVotes") + .HasColumnType("INTEGER"); + + b.Property("Username") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("ChapterId"); + + b.ToTable("ExternalReview"); + }); + + modelBuilder.Entity("API.Entities.Metadata.ExternalSeriesMetadata", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AniListId") + .HasColumnType("INTEGER"); + + b.Property("AverageExternalRating") + .HasColumnType("INTEGER"); + + b.Property("CbrId") + .HasColumnType("INTEGER"); + + b.Property("GoogleBooksId") + .HasColumnType("TEXT"); + + b.Property("MalId") + .HasColumnType("INTEGER"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.Property("ValidUntilUtc") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("SeriesId") + .IsUnique(); + + b.ToTable("ExternalSeriesMetadata"); + }); + + modelBuilder.Entity("API.Entities.Metadata.SeriesBlacklist", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("LastChecked") + .HasColumnType("TEXT"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("SeriesId"); + + b.ToTable("SeriesBlacklist"); + }); + + modelBuilder.Entity("API.Entities.Metadata.SeriesMetadata", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AgeRating") + .HasColumnType("INTEGER"); + + b.Property("AgeRatingLocked") + .HasColumnType("INTEGER"); + + b.Property("CharacterLocked") + .HasColumnType("INTEGER"); + + b.Property("ColoristLocked") + .HasColumnType("INTEGER"); + + b.Property("CoverArtistLocked") + .HasColumnType("INTEGER"); + + b.Property("EditorLocked") + .HasColumnType("INTEGER"); + + b.Property("GenresLocked") + .HasColumnType("INTEGER"); + + b.Property("ImprintLocked") + .HasColumnType("INTEGER"); + + b.Property("InkerLocked") + .HasColumnType("INTEGER"); + + b.Property("KPlusOverrides") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT") + .HasDefaultValue("[]"); + + b.Property("Language") + .HasColumnType("TEXT"); + + b.Property("LanguageLocked") + .HasColumnType("INTEGER"); + + b.Property("LettererLocked") + .HasColumnType("INTEGER"); + + b.Property("LocationLocked") + .HasColumnType("INTEGER"); + + b.Property("MaxCount") + .HasColumnType("INTEGER"); + + b.Property("PencillerLocked") + .HasColumnType("INTEGER"); + + b.Property("PublicationStatus") + .HasColumnType("INTEGER"); + + b.Property("PublicationStatusLocked") + .HasColumnType("INTEGER"); + + b.Property("PublisherLocked") + .HasColumnType("INTEGER"); + + b.Property("ReleaseYear") + .HasColumnType("INTEGER"); + + b.Property("ReleaseYearLocked") + .HasColumnType("INTEGER"); + + b.Property("RowVersion") + .IsConcurrencyToken() + .HasColumnType("INTEGER"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.Property("Summary") + .HasColumnType("TEXT"); + + b.Property("SummaryLocked") + .HasColumnType("INTEGER"); + + b.Property("TagsLocked") + .HasColumnType("INTEGER"); + + b.Property("TeamLocked") + .HasColumnType("INTEGER"); + + b.Property("TotalCount") + .HasColumnType("INTEGER"); + + b.Property("TranslatorLocked") + .HasColumnType("INTEGER"); + + b.Property("WebLinks") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT") + .HasDefaultValue(""); + + b.Property("WriterLocked") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("SeriesId") + .IsUnique(); + + b.HasIndex("Id", "SeriesId") + .IsUnique(); + + b.ToTable("SeriesMetadata"); + }); + + modelBuilder.Entity("API.Entities.Metadata.SeriesRelation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("RelationKind") + .HasColumnType("INTEGER"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.Property("TargetSeriesId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("SeriesId"); + + b.HasIndex("TargetSeriesId"); + + b.ToTable("SeriesRelation"); + }); + + modelBuilder.Entity("API.Entities.MetadataFieldMapping", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("DestinationType") + .HasColumnType("INTEGER"); + + b.Property("DestinationValue") + .HasColumnType("TEXT"); + + b.Property("ExcludeFromSource") + .HasColumnType("INTEGER"); + + b.Property("MetadataSettingsId") + .HasColumnType("INTEGER"); + + b.Property("SourceType") + .HasColumnType("INTEGER"); + + b.Property("SourceValue") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("MetadataSettingsId"); + + b.ToTable("MetadataFieldMapping"); + }); + + modelBuilder.Entity("API.Entities.MetadataMatching.MetadataSettings", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AgeRatingMappings") + .HasColumnType("TEXT"); + + b.Property("Blacklist") + .HasColumnType("TEXT"); + + b.Property("EnableChapterCoverImage") + .HasColumnType("INTEGER"); + + b.Property("EnableChapterPublisher") + .HasColumnType("INTEGER"); + + b.Property("EnableChapterReleaseDate") + .HasColumnType("INTEGER"); + + b.Property("EnableChapterSummary") + .HasColumnType("INTEGER"); + + b.Property("EnableChapterTitle") + .HasColumnType("INTEGER"); + + b.Property("EnableCoverImage") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(true); + + b.Property("EnableExtendedMetadataProcessing") + .HasColumnType("INTEGER"); + + b.Property("EnableGenres") + .HasColumnType("INTEGER"); + + b.Property("EnableLocalizedName") + .HasColumnType("INTEGER"); + + b.Property("EnablePeople") + .HasColumnType("INTEGER"); + + b.Property("EnablePublicationStatus") + .HasColumnType("INTEGER"); + + b.Property("EnableRelationships") + .HasColumnType("INTEGER"); + + b.Property("EnableStartDate") + .HasColumnType("INTEGER"); + + b.Property("EnableSummary") + .HasColumnType("INTEGER"); + + b.Property("EnableTags") + .HasColumnType("INTEGER"); + + b.Property("Enabled") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(true); + + b.Property("FirstLastPeopleNaming") + .HasColumnType("INTEGER"); + + b.Property("Overrides") + .HasColumnType("TEXT"); + + b.PrimitiveCollection("PersonRoles") + .HasColumnType("TEXT"); + + b.Property("Whitelist") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("MetadataSettings"); + }); + + modelBuilder.Entity("API.Entities.Person.ChapterPeople", b => + { + b.Property("ChapterId") + .HasColumnType("INTEGER"); + + b.Property("PersonId") + .HasColumnType("INTEGER"); + + b.Property("Role") + .HasColumnType("INTEGER"); + + b.Property("KavitaPlusConnection") + .HasColumnType("INTEGER"); + + b.Property("OrderWeight") + .HasColumnType("INTEGER"); + + b.HasKey("ChapterId", "PersonId", "Role"); + + b.HasIndex("PersonId"); + + b.ToTable("ChapterPeople"); + }); + + modelBuilder.Entity("API.Entities.Person.Person", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AniListId") + .HasColumnType("INTEGER"); + + b.Property("Asin") + .HasColumnType("TEXT"); + + b.Property("CoverImage") + .HasColumnType("TEXT"); + + b.Property("CoverImageLocked") + .HasColumnType("INTEGER"); + + b.Property("Description") + .HasColumnType("TEXT"); + + b.Property("HardcoverId") + .HasColumnType("TEXT"); + + b.Property("MalId") + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("NormalizedName") + .HasColumnType("TEXT"); + + b.Property("PrimaryColor") + .HasColumnType("TEXT"); + + b.Property("SecondaryColor") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("Person"); + }); + + modelBuilder.Entity("API.Entities.Person.PersonAlias", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Alias") + .HasColumnType("TEXT"); + + b.Property("NormalizedAlias") + .HasColumnType("TEXT"); + + b.Property("PersonId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("PersonId"); + + b.ToTable("PersonAlias"); + }); + + modelBuilder.Entity("API.Entities.Person.SeriesMetadataPeople", b => + { + b.Property("SeriesMetadataId") + .HasColumnType("INTEGER"); + + b.Property("PersonId") + .HasColumnType("INTEGER"); + + b.Property("Role") + .HasColumnType("INTEGER"); + + b.Property("KavitaPlusConnection") + .HasColumnType("INTEGER"); + + b.Property("OrderWeight") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(0); + + b.HasKey("SeriesMetadataId", "PersonId", "Role"); + + b.HasIndex("PersonId"); + + b.ToTable("SeriesMetadataPeople"); + }); + + modelBuilder.Entity("API.Entities.ReadingList", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AgeRating") + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("CoverImage") + .HasColumnType("TEXT"); + + b.Property("CoverImageLocked") + .HasColumnType("INTEGER"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("EndingMonth") + .HasColumnType("INTEGER"); + + b.Property("EndingYear") + .HasColumnType("INTEGER"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("NormalizedTitle") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property("PrimaryColor") + .HasColumnType("TEXT"); + + b.Property("Promoted") + .HasColumnType("INTEGER"); + + b.Property("SecondaryColor") + .HasColumnType("TEXT"); + + b.Property("StartingMonth") + .HasColumnType("INTEGER"); + + b.Property("StartingYear") + .HasColumnType("INTEGER"); + + b.Property("Summary") + .HasColumnType("TEXT"); + + b.Property("Title") + .IsRequired() + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.ToTable("ReadingList"); + }); + + modelBuilder.Entity("API.Entities.ReadingListItem", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("ChapterId") + .HasColumnType("INTEGER"); + + b.Property("Order") + .HasColumnType("INTEGER"); + + b.Property("ReadingListId") + .HasColumnType("INTEGER"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.Property("VolumeId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("ChapterId"); + + b.HasIndex("ReadingListId"); + + b.HasIndex("SeriesId"); + + b.HasIndex("VolumeId"); + + b.ToTable("ReadingListItem"); + }); + + modelBuilder.Entity("API.Entities.Scrobble.ScrobbleError", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Comment") + .HasColumnType("TEXT"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("Details") + .HasColumnType("TEXT"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("LibraryId") + .HasColumnType("INTEGER"); + + b.Property("ScrobbleEventId") + .HasColumnType("INTEGER"); + + b.Property("ScrobbleEventId1") + .HasColumnType("INTEGER"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("ScrobbleEventId1"); + + b.HasIndex("SeriesId"); + + b.ToTable("ScrobbleError"); + }); + + modelBuilder.Entity("API.Entities.Scrobble.ScrobbleEvent", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AniListId") + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("ChapterNumber") + .HasColumnType("INTEGER"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("ErrorDetails") + .HasColumnType("TEXT"); + + b.Property("Format") + .HasColumnType("INTEGER"); + + b.Property("IsErrored") + .HasColumnType("INTEGER"); + + b.Property("IsProcessed") + .HasColumnType("INTEGER"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("LibraryId") + .HasColumnType("INTEGER"); + + b.Property("MalId") + .HasColumnType("INTEGER"); + + b.Property("ProcessDateUtc") + .HasColumnType("TEXT"); + + b.Property("Rating") + .HasColumnType("REAL"); + + b.Property("ReviewBody") + .HasColumnType("TEXT"); + + b.Property("ReviewTitle") + .HasColumnType("TEXT"); + + b.Property("ScrobbleEventType") + .HasColumnType("INTEGER"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.Property("VolumeNumber") + .HasColumnType("REAL"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.HasIndex("LibraryId"); + + b.HasIndex("SeriesId"); + + b.ToTable("ScrobbleEvent"); + }); + + modelBuilder.Entity("API.Entities.Scrobble.ScrobbleHold", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AppUserId") + .HasColumnType("INTEGER"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("AppUserId"); + + b.HasIndex("SeriesId"); + + b.ToTable("ScrobbleHold"); + }); + + modelBuilder.Entity("API.Entities.Series", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AvgHoursToRead") + .HasColumnType("REAL"); + + b.Property("CoverImage") + .HasColumnType("TEXT"); + + b.Property("CoverImageLocked") + .HasColumnType("INTEGER"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("DontMatch") + .HasColumnType("INTEGER"); + + b.Property("FolderPath") + .HasColumnType("TEXT"); + + b.Property("Format") + .HasColumnType("INTEGER"); + + b.Property("IsBlacklisted") + .HasColumnType("INTEGER"); + + b.Property("LastChapterAdded") + .HasColumnType("TEXT"); + + b.Property("LastChapterAddedUtc") + .HasColumnType("TEXT"); + + b.Property("LastFolderScanned") + .HasColumnType("TEXT"); + + b.Property("LastFolderScannedUtc") + .HasColumnType("TEXT"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("LibraryId") + .HasColumnType("INTEGER"); + + b.Property("LocalizedName") + .HasColumnType("TEXT"); + + b.Property("LocalizedNameLocked") + .HasColumnType("INTEGER"); + + b.Property("LowestFolderPath") + .HasColumnType("TEXT"); + + b.Property("MaxHoursToRead") + .HasColumnType("INTEGER"); + + b.Property("MinHoursToRead") + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("NormalizedLocalizedName") + .HasColumnType("TEXT"); + + b.Property("NormalizedName") + .HasColumnType("TEXT"); + + b.Property("OriginalName") + .HasColumnType("TEXT"); + + b.Property("Pages") + .HasColumnType("INTEGER"); + + b.Property("PrimaryColor") + .HasColumnType("TEXT"); + + b.Property("SecondaryColor") + .HasColumnType("TEXT"); + + b.Property("SortName") + .HasColumnType("TEXT"); + + b.Property("SortNameLocked") + .HasColumnType("INTEGER"); + + b.Property("WordCount") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("LibraryId"); + + b.ToTable("Series"); + }); + + modelBuilder.Entity("API.Entities.ServerSetting", b => + { + b.Property("Key") + .HasColumnType("INTEGER"); + + b.Property("RowVersion") + .IsConcurrencyToken() + .HasColumnType("INTEGER"); + + b.Property("Value") + .HasColumnType("TEXT"); + + b.HasKey("Key"); + + b.ToTable("ServerSetting"); + }); + + modelBuilder.Entity("API.Entities.ServerStatistics", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("ChapterCount") + .HasColumnType("INTEGER"); + + b.Property("FileCount") + .HasColumnType("INTEGER"); + + b.Property("GenreCount") + .HasColumnType("INTEGER"); + + b.Property("PersonCount") + .HasColumnType("INTEGER"); + + b.Property("SeriesCount") + .HasColumnType("INTEGER"); + + b.Property("TagCount") + .HasColumnType("INTEGER"); + + b.Property("UserCount") + .HasColumnType("INTEGER"); + + b.Property("VolumeCount") + .HasColumnType("INTEGER"); + + b.Property("Year") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("ServerStatistics"); + }); + + modelBuilder.Entity("API.Entities.SiteTheme", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Author") + .HasColumnType("TEXT"); + + b.Property("CompatibleVersion") + .HasColumnType("TEXT"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("Description") + .HasColumnType("TEXT"); + + b.Property("FileName") + .HasColumnType("TEXT"); + + b.Property("GitHubPath") + .HasColumnType("TEXT"); + + b.Property("IsDefault") + .HasColumnType("INTEGER"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("NormalizedName") + .HasColumnType("TEXT"); + + b.Property("PreviewUrls") + .HasColumnType("TEXT"); + + b.Property("Provider") + .HasColumnType("INTEGER"); + + b.Property("ShaHash") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("SiteTheme"); + }); + + modelBuilder.Entity("API.Entities.Tag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("NormalizedTitle") + .HasColumnType("TEXT"); + + b.Property("Title") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedTitle") + .IsUnique(); + + b.ToTable("Tag"); + }); + + modelBuilder.Entity("API.Entities.Volume", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AvgHoursToRead") + .HasColumnType("REAL"); + + b.Property("CoverImage") + .HasColumnType("TEXT"); + + b.Property("CoverImageLocked") + .HasColumnType("INTEGER"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("CreatedUtc") + .HasColumnType("TEXT"); + + b.Property("LastModified") + .HasColumnType("TEXT"); + + b.Property("LastModifiedUtc") + .HasColumnType("TEXT"); + + b.Property("LookupName") + .HasColumnType("TEXT"); + + b.Property("MaxHoursToRead") + .HasColumnType("INTEGER"); + + b.Property("MaxNumber") + .HasColumnType("REAL"); + + b.Property("MinHoursToRead") + .HasColumnType("INTEGER"); + + b.Property("MinNumber") + .HasColumnType("REAL"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("Number") + .HasColumnType("INTEGER"); + + b.Property("Pages") + .HasColumnType("INTEGER"); + + b.Property("PrimaryColor") + .HasColumnType("TEXT"); + + b.Property("SecondaryColor") + .HasColumnType("TEXT"); + + b.Property("SeriesId") + .HasColumnType("INTEGER"); + + b.Property("WordCount") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("SeriesId"); + + b.ToTable("Volume"); + }); + + modelBuilder.Entity("AppUserCollectionSeries", b => + { + b.Property("CollectionsId") + .HasColumnType("INTEGER"); + + b.Property("ItemsId") + .HasColumnType("INTEGER"); + + b.HasKey("CollectionsId", "ItemsId"); + + b.HasIndex("ItemsId"); + + b.ToTable("AppUserCollectionSeries"); + }); + + modelBuilder.Entity("AppUserLibrary", b => + { + b.Property("AppUsersId") + .HasColumnType("INTEGER"); + + b.Property("LibrariesId") + .HasColumnType("INTEGER"); + + b.HasKey("AppUsersId", "LibrariesId"); + + b.HasIndex("LibrariesId"); + + b.ToTable("AppUserLibrary"); + }); + + modelBuilder.Entity("ChapterGenre", b => + { + b.Property("ChaptersId") + .HasColumnType("INTEGER"); + + b.Property("GenresId") + .HasColumnType("INTEGER"); + + b.HasKey("ChaptersId", "GenresId"); + + b.HasIndex("GenresId"); + + b.ToTable("ChapterGenre"); + }); + + modelBuilder.Entity("ChapterTag", b => + { + b.Property("ChaptersId") + .HasColumnType("INTEGER"); + + b.Property("TagsId") + .HasColumnType("INTEGER"); + + b.HasKey("ChaptersId", "TagsId"); + + b.HasIndex("TagsId"); + + b.ToTable("ChapterTag"); + }); + + modelBuilder.Entity("CollectionTagSeriesMetadata", b => + { + b.Property("CollectionTagsId") + .HasColumnType("INTEGER"); + + b.Property("SeriesMetadatasId") + .HasColumnType("INTEGER"); + + b.HasKey("CollectionTagsId", "SeriesMetadatasId"); + + b.HasIndex("SeriesMetadatasId"); + + b.ToTable("CollectionTagSeriesMetadata"); + }); + + modelBuilder.Entity("ExternalRatingExternalSeriesMetadata", b => + { + b.Property("ExternalRatingsId") + .HasColumnType("INTEGER"); + + b.Property("ExternalSeriesMetadatasId") + .HasColumnType("INTEGER"); + + b.HasKey("ExternalRatingsId", "ExternalSeriesMetadatasId"); + + b.HasIndex("ExternalSeriesMetadatasId"); + + b.ToTable("ExternalRatingExternalSeriesMetadata"); + }); + + modelBuilder.Entity("ExternalRecommendationExternalSeriesMetadata", b => + { + b.Property("ExternalRecommendationsId") + .HasColumnType("INTEGER"); + + b.Property("ExternalSeriesMetadatasId") + .HasColumnType("INTEGER"); + + b.HasKey("ExternalRecommendationsId", "ExternalSeriesMetadatasId"); + + b.HasIndex("ExternalSeriesMetadatasId"); + + b.ToTable("ExternalRecommendationExternalSeriesMetadata"); + }); + + modelBuilder.Entity("ExternalReviewExternalSeriesMetadata", b => + { + b.Property("ExternalReviewsId") + .HasColumnType("INTEGER"); + + b.Property("ExternalSeriesMetadatasId") + .HasColumnType("INTEGER"); + + b.HasKey("ExternalReviewsId", "ExternalSeriesMetadatasId"); + + b.HasIndex("ExternalSeriesMetadatasId"); + + b.ToTable("ExternalReviewExternalSeriesMetadata"); + }); + + modelBuilder.Entity("GenreSeriesMetadata", b => + { + b.Property("GenresId") + .HasColumnType("INTEGER"); + + b.Property("SeriesMetadatasId") + .HasColumnType("INTEGER"); + + b.HasKey("GenresId", "SeriesMetadatasId"); + + b.HasIndex("SeriesMetadatasId"); + + b.ToTable("GenreSeriesMetadata"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("ClaimType") + .HasColumnType("TEXT"); + + b.Property("ClaimValue") + .HasColumnType("TEXT"); + + b.Property("RoleId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetRoleClaims", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("ClaimType") + .HasColumnType("TEXT"); + + b.Property("ClaimValue") + .HasColumnType("TEXT"); + + b.Property("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserClaims", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.Property("LoginProvider") + .HasColumnType("TEXT"); + + b.Property("ProviderKey") + .HasColumnType("TEXT"); + + b.Property("ProviderDisplayName") + .HasColumnType("TEXT"); + + b.Property("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserLogins", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.Property("UserId") + .HasColumnType("INTEGER"); + + b.Property("LoginProvider") + .HasColumnType("TEXT"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("Value") + .HasColumnType("TEXT"); + + b.HasKey("UserId", "LoginProvider", "Name"); + + b.ToTable("AspNetUserTokens", (string)null); + }); + + modelBuilder.Entity("SeriesMetadataTag", b => + { + b.Property("SeriesMetadatasId") + .HasColumnType("INTEGER"); + + b.Property("TagsId") + .HasColumnType("INTEGER"); + + b.HasKey("SeriesMetadatasId", "TagsId"); + + b.HasIndex("TagsId"); + + b.ToTable("SeriesMetadataTag"); + }); + + modelBuilder.Entity("API.Entities.AppUserAnnotation", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany("Annotations") + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Chapter", "Chapter") + .WithMany() + .HasForeignKey("ChapterId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + + b.Navigation("Chapter"); + }); + + modelBuilder.Entity("API.Entities.AppUserBookmark", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany("Bookmarks") + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + }); + + modelBuilder.Entity("API.Entities.AppUserChapterRating", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany("ChapterRatings") + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Chapter", "Chapter") + .WithMany("Ratings") + .HasForeignKey("ChapterId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Series", "Series") + .WithMany() + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + + b.Navigation("Chapter"); + + b.Navigation("Series"); + }); + + modelBuilder.Entity("API.Entities.AppUserCollection", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany("Collections") + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + }); + + modelBuilder.Entity("API.Entities.AppUserDashboardStream", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany("DashboardStreams") + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.AppUserSmartFilter", "SmartFilter") + .WithMany() + .HasForeignKey("SmartFilterId"); + + b.Navigation("AppUser"); + + b.Navigation("SmartFilter"); + }); + + modelBuilder.Entity("API.Entities.AppUserExternalSource", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany("ExternalSources") + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + }); + + modelBuilder.Entity("API.Entities.AppUserOnDeckRemoval", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany() + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Series", "Series") + .WithMany() + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + + b.Navigation("Series"); + }); + + modelBuilder.Entity("API.Entities.AppUserPreferences", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithOne("UserPreferences") + .HasForeignKey("API.Entities.AppUserPreferences", "AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.SiteTheme", "Theme") + .WithMany() + .HasForeignKey("ThemeId"); + + b.Navigation("AppUser"); + + b.Navigation("Theme"); + }); + + modelBuilder.Entity("API.Entities.AppUserProgress", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany("Progresses") + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Chapter", null) + .WithMany("UserProgress") + .HasForeignKey("ChapterId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Series", null) + .WithMany("Progress") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + }); + + modelBuilder.Entity("API.Entities.AppUserRating", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany("Ratings") + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Series", "Series") + .WithMany("Ratings") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + + b.Navigation("Series"); + }); + + modelBuilder.Entity("API.Entities.AppUserReadingProfile", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany("ReadingProfiles") + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + }); + + modelBuilder.Entity("API.Entities.AppUserRole", b => + { + b.HasOne("API.Entities.AppRole", "Role") + .WithMany("UserRoles") + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.AppUser", "User") + .WithMany("UserRoles") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Role"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("API.Entities.AppUserSideNavStream", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany("SideNavStreams") + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.AppUserSmartFilter", "SmartFilter") + .WithMany() + .HasForeignKey("SmartFilterId"); + + b.Navigation("AppUser"); + + b.Navigation("SmartFilter"); + }); + + modelBuilder.Entity("API.Entities.AppUserSmartFilter", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany("SmartFilters") + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + }); + + modelBuilder.Entity("API.Entities.AppUserTableOfContent", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany("TableOfContents") + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Chapter", "Chapter") + .WithMany() + .HasForeignKey("ChapterId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Series", "Series") + .WithMany() + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + + b.Navigation("Chapter"); + + b.Navigation("Series"); + }); + + modelBuilder.Entity("API.Entities.AppUserWantToRead", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany("WantToRead") + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Series", "Series") + .WithMany() + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + + b.Navigation("Series"); + }); + + modelBuilder.Entity("API.Entities.Chapter", b => + { + b.HasOne("API.Entities.Volume", "Volume") + .WithMany("Chapters") + .HasForeignKey("VolumeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Volume"); + }); + + modelBuilder.Entity("API.Entities.Device", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany("Devices") + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + }); + + modelBuilder.Entity("API.Entities.EmailHistory", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany() + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + }); + + modelBuilder.Entity("API.Entities.FolderPath", b => + { + b.HasOne("API.Entities.Library", "Library") + .WithMany("Folders") + .HasForeignKey("LibraryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Library"); + }); + + modelBuilder.Entity("API.Entities.LibraryExcludePattern", b => + { + b.HasOne("API.Entities.Library", "Library") + .WithMany("LibraryExcludePatterns") + .HasForeignKey("LibraryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Library"); + }); + + modelBuilder.Entity("API.Entities.LibraryFileTypeGroup", b => + { + b.HasOne("API.Entities.Library", "Library") + .WithMany("LibraryFileTypes") + .HasForeignKey("LibraryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Library"); + }); + + modelBuilder.Entity("API.Entities.MangaFile", b => + { + b.HasOne("API.Entities.Chapter", "Chapter") + .WithMany("Files") + .HasForeignKey("ChapterId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Chapter"); + }); + + modelBuilder.Entity("API.Entities.Metadata.ExternalRating", b => + { + b.HasOne("API.Entities.Chapter", null) + .WithMany("ExternalRatings") + .HasForeignKey("ChapterId"); + }); + + modelBuilder.Entity("API.Entities.Metadata.ExternalReview", b => + { + b.HasOne("API.Entities.Chapter", null) + .WithMany("ExternalReviews") + .HasForeignKey("ChapterId"); + }); + + modelBuilder.Entity("API.Entities.Metadata.ExternalSeriesMetadata", b => + { + b.HasOne("API.Entities.Series", "Series") + .WithOne("ExternalSeriesMetadata") + .HasForeignKey("API.Entities.Metadata.ExternalSeriesMetadata", "SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Series"); + }); + + modelBuilder.Entity("API.Entities.Metadata.SeriesBlacklist", b => + { + b.HasOne("API.Entities.Series", "Series") + .WithMany() + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Series"); + }); + + modelBuilder.Entity("API.Entities.Metadata.SeriesMetadata", b => + { + b.HasOne("API.Entities.Series", "Series") + .WithOne("Metadata") + .HasForeignKey("API.Entities.Metadata.SeriesMetadata", "SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Series"); + }); + + modelBuilder.Entity("API.Entities.Metadata.SeriesRelation", b => + { + b.HasOne("API.Entities.Series", "Series") + .WithMany("Relations") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Series", "TargetSeries") + .WithMany("RelationOf") + .HasForeignKey("TargetSeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Series"); + + b.Navigation("TargetSeries"); + }); + + modelBuilder.Entity("API.Entities.MetadataFieldMapping", b => + { + b.HasOne("API.Entities.MetadataMatching.MetadataSettings", "MetadataSettings") + .WithMany("FieldMappings") + .HasForeignKey("MetadataSettingsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("MetadataSettings"); + }); + + modelBuilder.Entity("API.Entities.Person.ChapterPeople", b => + { + b.HasOne("API.Entities.Chapter", "Chapter") + .WithMany("People") + .HasForeignKey("ChapterId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Person.Person", "Person") + .WithMany("ChapterPeople") + .HasForeignKey("PersonId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Chapter"); + + b.Navigation("Person"); + }); + + modelBuilder.Entity("API.Entities.Person.PersonAlias", b => + { + b.HasOne("API.Entities.Person.Person", "Person") + .WithMany("Aliases") + .HasForeignKey("PersonId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Person"); + }); + + modelBuilder.Entity("API.Entities.Person.SeriesMetadataPeople", b => + { + b.HasOne("API.Entities.Person.Person", "Person") + .WithMany("SeriesMetadataPeople") + .HasForeignKey("PersonId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Metadata.SeriesMetadata", "SeriesMetadata") + .WithMany("People") + .HasForeignKey("SeriesMetadataId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Person"); + + b.Navigation("SeriesMetadata"); + }); + + modelBuilder.Entity("API.Entities.ReadingList", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany("ReadingLists") + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + }); + + modelBuilder.Entity("API.Entities.ReadingListItem", b => + { + b.HasOne("API.Entities.Chapter", "Chapter") + .WithMany() + .HasForeignKey("ChapterId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.ReadingList", "ReadingList") + .WithMany("Items") + .HasForeignKey("ReadingListId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Series", "Series") + .WithMany() + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Volume", "Volume") + .WithMany() + .HasForeignKey("VolumeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Chapter"); + + b.Navigation("ReadingList"); + + b.Navigation("Series"); + + b.Navigation("Volume"); + }); + + modelBuilder.Entity("API.Entities.Scrobble.ScrobbleError", b => + { + b.HasOne("API.Entities.Scrobble.ScrobbleEvent", "ScrobbleEvent") + .WithMany() + .HasForeignKey("ScrobbleEventId1"); + + b.HasOne("API.Entities.Series", "Series") + .WithMany() + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ScrobbleEvent"); + + b.Navigation("Series"); + }); + + modelBuilder.Entity("API.Entities.Scrobble.ScrobbleEvent", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany() + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Library", "Library") + .WithMany() + .HasForeignKey("LibraryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Series", "Series") + .WithMany() + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + + b.Navigation("Library"); + + b.Navigation("Series"); + }); + + modelBuilder.Entity("API.Entities.Scrobble.ScrobbleHold", b => + { + b.HasOne("API.Entities.AppUser", "AppUser") + .WithMany("ScrobbleHolds") + .HasForeignKey("AppUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Series", "Series") + .WithMany() + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AppUser"); + + b.Navigation("Series"); + }); + + modelBuilder.Entity("API.Entities.Series", b => + { + b.HasOne("API.Entities.Library", "Library") + .WithMany("Series") + .HasForeignKey("LibraryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Library"); + }); + + modelBuilder.Entity("API.Entities.Volume", b => + { + b.HasOne("API.Entities.Series", "Series") + .WithMany("Volumes") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Series"); + }); + + modelBuilder.Entity("AppUserCollectionSeries", b => + { + b.HasOne("API.Entities.AppUserCollection", null) + .WithMany() + .HasForeignKey("CollectionsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Series", null) + .WithMany() + .HasForeignKey("ItemsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("AppUserLibrary", b => + { + b.HasOne("API.Entities.AppUser", null) + .WithMany() + .HasForeignKey("AppUsersId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Library", null) + .WithMany() + .HasForeignKey("LibrariesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ChapterGenre", b => + { + b.HasOne("API.Entities.Chapter", null) + .WithMany() + .HasForeignKey("ChaptersId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Genre", null) + .WithMany() + .HasForeignKey("GenresId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ChapterTag", b => + { + b.HasOne("API.Entities.Chapter", null) + .WithMany() + .HasForeignKey("ChaptersId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Tag", null) + .WithMany() + .HasForeignKey("TagsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("CollectionTagSeriesMetadata", b => + { + b.HasOne("API.Entities.CollectionTag", null) + .WithMany() + .HasForeignKey("CollectionTagsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Metadata.SeriesMetadata", null) + .WithMany() + .HasForeignKey("SeriesMetadatasId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ExternalRatingExternalSeriesMetadata", b => + { + b.HasOne("API.Entities.Metadata.ExternalRating", null) + .WithMany() + .HasForeignKey("ExternalRatingsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Metadata.ExternalSeriesMetadata", null) + .WithMany() + .HasForeignKey("ExternalSeriesMetadatasId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ExternalRecommendationExternalSeriesMetadata", b => + { + b.HasOne("API.Entities.Metadata.ExternalRecommendation", null) + .WithMany() + .HasForeignKey("ExternalRecommendationsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Metadata.ExternalSeriesMetadata", null) + .WithMany() + .HasForeignKey("ExternalSeriesMetadatasId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ExternalReviewExternalSeriesMetadata", b => + { + b.HasOne("API.Entities.Metadata.ExternalReview", null) + .WithMany() + .HasForeignKey("ExternalReviewsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Metadata.ExternalSeriesMetadata", null) + .WithMany() + .HasForeignKey("ExternalSeriesMetadatasId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("GenreSeriesMetadata", b => + { + b.HasOne("API.Entities.Genre", null) + .WithMany() + .HasForeignKey("GenresId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Metadata.SeriesMetadata", null) + .WithMany() + .HasForeignKey("SeriesMetadatasId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.HasOne("API.Entities.AppRole", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.HasOne("API.Entities.AppUser", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.HasOne("API.Entities.AppUser", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.HasOne("API.Entities.AppUser", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("SeriesMetadataTag", b => + { + b.HasOne("API.Entities.Metadata.SeriesMetadata", null) + .WithMany() + .HasForeignKey("SeriesMetadatasId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("API.Entities.Tag", null) + .WithMany() + .HasForeignKey("TagsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("API.Entities.AppRole", b => + { + b.Navigation("UserRoles"); + }); + + modelBuilder.Entity("API.Entities.AppUser", b => + { + b.Navigation("Annotations"); + + b.Navigation("Bookmarks"); + + b.Navigation("ChapterRatings"); + + b.Navigation("Collections"); + + b.Navigation("DashboardStreams"); + + b.Navigation("Devices"); + + b.Navigation("ExternalSources"); + + b.Navigation("Progresses"); + + b.Navigation("Ratings"); + + b.Navigation("ReadingLists"); + + b.Navigation("ReadingProfiles"); + + b.Navigation("ScrobbleHolds"); + + b.Navigation("SideNavStreams"); + + b.Navigation("SmartFilters"); + + b.Navigation("TableOfContents"); + + b.Navigation("UserPreferences") + .IsRequired(); + + b.Navigation("UserRoles"); + + b.Navigation("WantToRead"); + }); + + modelBuilder.Entity("API.Entities.Chapter", b => + { + b.Navigation("ExternalRatings"); + + b.Navigation("ExternalReviews"); + + b.Navigation("Files"); + + b.Navigation("People"); + + b.Navigation("Ratings"); + + b.Navigation("UserProgress"); + }); + + modelBuilder.Entity("API.Entities.Library", b => + { + b.Navigation("Folders"); + + b.Navigation("LibraryExcludePatterns"); + + b.Navigation("LibraryFileTypes"); + + b.Navigation("Series"); + }); + + modelBuilder.Entity("API.Entities.Metadata.SeriesMetadata", b => + { + b.Navigation("People"); + }); + + modelBuilder.Entity("API.Entities.MetadataMatching.MetadataSettings", b => + { + b.Navigation("FieldMappings"); + }); + + modelBuilder.Entity("API.Entities.Person.Person", b => + { + b.Navigation("Aliases"); + + b.Navigation("ChapterPeople"); + + b.Navigation("SeriesMetadataPeople"); + }); + + modelBuilder.Entity("API.Entities.ReadingList", b => + { + b.Navigation("Items"); + }); + + modelBuilder.Entity("API.Entities.Series", b => + { + b.Navigation("ExternalSeriesMetadata"); + + b.Navigation("Metadata"); + + b.Navigation("Progress"); + + b.Navigation("Ratings"); + + b.Navigation("RelationOf"); + + b.Navigation("Relations"); + + b.Navigation("Volumes"); + }); + + modelBuilder.Entity("API.Entities.Volume", b => + { + b.Navigation("Chapters"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/API/Data/Migrations/20250919114119_ColorScapeSetting.cs b/API/Data/Migrations/20250919114119_ColorScapeSetting.cs new file mode 100644 index 000000000..445ada7a3 --- /dev/null +++ b/API/Data/Migrations/20250919114119_ColorScapeSetting.cs @@ -0,0 +1,29 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace API.Data.Migrations +{ + /// + public partial class ColorScapeSetting : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "ColorScapeEnabled", + table: "AppUserPreferences", + type: "INTEGER", + nullable: false, + defaultValue: true); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "ColorScapeEnabled", + table: "AppUserPreferences"); + } + } +} diff --git a/API/Data/Migrations/DataContextModelSnapshot.cs b/API/Data/Migrations/DataContextModelSnapshot.cs index ef16fe3ec..31188f691 100644 --- a/API/Data/Migrations/DataContextModelSnapshot.cs +++ b/API/Data/Migrations/DataContextModelSnapshot.cs @@ -551,6 +551,11 @@ namespace API.Data.Migrations b.Property("CollapseSeriesRelationships") .HasColumnType("INTEGER"); + b.Property("ColorScapeEnabled") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(true); + b.Property("EmulateBook") .HasColumnType("INTEGER"); diff --git a/API/Data/Repositories/AppUserSmartFilterRepository.cs b/API/Data/Repositories/AppUserSmartFilterRepository.cs index c7f981daa..5b6ff98f1 100644 --- a/API/Data/Repositories/AppUserSmartFilterRepository.cs +++ b/API/Data/Repositories/AppUserSmartFilterRepository.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Threading.Tasks; using API.DTOs.Dashboard; using API.Entities; +using API.Helpers; using AutoMapper; using AutoMapper.QueryableExtensions; using Microsoft.EntityFrameworkCore; @@ -16,6 +17,7 @@ public interface IAppUserSmartFilterRepository void Attach(AppUserSmartFilter filter); void Delete(AppUserSmartFilter filter); IEnumerable GetAllDtosByUserId(int userId); + Task> GetPagedDtosByUserIdAsync(int userId, UserParams userParams); Task GetById(int smartFilterId); } @@ -54,6 +56,15 @@ public class AppUserSmartFilterRepository : IAppUserSmartFilterRepository .AsEnumerable(); } + public Task> GetPagedDtosByUserIdAsync(int userId, UserParams userParams) + { + var filters = _context.AppUserSmartFilter + .Where(f => f.AppUserId == userId) + .ProjectTo(_mapper.ConfigurationProvider); + + return PagedList.CreateAsync(filters, userParams); + } + public async Task GetById(int smartFilterId) { return await _context.AppUserSmartFilter diff --git a/API/Data/Repositories/ChapterRepository.cs b/API/Data/Repositories/ChapterRepository.cs index 81a140f5b..6f86a1afb 100644 --- a/API/Data/Repositories/ChapterRepository.cs +++ b/API/Data/Repositories/ChapterRepository.cs @@ -40,10 +40,12 @@ public interface IChapterRepository Task GetChapterInfoDtoAsync(int chapterId); Task GetChapterTotalPagesAsync(int chapterId); Task GetChapterAsync(int chapterId, ChapterIncludes includes = ChapterIncludes.Files); - Task GetChapterDtoAsync(int chapterId, ChapterIncludes includes = ChapterIncludes.Files); + Task GetChapterDtoAsync(int chapterId, int userId); + Task> GetChapterDtoByIdsAsync(IEnumerable chapterIds, int userId); Task GetChapterMetadataDtoAsync(int chapterId, ChapterIncludes includes = ChapterIncludes.Files); Task> GetFilesForChapterAsync(int chapterId); Task> GetChaptersAsync(int volumeId, ChapterIncludes includes = ChapterIncludes.None); + Task> GetChapterDtosAsync(int volumeId, int userId); Task> GetFilesForChaptersAsync(IReadOnlyList chapterIds); Task GetChapterCoverImageAsync(int chapterId); Task> GetAllCoverImagesAsync(); @@ -153,18 +155,39 @@ public class ChapterRepository : IChapterRepository .Select(c => c.Pages) .FirstOrDefaultAsync(); } - public async Task GetChapterDtoAsync(int chapterId, ChapterIncludes includes = ChapterIncludes.Files) + public async Task GetChapterDtoAsync(int chapterId, int userId) { var chapter = await _context.Chapter - .Includes(includes) + .Includes(ChapterIncludes.Files | ChapterIncludes.People) .ProjectTo(_mapper.ConfigurationProvider) - .AsNoTracking() .AsSplitQuery() .FirstOrDefaultAsync(c => c.Id == chapterId); + if (userId > 0 && chapter != null) + { + await AddChapterModifiers(userId, chapter); + } + return chapter; } + public async Task> GetChapterDtoByIdsAsync(IEnumerable chapterIds, int userId) + { + var chapters = await _context.Chapter + .Where(c => chapterIds.Contains(c.Id)) + .Includes(ChapterIncludes.Files | ChapterIncludes.People) + .ProjectTo(_mapper.ConfigurationProvider) + .AsSplitQuery() + .ToListAsync() ; + + foreach (var chapter in chapters) + { + await AddChapterModifiers(userId, chapter); + } + + return chapters; + } + public async Task GetChapterMetadataDtoAsync(int chapterId, ChapterIncludes includes = ChapterIncludes.Files) { var chapter = await _context.Chapter @@ -218,6 +241,28 @@ public class ChapterRepository : IChapterRepository .ToListAsync(); } + /// + /// Returns Chapters for a volume id with Progress + /// + /// + /// + public async Task> GetChapterDtosAsync(int volumeId, int userId) + { + var chapts = await _context.Chapter + .Where(c => c.VolumeId == volumeId) + .Includes(ChapterIncludes.Files | ChapterIncludes.People) + .OrderBy(c => c.SortOrder) + .ProjectTo(_mapper.ConfigurationProvider) + .ToListAsync(); + + foreach (var chapter in chapts) + { + await AddChapterModifiers(userId, chapter); + } + + return chapts; + } + /// /// Returns the cover image for a chapter id. /// diff --git a/API/Data/Repositories/CollectionTagRepository.cs b/API/Data/Repositories/CollectionTagRepository.cs index 562f59e91..41b29686f 100644 --- a/API/Data/Repositories/CollectionTagRepository.cs +++ b/API/Data/Repositories/CollectionTagRepository.cs @@ -9,6 +9,7 @@ using API.Entities.Enums; using API.Extensions; using API.Extensions.QueryExtensions; using API.Extensions.QueryExtensions.Filtering; +using API.Helpers; using API.Services.Plus; using AutoMapper; using AutoMapper.QueryableExtensions; @@ -49,6 +50,7 @@ public interface ICollectionTagRepository /// /// Task> GetCollectionDtosAsync(int userId, bool includePromoted = false); + Task> GetCollectionDtosPagedAsync(int userId, UserParams userParams, bool includePromoted = false); Task> GetCollectionDtosBySeriesAsync(int userId, int seriesId, bool includePromoted = false); Task> GetAllCoverImagesAsync(); @@ -117,6 +119,18 @@ public class CollectionTagRepository : ICollectionTagRepository .ToListAsync(); } + public async Task> GetCollectionDtosPagedAsync(int userId, UserParams userParams, bool includePromoted = false) + { + var ageRating = await _context.AppUser.GetUserAgeRestriction(userId); + var collections = _context.AppUserCollection + .Where(uc => uc.AppUserId == userId || (includePromoted && uc.Promoted)) + .WhereIf(ageRating.AgeRating != AgeRating.NotApplicable, uc => uc.AgeRating <= ageRating.AgeRating) + .OrderBy(uc => uc.Title) + .ProjectTo(_mapper.ConfigurationProvider); + + return await PagedList.CreateAsync(collections, userParams); + } + public async Task> GetCollectionDtosBySeriesAsync(int userId, int seriesId, bool includePromoted = false) { var ageRating = await _context.AppUser.GetUserAgeRestriction(userId); diff --git a/API/Data/Repositories/GenreRepository.cs b/API/Data/Repositories/GenreRepository.cs index d3baa4de6..7f705e8ae 100644 --- a/API/Data/Repositories/GenreRepository.cs +++ b/API/Data/Repositories/GenreRepository.cs @@ -26,8 +26,8 @@ public interface IGenreRepository Task RemoveAllGenreNoLongerAssociated(bool removeExternal = false); Task> GetAllGenreDtosForLibrariesAsync(int userId, IList? libraryIds = null, QueryContext context = QueryContext.None); Task GetCountAsync(); - Task GetRandomGenre(); - Task GetGenreById(int id); + Task GetRandomGenre(); + Task GetGenreById(int id); Task> GetAllGenresNotInListAsync(ICollection genreNames); Task> GetBrowseableGenre(int userId, UserParams userParams); } @@ -79,7 +79,7 @@ public class GenreRepository : IGenreRepository return await _context.Genre.CountAsync(); } - public async Task GetRandomGenre() + public async Task GetRandomGenre() { var genreCount = await GetCountAsync(); if (genreCount == 0) return null; @@ -92,7 +92,7 @@ public class GenreRepository : IGenreRepository .FirstOrDefaultAsync(); } - public async Task GetGenreById(int id) + public async Task GetGenreById(int id) { return await _context.Genre .Where(g => g.Id == id) diff --git a/API/Data/Repositories/ReadingListRepository.cs b/API/Data/Repositories/ReadingListRepository.cs index 6992b2950..94a2198e4 100644 --- a/API/Data/Repositories/ReadingListRepository.cs +++ b/API/Data/Repositories/ReadingListRepository.cs @@ -31,7 +31,7 @@ public interface IReadingListRepository { Task> GetReadingListDtosForUserAsync(int userId, bool includePromoted, UserParams userParams, bool sortByLastModified = true); Task GetReadingListByIdAsync(int readingListId, ReadingListIncludes includes = ReadingListIncludes.None); - Task> GetReadingListItemDtosByIdAsync(int readingListId, int userId); + Task> GetReadingListItemDtosByIdAsync(int readingListId, int userId, UserParams? userParams = null); Task GetReadingListDtoByIdAsync(int readingListId, int userId); Task> AddReadingProgressModifiers(int userId, IList items); Task GetReadingListDtoByTitleAsync(int userId, string title); @@ -357,11 +357,11 @@ public class ReadingListRepository : IReadingListRepository .SingleOrDefaultAsync(); } - public async Task> GetReadingListItemDtosByIdAsync(int readingListId, int userId) + public async Task> GetReadingListItemDtosByIdAsync(int readingListId, int userId, UserParams? userParams = null) { var userLibraries = _context.Library.GetUserLibraries(userId); - var items = await _context.ReadingListItem + var query = _context.ReadingListItem .Where(s => s.ReadingListId == readingListId) .Join(_context.Chapter, s => s.ChapterId, chapter => chapter.Id, (data, chapter) => new { @@ -431,9 +431,17 @@ public class ReadingListRepository : IReadingListRepository }) .Where(o => userLibraries.Contains(o.LibraryId)) .OrderBy(rli => rli.Order) - .AsSplitQuery() - .AsNoTracking() - .ToListAsync(); + .AsSplitQuery(); + + if (userParams != null) + { + query = query + .Skip(userParams.PageNumber * userParams.PageSize) + .Take(userParams.PageSize); + } + + + var items = await query.ToListAsync(); foreach (var item in items) { diff --git a/API/Data/Repositories/UserRepository.cs b/API/Data/Repositories/UserRepository.cs index 9f101a43e..0a446179a 100644 --- a/API/Data/Repositories/UserRepository.cs +++ b/API/Data/Repositories/UserRepository.cs @@ -29,20 +29,20 @@ namespace API.Data.Repositories; public enum AppUserIncludes { None = 1, - Progress = 2, - Bookmarks = 4, - ReadingLists = 8, - Ratings = 16, - UserPreferences = 32, - WantToRead = 64, - ReadingListsWithItems = 128, - Devices = 256, - ScrobbleHolds = 512, - SmartFilters = 1024, - DashboardStreams = 2048, - SideNavStreams = 4096, - ExternalSources = 8192, - Collections = 16384, // 2^14 + Progress = 1 << 1, + Bookmarks = 1 << 2, + ReadingLists = 1 << 3, + Ratings = 1 << 4, + UserPreferences = 1 << 5, + WantToRead = 1 << 6, + ReadingListsWithItems = 1 << 7, + Devices = 1 << 8, + ScrobbleHolds = 1 << 9, + SmartFilters = 1 << 10, + DashboardStreams = 1 << 11, + SideNavStreams = 1 << 12, + ExternalSources = 1 << 13, + Collections = 1 << 14, ChapterRatings = 1 << 15, } @@ -118,6 +118,7 @@ public interface IUserRepository Task GetByOidcId(string? oidcId, AppUserIncludes includes = AppUserIncludes.None); Task GetAnnotationDtoById(int userId, int annotationId); + Task> GetAnnotationDtosBySeries(int userId, int seriesId); } public class UserRepository : IUserRepository @@ -612,6 +613,14 @@ public class UserRepository : IUserRepository .FirstOrDefaultAsync(); } + public async Task> GetAnnotationDtosBySeries(int userId, int seriesId) + { + return await _context.AppUserAnnotation + .Where(a => a.AppUserId == userId && a.SeriesId == seriesId) + .ProjectTo(_mapper.ConfigurationProvider) + .ToListAsync(); + } + public async Task> GetAdminUsersAsync() { @@ -629,6 +638,7 @@ public class UserRepository : IUserRepository var user = await _context.Users.FirstOrDefaultAsync(u => u.Id == userId); if (user == null) return ArraySegment.Empty; + // ReSharper disable once ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract if (_userManager == null) { // userManager is null on Unit Tests only diff --git a/API/Entities/AppUserPreferences.cs b/API/Entities/AppUserPreferences.cs index aa6195143..86a68afd0 100644 --- a/API/Entities/AppUserPreferences.cs +++ b/API/Entities/AppUserPreferences.cs @@ -169,6 +169,10 @@ public class AppUserPreferences /// UI Site Global Setting: The language locale that should be used for the user /// public string Locale { get; set; } + /// + /// UI Site Global Setting: Should Kavita render ColorScape gradients + /// + public bool ColorScapeEnabled { get; set; } = true; #endregion #region KavitaPlus diff --git a/API/Entities/Enums/LibraryType.cs b/API/Entities/Enums/LibraryType.cs index a8d943b2d..2e2bd235b 100644 --- a/API/Entities/Enums/LibraryType.cs +++ b/API/Entities/Enums/LibraryType.cs @@ -12,7 +12,8 @@ public enum LibraryType /// /// Uses Comic regex for filename parsing /// - [Description("Comic (Legacy)")] + /// This was the original implementation and is much more flexible + [Description("Comic (Flexible)")] Comic = 1, /// /// Uses Manga regex for filename parsing also uses epub metadata diff --git a/API/Extensions/StringExtensions.cs b/API/Extensions/StringExtensions.cs index fc005b06f..78a090e42 100644 --- a/API/Extensions/StringExtensions.cs +++ b/API/Extensions/StringExtensions.cs @@ -1,5 +1,6 @@ using System; using System.Globalization; +using System.Linq; using System.Text.RegularExpressions; namespace API.Extensions; @@ -81,4 +82,15 @@ public static class StringExtensions return input[0] + new string('*', atIdx - 1) + input[atIdx..]; } + /// + /// Repeat returns a string that is equal to the original string repeat n times + /// + /// String to repeat + /// Amount of times to repeat + /// + public static string Repeat(this string? input, int n) + { + return string.IsNullOrEmpty(input) ? string.Empty : string.Concat(Enumerable.Repeat(input, n)); + } + } diff --git a/API/Helpers/AnnotationHelper.cs b/API/Helpers/AnnotationHelper.cs index ff428028d..3b2fb4277 100644 --- a/API/Helpers/AnnotationHelper.cs +++ b/API/Helpers/AnnotationHelper.cs @@ -43,11 +43,13 @@ public static partial class AnnotationHelper var originalText = elem.InnerText; // Calculate positions and sort by start position + var normalizedOriginalText = NormalizeWhitespace(originalText); + var sortedAnnotations = elementAnnotations .Select(a => new { Annotation = a, - StartPos = originalText.IndexOf(a.SelectedText, StringComparison.Ordinal) + StartPos = normalizedOriginalText.IndexOf(NormalizeWhitespace(a.SelectedText), StringComparison.Ordinal) }) .Where(a => a.StartPos >= 0) .OrderBy(a => a.StartPos) @@ -79,9 +81,10 @@ public static partial class AnnotationHelper elem.AppendChild(HtmlNode.CreateNode(originalText.Substring(currentPos))); } } - catch (Exception) + catch (Exception ex) { /* Swallow */ + return; } } } diff --git a/API/Helpers/AutoMapperProfiles.cs b/API/Helpers/AutoMapperProfiles.cs index 864dda0db..2452c38a7 100644 --- a/API/Helpers/AutoMapperProfiles.cs +++ b/API/Helpers/AutoMapperProfiles.cs @@ -388,7 +388,7 @@ public class AutoMapperProfiles : Profile CreateMap() .ForMember(dest => dest.OwnerUsername, opt => opt.MapFrom(src => src.AppUser.UserName)) - .ForMember(dest => dest.OwnerUserId, opt => opt.MapFrom(src => src.AppUserId)); + .ForMember(dest => dest.OwnerUserId, opt => opt.MapFrom(src => src.AppUserId)) ; CreateMap(); } diff --git a/API/Helpers/PagedList.cs b/API/Helpers/PagedList.cs index 44d8a5082..4a2268e47 100644 --- a/API/Helpers/PagedList.cs +++ b/API/Helpers/PagedList.cs @@ -23,6 +23,11 @@ public class PagedList : List public int PageSize { get; set; } public int TotalCount { get; set; } + public static async Task> CreateAsync(IQueryable source, UserParams userParams) + { + return await CreateAsync(source, userParams.PageNumber, userParams.PageSize); + } + public static async Task> CreateAsync(IQueryable source, int pageNumber, int pageSize) { // NOTE: OrderBy warning being thrown here even if query has the orderby statement diff --git a/API/I18N/en.json b/API/I18N/en.json index bf07c1140..96366059e 100644 --- a/API/I18N/en.json +++ b/API/I18N/en.json @@ -160,6 +160,7 @@ "generic-user-pref": "There was an issue saving preferences", "opds-disabled": "OPDS is not enabled on this server", + "opds-continue-reading-title": "Continue Reading from: {0}", "on-deck": "On Deck", "browse-on-deck": "Browse On Deck", "recently-added": "Recently Added", @@ -239,6 +240,7 @@ "backup": "Backup", "update-yearly-stats": "Update Yearly Stats", - "generated-reading-profile-name": "Generated from {0}" + "generated-reading-profile-name": "Generated from {0}", + "genre-doesnt-exist": "Genre doesn't exist" } diff --git a/API/Services/AccountService.cs b/API/Services/AccountService.cs index 8cef587e7..3f99dedb7 100644 --- a/API/Services/AccountService.cs +++ b/API/Services/AccountService.cs @@ -54,6 +54,12 @@ public interface IAccountService /// Does NOT commit Task UpdateLibrariesForUser(AppUser user, IList librariesIds, bool hasAdminRole); Task> UpdateRolesForUser(AppUser user, IList roles); + /// + /// Seeds all information necessary for a new user + /// + /// + /// + Task SeedUser(AppUser user); void AddDefaultStreamsToUser(AppUser user); Task AddDefaultReadingProfileToUser(AppUser user); } @@ -266,6 +272,17 @@ public partial class AccountService : IAccountService return []; } + public async Task SeedUser(AppUser user) + { + AddDefaultStreamsToUser(user); + AddDefaultHighlightSlotsToUser(user); + await AddDefaultReadingProfileToUser(user); // Commits + } + + /// + /// Assign default streams + /// + /// public void AddDefaultStreamsToUser(AppUser user) { foreach (var newStream in Seed.DefaultStreams.Select(_mapper.Map)) @@ -279,6 +296,18 @@ public partial class AccountService : IAccountService } } + private void AddDefaultHighlightSlotsToUser(AppUser user) + { + if (user.UserPreferences.BookReaderHighlightSlots.Any()) return; + + user.UserPreferences.BookReaderHighlightSlots = Seed.DefaultHighlightSlots.ToList(); + _unitOfWork.UserRepository.Update(user); + } + + /// + /// Assign default reading profile + /// + /// public async Task AddDefaultReadingProfileToUser(AppUser user) { var profile = new AppUserReadingProfileBuilder(user.Id) diff --git a/API/Services/BookService.cs b/API/Services/BookService.cs index 7b2e2ac79..756068ab5 100644 --- a/API/Services/BookService.cs +++ b/API/Services/BookService.cs @@ -63,6 +63,8 @@ public interface IBookService Task> CreateKeyToPageMappingAsync(EpubBookRef book); Task?> GetWordCountsPerPage(string bookFilePath); Task CopyImageToTempFromBook(int chapterId, BookmarkDto bookmarkDto, string cachedBookPath); + Task GetResourceAsync(string bookFilePath, string requestedKey); + } public partial class BookService : IBookService @@ -315,7 +317,7 @@ public partial class BookService : IBookService /// /// /// - private static void InjectPTOCBookmarks(HtmlDocument doc, List ptocBookmarks) + private void InjectPTOCBookmarks(HtmlDocument doc, List ptocBookmarks) { if (ptocBookmarks.Count == 0) return; @@ -333,8 +335,9 @@ public partial class BookService : IBookService elem.PrependChild(HtmlNode.CreateNode( $"")); } - catch (Exception) + catch (Exception ex) { + _logger.LogWarning(ex, "Failed to inject a text (ptoc) bookmark into file"); // Swallow } } @@ -1075,6 +1078,27 @@ public partial class BookService : IBookService throw new KavitaException($"Page {bookmarkDto.Page} not found in epub"); } + /// + /// Attempts to resolve a requested key path with some hacks to attempt to handle incorrect metadata + /// + /// + /// + /// + public async Task GetResourceAsync(string bookFilePath, string requestedKey) + { + using var book = await EpubReader.OpenBookAsync(bookFilePath, LenientBookReaderOptions); + var key = CoalesceKeyForAnyFile(book, requestedKey); + + if (!book.Content.AllFiles.ContainsLocalFileRefWithKey(key)) + return BookResourceResultDto.Error("file-missing"); + + var bookFile = book.Content.AllFiles.GetLocalFileRefByKey(key); + var content = await bookFile.ReadContentAsBytesAsync(); + var contentType = GetContentType(bookFile.ContentType); + + return BookResourceResultDto.Success(content, contentType, requestedKey); + } + ///
    /// Parses out Title from book. Chapters and Volumes will always be "0". If there is any exception reading book (malformed books) @@ -1219,7 +1243,7 @@ public partial class BookService : IBookService /// Body element from the epub /// Epub mappings /// Page number we are loading - /// Ptoc Bookmarks to tie against + /// Ptoc (Text) Bookmarks to tie against /// private async Task ScopePage(HtmlDocument doc, EpubBookRef book, string apiBase, HtmlNode body, Dictionary mappings, int page, List ptocBookmarks, List annotations) @@ -1228,7 +1252,6 @@ public partial class BookService : IBookService RewriteAnchors(page, doc, mappings); - // TODO: Pass bookmarks here for state management ScopeImages(doc, book, apiBase); InjectImages(doc, book, apiBase); @@ -1285,13 +1308,13 @@ public partial class BookService : IBookService var cleanedKey = CleanContentKeys(key); if (book.Content.AllFiles.ContainsLocalFileRefWithKey(cleanedKey)) return cleanedKey; - // TODO: Figure this out - // Fallback to searching for key (bad epub metadata) - // var correctedKey = book.Content.AllFiles.Keys.SingleOrDefault(s => s.EndsWith(key)); - // if (!string.IsNullOrEmpty(correctedKey)) - // { - // key = correctedKey; - // } + // Correct relative paths ./ + if (key.StartsWith("./")) + { + var nonPathKey = key.Replace("./", string.Empty); + var correctedKey = book.Content.AllFiles.Local.SingleOrDefault(s => s.Key == nonPathKey); + if (correctedKey != null) return correctedKey.Key; + } return key; } @@ -1329,8 +1352,8 @@ public partial class BookService : IBookService var tocPage = book.Content.Html.Local.Select(s => s.Key) .FirstOrDefault(k => k.Equals("TOC.XHTML", StringComparison.InvariantCultureIgnoreCase) || k.Equals("NAVIGATION.XHTML", StringComparison.InvariantCultureIgnoreCase)); - if (string.IsNullOrEmpty(tocPage)) return chaptersList; + if (string.IsNullOrEmpty(tocPage)) return chaptersList; if (!book.Content.Html.TryGetLocalFileRefByKey(tocPage, out var file)) return chaptersList; var content = await file.ReadContentAsync(); diff --git a/API/Services/KoreaderService.cs b/API/Services/KoreaderService.cs index 8300199f0..b2656618c 100644 --- a/API/Services/KoreaderService.cs +++ b/API/Services/KoreaderService.cs @@ -47,7 +47,7 @@ public class KoreaderService : IKoreaderService var userProgressDto = await _unitOfWork.AppUserProgressRepository.GetUserProgressDtoAsync(file.ChapterId, userId); if (userProgressDto == null) { - var chapterDto = await _unitOfWork.ChapterRepository.GetChapterDtoAsync(file.ChapterId); + var chapterDto = await _unitOfWork.ChapterRepository.GetChapterDtoAsync(file.ChapterId, userId); if (chapterDto == null) throw new KavitaException(await _localizationService.Translate(userId, "chapter-doesnt-exist")); var volumeDto = await _unitOfWork.VolumeRepository.GetVolumeByIdAsync(chapterDto.VolumeId); diff --git a/API/Services/OidcService.cs b/API/Services/OidcService.cs index e19663be1..3473fdb02 100644 --- a/API/Services/OidcService.cs +++ b/API/Services/OidcService.cs @@ -333,8 +333,7 @@ public class OidcService(ILogger logger, UserManager userM user.OidcId = externalId; user.IdentityProvider = IdentityProvider.OpenIdConnect; - accountService.AddDefaultStreamsToUser(user); - await accountService.AddDefaultReadingProfileToUser(user); + await accountService.SeedUser(user); await SyncUserSettings(request, settings, claimsPrincipal, user); await SetDefaults(settings, user); diff --git a/API/Services/SettingsService.cs b/API/Services/SettingsService.cs index 0cf07c7a0..02018dc67 100644 --- a/API/Services/SettingsService.cs +++ b/API/Services/SettingsService.cs @@ -598,11 +598,17 @@ public class SettingsService : ISettingsService updateSettingsDto.OidcConfig.RolesClaim = ClaimTypes.Role; } + var currentConfig = JsonSerializer.Deserialize(setting.Value)!; + + // Patch Oidc Secret back in if not changed + if ("*".Repeat(currentConfig.Secret.Length) == updateSettingsDto.OidcConfig.Secret) + { + updateSettingsDto.OidcConfig.Secret = currentConfig.Secret; + } + var newValue = JsonSerializer.Serialize(updateSettingsDto.OidcConfig); if (setting.Value == newValue) return false; - var currentConfig = JsonSerializer.Deserialize(setting.Value)!; - if (currentConfig.Authority != updateSettingsDto.OidcConfig.Authority) { if (!await IsValidAuthority(updateSettingsDto.OidcConfig.Authority + string.Empty)) diff --git a/API/Services/TachiyomiService.cs b/API/Services/TachiyomiService.cs index 7cba28695..dadcfdaa5 100644 --- a/API/Services/TachiyomiService.cs +++ b/API/Services/TachiyomiService.cs @@ -95,7 +95,7 @@ public class TachiyomiService : ITachiyomiService } // There is progress, we now need to figure out the highest volume or chapter and return that. - var prevChapter = (await _unitOfWork.ChapterRepository.GetChapterDtoAsync(prevChapterId))!; + var prevChapter = (await _unitOfWork.ChapterRepository.GetChapterDtoAsync(prevChapterId, userId))!; var volumeWithProgress = (await _unitOfWork.VolumeRepository.GetVolumeDtoAsync(prevChapter.VolumeId, userId))!; // We only encode for single-file volumes diff --git a/API/Services/Tasks/SiteThemeService.cs b/API/Services/Tasks/SiteThemeService.cs index 3dca14ab9..3c1be35f0 100644 --- a/API/Services/Tasks/SiteThemeService.cs +++ b/API/Services/Tasks/SiteThemeService.cs @@ -77,7 +77,6 @@ public class ThemeService : IThemeService private readonly IDirectoryService _directoryService; private readonly IUnitOfWork _unitOfWork; private readonly IEventHub _eventHub; - private readonly IFileService _fileService; private readonly ILogger _logger; private readonly Markdown _markdown = new(); private readonly IMemoryCache _cache; @@ -91,12 +90,11 @@ public class ThemeService : IThemeService private const string GithubReadme = "https://raw.githubusercontent.com/Kareadita/Themes/main/README.md"; public ThemeService(IDirectoryService directoryService, IUnitOfWork unitOfWork, - IEventHub eventHub, IFileService fileService, ILogger logger, IMemoryCache cache) + IEventHub eventHub, ILogger logger, IMemoryCache cache) { _directoryService = directoryService; _unitOfWork = unitOfWork; _eventHub = eventHub; - _fileService = fileService; _logger = logger; _cache = cache; diff --git a/API/Startup.cs b/API/Startup.cs index d803b990e..fad79ceea 100644 --- a/API/Startup.cs +++ b/API/Startup.cs @@ -400,11 +400,13 @@ public class Startup app.UseStaticFiles(new StaticFileOptions { // bcmap files needed for PDF reader localizations (https://github.com/Kareadita/Kavita/issues/2970) + // ftl files are needed for PDF zoom options (https://github.com/Kareadita/Kavita/issues/3995) ContentTypeProvider = new FileExtensionContentTypeProvider { Mappings = { - [".bcmap"] = "application/octet-stream" + [".bcmap"] = "application/octet-stream", + [".ftl"] = "text/plain" } }, HttpsCompression = HttpsCompressionMode.Compress, diff --git a/README.md b/README.md index 227397a79..aa23a43db 100644 --- a/README.md +++ b/README.md @@ -26,14 +26,14 @@ your reading collection with your friends and family! - First class responsive readers that work great on any device (phone, tablet, desktop) - Customizable theming support: [Theme Repo](https://github.com/Kareadita/Themes) and [Documentation](https://wiki.kavitareader.com/guides/themes) - External metadata integration and scrobbling for read status, ratings, and reviews (available via [Kavita+](https://wiki.kavitareader.com/kavita+)) -- Rich Metadata support with filtering and searching +- Rich Metadata support with filtering, searching, and smart filters - Ways to group reading material: Collections, Reading Lists (CBL Import), Want to Read -- Ability to manage users with rich Role-based management for age restrictions, abilities within the app, etc +- Ability to manage users with rich Role-based management for age restrictions, abilities within the app, OIDC, etc - Rich web readers supporting webtoon, continuous reading mode (continue without leaving the reader), virtual pages (epub), etc - Ability to customize your dashboard and side nav with smart filters, custom order and visibility toggles -- Full Localization Support -- Ability to download metadata (available via [Kavita+](https://wiki.kavitareader.com/kavita+)) - +- Full Localization Support ([Weblate](https://hosted.weblate.org/engage/kavita/)) +- Ability to download metadata, reviews, ratings, and more (available via [Kavita+](https://wiki.kavitareader.com/kavita+)) +- Epub-based Annotation/Highlight support ## Support [![Discord](https://img.shields.io/badge/discord-chat-7289DA.svg?maxAge=60)](https://discord.gg/eczRp9eeem) diff --git a/UI/Web/angular.json b/UI/Web/angular.json index 6c24c56b0..b0c30b5b1 100644 --- a/UI/Web/angular.json +++ b/UI/Web/angular.json @@ -91,6 +91,14 @@ "maximumError": "30kb" } ] + }, + "proxy": { + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.proxy.ts" + } + ] } }, "defaultConfiguration": "" @@ -106,6 +114,9 @@ "configurations": { "production": { "buildTarget": "kavita-webui:build:production" + }, + "proxy": { + "buildTarget": "kavita-webui:build:proxy" } } }, diff --git a/UI/Web/package.json b/UI/Web/package.json index 3b89df4a7..4a4708e33 100644 --- a/UI/Web/package.json +++ b/UI/Web/package.json @@ -4,8 +4,10 @@ "scripts": { "ng": "ng", "start": "npm run cache-locale && ng serve --host 0.0.0.0", + "start-proxy": "npm run cache-locale && ng serve --configuration proxy --host 0.0.0.0 --proxy-config proxy.conf.json", "build": "npm run cache-locale && ng build", "build-backend": "ng build && rm -r ../../API/wwwroot/* && cp -r dist/browser/* ../../API/wwwroot", + "build-backend-prod": "ng build --configuration production && rm -r ../../API/wwwroot/* && cp -r dist/browser/* ../../API/wwwroot", "minify-langs": "node minify-json.js", "cache-locale": "node hash-localization.js", "cache-locale-prime": "node hash-localization-prime.js", diff --git a/UI/Web/proxy.conf.json b/UI/Web/proxy.conf.json new file mode 100644 index 000000000..4d787f811 --- /dev/null +++ b/UI/Web/proxy.conf.json @@ -0,0 +1,37 @@ +{ + "/api": { + "target": "http://localhost:5000", + "secure": false, + "changeOrigin": true, + "logLevel": "debug" + }, + "/hubs": { + "target": "http://localhost:5000", + "secure": false, + "changeOrigin": true, + "logLevel": "debug", + "ws": true + }, + "/oidc/login": { + "target": "http://localhost:5000", + "secure": false, + "changeOrigin": true, + "logLevel": "debug" + }, + "/oidc/logout": { + "target": "http://localhost:5000", + "secure": false, + "changeOrigin": true, + "logLevel": "debug" + }, + "/signin-oidc": { + "target": "http://localhost:5000", + "secure": false, + "changeOrigin": true + }, + "/signout-callback-oidc": { + "target": "http://localhost:5000", + "secure": false, + "changeOrigin": true + } +} diff --git a/UI/Web/src/app/_guards/auth.guard.ts b/UI/Web/src/app/_guards/auth.guard.ts index 5422a7fb8..bc037a081 100644 --- a/UI/Web/src/app/_guards/auth.guard.ts +++ b/UI/Web/src/app/_guards/auth.guard.ts @@ -11,16 +11,16 @@ import {APP_BASE_HREF} from "@angular/common"; providedIn: 'root' }) export class AuthGuard implements CanActivate { + private accountService = inject(AccountService); + private router = inject(Router); + private toastr = inject(ToastrService); + private translocoService = inject(TranslocoService); + public static urlKey: string = 'kavita--auth-intersection-url'; baseURL = inject(APP_BASE_HREF); - constructor(private accountService: AccountService, - private router: Router, - private toastr: ToastrService, - private translocoService: TranslocoService) {} - canActivate(): Observable { return this.accountService.currentUser$.pipe(take(1), map((user) => { diff --git a/UI/Web/src/app/_guards/library-access.guard.ts b/UI/Web/src/app/_guards/library-access.guard.ts index 8d10699f7..d1054de33 100644 --- a/UI/Web/src/app/_guards/library-access.guard.ts +++ b/UI/Web/src/app/_guards/library-access.guard.ts @@ -1,4 +1,4 @@ -import { Injectable } from '@angular/core'; +import { Injectable, inject } from '@angular/core'; import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router'; import { Observable, of } from 'rxjs'; import { MemberService } from '../_services/member.service'; @@ -7,8 +7,8 @@ import { MemberService } from '../_services/member.service'; providedIn: 'root' }) export class LibraryAccessGuard implements CanActivate { + private memberService = inject(MemberService); - constructor(private memberService: MemberService) {} canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable { const libraryId = parseInt(state.url.split('library/')[1], 10); diff --git a/UI/Web/src/app/_interceptors/error.interceptor.ts b/UI/Web/src/app/_interceptors/error.interceptor.ts index 834179396..555445bae 100644 --- a/UI/Web/src/app/_interceptors/error.interceptor.ts +++ b/UI/Web/src/app/_interceptors/error.interceptor.ts @@ -11,13 +11,14 @@ import {APP_BASE_HREF} from "@angular/common"; @Injectable() export class ErrorInterceptor implements HttpInterceptor { + private router = inject(Router); + private toastr = inject(ToastrService); + private accountService = inject(AccountService); + private translocoService = inject(TranslocoService); + baseURL = inject(APP_BASE_HREF); - constructor(private router: Router, private toastr: ToastrService, - private accountService: AccountService, - private translocoService: TranslocoService) {} - intercept(request: HttpRequest, next: HttpHandler): Observable> { return next.handle(request).pipe( diff --git a/UI/Web/src/app/_interceptors/jwt.interceptor.ts b/UI/Web/src/app/_interceptors/jwt.interceptor.ts index d9cd47327..5d39b950d 100644 --- a/UI/Web/src/app/_interceptors/jwt.interceptor.ts +++ b/UI/Web/src/app/_interceptors/jwt.interceptor.ts @@ -1,4 +1,4 @@ -import {Injectable} from '@angular/core'; +import { Injectable, inject } from '@angular/core'; import { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http'; import {Observable, switchMap} from 'rxjs'; import { AccountService } from '../_services/account.service'; @@ -6,8 +6,8 @@ import { take } from 'rxjs/operators'; @Injectable() export class JwtInterceptor implements HttpInterceptor { + private accountService = inject(AccountService); - constructor(private accountService: AccountService) {} intercept(request: HttpRequest, next: HttpHandler): Observable> { const user = this.accountService.currentUserSignal(); diff --git a/UI/Web/src/app/_models/preferences/preferences.ts b/UI/Web/src/app/_models/preferences/preferences.ts index f68a33504..8a98a2c92 100644 --- a/UI/Web/src/app/_models/preferences/preferences.ts +++ b/UI/Web/src/app/_models/preferences/preferences.ts @@ -14,6 +14,7 @@ export interface Preferences { shareReviews: boolean; locale: string; bookReaderHighlightSlots: HighlightSlot[]; + colorScapeEnabled: boolean; // Kavita+ aniListScrobblingEnabled: boolean; diff --git a/UI/Web/src/app/_pipes/default-date.pipe.ts b/UI/Web/src/app/_pipes/default-date.pipe.ts index 7cd541e0b..c5c44a04b 100644 --- a/UI/Web/src/app/_pipes/default-date.pipe.ts +++ b/UI/Web/src/app/_pipes/default-date.pipe.ts @@ -1,4 +1,4 @@ -import { Pipe, PipeTransform } from '@angular/core'; +import { Pipe, PipeTransform, inject } from '@angular/core'; import {TranslocoService} from "@jsverse/transloco"; @Pipe({ @@ -7,9 +7,8 @@ import {TranslocoService} from "@jsverse/transloco"; standalone: true }) export class DefaultDatePipe implements PipeTransform { + private translocoService = inject(TranslocoService); - constructor(private translocoService: TranslocoService) { - } transform(value: any, replacementString = 'default-date-pipe.never'): string { if (value === null || value === undefined || value === '' || value === Infinity || Number.isNaN(value) || value === '1/1/01') { return this.translocoService.translate(replacementString); diff --git a/UI/Web/src/app/_pipes/language-name.pipe.ts b/UI/Web/src/app/_pipes/language-name.pipe.ts index 697554bd3..49589e5d3 100644 --- a/UI/Web/src/app/_pipes/language-name.pipe.ts +++ b/UI/Web/src/app/_pipes/language-name.pipe.ts @@ -1,4 +1,4 @@ -import { Pipe, PipeTransform } from '@angular/core'; +import { Pipe, PipeTransform, inject } from '@angular/core'; import { map, Observable } from 'rxjs'; import { MetadataService } from '../_services/metadata.service'; import {shareReplay} from "rxjs/operators"; @@ -8,8 +8,8 @@ import {shareReplay} from "rxjs/operators"; standalone: true }) export class LanguageNamePipe implements PipeTransform { + private metadataService = inject(MetadataService); - constructor(private metadataService: MetadataService) {} transform(isoCode: string): Observable { return this.metadataService.getLanguageNameForCode(isoCode).pipe(shareReplay()); diff --git a/UI/Web/src/app/_pipes/library-type-subtitle.pipe.ts b/UI/Web/src/app/_pipes/library-type-subtitle.pipe.ts new file mode 100644 index 000000000..db9e53440 --- /dev/null +++ b/UI/Web/src/app/_pipes/library-type-subtitle.pipe.ts @@ -0,0 +1,30 @@ +import {Pipe, PipeTransform} from '@angular/core'; +import {LibraryType} from "../_models/library/library"; +import {translate} from "@jsverse/transloco"; + +@Pipe({ + name: 'libraryTypeSubtitle' +}) +export class LibraryTypeSubtitlePipe implements PipeTransform { + + transform(value: LibraryType | null | undefined): string { + if (value === null || value === undefined) return ''; + + switch (value) { + case LibraryType.Manga: + return translate('library-type-subtitle-pipe.manga'); + case LibraryType.Comic: + return translate('library-type-subtitle-pipe.comic'); + case LibraryType.Book: + return translate('library-type-subtitle-pipe.book'); + case LibraryType.Images: + return translate('library-type-subtitle-pipe.image'); + case LibraryType.LightNovel: + return translate('library-type-subtitle-pipe.lightNovel'); + case LibraryType.ComicVine: + return translate('library-type-subtitle-pipe.comicVine'); + + } + } + +} diff --git a/UI/Web/src/app/_pipes/manga-format.pipe.ts b/UI/Web/src/app/_pipes/manga-format.pipe.ts index 60672271b..9a1e073b7 100644 --- a/UI/Web/src/app/_pipes/manga-format.pipe.ts +++ b/UI/Web/src/app/_pipes/manga-format.pipe.ts @@ -1,4 +1,4 @@ -import {Pipe, PipeTransform} from '@angular/core'; +import { Pipe, PipeTransform, inject } from '@angular/core'; import { MangaFormat } from '../_models/manga-format'; import {TranslocoService} from "@jsverse/transloco"; @@ -10,8 +10,8 @@ import {TranslocoService} from "@jsverse/transloco"; standalone: true }) export class MangaFormatPipe implements PipeTransform { + private translocoService = inject(TranslocoService); - constructor(private translocoService: TranslocoService) {} transform(format: MangaFormat): string { switch (format) { diff --git a/UI/Web/src/app/_pipes/publication-status.pipe.ts b/UI/Web/src/app/_pipes/publication-status.pipe.ts index 98a62a2b6..56597106b 100644 --- a/UI/Web/src/app/_pipes/publication-status.pipe.ts +++ b/UI/Web/src/app/_pipes/publication-status.pipe.ts @@ -1,4 +1,4 @@ -import {Pipe, PipeTransform} from '@angular/core'; +import { Pipe, PipeTransform, inject } from '@angular/core'; import { PublicationStatus } from '../_models/metadata/publication-status'; import {TranslocoService} from "@jsverse/transloco"; @@ -7,7 +7,8 @@ import {TranslocoService} from "@jsverse/transloco"; standalone: true }) export class PublicationStatusPipe implements PipeTransform { - constructor(private translocoService: TranslocoService) {} + private translocoService = inject(TranslocoService); + transform(value: PublicationStatus): string { switch (value) { diff --git a/UI/Web/src/app/_pipes/read-time-left.pipe.ts b/UI/Web/src/app/_pipes/read-time-left.pipe.ts index 5dd04dc75..4cce0f53f 100644 --- a/UI/Web/src/app/_pipes/read-time-left.pipe.ts +++ b/UI/Web/src/app/_pipes/read-time-left.pipe.ts @@ -1,4 +1,4 @@ -import {Pipe, PipeTransform} from '@angular/core'; +import { Pipe, PipeTransform, inject } from '@angular/core'; import {TranslocoService} from "@jsverse/transloco"; import {HourEstimateRange} from "../_models/series-detail/hour-estimate-range"; @@ -7,8 +7,8 @@ import {HourEstimateRange} from "../_models/series-detail/hour-estimate-range"; standalone: true }) export class ReadTimeLeftPipe implements PipeTransform { + private readonly translocoService = inject(TranslocoService); - constructor(private readonly translocoService: TranslocoService) {} transform(readingTimeLeft: HourEstimateRange, includeLeftLabel = false): string { const hoursLabel = readingTimeLeft.avgHours > 1 diff --git a/UI/Web/src/app/_pipes/read-time.pipe.ts b/UI/Web/src/app/_pipes/read-time.pipe.ts index 1970b2812..a841f4bb6 100644 --- a/UI/Web/src/app/_pipes/read-time.pipe.ts +++ b/UI/Web/src/app/_pipes/read-time.pipe.ts @@ -1,4 +1,4 @@ -import { Pipe, PipeTransform } from '@angular/core'; +import { Pipe, PipeTransform, inject } from '@angular/core'; import {IHasReadingTime} from "../_models/common/i-has-reading-time"; import {TranslocoService} from "@jsverse/transloco"; @@ -7,7 +7,8 @@ import {TranslocoService} from "@jsverse/transloco"; standalone: true }) export class ReadTimePipe implements PipeTransform { - constructor(private translocoService: TranslocoService) {} + private translocoService = inject(TranslocoService); + transform(readingTime: IHasReadingTime): string { if (readingTime.maxHoursToRead === 0 || readingTime.minHoursToRead === 0) { diff --git a/UI/Web/src/app/_pipes/sort-field.pipe.ts b/UI/Web/src/app/_pipes/sort-field.pipe.ts index d032de9c8..c2464935d 100644 --- a/UI/Web/src/app/_pipes/sort-field.pipe.ts +++ b/UI/Web/src/app/_pipes/sort-field.pipe.ts @@ -1,4 +1,4 @@ -import {Pipe, PipeTransform} from '@angular/core'; +import { Pipe, PipeTransform, inject } from '@angular/core'; import {SortField} from "../_models/metadata/series-filter"; import {TranslocoService} from "@jsverse/transloco"; import {ValidFilterEntity} from "../metadata-filter/filter-settings"; @@ -9,9 +9,8 @@ import {PersonSortField} from "../_models/metadata/v2/person-sort-field"; standalone: true }) export class SortFieldPipe implements PipeTransform { + private translocoService = inject(TranslocoService); - constructor(private translocoService: TranslocoService) { - } transform(value: T, entityType: ValidFilterEntity): string { diff --git a/UI/Web/src/app/_pipes/time-ago.pipe.ts b/UI/Web/src/app/_pipes/time-ago.pipe.ts index 9940d4bb7..0c2dca0fa 100644 --- a/UI/Web/src/app/_pipes/time-ago.pipe.ts +++ b/UI/Web/src/app/_pipes/time-ago.pipe.ts @@ -1,4 +1,4 @@ -import {ChangeDetectorRef, NgZone, OnDestroy, Pipe, PipeTransform} from '@angular/core'; +import { ChangeDetectorRef, NgZone, OnDestroy, Pipe, PipeTransform, inject } from '@angular/core'; import {TranslocoService} from "@jsverse/transloco"; /** @@ -34,10 +34,12 @@ and modified standalone: true }) export class TimeAgoPipe implements PipeTransform, OnDestroy { + private readonly changeDetectorRef = inject(ChangeDetectorRef); + private ngZone = inject(NgZone); + private translocoService = inject(TranslocoService); + private timer: number | null = null; - constructor(private readonly changeDetectorRef: ChangeDetectorRef, private ngZone: NgZone, - private translocoService: TranslocoService) {} transform(value: string | Date | null) { if (value === '' || value === null || value === undefined || (typeof value === 'string' && value.split('T')[0] === '0001-01-01')) { diff --git a/UI/Web/src/app/_resolvers/reading-profile.resolver.ts b/UI/Web/src/app/_resolvers/reading-profile.resolver.ts index 1d28adf95..6ba9daef5 100644 --- a/UI/Web/src/app/_resolvers/reading-profile.resolver.ts +++ b/UI/Web/src/app/_resolvers/reading-profile.resolver.ts @@ -1,4 +1,4 @@ -import {Injectable} from '@angular/core'; +import { Injectable, inject } from '@angular/core'; import {ActivatedRouteSnapshot, Resolve, RouterStateSnapshot} from '@angular/router'; import {Observable} from 'rxjs'; import {ReadingProfileService} from "../_services/reading-profile.service"; @@ -7,8 +7,8 @@ import {ReadingProfileService} from "../_services/reading-profile.service"; providedIn: 'root' }) export class ReadingProfileResolver implements Resolve { + private readingProfileService = inject(ReadingProfileService); - constructor(private readingProfileService: ReadingProfileService) {} resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable { // Extract seriesId from route params or parent route diff --git a/UI/Web/src/app/_resolvers/url-filter.resolver.ts b/UI/Web/src/app/_resolvers/url-filter.resolver.ts index 16bc5c752..9dbf786e0 100644 --- a/UI/Web/src/app/_resolvers/url-filter.resolver.ts +++ b/UI/Web/src/app/_resolvers/url-filter.resolver.ts @@ -1,4 +1,4 @@ -import {Injectable} from "@angular/core"; +import { Injectable, inject } from "@angular/core"; import {ActivatedRouteSnapshot, Resolve, RouterStateSnapshot} from "@angular/router"; import {Observable, of} from "rxjs"; import {FilterV2} from "../_models/metadata/v2/filter-v2"; @@ -12,8 +12,8 @@ import {FilterUtilitiesService} from "../shared/_services/filter-utilities.servi providedIn: 'root' }) export class UrlFilterResolver implements Resolve { + private filterUtilitiesService = inject(FilterUtilitiesService); - constructor(private filterUtilitiesService: FilterUtilitiesService) {} resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable { if (!state.url.includes('?')) return of(null); diff --git a/UI/Web/src/app/_services/account.service.ts b/UI/Web/src/app/_services/account.service.ts index 90a890597..499fb81ed 100644 --- a/UI/Web/src/app/_services/account.service.ts +++ b/UI/Web/src/app/_services/account.service.ts @@ -7,7 +7,6 @@ import {Preferences} from '../_models/preferences/preferences'; import {User} from '../_models/user'; import {Router} from '@angular/router'; import {EVENTS, MessageHubService} from './message-hub.service'; -import {ThemeService} from './theme.service'; import {InviteUserResponse} from '../_models/auth/invite-user-response'; import {UserUpdateEvent} from '../_models/events/user-update-event'; import {AgeRating} from '../_models/metadata/age-rating'; @@ -51,7 +50,6 @@ export class AccountService { private readonly httpClient = inject(HttpClient); private readonly router = inject(Router); private readonly messageHub = inject(MessageHubService); - private readonly themeService = inject(ThemeService); baseUrl = environment.apiUrl; userKey = 'kavita-user'; @@ -226,14 +224,6 @@ export class AccountService { if (user) { localStorage.setItem(this.userKey, JSON.stringify(user)); localStorage.setItem(AccountService.lastLoginKey, user.username); - - if (user.preferences && user.preferences.theme) { - this.themeService.setTheme(user.preferences.theme.name); - } else { - this.themeService.setTheme(this.themeService.defaultTheme); - } - } else { - this.themeService.setTheme(this.themeService.defaultTheme); } this.currentUser = user; diff --git a/UI/Web/src/app/_services/action-factory.service.ts b/UI/Web/src/app/_services/action-factory.service.ts index 8bd667b60..4d0cf9384 100644 --- a/UI/Web/src/app/_services/action-factory.service.ts +++ b/UI/Web/src/app/_services/action-factory.service.ts @@ -1,4 +1,4 @@ -import {Injectable} from '@angular/core'; +import { Injectable, inject } from '@angular/core'; import {map, Observable, shareReplay} from 'rxjs'; import {Chapter} from '../_models/chapter'; import {UserCollection} from '../_models/collection-tag'; @@ -180,6 +180,9 @@ export type ActionableEntity = Volume | Series | Chapter | ReadingList | UserCol providedIn: 'root', }) export class ActionFactoryService { + private accountService = inject(AccountService); + private deviceService = inject(DeviceService); + private libraryActions: Array> = []; private seriesActions: Array> = []; private volumeActions: Array> = []; @@ -192,7 +195,7 @@ export class ActionFactoryService { private smartFilterActions: Array> = []; private sideNavHomeActions: Array> = []; - constructor(private accountService: AccountService, private deviceService: DeviceService) { + constructor() { this.accountService.currentUser$.subscribe((_) => { this._resetActions(); }); diff --git a/UI/Web/src/app/_services/annotation.service.ts b/UI/Web/src/app/_services/annotation.service.ts index cb18eb0e8..d9fb3c9f7 100644 --- a/UI/Web/src/app/_services/annotation.service.ts +++ b/UI/Web/src/app/_services/annotation.service.ts @@ -73,6 +73,10 @@ export class AnnotationService { })); } + getAnnotationsForSeries(seriesId: number) { + return this.httpClient.get>(this.baseUrl + 'annotation/all-for-series?seriesId=' + seriesId); + } + createAnnotation(data: Annotation) { return this.httpClient.post(this.baseUrl + 'annotation/create', data).pipe( diff --git a/UI/Web/src/app/_services/chapter.service.ts b/UI/Web/src/app/_services/chapter.service.ts index 6a6f7a600..7b338c268 100644 --- a/UI/Web/src/app/_services/chapter.service.ts +++ b/UI/Web/src/app/_services/chapter.service.ts @@ -1,4 +1,4 @@ -import {Injectable} from '@angular/core'; +import { Injectable, inject } from '@angular/core'; import {environment} from "../../environments/environment"; import {HttpClient} from "@angular/common/http"; import {Chapter} from "../_models/chapter"; @@ -9,11 +9,11 @@ import {ChapterDetailPlus} from "../_models/chapter-detail-plus"; providedIn: 'root' }) export class ChapterService { + private httpClient = inject(HttpClient); + baseUrl = environment.apiUrl; - constructor(private httpClient: HttpClient) { } - getChapterMetadata(chapterId: number) { return this.httpClient.get(this.baseUrl + 'chapter?chapterId=' + chapterId); } diff --git a/UI/Web/src/app/_services/collection-tag.service.ts b/UI/Web/src/app/_services/collection-tag.service.ts index df668f13a..5b13ef052 100644 --- a/UI/Web/src/app/_services/collection-tag.service.ts +++ b/UI/Web/src/app/_services/collection-tag.service.ts @@ -1,5 +1,5 @@ import { HttpClient } from '@angular/common/http'; -import {Injectable} from '@angular/core'; +import { Injectable, inject } from '@angular/core'; import {environment} from 'src/environments/environment'; import {UserCollection} from '../_models/collection-tag'; import {TextResonse} from '../_types/text-response'; @@ -12,11 +12,12 @@ import {AccountService} from "./account.service"; providedIn: 'root' }) export class CollectionTagService { + private httpClient = inject(HttpClient); + private accountService = inject(AccountService); + baseUrl = environment.apiUrl; - constructor(private httpClient: HttpClient, private accountService: AccountService) { } - allCollections(ownedOnly = false) { return this.httpClient.get(this.baseUrl + 'collection?ownedOnly=' + ownedOnly); } diff --git a/UI/Web/src/app/_services/colorscape.service.ts b/UI/Web/src/app/_services/colorscape.service.ts index 73228467b..046f3d04f 100644 --- a/UI/Web/src/app/_services/colorscape.service.ts +++ b/UI/Web/src/app/_services/colorscape.service.ts @@ -2,7 +2,7 @@ import {inject, Injectable} from '@angular/core'; import {DOCUMENT} from '@angular/common'; import {BehaviorSubject, filter, take, tap, timer} from 'rxjs'; import {NavigationEnd, Router} from "@angular/router"; -import {environment} from "../../environments/environment"; +import {AccountService} from "./account.service"; interface ColorSpace { primary: string; @@ -33,10 +33,10 @@ const colorScapeSelector = 'colorscape'; export class ColorscapeService { private readonly document = inject(DOCUMENT); private readonly router = inject(Router); + private readonly accountService = inject(AccountService); private colorSubject = new BehaviorSubject(null); private colorSeedSubject = new BehaviorSubject<{primary: string, complementary: string | null} | null>(null); - public readonly colors$ = this.colorSubject.asObservable(); private minDuration = 1000; // minimum duration private maxDuration = 4000; // maximum duration @@ -52,6 +52,7 @@ export class ColorscapeService { tap(() => this.checkAndResetColorscapeAfterDelay()) ).subscribe(); + } /** @@ -175,7 +176,7 @@ export class ColorscapeService { * @param complementaryColor */ setColorScape(primaryColor: string, complementaryColor: string | null = null) { - if (this.getCssVariable('--colorscape-enabled') === 'false') { + if (this.accountService.currentUserSignal()?.preferences?.colorScapeEnabled === false || this.getCssVariable('--colorscape-enabled') === 'false') { return; } diff --git a/UI/Web/src/app/_services/dashboard.service.ts b/UI/Web/src/app/_services/dashboard.service.ts index 493fae370..d0b41104f 100644 --- a/UI/Web/src/app/_services/dashboard.service.ts +++ b/UI/Web/src/app/_services/dashboard.service.ts @@ -1,4 +1,4 @@ -import {Injectable} from '@angular/core'; +import { Injectable, inject } from '@angular/core'; import {TextResonse} from "../_types/text-response"; import {HttpClient} from "@angular/common/http"; import {environment} from "../../environments/environment"; @@ -8,8 +8,9 @@ import {DashboardStream} from "../_models/dashboard/dashboard-stream"; providedIn: 'root' }) export class DashboardService { + private httpClient = inject(HttpClient); + baseUrl = environment.apiUrl; - constructor(private httpClient: HttpClient) { } getDashboardStreams(visibleOnly = true) { return this.httpClient.get>(this.baseUrl + 'stream/dashboard?visibleOnly=' + visibleOnly); diff --git a/UI/Web/src/app/_services/device.service.ts b/UI/Web/src/app/_services/device.service.ts index 496abf9c2..0d016db6c 100644 --- a/UI/Web/src/app/_services/device.service.ts +++ b/UI/Web/src/app/_services/device.service.ts @@ -1,5 +1,5 @@ import { HttpClient } from '@angular/common/http'; -import { Injectable } from '@angular/core'; +import { Injectable, inject } from '@angular/core'; import { ReplaySubject, shareReplay, tap } from 'rxjs'; import { environment } from 'src/environments/environment'; import { Device } from '../_models/device/device'; @@ -11,6 +11,9 @@ import { AccountService } from './account.service'; providedIn: 'root' }) export class DeviceService { + private httpClient = inject(HttpClient); + private accountService = inject(AccountService); + baseUrl = environment.apiUrl; @@ -18,7 +21,7 @@ export class DeviceService { public devices$ = this.devicesSource.asObservable().pipe(shareReplay()); - constructor(private httpClient: HttpClient, private accountService: AccountService) { + constructor() { // Ensure we are authenticated before we make an authenticated api call. this.accountService.currentUser$.subscribe(user => { if (!user) { diff --git a/UI/Web/src/app/_services/email.service.ts b/UI/Web/src/app/_services/email.service.ts index 5afb62ca7..1523fb52a 100644 --- a/UI/Web/src/app/_services/email.service.ts +++ b/UI/Web/src/app/_services/email.service.ts @@ -1,4 +1,4 @@ -import { Injectable } from '@angular/core'; +import { Injectable, inject } from '@angular/core'; import {environment} from "../../environments/environment"; import {HttpClient} from "@angular/common/http"; import {EmailHistory} from "../_models/email-history"; @@ -7,8 +7,9 @@ import {EmailHistory} from "../_models/email-history"; providedIn: 'root' }) export class EmailService { + private httpClient = inject(HttpClient); + baseUrl = environment.apiUrl; - constructor(private httpClient: HttpClient) { } getEmailHistory() { return this.httpClient.get(`${this.baseUrl}email/all`); diff --git a/UI/Web/src/app/_services/epub-reader-menu.service.ts b/UI/Web/src/app/_services/epub-reader-menu.service.ts index 37a58fa69..529b91386 100644 --- a/UI/Web/src/app/_services/epub-reader-menu.service.ts +++ b/UI/Web/src/app/_services/epub-reader-menu.service.ts @@ -44,6 +44,23 @@ export class EpubReaderMenuService { (ref.componentInstance as ViewEditAnnotationDrawerComponent).mode.set(AnnotationMode.Create); this.isDrawerOpen.set(true); + + // Set CSS variable for drawer height + setTimeout(() => { + var drawerElement = document.querySelector('view-edit-annotation-drawer, app-view-edit-annotation-drawer'); + if (!drawerElement) return; + var setDrawerHeightVar = function() { + if (!drawerElement) return; + var height = (drawerElement as HTMLElement).offsetHeight; + document.documentElement.style.setProperty('--drawer-height', height + 'px'); + }; + setDrawerHeightVar(); + var resizeObserver = new window.ResizeObserver(function() { + setDrawerHeightVar(); + }); + resizeObserver.observe(drawerElement as HTMLElement); + // Optionally store observer for cleanup if needed + }, 0); } @@ -156,6 +173,23 @@ export class EpubReaderMenuService { ref.dismissed.subscribe(() => this.setDrawerClosed()); this.isDrawerOpen.set(true); + + // Set CSS variable for drawer height + setTimeout(() => { + var drawerElement = document.querySelector('view-edit-annotation-drawer, app-view-edit-annotation-drawer'); + if (!drawerElement) return; + var setDrawerHeightVar = function() { + if (!drawerElement) return; + var height = (drawerElement as HTMLElement).offsetHeight; + document.documentElement.style.setProperty('--drawer-height', height + 'px'); + }; + setDrawerHeightVar(); + var resizeObserver = new window.ResizeObserver(function() { + setDrawerHeightVar(); + }); + resizeObserver.observe(drawerElement as HTMLElement); + // Optionally store observer for cleanup if needed + }, 0); } closeAll() { diff --git a/UI/Web/src/app/_services/epub-reader-settings.service.ts b/UI/Web/src/app/_services/epub-reader-settings.service.ts index 75109b4c9..cfdb5f8c5 100644 --- a/UI/Web/src/app/_services/epub-reader-settings.service.ts +++ b/UI/Web/src/app/_services/epub-reader-settings.service.ts @@ -9,7 +9,7 @@ import {ReadingProfile, ReadingProfileKind} from "../_models/preferences/reading import {BookService, FontFamily} from "../book-reader/_services/book.service"; import {ThemeService} from './theme.service'; import {ReadingProfileService} from "./reading-profile.service"; -import {debounceTime, distinctUntilChanged, filter, skip, tap} from "rxjs/operators"; +import {debounceTime, distinctUntilChanged, filter, tap} from "rxjs/operators"; import {BookTheme} from "../_models/preferences/book-theme"; import {DOCUMENT} from "@angular/common"; import {translate} from "@jsverse/transloco"; @@ -335,6 +335,13 @@ export class EpubReaderSettingsService { ? WritingStyle.Vertical : WritingStyle.Horizontal; + // Default back to Col 1 in this case + if (newStyle === WritingStyle.Vertical ) { + if (this._layoutMode() === BookPageLayoutMode.Column2) { + this.updateLayoutMode(BookPageLayoutMode.Column1); + } + } + this._writingStyle.set(newStyle); this.settingsForm.get('bookReaderWritingStyle')!.setValue(newStyle); } @@ -554,6 +561,14 @@ export class EpubReaderSettingsService { takeUntilDestroyed(this.destroyRef) ).subscribe((layoutMode: BookPageLayoutMode) => { this.isUpdatingFromForm = true; + + if (this.writingStyle() === WritingStyle.Vertical && layoutMode === BookPageLayoutMode.Column2) { + this.toastr.info(translate('book-reader.forced-vertical-switch')); + this.isUpdatingFromForm = false; + return; + } + + this._layoutMode.set(layoutMode); this.isUpdatingFromForm = false; }); diff --git a/UI/Web/src/app/_services/external-source.service.ts b/UI/Web/src/app/_services/external-source.service.ts index 5fbc5a397..3f974b430 100644 --- a/UI/Web/src/app/_services/external-source.service.ts +++ b/UI/Web/src/app/_services/external-source.service.ts @@ -1,4 +1,4 @@ -import { Injectable } from '@angular/core'; +import { Injectable, inject } from '@angular/core'; import {environment} from "../../environments/environment"; import { HttpClient } from "@angular/common/http"; import {ExternalSource} from "../_models/sidenav/external-source"; @@ -9,9 +9,10 @@ import {map} from "rxjs/operators"; providedIn: 'root' }) export class ExternalSourceService { + private httpClient = inject(HttpClient); + baseUrl = environment.apiUrl; - constructor(private httpClient: HttpClient) { } getExternalSources() { return this.httpClient.get>(this.baseUrl + 'stream/external-sources'); diff --git a/UI/Web/src/app/_services/filter.service.ts b/UI/Web/src/app/_services/filter.service.ts index 2b9681e90..f5c50cf23 100644 --- a/UI/Web/src/app/_services/filter.service.ts +++ b/UI/Web/src/app/_services/filter.service.ts @@ -1,4 +1,4 @@ -import {Injectable} from '@angular/core'; +import { Injectable, inject } from '@angular/core'; import {FilterV2} from "../_models/metadata/v2/filter-v2"; import {environment} from "../../environments/environment"; import {HttpClient} from "@angular/common/http"; @@ -8,9 +8,10 @@ import {SmartFilter} from "../_models/metadata/v2/smart-filter"; providedIn: 'root' }) export class FilterService { + private httpClient = inject(HttpClient); + baseUrl = environment.apiUrl; - constructor(private httpClient: HttpClient) { } saveFilter(filter: FilterV2) { return this.httpClient.post(this.baseUrl + 'filter/update', filter); diff --git a/UI/Web/src/app/_services/image.service.ts b/UI/Web/src/app/_services/image.service.ts index 8c559b726..7af276266 100644 --- a/UI/Web/src/app/_services/image.service.ts +++ b/UI/Web/src/app/_services/image.service.ts @@ -9,6 +9,9 @@ import {takeUntilDestroyed} from "@angular/core/rxjs-interop"; providedIn: 'root' }) export class ImageService { + private accountService = inject(AccountService); + private themeService = inject(ThemeService); + private readonly destroyRef = inject(DestroyRef); baseUrl = environment.apiUrl; apiKey: string = ''; @@ -20,7 +23,7 @@ export class ImageService { public nextChapterImage = 'assets/images/image-placeholder.dark-min.png'; public noPersonImage = 'assets/images/error-person-missing.dark.min.png'; - constructor(private accountService: AccountService, private themeService: ThemeService) { + constructor() { this.themeService.currentTheme$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(theme => { if (this.themeService.isDarkTheme()) { this.placeholderImage = 'assets/images/image-placeholder.dark-min.png'; diff --git a/UI/Web/src/app/_services/library.service.ts b/UI/Web/src/app/_services/library.service.ts index 5d3a89f0a..7a9d93ed3 100644 --- a/UI/Web/src/app/_services/library.service.ts +++ b/UI/Web/src/app/_services/library.service.ts @@ -1,5 +1,5 @@ import {HttpClient} from '@angular/common/http'; -import {DestroyRef, Injectable} from '@angular/core'; +import { DestroyRef, Injectable, inject } from '@angular/core'; import {of} from 'rxjs'; import {filter, map, tap} from 'rxjs/operators'; import {environment} from 'src/environments/environment'; @@ -14,13 +14,17 @@ import {takeUntilDestroyed} from "@angular/core/rxjs-interop"; providedIn: 'root' }) export class LibraryService { + private httpClient = inject(HttpClient); + private readonly messageHub = inject(MessageHubService); + private readonly destroyRef = inject(DestroyRef); + baseUrl = environment.apiUrl; private libraryNames: {[key:number]: string} | undefined = undefined; private libraryTypes: {[key: number]: LibraryType} | undefined = undefined; - constructor(private httpClient: HttpClient, private readonly messageHub: MessageHubService, private readonly destroyRef: DestroyRef) { + constructor() { this.messageHub.messages$.pipe(takeUntilDestroyed(this.destroyRef), filter(e => e.event === EVENTS.LibraryModified), tap((e) => { console.log('LibraryModified event came in, clearing library name cache'); diff --git a/UI/Web/src/app/_services/localization.service.ts b/UI/Web/src/app/_services/localization.service.ts index 7519a9562..0534fdb3c 100644 --- a/UI/Web/src/app/_services/localization.service.ts +++ b/UI/Web/src/app/_services/localization.service.ts @@ -9,6 +9,8 @@ import {TranslocoService} from "@jsverse/transloco"; providedIn: 'root' }) export class LocalizationService { + private httpClient = inject(HttpClient); + private readonly translocoService = inject(TranslocoService); @@ -17,8 +19,6 @@ export class LocalizationService { private readonly localeSubject = new ReplaySubject(1); public readonly locales$ = this.localeSubject.asObservable(); - constructor(private httpClient: HttpClient) { } - getLocales() { return this.httpClient.get(this.baseUrl + 'locale').pipe(tap(locales => { this.localeSubject.next(locales); diff --git a/UI/Web/src/app/_services/member.service.ts b/UI/Web/src/app/_services/member.service.ts index d93098995..ec6aaa031 100644 --- a/UI/Web/src/app/_services/member.service.ts +++ b/UI/Web/src/app/_services/member.service.ts @@ -1,5 +1,5 @@ import { HttpClient } from '@angular/common/http'; -import { Injectable } from '@angular/core'; +import { Injectable, inject } from '@angular/core'; import { environment } from 'src/environments/environment'; import { Member } from '../_models/auth/member'; import {UserTokenInfo} from "../_models/kavitaplus/user-token-info"; @@ -8,11 +8,11 @@ import {UserTokenInfo} from "../_models/kavitaplus/user-token-info"; providedIn: 'root' }) export class MemberService { + private httpClient = inject(HttpClient); + baseUrl = environment.apiUrl; - constructor(private httpClient: HttpClient) { } - getMembers(includePending: boolean = false) { return this.httpClient.get(this.baseUrl + 'users?includePending=' + includePending); } diff --git a/UI/Web/src/app/_services/metadata.service.ts b/UI/Web/src/app/_services/metadata.service.ts index fe0702219..acbfe37bc 100644 --- a/UI/Web/src/app/_services/metadata.service.ts +++ b/UI/Web/src/app/_services/metadata.service.ts @@ -38,6 +38,8 @@ import {PersonSortField} from "../_models/metadata/v2/person-sort-field"; providedIn: 'root' }) export class MetadataService { + private httpClient = inject(HttpClient); + private readonly translocoService = inject(TranslocoService); private readonly libraryService = inject(LibraryService); @@ -47,11 +49,9 @@ export class MetadataService { baseUrl = environment.apiUrl; private validLanguages: Array = []; private ageRatingPipe = new AgeRatingPipe(); - private mangaFormatPipe = new MangaFormatPipe(this.translocoService); + private mangaFormatPipe = new MangaFormatPipe(); private personRolePipe = new PersonRolePipe(); - constructor(private httpClient: HttpClient) { } - getSeriesMetadataFromPlus(seriesId: number, libraryType: LibraryType) { return this.httpClient.get(this.baseUrl + 'metadata/series-detail-plus?seriesId=' + seriesId + '&libraryType=' + libraryType); } diff --git a/UI/Web/src/app/_services/nav.service.ts b/UI/Web/src/app/_services/nav.service.ts index ce9f2df78..4e48527ea 100644 --- a/UI/Web/src/app/_services/nav.service.ts +++ b/UI/Web/src/app/_services/nav.service.ts @@ -1,5 +1,5 @@ import {DOCUMENT} from '@angular/common'; -import {DestroyRef, inject, Inject, Injectable, Renderer2, RendererFactory2, RendererStyleFlags2} from '@angular/core'; +import { DestroyRef, inject, Injectable, Renderer2, RendererFactory2, RendererStyleFlags2 } from '@angular/core'; import {filter, ReplaySubject, take} from 'rxjs'; import {HttpClient} from "@angular/common/http"; import {environment} from "../../environments/environment"; @@ -34,6 +34,9 @@ interface NavItem { providedIn: 'root' }) export class NavService { + private document = inject(DOCUMENT); + private httpClient = inject(HttpClient); + private readonly accountService = inject(AccountService); private readonly router = inject(Router); @@ -103,7 +106,9 @@ export class NavService { private renderer: Renderer2; baseUrl = environment.apiUrl; - constructor(@Inject(DOCUMENT) private document: Document, rendererFactory: RendererFactory2, private httpClient: HttpClient) { + constructor() { + const rendererFactory = inject(RendererFactory2); + this.renderer = rendererFactory.createRenderer(null, null); // To avoid flashing, let's check if we are authenticated before we show diff --git a/UI/Web/src/app/_services/person.service.ts b/UI/Web/src/app/_services/person.service.ts index bfb312d8a..95c1708d1 100644 --- a/UI/Web/src/app/_services/person.service.ts +++ b/UI/Web/src/app/_services/person.service.ts @@ -1,4 +1,4 @@ -import {Injectable} from '@angular/core'; +import { Injectable, inject } from '@angular/core'; import {HttpClient, HttpParams} from "@angular/common/http"; import {environment} from "../../environments/environment"; import {Person, PersonRole} from "../_models/metadata/person"; @@ -17,11 +17,12 @@ import {PersonSortField} from "../_models/metadata/v2/person-sort-field"; providedIn: 'root' }) export class PersonService { + private httpClient = inject(HttpClient); + private utilityService = inject(UtilityService); + baseUrl = environment.apiUrl; - constructor(private httpClient: HttpClient, private utilityService: UtilityService) { } - updatePerson(person: Person) { return this.httpClient.post(this.baseUrl + "person/update", person); } diff --git a/UI/Web/src/app/_services/reading-list.service.ts b/UI/Web/src/app/_services/reading-list.service.ts index 088263a33..1d778f143 100644 --- a/UI/Web/src/app/_services/reading-list.service.ts +++ b/UI/Web/src/app/_services/reading-list.service.ts @@ -1,5 +1,5 @@ import {HttpClient, HttpParams} from '@angular/common/http'; -import {Injectable} from '@angular/core'; +import { Injectable, inject } from '@angular/core'; import {map} from 'rxjs/operators'; import {environment} from 'src/environments/environment'; import {UtilityService} from '../shared/_services/utility.service'; @@ -14,11 +14,12 @@ import {Action, ActionItem} from './action-factory.service'; providedIn: 'root' }) export class ReadingListService { + private httpClient = inject(HttpClient); + private utilityService = inject(UtilityService); + baseUrl = environment.apiUrl; - constructor(private httpClient: HttpClient, private utilityService: UtilityService) { } - getReadingList(readingListId: number) { return this.httpClient.get(this.baseUrl + 'readinglist?readingListId=' + readingListId); } diff --git a/UI/Web/src/app/_services/recommendation.service.ts b/UI/Web/src/app/_services/recommendation.service.ts index b6795416f..692d92a08 100644 --- a/UI/Web/src/app/_services/recommendation.service.ts +++ b/UI/Web/src/app/_services/recommendation.service.ts @@ -1,5 +1,5 @@ import { HttpClient, HttpParams } from '@angular/common/http'; -import { Injectable } from '@angular/core'; +import { Injectable, inject } from '@angular/core'; import { map } from 'rxjs'; import { environment } from 'src/environments/environment'; import { UtilityService } from '../shared/_services/utility.service'; @@ -10,11 +10,12 @@ import { Series } from '../_models/series'; providedIn: 'root' }) export class RecommendationService { + private httpClient = inject(HttpClient); + private utilityService = inject(UtilityService); + private baseUrl = environment.apiUrl; - constructor(private httpClient: HttpClient, private utilityService: UtilityService) { } - getQuickReads(libraryId: number, pageNum?: number, itemsPerPage?: number) { let params = new HttpParams(); params = this.utilityService.addPaginationIfExists(params, pageNum, itemsPerPage); diff --git a/UI/Web/src/app/_services/review.service.ts b/UI/Web/src/app/_services/review.service.ts index b8635bcf8..112c9823d 100644 --- a/UI/Web/src/app/_services/review.service.ts +++ b/UI/Web/src/app/_services/review.service.ts @@ -1,4 +1,4 @@ -import { Injectable } from '@angular/core'; +import { Injectable, inject } from '@angular/core'; import {UserReview} from "../_single-module/review-card/user-review"; import {environment} from "../../environments/environment"; import {HttpClient} from "@angular/common/http"; @@ -8,11 +8,11 @@ import {Rating} from "../_models/rating"; providedIn: 'root' }) export class ReviewService { + private httpClient = inject(HttpClient); + private baseUrl = environment.apiUrl; - constructor(private httpClient: HttpClient) { } - deleteReview(seriesId: number, chapterId?: number) { if (chapterId) { return this.httpClient.delete(this.baseUrl + `review/chapter?chapterId=${chapterId}`); diff --git a/UI/Web/src/app/_services/scrobbling.service.ts b/UI/Web/src/app/_services/scrobbling.service.ts index cfc7b34ac..24c25964b 100644 --- a/UI/Web/src/app/_services/scrobbling.service.ts +++ b/UI/Web/src/app/_services/scrobbling.service.ts @@ -1,5 +1,5 @@ import {HttpClient, HttpParams} from '@angular/common/http'; -import {Injectable} from '@angular/core'; +import { Injectable, inject } from '@angular/core'; import {map} from 'rxjs/operators'; import {environment} from 'src/environments/environment'; import {TextResonse} from '../_types/text-response'; @@ -22,12 +22,12 @@ export enum ScrobbleProvider { providedIn: 'root' }) export class ScrobblingService { + private httpClient = inject(HttpClient); + private utilityService = inject(UtilityService); + baseUrl = environment.apiUrl; - - constructor(private httpClient: HttpClient, private utilityService: UtilityService) {} - hasTokenExpired(provider: ScrobbleProvider) { return this.httpClient.get(this.baseUrl + 'scrobbling/token-expired?provider=' + provider, TextResonse) .pipe(map(r => r === "true")); diff --git a/UI/Web/src/app/_services/search.service.ts b/UI/Web/src/app/_services/search.service.ts index 4a95fff99..48115bcdb 100644 --- a/UI/Web/src/app/_services/search.service.ts +++ b/UI/Web/src/app/_services/search.service.ts @@ -1,5 +1,5 @@ import { HttpClient } from '@angular/common/http'; -import { Injectable } from '@angular/core'; +import { Injectable, inject } from '@angular/core'; import { of } from 'rxjs'; import { environment } from 'src/environments/environment'; import { SearchResultGroup } from '../_models/search/search-result-group'; @@ -9,11 +9,11 @@ import { Series } from '../_models/series'; providedIn: 'root' }) export class SearchService { + private httpClient = inject(HttpClient); + baseUrl = environment.apiUrl; - constructor(private httpClient: HttpClient) { } - search(term: string, includeChapterAndFiles: boolean = false) { if (term === '') { return of(new SearchResultGroup()); diff --git a/UI/Web/src/app/_services/series.service.ts b/UI/Web/src/app/_services/series.service.ts index 9c436e636..b672f78ad 100644 --- a/UI/Web/src/app/_services/series.service.ts +++ b/UI/Web/src/app/_services/series.service.ts @@ -1,5 +1,5 @@ import {HttpClient, HttpParams} from '@angular/common/http'; -import {Injectable} from '@angular/core'; +import { Injectable, inject } from '@angular/core'; import {Observable} from 'rxjs'; import {map} from 'rxjs/operators'; import {environment} from 'src/environments/environment'; @@ -26,13 +26,14 @@ import {FilterField} from "../_models/metadata/v2/filter-field"; providedIn: 'root' }) export class SeriesService { + private httpClient = inject(HttpClient); + private utilityService = inject(UtilityService); + baseUrl = environment.apiUrl; paginatedResults: PaginatedResult = new PaginatedResult(); paginatedSeriesForTagsResults: PaginatedResult = new PaginatedResult(); - constructor(private httpClient: HttpClient, private utilityService: UtilityService) { } - getAllSeriesV2(pageNum?: number, itemsPerPage?: number, filter?: FilterV2, context: QueryContext = QueryContext.None) { let params = new HttpParams(); params = this.utilityService.addPaginationIfExists(params, pageNum, itemsPerPage); diff --git a/UI/Web/src/app/_services/server.service.ts b/UI/Web/src/app/_services/server.service.ts index 4a71e836e..220eeab6c 100644 --- a/UI/Web/src/app/_services/server.service.ts +++ b/UI/Web/src/app/_services/server.service.ts @@ -1,5 +1,5 @@ import { HttpClient } from '@angular/common/http'; -import { Injectable } from '@angular/core'; +import { Injectable, inject } from '@angular/core'; import { environment } from 'src/environments/environment'; import {ServerInfoSlim} from '../admin/_models/server-info'; import { UpdateVersionEvent } from '../_models/events/update-version-event'; @@ -12,11 +12,11 @@ import {map} from "rxjs/operators"; providedIn: 'root' }) export class ServerService { + private http = inject(HttpClient); + baseUrl = environment.apiUrl; - constructor(private http: HttpClient) { } - getVersion(apiKey: string) { return this.http.get(this.baseUrl + 'plugin/version?apiKey=' + apiKey, TextResonse); } diff --git a/UI/Web/src/app/_services/statistics.service.ts b/UI/Web/src/app/_services/statistics.service.ts index cf80765f2..a805c187f 100644 --- a/UI/Web/src/app/_services/statistics.service.ts +++ b/UI/Web/src/app/_services/statistics.service.ts @@ -1,5 +1,5 @@ import {HttpClient, HttpParams} from '@angular/common/http'; -import {Inject, inject, Injectable} from '@angular/core'; +import {inject, Injectable} from '@angular/core'; import {environment} from 'src/environments/environment'; import {UserReadStatistics} from '../statistics/_models/user-read-statistics'; import {PublicationStatusPipe} from '../_pipes/publication-status.pipe'; @@ -34,13 +34,14 @@ export enum DayOfWeek providedIn: 'root' }) export class StatisticsService { + private httpClient = inject(HttpClient); + private save = inject(SAVER); + baseUrl = environment.apiUrl; translocoService = inject(TranslocoService); - publicationStatusPipe = new PublicationStatusPipe(this.translocoService); - mangaFormatPipe = new MangaFormatPipe(this.translocoService); - - constructor(private httpClient: HttpClient, @Inject(SAVER) private save: Saver) { } + publicationStatusPipe = new PublicationStatusPipe(); + mangaFormatPipe = new MangaFormatPipe(); getUserStatistics(userId: number, libraryIds: Array = []) { const url = `${this.baseUrl}stats/user/${userId}/read`; diff --git a/UI/Web/src/app/_services/theme.service.ts b/UI/Web/src/app/_services/theme.service.ts index 3e186f8ac..681b8662b 100644 --- a/UI/Web/src/app/_services/theme.service.ts +++ b/UI/Web/src/app/_services/theme.service.ts @@ -1,17 +1,9 @@ import {DOCUMENT} from '@angular/common'; -import { HttpClient } from '@angular/common/http'; -import { - DestroyRef, - inject, - Inject, - Injectable, - Renderer2, - RendererFactory2, - SecurityContext -} from '@angular/core'; +import {HttpClient} from '@angular/common/http'; +import {DestroyRef, effect, inject, Injectable, Renderer2, RendererFactory2, SecurityContext} from '@angular/core'; import {DomSanitizer} from '@angular/platform-browser'; import {ToastrService} from 'ngx-toastr'; -import {filter, map, ReplaySubject, take, tap} from 'rxjs'; +import {map, ReplaySubject, take, tap} from 'rxjs'; import {environment} from 'src/environments/environment'; import {ConfirmService} from '../shared/confirm.service'; import {NotificationProgressEvent} from '../_models/events/notification-progress-event'; @@ -23,15 +15,21 @@ import {translate} from "@jsverse/transloco"; import {DownloadableSiteTheme} from "../_models/theme/downloadable-site-theme"; import {NgxFileDropEntry} from "ngx-file-drop"; import {SiteThemeUpdatedEvent} from "../_models/events/site-theme-updated-event"; -import {NavigationEnd, Router} from "@angular/router"; import {ColorscapeService} from "./colorscape.service"; import {ColorScape} from "../_models/theme/colorscape"; -import {debounceTime} from "rxjs/operators"; +import {AccountService} from "./account.service"; @Injectable({ providedIn: 'root' }) export class ThemeService { + private document = inject(DOCUMENT); + private httpClient = inject(HttpClient); + private domSanitizer = inject(DomSanitizer); + private confirmService = inject(ConfirmService); + private toastr = inject(ToastrService); + private accountService = inject(AccountService); + private readonly destroyRef = inject(DestroyRef); private readonly colorTransitionService = inject(ColorscapeService); @@ -44,7 +42,7 @@ export class ThemeService { private themesSource = new ReplaySubject(1); public themes$ = this.themesSource.asObservable(); - + private darkModeSource = new ReplaySubject(1); public isDarkMode$ = this.darkModeSource.asObservable(); @@ -57,9 +55,10 @@ export class ThemeService { private baseUrl = environment.apiUrl; - constructor(rendererFactory: RendererFactory2, @Inject(DOCUMENT) private document: Document, private httpClient: HttpClient, - messageHub: MessageHubService, private domSanitizer: DomSanitizer, private confirmService: ConfirmService, private toastr: ToastrService, - private router: Router) { + constructor() { + const rendererFactory = inject(RendererFactory2); + const messageHub = inject(MessageHubService); + this.renderer = rendererFactory.createRenderer(null, null); messageHub.messages$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(message => { @@ -83,8 +82,15 @@ export class ThemeService { }); } + }); - + effect(() => { + const user = this.accountService.currentUserSignal(); + if (user?.preferences && user?.preferences.theme) { + this.setTheme(user.preferences.theme.name); + } else { + this.setTheme(this.defaultTheme); + } }); } diff --git a/UI/Web/src/app/_services/toggle.service.ts b/UI/Web/src/app/_services/toggle.service.ts index 0ad9813e3..1770fc827 100644 --- a/UI/Web/src/app/_services/toggle.service.ts +++ b/UI/Web/src/app/_services/toggle.service.ts @@ -1,4 +1,4 @@ -import {Injectable} from '@angular/core'; +import { Injectable, inject } from '@angular/core'; import {NavigationStart, Router} from '@angular/router'; import {filter, ReplaySubject, take} from 'rxjs'; @@ -13,7 +13,9 @@ export class ToggleService { private toggleStateSource: ReplaySubject = new ReplaySubject(1); public toggleState$ = this.toggleStateSource.asObservable(); - constructor(router: Router) { + constructor() { + const router = inject(Router); + router.events .pipe(filter(event => event instanceof NavigationStart)) .subscribe((event) => { diff --git a/UI/Web/src/app/_services/upload.service.ts b/UI/Web/src/app/_services/upload.service.ts index f2a811161..20f9d2439 100644 --- a/UI/Web/src/app/_services/upload.service.ts +++ b/UI/Web/src/app/_services/upload.service.ts @@ -10,12 +10,12 @@ import {tap} from "rxjs"; providedIn: 'root' }) export class UploadService { + private httpClient = inject(HttpClient); + private baseUrl = environment.apiUrl; private readonly toastr = inject(ToastrService); - constructor(private httpClient: HttpClient) { } - uploadByUrl(url: string) { return this.httpClient.post(this.baseUrl + 'upload/upload-by-url', {url}, TextResonse); diff --git a/UI/Web/src/app/_services/volume.service.ts b/UI/Web/src/app/_services/volume.service.ts index 8c9f9e17e..a74e3bf33 100644 --- a/UI/Web/src/app/_services/volume.service.ts +++ b/UI/Web/src/app/_services/volume.service.ts @@ -1,4 +1,4 @@ -import { Injectable } from '@angular/core'; +import { Injectable, inject } from '@angular/core'; import {environment} from "../../environments/environment"; import { HttpClient } from "@angular/common/http"; import {Volume} from "../_models/volume"; @@ -8,11 +8,11 @@ import {TextResonse} from "../_types/text-response"; providedIn: 'root' }) export class VolumeService { + private httpClient = inject(HttpClient); + baseUrl = environment.apiUrl; - constructor(private httpClient: HttpClient) { } - getVolumeMetadata(volumeId: number) { return this.httpClient.get(this.baseUrl + 'volume?volumeId=' + volumeId); } diff --git a/UI/Web/src/app/_single-module/age-rating-image/age-rating-image.component.html b/UI/Web/src/app/_single-module/age-rating-image/age-rating-image.component.html index 2be9b618d..e6a9d6b00 100644 --- a/UI/Web/src/app/_single-module/age-rating-image/age-rating-image.component.html +++ b/UI/Web/src/app/_single-module/age-rating-image/age-rating-image.component.html @@ -1 +1 @@ - + diff --git a/UI/Web/src/app/_single-module/annotations-tab/annotations-tab.component.html b/UI/Web/src/app/_single-module/annotations-tab/annotations-tab.component.html index 0135af417..16b318bf3 100644 --- a/UI/Web/src/app/_single-module/annotations-tab/annotations-tab.component.html +++ b/UI/Web/src/app/_single-module/annotations-tab/annotations-tab.component.html @@ -1,9 +1,11 @@
    - - -
    - -
    -
    -
    + +
    + @for(item of scroll.viewPortItems; let idx = $index; track item.id) { +
    + +
    + } +
    +
    diff --git a/UI/Web/src/app/_single-module/annotations-tab/annotations-tab.component.ts b/UI/Web/src/app/_single-module/annotations-tab/annotations-tab.component.ts index cf46374cf..f1a47beb0 100644 --- a/UI/Web/src/app/_single-module/annotations-tab/annotations-tab.component.ts +++ b/UI/Web/src/app/_single-module/annotations-tab/annotations-tab.component.ts @@ -1,23 +1,26 @@ -import {Component, input} from '@angular/core'; -import {CarouselReelComponent} from "../../carousel/_components/carousel-reel/carousel-reel.component"; +import {ChangeDetectionStrategy, Component, input} from '@angular/core'; import {TranslocoDirective} from "@jsverse/transloco"; import {Annotation} from "../../book-reader/_models/annotations/annotation"; import { AnnotationCardComponent } from "../../book-reader/_components/_annotations/annotation-card/annotation-card.component"; +import {VirtualScrollerModule} from "@iharbeck/ngx-virtual-scroller"; @Component({ selector: 'app-annotations-tab', imports: [ - CarouselReelComponent, TranslocoDirective, - AnnotationCardComponent + AnnotationCardComponent, + VirtualScrollerModule ], templateUrl: './annotations-tab.component.html', - styleUrl: './annotations-tab.component.scss' + styleUrl: './annotations-tab.component.scss', + changeDetection: ChangeDetectionStrategy.OnPush }) export class AnnotationsTabComponent { annotations = input.required(); + scrollingBlock = input.required(); + displaySeries = input(false); } diff --git a/UI/Web/src/app/_single-module/card-actionables/card-actionables.component.html b/UI/Web/src/app/_single-module/card-actionables/card-actionables.component.html index ff7cac714..210e89a56 100644 --- a/UI/Web/src/app/_single-module/card-actionables/card-actionables.component.html +++ b/UI/Web/src/app/_single-module/card-actionables/card-actionables.component.html @@ -1,20 +1,20 @@ @if (actions.length > 0) { @if ((utilityService.activeBreakpoint$ | async)! <= Breakpoint.Tablet) { - } @else {
    -
    - +
    @@ -45,7 +45,7 @@ }
    - +
    } diff --git a/UI/Web/src/app/_single-module/card-actionables/card-actionables.component.scss b/UI/Web/src/app/_single-module/card-actionables/card-actionables.component.scss index 19a986986..34b611b9f 100644 --- a/UI/Web/src/app/_single-module/card-actionables/card-actionables.component.scss +++ b/UI/Web/src/app/_single-module/card-actionables/card-actionables.component.scss @@ -42,7 +42,3 @@ float: right; padding: var(--bs-dropdown-item-padding-y) 0; } - -.btn { - padding: 5px; -} diff --git a/UI/Web/src/app/_single-module/cover-image/cover-image.component.html b/UI/Web/src/app/_single-module/cover-image/cover-image.component.html index d4ce0a5b1..cd350ff01 100644 --- a/UI/Web/src/app/_single-module/cover-image/cover-image.component.html +++ b/UI/Web/src/app/_single-module/cover-image/cover-image.component.html @@ -1,8 +1,8 @@ @if(mobileSeriesImgBackground === 'true') { - + } @else { - + }
    @@ -18,7 +18,7 @@ @if (entity.pagesRead < entity.pages && entity.pagesRead > 0) {
    - +
    @if (continueTitle !== '') {
    diff --git a/UI/Web/src/app/_single-module/details-tab/details-tab.component.html b/UI/Web/src/app/_single-module/details-tab/details-tab.component.html index be0457481..4da6289c8 100644 --- a/UI/Web/src/app/_single-module/details-tab/details-tab.component.html +++ b/UI/Web/src/app/_single-module/details-tab/details-tab.component.html @@ -41,7 +41,7 @@

    {{t('format-title')}}

    - {{format | mangaFormat }} + {{format | mangaFormat }}
    } @@ -80,7 +80,7 @@
    + [errorImage]="imageService.errorWebLinkImage" /> @@ -94,7 +94,7 @@
    - +
    @@ -102,7 +102,7 @@
    - +
    @@ -110,7 +110,7 @@
    - +
    @@ -119,7 +119,7 @@
    - +
    @@ -127,7 +127,7 @@
    - +
    @@ -135,7 +135,7 @@
    - +
    @@ -143,7 +143,7 @@
    - +
    @@ -151,7 +151,7 @@
    - +
    @@ -159,7 +159,7 @@
    - +
    @@ -167,7 +167,7 @@
    - +
    @@ -175,7 +175,7 @@
    - +
    @@ -183,7 +183,7 @@
    - +
    diff --git a/UI/Web/src/app/_single-module/edit-chapter-modal/edit-chapter-modal.component.html b/UI/Web/src/app/_single-module/edit-chapter-modal/edit-chapter-modal.component.html index 2b271bddf..f346768c5 100644 --- a/UI/Web/src/app/_single-module/edit-chapter-modal/edit-chapter-modal.component.html +++ b/UI/Web/src/app/_single-module/edit-chapter-modal/edit-chapter-modal.component.html @@ -1,7 +1,7 @@ - +
    diff --git a/UI/Web/src/app/announcements/_components/new-update-modal/new-update-modal.component.html b/UI/Web/src/app/announcements/_components/new-update-modal/new-update-modal.component.html index 8f71f69a6..a1afbe0ad 100644 --- a/UI/Web/src/app/announcements/_components/new-update-modal/new-update-modal.component.html +++ b/UI/Web/src/app/announcements/_components/new-update-modal/new-update-modal.component.html @@ -4,7 +4,7 @@
    diff --git a/UI/Web/src/app/announcements/_components/update-notification/update-notification-modal.component.ts b/UI/Web/src/app/announcements/_components/update-notification/update-notification-modal.component.ts index 01f7321d6..4517dcffc 100644 --- a/UI/Web/src/app/announcements/_components/update-notification/update-notification-modal.component.ts +++ b/UI/Web/src/app/announcements/_components/update-notification/update-notification-modal.component.ts @@ -1,7 +1,7 @@ -import {ChangeDetectionStrategy, Component, Input, OnInit} from '@angular/core'; +import {ChangeDetectionStrategy, Component, inject, Input, OnInit} from '@angular/core'; import {NgbActiveModal, NgbModalModule} from '@ng-bootstrap/ng-bootstrap'; import {UpdateVersionEvent} from 'src/app/_models/events/update-version-event'; -import {CommonModule} from "@angular/common"; + import {TranslocoDirective} from "@jsverse/transloco"; import {WikiLink} from "../../../_models/wiki"; import {ChangelogUpdateItemComponent} from "../changelog-update-item/changelog-update-item.component"; @@ -9,20 +9,19 @@ import {ChangelogUpdateItemComponent} from "../changelog-update-item/changelog-u @Component({ selector: 'app-update-notification-modal', - imports: [CommonModule, NgbModalModule, TranslocoDirective, ChangelogUpdateItemComponent], + imports: [NgbModalModule, TranslocoDirective, ChangelogUpdateItemComponent], templateUrl: './update-notification-modal.component.html', styleUrls: ['./update-notification-modal.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush }) export class UpdateNotificationModalComponent implements OnInit { + private readonly modal = inject(NgbActiveModal); @Input({required: true}) updateData!: UpdateVersionEvent; updateUrl: string = WikiLink.UpdateNative; // TODO: I think I can remove this and just use NewUpdateModalComponent instead which handles both Nightly/Stable - constructor(public modal: NgbActiveModal) { } - ngOnInit() { if (this.updateData.isDocker) { this.updateUrl = WikiLink.UpdateDocker; diff --git a/UI/Web/src/app/app.component.html b/UI/Web/src/app/app.component.html index ac8c904da..82c83e69d 100644 --- a/UI/Web/src/app/app.component.html +++ b/UI/Web/src/app/app.component.html @@ -3,12 +3,12 @@ @if (currentUser && (navService.navbarVisible$ | async) === true) {
    - +
    } } - + @let sideNavVisible = navService.sideNavVisibility$ | async; @let sideNavCollapsed = navService.sideNavCollapsed$ | async; @@ -17,9 +17,9 @@
    @if (sideNavVisible) { @if(usePreferenceSideNav) { - + } @else { - + } } @@ -29,11 +29,11 @@
    - +
    } @else { - + }
    diff --git a/UI/Web/src/app/app.component.ts b/UI/Web/src/app/app.component.ts index 485fe30f5..006642d00 100644 --- a/UI/Web/src/app/app.component.ts +++ b/UI/Web/src/app/app.component.ts @@ -50,7 +50,10 @@ export class AppComponent implements OnInit { transitionState$!: Observable; - constructor(ratingConfig: NgbRatingConfig, modalConfig: NgbModalConfig) { + constructor() { + const ratingConfig = inject(NgbRatingConfig); + const modalConfig = inject(NgbModalConfig); + modalConfig.fullscreen = 'lg'; diff --git a/UI/Web/src/app/book-reader/_components/_annotations/annotation-card/annotation-card.component.html b/UI/Web/src/app/book-reader/_components/_annotations/annotation-card/annotation-card.component.html index 2f1586f91..f92e228e3 100644 --- a/UI/Web/src/app/book-reader/_components/_annotations/annotation-card/annotation-card.component.html +++ b/UI/Web/src/app/book-reader/_components/_annotations/annotation-card/annotation-card.component.html @@ -1,5 +1,5 @@ -
    +
    {{ annotation().ownerUsername }} @@ -7,7 +7,7 @@
    {{ annotation().createdUtc | utcToLocaleDate | date: 'shortDate' }}
    -
    +

    {{annotation().selectedText}}

    @@ -16,7 +16,7 @@
    @let content = annotation().comment; @if (content !== '\"\"') { - + } @else { {{null | defaultValue}} } @@ -24,15 +24,6 @@
    diff --git a/UI/Web/src/app/book-reader/_components/_annotations/annotation-card/annotation-card.component.scss b/UI/Web/src/app/book-reader/_components/_annotations/annotation-card/annotation-card.component.scss index 0ba4d486a..4e032c440 100644 --- a/UI/Web/src/app/book-reader/_components/_annotations/annotation-card/annotation-card.component.scss +++ b/UI/Web/src/app/book-reader/_components/_annotations/annotation-card/annotation-card.component.scss @@ -1,10 +1,16 @@ .annotation-card { - max-width: 400px; + max-width: 25rem; + width: 25rem; + + .card-body { + height: 7.78rem; + overflow: auto; + } } .content-quote { color: var(--drawer-text-color); - max-height: 320px; + max-height: 20rem; overflow: hidden; display: -webkit-box; line-clamp: 2; @@ -12,6 +18,13 @@ -webkit-box-orient: vertical; } +.spoilers { + filter: blur(3px); +} + :host ::ng-deep quill-view { color: var(--drawer-text-color); } +:host ::ng-deep .ql-editor { + padding: 0; +} diff --git a/UI/Web/src/app/book-reader/_components/_annotations/annotation-card/annotation-card.component.ts b/UI/Web/src/app/book-reader/_components/_annotations/annotation-card/annotation-card.component.ts index 865bf7a6f..6ec77577a 100644 --- a/UI/Web/src/app/book-reader/_components/_annotations/annotation-card/annotation-card.component.ts +++ b/UI/Web/src/app/book-reader/_components/_annotations/annotation-card/annotation-card.component.ts @@ -12,7 +12,7 @@ import { import {Annotation} from "../../../_models/annotations/annotation"; import {UtcToLocaleDatePipe} from "../../../../_pipes/utc-to-locale-date.pipe"; import {QuillViewComponent} from "ngx-quill"; -import {DatePipe, NgStyle} from "@angular/common"; +import {DatePipe, NgClass, NgStyle} from "@angular/common"; import {translate, TranslocoDirective} from "@jsverse/transloco"; import {ConfirmService} from "../../../../shared/confirm.service"; import {AnnotationService} from "../../../../_services/annotation.service"; @@ -31,7 +31,8 @@ import {ActivatedRoute, Router, RouterLink} from "@angular/router"; TranslocoDirective, DefaultValuePipe, NgStyle, - RouterLink + RouterLink, + NgClass ], templateUrl: './annotation-card.component.html', styleUrl: './annotation-card.component.scss', @@ -50,6 +51,10 @@ export class AnnotationCardComponent { annotation = model.required(); allowEdit = input(true); showPageLink = input(true); + /** + * If sizes should be forced. Turned of in drawer to account for manual resize + */ + forceSize = input(true); /** * Redirects to the reader with annotation in view */ @@ -59,6 +64,7 @@ export class AnnotationCardComponent { @Output() navigate = new EventEmitter(); titleColor: Signal; + hasClicked = model(false); constructor() { diff --git a/UI/Web/src/app/book-reader/_components/_annotations/highlight-bar/highlight-bar.component.html b/UI/Web/src/app/book-reader/_components/_annotations/highlight-bar/highlight-bar.component.html index 957c4dbab..e9bed0e2d 100644 --- a/UI/Web/src/app/book-reader/_components/_annotations/highlight-bar/highlight-bar.component.html +++ b/UI/Web/src/app/book-reader/_components/_annotations/highlight-bar/highlight-bar.component.html @@ -32,7 +32,7 @@ [selected]="slot.slotNumber === selectedSlotIndex()" (selectPicker)="selectSlot(index, slot)" [editMode]="isEditMode()" - [canChangeEditMode]="canChangeEditMode()" + [canChangeEditMode]="allowEditMode()" (editModeChange)="isEditMode.set($event)" [first]="$first" [last]="$last" @@ -41,12 +41,14 @@
    } - @if (desktopLayout()) { + @if (desktopLayout() && allowEditMode()) { } diff --git a/UI/Web/src/app/book-reader/_components/_annotations/highlight-bar/highlight-bar.component.ts b/UI/Web/src/app/book-reader/_components/_annotations/highlight-bar/highlight-bar.component.ts index 905a203d5..8eb8d4f10 100644 --- a/UI/Web/src/app/book-reader/_components/_annotations/highlight-bar/highlight-bar.component.ts +++ b/UI/Web/src/app/book-reader/_components/_annotations/highlight-bar/highlight-bar.component.ts @@ -31,7 +31,7 @@ export class HighlightBarComponent { isCollapsed = model(true); canCollapse = model(true); isEditMode = model(false); - canChangeEditMode = model(true); + allowEditMode = model(true); slots = this.annotationService.slots; @@ -54,7 +54,7 @@ export class HighlightBarComponent { } toggleEditMode() { - if (!this.canChangeEditMode()) return; + if (!this.allowEditMode()) return; const existingEdit = this.isEditMode(); this.isEditMode.set(!existingEdit); diff --git a/UI/Web/src/app/book-reader/_components/_drawers/epub-setting-drawer/epub-setting-drawer.component.html b/UI/Web/src/app/book-reader/_components/_drawers/epub-setting-drawer/epub-setting-drawer.component.html index 390d12d88..828be4605 100644 --- a/UI/Web/src/app/book-reader/_components/_drawers/epub-setting-drawer/epub-setting-drawer.component.html +++ b/UI/Web/src/app/book-reader/_components/_drawers/epub-setting-drawer/epub-setting-drawer.component.html @@ -1,20 +1,21 @@
    -
    +
    {{t('title')}}
    - +
    @let sId = seriesId(); @let rp = readingProfile(); @if (sId && rp) { - + /> }
    diff --git a/UI/Web/src/app/book-reader/_components/_drawers/epub-setting-drawer/epub-setting-drawer.component.scss b/UI/Web/src/app/book-reader/_components/_drawers/epub-setting-drawer/epub-setting-drawer.component.scss index 5cec79d06..7e6e64c65 100644 --- a/UI/Web/src/app/book-reader/_components/_drawers/epub-setting-drawer/epub-setting-drawer.component.scss +++ b/UI/Web/src/app/book-reader/_components/_drawers/epub-setting-drawer/epub-setting-drawer.component.scss @@ -4,3 +4,12 @@ display: flex; flex-direction: column; } + +.drawer-text i { + color: var(--drawer-text-color); + font-size: 16px; +} + +.drawer-text:hover i { + color: var(--drawer-text-color) +} diff --git a/UI/Web/src/app/book-reader/_components/_drawers/view-annotations-drawer/view-annotations-drawer.component.html b/UI/Web/src/app/book-reader/_components/_drawers/view-annotations-drawer/view-annotations-drawer.component.html index ccc26f8dc..a2d72d967 100644 --- a/UI/Web/src/app/book-reader/_components/_drawers/view-annotations-drawer/view-annotations-drawer.component.html +++ b/UI/Web/src/app/book-reader/_components/_drawers/view-annotations-drawer/view-annotations-drawer.component.html @@ -1,14 +1,24 @@ + + +
    {{t('title')}}
    - +
    - @if (annotations.length > FilterAfter) { + @if (annotations().length > FilterAfter) {
    @@ -20,7 +30,7 @@ } @for(annotation of annotations() | filter: filterList; track annotation.comment + annotation.highlightColor + annotation.containsSpolier) { - + } @empty {

    {{t('no-data')}}

    diff --git a/UI/Web/src/app/book-reader/_components/_drawers/view-annotations-drawer/view-annotations-drawer.component.scss b/UI/Web/src/app/book-reader/_components/_drawers/view-annotations-drawer/view-annotations-drawer.component.scss index 977ab17b5..bb7517052 100644 --- a/UI/Web/src/app/book-reader/_components/_drawers/view-annotations-drawer/view-annotations-drawer.component.scss +++ b/UI/Web/src/app/book-reader/_components/_drawers/view-annotations-drawer/view-annotations-drawer.component.scss @@ -6,4 +6,12 @@ flex-direction: column; } +.drawer-text i { + color: var(--drawer-text-color); + font-size: 16px; +} + +.drawer-text:hover i { + color: var(--drawer-text-color) +} diff --git a/UI/Web/src/app/book-reader/_components/_drawers/view-annotations-drawer/view-annotations-drawer.component.ts b/UI/Web/src/app/book-reader/_components/_drawers/view-annotations-drawer/view-annotations-drawer.component.ts index e71b1e62c..35cb540d8 100644 --- a/UI/Web/src/app/book-reader/_components/_drawers/view-annotations-drawer/view-annotations-drawer.component.ts +++ b/UI/Web/src/app/book-reader/_components/_drawers/view-annotations-drawer/view-annotations-drawer.component.ts @@ -6,6 +6,10 @@ import {Annotation} from "../../../_models/annotations/annotation"; import {AnnotationService} from "../../../../_services/annotation.service"; import {FilterPipe} from "../../../../_pipes/filter.pipe"; import {FormControl, FormGroup, ReactiveFormsModule} from "@angular/forms"; +import { + OffCanvasResizeComponent, + ResizeMode +} from "../../../../shared/_components/off-canvas-resize/off-canvas-resize.component"; @Component({ selector: 'app-view-annotations-drawer', @@ -13,7 +17,8 @@ import {FormControl, FormGroup, ReactiveFormsModule} from "@angular/forms"; TranslocoDirective, AnnotationCardComponent, FilterPipe, - ReactiveFormsModule + ReactiveFormsModule, + OffCanvasResizeComponent ], templateUrl: './view-annotations-drawer.component.html', styleUrl: './view-annotations-drawer.component.scss', @@ -30,7 +35,7 @@ export class ViewAnnotationsDrawerComponent { formGroup = new FormGroup({ filter: new FormControl('', []) }); - readonly FilterAfter = 6; + readonly FilterAfter = 4; handleDelete(annotation: Annotation) { this.annotationService.delete(annotation.id).subscribe(); @@ -50,4 +55,7 @@ export class ViewAnnotationsDrawerComponent { return listItem.comment.toLowerCase().indexOf(query) >= 0 || listItem.pageNumber.toString().indexOf(query) >= 0 || (listItem.selectedText ?? '').toLowerCase().indexOf(query) >= 0; } + + protected readonly window = window; + protected readonly ResizeMode = ResizeMode; } diff --git a/UI/Web/src/app/book-reader/_components/_drawers/view-bookmarks-drawer/view-bookmark-drawer.component.html b/UI/Web/src/app/book-reader/_components/_drawers/view-bookmarks-drawer/view-bookmark-drawer.component.html index 95cade611..017b6af20 100644 --- a/UI/Web/src/app/book-reader/_components/_drawers/view-bookmarks-drawer/view-bookmark-drawer.component.html +++ b/UI/Web/src/app/book-reader/_components/_drawers/view-bookmarks-drawer/view-bookmark-drawer.component.html @@ -3,7 +3,9 @@
    {{t('title')}}
    - +
    diff --git a/UI/Web/src/app/book-reader/_components/_drawers/view-bookmarks-drawer/view-bookmark-drawer.component.scss b/UI/Web/src/app/book-reader/_components/_drawers/view-bookmarks-drawer/view-bookmark-drawer.component.scss index f31bffc12..f8ae0d0c6 100644 --- a/UI/Web/src/app/book-reader/_components/_drawers/view-bookmarks-drawer/view-bookmark-drawer.component.scss +++ b/UI/Web/src/app/book-reader/_components/_drawers/view-bookmarks-drawer/view-bookmark-drawer.component.scss @@ -5,6 +5,15 @@ flex-direction: column; } +.drawer-text i { + color: var(--drawer-text-color); + font-size: 16px; +} + +.drawer-text:hover i { + color: var(--drawer-text-color) +} + .bookmark-item { display: flex; background: var(--bs-dark, #2b2b2b); diff --git a/UI/Web/src/app/book-reader/_components/_drawers/view-edit-annotation-drawer/view-edit-annotation-drawer.component.html b/UI/Web/src/app/book-reader/_components/_drawers/view-edit-annotation-drawer/view-edit-annotation-drawer.component.html index 7fa69440c..54c148858 100644 --- a/UI/Web/src/app/book-reader/_components/_drawers/view-edit-annotation-drawer/view-edit-annotation-drawer.component.html +++ b/UI/Web/src/app/book-reader/_components/_drawers/view-edit-annotation-drawer/view-edit-annotation-drawer.component.html @@ -1,6 +1,13 @@ -
    + + +
    @@ -27,7 +34,7 @@ }
    -
    +
    @if (isEditOrCreateMode() && formGroup) {
    @@ -41,6 +48,27 @@ {{t('contains-spoilers-label')}}
    } + @switch (mode()) { + @case (AnnotationMode.Create) { + + } + @case (AnnotationMode.View) { + @let an = annotation(); + @if (an) { +
    +
    + {{ an.ownerUsername }} +
    +
    {{ an.createdUtc | utcToLocaleDate | date: 'shortDate' }}
    +
    + + @if (an.ownerUsername === accountService.currentUserSignal()?.username) { + + } + + } + } + }
    @@ -57,42 +85,34 @@ }
    -
    - @if (annotation() && formGroup) { - -
    -
    -
    -

    -
    - {{annotation()! | pageChapterLabel}} -
    -
    - - - -
    - @if (isEditOrCreateMode()) { - - - } @else { - - } -
    - - @if (mode() === AnnotationMode.Create) { -
    - +
    + @if (annotation() && formGroup) { + +
    +
    +
    +

    + {{annotation()! | pageChapterLabel}} +
    +
    + + + +
    + @if (isEditOrCreateMode()) { + + } @else { + } +
    - - } + + } -
    +
    diff --git a/UI/Web/src/app/book-reader/_components/_drawers/view-edit-annotation-drawer/view-edit-annotation-drawer.component.scss b/UI/Web/src/app/book-reader/_components/_drawers/view-edit-annotation-drawer/view-edit-annotation-drawer.component.scss index eb96a89e7..4573511c7 100644 --- a/UI/Web/src/app/book-reader/_components/_drawers/view-edit-annotation-drawer/view-edit-annotation-drawer.component.scss +++ b/UI/Web/src/app/book-reader/_components/_drawers/view-edit-annotation-drawer/view-edit-annotation-drawer.component.scss @@ -45,4 +45,9 @@ $green-color: rgba(34, 197, 94); background-color: $green-color; } +::ng-deep .ql-editor { + height: calc(var(--drawer-height) - 278px); + overflow: auto; +} + diff --git a/UI/Web/src/app/book-reader/_components/_drawers/view-edit-annotation-drawer/view-edit-annotation-drawer.component.ts b/UI/Web/src/app/book-reader/_components/_drawers/view-edit-annotation-drawer/view-edit-annotation-drawer.component.ts index f29eaf532..5cc1e284a 100644 --- a/UI/Web/src/app/book-reader/_components/_drawers/view-edit-annotation-drawer/view-edit-annotation-drawer.component.ts +++ b/UI/Web/src/app/book-reader/_components/_drawers/view-edit-annotation-drawer/view-edit-annotation-drawer.component.ts @@ -23,13 +23,16 @@ import {HighlightBarComponent} from "../../_annotations/highlight-bar/highlight- import {SlotColorPipe} from "../../../../_pipes/slot-color.pipe"; import {User} from "../../../../_models/user"; import {DomSanitizer, SafeHtml} from "@angular/platform-browser"; -import {DOCUMENT, NgStyle} from "@angular/common"; +import {DatePipe, DOCUMENT, NgStyle} from "@angular/common"; import {SafeHtmlPipe} from "../../../../_pipes/safe-html.pipe"; import {EpubHighlightService} from "../../../../_services/epub-highlight.service"; import {PageChapterLabelPipe} from "../../../../_pipes/page-chapter-label.pipe"; import {UserBreakpoint, UtilityService} from "../../../../shared/_services/utility.service"; import {QuillTheme, QuillWrapperComponent} from "../../quill-wrapper/quill-wrapper.component"; import {ContentChange, QuillViewComponent} from "ngx-quill"; +import {UtcToLocaleDatePipe} from "../../../../_pipes/utc-to-locale-date.pipe"; +import {AccountService} from "../../../../_services/account.service"; +import {OffCanvasResizeComponent, ResizeMode} from "../../../../shared/_components/off-canvas-resize/off-canvas-resize.component"; export enum AnnotationMode { View = 0, @@ -49,13 +52,17 @@ const INIT_HIGHLIGHT_DELAY = 200; NgStyle, PageChapterLabelPipe, QuillWrapperComponent, - QuillViewComponent + QuillViewComponent, + DatePipe, + UtcToLocaleDatePipe, + OffCanvasResizeComponent ], templateUrl: './view-edit-annotation-drawer.component.html', styleUrl: './view-edit-annotation-drawer.component.scss', changeDetection: ChangeDetectionStrategy.OnPush }) export class ViewEditAnnotationDrawerComponent implements OnInit { + private readonly activeOffcanvas = inject(NgbActiveOffcanvas); private readonly annotationService = inject(AnnotationService); private readonly destroyRef = inject(DestroyRef); @@ -66,6 +73,7 @@ export class ViewEditAnnotationDrawerComponent implements OnInit { private readonly epubHighlightService = inject(EpubHighlightService); private readonly fb = inject(NonNullableFormBuilder); protected readonly utilityService = inject(UtilityService); + protected readonly accountService = inject(AccountService); @ViewChild('renderTarget', {read: ViewContainerRef}) renderTarget!: ViewContainerRef; @@ -193,6 +201,25 @@ export class ViewEditAnnotationDrawerComponent implements OnInit { hasSpoiler: this.fb.control(false, []), selectedSlotIndex: this.fb.control(0, []), }); + + effect(() => { + const editMode = this.isEditMode(); + if (!editMode) return; + + this.formGroup.valueChanges.pipe( + debounceTime(350), + switchMap(_ => { + const updatedAnnotation = this.annotation(); + if (!updatedAnnotation) return of(); + + updatedAnnotation.containsSpoiler = this.formGroup.get('hasSpoiler')!.value; + updatedAnnotation.comment = JSON.stringify(this.annotationNote); + + return this.annotationService.updateAnnotation(updatedAnnotation); + }), + takeUntilDestroyed(this.destroyRef) + ).subscribe(); + }); } ngOnInit(){ @@ -203,24 +230,6 @@ export class ViewEditAnnotationDrawerComponent implements OnInit { this.formGroup.get('hasSpoiler')!.setValue(annotation.containsSpoiler); this.formGroup.get('selectedSlotIndex')!.setValue(annotation.selectedSlotIndex); } - - if (!this.isEditMode()) { - return; - } - - this.formGroup.valueChanges.pipe( - debounceTime(350), - switchMap(_ => { - const updatedAnnotation = this.annotation(); - if (!updatedAnnotation) return of(); - - updatedAnnotation.containsSpoiler = this.formGroup.get('hasSpoiler')!.value; - updatedAnnotation.comment = JSON.stringify(this.annotationNote); - - return this.annotationService.updateAnnotation(updatedAnnotation); - }), - takeUntilDestroyed(this.destroyRef) - ).subscribe(); } createAnnotation() { @@ -238,6 +247,15 @@ export class ViewEditAnnotationDrawerComponent implements OnInit { }); } + switchToEditMode() { + if (this.isEditMode()) return; + + const annotation = this.annotation(); + if (annotation == null || annotation.ownerUsername !== this.accountService.currentUserSignal()?.username) return; + + this.mode.set(AnnotationMode.Edit); + } + changeSlotIndex(slotIndex: number) { const annotation = this.annotation(); @@ -326,4 +344,6 @@ export class ViewEditAnnotationDrawerComponent implements OnInit { protected readonly AnnotationMode = AnnotationMode; protected readonly UserBreakpoint = UserBreakpoint; protected readonly QuillTheme = QuillTheme; + protected readonly ResizeMode = ResizeMode; + protected readonly window = window; } diff --git a/UI/Web/src/app/book-reader/_components/_drawers/view-toc-drawer/view-toc-drawer.component.html b/UI/Web/src/app/book-reader/_components/_drawers/view-toc-drawer/view-toc-drawer.component.html index d267ca5b8..f5f4af793 100644 --- a/UI/Web/src/app/book-reader/_components/_drawers/view-toc-drawer/view-toc-drawer.component.html +++ b/UI/Web/src/app/book-reader/_components/_drawers/view-toc-drawer/view-toc-drawer.component.html @@ -3,7 +3,9 @@
    {{t('title')}}
    - +
    diff --git a/UI/Web/src/app/book-reader/_components/_drawers/view-toc-drawer/view-toc-drawer.component.scss b/UI/Web/src/app/book-reader/_components/_drawers/view-toc-drawer/view-toc-drawer.component.scss index 5cec79d06..7e6e64c65 100644 --- a/UI/Web/src/app/book-reader/_components/_drawers/view-toc-drawer/view-toc-drawer.component.scss +++ b/UI/Web/src/app/book-reader/_components/_drawers/view-toc-drawer/view-toc-drawer.component.scss @@ -4,3 +4,12 @@ display: flex; flex-direction: column; } + +.drawer-text i { + color: var(--drawer-text-color); + font-size: 16px; +} + +.drawer-text:hover i { + color: var(--drawer-text-color) +} diff --git a/UI/Web/src/app/book-reader/_components/book-reader/book-reader.component.html b/UI/Web/src/app/book-reader/_components/book-reader/book-reader.component.html index 0b3d8b9f2..ade824d22 100644 --- a/UI/Web/src/app/book-reader/_components/book-reader/book-reader.component.html +++ b/UI/Web/src/app/book-reader/_components/book-reader/book-reader.component.html @@ -5,7 +5,7 @@
    {{t('skip-header')}} - + @if (page() !== undefined) { - + (refreshToC)="refreshPersonalToC()" /> }
    @@ -48,7 +47,7 @@ @if (shouldShowBottomActionBar()) {
    - +
    }
    @@ -57,33 +56,36 @@ @if (shouldShowMenu()) {
    -
    - +
    +
    + +
    -
    +
    @if (isLoading()) {
    {{ t('loading-book') }}
    } @else { - @if (incognitoMode()) { - +
    + @if (incognitoMode()) { + ({{ t('incognito-mode-label') }}) - } - - {{ bookTitle() }} - @if (utilityService.getActiveBreakpoint() >= Breakpoint.Desktop) { - - {{ authorText() }} } + + {{ bookTitle() }} + @if (utilityService.getActiveBreakpoint() >= Breakpoint.Desktop) { + - {{ authorText() }} + } - +
    }
    -
    +
    @if (!this.adhocPageHistory.isEmpty()) { @@ -115,50 +120,60 @@ -
    - +
    - @if (!this.adhocPageHistory.isEmpty()) { - - } + + @if (!this.adhocPageHistory.isEmpty()) { + + } +
    -
    +
    @if(!isLoading()) { - {{t('page-num-label', {page: virtualizedPageNum()})}} / {{virtualizedMaxPages()}} - + + {{t('page-num-label', {page: virtualizedPageNum() + 1})}} / {{virtualizedMaxPages()}} + - {{t('completion-label', {percent: (virtualizedPageNum() / virtualizedMaxPages()) | percent})}} - @if (readingTimeLeftResource.value(); as timeLeft) { - , - - - {{timeLeft! | readTimeLeft:true }} +
    + + {{t('completion-label', {percent: (virtualizedPageNum() / virtualizedMaxPages()) | percent})}} + @if (readingTimeLeftResource.value(); as timeLeft) { + + + + {{timeLeft! | readTimeLeft:true }} - } + } +
    } @if (debugMode()) { @let vp = getVirtualPage(); - {{vp[0] * vp[2]}} / {{vp[1] * vp[2]}} + {{vp[0] * vp[2]}} / {{vp[1] * vp[2]}} }
    - +
    + +
    +
    diff --git a/UI/Web/src/app/book-reader/_components/book-reader/book-reader.component.scss b/UI/Web/src/app/book-reader/_components/book-reader/book-reader.component.scss index 9978d1cd4..40b71842f 100644 --- a/UI/Web/src/app/book-reader/_components/book-reader/book-reader.component.scss +++ b/UI/Web/src/app/book-reader/_components/book-reader/book-reader.component.scss @@ -102,6 +102,11 @@ $action-bar-height: 38px; max-height: $action-bar-height; height: $action-bar-height; + display: grid; + grid-template-columns: 1fr auto 1fr; + align-items: center; + padding: 0 0.5rem; + .book-title-text { text-align: center; text-overflow: ellipsis; @@ -129,6 +134,31 @@ $action-bar-height: 38px; } } +@media (min-width: 876px) { + .action-bar { + grid-template-columns: 1fr auto 1fr; + } + + .center-group { + justify-self: center; + } + + .right-group { + justify-self: end; + } +} + +/* Mobile - 2 columns */ +@media (max-width: 875px) { + .action-bar { + grid-template-columns: auto 1fr; + } + + .right-group { + justify-self: end; + } +} + .reader-container { outline: none; // Only the reading section itself shouldn't receive any outline. We use it to shift focus in fullscreen mode overflow: auto; diff --git a/UI/Web/src/app/book-reader/_components/book-reader/book-reader.component.ts b/UI/Web/src/app/book-reader/_components/book-reader/book-reader.component.ts index f512fe40f..037ffb004 100644 --- a/UI/Web/src/app/book-reader/_components/book-reader/book-reader.component.ts +++ b/UI/Web/src/app/book-reader/_components/book-reader/book-reader.component.ts @@ -23,7 +23,7 @@ import { import {DOCUMENT, NgClass, NgStyle, NgTemplateOutlet, PercentPipe} from '@angular/common'; import {ActivatedRoute, Router} from '@angular/router'; import {ToastrService} from 'ngx-toastr'; -import {forkJoin, fromEvent, merge, of, switchMap} from 'rxjs'; +import {firstValueFrom, forkJoin, fromEvent, merge, of, switchMap} from 'rxjs'; import {catchError, debounceTime, distinctUntilChanged, filter, take, tap} from 'rxjs/operators'; import {Chapter} from 'src/app/_models/chapter'; import {NavService} from 'src/app/_services/nav.service'; @@ -81,6 +81,8 @@ interface HistoryPoint { scrollPart: string; } +type Container = {left: number, right: number, top: number, bottom: number, width: number, height: number}; + const TOP_OFFSET = -(50 + 10) * 1.5; // px the sticky header takes up // TODO: Do I need this or can I change it with new fixed top height const COLUMN_GAP = 20; // px @@ -296,7 +298,7 @@ export class BookReaderComponent implements OnInit, AfterViewInit, OnDestroy { pageNumber: this.pageNum(), }), loader: async ({params}) => { - return this.readerService.getTimeLeftForChapter(params.seriesId, params.chapterId).toPromise(); + return firstValueFrom(this.readerService.getTimeLeftForChapter(params.seriesId, params.chapterId)); } }); @@ -449,9 +451,11 @@ export class BookReaderComponent implements OnInit, AfterViewInit, OnDestroy { const showForVerticalDefault = !isColumnMode && isVerticalLayout; + const showWhenDefaultLayout = !isColumnMode && !isVerticalLayout; + const otherCondition = !immersiveMode || isDrawerOpen || actionBarVisible; - return (baseCondition || showForVerticalDefault) && otherCondition; + return (baseCondition || showForVerticalDefault || showWhenDefaultLayout) && otherCondition; }); @@ -642,7 +646,6 @@ export class BookReaderComponent implements OnInit, AfterViewInit, OnDestroy { } } }); - } /** @@ -732,6 +735,11 @@ export class BookReaderComponent implements OnInit, AfterViewInit, OnDestroy { if (this.lastSeenScrollPartPath !== '') { this.saveProgress(); + + if (this.debugMode()) { + this.logSelectedElement(); + } + } } @@ -754,6 +762,9 @@ export class BookReaderComponent implements OnInit, AfterViewInit, OnDestroy { this.readerService.disableWakeLock(); + // Remove any debug viewport things + this.document.querySelector('#test')?.remove(); + this.themeService.clearBookTheme(); this.themeService.currentTheme$.pipe(take(1)).subscribe(theme => { @@ -1149,7 +1160,7 @@ export class BookReaderComponent implements OnInit, AfterViewInit, OnDestroy { async promptForPage() { const promptConfig = {...this.confirmService.defaultPrompt}; promptConfig.header = translate('book-reader.go-to-page'); - promptConfig.content = translate('book-reader.go-to-page-prompt', {totalPages: this.maxPages() - 1}); + promptConfig.content = translate('book-reader.go-to-page-prompt', {totalPages: this.maxPages()}); const goToPageNum = await this.confirmService.prompt(undefined, promptConfig); @@ -1163,13 +1174,13 @@ export class BookReaderComponent implements OnInit, AfterViewInit, OnDestroy { const goToPageNum = await this.promptForPage(); if (goToPageNum === null) { return; } - page = parseInt(goToPageNum.trim(), 10); + page = parseInt(goToPageNum.trim(), 10) - 1; // -1 since the UI displays with a +1 } if (page === undefined || this.pageNum() === page) { return; } - if (page > this.maxPages() - 1) { - page = this.maxPages() - 1; + if (page > this.maxPages()) { + page = this.maxPages(); } else if (page < 0) { page = 0; } @@ -1270,10 +1281,13 @@ export class BookReaderComponent implements OnInit, AfterViewInit, OnDestroy { textColor = 'black'; } + const offSetX = Math.min(32, imgRect.width * 0.05); + const offSetY = Math.min(32, imgRect.height * 0.05); + icon.style.cssText = ` position: absolute; - left: ${relativeX + imgRect.width - 16 * 2}px; - top: ${relativeY + imgRect.height - 16 * 2}px; + left: ${imgRect.width + relativeX - offSetX}px; + top: ${imgRect.height + relativeY - offSetY}px; margin: 0; transform-origin: bottom right; padding-top: 5px; @@ -1396,7 +1410,7 @@ export class BookReaderComponent implements OnInit, AfterViewInit, OnDestroy { // we need to click the document before arrow keys will scroll down. this.reader.nativeElement.focus(); - this.saveProgress(); + this.scroll(() => this.handleScrollEvent()); // Will set lastSeenXPath and save progress this.isLoading.set(false); this.cdRef.markForCheck(); @@ -1454,7 +1468,7 @@ export class BookReaderComponent implements OnInit, AfterViewInit, OnDestroy { // afterFrame(() => this.scrollService.scrollTo(0, this.reader.nativeElement)); // }, SCROLL_DELAY); console.log('Scrolling via x axis to 0: ', 0, ' via ', this.reader.nativeElement); - this.scroll(() => this.scrollService.scrollToX(0, this.reader.nativeElement)); + this.scroll(() => this.scrollService.scrollTo(0, this.reader.nativeElement)); return; } @@ -1486,9 +1500,9 @@ export class BookReaderComponent implements OnInit, AfterViewInit, OnDestroy { return; } - setTimeout(() => { - afterFrame(() => this.scrollService.scrollToX(0, this.bookContentElemRef.nativeElement)); - }, SCROLL_DELAY); + // setTimeout(() => { + // afterFrame(() => this.scrollService.scrollToX(0, this.bookContentElemRef.nativeElement)); + // }, SCROLL_DELAY); console.log('Scrolling via x axis to 0: ', 0, ' via ', this.bookContentElemRef.nativeElement); this.scroll(() => this.scrollService.scrollToX(0, this.bookContentElemRef.nativeElement)); @@ -1750,9 +1764,12 @@ export class BookReaderComponent implements OnInit, AfterViewInit, OnDestroy { let resumeElement: string | null = null; if (!this.bookContentElemRef || !this.bookContentElemRef.nativeElement) return null; + const container = this.getViewportBoundingRect(); + const intersectingEntries = Array.from(this.bookContentElemRef.nativeElement.querySelectorAll('div,o,p,ul,li,a,img,h1,h2,h3,h4,h5,h6,span')) .filter(element => !element.classList.contains('no-observe')) .filter(entry => { + //return this.isPartiallyContainedIn(container, entry); return this.utilityService.isInViewport(entry, this.topOffset); }); @@ -1936,7 +1953,7 @@ export class BookReaderComponent implements OnInit, AfterViewInit, OnDestroy { this.applyWritingStyle(); break; case "layoutMode": - this.applyLayoutMode(res.object as BookPageLayoutMode); + this.applyLayoutMode(res.object as BookPageLayoutMode, true); break; case "readingDirection": // No extra functionality needs to be done @@ -2062,12 +2079,11 @@ export class BookReaderComponent implements OnInit, AfterViewInit, OnDestroy { this.cdRef.markForCheck(); } - applyLayoutMode(mode: BookPageLayoutMode) { - //const layoutModeChanged = mode !== this.layoutMode(); // TODO: This functionality wont work on the new signal-based logic - + applyLayoutMode(mode: BookPageLayoutMode, isChange: boolean = false) { this.clearTimeout(this.updateImageSizeTimeout); this.updateImageSizeTimeout = setTimeout( () => { - this.updateImageSizes() + this.updateImageSizes(); + this.injectImageBookmarkIndicators(true); }, 200); this.updateSingleImagePageStyles(); @@ -2084,11 +2100,10 @@ export class BookReaderComponent implements OnInit, AfterViewInit, OnDestroy { this.cdRef.markForCheck(); }); - // When I switch layout, I might need to resume the progress point. - // if (mode === BookPageLayoutMode.Default && layoutModeChanged) { - // const lastSelector = this.lastSeenScrollPartPath; - // setTimeout(() => this.scrollTo(lastSelector)); - // } + const lastSelector = this.lastSeenScrollPartPath; + if (isChange && lastSelector !== '') { + setTimeout(() => this.scrollTo(lastSelector), SCROLL_DELAY); + } } applyImmersiveMode(immersiveMode: boolean) { @@ -2289,9 +2304,10 @@ export class BookReaderComponent implements OnInit, AfterViewInit, OnDestroy { * * NOTE: On Scroll LayoutMode, the height/bottom are not correct */ - getViewportBoundingRect() { + getViewportBoundingRect(): Container { const margin = this.getMargin(); - const [currentVirtualPage, _, pageSize] = this.getVirtualPage(); + //const [currentVirtualPage, _, pageSize] = this.getVirtualPage(); + const pageSize = this.pageWidth(); const visibleBoundingBox = this.bookContentElemRef.nativeElement.getBoundingClientRect(); let bookContentPadding = 20; @@ -2327,10 +2343,10 @@ export class BookReaderComponent implements OnInit, AfterViewInit, OnDestroy { const viewport = this.getViewportBoundingRect(); // Insert a debug element to help visualize - document.querySelector('#test')?.remove(); + this.document.querySelector('#test')?.remove(); // Create and inject the red rectangle div - const redRect = document.createElement('div'); + const redRect = this.document.createElement('div'); redRect.id = 'test'; redRect.style.position = 'absolute'; redRect.style.left = `${viewport.left}px`; @@ -2342,7 +2358,7 @@ export class BookReaderComponent implements OnInit, AfterViewInit, OnDestroy { redRect.style.zIndex = '1000'; // Inject into the document - document.body.appendChild(redRect); + this.document.body.appendChild(redRect); } /** @@ -2370,6 +2386,43 @@ export class BookReaderComponent implements OnInit, AfterViewInit, OnDestroy { return margin; } + /** + * A custom is visible method for column modes, that makes sense + * @param container + * @param element + */ + isPartiallyContainedIn(container: Container, element: Element) { + const rect = element.getBoundingClientRect(); + + if ( + rect.top >= container.top && + rect.bottom <= container.bottom && + rect.right <= container.right && + rect.left >= container.left + ) { + return true; + } + + // First element in the top, overflow to the left + const isCloseByTop = Math.abs(rect.top - container.top) <= 0.05 * container.height; + if (isCloseByTop && rect.left < container.left && rect.right < container.right && rect.right > container.left) { + return true; + } + + return false; + } + + logSelectedElement() { + const element = this.getElementFromXPath(this.lastSeenScrollPartPath); + if (element) { + console.log(element); + (element as HTMLElement).style.border = '1px solid red'; + setTimeout(() => { + (element as HTMLElement).style.border = ''; + }, 1_000); + } + } + protected readonly Breakpoint = Breakpoint; protected readonly environment = environment; diff --git a/UI/Web/src/app/book-reader/_components/quill-wrapper/quill-wrapper.component.html b/UI/Web/src/app/book-reader/_components/quill-wrapper/quill-wrapper.component.html index cb4752461..847d4bc76 100644 --- a/UI/Web/src/app/book-reader/_components/quill-wrapper/quill-wrapper.component.html +++ b/UI/Web/src/app/book-reader/_components/quill-wrapper/quill-wrapper.component.html @@ -1,4 +1,4 @@ -
    +
    @if (toolbarItem.value !== undefined) { - + } @else if (toolbarItem.values !== undefined) { - @for (value of toolbarItem.values; track value) { } } @else { - + } diff --git a/UI/Web/src/app/book-reader/_components/quill-wrapper/quill-wrapper.component.scss b/UI/Web/src/app/book-reader/_components/quill-wrapper/quill-wrapper.component.scss index 72357dad6..43b70ee60 100644 --- a/UI/Web/src/app/book-reader/_components/quill-wrapper/quill-wrapper.component.scss +++ b/UI/Web/src/app/book-reader/_components/quill-wrapper/quill-wrapper.component.scss @@ -167,4 +167,15 @@ padding-right: 0.9375rem; border-right: 0.0625rem solid var(--input-border-color); } + + .ql-tooltip { + border: 0.0625rem solid var(--primary-color); + background-color: var(--drawer-bg-color); + max-width: 90vw !important; + width: auto !important; + + &.ql-editing { + min-width: 20rem !important; + } + } } diff --git a/UI/Web/src/app/book-reader/_components/quill-wrapper/quill-wrapper.component.ts b/UI/Web/src/app/book-reader/_components/quill-wrapper/quill-wrapper.component.ts index 7894b069f..9b243a6fe 100644 --- a/UI/Web/src/app/book-reader/_components/quill-wrapper/quill-wrapper.component.ts +++ b/UI/Web/src/app/book-reader/_components/quill-wrapper/quill-wrapper.component.ts @@ -1,6 +1,8 @@ import {ChangeDetectionStrategy, Component, computed, EventEmitter, input, OnInit, Output} from '@angular/core'; import {ContentChange, QuillEditorComponent, QuillFormat} from "ngx-quill"; import {FormGroup, ReactiveFormsModule} from "@angular/forms"; +import {NgbTooltip} from "@ng-bootstrap/ng-bootstrap"; +import {TranslocoDirective} from "@jsverse/transloco"; export enum QuillTheme { Snow = 'snow', @@ -48,6 +50,10 @@ export interface ToolbarItem { * Pass an **empty** array to use the quill defaults */ values?: string[]; + /** + * An optional translation key for a tooltip + */ + tooltipTranslationKey?: string } // There is very little documentation to what values are possible. @@ -77,7 +83,7 @@ const defaultToolbarItems: ToolbarItem[][] = [ ], [ - {key: QuillToolbarKey.Clean}, + {key: QuillToolbarKey.Clean, tooltipTranslationKey: 'clean-tooltip'}, ] ]; @@ -90,6 +96,8 @@ const defaultToolbarItems: ToolbarItem[][] = [ imports: [ QuillEditorComponent, ReactiveFormsModule, + NgbTooltip, + TranslocoDirective, ], templateUrl: './quill-wrapper.component.html', styleUrl: './quill-wrapper.component.scss', diff --git a/UI/Web/src/app/book-reader/_components/reader-settings/reader-settings.component.html b/UI/Web/src/app/book-reader/_components/reader-settings/reader-settings.component.html index 7e1f5b682..500645bed 100644 --- a/UI/Web/src/app/book-reader/_components/reader-settings/reader-settings.component.html +++ b/UI/Web/src/app/book-reader/_components/reader-settings/reader-settings.component.html @@ -83,7 +83,7 @@
    {{t('writing-style-tooltip')}} - +
    diff --git a/UI/Web/src/app/book-reader/_components/reader-settings/reader-settings.component.ts b/UI/Web/src/app/book-reader/_components/reader-settings/reader-settings.component.ts index 60f261e51..e20c1cb13 100644 --- a/UI/Web/src/app/book-reader/_components/reader-settings/reader-settings.component.ts +++ b/UI/Web/src/app/book-reader/_components/reader-settings/reader-settings.component.ts @@ -23,7 +23,6 @@ import { import {TranslocoDirective} from "@jsverse/transloco"; import {ReadingProfile, ReadingProfileKind} from "../../../_models/preferences/reading-profiles"; import {BookReadingProfileFormGroup, EpubReaderSettingsService} from "../../../_services/epub-reader-settings.service"; -import {LayoutMode} from "../../../manga-reader/_models/layout-mode"; /** * Used for book reader. Do not use for other components @@ -121,6 +120,9 @@ export class ReaderSettingsComponent implements OnInit { protected currentReadingProfile!: Signal; + protected isVerticalLayout!: Signal; + + async ngOnInit() { this.pageStyles = this.readerSettingsService.pageStyles; this.readingDirectionModel = this.readerSettingsService.readingDirection; diff --git a/UI/Web/src/app/book-reader/_components/table-of-contents/table-of-contents.component.html b/UI/Web/src/app/book-reader/_components/table-of-contents/table-of-contents.component.html index b5c70f86c..27eff498f 100644 --- a/UI/Web/src/app/book-reader/_components/table-of-contents/table-of-contents.component.html +++ b/UI/Web/src/app/book-reader/_components/table-of-contents/table-of-contents.component.html @@ -5,7 +5,7 @@ @if (bookChapters.length === 0) { @if (loading()) { - + } @else {
    {{t('no-data')}} diff --git a/UI/Web/src/app/bookmark/_components/bookmarks/bookmarks.component.html b/UI/Web/src/app/bookmark/_components/bookmarks/bookmarks.component.html index 68be63da1..9d091a064 100644 --- a/UI/Web/src/app/bookmark/_components/bookmarks/bookmarks.component.html +++ b/UI/Web/src/app/bookmark/_components/bookmarks/bookmarks.component.html @@ -6,7 +6,7 @@
    {{t('series-count', {num: series.length | number})}}
    - + @if (filter) { + /> diff --git a/UI/Web/src/app/cards/_modals/bulk-add-to-collection/bulk-add-to-collection.component.ts b/UI/Web/src/app/cards/_modals/bulk-add-to-collection/bulk-add-to-collection.component.ts index da2742260..e28713a13 100644 --- a/UI/Web/src/app/cards/_modals/bulk-add-to-collection/bulk-add-to-collection.component.ts +++ b/UI/Web/src/app/cards/_modals/bulk-add-to-collection/bulk-add-to-collection.component.ts @@ -16,14 +16,14 @@ import {ToastrService} from 'ngx-toastr'; import {UserCollection} from 'src/app/_models/collection-tag'; import {ReadingList} from 'src/app/_models/reading-list'; import {CollectionTagService} from 'src/app/_services/collection-tag.service'; -import {CommonModule} from "@angular/common"; + import {FilterPipe} from "../../../_pipes/filter.pipe"; import {translate, TranslocoDirective} from "@jsverse/transloco"; import {ScrobbleProvider} from "../../../_services/scrobbling.service"; @Component({ selector: 'app-bulk-add-to-collection', - imports: [CommonModule, ReactiveFormsModule, FilterPipe, NgbModalModule, TranslocoDirective], + imports: [ReactiveFormsModule, FilterPipe, NgbModalModule, TranslocoDirective], templateUrl: './bulk-add-to-collection.component.html', styleUrls: ['./bulk-add-to-collection.component.scss'], encapsulation: ViewEncapsulation.None, // This is needed as per the bootstrap modal documentation to get styles to work. diff --git a/UI/Web/src/app/cards/_modals/edit-collection-tags/edit-collection-tags.component.html b/UI/Web/src/app/cards/_modals/edit-collection-tags/edit-collection-tags.component.html index b89b20d95..8d48fcf7f 100644 --- a/UI/Web/src/app/cards/_modals/edit-collection-tags/edit-collection-tags.component.html +++ b/UI/Web/src/app/cards/_modals/edit-collection-tags/edit-collection-tags.component.html @@ -34,7 +34,7 @@ {{t('promote-tooltip')}} - +
    @@ -82,12 +82,11 @@ @if (pagination && series.length !== 0 && pagination.totalPages > 1) {
    - + [collectionSize]="pagination.totalItems" />
    }
    @@ -101,7 +100,7 @@ + (resetClicked)="handleReset()" /> diff --git a/UI/Web/src/app/cards/_modals/edit-series-modal/edit-series-modal.component.html b/UI/Web/src/app/cards/_modals/edit-series-modal/edit-series-modal.component.html index 42112d5ac..c1d784a9c 100644 --- a/UI/Web/src/app/cards/_modals/edit-series-modal/edit-series-modal.component.html +++ b/UI/Web/src/app/cards/_modals/edit-series-modal/edit-series-modal.component.html @@ -40,7 +40,7 @@
    - + @if (formControl.errors) { @if (formControl.errors.required) { @@ -60,7 +60,7 @@ @if (editSeriesForm.get('localizedName'); as formControl) {
    - +
    } @@ -75,7 +75,7 @@
    - +
    @@ -118,7 +118,7 @@
    - + @@ -186,7 +186,7 @@
    - + @for (opt of publicationStatuses; track opt.value) { @@ -504,7 +504,7 @@ {{t(tabs[TabID.WebLinks])}}

    {{t('web-link-description')}}

    - +
    } @@ -515,14 +515,14 @@ - +
  1. {{t(tabs[TabID.Related])}} - +
  2. @@ -689,7 +689,7 @@
    diff --git a/UI/Web/src/app/collections/_components/all-collections/all-collections.component.html b/UI/Web/src/app/collections/_components/all-collections/all-collections.component.html index 1a2d067a2..a751336d5 100644 --- a/UI/Web/src/app/collections/_components/all-collections/all-collections.component.html +++ b/UI/Web/src/app/collections/_components/all-collections/all-collections.component.html @@ -4,7 +4,7 @@

    {{t('title')}}

    {{t('item-count', {num: collections.length | number})}}
    - + - + diff --git a/UI/Web/src/app/collections/_components/collection-detail/collection-detail.component.html b/UI/Web/src/app/collections/_components/collection-detail/collection-detail.component.html index ea0e85fd1..8653431dd 100644 --- a/UI/Web/src/app/collections/_components/collection-detail/collection-detail.component.html +++ b/UI/Web/src/app/collections/_components/collection-detail/collection-detail.component.html @@ -6,9 +6,9 @@ @if (collectionTag) {

    - + {{collectionTag.title}} - +

    }
    {{t('item-count', {num: series.length})}}
    @@ -23,14 +23,14 @@ @if (summary.length > 0 || collectionTag.source !== ScrobbleProvider.Kavita) {
    - + @if (collectionTag.source !== ScrobbleProvider.Kavita && collectionTag.missingSeriesFromSource !== null && series.length !== collectionTag.totalSourceCount && collectionTag.totalSourceCount > 0) {
    + [ngbTooltip]="collectionTag.source | scrobbleProviderName" tabindex="0" /> {{t('sync-progress', {title: series.length + ' / ' + collectionTag.totalSourceCount})}}
    @@ -39,7 +39,7 @@
    @if (summary.length > 0) {
    - +
    @if (collectionTag.source !== ScrobbleProvider.Kavita) { @@ -55,7 +55,7 @@ - + @if (filter) { + /> @if(!filterActive && series.length === 0) { diff --git a/UI/Web/src/app/collections/_components/collection-detail/collection-detail.component.ts b/UI/Web/src/app/collections/_components/collection-detail/collection-detail.component.ts index 9b3f55240..95f0fe08f 100644 --- a/UI/Web/src/app/collections/_components/collection-detail/collection-detail.component.ts +++ b/UI/Web/src/app/collections/_components/collection-detail/collection-detail.component.ts @@ -1,17 +1,5 @@ import {AsyncPipe, DatePipe, DOCUMENT} from '@angular/common'; -import { - AfterContentChecked, - ChangeDetectionStrategy, - ChangeDetectorRef, - Component, - DestroyRef, - ElementRef, - EventEmitter, - inject, - Inject, - OnInit, - ViewChild -} from '@angular/core'; +import { AfterContentChecked, ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, ElementRef, EventEmitter, inject, OnInit, ViewChild } from '@angular/core'; import {Title} from '@angular/platform-browser'; import {ActivatedRoute, Router} from '@angular/router'; import {NgbModal, NgbOffcanvas, NgbTooltip} from '@ng-bootstrap/ng-bootstrap'; @@ -75,6 +63,8 @@ import {FilterComparison} from "../../../_models/metadata/v2/filter-comparison"; DatePipe, DefaultDatePipe, ProviderImagePipe, AsyncPipe, ScrobbleProviderNamePipe, PromotedIconComponent] }) export class CollectionDetailComponent implements OnInit, AfterContentChecked { + private document = inject(DOCUMENT); + public readonly imageService = inject(ImageService); public readonly bulkSelectionService = inject(BulkSelectionService); @@ -181,7 +171,7 @@ export class CollectionDetailComponent implements OnInit, AfterContentChecked { } } - constructor(@Inject(DOCUMENT) private document: Document) { + constructor() { this.router.routeReuseStrategy.shouldReuseRoute = () => false; const routeId = this.route.snapshot.paramMap.get('id'); diff --git a/UI/Web/src/app/collections/_components/collection-owner/collection-owner.component.html b/UI/Web/src/app/collections/_components/collection-owner/collection-owner.component.html index dc3caacfe..0e0e026f4 100644 --- a/UI/Web/src/app/collections/_components/collection-owner/collection-owner.component.html +++ b/UI/Web/src/app/collections/_components/collection-owner/collection-owner.component.html @@ -7,7 +7,7 @@ + [attr.aria-label]="collection.source | scrobbleProviderName" /> }
    } diff --git a/UI/Web/src/app/collections/_components/import-mal-collection/import-mal-collection.component.html b/UI/Web/src/app/collections/_components/import-mal-collection/import-mal-collection.component.html index d8c3dba18..bd0b77831 100644 --- a/UI/Web/src/app/collections/_components/import-mal-collection/import-mal-collection.component.html +++ b/UI/Web/src/app/collections/_components/import-mal-collection/import-mal-collection.component.html @@ -16,7 +16,7 @@ } @empty { @if (isLoading) { - + } @else {

    {{t('nothing-found')}}

    } diff --git a/UI/Web/src/app/dashboard/_components/dashboard.component.html b/UI/Web/src/app/dashboard/_components/dashboard.component.html index e38390131..052b05539 100644 --- a/UI/Web/src/app/dashboard/_components/dashboard.component.html +++ b/UI/Web/src/app/dashboard/_components/dashboard.component.html @@ -1,5 +1,5 @@
    - + @if (libraries$ | async; as libraries) { @@ -23,19 +23,19 @@ @for(stream of streams; track stream.id) { @switch (stream.streamType) { @case (StreamType.OnDeck) { - + } @case (StreamType.RecentlyUpdated) { - + } @case (StreamType.NewlyAdded) { - + } @case (StreamType.SmartFilter) { - + } @case (StreamType.MoreInGenre) { - + } } @@ -45,7 +45,7 @@ + (reload)="reloadStream(item.id)" (dataChanged)="reloadStream(item.id)" /> } @@ -56,7 +56,7 @@ + (reload)="reloadStream(stream.id, true)" (dataChanged)="reloadStream(stream.id)" /> } @@ -69,9 +69,7 @@ - - + [linkUrl]="'/library/' + item.libraryId + '/series/' + item.seriesId" /> } @@ -81,7 +79,7 @@ @if(stream.api | async; as data) { - + } @@ -91,14 +89,14 @@ @if(stream.api | async; as data) { - + } } - +
    diff --git a/UI/Web/src/app/library-detail/library-detail.component.html b/UI/Web/src/app/library-detail/library-detail.component.html index c86261c73..2de45ec60 100644 --- a/UI/Web/src/app/library-detail/library-detail.component.html +++ b/UI/Web/src/app/library-detail/library-detail.component.html @@ -3,15 +3,15 @@

    {{libraryName}} - +

    @if (active.fragment === '') {
    {{t('common.series-count', {num: pagination.totalItems | number})}}
    }
    - - + + @if (filter) { + [selected]="bulkSelectionService.isCardSelected('series', position)" [allowSelection]="true" /> diff --git a/UI/Web/src/app/manga-reader/_components/double-renderer-no-cover/double-no-cover-renderer.component.html b/UI/Web/src/app/manga-reader/_components/double-renderer-no-cover/double-no-cover-renderer.component.html index 3320fef16..25dc7a93c 100644 --- a/UI/Web/src/app/manga-reader/_components/double-renderer-no-cover/double-no-cover-renderer.component.html +++ b/UI/Web/src/app/manga-reader/_components/double-renderer-no-cover/double-no-cover-renderer.component.html @@ -1,18 +1,18 @@ - -
    - -  - - -  - -
    -
    +@if (isValid()) { +
    + @if (currentImage) { +  + } + @if (shouldRenderDouble$ | async) { +  + } +
    + } diff --git a/UI/Web/src/app/manga-reader/_components/double-renderer-no-cover/double-no-cover-renderer.component.ts b/UI/Web/src/app/manga-reader/_components/double-renderer-no-cover/double-no-cover-renderer.component.ts index 64e321bce..bec64c11e 100644 --- a/UI/Web/src/app/manga-reader/_components/double-renderer-no-cover/double-no-cover-renderer.component.ts +++ b/UI/Web/src/app/manga-reader/_components/double-renderer-no-cover/double-no-cover-renderer.component.ts @@ -1,15 +1,5 @@ -import { DOCUMENT, NgIf, NgClass, AsyncPipe } from '@angular/common'; -import { - ChangeDetectionStrategy, - ChangeDetectorRef, - Component, DestroyRef, - EventEmitter, - inject, - Inject, - Input, - OnInit, - Output -} from '@angular/core'; +import { DOCUMENT, NgClass, AsyncPipe } from '@angular/common'; +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, EventEmitter, inject, Input, OnInit, Output } from '@angular/core'; import { Observable, of, map, tap, shareReplay, filter, combineLatest } from 'rxjs'; import { PageSplitOption } from 'src/app/_models/preferences/page-split-option'; import { ReaderMode } from 'src/app/_models/preferences/reader-mode'; @@ -30,9 +20,14 @@ import { SafeStylePipe } from '../../../_pipes/safe-style.pipe'; templateUrl: './double-no-cover-renderer.component.html', styleUrls: ['./double-no-cover-renderer.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [NgIf, NgClass, AsyncPipe, SafeStylePipe] + imports: [NgClass, AsyncPipe, SafeStylePipe] }) export class DoubleNoCoverRendererComponent implements OnInit { + private readonly cdRef = inject(ChangeDetectorRef); + mangaReaderService = inject(MangaReaderService); + private document = inject(DOCUMENT); + readerService = inject(ReaderService); + @Input({required: true}) readerSettings$!: Observable; @Input({required: true}) image$!: Observable; @@ -79,11 +74,6 @@ export class DoubleNoCoverRendererComponent implements OnInit { get FITTING_OPTION() {return FITTING_OPTION;} get LayoutMode() {return LayoutMode;} - - - constructor(private readonly cdRef: ChangeDetectorRef, public mangaReaderService: MangaReaderService, - @Inject(DOCUMENT) private document: Document, public readerService: ReaderService) { } - ngOnInit(): void { this.readerModeClass$ = this.readerSettings$.pipe( map(values => values.readerMode), diff --git a/UI/Web/src/app/manga-reader/_components/double-renderer/double-renderer.component.html b/UI/Web/src/app/manga-reader/_components/double-renderer/double-renderer.component.html index 3320fef16..25dc7a93c 100644 --- a/UI/Web/src/app/manga-reader/_components/double-renderer/double-renderer.component.html +++ b/UI/Web/src/app/manga-reader/_components/double-renderer/double-renderer.component.html @@ -1,18 +1,18 @@ - -
    - -  - - -  - -
    -
    +@if (isValid()) { +
    + @if (currentImage) { +  + } + @if (shouldRenderDouble$ | async) { +  + } +
    + } diff --git a/UI/Web/src/app/manga-reader/_components/double-renderer/double-renderer.component.ts b/UI/Web/src/app/manga-reader/_components/double-renderer/double-renderer.component.ts index 458e8ff3f..6a5e004bb 100644 --- a/UI/Web/src/app/manga-reader/_components/double-renderer/double-renderer.component.ts +++ b/UI/Web/src/app/manga-reader/_components/double-renderer/double-renderer.component.ts @@ -1,15 +1,5 @@ -import { DOCUMENT, NgIf, NgClass, AsyncPipe } from '@angular/common'; -import { - ChangeDetectionStrategy, - ChangeDetectorRef, - Component, DestroyRef, - EventEmitter, - inject, - Inject, - Input, - OnInit, - Output -} from '@angular/core'; +import { DOCUMENT, NgClass, AsyncPipe } from '@angular/common'; +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, EventEmitter, inject, Input, OnInit, Output } from '@angular/core'; import { Observable, of, map, tap, shareReplay, filter, combineLatest } from 'rxjs'; import { PageSplitOption } from 'src/app/_models/preferences/page-split-option'; import { ReaderMode } from 'src/app/_models/preferences/reader-mode'; @@ -30,9 +20,14 @@ import { SafeStylePipe } from '../../../_pipes/safe-style.pipe'; templateUrl: './double-renderer.component.html', styleUrls: ['./double-renderer.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [NgIf, NgClass, AsyncPipe, SafeStylePipe] + imports: [NgClass, AsyncPipe, SafeStylePipe] }) export class DoubleRendererComponent implements OnInit, ImageRenderer { + private readonly cdRef = inject(ChangeDetectorRef); + mangaReaderService = inject(MangaReaderService); + private document = inject(DOCUMENT); + readerService = inject(ReaderService); + @Input({required: true}) readerSettings$!: Observable; @Input({required: true}) image$!: Observable; @@ -78,10 +73,6 @@ export class DoubleRendererComponent implements OnInit, ImageRenderer { protected readonly ReaderMode = ReaderMode; protected readonly LayoutMode = LayoutMode; - - constructor(private readonly cdRef: ChangeDetectorRef, public mangaReaderService: MangaReaderService, - @Inject(DOCUMENT) private document: Document, public readerService: ReaderService) { } - ngOnInit(): void { this.readerModeClass$ = this.readerSettings$.pipe( map(values => values.readerMode), diff --git a/UI/Web/src/app/manga-reader/_components/double-reverse-renderer/double-reverse-renderer.component.html b/UI/Web/src/app/manga-reader/_components/double-reverse-renderer/double-reverse-renderer.component.html index d65b8a4fb..9350ad94e 100644 --- a/UI/Web/src/app/manga-reader/_components/double-reverse-renderer/double-reverse-renderer.component.html +++ b/UI/Web/src/app/manga-reader/_components/double-reverse-renderer/double-reverse-renderer.component.html @@ -1,18 +1,19 @@ - -
    - -  - - -  - -
    -
    +@if (isValid()) { +
    + + @if(leftImage) { +  + } + + @if (shouldRenderDouble$ | async) { +  + } +
    +} diff --git a/UI/Web/src/app/manga-reader/_components/double-reverse-renderer/double-reverse-renderer.component.ts b/UI/Web/src/app/manga-reader/_components/double-reverse-renderer/double-reverse-renderer.component.ts index 39d56229d..0e1347cd2 100644 --- a/UI/Web/src/app/manga-reader/_components/double-reverse-renderer/double-reverse-renderer.component.ts +++ b/UI/Web/src/app/manga-reader/_components/double-reverse-renderer/double-reverse-renderer.component.ts @@ -1,26 +1,16 @@ -import { DOCUMENT, NgIf, NgClass, AsyncPipe } from '@angular/common'; -import { - ChangeDetectionStrategy, - ChangeDetectorRef, - Component, DestroyRef, - EventEmitter, - inject, - Inject, - Input, - OnInit, - Output -} from '@angular/core'; -import { Observable, of, map, tap, shareReplay, filter, combineLatest } from 'rxjs'; -import { PageSplitOption } from 'src/app/_models/preferences/page-split-option'; -import { ReaderMode } from 'src/app/_models/preferences/reader-mode'; -import { ReaderService } from 'src/app/_services/reader.service'; -import { LayoutMode } from '../../_models/layout-mode'; -import { FITTING_OPTION, PAGING_DIRECTION } from '../../_models/reader-enums'; -import { ReaderSetting } from '../../_models/reader-setting'; -import { DEBUG_MODES, ImageRenderer } from '../../_models/renderer'; -import { MangaReaderService } from '../../_service/manga-reader.service'; +import {AsyncPipe, DOCUMENT, NgClass} from '@angular/common'; +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, EventEmitter, inject, Input, OnInit, Output } from '@angular/core'; +import {combineLatest, filter, map, Observable, of, shareReplay, tap} from 'rxjs'; +import {PageSplitOption} from 'src/app/_models/preferences/page-split-option'; +import {ReaderMode} from 'src/app/_models/preferences/reader-mode'; +import {ReaderService} from 'src/app/_services/reader.service'; +import {LayoutMode} from '../../_models/layout-mode'; +import {FITTING_OPTION, PAGING_DIRECTION} from '../../_models/reader-enums'; +import {ReaderSetting} from '../../_models/reader-setting'; +import {DEBUG_MODES, ImageRenderer} from '../../_models/renderer'; +import {MangaReaderService} from '../../_service/manga-reader.service'; import {takeUntilDestroyed} from "@angular/core/rxjs-interop"; -import { SafeStylePipe } from '../../../_pipes/safe-style.pipe'; +import {SafeStylePipe} from '../../../_pipes/safe-style.pipe'; /** * This is aimed at manga. Double page renderer but where if we have page = 10, you will see @@ -31,9 +21,14 @@ import { SafeStylePipe } from '../../../_pipes/safe-style.pipe'; templateUrl: './double-reverse-renderer.component.html', styleUrls: ['./double-reverse-renderer.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [NgIf, NgClass, AsyncPipe, SafeStylePipe] + imports: [NgClass, AsyncPipe, SafeStylePipe] }) export class DoubleReverseRendererComponent implements OnInit, ImageRenderer { + private readonly cdRef = inject(ChangeDetectorRef); + mangaReaderService = inject(MangaReaderService); + private document = inject(DOCUMENT); + readerService = inject(ReaderService); + @Input({required: true}) readerSettings$!: Observable; @@ -81,11 +76,6 @@ export class DoubleReverseRendererComponent implements OnInit, ImageRenderer { get FITTING_OPTION() {return FITTING_OPTION;} get LayoutMode() {return LayoutMode;} - - - constructor(private readonly cdRef: ChangeDetectorRef, public mangaReaderService: MangaReaderService, - @Inject(DOCUMENT) private document: Document, public readerService: ReaderService) { } - ngOnInit(): void { this.readerModeClass$ = this.readerSettings$.pipe( filter(_ => this.isValid()), diff --git a/UI/Web/src/app/manga-reader/_components/infinite-scroller/infinite-scroller.component.ts b/UI/Web/src/app/manga-reader/_components/infinite-scroller/infinite-scroller.component.ts index 667c9205a..29a79fd2c 100644 --- a/UI/Web/src/app/manga-reader/_components/infinite-scroller/infinite-scroller.component.ts +++ b/UI/Web/src/app/manga-reader/_components/infinite-scroller/infinite-scroller.component.ts @@ -1,23 +1,5 @@ import {AsyncPipe, DOCUMENT} from '@angular/common'; -import { - AfterViewInit, - ChangeDetectionStrategy, - ChangeDetectorRef, - Component, computed, - DestroyRef, effect, - ElementRef, - EventEmitter, - inject, - Inject, Injector, - Input, - OnChanges, - OnDestroy, - OnInit, - Output, - Renderer2, signal, Signal, - SimpleChanges, - ViewChild -} from '@angular/core'; +import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, DestroyRef, effect, ElementRef, EventEmitter, inject, Injector, Input, OnChanges, OnDestroy, OnInit, Output, Renderer2, signal, Signal, SimpleChanges, ViewChild } from '@angular/core'; import {BehaviorSubject, fromEvent, map, Observable, of, ReplaySubject, tap} from 'rxjs'; import {debounceTime} from 'rxjs/operators'; import {ScrollService} from 'src/app/_services/scroll.service'; @@ -81,6 +63,8 @@ const enum DEBUG_MODES { imports: [AsyncPipe, TranslocoDirective, InfiniteScrollModule, SafeStylePipe] }) export class InfiniteScrollerComponent implements OnInit, OnChanges, OnDestroy, AfterViewInit { + private readonly document = inject(DOCUMENT); + private readonly mangaReaderService = inject(MangaReaderService); private readonly readerService = inject(ReaderService); @@ -212,7 +196,9 @@ export class InfiniteScrollerComponent implements OnInit, OnChanges, OnDestroy, return this.webtoonImageWidth > (innerWidth || document.body.clientWidth); } - constructor(@Inject(DOCUMENT) private readonly document: Document) { + constructor() { + const document = this.document; + // This will always exist at this point in time since this is used within manga reader const reader = document.querySelector('.reading-area'); if (reader !== null) { diff --git a/UI/Web/src/app/manga-reader/_components/manga-reader/manga-reader.component.html b/UI/Web/src/app/manga-reader/_components/manga-reader/manga-reader.component.html index fc59f587d..ecf89e486 100644 --- a/UI/Web/src/app/manga-reader/_components/manga-reader/manga-reader.component.html +++ b/UI/Web/src/app/manga-reader/_components/manga-reader/manga-reader.component.html @@ -49,18 +49,16 @@ } - +
    @if (readerMode !== ReaderMode.Webtoon) {
    - - + [showClickOverlay$]="showClickOverlay$" />
    @@ -94,32 +92,28 @@ [bookmark$]="showBookmarkEffect$" [pageNum$]="pageNum$" [showClickOverlay$]="showClickOverlay$" - [readingProfile]="readingProfile"> - + [readingProfile]="readingProfile" /> - + [getPage]="getPageFn" /> - + [getPage]="getPageFn" /> - + [getPage]="getPageFn" />
    } @else { @if (!isLoading && !inSetup) { @@ -135,8 +129,7 @@ [bookmarkPage]="showBookmarkEffectEvent" [fullscreenToggled]="fullscreenEvent" [readerSettings$]="readerSettings$" - [readingProfile]="readingProfile"> - + [readingProfile]="readingProfile" />
    } } @@ -152,11 +145,11 @@ @if (pageOptions.ceil > 0) {
    - +
    } @else {
    - +
    } diff --git a/UI/Web/src/app/manga-reader/_components/single-renderer/single-renderer.component.ts b/UI/Web/src/app/manga-reader/_components/single-renderer/single-renderer.component.ts index caa955298..be68aed44 100644 --- a/UI/Web/src/app/manga-reader/_components/single-renderer/single-renderer.component.ts +++ b/UI/Web/src/app/manga-reader/_components/single-renderer/single-renderer.component.ts @@ -1,15 +1,5 @@ -import { DOCUMENT, NgIf, AsyncPipe } from '@angular/common'; -import { - ChangeDetectionStrategy, - ChangeDetectorRef, - Component, computed, DestroyRef, effect, - EventEmitter, - inject, - Inject, Injector, - Input, - OnInit, - Output, signal, Signal, WritableSignal -} from '@angular/core'; +import { DOCUMENT, AsyncPipe } from '@angular/common'; +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, DestroyRef, effect, EventEmitter, inject, Injector, Input, OnInit, Output, signal, Signal, WritableSignal } from '@angular/core'; import {combineLatest, combineLatestWith, filter, map, Observable, of, shareReplay, switchMap, tap} from 'rxjs'; import { PageSplitOption } from 'src/app/_models/preferences/page-split-option'; import { ReaderMode } from 'src/app/_models/preferences/reader-mode'; @@ -31,6 +21,10 @@ import {ReadingProfile} from "../../../_models/preferences/reading-profiles"; imports: [AsyncPipe, SafeStylePipe] }) export class SingleRendererComponent implements OnInit, ImageRenderer { + private readonly cdRef = inject(ChangeDetectorRef); + mangaReaderService = inject(MangaReaderService); + private document = inject(DOCUMENT); + private readonly utilityService = inject(UtilityService); private readonly injector = inject(Injector); @@ -64,9 +58,6 @@ export class SingleRendererComponent implements OnInit, ImageRenderer { get ReaderMode() {return ReaderMode;} get LayoutMode() {return LayoutMode;} - constructor(private readonly cdRef: ChangeDetectorRef, public mangaReaderService: MangaReaderService, - @Inject(DOCUMENT) private document: Document) {} - ngOnInit(): void { this.readerModeClass$ = this.readerSettings$.pipe( map(values => values.readerMode), diff --git a/UI/Web/src/app/manga-reader/_service/manga-reader.service.ts b/UI/Web/src/app/manga-reader/_service/manga-reader.service.ts index 084b1c0e7..43447dc3f 100644 --- a/UI/Web/src/app/manga-reader/_service/manga-reader.service.ts +++ b/UI/Web/src/app/manga-reader/_service/manga-reader.service.ts @@ -1,4 +1,4 @@ -import {ElementRef, Injectable, Renderer2, RendererFactory2} from '@angular/core'; +import { ElementRef, Injectable, Renderer2, RendererFactory2, inject } from '@angular/core'; import {PageSplitOption} from 'src/app/_models/preferences/page-split-option'; import {ScalingOption} from 'src/app/_models/preferences/scaling-option'; import {ReaderService} from 'src/app/_services/reader.service'; @@ -11,12 +11,16 @@ import {BookmarkInfo} from 'src/app/_models/manga-reader/bookmark-info'; providedIn: 'root' }) export class MangaReaderService { + private readerService = inject(ReaderService); + private pageDimensions: DimensionMap = {}; private pairs: {[key: number]: number} = {}; private renderer: Renderer2; - constructor(rendererFactory: RendererFactory2, private readerService: ReaderService) { + constructor() { + const rendererFactory = inject(RendererFactory2); + this.renderer = rendererFactory.createRenderer(null, null); } diff --git a/UI/Web/src/app/metadata-filter/_components/metadata-filter-row/metadata-filter-row.component.html b/UI/Web/src/app/metadata-filter/_components/metadata-filter-row/metadata-filter-row.component.html index 2a13eb412..c688e6cdd 100644 --- a/UI/Web/src/app/metadata-filter/_components/metadata-filter-row/metadata-filter-row.component.html +++ b/UI/Web/src/app/metadata-filter/_components/metadata-filter-row/metadata-filter-row.component.html @@ -52,8 +52,7 @@ [hideSelectedItems]="true" [multiple]="isMultiSelectDropdownAllowed()" [infiniteScroll]="true" - [resettable]="true"> - + [resettable]="true" /> } } } @@ -71,7 +70,7 @@ }
    - +
    diff --git a/UI/Web/src/app/metadata-filter/metadata-filter.component.html b/UI/Web/src/app/metadata-filter/metadata-filter.component.html index 26dfd459a..cbfb4dad9 100644 --- a/UI/Web/src/app/metadata-filter/metadata-filter.component.html +++ b/UI/Web/src/app/metadata-filter/metadata-filter.component.html @@ -3,7 +3,7 @@ @if (utilityService.getActiveBreakpoint(); as activeBreakpoint) { @if (activeBreakpoint >= Breakpoint.Tablet) {
    - +
    } @else {
    @@ -13,7 +13,7 @@
    - +
    @@ -28,8 +28,7 @@ - + (update)="handleFilters($event)" />
    @@ -58,13 +57,13 @@ @if (utilityService.getActiveBreakpoint() > Breakpoint.Tablet) { - + }
    @if (utilityService.getActiveBreakpoint() <= Breakpoint.Tablet) {
    - +
    }
    diff --git a/UI/Web/src/app/nav/_components/grouped-typeahead/grouped-typeahead.component.html b/UI/Web/src/app/nav/_components/grouped-typeahead/grouped-typeahead.component.html index e3260c1d7..95c656d26 100644 --- a/UI/Web/src/app/nav/_components/grouped-typeahead/grouped-typeahead.component.html +++ b/UI/Web/src/app/nav/_components/grouped-typeahead/grouped-typeahead.component.html @@ -33,7 +33,7 @@ @for(option of groupedData.series; track option; let index = $index) {
  3. - +
  4. } @@ -46,7 +46,7 @@ @for(option of groupedData.collections; track option; let index = $index) {
  5. - +
  6. } @@ -59,7 +59,7 @@ @for(option of groupedData.readingLists; track option; let index = $index) {
  7. - +
  8. } @@ -71,7 +71,7 @@ @for(option of groupedData.bookmarks; track option; let index = $index) {
  9. - +
  10. } @@ -84,7 +84,7 @@ @for(option of groupedData.libraries; track option; let index = $index) {
  11. - +
  12. } @@ -96,7 +96,7 @@ @for(option of groupedData.genres; track option; let index = $index) {
  13. - +
  14. } @@ -108,7 +108,7 @@ @for(option of groupedData.tags; track option; let index = $index) {
  15. - +
  16. } @@ -120,7 +120,7 @@ @for(option of groupedData.persons; track option; let index = $index) {
  17. - +
  18. } @@ -132,7 +132,7 @@ @for(option of groupedData.chapters; track option; let index = $index) {
  19. - +
  20. } @@ -144,7 +144,7 @@ @for(option of groupedData.files; track option; let index = $index) {
  21. - +
  22. } @@ -156,7 +156,7 @@ @for(option of groupedData.annotations; track option; let index = $index) {
  23. - +
  24. } @@ -166,14 +166,14 @@
    • - +
    } @if (searchTerm.length > 0 && !isLoading) {
  25. - +
    - +
    - + @let normalizedSearchTerm = searchTerm.toLowerCase().trim(); @@ -79,10 +79,10 @@
    - +
    - + @if (searchTerm.toLowerCase().trim(); as st) { @if (item.seriesName.toLowerCase().trim().indexOf(st) >= 0) { @@ -98,14 +98,14 @@
    - +
    {{item.title}} - +
    - +
    @@ -114,7 +114,7 @@
    {{item.title}} - +
    @@ -132,7 +132,7 @@
    + width="24px" [imageUrl]="imageService.getPersonImage(item.id)" [errorImage]="imageService.noPersonImage" />
    @@ -161,7 +161,7 @@
    @if (item.files.length > 0) { - + } {{item.titleName || item.range}} @@ -172,7 +172,7 @@
    - + {{item.filePath}}
    @@ -200,7 +200,7 @@ @if (accountService.currentUser$ | async; as user) { @if((breakpoint$ | async)! <= Breakpoint.Mobile) { diff --git a/UI/Web/src/app/ng-swipe/ng-swipe.directive.ts b/UI/Web/src/app/ng-swipe/ng-swipe.directive.ts index 41a8d164b..7c34f5a83 100644 --- a/UI/Web/src/app/ng-swipe/ng-swipe.directive.ts +++ b/UI/Web/src/app/ng-swipe/ng-swipe.directive.ts @@ -1,4 +1,4 @@ -import {Directive, ElementRef, EventEmitter, Input, NgZone, OnDestroy, OnInit, Output} from '@angular/core'; +import { Directive, ElementRef, EventEmitter, Input, NgZone, OnDestroy, OnInit, Output, inject } from '@angular/core'; import { Subscription } from 'rxjs'; import {createSwipeSubscription, SwipeDirection, SwipeEvent, SwipeStartEvent} from './ag-swipe.core'; @@ -7,6 +7,9 @@ import {createSwipeSubscription, SwipeDirection, SwipeEvent, SwipeStartEvent} fr standalone: true }) export class SwipeDirective implements OnInit, OnDestroy { + private elementRef = inject(ElementRef); + private zone = inject(NgZone); + private swipeSubscription: Subscription | undefined; @Input() restrictSwipeToLeftSide: boolean = false; @@ -17,11 +20,6 @@ export class SwipeDirective implements OnInit, OnDestroy { @Output() swipeUp: EventEmitter = new EventEmitter(); @Output() swipeDown: EventEmitter = new EventEmitter(); - constructor( - private elementRef: ElementRef, - private zone: NgZone - ) {} - ngOnInit() { this.zone.runOutsideAngular(() => { this.swipeSubscription = createSwipeSubscription({ diff --git a/UI/Web/src/app/pdf-reader/_components/pdf-reader/pdf-reader.component.html b/UI/Web/src/app/pdf-reader/_components/pdf-reader/pdf-reader.component.html index 234349415..cc0518803 100644 --- a/UI/Web/src/app/pdf-reader/_components/pdf-reader/pdf-reader.component.html +++ b/UI/Web/src/app/pdf-reader/_components/pdf-reader/pdf-reader.component.html @@ -3,7 +3,7 @@
    @if (isLoading) { -
    +
    {{t('loading-message')}}
    @@ -14,10 +14,9 @@
    } - - - + /> @if (scrollMode === ScrollModeType.page && !isLoading) { @if (!isSearchOpen) { @@ -60,9 +57,9 @@
    - - - + + + @if (utilityService.getActiveBreakpoint() > Breakpoint.Mobile) {
    - +
    - - - + + + @@ -152,7 +149,7 @@
    - +
    diff --git a/UI/Web/src/app/pdf-reader/_components/pdf-reader/pdf-reader.component.scss b/UI/Web/src/app/pdf-reader/_components/pdf-reader/pdf-reader.component.scss index edf307f5b..e4edfff31 100644 --- a/UI/Web/src/app/pdf-reader/_components/pdf-reader/pdf-reader.component.scss +++ b/UI/Web/src/app/pdf-reader/_components/pdf-reader/pdf-reader.component.scss @@ -19,6 +19,10 @@ color: lightblue !important; } +.loading-message-container { + text-align: center; + min-width: 200px; +} .progress-container { width: 100%; diff --git a/UI/Web/src/app/pdf-reader/_components/pdf-reader/pdf-reader.component.ts b/UI/Web/src/app/pdf-reader/_components/pdf-reader/pdf-reader.component.ts index 38112e190..e09fadc1e 100644 --- a/UI/Web/src/app/pdf-reader/_components/pdf-reader/pdf-reader.component.ts +++ b/UI/Web/src/app/pdf-reader/_components/pdf-reader/pdf-reader.component.ts @@ -11,7 +11,7 @@ import { ViewChild } from '@angular/core'; import {ActivatedRoute, Router} from '@angular/router'; -import {NgxExtendedPdfViewerModule, PageViewModeType, ProgressBarEvent, ScrollModeType} from 'ngx-extended-pdf-viewer'; +import {NgxExtendedPdfViewerModule, pdfDefaultOptions, PageViewModeType, ProgressBarEvent, ScrollModeType} from 'ngx-extended-pdf-viewer'; import {ToastrService} from 'ngx-toastr'; import {take} from 'rxjs'; import {BookService} from 'src/app/book-reader/_services/book.service'; @@ -126,6 +126,7 @@ export class PdfReaderComponent implements OnInit, OnDestroy { this.navService.hideNavBar(); this.themeService.clearThemes(); this.navService.hideSideNav(); + pdfDefaultOptions.disableAutoFetch = true; } @HostListener('window:keyup', ['$event']) diff --git a/UI/Web/src/app/person-detail/_modal/edit-person-modal/edit-person-modal.component.html b/UI/Web/src/app/person-detail/_modal/edit-person-modal/edit-person-modal.component.html index 4dcc3181a..a9e6ea53e 100644 --- a/UI/Web/src/app/person-detail/_modal/edit-person-modal/edit-person-modal.component.html +++ b/UI/Web/src/app/person-detail/_modal/edit-person-modal/edit-person-modal.component.html @@ -131,8 +131,7 @@ (imageSelected)="updateSelectedIndex($event)" (selectedBase64Url)="updateSelectedImage($event)" [showReset]="person.coverImageLocked" - (resetClicked)="handleReset()"> - + (resetClicked)="handleReset()" />
  26. diff --git a/UI/Web/src/app/person-detail/person-detail.component.html b/UI/Web/src/app/person-detail/person-detail.component.html index 28dc48579..3c3e73193 100644 --- a/UI/Web/src/app/person-detail/person-detail.component.html +++ b/UI/Web/src/app/person-detail/person-detail.component.html @@ -5,13 +5,13 @@

    - + {{person.name}} @if (person.aniListId) { + [errorImage]="imageService.errorWebLinkImage" /> }

    @@ -24,13 +24,12 @@ @if (HasCoverImage) {
    - + [errorImage]="imageService.noPersonImage" />
    } @else { @@ -43,7 +42,7 @@
    - + @if (person.aliases.length > 0) { @@ -96,8 +95,7 @@ [imageUrl]="imageService.getSeriesCoverImage(item.id)" [title]="item.name" [suppressArchiveWarning]="true" - (clicked)="navigateToSeries(item)"> - + (clicked)="navigateToSeries(item)" />
    @@ -110,9 +108,7 @@
    - - - +
    diff --git a/UI/Web/src/app/reading-list/_components/draggable-ordered-list/draggable-ordered-list.component.html b/UI/Web/src/app/reading-list/_components/draggable-ordered-list/draggable-ordered-list.component.html index f1ee4e02a..8a0070581 100644 --- a/UI/Web/src/app/reading-list/_components/draggable-ordered-list/draggable-ordered-list.component.html +++ b/UI/Web/src/app/reading-list/_components/draggable-ordered-list/draggable-ordered-list.component.html @@ -5,11 +5,11 @@ @for (item of scroll.viewPortItems; track trackByIdentity(i, item); let i = $index) {
    - - + + @if (showRemoveButton) { - + }
    @@ -24,11 +24,11 @@ [cdkDragData]="item" cdkDragBoundary=".example-list" [cdkDragDisabled]="accessibilityMode || disabled || bulkMode" cdkDragPreviewContainer="parent">
    - - + + @if (showRemoveButton) { - + }
    diff --git a/UI/Web/src/app/reading-list/_components/import-cbl/import-cbl.component.html b/UI/Web/src/app/reading-list/_components/import-cbl/import-cbl.component.html index 6c74b9f2e..bcc6c9165 100644 --- a/UI/Web/src/app/reading-list/_components/import-cbl/import-cbl.component.html +++ b/UI/Web/src/app/reading-list/_components/import-cbl/import-cbl.component.html @@ -1,7 +1,7 @@
    - +
    @@ -12,7 +12,7 @@

    - +
    } @@ -25,12 +25,12 @@
    - +
    @@ -49,12 +49,12 @@
    - +
    @@ -71,12 +71,12 @@
    - +
    diff --git a/UI/Web/src/app/reading-list/_components/reading-list-detail/reading-list-detail.component.html b/UI/Web/src/app/reading-list/_components/reading-list-detail/reading-list-detail.component.html index 67683de34..7387cd9d7 100644 --- a/UI/Web/src/app/reading-list/_components/reading-list-detail/reading-list-detail.component.html +++ b/UI/Web/src/app/reading-list/_components/reading-list-detail/reading-list-detail.component.html @@ -5,13 +5,13 @@
    - +

    - + {{readingList.title}} @if(isLoading) {
    @@ -85,7 +85,7 @@
    - +
    @@ -100,7 +100,7 @@
    - +
    @@ -220,7 +220,7 @@ {{t('no-data')}}
    } @else if(isLoading) { - + } @if(formGroup.get('edit')?.value && (items.length > 100 || utilityService.getActiveBreakpoint() < Breakpoint.Tablet)) { diff --git a/UI/Web/src/app/reading-list/_components/reading-list-detail/reading-list-detail.component.ts b/UI/Web/src/app/reading-list/_components/reading-list-detail/reading-list-detail.component.ts index 3056d7eb5..0e503aec2 100644 --- a/UI/Web/src/app/reading-list/_components/reading-list-detail/reading-list-detail.component.ts +++ b/UI/Web/src/app/reading-list/_components/reading-list-detail/reading-list-detail.component.ts @@ -1,14 +1,4 @@ -import { - ChangeDetectionStrategy, - ChangeDetectorRef, - Component, - DestroyRef, - ElementRef, - Inject, - inject, - OnInit, - ViewChild -} from '@angular/core'; +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, ElementRef, inject, OnInit, ViewChild } from '@angular/core'; import {ActivatedRoute, Router, RouterLink} from '@angular/router'; import {AsyncPipe, DatePipe, DecimalPipe, DOCUMENT, Location, NgClass, NgStyle} from '@angular/common'; import {ToastrService} from 'ngx-toastr'; @@ -80,6 +70,8 @@ enum TabID { RouterLink, VirtualScrollerModule, NgStyle, NgbNavOutlet, NgbNavItem, PromotedIconComponent, DefaultValuePipe, DetailsTabComponent] }) export class ReadingListDetailComponent implements OnInit { + private document = inject(DOCUMENT); + protected readonly MangaFormat = MangaFormat; protected readonly Breakpoint = Breakpoint; @@ -170,8 +162,6 @@ export class ReadingListDetailComponent implements OnInit { return 'calc(var(--vh)*100 - ' + totalHeight + 'px)'; } - constructor(@Inject(DOCUMENT) private document: Document) {} - ngOnInit(): void { const listId = this.route.snapshot.paramMap.get('id'); diff --git a/UI/Web/src/app/reading-list/_components/reading-list-item/reading-list-item.component.html b/UI/Web/src/app/reading-list/_components/reading-list-item/reading-list-item.component.html index 988f08032..0937aebce 100644 --- a/UI/Web/src/app/reading-list/_components/reading-list-item/reading-list-item.component.html +++ b/UI/Web/src/app/reading-list/_components/reading-list-item/reading-list-item.component.html @@ -1,13 +1,13 @@
    - + @if (item.pagesRead === 0 && item.pagesTotal > 0) {
    } @if (item.pagesRead < item.pagesTotal && item.pagesTotal > 0 && item.pagesRead !== item.pagesTotal) {
    -

    +

    }
    @@ -38,11 +38,11 @@

    - + @if (item.releaseDate !== '0001-01-01T00:00:00') { diff --git a/UI/Web/src/app/reading-list/_components/reading-lists/reading-lists.component.html b/UI/Web/src/app/reading-list/_components/reading-lists/reading-lists.component.html index 247cc38c0..9d8ec4a64 100644 --- a/UI/Web/src/app/reading-list/_components/reading-lists/reading-lists.component.html +++ b/UI/Web/src/app/reading-list/_components/reading-lists/reading-lists.component.html @@ -3,14 +3,14 @@

    {{t('title')}} - +

    @if (pagination) {
    {{t('item-count', {num: pagination.totalItems | number})}}
    }
    - + - + (selection)="bulkSelectionService.handleCardSelection('readingList', position, lists.length, $event)" /> diff --git a/UI/Web/src/app/reading-list/_components/reading-lists/reading-lists.component.ts b/UI/Web/src/app/reading-list/_components/reading-lists/reading-lists.component.ts index 976bebbda..58c5a2c8f 100644 --- a/UI/Web/src/app/reading-list/_components/reading-lists/reading-lists.component.ts +++ b/UI/Web/src/app/reading-list/_components/reading-lists/reading-lists.component.ts @@ -35,6 +35,17 @@ import {User} from "../../../_models/user"; DecimalPipe, TranslocoDirective, BulkOperationsComponent] }) export class ReadingListsComponent implements OnInit { + private readingListService = inject(ReadingListService); + imageService = inject(ImageService); + private actionFactoryService = inject(ActionFactoryService); + private accountService = inject(AccountService); + private toastr = inject(ToastrService); + private router = inject(Router); + private jumpbarService = inject(JumpbarService); + private readonly cdRef = inject(ChangeDetectorRef); + private ngbModal = inject(NgbModal); + private titleService = inject(Title); + protected readonly WikiLink = WikiLink; protected readonly bulkSelectionService = inject(BulkSelectionService); @@ -51,11 +62,6 @@ export class ReadingListsComponent implements OnInit { globalActions: Array> = []; trackByIdentity = (index: number, item: ReadingList) => `${item.id}_${item.title}_${item.promoted}`; - - constructor(private readingListService: ReadingListService, public imageService: ImageService, private actionFactoryService: ActionFactoryService, - private accountService: AccountService, private toastr: ToastrService, private router: Router, - private jumpbarService: JumpbarService, private readonly cdRef: ChangeDetectorRef, private ngbModal: NgbModal, private titleService: Title) { } - ngOnInit(): void { this.accountService.currentUser$.pipe(take(1)).subscribe(user => { if (user) { diff --git a/UI/Web/src/app/reading-list/_components/step-tracker/step-tracker.component.html b/UI/Web/src/app/reading-list/_components/step-tracker/step-tracker.component.html index 8f3f10754..c1ae3cac4 100644 --- a/UI/Web/src/app/reading-list/_components/step-tracker/step-tracker.component.html +++ b/UI/Web/src/app/reading-list/_components/step-tracker/step-tracker.component.html @@ -1,11 +1,11 @@ -
    -
      - -
    • -
      - {{step.title}} -
    • -
      -
    +
    +
      + @for (step of steps; track step) { +
    • +
      + {{step.title}} +
    • + } +
    \ No newline at end of file diff --git a/UI/Web/src/app/reading-list/_components/step-tracker/step-tracker.component.ts b/UI/Web/src/app/reading-list/_components/step-tracker/step-tracker.component.ts index 30f0fd25b..0f08299f6 100644 --- a/UI/Web/src/app/reading-list/_components/step-tracker/step-tracker.component.ts +++ b/UI/Web/src/app/reading-list/_components/step-tracker/step-tracker.component.ts @@ -1,4 +1,4 @@ -import { Component, Input, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core'; +import { Component, Input, ChangeDetectionStrategy, ChangeDetectorRef, inject } from '@angular/core'; import {CommonModule} from "@angular/common"; @@ -18,10 +18,9 @@ export interface TimelineStep { changeDetection: ChangeDetectionStrategy.OnPush }) export class StepTrackerComponent { + private readonly cdRef = inject(ChangeDetectorRef); + @Input() steps: Array = []; @Input() currentStep: number = 0; - - constructor(private readonly cdRef: ChangeDetectorRef) {} - } diff --git a/UI/Web/src/app/reading-list/_modals/add-to-list-modal/add-to-list-modal.component.html b/UI/Web/src/app/reading-list/_modals/add-to-list-modal/add-to-list-modal.component.html index 0b7f61ca1..f9b7ef959 100644 --- a/UI/Web/src/app/reading-list/_modals/add-to-list-modal/add-to-list-modal.component.html +++ b/UI/Web/src/app/reading-list/_modals/add-to-list-modal/add-to-list-modal.component.html @@ -8,38 +8,48 @@
    -
    - - -
    + @if (isAdmin && !individualUserMode) { +
    + + +
    + }
    @@ -29,31 +35,29 @@
    - - - - + @if (data$ | async; as data) { + @if (data.length > 0) { + + } @else { + {{t('no-data')}} + } + }
    - - {{t('no-data')}} -
    diff --git a/UI/Web/src/app/statistics/_components/reading-activity/reading-activity.component.ts b/UI/Web/src/app/statistics/_components/reading-activity/reading-activity.component.ts index cbaa01675..7fcd4a014 100644 --- a/UI/Web/src/app/statistics/_components/reading-activity/reading-activity.component.ts +++ b/UI/Web/src/app/statistics/_components/reading-activity/reading-activity.component.ts @@ -8,7 +8,7 @@ import { PieDataItem } from '../../_models/pie-data-item'; import { TimePeriods } from '../top-readers/top-readers.component'; import {takeUntilDestroyed} from "@angular/core/rxjs-interop"; import { LineChartModule } from '@swimlane/ngx-charts'; -import { NgIf, NgFor, AsyncPipe } from '@angular/common'; +import { AsyncPipe } from '@angular/common'; import {TranslocoDirective} from "@jsverse/transloco"; const options: Intl.DateTimeFormatOptions = { month: "short", day: "numeric" }; @@ -19,7 +19,7 @@ const options: Intl.DateTimeFormatOptions = { month: "short", day: "numeric" }; templateUrl: './reading-activity.component.html', styleUrls: ['./reading-activity.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [ReactiveFormsModule, NgIf, NgFor, LineChartModule, AsyncPipe, TranslocoDirective] + imports: [ReactiveFormsModule, LineChartModule, AsyncPipe, TranslocoDirective] }) export class ReadingActivityComponent implements OnInit { /** diff --git a/UI/Web/src/app/statistics/_components/server-stats/server-stats.component.html b/UI/Web/src/app/statistics/_components/server-stats/server-stats.component.html index 6a19e0a8e..6f0dc647a 100644 --- a/UI/Web/src/app/statistics/_components/server-stats/server-stats.component.html +++ b/UI/Web/src/app/statistics/_components/server-stats/server-stats.component.html @@ -1,113 +1,107 @@ -
    - -
    - - {{t('series-count', {num: stats.seriesCount | number})}} - -
    -
    -
    - - -
    - - {{t('volume-count', {num: stats.volumeCount | number})}} - -
    -
    -
    - - -
    - - {{t('file-count', {num: stats.totalFiles | number})}} - -
    -
    -
    - - -
    - - {{stats.totalSize | bytes}} - -
    -
    -
    - - -
    - - {{t('genre-count', {num: stats.totalGenres | compactNumber})}} - -
    -
    -
    - - -
    - - {{t('tag-count', {num: stats.totalTags | compactNumber})}} - -
    -
    -
    - - -
    - - {{t('people-count', {num: stats.totalPeople | compactNumber})}} - -
    -
    -
    - - -
    - - {{stats.totalReadingTime | timeDuration}} - -
    -
    -
    + @if (stats$ | async; as stats) { +
    + +
    + + {{t('series-count', {num: stats.seriesCount | number})}} + +
    +
    +
    + +
    + + {{t('volume-count', {num: stats.volumeCount | number})}} + +
    +
    +
    + +
    + + {{t('file-count', {num: stats.totalFiles | number})}} + +
    +
    +
    + +
    + + {{stats.totalSize | bytes}} + +
    +
    +
    + +
    + + {{t('genre-count', {num: stats.totalGenres | compactNumber})}} + +
    +
    +
    + +
    + + {{t('tag-count', {num: stats.totalTags | compactNumber})}} + +
    +
    +
    + +
    + + {{t('people-count', {num: stats.totalPeople | compactNumber})}} + +
    +
    +
    + +
    + + {{stats.totalReadingTime | timeDuration}} + +
    +
    +
    + }
    - +
    - +
    - +
    - - +
    - +
    - +
    - +
    - +
    - +
    - +
    diff --git a/UI/Web/src/app/statistics/_components/server-stats/server-stats.component.ts b/UI/Web/src/app/statistics/_components/server-stats/server-stats.component.ts index cb254f413..638ae0516 100644 --- a/UI/Web/src/app/statistics/_components/server-stats/server-stats.component.ts +++ b/UI/Web/src/app/statistics/_components/server-stats/server-stats.component.ts @@ -22,7 +22,7 @@ import {FileBreakdownStatsComponent} from '../file-breakdown-stats/file-breakdow import {TopReadersComponent} from '../top-readers/top-readers.component'; import {StatListComponent} from '../stat-list/stat-list.component'; import {IconAndTitleComponent} from '../../../shared/icon-and-title/icon-and-title.component'; -import {AsyncPipe, DecimalPipe, NgIf} from '@angular/common'; +import { AsyncPipe, DecimalPipe } from '@angular/common'; import {translate, TranslocoDirective} from "@jsverse/transloco"; import {FilterComparison} from "../../../_models/metadata/v2/filter-comparison"; import {FilterField} from "../../../_models/metadata/v2/filter-field"; @@ -33,11 +33,17 @@ import {AccountService} from "../../../_services/account.service"; templateUrl: './server-stats.component.html', styleUrls: ['./server-stats.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [NgIf, IconAndTitleComponent, StatListComponent, TopReadersComponent, FileBreakdownStatsComponent, - PublicationStatusStatsComponent, ReadingActivityComponent, DayBreakdownComponent, AsyncPipe, DecimalPipe, - CompactNumberPipe, TimeDurationPipe, BytesPipe, TranslocoDirective] + imports: [IconAndTitleComponent, StatListComponent, TopReadersComponent, FileBreakdownStatsComponent, PublicationStatusStatsComponent, ReadingActivityComponent, DayBreakdownComponent, AsyncPipe, DecimalPipe, CompactNumberPipe, TimeDurationPipe, BytesPipe, TranslocoDirective] }) export class ServerStatsComponent { + private statService = inject(StatisticsService); + private router = inject(Router); + private imageService = inject(ImageService); + private metadataService = inject(MetadataService); + private modalService = inject(NgbModal); + private utilityService = inject(UtilityService); + private filterUtilityService = inject(FilterUtilitiesService); + private readonly destroyRef = inject(DestroyRef); protected readonly accountService = inject(AccountService); @@ -67,9 +73,7 @@ export class ServerStatsComponent { get Breakpoint() { return Breakpoint; } - constructor(private statService: StatisticsService, private router: Router, private imageService: ImageService, - private metadataService: MetadataService, private modalService: NgbModal, private utilityService: UtilityService, - private filterUtilityService: FilterUtilitiesService) { + constructor() { this.seriesImage = (data: PieDataItem) => { if (data.extra) return this.imageService.getSeriesCoverImage(data.extra.id); return ''; diff --git a/UI/Web/src/app/statistics/_components/stat-list/stat-list.component.html b/UI/Web/src/app/statistics/_components/stat-list/stat-list.component.html index 8d2d4f942..7c19ad80d 100644 --- a/UI/Web/src/app/statistics/_components/stat-list/stat-list.component.html +++ b/UI/Web/src/app/statistics/_components/stat-list/stat-list.component.html @@ -11,7 +11,7 @@
  27. @if (image && image(item); as url) { @if (url && url.length > 0) { - + } } {{item.name}} diff --git a/UI/Web/src/app/statistics/_components/user-stats-info-cards/user-stats-info-cards.component.ts b/UI/Web/src/app/statistics/_components/user-stats-info-cards/user-stats-info-cards.component.ts index d9dd6300e..4f95003a2 100644 --- a/UI/Web/src/app/statistics/_components/user-stats-info-cards/user-stats-info-cards.component.ts +++ b/UI/Web/src/app/statistics/_components/user-stats-info-cards/user-stats-info-cards.component.ts @@ -1,4 +1,4 @@ -import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; +import { ChangeDetectionStrategy, Component, Input, inject } from '@angular/core'; import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; import { StatisticsService } from 'src/app/_services/statistics.service'; import { GenericListModalComponent } from '../_modals/generic-list-modal/generic-list-modal.component'; @@ -18,6 +18,10 @@ import {translate, TranslocoDirective} from "@jsverse/transloco"; imports: [IconAndTitleComponent, DecimalPipe, CompactNumberPipe, TimeDurationPipe, TimeAgoPipe, TranslocoDirective] }) export class UserStatsInfoCardsComponent { + private statsService = inject(StatisticsService); + private modalService = inject(NgbModal); + private accountService = inject(AccountService); + @Input() totalPagesRead: number = 0; @Input() totalWordsRead: number = 0; @@ -26,8 +30,6 @@ export class UserStatsInfoCardsComponent { @Input() lastActive: string = ''; @Input() avgHoursPerWeekSpentReading: number = 0; - constructor(private statsService: StatisticsService, private modalService: NgbModal, private accountService: AccountService) { } - openPageByYearList() { const numberPipe = new CompactNumberPipe(); this.statsService.getPagesPerYear().subscribe(yearCounts => { diff --git a/UI/Web/src/app/statistics/_components/user-stats/user-stats.component.html b/UI/Web/src/app/statistics/_components/user-stats/user-stats.component.html index 3dc65aff7..2ed0656fb 100644 --- a/UI/Web/src/app/statistics/_components/user-stats/user-stats.component.html +++ b/UI/Web/src/app/statistics/_components/user-stats/user-stats.component.html @@ -1,25 +1,22 @@ -
    - -
    - - - + @if (userId) { +
    +
    + @if (userStats$ | async; as userStats) { + + } +
    +
    + +
    +
    + +
    +
    + +
    - -
    - -
    - -
    - -
    - -
    - -
    - -
    + } diff --git a/UI/Web/src/app/statistics/_components/user-stats/user-stats.component.ts b/UI/Web/src/app/statistics/_components/user-stats/user-stats.component.ts index 2d788e735..4992b6be9 100644 --- a/UI/Web/src/app/statistics/_components/user-stats/user-stats.component.ts +++ b/UI/Web/src/app/statistics/_components/user-stats/user-stats.component.ts @@ -7,7 +7,7 @@ import {MemberService} from 'src/app/_services/member.service'; import {AccountService} from 'src/app/_services/account.service'; import {PieDataItem} from '../../_models/pie-data-item'; import {LibraryService} from 'src/app/_services/library.service'; -import {AsyncPipe, NgIf, PercentPipe} from '@angular/common'; +import { AsyncPipe, PercentPipe } from '@angular/common'; import {takeUntilDestroyed} from "@angular/core/rxjs-interop"; import {StatListComponent} from '../stat-list/stat-list.component'; import {ReadingActivityComponent} from '../reading-activity/reading-activity.component'; @@ -21,14 +21,13 @@ import {DayBreakdownComponent} from "../day-breakdown/day-breakdown.component"; styleUrls: ['./user-stats.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, imports: [ - NgIf, - UserStatsInfoCardsComponent, - ReadingActivityComponent, - StatListComponent, - AsyncPipe, - TranslocoModule, - DayBreakdownComponent, - ] + UserStatsInfoCardsComponent, + ReadingActivityComponent, + StatListComponent, + AsyncPipe, + TranslocoModule, + DayBreakdownComponent +] }) export class UserStatsComponent implements OnInit { diff --git a/UI/Web/src/app/typeahead/_components/typeahead.component.html b/UI/Web/src/app/typeahead/_components/typeahead.component.html index b87b6cdd6..71b35e71f 100644 --- a/UI/Web/src/app/typeahead/_components/typeahead.component.html +++ b/UI/Web/src/app/typeahead/_components/typeahead.component.html @@ -12,7 +12,7 @@ @if (optionSelection) { @for (option of optionSelection.selected(); track option; let i = $index) { - + @if (!disabled) { } @@ -53,7 +53,7 @@
  28. - +
  29. } diff --git a/UI/Web/src/app/typeahead/_components/typeahead.component.ts b/UI/Web/src/app/typeahead/_components/typeahead.component.ts index 17dbc7b4c..9d6a26ae1 100644 --- a/UI/Web/src/app/typeahead/_components/typeahead.component.ts +++ b/UI/Web/src/app/typeahead/_components/typeahead.component.ts @@ -1,24 +1,6 @@ import {animate, state, style, transition, trigger} from '@angular/animations'; import {AsyncPipe, DOCUMENT, NgClass, NgTemplateOutlet} from '@angular/common'; -import { - ChangeDetectionStrategy, - ChangeDetectorRef, - Component, - ContentChild, - DestroyRef, - ElementRef, - EventEmitter, - HostListener, - inject, - Inject, - Input, - OnInit, - Output, - Renderer2, - RendererStyleFlags2, - TemplateRef, - ViewChild -} from '@angular/core'; +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, DestroyRef, ElementRef, EventEmitter, HostListener, inject, Input, OnInit, Output, Renderer2, RendererStyleFlags2, TemplateRef, ViewChild } from '@angular/core'; import {FormControl, FormGroup, ReactiveFormsModule} from '@angular/forms'; import {Observable, ReplaySubject} from 'rxjs'; import {auditTime, filter, map, shareReplay, switchMap, take, tap} from 'rxjs/operators'; @@ -52,6 +34,8 @@ const ANIMATION_SPEED = 200; ] }) export class TypeaheadComponent implements OnInit { + private document = inject(DOCUMENT); + /** * Settings for the typeahead */ @@ -102,8 +86,6 @@ export class TypeaheadComponent implements OnInit { private readonly renderer2 = inject(Renderer2); private readonly cdRef = inject(ChangeDetectorRef); - constructor(@Inject(DOCUMENT) private document: Document) { } - ngOnInit() { this.reset.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((resetToEmpty: boolean) => { this.clearSelections(resetToEmpty); diff --git a/UI/Web/src/app/user-settings/_modals/edit-device-modal/edit-device-modal.component.html b/UI/Web/src/app/user-settings/_modals/edit-device-modal/edit-device-modal.component.html index daf81cda6..b41d94a7a 100644 --- a/UI/Web/src/app/user-settings/_modals/edit-device-modal/edit-device-modal.component.html +++ b/UI/Web/src/app/user-settings/_modals/edit-device-modal/edit-device-modal.component.html @@ -24,7 +24,7 @@ {{t('email-tooltip')}} - + diff --git a/UI/Web/src/app/user-settings/change-age-restriction/change-age-restriction.component.html b/UI/Web/src/app/user-settings/change-age-restriction/change-age-restriction.component.html index 660cf3e89..a977ecd6b 100644 --- a/UI/Web/src/app/user-settings/change-age-restriction/change-age-restriction.component.html +++ b/UI/Web/src/app/user-settings/change-age-restriction/change-age-restriction.component.html @@ -9,7 +9,7 @@ - +
    diff --git a/UI/Web/src/app/user-settings/change-email/change-email.component.html b/UI/Web/src/app/user-settings/change-email/change-email.component.html index fd1d62bd7..63330eca7 100644 --- a/UI/Web/src/app/user-settings/change-email/change-email.component.html +++ b/UI/Web/src/app/user-settings/change-email/change-email.component.html @@ -2,7 +2,7 @@ - {{user?.email}} + {{user?.email | defaultValue}} @if(emailConfirmed) { {{t('email-confirmed')}} @@ -68,7 +68,7 @@

    {{t('email-updated-title')}}

    {{t('email-updated-description')}}

    - + }
    diff --git a/UI/Web/src/app/user-settings/change-email/change-email.component.ts b/UI/Web/src/app/user-settings/change-email/change-email.component.ts index cbd5a0b06..8189edbe5 100644 --- a/UI/Web/src/app/user-settings/change-email/change-email.component.ts +++ b/UI/Web/src/app/user-settings/change-email/change-email.component.ts @@ -9,13 +9,14 @@ import {ApiKeyComponent} from '../api-key/api-key.component'; import {NgbTooltip} from '@ng-bootstrap/ng-bootstrap'; import {translate, TranslocoDirective} from "@jsverse/transloco"; import {SettingItemComponent} from "../../settings/_components/setting-item/setting-item.component"; +import {DefaultValuePipe} from "../../_pipes/default-value.pipe"; @Component({ selector: 'app-change-email', templateUrl: './change-email.component.html', styleUrls: ['./change-email.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, - imports: [NgbTooltip, ReactiveFormsModule, ApiKeyComponent, TranslocoDirective, SettingItemComponent] + imports: [NgbTooltip, ReactiveFormsModule, ApiKeyComponent, TranslocoDirective, SettingItemComponent, DefaultValuePipe] }) export class ChangeEmailComponent implements OnInit { diff --git a/UI/Web/src/app/user-settings/manage-devices/manage-devices.component.html b/UI/Web/src/app/user-settings/manage-devices/manage-devices.component.html index 8844da749..d02f1ef83 100644 --- a/UI/Web/src/app/user-settings/manage-devices/manage-devices.component.html +++ b/UI/Web/src/app/user-settings/manage-devices/manage-devices.component.html @@ -46,8 +46,7 @@ - - +
    @if (isEditMode) {
    - +
    } diff --git a/UI/Web/src/app/user-settings/theme-manager/theme-manager.component.html b/UI/Web/src/app/user-settings/theme-manager/theme-manager.component.html index 9e694327b..4e129ad73 100644 --- a/UI/Web/src/app/user-settings/theme-manager/theme-manager.component.html +++ b/UI/Web/src/app/user-settings/theme-manager/theme-manager.component.html @@ -21,7 +21,7 @@ @for (theme of downloadedThemes; track theme.name) { - + } @for (theme of downloadableThemes; track theme.name) { - + }
    @@ -55,7 +55,7 @@ @if (files && files.length > 0) { - + } @else if (hasAdmin$ | async) { @@ -104,7 +104,7 @@ - + } @else { @@ -112,7 +112,7 @@ - + } diff --git a/UI/Web/src/app/user-settings/user-holds/scrobbling-holds.component.html b/UI/Web/src/app/user-settings/user-holds/scrobbling-holds.component.html index 6bc5cd859..c6618710a 100644 --- a/UI/Web/src/app/user-settings/user-holds/scrobbling-holds.component.html +++ b/UI/Web/src/app/user-settings/user-holds/scrobbling-holds.component.html @@ -16,7 +16,7 @@ {{t('series-name-header')}} - + {{item.seriesName}} @@ -32,9 +32,7 @@ - - - + diff --git a/UI/Web/src/app/volume-detail/volume-detail.component.html b/UI/Web/src/app/volume-detail/volume-detail.component.html index 0e9fb51da..fa82a1f92 100644 --- a/UI/Web/src/app/volume-detail/volume-detail.component.html +++ b/UI/Web/src/app/volume-detail/volume-detail.component.html @@ -1,13 +1,13 @@ - +
    @if (volume && series && libraryType !== null) {
    - +
    @@ -17,7 +17,7 @@
    {{t('volume-num')}} - +
    @@ -26,8 +26,7 @@ [hasReadingProgress]="volume.pagesRead > 0" [readingTimeEntity]="volume" [libraryType]="libraryType" - [mangaFormat]="series.format"> - + [mangaFormat]="series.format" /> @if (libraryType !== null && series && volume.chapters.length === 1) {
    @@ -77,19 +76,19 @@
    - +
    - +
    - +
    @@ -172,7 +171,7 @@ [actions]="chapterActions" (selection)="bulkSelectionService.handleCardSelection('chapter', scroll.viewPortInfo.startIndexWithBuffer + idx, volume!.chapters.length, $event)" [selected]="bulkSelectionService.isCardSelected('chapter', scroll.viewPortInfo.startIndexWithBuffer + idx)" [allowSelection]="true" - > + /> }
    @@ -185,7 +184,7 @@ {{t('related-tab')}} @defer (when activeTabId === TabID.Related; prefetch on idle) { - + } @@ -199,7 +198,7 @@ @defer (when activeTabId === TabID.Annotations; prefetch on idle) { - + } @@ -229,7 +228,7 @@ [tags]="tags" [readingTime]="volume" [language]="volume.chapters[0].language" - [format]="series.format"> + [format]="series.format" /> } @@ -242,7 +241,7 @@ - +
    diff --git a/UI/Web/src/app/want-to-read/_components/want-to-read/want-to-read.component.html b/UI/Web/src/app/want-to-read/_components/want-to-read/want-to-read.component.html index 291783375..86e18ad0c 100644 --- a/UI/Web/src/app/want-to-read/_components/want-to-read/want-to-read.component.html +++ b/UI/Web/src/app/want-to-read/_components/want-to-read/want-to-read.component.html @@ -12,7 +12,7 @@
    - + @if (filter) { + /> @if (!filterActive && series.length === 0) { diff --git a/UI/Web/src/app/want-to-read/_components/want-to-read/want-to-read.component.ts b/UI/Web/src/app/want-to-read/_components/want-to-read/want-to-read.component.ts index b16d1f9fc..52f54f2bb 100644 --- a/UI/Web/src/app/want-to-read/_components/want-to-read/want-to-read.component.ts +++ b/UI/Web/src/app/want-to-read/_components/want-to-read/want-to-read.component.ts @@ -1,17 +1,5 @@ import {DecimalPipe, DOCUMENT, NgStyle} from '@angular/common'; -import { - AfterContentChecked, - ChangeDetectionStrategy, - ChangeDetectorRef, - Component, - DestroyRef, - ElementRef, - EventEmitter, - inject, - Inject, - OnInit, - ViewChild -} from '@angular/core'; +import { AfterContentChecked, ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, ElementRef, EventEmitter, inject, OnInit, ViewChild } from '@angular/core'; import {Title} from '@angular/platform-browser'; import {ActivatedRoute, Router} from '@angular/router'; import {debounceTime, take} from 'rxjs'; @@ -54,6 +42,22 @@ import {FilterComparison} from "../../../_models/metadata/v2/filter-comparison"; imports: [SideNavCompanionBarComponent, NgStyle, BulkOperationsComponent, CardDetailLayoutComponent, SeriesCardComponent, DecimalPipe, TranslocoDirective] }) export class WantToReadComponent implements OnInit, AfterContentChecked { + imageService = inject(ImageService); + private router = inject(Router); + private route = inject(ActivatedRoute); + private seriesService = inject(SeriesService); + private titleService = inject(Title); + bulkSelectionService = inject(BulkSelectionService); + private actionService = inject(ActionService); + private messageHub = inject(MessageHubService); + private filterUtilityService = inject(FilterUtilitiesService); + private utilityService = inject(UtilityService); + private document = inject(DOCUMENT); + private readonly cdRef = inject(ChangeDetectorRef); + private scrollService = inject(ScrollService); + private hubService = inject(MessageHubService); + private jumpbarService = inject(JumpbarService); + @ViewChild('scrollingBlock') scrollingBlock: ElementRef | undefined; @ViewChild('companionBar') companionBar: ElementRef | undefined; @@ -103,12 +107,7 @@ export class WantToReadComponent implements OnInit, AfterContentChecked { return 'calc(var(--vh)*100 - ' + totalHeight + 'px)'; } - constructor(public imageService: ImageService, private router: Router, private route: ActivatedRoute, - private seriesService: SeriesService, private titleService: Title, - public bulkSelectionService: BulkSelectionService, private actionService: ActionService, private messageHub: MessageHubService, - private filterUtilityService: FilterUtilitiesService, private utilityService: UtilityService, @Inject(DOCUMENT) private document: Document, - private readonly cdRef: ChangeDetectorRef, private scrollService: ScrollService, private hubService: MessageHubService, - private jumpbarService: JumpbarService) { + constructor() { this.router.routeReuseStrategy.shouldReuseRoute = () => false; this.titleService.setTitle('Kavita - ' + translate('want-to-read.title')); diff --git a/UI/Web/src/assets/langs/cs.json b/UI/Web/src/assets/langs/cs.json index 70f8b1a0e..027ebb3d8 100644 --- a/UI/Web/src/assets/langs/cs.json +++ b/UI/Web/src/assets/langs/cs.json @@ -2134,7 +2134,7 @@ }, "pdf-reader": { "incognito-mode": "Anonymní režim", - "loading-message": "Načítání......PDF může trvat déle, než se očekávalo", + "loading-message": "Načítání...", "light-theme-alt": "Světlý motiv", "dark-theme-alt": "Tmavý motiv", "close-reader-alt": "Zavřít čtečku", diff --git a/UI/Web/src/assets/langs/de.json b/UI/Web/src/assets/langs/de.json index cfe306061..8fd21f430 100644 --- a/UI/Web/src/assets/langs/de.json +++ b/UI/Web/src/assets/langs/de.json @@ -1584,7 +1584,7 @@ "help-label": "{{common.help}}" }, "pdf-reader": { - "loading-message": "Das Laden von……PDFs kann länger dauern als erwartet", + "loading-message": "Laden...", "incognito-mode": "Inkognito-Modus", "light-theme-alt": "Light Schema", "dark-theme-alt": "Dunkles Schema", diff --git a/UI/Web/src/assets/langs/en.json b/UI/Web/src/assets/langs/en.json index caf700976..d32bafd69 100644 --- a/UI/Web/src/assets/langs/en.json +++ b/UI/Web/src/assets/langs/en.json @@ -33,7 +33,7 @@ "client-id-label": "Client ID", "client-id-tooltip": "The ClientID set in your OIDC provider, can be anything", "secret-label": "Client secret", - "secret-tooltip": "The secret as generated by your OIDC provider", + "secret-tooltip": "The secret as generated by your OIDC provider, will not be shown after being set", "provision-accounts-label": "Provision accounts", "provision-accounts-tooltip": "Auto-create a new account when logging in via OIDC if it can't be matched to an existing one", "require-verified-email-label": "Require verified emails", @@ -205,6 +205,8 @@ "share-series-reviews-tooltip": "Allow your reviews to be visible to other users on this server", "highlight-bar-label": "Annotations highlight colors", "highlight-bar-tooltip": "These colors are shared between all books", + "colorscape-label": "Use ColorScape", + "colorscape-tooltip": "Global toggle to enable/disable the dynamic gradient feature. Will override theme settings", "kavitaplus-settings-title": "Kavita+", "anilist-scrobbling-label": "AniList Scrobbling", @@ -597,13 +599,22 @@ "library-type-pipe": { "book": "Book", - "comic": "Comic (Legacy)", + "comic": "Comic (Flexible)", "manga": "Manga", "comicVine": "Comic", "image": "Image", "lightNovel": "Light Novel" }, + "library-type-subtitle-pipe": { + "book": "General-purpose book library.", + "comic": "Comic library with support for volume grouping and trade paperbacks within a single series. Does not support multiple runs in same Series.", + "manga": "Japanese comics with volume grouping support. Also handles some loose image configurations.", + "comicVine": "Strict comic implementation based on Comic Vine metadata with integration for specialized tooling.", + "image": "Loose image files with limited support. Must largely follow wiki documentation.", + "lightNovel": "Book library with special handling optimized for light novels" + }, + "age-rating-pipe": { "unknown": "Unknown", "early-childhood": "Early Childhood", @@ -918,7 +929,12 @@ "create-title": "Create Annotation", "create": "Create", "close": "{{common.close}}", - "contains-spoilers-label": "{{annotation-card.contains-spoilers-label}}" + "contains-spoilers-label": "{{annotation-card.contains-spoilers-label}}", + "edit": "Edit" + }, + + "quill-wrapper": { + "clean-tooltip": "Remove all styles" }, "view-bookmark-drawer": { @@ -950,7 +966,9 @@ "highlight-bar": { "add-new-color-alt": "Add Custom Color", - "slot-label": "Highlight slot {{slot}}" + "slot-label": "Highlight slot {{slot}}", + "edit": "{{common.edit}}", + "close": "{{common.close}}" }, "book-reader": { @@ -981,12 +999,13 @@ "previous": "Previous", "go-to-page": "Go to page", - "go-to-page-prompt": "There are {{totalPages}} pages. Which page do you want to go to?", + "go-to-page-prompt": "There are {{totalPages}} pages. Which page do you want to go to? Page starts at 1.", "page-num-label": "Page {{page}}", "completion-label": "{{percent}} complete", - "force-selected-one-column": "Layout mode switched to One Column due to insufficient space to render Two Columns" + "force-selected-one-column": "Layout mode switched to One Column due to insufficient space to render Two Columns", + "forced-vertical-switch": "Layout mode switched as Two Column layout doesn't work with Vertical Writing Style" }, "personal-table-of-contents": { @@ -2150,7 +2169,7 @@ }, "pdf-reader": { - "loading-message": "Loading……PDFs may take longer than expected", + "loading-message": "Loading...", "incognito-mode": "Incognito Mode", "light-theme-alt": "Light Theme", "dark-theme-alt": "Dark Theme", diff --git a/UI/Web/src/assets/langs/es.json b/UI/Web/src/assets/langs/es.json index d9e4b5d5d..2e9a7eb5e 100644 --- a/UI/Web/src/assets/langs/es.json +++ b/UI/Web/src/assets/langs/es.json @@ -1516,7 +1516,7 @@ "help-label": "{{common.help}}" }, "pdf-reader": { - "loading-message": "Cargando……los PDF pueden ser más lentos de lo esperado", + "loading-message": "Cargando...", "incognito-mode": "Modo incógnito", "light-theme-alt": "Tema claro", "dark-theme-alt": "Tema oscuro", diff --git a/UI/Web/src/assets/langs/fr.json b/UI/Web/src/assets/langs/fr.json index dc8a31cc9..ec84a4d9c 100644 --- a/UI/Web/src/assets/langs/fr.json +++ b/UI/Web/src/assets/langs/fr.json @@ -1587,7 +1587,7 @@ "help-label": "{{common.help}}" }, "pdf-reader": { - "loading-message": "Chargement......de PDF peut prendre plus de temps que prévu", + "loading-message": "Chargement...", "incognito-mode": "Mode incognito", "light-theme-alt": "Thème clair", "dark-theme-alt": "Thème sombre", diff --git a/UI/Web/src/assets/langs/ga.json b/UI/Web/src/assets/langs/ga.json index 9d40bba37..a5913562d 100644 --- a/UI/Web/src/assets/langs/ga.json +++ b/UI/Web/src/assets/langs/ga.json @@ -1587,7 +1587,7 @@ "help-label": "{{common.help}}" }, "pdf-reader": { - "loading-message": "Á Luchtú...... D'fhéadfadh sé go dtógfadh PDFanna níos faide ná mar a bhíothas ag súil leis", + "loading-message": "Á Luchtú...", "incognito-mode": "Mód Incognito", "light-theme-alt": "Téama Solais", "dark-theme-alt": "Téama Dorcha", diff --git a/UI/Web/src/assets/langs/it.json b/UI/Web/src/assets/langs/it.json index a08fa68b4..3c92df4c6 100644 --- a/UI/Web/src/assets/langs/it.json +++ b/UI/Web/src/assets/langs/it.json @@ -1510,7 +1510,7 @@ "cbl-repo": "Puoi trovare molti elenchi di lettura nella community repo." }, "pdf-reader": { - "loading-message": "Caricamento... I PDF potrebbero richiedere più tempo del previsto", + "loading-message": "Caricamento...", "incognito-mode": "Modalità Incognito", "light-theme-alt": "Tema Chiaro", "dark-theme-alt": "Tema Scuro", diff --git a/UI/Web/src/assets/langs/ja.json b/UI/Web/src/assets/langs/ja.json index b8f942912..e6b921fe1 100644 --- a/UI/Web/src/assets/langs/ja.json +++ b/UI/Web/src/assets/langs/ja.json @@ -1388,7 +1388,7 @@ "comicvine-parsing-label": "Comic Vine シリーズのマッチングを使用" }, "pdf-reader": { - "loading-message": "ローディング...... PDF は期待以上の時間がかかる場合があります", + "loading-message": "ローディング...", "incognito-mode": "シークレットモード", "light-theme-alt": "ライトテーマ", "dark-theme-alt": "ダークテーマ", diff --git a/UI/Web/src/assets/langs/ko.json b/UI/Web/src/assets/langs/ko.json index 9b359acf3..105482ade 100644 --- a/UI/Web/src/assets/langs/ko.json +++ b/UI/Web/src/assets/langs/ko.json @@ -1587,7 +1587,7 @@ "help-label": "{{common.help}}" }, "pdf-reader": { - "loading-message": "로딩 중……PDF가 예상보다 오래 걸릴 수 있습니다", + "loading-message": "로딩 중...", "incognito-mode": "시크릿 모드", "light-theme-alt": "밝은 테마", "dark-theme-alt": "어두운 테마", diff --git a/UI/Web/src/assets/langs/nl.json b/UI/Web/src/assets/langs/nl.json index ba94d01c2..bac4be951 100644 --- a/UI/Web/src/assets/langs/nl.json +++ b/UI/Web/src/assets/langs/nl.json @@ -1328,7 +1328,7 @@ "final-import-step": "Laatste stap" }, "pdf-reader": { - "loading-message": "Het laden van……PDF's kunnen langer duren dan verwacht", + "loading-message": "Laden...", "incognito-mode": "Incognito modus", "light-theme-alt": "Licht thema", "dark-theme-alt": "Donker thema", diff --git a/UI/Web/src/assets/langs/pl.json b/UI/Web/src/assets/langs/pl.json index cfec5e635..267a92a34 100644 --- a/UI/Web/src/assets/langs/pl.json +++ b/UI/Web/src/assets/langs/pl.json @@ -1560,7 +1560,7 @@ "help-label": "{{common.help}}" }, "pdf-reader": { - "loading-message": "Ładowanie… Pliki PDF mogą ładować się dłużej niż oczekiwano", + "loading-message": "Ładowanie...", "incognito-mode": "Tryb incognito", "light-theme-alt": "Jasny motyw", "dark-theme-alt": "Ciemny motyw", diff --git a/UI/Web/src/assets/langs/pt.json b/UI/Web/src/assets/langs/pt.json index 14fd135ef..e263624b5 100644 --- a/UI/Web/src/assets/langs/pt.json +++ b/UI/Web/src/assets/langs/pt.json @@ -1571,7 +1571,7 @@ "help-label": "{{common.help}}" }, "pdf-reader": { - "loading-message": "A carregar....PDFs podem demorar mais que o esperado", + "loading-message": "A carregar...", "incognito-mode": "Modo Incógnito", "light-theme-alt": "Tema Claro", "dark-theme-alt": "Tema Escuro", diff --git a/UI/Web/src/assets/langs/pt_BR.json b/UI/Web/src/assets/langs/pt_BR.json index ade80ee8f..735af16d7 100644 --- a/UI/Web/src/assets/langs/pt_BR.json +++ b/UI/Web/src/assets/langs/pt_BR.json @@ -1587,7 +1587,7 @@ "help-label": "{{common.help}}" }, "pdf-reader": { - "loading-message": "Carregando... PDFs podem demorar mais do que o esperado", + "loading-message": "Carregando...", "incognito-mode": "Modo Incógnito", "light-theme-alt": "Tema Claro", "dark-theme-alt": "Tema Escuro", diff --git a/UI/Web/src/assets/langs/sk.json b/UI/Web/src/assets/langs/sk.json index 14e3c96ec..69c53cfb8 100644 --- a/UI/Web/src/assets/langs/sk.json +++ b/UI/Web/src/assets/langs/sk.json @@ -1540,7 +1540,7 @@ "comicvine-parsing-label": "Použite zhodu Comic Vine Serií" }, "pdf-reader": { - "loading-message": "Načítavanie……súborov PDF môže trvať dlhšie, ako sa očakávalo", + "loading-message": "Načítavanie...", "incognito-mode": "Mód Inkognito", "light-theme-alt": "Svetlá téma", "dark-theme-alt": "Tmavá téma", diff --git a/UI/Web/src/assets/langs/sv.json b/UI/Web/src/assets/langs/sv.json index 82fc1a823..ee6592573 100644 --- a/UI/Web/src/assets/langs/sv.json +++ b/UI/Web/src/assets/langs/sv.json @@ -2567,7 +2567,7 @@ "light-theme-alt": "Ljust Tema", "dark-theme-alt": "Mörkt Tema", "toggle-incognito": "Stäng av Inkognitoläge", - "loading-message": "Laddar……PDFs kan ta längre än väntat", + "loading-message": "Laddar...", "incognito-mode": "Inkognitoläge" }, "log-level-pipe": { diff --git a/UI/Web/src/assets/langs/ta.json b/UI/Web/src/assets/langs/ta.json index b081fba62..b98fd4116 100644 --- a/UI/Web/src/assets/langs/ta.json +++ b/UI/Web/src/assets/langs/ta.json @@ -2144,7 +2144,7 @@ "cbl-repo": "சமூகத்தில் பல வாசிப்பு பட்டியல்களை நீங்கள் காணலாம் களஞ்சி ." }, "pdf-reader": { - "loading-message": "ஏற்றுதல் …… PDF கள் எதிர்பார்த்ததை விட அதிக நேரம் ஆகலாம்", + "loading-message": "ஏற்றுதல்...", "incognito-mode": "மறைநிலை பயன்முறை", "light-theme-alt": "ஒளி கருப்பொருள்", "dark-theme-alt": "இருண்ட கருப்பொருள்", diff --git a/UI/Web/src/assets/langs/vi.json b/UI/Web/src/assets/langs/vi.json index f03fb8e2f..6eda3854e 100644 --- a/UI/Web/src/assets/langs/vi.json +++ b/UI/Web/src/assets/langs/vi.json @@ -1922,7 +1922,7 @@ "light-theme-alt": "Chủ Đề Sáng", "dark-theme-alt": "Chủ Đề Tối", "close-reader-alt": "Đóng Trình Đọc", - "loading-message": "Đang tải……PDF có thể mất nhiều thời gian hơn dự kiến", + "loading-message": "Đang tải...", "toggle-incognito": "Tắt chế độ Ẩn Danh" }, "pdf-layout-mode-pipe": { diff --git a/UI/Web/src/assets/langs/zh_Hans.json b/UI/Web/src/assets/langs/zh_Hans.json index 7ff99f81c..4fcb154d3 100644 --- a/UI/Web/src/assets/langs/zh_Hans.json +++ b/UI/Web/src/assets/langs/zh_Hans.json @@ -1587,7 +1587,7 @@ "help-label": "{{common.help}}" }, "pdf-reader": { - "loading-message": "加载中...PDF文件可能需要比预期更长的时间", + "loading-message": "加载中...", "incognito-mode": "隐身模式", "light-theme-alt": "明亮主题", "dark-theme-alt": "深色主题", diff --git a/UI/Web/src/assets/langs/zh_Hant.json b/UI/Web/src/assets/langs/zh_Hant.json index 4df117f25..5fd536df6 100644 --- a/UI/Web/src/assets/langs/zh_Hant.json +++ b/UI/Web/src/assets/langs/zh_Hant.json @@ -2348,7 +2348,7 @@ }, "pdf-reader": { "close-reader-alt": "關閉閱讀器", - "loading-message": "載入中…PDF 可能需要比預期更長的時間", + "loading-message": "載入中...", "incognito-mode": "無痕模式", "light-theme-alt": "淺色主題", "dark-theme-alt": "深色主題", diff --git a/UI/Web/src/environments/environment.proxy.ts b/UI/Web/src/environments/environment.proxy.ts new file mode 100644 index 000000000..0bb5c7ab1 --- /dev/null +++ b/UI/Web/src/environments/environment.proxy.ts @@ -0,0 +1,22 @@ +// This file can be replaced during build by using the `fileReplacements` array. +// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. +// The list of file replacements can be found in `angular.json`. + +const IP = 'localhost'; + +export const environment = { + production: false, + apiUrl: 'http://' + IP + ':4200/api/', + hubUrl: 'http://'+ IP + ':4200/hubs/', + buyLink: 'https://buy.stripe.com/test_9AQ5mi058h1PcIo3cf?prefilled_promo_code=FREETRIAL', + manageLink: 'https://billing.stripe.com/p/login/test_14kfZocuh6Tz5ag7ss' +}; + +/* + * For easier debugging in development mode, you can import the following file + * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. + * + * This import should be commented out in production mode because it will have a negative impact + * on performance if an error is thrown. + */ +// import 'zone.js/plugins/zone-error'; // Included with Angular CLI. diff --git a/UI/Web/src/httpLoader.ts b/UI/Web/src/httpLoader.ts index a818bcdd8..c63d96fef 100644 --- a/UI/Web/src/httpLoader.ts +++ b/UI/Web/src/httpLoader.ts @@ -5,8 +5,9 @@ import cacheBusting from 'i18n-cache-busting.json'; // allowSyntheticDefaultImpo @Injectable({ providedIn: 'root' }) export class HttpLoader implements TranslocoLoader { + private http = inject(HttpClient); + private loadedVersions: { [key: string]: string } = {}; - constructor(private http: HttpClient) {} getTranslation(langPath: string) { const tokens = langPath.split('/'); diff --git a/UI/Web/src/styles.scss b/UI/Web/src/styles.scss index cac4fd9dd..bd2b91f28 100644 --- a/UI/Web/src/styles.scss +++ b/UI/Web/src/styles.scss @@ -57,6 +57,8 @@ @use './theme/utilities/global'; @use "./theme/utilities/spinners"; +@use './theme/directives/resize'; + // Global Styles @font-face { diff --git a/UI/Web/src/theme/components/_buttons.scss b/UI/Web/src/theme/components/_buttons.scss index 82603e761..387f39714 100644 --- a/UI/Web/src/theme/components/_buttons.scss +++ b/UI/Web/src/theme/components/_buttons.scss @@ -225,6 +225,20 @@ button i.fa { } +.btn-unstyled { + background: none; + border: none; + padding: 0; + margin: 0; + font: inherit; + cursor: pointer; + outline: inherit; +} + +.btn-unstyled:focus { + outline: none; +} + // //.btn-primary .btn-check:checked + .btn, :not(.btn-check) + .btn:active, .btn:first-child:active, .btn.active, .btn.show { // --bs-btn-active-bg: var(--primary-color-dark-shade); diff --git a/UI/Web/src/theme/directives/resize.scss b/UI/Web/src/theme/directives/resize.scss new file mode 100644 index 000000000..76cc06a48 --- /dev/null +++ b/UI/Web/src/theme/directives/resize.scss @@ -0,0 +1,71 @@ +.drag-handle-bottom, +.drag-handle-top { + position: sticky; + width: 100%; + height: 12px; + cursor: row-resize; + display: flex; + justify-content: center; + align-items: center; + z-index: 10; + background: transparent; + border: none; +} + +.drag-handle-bottom { + top: 0; + margin-top: 2px; +} + +.drag-handle-top { + bottom: 0; + margin-bottom: 2px; +} + +.drag-handle-start, +.drag-handle-end { + top: 50%; + transform: translateY(-50%); + width: 12px; + height: 60px; + cursor: col-resize; + display: flex; + justify-content: center; + align-items: center; + z-index: 10; + background: transparent; + border: none; +} + +.drag-handle-start { + position: absolute; + right: 0; +} + +.drag-handle-end { + position: absolute; + left: 0; +} + +.drag-indicator-horizontal { + width: 60px; + height: 8px; + background: var(--accent-bg-color); + border-radius: 4px; + transition: background-color 0.2s; +} + +.drag-indicator-vertical { + width: 8px; + height: 40px; + background: var(--accent-bg-color); + border-radius: 4px; + transition: background-color 0.2s; +} + +.drag-handle-bottom:hover .drag-indicator-horizontal, +.drag-handle-top:hover .drag-indicator-horizontal, +.drag-handle-start:hover .drag-indicator-vertical, +.drag-handle-end:hover .drag-indicator-vertical { + background: #6c757d; +}