diff --git a/UI/Web/src/app/nav-header/nav-header.component.scss b/UI/Web/src/app/nav/nav-header/nav-header.component.scss
similarity index 100%
rename from UI/Web/src/app/nav-header/nav-header.component.scss
rename to UI/Web/src/app/nav/nav-header/nav-header.component.scss
diff --git a/UI/Web/src/app/nav-header/nav-header.component.ts b/UI/Web/src/app/nav/nav-header/nav-header.component.ts
similarity index 86%
rename from UI/Web/src/app/nav-header/nav-header.component.ts
rename to UI/Web/src/app/nav/nav-header/nav-header.component.ts
index 70f8d5eca..ed86bdf01 100644
--- a/UI/Web/src/app/nav-header/nav-header.component.ts
+++ b/UI/Web/src/app/nav/nav-header/nav-header.component.ts
@@ -1,20 +1,20 @@
import { DOCUMENT } from '@angular/common';
import { Component, HostListener, Inject, OnDestroy, OnInit, ViewChild } from '@angular/core';
import { Router } from '@angular/router';
-import { fromEvent, Subject } from 'rxjs';
+import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
-import { ScrollService } from '../scroll.service';
-import { FilterQueryParam } from '../shared/_services/filter-utilities.service';
-import { CollectionTag } from '../_models/collection-tag';
-import { Library } from '../_models/library';
-import { PersonRole } from '../_models/person';
-import { ReadingList } from '../_models/reading-list';
-import { SearchResult } from '../_models/search-result';
-import { SearchResultGroup } from '../_models/search/search-result-group';
-import { AccountService } from '../_services/account.service';
-import { ImageService } from '../_services/image.service';
-import { LibraryService } from '../_services/library.service';
-import { NavService } from '../_services/nav.service';
+import { ScrollService } from 'src/app/_services/scroll.service';
+import { FilterQueryParam } from '../../shared/_services/filter-utilities.service';
+import { CollectionTag } from '../../_models/collection-tag';
+import { Library } from '../../_models/library';
+import { PersonRole } from '../../_models/person';
+import { ReadingList } from '../../_models/reading-list';
+import { SearchResult } from '../../_models/search-result';
+import { SearchResultGroup } from '../../_models/search/search-result-group';
+import { AccountService } from '../../_services/account.service';
+import { ImageService } from '../../_services/image.service';
+import { LibraryService } from '../../_services/library.service';
+import { NavService } from '../../_services/nav.service';
@Component({
selector: 'app-nav-header',
diff --git a/UI/Web/src/app/nav/nav.module.ts b/UI/Web/src/app/nav/nav.module.ts
new file mode 100644
index 000000000..5e2053164
--- /dev/null
+++ b/UI/Web/src/app/nav/nav.module.ts
@@ -0,0 +1,37 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { EventsWidgetComponent } from './events-widget/events-widget.component';
+import { GroupedTypeaheadComponent } from './grouped-typeahead/grouped-typeahead.component';
+import { NavHeaderComponent } from './nav-header/nav-header.component';
+import { NgbDropdownModule, NgbPopoverModule, NgbNavModule } from '@ng-bootstrap/ng-bootstrap';
+import { SharedModule } from '../shared/shared.module';
+import { PipeModule } from '../pipe/pipe.module';
+import { TypeaheadModule } from '../typeahead/typeahead.module';
+import { ReactiveFormsModule } from '@angular/forms';
+
+
+
+@NgModule({
+ declarations: [
+ NavHeaderComponent,
+ EventsWidgetComponent,
+ GroupedTypeaheadComponent,
+ ],
+ imports: [
+ CommonModule,
+ ReactiveFormsModule,
+
+ NgbDropdownModule,
+ NgbPopoverModule,
+ NgbNavModule,
+
+ SharedModule, // app image, series-format
+ PipeModule,
+ TypeaheadModule,
+ ],
+ exports: [
+ NavHeaderComponent,
+ SharedModule
+ ]
+})
+export class NavModule { }
diff --git a/UI/Web/src/app/reading-list/reading-list.router.module.ts b/UI/Web/src/app/reading-list/reading-list-routing.module.ts
similarity index 100%
rename from UI/Web/src/app/reading-list/reading-list.router.module.ts
rename to UI/Web/src/app/reading-list/reading-list-routing.module.ts
diff --git a/UI/Web/src/app/reading-list/reading-list.module.ts b/UI/Web/src/app/reading-list/reading-list.module.ts
index 9af1fa1dd..4abf1379f 100644
--- a/UI/Web/src/app/reading-list/reading-list.module.ts
+++ b/UI/Web/src/app/reading-list/reading-list.module.ts
@@ -2,17 +2,16 @@ import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { DragableOrderedListComponent } from './dragable-ordered-list/dragable-ordered-list.component';
import { ReadingListDetailComponent } from './reading-list-detail/reading-list-detail.component';
-import { ReadingListRoutingModule } from './reading-list.router.module';
+import { ReadingListRoutingModule } from './reading-list-routing.module';
import {DragDropModule} from '@angular/cdk/drag-drop';
import { AddToListModalComponent } from './_modals/add-to-list-modal/add-to-list-modal.component';
import { ReactiveFormsModule } from '@angular/forms';
-import { CardsModule } from '../cards/cards.module';
import { ReadingListsComponent } from './reading-lists/reading-lists.component';
import { EditReadingListModalComponent } from './_modals/edit-reading-list-modal/edit-reading-list-modal.component';
import { PipeModule } from '../pipe/pipe.module';
import { SharedModule } from '../shared/shared.module';
-import { SidenavModule } from '../sidenav/sidenav.module';
import { NgbNavModule } from '@ng-bootstrap/ng-bootstrap';
+import { SharedSideNavCardsModule } from '../shared-side-nav-cards/shared-side-nav-cards.module';
@@ -26,14 +25,15 @@ import { NgbNavModule } from '@ng-bootstrap/ng-bootstrap';
],
imports: [
CommonModule,
- ReadingListRoutingModule,
ReactiveFormsModule,
DragDropModule,
- CardsModule,
+ NgbNavModule,
+
PipeModule,
SharedModule,
- SidenavModule,
- NgbNavModule
+ SharedSideNavCardsModule,
+
+ ReadingListRoutingModule,
],
exports: [
AddToListModalComponent,
diff --git a/UI/Web/src/app/registration/confirm-email/confirm-email.component.ts b/UI/Web/src/app/registration/confirm-email/confirm-email.component.ts
index 6340b4e5c..bf95a3fab 100644
--- a/UI/Web/src/app/registration/confirm-email/confirm-email.component.ts
+++ b/UI/Web/src/app/registration/confirm-email/confirm-email.component.ts
@@ -1,8 +1,8 @@
-import { Component, Input, OnInit } from '@angular/core';
+import { Component, OnInit } from '@angular/core';
import { FormControl, FormGroup, Validators } from '@angular/forms';
import { ActivatedRoute, Router } from '@angular/router';
import { ToastrService } from 'ngx-toastr';
-import { ThemeService } from 'src/app/theme.service';
+import { ThemeService } from 'src/app/_services/theme.service';
import { AccountService } from 'src/app/_services/account.service';
import { NavService } from 'src/app/_services/nav.service';
diff --git a/UI/Web/src/app/registration/confirm-migration-email/confirm-migration-email.component.ts b/UI/Web/src/app/registration/confirm-migration-email/confirm-migration-email.component.ts
index dcc83fe09..ed3724a89 100644
--- a/UI/Web/src/app/registration/confirm-migration-email/confirm-migration-email.component.ts
+++ b/UI/Web/src/app/registration/confirm-migration-email/confirm-migration-email.component.ts
@@ -1,7 +1,7 @@
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { ToastrService } from 'ngx-toastr';
-import { ThemeService } from 'src/app/theme.service';
+import { ThemeService } from 'src/app/_services/theme.service';
import { AccountService } from 'src/app/_services/account.service';
@Component({
diff --git a/UI/Web/src/app/registration/registration.module.ts b/UI/Web/src/app/registration/registration.module.ts
index 873c512f7..d0556ccd3 100644
--- a/UI/Web/src/app/registration/registration.module.ts
+++ b/UI/Web/src/app/registration/registration.module.ts
@@ -2,7 +2,7 @@ import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { ConfirmEmailComponent } from './confirm-email/confirm-email.component';
import { RegistrationRoutingModule } from './registration.router.module';
-import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';
+import { NgbCollapseModule, NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';
import { ReactiveFormsModule } from '@angular/forms';
import { SplashContainerComponent } from './splash-container/splash-container.component';
import { RegisterComponent } from './register/register.component';
@@ -10,6 +10,7 @@ import { AddEmailToAccountMigrationModalComponent } from './add-email-to-account
import { ConfirmMigrationEmailComponent } from './confirm-migration-email/confirm-migration-email.component';
import { ResetPasswordComponent } from './reset-password/reset-password.component';
import { ConfirmResetPasswordComponent } from './confirm-reset-password/confirm-reset-password.component';
+import { UserLoginComponent } from './user-login/user-login.component';
@@ -21,7 +22,8 @@ import { ConfirmResetPasswordComponent } from './confirm-reset-password/confirm-
AddEmailToAccountMigrationModalComponent,
ConfirmMigrationEmailComponent,
ResetPasswordComponent,
- ConfirmResetPasswordComponent
+ ConfirmResetPasswordComponent,
+ UserLoginComponent
],
imports: [
CommonModule,
diff --git a/UI/Web/src/app/registration/registration.router.module.ts b/UI/Web/src/app/registration/registration.router.module.ts
index f87951c25..a4c16665b 100644
--- a/UI/Web/src/app/registration/registration.router.module.ts
+++ b/UI/Web/src/app/registration/registration.router.module.ts
@@ -5,8 +5,17 @@ import { ConfirmMigrationEmailComponent } from './confirm-migration-email/confir
import { ConfirmResetPasswordComponent } from './confirm-reset-password/confirm-reset-password.component';
import { RegisterComponent } from './register/register.component';
import { ResetPasswordComponent } from './reset-password/reset-password.component';
+import { UserLoginComponent } from './user-login/user-login.component';
const routes: Routes = [
+ {
+ path: '',
+ component: UserLoginComponent
+ },
+ {
+ path: 'login',
+ component: UserLoginComponent
+ },
{
path: 'confirm-email',
component: ConfirmEmailComponent,
diff --git a/UI/Web/src/app/user-login/user-login.component.html b/UI/Web/src/app/registration/user-login/user-login.component.html
similarity index 100%
rename from UI/Web/src/app/user-login/user-login.component.html
rename to UI/Web/src/app/registration/user-login/user-login.component.html
diff --git a/UI/Web/src/app/user-login/user-login.component.scss b/UI/Web/src/app/registration/user-login/user-login.component.scss
similarity index 100%
rename from UI/Web/src/app/user-login/user-login.component.scss
rename to UI/Web/src/app/registration/user-login/user-login.component.scss
diff --git a/UI/Web/src/app/user-login/user-login.component.spec.ts b/UI/Web/src/app/registration/user-login/user-login.component.spec.ts
similarity index 97%
rename from UI/Web/src/app/user-login/user-login.component.spec.ts
rename to UI/Web/src/app/registration/user-login/user-login.component.spec.ts
index 938c7decb..7701748ea 100644
--- a/UI/Web/src/app/user-login/user-login.component.spec.ts
+++ b/UI/Web/src/app/registration/user-login/user-login.component.spec.ts
@@ -1,5 +1,5 @@
import { of } from 'rxjs';
-import { MemberService } from '../_services/member.service';
+import { MemberService } from '../../_services/member.service';
import { UserLoginComponent } from './user-login.component';
xdescribe('UserLoginComponent', () => {
diff --git a/UI/Web/src/app/user-login/user-login.component.ts b/UI/Web/src/app/registration/user-login/user-login.component.ts
similarity index 86%
rename from UI/Web/src/app/user-login/user-login.component.ts
rename to UI/Web/src/app/registration/user-login/user-login.component.ts
index e2cefed3b..c759c1316 100644
--- a/UI/Web/src/app/user-login/user-login.component.ts
+++ b/UI/Web/src/app/registration/user-login/user-login.component.ts
@@ -4,14 +4,14 @@ import { Router } from '@angular/router';
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
import { ToastrService } from 'ngx-toastr';
import { take } from 'rxjs/operators';
-import { SettingsService } from '../admin/settings.service';
-import { AddEmailToAccountMigrationModalComponent } from '../registration/add-email-to-account-migration-modal/add-email-to-account-migration-modal.component';
-import { User } from '../_models/user';
-import { AccountService } from '../_services/account.service';
-import { MemberService } from '../_services/member.service';
-import { NavService } from '../_services/nav.service';
+import { SettingsService } from '../../admin/settings.service';
+import { AddEmailToAccountMigrationModalComponent } from '../add-email-to-account-migration-modal/add-email-to-account-migration-modal.component';
+import { User } from '../../_models/user';
+import { AccountService } from '../../_services/account.service';
+import { MemberService } from '../../_services/member.service';
+import { NavService } from '../../_services/nav.service';
+
-// TODO: Move this into registration module
@Component({
selector: 'app-user-login',
templateUrl: './user-login.component.html',
@@ -48,7 +48,7 @@ export class UserLoginComponent implements OnInit {
this.accountService.currentUser$.pipe(take(1)).subscribe(user => {
if (user) {
this.navService.showSideNav();
- this.router.navigateByUrl('/library');
+ this.router.navigateByUrl('/libraries');
}
});
@@ -96,7 +96,7 @@ export class UserLoginComponent implements OnInit {
localStorage.setItem('kavita--auth-intersection-url', '');
this.router.navigateByUrl(pageResume);
} else {
- this.router.navigateByUrl('/library');
+ this.router.navigateByUrl('/libraries');
}
}, err => {
if (err.error === 'You are missing an email on your account. Please wait while we migrate your account.') {
diff --git a/UI/Web/src/app/_modals/review-series-modal/review-series-modal.component.html b/UI/Web/src/app/series-detail/review-series-modal/review-series-modal.component.html
similarity index 100%
rename from UI/Web/src/app/_modals/review-series-modal/review-series-modal.component.html
rename to UI/Web/src/app/series-detail/review-series-modal/review-series-modal.component.html
diff --git a/UI/Web/src/app/library/library.component.scss b/UI/Web/src/app/series-detail/review-series-modal/review-series-modal.component.scss
similarity index 100%
rename from UI/Web/src/app/library/library.component.scss
rename to UI/Web/src/app/series-detail/review-series-modal/review-series-modal.component.scss
diff --git a/UI/Web/src/app/_modals/review-series-modal/review-series-modal.component.ts b/UI/Web/src/app/series-detail/review-series-modal/review-series-modal.component.ts
similarity index 100%
rename from UI/Web/src/app/_modals/review-series-modal/review-series-modal.component.ts
rename to UI/Web/src/app/series-detail/review-series-modal/review-series-modal.component.ts
diff --git a/UI/Web/src/app/series-detail/series-detail-routing.module.ts b/UI/Web/src/app/series-detail/series-detail-routing.module.ts
new file mode 100644
index 000000000..3e7917797
--- /dev/null
+++ b/UI/Web/src/app/series-detail/series-detail-routing.module.ts
@@ -0,0 +1,17 @@
+import { NgModule } from '@angular/core';
+import { Routes, RouterModule } from '@angular/router';
+import { SeriesDetailComponent } from './series-detail.component';
+
+const routes: Routes = [
+ {
+ path: '',
+ component: SeriesDetailComponent
+ }
+];
+
+
+@NgModule({
+ imports: [RouterModule.forChild(routes), ],
+ exports: [RouterModule]
+})
+export class SeriesDetailRoutingModule { }
diff --git a/UI/Web/src/app/series-detail/series-detail.component.ts b/UI/Web/src/app/series-detail/series-detail.component.ts
index 17159fa0c..4282dd867 100644
--- a/UI/Web/src/app/series-detail/series-detail.component.ts
+++ b/UI/Web/src/app/series-detail/series-detail.component.ts
@@ -13,7 +13,7 @@ import { ConfirmService } from '../shared/confirm.service';
import { TagBadgeCursor } from '../shared/tag-badge/tag-badge.component';
import { DownloadService } from '../shared/_services/download.service';
import { KEY_CODES, UtilityService } from '../shared/_services/utility.service';
-import { ReviewSeriesModalComponent } from '../_modals/review-series-modal/review-series-modal.component';
+import { ReviewSeriesModalComponent } from './review-series-modal/review-series-modal.component';
import { Chapter } from '../_models/chapter';
import { ScanSeriesEvent } from '../_models/events/scan-series-event';
import { SeriesRemovedEvent } from '../_models/events/series-removed-event';
@@ -33,8 +33,8 @@ import { ReaderService } from '../_services/reader.service';
import { ReadingListService } from '../_services/reading-list.service';
import { SeriesService } from '../_services/series.service';
import { NavService } from '../_services/nav.service';
-import { RelationKind } from '../_models/series-detail/relation-kind';
import { RelatedSeries } from '../_models/series-detail/related-series';
+import { RelationKind } from '../_models/series-detail/relation-kind';
interface RelatedSeris {
series: Series;
diff --git a/UI/Web/src/app/series-detail/series-detail.module.ts b/UI/Web/src/app/series-detail/series-detail.module.ts
new file mode 100644
index 000000000..8d881c346
--- /dev/null
+++ b/UI/Web/src/app/series-detail/series-detail.module.ts
@@ -0,0 +1,38 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { SeriesDetailRoutingModule } from './series-detail-routing.module';
+import { NgbCollapseModule, NgbNavModule, NgbRatingModule } from '@ng-bootstrap/ng-bootstrap';
+import { SeriesDetailComponent } from './series-detail.component';
+import { SeriesMetadataDetailComponent } from './series-metadata-detail/series-metadata-detail.component';
+import { ReviewSeriesModalComponent } from './review-series-modal/review-series-modal.component';
+import { SharedModule } from '../shared/shared.module';
+import { TypeaheadModule } from '../typeahead/typeahead.module';
+import { PipeModule } from '../pipe/pipe.module';
+import { ReactiveFormsModule } from '@angular/forms';
+import { SharedSideNavCardsModule } from '../shared-side-nav-cards/shared-side-nav-cards.module';
+
+
+
+@NgModule({
+ declarations: [
+ SeriesDetailComponent,
+ ReviewSeriesModalComponent,
+ SeriesMetadataDetailComponent
+ ],
+ imports: [
+ CommonModule,
+ ReactiveFormsModule, // Review Series Modal
+
+ NgbCollapseModule, // Series Metadata
+ NgbNavModule,
+ NgbRatingModule,
+
+ TypeaheadModule,
+ PipeModule,
+ SharedModule, // person badge, badge expander (these 2 can be their own module)
+ SharedSideNavCardsModule,
+
+ SeriesDetailRoutingModule
+ ]
+})
+export class SeriesDetailModule { }
diff --git a/UI/Web/src/app/series-metadata-detail/series-metadata-detail.component.html b/UI/Web/src/app/series-detail/series-metadata-detail/series-metadata-detail.component.html
similarity index 100%
rename from UI/Web/src/app/series-metadata-detail/series-metadata-detail.component.html
rename to UI/Web/src/app/series-detail/series-metadata-detail/series-metadata-detail.component.html
diff --git a/UI/Web/src/app/series-metadata-detail/series-metadata-detail.component.scss b/UI/Web/src/app/series-detail/series-metadata-detail/series-metadata-detail.component.scss
similarity index 100%
rename from UI/Web/src/app/series-metadata-detail/series-metadata-detail.component.scss
rename to UI/Web/src/app/series-detail/series-metadata-detail/series-metadata-detail.component.scss
diff --git a/UI/Web/src/app/series-metadata-detail/series-metadata-detail.component.ts b/UI/Web/src/app/series-detail/series-metadata-detail/series-metadata-detail.component.ts
similarity index 81%
rename from UI/Web/src/app/series-metadata-detail/series-metadata-detail.component.ts
rename to UI/Web/src/app/series-detail/series-metadata-detail/series-metadata-detail.component.ts
index bd410d585..1993be51a 100644
--- a/UI/Web/src/app/series-metadata-detail/series-metadata-detail.component.ts
+++ b/UI/Web/src/app/series-detail/series-metadata-detail/series-metadata-detail.component.ts
@@ -1,13 +1,13 @@
import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';
import { Router } from '@angular/router';
-import { TagBadgeCursor } from '../shared/tag-badge/tag-badge.component';
-import { FilterQueryParam } from '../shared/_services/filter-utilities.service';
-import { UtilityService } from '../shared/_services/utility.service';
-import { MangaFormat } from '../_models/manga-format';
-import { ReadingList } from '../_models/reading-list';
-import { Series } from '../_models/series';
-import { SeriesMetadata } from '../_models/series-metadata';
-import { MetadataService } from '../_services/metadata.service';
+import { TagBadgeCursor } from '../../shared/tag-badge/tag-badge.component';
+import { FilterQueryParam } from '../../shared/_services/filter-utilities.service';
+import { UtilityService } from '../../shared/_services/utility.service';
+import { MangaFormat } from '../../_models/manga-format';
+import { ReadingList } from '../../_models/reading-list';
+import { Series } from '../../_models/series';
+import { SeriesMetadata } from '../../_models/series-metadata';
+import { MetadataService } from '../../_services/metadata.service';
@Component({
selector: 'app-series-metadata-detail',
diff --git a/UI/Web/src/app/shared-side-nav-cards/shared-side-nav-cards.module.ts b/UI/Web/src/app/shared-side-nav-cards/shared-side-nav-cards.module.ts
new file mode 100644
index 000000000..226a2a096
--- /dev/null
+++ b/UI/Web/src/app/shared-side-nav-cards/shared-side-nav-cards.module.ts
@@ -0,0 +1,23 @@
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { CardsModule } from '../cards/cards.module';
+import { SidenavModule } from '../sidenav/sidenav.module';
+
+
+/**
+ * Exports SideNavModule and CardsModule
+ */
+@NgModule({
+ declarations: [],
+ imports: [
+ CommonModule,
+
+ CardsModule,
+ SidenavModule,
+ ],
+ exports: [
+ CardsModule,
+ SidenavModule
+ ]
+})
+export class SharedSideNavCardsModule { }
diff --git a/UI/Web/src/app/shared/_services/utility.service.ts b/UI/Web/src/app/shared/_services/utility.service.ts
index 99110da65..8da7814b5 100644
--- a/UI/Web/src/app/shared/_services/utility.service.ts
+++ b/UI/Web/src/app/shared/_services/utility.service.ts
@@ -1,8 +1,10 @@
+import { HttpParams } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { ActivatedRouteSnapshot } from '@angular/router';
import { Chapter } from 'src/app/_models/chapter';
import { LibraryType } from 'src/app/_models/library';
import { MangaFormat } from 'src/app/_models/manga-format';
+import { PaginatedResult } from 'src/app/_models/pagination';
import { Series } from 'src/app/_models/series';
import { SeriesFilter, SortField } from 'src/app/_models/series-filter';
import { Volume } from 'src/app/_models/volume';
@@ -201,4 +203,30 @@ export class UtilityService {
private isObject(object: any) {
return object != null && typeof object === 'object';
}
+
+ addPaginationIfExists(params: HttpParams, pageNum?: number, itemsPerPage?: number) {
+ if (pageNum !== null && pageNum !== undefined && itemsPerPage !== null && itemsPerPage !== undefined) {
+ params = params.append('pageNumber', pageNum + '');
+ params = params.append('pageSize', itemsPerPage + '');
+ }
+ return params;
+ }
+
+ createPaginatedResult(response: any, paginatedVariable: PaginatedResult
| undefined = undefined) {
+ if (paginatedVariable === undefined) {
+ paginatedVariable = new PaginatedResult();
+ }
+ if (response.body === null) {
+ paginatedVariable.result = [];
+ } else {
+ paginatedVariable.result = response.body;
+ }
+
+ const pageHeader = response.headers?.get('Pagination');
+ if (pageHeader !== null) {
+ paginatedVariable.pagination = JSON.parse(pageHeader);
+ }
+
+ return paginatedVariable;
+ }
}
diff --git a/UI/Web/src/app/shared/shared.module.ts b/UI/Web/src/app/shared/shared.module.ts
index 268d757a4..70d4283b6 100644
--- a/UI/Web/src/app/shared/shared.module.ts
+++ b/UI/Web/src/app/shared/shared.module.ts
@@ -38,21 +38,24 @@ import { PipeModule } from '../pipe/pipe.module';
RouterModule,
ReactiveFormsModule,
NgbCollapseModule,
- NgbTooltipModule, // RegisterMemberComponent
+ NgbTooltipModule, // TODO: Validate if we still need this
PipeModule,
NgCircleProgressModule.forRoot(),
],
exports: [
ReadMoreComponent, // Used globably
- DrawerComponent, // Can be replaced with boostrap offscreen canvas (v5)
- ShowIfScrollbarDirective, // Used book reader only?
+ DrawerComponent, // Can be replaced with boostrap offscreen canvas (v5) (also used in book reader and series metadata filter)
A11yClickDirective, // Used globally
SeriesFormatComponent, // Used globally
TagBadgeComponent, // Used globally
CircularLoaderComponent, // Used in Cards only
+ ImageComponent, // Used globally
+
+ ShowIfScrollbarDirective, // Used book reader only?
+
PersonBadgeComponent, // Used Series Detail
- BadgeExpanderComponent, // Used globally
- ImageComponent // Used globally
+ BadgeExpanderComponent, // Used Series Detail/Metadata
+
],
})
export class SharedModule { }
diff --git a/UI/Web/src/app/sidenav/side-nav-item/side-nav-item.component.scss b/UI/Web/src/app/sidenav/side-nav-item/side-nav-item.component.scss
index 621f64623..95de8b9eb 100644
--- a/UI/Web/src/app/sidenav/side-nav-item/side-nav-item.component.scss
+++ b/UI/Web/src/app/sidenav/side-nav-item/side-nav-item.component.scss
@@ -107,46 +107,46 @@ a {
@media (max-width: 576px) {
.side-nav-item {
align-items: center;
- display: flex;
- justify-content: space-between;
+ //display: flex;
+ //justify-content: space-between;
padding: 15px 10px;
- width: 100%;
+ //width: 100%;
height: 70px;
- min-height: 40px;
- overflow: hidden;
+ //min-height: 40px;
+ // overflow: hidden;
font-size: 1rem;
- cursor: pointer;
+ //cursor: pointer;
.side-nav-text {
- padding-left: 10px;
- opacity: 1;
- min-width: 100px;
+ // padding-left: 10px;
+ // opacity: 1;
+ // min-width: 100px;
width: 100%;
- div {
- min-width: 102px;
- width: 100%
- }
+ // div {
+ // min-width: 102px;
+ // width: 100%
+ // }
}
&.closed {
- .side-nav-text {
- opacity: 0;
- }
+ // .side-nav-text {
+ // opacity: 0;
+ // }
.card-actions {
- opacity: 0;
- font-size: inherit
+ //opacity: 0;
+ font-size: inherit;
}
}
- span {
- &:last-child {
- flex-grow: 1;
- justify-content: end;
- }
- }
+ // span {
+ // &:last-child {
+ // flex-grow: 1;
+ // justify-content: end;
+ // }
+ // }
}
}
\ No newline at end of file
diff --git a/UI/Web/src/app/sidenav/side-nav/side-nav.component.html b/UI/Web/src/app/sidenav/side-nav/side-nav.component.html
index fe9e74578..e0f66775c 100644
--- a/UI/Web/src/app/sidenav/side-nav/side-nav.component.html
+++ b/UI/Web/src/app/sidenav/side-nav/side-nav.component.html
@@ -7,7 +7,7 @@
-->
-
+
diff --git a/UI/Web/src/app/sidenav/side-nav/side-nav.component.scss b/UI/Web/src/app/sidenav/side-nav/side-nav.component.scss
index 7bcee8f08..0d3cedc34 100644
--- a/UI/Web/src/app/sidenav/side-nav/side-nav.component.scss
+++ b/UI/Web/src/app/sidenav/side-nav/side-nav.component.scss
@@ -25,7 +25,7 @@
border: var(--side-nav-border-closed);
}
- .side-nav-item:first() {
+ .side-nav-item:first {
border-top-left-radius: var(--side-nav-border-radius);
border-top-right-radius: var(--side-nav-border-radius);
}
@@ -52,7 +52,7 @@
box-shadow: none;
}
- .side-nav-item:first() {
+ .side-nav-item:first {
border-top-left-radius: var(--side-nav-border-radius);
border-top-right-radius: var(--side-nav-border-radius);
}
diff --git a/UI/Web/src/app/user-settings/theme-manager/theme-manager.component.ts b/UI/Web/src/app/user-settings/theme-manager/theme-manager.component.ts
index a6d5b2f2c..f0a544815 100644
--- a/UI/Web/src/app/user-settings/theme-manager/theme-manager.component.ts
+++ b/UI/Web/src/app/user-settings/theme-manager/theme-manager.component.ts
@@ -1,7 +1,7 @@
import { Component, OnDestroy, OnInit } from '@angular/core';
import { ToastrService } from 'ngx-toastr';
import { distinctUntilChanged, Subject, take, takeUntil } from 'rxjs';
-import { ThemeService } from 'src/app/theme.service';
+import { ThemeService } from 'src/app/_services/theme.service';
import { SiteTheme, ThemeProvider } from 'src/app/_models/preferences/site-theme';
import { User } from 'src/app/_models/user';
import { AccountService } from 'src/app/_services/account.service';
diff --git a/UI/Web/src/app/user-settings/user-settings.module.ts b/UI/Web/src/app/user-settings/user-settings.module.ts
index 7638080fa..67e8e6ec3 100644
--- a/UI/Web/src/app/user-settings/user-settings.module.ts
+++ b/UI/Web/src/app/user-settings/user-settings.module.ts
@@ -9,8 +9,8 @@ import { ApiKeyComponent } from './api-key/api-key.component';
import { PipeModule } from '../pipe/pipe.module';
import { SiteThemeProviderPipe } from './_pipes/site-theme-provider.pipe';
import { ThemeManagerComponent } from './theme-manager/theme-manager.component';
-import { SidenavModule } from '../sidenav/sidenav.module';
import { ColorPickerModule } from 'ngx-color-picker';
+import { SidenavModule } from '../sidenav/sidenav.module';
@@ -24,14 +24,18 @@ import { ColorPickerModule } from 'ngx-color-picker';
imports: [
CommonModule,
ReactiveFormsModule,
+
NgbAccordionModule,
NgbNavModule,
NgbTooltipModule,
+
NgxSliderModule,
- UserSettingsRoutingModule,
+ ColorPickerModule, // User prefernces background color
+
PipeModule,
SidenavModule,
- ColorPickerModule, // User prefernces background color
+
+ UserSettingsRoutingModule,
],
exports: [
SiteThemeProviderPipe,