mirror of
https://github.com/booklore-app/booklore.git
synced 2026-02-18 00:17:53 +01:00
Make originalMetadata optional in case the process dies and it becomes undefined (#855)
Co-authored-by: Aditya Chandel <8075870+adityachandelgit@users.noreply.github.com>
This commit is contained in:
@@ -27,7 +27,7 @@ import {Textarea} from 'primeng/textarea';
|
||||
export class BookdropFileMetadataPickerComponent {
|
||||
|
||||
@Input() fetchedMetadata!: BookMetadata;
|
||||
@Input() originalMetadata!: BookMetadata;
|
||||
@Input() originalMetadata?: BookMetadata;
|
||||
@Input() metadataForm!: FormGroup;
|
||||
@Input() copiedFields: Record<string, boolean> = {};
|
||||
@Input() savedFields: Record<string, boolean> = {};
|
||||
@@ -127,7 +127,7 @@ export class BookdropFileMetadataPickerComponent {
|
||||
}
|
||||
|
||||
resetField(field: string) {
|
||||
this.metadataForm.get(field)?.setValue(this.originalMetadata[field]);
|
||||
this.metadataForm.get(field)?.setValue(this.originalMetadata?.[field]);
|
||||
this.copiedFields[field] = false;
|
||||
this.hoveredFields[field] = false;
|
||||
}
|
||||
|
||||
@@ -229,31 +229,31 @@ export class BookdropFileReviewComponent implements OnInit {
|
||||
Object.values(this.fileUiCache).forEach(fileUi => {
|
||||
const original = fileUi.file.originalMetadata;
|
||||
fileUi.metadataForm.patchValue({
|
||||
title: original.title || null,
|
||||
subtitle: original.subtitle || null,
|
||||
authors: [...(original.authors ?? [])].sort(),
|
||||
categories: [...(original.categories ?? [])].sort(),
|
||||
publisher: original.publisher || null,
|
||||
publishedDate: original.publishedDate || null,
|
||||
isbn10: original.isbn10 ?? null,
|
||||
isbn13: original.isbn13 ?? null,
|
||||
description: original.description ?? null,
|
||||
pageCount: original.pageCount ?? null,
|
||||
language: original.language ?? null,
|
||||
asin: original.asin ?? null,
|
||||
amazonRating: original.amazonRating ?? null,
|
||||
amazonReviewCount: original.amazonReviewCount ?? null,
|
||||
goodreadsId: original.goodreadsId ?? null,
|
||||
goodreadsRating: original.goodreadsRating ?? null,
|
||||
goodreadsReviewCount: original.goodreadsReviewCount ?? null,
|
||||
hardcoverId: original.hardcoverId ?? null,
|
||||
hardcoverRating: original.hardcoverRating ?? null,
|
||||
hardcoverReviewCount: original.hardcoverReviewCount ?? null,
|
||||
googleId: original.googleId ?? null,
|
||||
comicvineId: original.comicvineId ?? null,
|
||||
seriesName: original.seriesName ?? null,
|
||||
seriesNumber: original.seriesNumber ?? null,
|
||||
seriesTotal: original.seriesTotal ?? null,
|
||||
title: original?.title || null,
|
||||
subtitle: original?.subtitle || null,
|
||||
authors: [...(original?.authors ?? [])].sort(),
|
||||
categories: [...(original?.categories ?? [])].sort(),
|
||||
publisher: original?.publisher || null,
|
||||
publishedDate: original?.publishedDate || null,
|
||||
isbn10: original?.isbn10 ?? null,
|
||||
isbn13: original?.isbn13 ?? null,
|
||||
description: original?.description ?? null,
|
||||
pageCount: original?.pageCount ?? null,
|
||||
language: original?.language ?? null,
|
||||
asin: original?.asin ?? null,
|
||||
amazonRating: original?.amazonRating ?? null,
|
||||
amazonReviewCount: original?.amazonReviewCount ?? null,
|
||||
goodreadsId: original?.goodreadsId ?? null,
|
||||
goodreadsRating: original?.goodreadsRating ?? null,
|
||||
goodreadsReviewCount: original?.goodreadsReviewCount ?? null,
|
||||
hardcoverId: original?.hardcoverId ?? null,
|
||||
hardcoverRating: original?.hardcoverRating ?? null,
|
||||
hardcoverReviewCount: original?.hardcoverReviewCount ?? null,
|
||||
googleId: original?.googleId ?? null,
|
||||
comicvineId: original?.comicvineId ?? null,
|
||||
seriesName: original?.seriesName ?? null,
|
||||
seriesNumber: original?.seriesNumber ?? null,
|
||||
seriesTotal: original?.seriesTotal ?? null,
|
||||
thumbnailUrl: this.urlHelper.getBookdropCoverUrl(fileUi.file.id),
|
||||
});
|
||||
fileUi.copiedFields = {};
|
||||
@@ -470,33 +470,33 @@ export class BookdropFileReviewComponent implements OnInit {
|
||||
});
|
||||
}
|
||||
|
||||
private createMetadataForm(original: BookMetadata, bookdropFileId: number): FormGroup {
|
||||
private createMetadataForm(original: BookMetadata | undefined, bookdropFileId: number): FormGroup {
|
||||
return new FormGroup({
|
||||
title: new FormControl(original.title ?? ''),
|
||||
subtitle: new FormControl(original.subtitle ?? ''),
|
||||
authors: new FormControl([...(original.authors ?? [])].sort()),
|
||||
categories: new FormControl([...(original.categories ?? [])].sort()),
|
||||
publisher: new FormControl(original.publisher ?? ''),
|
||||
publishedDate: new FormControl(original.publishedDate ?? ''),
|
||||
isbn10: new FormControl(original.isbn10 ?? ''),
|
||||
isbn13: new FormControl(original.isbn13 ?? ''),
|
||||
description: new FormControl(original.description ?? ''),
|
||||
pageCount: new FormControl(original.pageCount ?? ''),
|
||||
language: new FormControl(original.language ?? ''),
|
||||
asin: new FormControl(original.asin ?? ''),
|
||||
amazonRating: new FormControl(original.amazonRating ?? ''),
|
||||
amazonReviewCount: new FormControl(original.amazonReviewCount ?? ''),
|
||||
goodreadsId: new FormControl(original.goodreadsId ?? ''),
|
||||
goodreadsRating: new FormControl(original.goodreadsRating ?? ''),
|
||||
goodreadsReviewCount: new FormControl(original.goodreadsReviewCount ?? ''),
|
||||
hardcoverId: new FormControl(original.hardcoverId ?? ''),
|
||||
hardcoverRating: new FormControl(original.hardcoverRating ?? ''),
|
||||
hardcoverReviewCount: new FormControl(original.hardcoverReviewCount ?? ''),
|
||||
googleId: new FormControl(original.googleId ?? ''),
|
||||
comicvineId: new FormControl(original.comicvineId ?? ''),
|
||||
seriesName: new FormControl(original.seriesName ?? ''),
|
||||
seriesNumber: new FormControl(original.seriesNumber ?? ''),
|
||||
seriesTotal: new FormControl(original.seriesTotal ?? ''),
|
||||
title: new FormControl(original?.title ?? ''),
|
||||
subtitle: new FormControl(original?.subtitle ?? ''),
|
||||
authors: new FormControl([...(original?.authors ?? [])].sort()),
|
||||
categories: new FormControl([...(original?.categories ?? [])].sort()),
|
||||
publisher: new FormControl(original?.publisher ?? ''),
|
||||
publishedDate: new FormControl(original?.publishedDate ?? ''),
|
||||
isbn10: new FormControl(original?.isbn10 ?? ''),
|
||||
isbn13: new FormControl(original?.isbn13 ?? ''),
|
||||
description: new FormControl(original?.description ?? ''),
|
||||
pageCount: new FormControl(original?.pageCount ?? ''),
|
||||
language: new FormControl(original?.language ?? ''),
|
||||
asin: new FormControl(original?.asin ?? ''),
|
||||
amazonRating: new FormControl(original?.amazonRating ?? ''),
|
||||
amazonReviewCount: new FormControl(original?.amazonReviewCount ?? ''),
|
||||
goodreadsId: new FormControl(original?.goodreadsId ?? ''),
|
||||
goodreadsRating: new FormControl(original?.goodreadsRating ?? ''),
|
||||
goodreadsReviewCount: new FormControl(original?.goodreadsReviewCount ?? ''),
|
||||
hardcoverId: new FormControl(original?.hardcoverId ?? ''),
|
||||
hardcoverRating: new FormControl(original?.hardcoverRating ?? ''),
|
||||
hardcoverReviewCount: new FormControl(original?.hardcoverReviewCount ?? ''),
|
||||
googleId: new FormControl(original?.googleId ?? ''),
|
||||
comicvineId: new FormControl(original?.comicvineId ?? ''),
|
||||
seriesName: new FormControl(original?.seriesName ?? ''),
|
||||
seriesNumber: new FormControl(original?.seriesNumber ?? ''),
|
||||
seriesTotal: new FormControl(original?.seriesTotal ?? ''),
|
||||
thumbnailUrl: new FormControl(this.urlHelper.getBookdropCoverUrl(bookdropFileId)),
|
||||
});
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ export interface BookdropFile {
|
||||
fileName: string;
|
||||
filePath: string;
|
||||
fileSize: number;
|
||||
originalMetadata: BookMetadata;
|
||||
originalMetadata?: BookMetadata;
|
||||
fetchedMetadata?: BookMetadata;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
|
||||
Reference in New Issue
Block a user