Revert "Remove pdf sidebar for good"

This reverts commit 95913b591c.
This commit is contained in:
aditya.chandel
2025-02-18 07:55:58 -07:00
parent 95913b591c
commit 0ba78430b8
6 changed files with 25 additions and 6 deletions

View File

@@ -24,6 +24,9 @@ public class PdfViewerPreferencesEntity {
@Column(name = "zoom")
private String zoom;
@Column(name = "sidebar_visible")
private Boolean sidebarVisible;
@Column(name = "spread")
private String spread;
}

View File

@@ -68,6 +68,7 @@ public class BooksService {
PdfViewerPreferencesEntity viewerPrefs = bookEntity.getPdfViewerPrefs();
viewerPrefs.setZoom(pdfSettings.getZoom());
viewerPrefs.setSpread(pdfSettings.getSpread());
viewerPrefs.setSidebarVisible(pdfSettings.getSidebarVisible());
pdfViewerPreferencesRepository.save(viewerPrefs);
} else if (bookEntity.getBookType() == BookFileType.EPUB) {
EpubViewerPreferences epubSettings = bookViewerSettings.getEpubSettings();

View File

@@ -35,9 +35,9 @@ CREATE INDEX IF NOT EXISTS idx_library_id ON book (library_id);
CREATE TABLE IF NOT EXISTS book_metadata
(
book_id BIGINT NOT NULL PRIMARY KEY,
title VARCHAR(1024),
subtitle VARCHAR(1024),
publisher VARCHAR(1024),
title VARCHAR(255),
subtitle VARCHAR(255),
publisher VARCHAR(255),
published_date DATE,
description TEXT,
isbn_13 VARCHAR(20),
@@ -47,9 +47,9 @@ CREATE TABLE IF NOT EXISTS book_metadata
language VARCHAR(10),
rating FLOAT,
review_count INT,
cover VARCHAR(1024),
cover VARCHAR(255),
cover_updated_on TIMESTAMP NULL,
series_name VARCHAR(1024),
series_name VARCHAR(255),
series_number INT,
series_total INT,
all_fields_locked BOOLEAN DEFAULT FALSE,
@@ -103,6 +103,7 @@ CREATE TABLE IF NOT EXISTS pdf_viewer_preference
(
book_id BIGINT PRIMARY KEY,
zoom VARCHAR(16) NULL,
sidebar_visible BOOLEAN NULL,
spread VARCHAR(16) NULL,
CONSTRAINT fk_pdf_viewer_setting FOREIGN KEY (book_id) REFERENCES book (id) ON DELETE CASCADE
);

View File

@@ -5,11 +5,12 @@
[page]="page"
[rotation]="rotation"
[scrollMode]="scrollMode"
[sidebarVisible]="sidebarVisible"
[zoom]="zoom"
[spread]="spread"
[sidebarVisible]="false"
(pageChange)="onPageChange($event)"
(zoomChange)="onZoomChange($event)"
(sidebarVisibleChange)="onSidebarVisibleChange($event)"
(pdfLoaded)="onPdfLoaded($event)"
(spreadChange)="onSpreadChange($event)">
</ngx-extended-pdf-viewer>

View File

@@ -18,6 +18,7 @@ export class PdfViewerComponent implements OnInit, OnDestroy {
rotation: 0 | 90 | 180 | 270 = 0;
scrollMode: ScrollModeType = ScrollModeType.page;
sidebarVisible!: boolean;
page!: number;
spread!: 'off' | 'even' | 'odd';
zoom!: number | string;
@@ -78,6 +79,14 @@ export class PdfViewerComponent implements OnInit, OnDestroy {
}
}
onSidebarVisibleChange(visible: boolean): void {
if (!this.pdfLoaded) return;
if (visible !== this.sidebarVisible) {
this.sidebarVisible = visible;
this.updateViewerSetting();
}
}
onSpreadChange(spread: 'off' | 'even' | 'odd'): void {
if (!this.pdfLoaded) return;
if (spread !== this.spread) {
@@ -90,6 +99,7 @@ export class PdfViewerComponent implements OnInit, OnDestroy {
if (!this.pdfLoaded) return;
const bookSetting: BookSetting = {
pdfSettings: {
sidebarVisible: this.sidebarVisible,
spread: this.spread,
zoom: this.zoom,
}
@@ -113,9 +123,11 @@ export class PdfViewerComponent implements OnInit, OnDestroy {
this.updateProgress();
if (this.pdfScope === 'global') {
this.zoom = this.globalPdfSettings?.zoom || 'page-fit';
this.sidebarVisible = this.globalPdfSettings?.sidebar ?? true;
this.spread = this.globalPdfSettings?.spread || 'odd';
} else {
this.zoom = this.individualPdfSettings?.zoom || this.globalPdfSettings?.zoom || 'page-fit';
this.sidebarVisible = this.individualPdfSettings?.sidebarVisible ?? this.globalPdfSettings?.sidebar ?? true;
this.spread = this.individualPdfSettings?.spread || this.globalPdfSettings?.spread || 'odd';
}
}

View File

@@ -72,6 +72,7 @@ export interface Award {
export interface PdfViewerSetting {
zoom: string | number;
sidebarVisible: boolean;
spread: 'off' | 'even' | 'odd';
}