Update global search, fix toggling between automated backup, add open search cover in new tab #83

This commit is contained in:
advplyr 2021-10-09 11:09:06 -05:00
parent 59d12ef5de
commit 32bc9d5282
16 changed files with 254 additions and 52 deletions

View file

@ -623,6 +623,10 @@ class Audiobook {
return this.book.isSearchMatch(search.toLowerCase().trim())
}
searchQuery(search) {
return this.book.getQueryMatches(search.toLowerCase().trim())
}
getAudioFileByIno(ino) {
return this.audioFiles.find(af => af.ino === ino)
}

View file

@ -5,7 +5,6 @@ const parseAuthors = require('../utils/parseAuthors')
class Book {
constructor(book = null) {
this.olid = null
this.title = null
this.subtitle = null
this.author = null
@ -46,7 +45,6 @@ class Book {
}
construct(book) {
this.olid = book.olid
this.title = book.title
this.subtitle = book.subtitle || null
this.author = book.author
@ -69,7 +67,6 @@ class Book {
toJSON() {
return {
olid: this.olid,
title: this.title,
subtitle: this.subtitle,
author: this.author,
@ -111,7 +108,6 @@ class Book {
}
setData(data) {
this.olid = data.olid || null
this.title = data.title || null
this.subtitle = data.subtitle || null
this.author = data.author || null
@ -217,6 +213,17 @@ class Book {
return this._title.toLowerCase().includes(search) || this._subtitle.toLowerCase().includes(search) || this._author.toLowerCase().includes(search) || this._series.toLowerCase().includes(search)
}
getQueryMatches(search) {
var titleMatch = this._title.toLowerCase().includes(search) || this._subtitle.toLowerCase().includes(search)
var authorMatch = this._author.toLowerCase().includes(search)
var seriesMatch = this._series.toLowerCase().includes(search)
return {
book: titleMatch ? 'title' : authorMatch ? 'author' : seriesMatch ? 'series' : false,
author: authorMatch ? this._author : false,
series: seriesMatch ? this._series : false
}
}
setDetailsFromFileMetadata(audioFileMetadata) {
const MetadataMapArray = [
{

View file

@ -5,6 +5,7 @@ class Library {
this.id = null
this.name = null
this.folders = []
this.icon = 'database'
this.lastScan = 0
@ -24,6 +25,8 @@ class Library {
this.id = library.id
this.name = library.name
this.folders = (library.folders || []).map(f => new Folder(f))
this.icon = library.icon || 'database'
this.createdAt = library.createdAt
this.lastUpdate = library.lastUpdate
}
@ -33,6 +36,7 @@ class Library {
id: this.id,
name: this.name,
folders: (this.folders || []).map(f => f.toJSON()),
icon: this.icon,
createdAt: this.createdAt,
lastUpdate: this.lastUpdate
}
@ -55,6 +59,7 @@ class Library {
return newFolder
})
}
this.icon = data.icon || 'database'
this.createdAt = Date.now()
this.lastUpdate = Date.now()
}