Book Pauk 2 жил өмнө
parent
commit
5a04e4f0c7

+ 22 - 3
server/core/opds/AuthorPage.js

@@ -68,6 +68,7 @@ class AuthorPage extends BasePage {
         const query = {
             author: req.query.author || '',
             series: req.query.series || '',
+            all: req.query.all || '',
             depth: 0,
             del: 0,
             limit: 100
@@ -84,12 +85,18 @@ class AuthorPage extends BasePage {
         if (query.series) {
             //книги по серии
             const bookList = await this.webWorker.getSeriesBookList(query.series);
+            
             if (bookList.books) {
                 let books = JSON.parse(bookList.books);
-                books = this.sortSeriesBooks(this.filterBooks(books, query));
+                const filtered = (query.all ? books : this.filterBooks(books, query));
+                const sorted = this.sortSeriesBooks(filtered);
+
+                for (const book of sorted) {
+                    let title = `${book.serno ? `${book.serno}. `: ''}${book.title || 'Без названия'}`;
+                    if (query.all) {
+                        title = `${this.bookAuthor(book.author)} "${title}"`;
+                    }
 
-                for (const book of books) {
-                    const title = `${book.serno ? `${book.serno}. `: ''}${book.title || 'Без названия'}`;
                     entry.push(
                         this.makeEntry({
                             id: book._uid,
@@ -98,6 +105,18 @@ class AuthorPage extends BasePage {
                         })
                     );
                 }
+
+                if (books.length > filtered.length) {
+                    entry.push(
+                        this.makeEntry({
+                            id: 'all_series_books',
+                            title: 'Все книги серии',
+                            link: this.navLink({
+                                href: `/${this.id}?author=${encodeURIComponent(query.author)}` +
+                                    `&series=${encodeURIComponent(query.series)}&all=1`}),
+                        })
+                    );
+                }
             }
         } else if (query.author && query.author[0] == '=') {
             //книги по автору