Removed some methods that aren't needed anymore.
This commit is contained in:
parent
154feb1c27
commit
e99822cf28
9 changed files with 54 additions and 59 deletions
|
|
@ -169,8 +169,8 @@ export class AllSeriesComponent implements OnInit {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.filterActiveCheck = this.filterUtilityService.createSeriesV2Filter();
|
this.filterActiveCheck = this.metadataService.createDefaultFilterDto('series');
|
||||||
this.filterActiveCheck!.statements.push(this.filterUtilityService.createSeriesV2DefaultStatement());
|
this.filterActiveCheck.statements.push(this.metadataService.createDefaultFilterStatement('series') as FilterStatement<FilterField>);
|
||||||
this.filterSettings.presetsV2 = this.filter;
|
this.filterSettings.presetsV2 = this.filter;
|
||||||
|
|
||||||
this.cdRef.markForCheck();
|
this.cdRef.markForCheck();
|
||||||
|
|
|
||||||
|
|
@ -96,8 +96,8 @@ export class BookmarksComponent implements OnInit {
|
||||||
this.filter.statements.push(this.metadataService.createDefaultFilterStatement('series') as FilterStatement<FilterField>);
|
this.filter.statements.push(this.metadataService.createDefaultFilterStatement('series') as FilterStatement<FilterField>);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.filterActiveCheck = this.filterUtilityService.createSeriesV2Filter();
|
this.filterActiveCheck = this.metadataService.createDefaultFilterDto('series');
|
||||||
this.filterActiveCheck!.statements.push(this.filterUtilityService.createSeriesV2DefaultStatement());
|
this.filterActiveCheck.statements.push(this.metadataService.createDefaultFilterStatement('series') as FilterStatement<FilterField>);
|
||||||
this.filterSettings.presetsV2 = this.filter;
|
this.filterSettings.presetsV2 = this.filter;
|
||||||
this.filterSettings.statementLimit = 1;
|
this.filterSettings.statementLimit = 1;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -205,7 +205,7 @@ export class CollectionDetailComponent implements OnInit, AfterContentChecked {
|
||||||
this.filter!.statements.push(defaultStmt);
|
this.filter!.statements.push(defaultStmt);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.filterActiveCheck = this.filterUtilityService.createSeriesV2Filter();
|
this.filterActiveCheck = this.metadataService.createDefaultFilterDto('series');
|
||||||
this.filterActiveCheck!.statements.push(defaultStmt);
|
this.filterActiveCheck!.statements.push(defaultStmt);
|
||||||
this.filterSettings.presetsV2 = this.filter;
|
this.filterSettings.presetsV2 = this.filter;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -219,7 +219,7 @@ export class DashboardComponent implements OnInit {
|
||||||
const params: any = {};
|
const params: any = {};
|
||||||
params['page'] = 1;
|
params['page'] = 1;
|
||||||
params['title'] = translate('dashboard.recently-updated-title');
|
params['title'] = translate('dashboard.recently-updated-title');
|
||||||
const filter = this.filterUtilityService.createSeriesV2Filter();
|
const filter = this.metadataService.createDefaultFilterDto('series');
|
||||||
if (filter.sortOptions) {
|
if (filter.sortOptions) {
|
||||||
filter.sortOptions.sortField = SortField.LastChapterAdded;
|
filter.sortOptions.sortField = SortField.LastChapterAdded;
|
||||||
filter.sortOptions.isAscending = false;
|
filter.sortOptions.isAscending = false;
|
||||||
|
|
@ -230,7 +230,7 @@ export class DashboardComponent implements OnInit {
|
||||||
params['page'] = 1;
|
params['page'] = 1;
|
||||||
params['title'] = translate('dashboard.on-deck-title');
|
params['title'] = translate('dashboard.on-deck-title');
|
||||||
|
|
||||||
const filter = this.filterUtilityService.createSeriesV2Filter();
|
const filter = this.metadataService.createDefaultFilterDto('series');
|
||||||
filter.statements.push({field: FilterField.ReadProgress, comparison: FilterComparison.GreaterThan, value: '0'});
|
filter.statements.push({field: FilterField.ReadProgress, comparison: FilterComparison.GreaterThan, value: '0'});
|
||||||
filter.statements.push({field: FilterField.ReadProgress, comparison: FilterComparison.NotEqual, value: '100'});
|
filter.statements.push({field: FilterField.ReadProgress, comparison: FilterComparison.NotEqual, value: '100'});
|
||||||
if (filter.sortOptions) {
|
if (filter.sortOptions) {
|
||||||
|
|
@ -242,7 +242,7 @@ export class DashboardComponent implements OnInit {
|
||||||
const params: any = {};
|
const params: any = {};
|
||||||
params['page'] = 1;
|
params['page'] = 1;
|
||||||
params['title'] = translate('dashboard.recently-added-title');
|
params['title'] = translate('dashboard.recently-added-title');
|
||||||
const filter = this.filterUtilityService.createSeriesV2Filter();
|
const filter = this.metadataService.createDefaultFilterDto('series');
|
||||||
if (filter.sortOptions) {
|
if (filter.sortOptions) {
|
||||||
filter.sortOptions.sortField = SortField.Created;
|
filter.sortOptions.sortField = SortField.Created;
|
||||||
filter.sortOptions.isAscending = false;
|
filter.sortOptions.isAscending = false;
|
||||||
|
|
@ -252,7 +252,7 @@ export class DashboardComponent implements OnInit {
|
||||||
const params: any = {};
|
const params: any = {};
|
||||||
params['page'] = 1;
|
params['page'] = 1;
|
||||||
params['title'] = translate('dashboard.more-in-genre-title', {genre: this.genre?.title});
|
params['title'] = translate('dashboard.more-in-genre-title', {genre: this.genre?.title});
|
||||||
const filter = this.filterUtilityService.createSeriesV2Filter();
|
const filter = this.metadataService.createDefaultFilterDto('series');
|
||||||
filter.statements.push({field: FilterField.Genres, value: this.genre?.id + '', comparison: FilterComparison.MustContains});
|
filter.statements.push({field: FilterField.Genres, value: this.genre?.id + '', comparison: FilterComparison.MustContains});
|
||||||
this.filterUtilityService.applyFilterWithParams(['all-series'], filter, params).subscribe();
|
this.filterUtilityService.applyFilterWithParams(['all-series'], filter, params).subscribe();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -197,7 +197,7 @@ export class LibraryDetailComponent implements OnInit {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
this.filterActiveCheck = this.filterUtilityService.createSeriesV2Filter();
|
this.filterActiveCheck = this.metadataService.createDefaultFilterDto('series');
|
||||||
this.filterActiveCheck!.statements.push(defaultStmt);
|
this.filterActiveCheck!.statements.push(defaultStmt);
|
||||||
this.filterSettings.presetsV2 = this.filter;
|
this.filterSettings.presetsV2 = this.filter;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -47,6 +47,7 @@ import {SettingsTabId} from "../../../sidenav/preference-nav/preference-nav.comp
|
||||||
import {Breakpoint, UtilityService} from "../../../shared/_services/utility.service";
|
import {Breakpoint, UtilityService} from "../../../shared/_services/utility.service";
|
||||||
import {WikiLink} from "../../../_models/wiki";
|
import {WikiLink} from "../../../_models/wiki";
|
||||||
import {NavLinkModalComponent} from "../nav-link-modal/nav-link-modal.component";
|
import {NavLinkModalComponent} from "../nav-link-modal/nav-link-modal.component";
|
||||||
|
import {MetadataService} from "../../../_services/metadata.service";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-nav-header',
|
selector: 'app-nav-header',
|
||||||
|
|
@ -70,6 +71,8 @@ export class NavHeaderComponent implements OnInit {
|
||||||
protected readonly imageService = inject(ImageService);
|
protected readonly imageService = inject(ImageService);
|
||||||
protected readonly utilityService = inject(UtilityService);
|
protected readonly utilityService = inject(UtilityService);
|
||||||
protected readonly modalService = inject(NgbModal);
|
protected readonly modalService = inject(NgbModal);
|
||||||
|
protected readonly metadataService = inject(MetadataService);
|
||||||
|
|
||||||
|
|
||||||
protected readonly FilterField = FilterField;
|
protected readonly FilterField = FilterField;
|
||||||
protected readonly WikiLink = WikiLink;
|
protected readonly WikiLink = WikiLink;
|
||||||
|
|
@ -161,7 +164,7 @@ export class NavHeaderComponent implements OnInit {
|
||||||
|
|
||||||
goTo(statement: FilterStatement<number>) {
|
goTo(statement: FilterStatement<number>) {
|
||||||
let params: any = {};
|
let params: any = {};
|
||||||
const filter = this.filterUtilityService.createSeriesV2Filter();
|
const filter = this.metadataService.createDefaultFilterDto('series');
|
||||||
filter.statements = [statement];
|
filter.statements = [statement];
|
||||||
params['page'] = 1;
|
params['page'] = 1;
|
||||||
this.clearSearch();
|
this.clearSearch();
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,7 @@ import {SafeUrlPipe} from "../_pipes/safe-url.pipe";
|
||||||
import {MergePersonModalComponent} from "./_modal/merge-person-modal/merge-person-modal.component";
|
import {MergePersonModalComponent} from "./_modal/merge-person-modal/merge-person-modal.component";
|
||||||
import {EVENTS, MessageHubService} from "../_services/message-hub.service";
|
import {EVENTS, MessageHubService} from "../_services/message-hub.service";
|
||||||
import {BadgeExpanderComponent} from "../shared/badge-expander/badge-expander.component";
|
import {BadgeExpanderComponent} from "../shared/badge-expander/badge-expander.component";
|
||||||
|
import {MetadataService} from "../_services/metadata.service";
|
||||||
|
|
||||||
interface PersonMergeEvent {
|
interface PersonMergeEvent {
|
||||||
srcId: number,
|
srcId: number,
|
||||||
|
|
@ -87,6 +88,7 @@ export class PersonDetailComponent implements OnInit {
|
||||||
private readonly themeService = inject(ThemeService);
|
private readonly themeService = inject(ThemeService);
|
||||||
private readonly toastr = inject(ToastrService);
|
private readonly toastr = inject(ToastrService);
|
||||||
private readonly messageHubService = inject(MessageHubService)
|
private readonly messageHubService = inject(MessageHubService)
|
||||||
|
private readonly metadataService = inject(MetadataService)
|
||||||
|
|
||||||
protected readonly FilterField = FilterField;
|
protected readonly FilterField = FilterField;
|
||||||
|
|
||||||
|
|
@ -181,7 +183,7 @@ export class PersonDetailComponent implements OnInit {
|
||||||
}
|
}
|
||||||
|
|
||||||
createFilter(roles: PersonRole[]) {
|
createFilter(roles: PersonRole[]) {
|
||||||
const filter = this.filterUtilityService.createSeriesV2Filter();
|
const filter = this.metadataService.createDefaultFilterDto('series');
|
||||||
filter.combination = FilterCombination.Or;
|
filter.combination = FilterCombination.Or;
|
||||||
filter.limitTo = 20;
|
filter.limitTo = 20;
|
||||||
|
|
||||||
|
|
@ -217,7 +219,7 @@ export class PersonDetailComponent implements OnInit {
|
||||||
params['page'] = 1;
|
params['page'] = 1;
|
||||||
params['title'] = translate('person-detail.browse-person-by-role-title', {name: this.person!.name, role: personPipe.transform(role)});
|
params['title'] = translate('person-detail.browse-person-by-role-title', {name: this.person!.name, role: personPipe.transform(role)});
|
||||||
|
|
||||||
const searchFilter = this.filterUtilityService.createSeriesV2Filter();
|
const searchFilter = this.metadataService.createDefaultFilterDto('series');
|
||||||
searchFilter.limitTo = 0;
|
searchFilter.limitTo = 0;
|
||||||
searchFilter.combination = FilterCombination.Or;
|
searchFilter.combination = FilterCombination.Or;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,8 @@
|
||||||
import {inject, Injectable} from '@angular/core';
|
import {inject, Injectable} from '@angular/core';
|
||||||
import {ActivatedRouteSnapshot, Params, Router} from '@angular/router';
|
import {Params, Router} from '@angular/router';
|
||||||
import {allSeriesSortFields, SortField} from 'src/app/_models/metadata/series-filter';
|
import {allSeriesSortFields, SortField} from 'src/app/_models/metadata/series-filter';
|
||||||
import {MetadataService} from "../../_services/metadata.service";
|
import {MetadataService} from "../../_services/metadata.service";
|
||||||
import {FilterV2} from "../../_models/metadata/v2/filter-v2";
|
import {FilterV2} from "../../_models/metadata/v2/filter-v2";
|
||||||
import {FilterStatement} from "../../_models/metadata/v2/filter-statement";
|
|
||||||
import {FilterCombination} from "../../_models/metadata/v2/filter-combination";
|
import {FilterCombination} from "../../_models/metadata/v2/filter-combination";
|
||||||
import {allSeriesFilterFields, FilterField} from "../../_models/metadata/v2/filter-field";
|
import {allSeriesFilterFields, FilterField} from "../../_models/metadata/v2/filter-field";
|
||||||
import {FilterComparison} from "../../_models/metadata/v2/filter-comparison";
|
import {FilterComparison} from "../../_models/metadata/v2/filter-comparison";
|
||||||
|
|
@ -11,7 +10,7 @@ import {HttpClient} from "@angular/common/http";
|
||||||
import {TextResonse} from "../../_types/text-response";
|
import {TextResonse} from "../../_types/text-response";
|
||||||
import {environment} from "../../../environments/environment";
|
import {environment} from "../../../environments/environment";
|
||||||
import {map, tap} from "rxjs/operators";
|
import {map, tap} from "rxjs/operators";
|
||||||
import {Observable, of, switchMap} from "rxjs";
|
import {switchMap} from "rxjs";
|
||||||
import {allPersonFilterFields, PersonFilterField} from "../../_models/metadata/v2/person-filter-field";
|
import {allPersonFilterFields, PersonFilterField} from "../../_models/metadata/v2/person-filter-field";
|
||||||
import {allPersonSortFields} from "../../_models/metadata/v2/person-sort-field";
|
import {allPersonSortFields} from "../../_models/metadata/v2/person-sort-field";
|
||||||
import {
|
import {
|
||||||
|
|
@ -40,44 +39,40 @@ export class FilterUtilitiesService {
|
||||||
|
|
||||||
private readonly apiUrl = environment.apiUrl;
|
private readonly apiUrl = environment.apiUrl;
|
||||||
|
|
||||||
encodeFilter(filter: FilterV2<number> | undefined) {
|
encodeFilter(filter: FilterV2 | undefined) {
|
||||||
return this.http.post<string>(this.apiUrl + 'filter/encode', filter, TextResonse);
|
return this.http.post<string>(this.apiUrl + 'filter/encode', filter, TextResonse);
|
||||||
}
|
}
|
||||||
|
|
||||||
decodeFilter(encodedFilter: string) {
|
decodeFilter(encodedFilter: string) {
|
||||||
return this.http.post<FilterV2<number>>(this.apiUrl + 'filter/decode', {encodedFilter}).pipe(map(filter => {
|
return this.http.post<FilterV2>(this.apiUrl + 'filter/decode', {encodedFilter}).pipe(map(filter => {
|
||||||
if (filter == null) {
|
if (filter == null) {
|
||||||
filter = this.metadataService.createDefaultFilterDto('series');
|
filter = this.metadataService.createDefaultFilterDto('series');
|
||||||
filter.statements.push(this.createSeriesV2DefaultStatement());
|
filter.statements.push(this.metadataService.createDefaultFilterStatement('series'));
|
||||||
}
|
}
|
||||||
|
|
||||||
return filter;
|
return filter;
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
updateUrlFromFilter(filter: FilterV2<number> | undefined) {
|
/**
|
||||||
|
* Encodes the filter and patches into the url
|
||||||
|
* @param filter
|
||||||
|
*/
|
||||||
|
updateUrlFromFilter(filter: FilterV2 | undefined) {
|
||||||
return this.encodeFilter(filter).pipe(tap(encodedFilter => {
|
return this.encodeFilter(filter).pipe(tap(encodedFilter => {
|
||||||
window.history.replaceState(window.location.href, '', window.location.href.split('?')[0]+ '?' + encodedFilter);
|
window.history.replaceState(window.location.href, '', window.location.href.split('?')[0]+ '?' + encodedFilter);
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
filterPresetsFromUrl<TFilter extends number>(snapshot: ActivatedRouteSnapshot, entityType: ValidFilterEntity, defaultStatement: FilterStatement<TFilter> | null = null): Observable<FilterV2<number>> {
|
|
||||||
const filter = this.metadataService.createDefaultFilterDto(entityType);
|
|
||||||
filter.statements.push(defaultStatement ?? this.createSeriesV2DefaultStatement());
|
|
||||||
if (!window.location.href.includes('?')) return of(filter);
|
|
||||||
|
|
||||||
return this.decodeFilter(window.location.href.split('?')[1]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Applies and redirects to the passed page with the filter encoded
|
* Applies and redirects to the passed page with the filter encoded (Series only)
|
||||||
* @param page
|
* @param page
|
||||||
* @param filter
|
* @param filter
|
||||||
* @param comparison
|
* @param comparison
|
||||||
* @param value
|
* @param value
|
||||||
*/
|
*/
|
||||||
applyFilter(page: Array<any>, filter: FilterField, comparison: FilterComparison, value: string) {
|
applyFilter(page: Array<any>, filter: FilterField, comparison: FilterComparison, value: string) {
|
||||||
const dto = this.createSeriesV2Filter();
|
const dto = this.metadataService.createDefaultFilterDto('series');
|
||||||
dto.statements.push(this.metadataService.createFilterStatement(filter, comparison, value + ''));
|
dto.statements.push(this.metadataService.createFilterStatement(filter, comparison, value + ''));
|
||||||
|
|
||||||
return this.encodeFilter(dto).pipe(switchMap(encodedFilter => {
|
return this.encodeFilter(dto).pipe(switchMap(encodedFilter => {
|
||||||
|
|
@ -85,6 +80,12 @@ export class FilterUtilitiesService {
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (Series only)
|
||||||
|
* @param page
|
||||||
|
* @param filter
|
||||||
|
* @param extraParams
|
||||||
|
*/
|
||||||
applyFilterWithParams(page: Array<any>, filter: FilterV2<any>, extraParams: Params) {
|
applyFilterWithParams(page: Array<any>, filter: FilterV2<any>, extraParams: Params) {
|
||||||
return this.encodeFilter(filter).pipe(switchMap(encodedFilter => {
|
return this.encodeFilter(filter).pipe(switchMap(encodedFilter => {
|
||||||
let url = page.join('/') + '?' + encodedFilter;
|
let url = page.join('/') + '?' + encodedFilter;
|
||||||
|
|
@ -94,25 +95,6 @@ export class FilterUtilitiesService {
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
createSeriesV2Filter(): FilterV2<FilterField> {
|
|
||||||
return {
|
|
||||||
combination: FilterCombination.And,
|
|
||||||
statements: [],
|
|
||||||
limitTo: 0,
|
|
||||||
sortOptions: {
|
|
||||||
isAscending: true,
|
|
||||||
sortField: SortField.SortName
|
|
||||||
},
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
createSeriesV2DefaultStatement(): FilterStatement<FilterField> {
|
|
||||||
return {
|
|
||||||
comparison: FilterComparison.Equal,
|
|
||||||
value: '',
|
|
||||||
field: FilterField.SeriesName
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
createPersonV2Filter(): FilterV2<PersonFilterField> {
|
createPersonV2Filter(): FilterV2<PersonFilterField> {
|
||||||
return {
|
return {
|
||||||
|
|
@ -126,14 +108,10 @@ export class FilterUtilitiesService {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
createPersonV2DefaultStatement(): FilterStatement<PersonFilterField> {
|
/**
|
||||||
return {
|
* Returns the Sort Fields for the Metadata filter based on the entity.
|
||||||
comparison: FilterComparison.Equal,
|
* @param type
|
||||||
value: '',
|
*/
|
||||||
field: PersonFilterField.Name
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
getSortFields<T extends number>(type: ValidFilterEntity) {
|
getSortFields<T extends number>(type: ValidFilterEntity) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case 'series':
|
case 'series':
|
||||||
|
|
@ -149,6 +127,10 @@ export class FilterUtilitiesService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the Filter Fields for the Metadata filter based on the entity.
|
||||||
|
* @param type
|
||||||
|
*/
|
||||||
getFilterFields<T extends number>(type: ValidFilterEntity): {title: string, value: T}[] {
|
getFilterFields<T extends number>(type: ValidFilterEntity): {title: string, value: T}[] {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case 'series':
|
case 'series':
|
||||||
|
|
@ -164,6 +146,10 @@ export class FilterUtilitiesService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the default field for the Series or Person entity aka what should be there if there are no statements
|
||||||
|
* @param type
|
||||||
|
*/
|
||||||
getDefaultFilterField<T extends number>(type: ValidFilterEntity) {
|
getDefaultFilterField<T extends number>(type: ValidFilterEntity) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case 'series':
|
case 'series':
|
||||||
|
|
@ -196,6 +182,10 @@ export class FilterUtilitiesService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the applicable String fields
|
||||||
|
* @param type
|
||||||
|
*/
|
||||||
getStringFields<T extends number>(type: ValidFilterEntity) {
|
getStringFields<T extends number>(type: ValidFilterEntity) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case 'series':
|
case 'series':
|
||||||
|
|
|
||||||
|
|
@ -124,7 +124,7 @@ export class WantToReadComponent implements OnInit, AfterContentChecked {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
this.filterActiveCheck = this.filterUtilityService.createSeriesV2Filter();
|
this.filterActiveCheck = this.metadataService.createDefaultFilterDto('series');
|
||||||
this.filterActiveCheck!.statements.push(defaultStmt);
|
this.filterActiveCheck!.statements.push(defaultStmt);
|
||||||
this.filterSettings.presetsV2 = this.filter;
|
this.filterSettings.presetsV2 = this.filter;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue