New Scanner + People Pages (#3286)

Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
This commit is contained in:
Joe Milazzo 2024-10-23 15:11:18 -07:00 committed by GitHub
parent 1ed0eae22d
commit ba20ad4ecc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
142 changed files with 17529 additions and 3038 deletions

View file

@ -12,6 +12,7 @@ import { DeviceService } from './device.service';
import {SideNavStream} from "../_models/sidenav/sidenav-stream";
import {SmartFilter} from "../_models/metadata/v2/smart-filter";
import {translate} from "@jsverse/transloco";
import {Person} from "../_models/metadata/person";
export enum Action {
Submenu = -1,
@ -160,6 +161,8 @@ export class ActionFactoryService {
bookmarkActions: Array<ActionItem<Series>> = [];
private personActions: Array<ActionItem<Person>> = [];
sideNavStreamActions: Array<ActionItem<SideNavStream>> = [];
smartFilterActions: Array<ActionItem<SmartFilter>> = [];
@ -180,11 +183,11 @@ export class ActionFactoryService {
}
getLibraryActions(callback: ActionCallback<Library>) {
return this.applyCallbackToList(this.libraryActions, callback);
return this.applyCallbackToList(this.libraryActions, callback);
}
getSeriesActions(callback: ActionCallback<Series>) {
return this.applyCallbackToList(this.seriesActions, callback);
return this.applyCallbackToList(this.seriesActions, callback);
}
getSideNavStreamActions(callback: ActionCallback<SideNavStream>) {
@ -196,7 +199,7 @@ export class ActionFactoryService {
}
getVolumeActions(callback: ActionCallback<Volume>) {
return this.applyCallbackToList(this.volumeActions, callback);
return this.applyCallbackToList(this.volumeActions, callback);
}
getChapterActions(callback: ActionCallback<Chapter>) {
@ -204,7 +207,7 @@ export class ActionFactoryService {
}
getCollectionTagActions(callback: ActionCallback<UserCollection>) {
return this.applyCallbackToList(this.collectionTagActions, callback);
return this.applyCallbackToList(this.collectionTagActions, callback);
}
getReadingListActions(callback: ActionCallback<ReadingList>) {
@ -215,6 +218,10 @@ export class ActionFactoryService {
return this.applyCallbackToList(this.bookmarkActions, callback);
}
getPersonActions(callback: ActionCallback<Person>) {
return this.applyCallbackToList(this.personActions, callback);
}
dummyCallback(action: ActionItem<any>, data: any) {}
filterSendToAction(actions: Array<ActionItem<Chapter>>, chapter: Chapter) {
@ -424,7 +431,7 @@ export class ActionFactoryService {
callback: this.dummyCallback,
requiresAdmin: false,
children: [
{
{
action: Action.AddToWantToReadList,
title: 'add-to-want-to-read',
description: 'add-to-want-to-read-tooltip',
@ -579,23 +586,23 @@ export class ActionFactoryService {
requiresAdmin: false,
children: [],
},
{
action: Action.Submenu,
title: 'add-to',
{
action: Action.Submenu,
title: 'add-to',
description: '=',
callback: this.dummyCallback,
requiresAdmin: false,
children: [
{
action: Action.AddToReadingList,
title: 'add-to-reading-list',
callback: this.dummyCallback,
requiresAdmin: false,
children: [
{
action: Action.AddToReadingList,
title: 'add-to-reading-list',
description: 'add-to-reading-list-tooltip',
callback: this.dummyCallback,
requiresAdmin: false,
children: [],
}
]
},
callback: this.dummyCallback,
requiresAdmin: false,
children: [],
}
]
},
{
action: Action.Submenu,
title: 'send-to',
@ -676,23 +683,23 @@ export class ActionFactoryService {
requiresAdmin: false,
children: [],
},
{
action: Action.Submenu,
title: 'add-to',
{
action: Action.Submenu,
title: 'add-to',
description: '',
callback: this.dummyCallback,
requiresAdmin: false,
children: [
{
action: Action.AddToReadingList,
title: 'add-to-reading-list',
callback: this.dummyCallback,
requiresAdmin: false,
children: [
{
action: Action.AddToReadingList,
title: 'add-to-reading-list',
description: 'add-to-reading-list-tooltip',
callback: this.dummyCallback,
requiresAdmin: false,
children: [],
}
]
},
callback: this.dummyCallback,
requiresAdmin: false,
children: [],
}
]
},
{
action: Action.Submenu,
title: 'send-to',
@ -785,6 +792,17 @@ export class ActionFactoryService {
},
];
this.personActions = [
{
action: Action.Edit,
title: 'edit',
description: 'edit-person-tooltip',
callback: this.dummyCallback,
requiresAdmin: true,
children: [],
}
];
this.bookmarkActions = [
{
action: Action.ViewSeries,
@ -854,13 +872,13 @@ export class ActionFactoryService {
});
}
public applyCallbackToList(list: Array<ActionItem<any>>, callback: (action: ActionItem<any>, data: any) => void): Array<ActionItem<any>> {
const actions = list.map((a) => {
return { ...a };
});
actions.forEach((action) => this.applyCallback(action, callback));
return actions;
}
public applyCallbackToList(list: Array<ActionItem<any>>, callback: (action: ActionItem<any>, data: any) => void): Array<ActionItem<any>> {
const actions = list.map((a) => {
return { ...a };
});
actions.forEach((action) => this.applyCallback(action, callback));
return actions;
}
// Checks the whole tree for the action and returns true if it exists
public hasAction(actions: Array<ActionItem<any>>, action: Action) {