diff --git a/client/components/controls/LibraryFilterSelect.vue b/client/components/controls/LibraryFilterSelect.vue
index 5ed4400b8b..04dd11afe8 100644
--- a/client/components/controls/LibraryFilterSelect.vue
+++ b/client/components/controls/LibraryFilterSelect.vue
@@ -368,9 +368,17 @@ export default {
id: 'ebook',
name: this.$strings.LabelHasEbook
},
+ {
+ id: 'no-ebook',
+ name: this.$strings.LabelMissingEbook
+ },
{
id: 'supplementary',
name: this.$strings.LabelHasSupplementaryEbook
+ },
+ {
+ id: 'no-supplementary',
+ name: this.$strings.LabelMissingSupplementaryEbook
}
]
},
diff --git a/client/strings/cs.json b/client/strings/cs.json
index 3134d60dbf..7dc18aa6d6 100644
--- a/client/strings/cs.json
+++ b/client/strings/cs.json
@@ -356,7 +356,9 @@
"LabelMetaTags": "Metaznačky",
"LabelMinute": "Minuta",
"LabelMissing": "Chybějící",
+ "LabelMissingEbook": "Has no ebook",
"LabelMissingParts": "Chybějící díly",
+ "LabelMissingSupplementaryEbook": "Has no supplementary ebook",
"LabelMobileRedirectURIs": "Allowed Mobile Redirect URIs",
"LabelMobileRedirectURIsDescription": "This is a whitelist of valid redirect URIs for mobile apps. The default one is audiobookshelf://oauth
, which you can remove or supplement with additional URIs for third-party app integration. Using an asterisk (*
) as the sole entry permits any URI.",
"LabelMore": "Více",
diff --git a/client/strings/da.json b/client/strings/da.json
index f79f19b1e0..8c305ca211 100644
--- a/client/strings/da.json
+++ b/client/strings/da.json
@@ -356,7 +356,9 @@
"LabelMetaTags": "Meta-tags",
"LabelMinute": "Minut",
"LabelMissing": "Mangler",
+ "LabelMissingEbook": "Has no ebook",
"LabelMissingParts": "Manglende dele",
+ "LabelMissingSupplementaryEbook": "Has no supplementary ebook",
"LabelMobileRedirectURIs": "Allowed Mobile Redirect URIs",
"LabelMobileRedirectURIsDescription": "This is a whitelist of valid redirect URIs for mobile apps. The default one is audiobookshelf://oauth
, which you can remove or supplement with additional URIs for third-party app integration. Using an asterisk (*
) as the sole entry permits any URI.",
"LabelMore": "Mere",
diff --git a/client/strings/de.json b/client/strings/de.json
index 5b2711c1c2..33b0fb1b97 100644
--- a/client/strings/de.json
+++ b/client/strings/de.json
@@ -356,7 +356,9 @@
"LabelMetaTags": "Meta Tags",
"LabelMinute": "Minute",
"LabelMissing": "Fehlend",
+ "LabelMissingEbook": "E-Book fehlt",
"LabelMissingParts": "Fehlende Teile",
+ "LabelMissingSupplementaryEbook": "Ergänzendes E-Book fehlt",
"LabelMobileRedirectURIs": "Erlaubte Weiterleitungs-URIs für die mobile App",
"LabelMobileRedirectURIsDescription": "Dies ist eine Whitelist gültiger Umleitungs-URIs für mobile Apps. Der Standardwert ist audiobookshelf://oauth
, den du entfernen oder durch zusätzliche URIs für die Integration von Drittanbieter-Apps ergänzen kannst. Die Verwendung eines Sternchens (*
) als alleiniger Eintrag erlaubt jede URI.",
"LabelMore": "Mehr",
diff --git a/client/strings/en-us.json b/client/strings/en-us.json
index b8860ffa52..2465f87372 100644
--- a/client/strings/en-us.json
+++ b/client/strings/en-us.json
@@ -356,7 +356,9 @@
"LabelMetaTags": "Meta Tags",
"LabelMinute": "Minute",
"LabelMissing": "Missing",
+ "LabelMissingEbook": "Has no ebook",
"LabelMissingParts": "Missing Parts",
+ "LabelMissingSupplementaryEbook": "Has no supplementary ebook",
"LabelMobileRedirectURIs": "Allowed Mobile Redirect URIs",
"LabelMobileRedirectURIsDescription": "This is a whitelist of valid redirect URIs for mobile apps. The default one is audiobookshelf://oauth
, which you can remove or supplement with additional URIs for third-party app integration. Using an asterisk (*
) as the sole entry permits any URI.",
"LabelMore": "More",
diff --git a/client/strings/es.json b/client/strings/es.json
index 750524130c..452b625dde 100644
--- a/client/strings/es.json
+++ b/client/strings/es.json
@@ -356,7 +356,9 @@
"LabelMetaTags": "Metaetiquetas",
"LabelMinute": "Minuto",
"LabelMissing": "Ausente",
+ "LabelMissingEbook": "Has no ebook",
"LabelMissingParts": "Partes Ausentes",
+ "LabelMissingSupplementaryEbook": "Has no supplementary ebook",
"LabelMobileRedirectURIs": "URIs de redirección a móviles permitidos",
"LabelMobileRedirectURIsDescription": "Esta es una lista de URIs válidos para redireccionamiento de apps móviles. La URI por defecto es audiobookshelf://oauth
, la cual puedes remover or corroborar con URIs adicionales para la integración con apps de terceros. Utilizando un asterisco (*
) como el único punto de entrada permite cualquier URI.",
"LabelMore": "Más",
diff --git a/client/strings/et.json b/client/strings/et.json
index 07f9eef0c3..8c13c4359e 100644
--- a/client/strings/et.json
+++ b/client/strings/et.json
@@ -356,7 +356,9 @@
"LabelMetaTags": "Meta märgendid",
"LabelMinute": "Minut",
"LabelMissing": "Puudub",
+ "LabelMissingEbook": "Has no ebook",
"LabelMissingParts": "Puuduvad osad",
+ "LabelMissingSupplementaryEbook": "Has no supplementary ebook",
"LabelMobileRedirectURIs": "Lubatud mobiilile suunamise URI-d",
"LabelMobileRedirectURIsDescription": "See on mobiilirakenduste jaoks kehtivate suunamise URI-de lubatud nimekiri. Vaikimisi on selleks audiobookshelf://oauth
, mida saate eemaldada või täiendada täiendavate URI-dega kolmanda osapoole rakenduste integreerimiseks. Tärni (*
) ainukese kirjena kasutamine võimaldab mis tahes URI-d.",
"LabelMore": "Rohkem",
diff --git a/client/strings/fr.json b/client/strings/fr.json
index 81b6fa1b51..2948168e9d 100644
--- a/client/strings/fr.json
+++ b/client/strings/fr.json
@@ -356,7 +356,9 @@
"LabelMetaTags": "Balises de métadonnée",
"LabelMinute": "Minute",
"LabelMissing": "Manquant",
+ "LabelMissingEbook": "Has no ebook",
"LabelMissingParts": "Parties manquantes",
+ "LabelMissingSupplementaryEbook": "Has no supplementary ebook",
"LabelMobileRedirectURIs": "URI de redirection mobile autorisés",
"LabelMobileRedirectURIsDescription": "Il s'agit d'une liste blanche d’URI de redirection valides pour les applications mobiles. Celui par défaut est audiobookshelf://oauth
, que vous pouvez supprimer ou compléter avec des URIs supplémentaires pour l'intégration d'applications tierces. L’utilisation d’un astérisque (*
) comme seule entrée autorise n’importe quel URI.",
"LabelMore": "Plus",
diff --git a/client/strings/gu.json b/client/strings/gu.json
index 2f3d9cd816..eff18343f6 100644
--- a/client/strings/gu.json
+++ b/client/strings/gu.json
@@ -356,7 +356,9 @@
"LabelMetaTags": "Meta Tags",
"LabelMinute": "Minute",
"LabelMissing": "Missing",
+ "LabelMissingEbook": "Has no ebook",
"LabelMissingParts": "Missing Parts",
+ "LabelMissingSupplementaryEbook": "Has no supplementary ebook",
"LabelMobileRedirectURIs": "Allowed Mobile Redirect URIs",
"LabelMobileRedirectURIsDescription": "This is a whitelist of valid redirect URIs for mobile apps. The default one is audiobookshelf://oauth
, which you can remove or supplement with additional URIs for third-party app integration. Using an asterisk (*
) as the sole entry permits any URI.",
"LabelMore": "More",
diff --git a/client/strings/hi.json b/client/strings/hi.json
index 01667b59f0..d126e9f5d2 100644
--- a/client/strings/hi.json
+++ b/client/strings/hi.json
@@ -356,7 +356,9 @@
"LabelMetaTags": "Meta Tags",
"LabelMinute": "Minute",
"LabelMissing": "Missing",
+ "LabelMissingEbook": "Has no ebook",
"LabelMissingParts": "Missing Parts",
+ "LabelMissingSupplementaryEbook": "Has no supplementary ebook",
"LabelMobileRedirectURIs": "Allowed Mobile Redirect URIs",
"LabelMobileRedirectURIsDescription": "This is a whitelist of valid redirect URIs for mobile apps. The default one is audiobookshelf://oauth
, which you can remove or supplement with additional URIs for third-party app integration. Using an asterisk (*
) as the sole entry permits any URI.",
"LabelMore": "More",
diff --git a/client/strings/hr.json b/client/strings/hr.json
index 8aa933c74b..313505ac49 100644
--- a/client/strings/hr.json
+++ b/client/strings/hr.json
@@ -356,7 +356,9 @@
"LabelMetaTags": "Meta Tags",
"LabelMinute": "Minuta",
"LabelMissing": "Nedostaje",
+ "LabelMissingEbook": "Has no ebook",
"LabelMissingParts": "Nedostajali dijelovi",
+ "LabelMissingSupplementaryEbook": "Has no supplementary ebook",
"LabelMobileRedirectURIs": "Allowed Mobile Redirect URIs",
"LabelMobileRedirectURIsDescription": "This is a whitelist of valid redirect URIs for mobile apps. The default one is audiobookshelf://oauth
, which you can remove or supplement with additional URIs for third-party app integration. Using an asterisk (*
) as the sole entry permits any URI.",
"LabelMore": "Više",
diff --git a/client/strings/hu.json b/client/strings/hu.json
index d52957e1aa..1829916a04 100644
--- a/client/strings/hu.json
+++ b/client/strings/hu.json
@@ -356,7 +356,9 @@
"LabelMetaTags": "Meta címkék",
"LabelMinute": "Perc",
"LabelMissing": "Hiányzó",
+ "LabelMissingEbook": "Has no ebook",
"LabelMissingParts": "Hiányzó részek",
+ "LabelMissingSupplementaryEbook": "Has no supplementary ebook",
"LabelMobileRedirectURIs": "Engedélyezett mobil átirányítási URI-k",
"LabelMobileRedirectURIsDescription": "Ez egy fehérlista az érvényes mobilalkalmazás-átirányítási URI-k számára. Az alapértelmezett audiobookshelf://oauth
, amely eltávolítható vagy kiegészíthető további URI-kkal harmadik féltől származó alkalmazásintegráció érdekében. Ha az egyetlen bejegyzés egy csillag (*
), akkor bármely URI engedélyezett.",
"LabelMore": "Több",
diff --git a/client/strings/it.json b/client/strings/it.json
index 26a61fda9b..f4e970489d 100644
--- a/client/strings/it.json
+++ b/client/strings/it.json
@@ -356,7 +356,9 @@
"LabelMetaTags": "Meta Tags",
"LabelMinute": "Minuto",
"LabelMissing": "Altro",
+ "LabelMissingEbook": "Has no ebook",
"LabelMissingParts": "Parti rimanenti",
+ "LabelMissingSupplementaryEbook": "Has no supplementary ebook",
"LabelMobileRedirectURIs": "URI di reindirizzamento mobile consentiti",
"LabelMobileRedirectURIsDescription": "Questa è una lista bianca di URI di reindirizzamento validi per le app mobili. Quello predefinito è audiobookshelf://oauth
, che puoi rimuovere o integrare con URI aggiuntivi per l'integrazione di app di terze parti. Utilizzando un asterisco (*
) poiché l'unica voce consente qualsiasi URI.",
"LabelMore": "Molto",
diff --git a/client/strings/lt.json b/client/strings/lt.json
index 1c2558c907..4d97ab47b2 100644
--- a/client/strings/lt.json
+++ b/client/strings/lt.json
@@ -356,7 +356,9 @@
"LabelMetaTags": "Meta žymos",
"LabelMinute": "Minutė",
"LabelMissing": "Trūksta",
+ "LabelMissingEbook": "Has no ebook",
"LabelMissingParts": "Trūkstamos dalys",
+ "LabelMissingSupplementaryEbook": "Has no supplementary ebook",
"LabelMobileRedirectURIs": "Allowed Mobile Redirect URIs",
"LabelMobileRedirectURIsDescription": "This is a whitelist of valid redirect URIs for mobile apps. The default one is audiobookshelf://oauth
, which you can remove or supplement with additional URIs for third-party app integration. Using an asterisk (*
) as the sole entry permits any URI.",
"LabelMore": "Daugiau",
diff --git a/client/strings/nl.json b/client/strings/nl.json
index dd06146de2..858b3de6cd 100644
--- a/client/strings/nl.json
+++ b/client/strings/nl.json
@@ -356,7 +356,9 @@
"LabelMetaTags": "Meta-tags",
"LabelMinute": "Minuut",
"LabelMissing": "Ontbrekend",
+ "LabelMissingEbook": "Has no ebook",
"LabelMissingParts": "Ontbrekende delen",
+ "LabelMissingSupplementaryEbook": "Has no supplementary ebook",
"LabelMobileRedirectURIs": "Allowed Mobile Redirect URIs",
"LabelMobileRedirectURIsDescription": "This is a whitelist of valid redirect URIs for mobile apps. The default one is audiobookshelf://oauth
, which you can remove or supplement with additional URIs for third-party app integration. Using an asterisk (*
) as the sole entry permits any URI.",
"LabelMore": "Meer",
diff --git a/client/strings/no.json b/client/strings/no.json
index a29a7ef2ec..065d28dfb8 100644
--- a/client/strings/no.json
+++ b/client/strings/no.json
@@ -356,7 +356,9 @@
"LabelMetaTags": "Meta Tags",
"LabelMinute": "Minutt",
"LabelMissing": "Mangler",
+ "LabelMissingEbook": "Has no ebook",
"LabelMissingParts": "Manglende deler",
+ "LabelMissingSupplementaryEbook": "Has no supplementary ebook",
"LabelMobileRedirectURIs": "Allowed Mobile Redirect URIs",
"LabelMobileRedirectURIsDescription": "This is a whitelist of valid redirect URIs for mobile apps. The default one is audiobookshelf://oauth
, which you can remove or supplement with additional URIs for third-party app integration. Using an asterisk (*
) as the sole entry permits any URI.",
"LabelMore": "Mer",
diff --git a/client/strings/pl.json b/client/strings/pl.json
index 3189ccb78a..2d4141ba3f 100644
--- a/client/strings/pl.json
+++ b/client/strings/pl.json
@@ -356,7 +356,9 @@
"LabelMetaTags": "Meta Tags",
"LabelMinute": "Minuta",
"LabelMissing": "Brakujący",
+ "LabelMissingEbook": "Has no ebook",
"LabelMissingParts": "Brakujące cześci",
+ "LabelMissingSupplementaryEbook": "Has no supplementary ebook",
"LabelMobileRedirectURIs": "Allowed Mobile Redirect URIs",
"LabelMobileRedirectURIsDescription": "This is a whitelist of valid redirect URIs for mobile apps. The default one is audiobookshelf://oauth
, which you can remove or supplement with additional URIs for third-party app integration. Using an asterisk (*
) as the sole entry permits any URI.",
"LabelMore": "Więcej",
diff --git a/client/strings/pt-br.json b/client/strings/pt-br.json
index 1d88c20969..2630bc0951 100644
--- a/client/strings/pt-br.json
+++ b/client/strings/pt-br.json
@@ -356,7 +356,9 @@
"LabelMetaTags": "Etiquetas Meta",
"LabelMinute": "Minuto",
"LabelMissing": "Ausente",
+ "LabelMissingEbook": "Has no ebook",
"LabelMissingParts": "Partes Ausentes",
+ "LabelMissingSupplementaryEbook": "Has no supplementary ebook",
"LabelMobileRedirectURIs": "URIs de redirecionamento móveis permitidas",
"LabelMobileRedirectURIsDescription": "Essa é uma lista de permissionamento para URIs válidas para o redirecionamento de aplicativos móveis. A padrão é audiobookshelf://oauth
, que pode ser removida ou acrescentada com novas URIs para integração com apps de terceiros. Usando um asterisco (*
) como um item único dará permissão para qualquer URI.",
"LabelMore": "Mais",
diff --git a/client/strings/ru.json b/client/strings/ru.json
index adc3b48b5c..6d690ee6a9 100644
--- a/client/strings/ru.json
+++ b/client/strings/ru.json
@@ -356,7 +356,9 @@
"LabelMetaTags": "Мета теги",
"LabelMinute": "Минуты",
"LabelMissing": "Потеряно",
+ "LabelMissingEbook": "Has no ebook",
"LabelMissingParts": "Потерянные части",
+ "LabelMissingSupplementaryEbook": "Has no supplementary ebook",
"LabelMobileRedirectURIs": "Разрешенные URI перенаправления с мобильных устройств",
"LabelMobileRedirectURIsDescription": "Это белый список допустимых URI перенаправления для мобильных приложений. По умолчанию используется audiobookshelf://oauth
, который можно удалить или дополнить дополнительными URI для интеграции со сторонними приложениями. Использование звездочки (*
) в качестве единственной записи разрешает любой URI.",
"LabelMore": "Еще",
diff --git a/client/strings/sv.json b/client/strings/sv.json
index 9560e765b1..55e92be418 100644
--- a/client/strings/sv.json
+++ b/client/strings/sv.json
@@ -356,7 +356,9 @@
"LabelMetaTags": "Metamärken",
"LabelMinute": "Minut",
"LabelMissing": "Saknad",
+ "LabelMissingEbook": "Has no ebook",
"LabelMissingParts": "Saknade delar",
+ "LabelMissingSupplementaryEbook": "Has no supplementary ebook",
"LabelMobileRedirectURIs": "Allowed Mobile Redirect URIs",
"LabelMobileRedirectURIsDescription": "This is a whitelist of valid redirect URIs for mobile apps. The default one is audiobookshelf://oauth
, which you can remove or supplement with additional URIs for third-party app integration. Using an asterisk (*
) as the sole entry permits any URI.",
"LabelMore": "Mer",
diff --git a/client/strings/zh-cn.json b/client/strings/zh-cn.json
index c1d9345fc4..0634c74f5b 100644
--- a/client/strings/zh-cn.json
+++ b/client/strings/zh-cn.json
@@ -356,7 +356,9 @@
"LabelMetaTags": "元标签",
"LabelMinute": "分钟",
"LabelMissing": "丢失",
+ "LabelMissingEbook": "Has no ebook",
"LabelMissingParts": "丢失的部分",
+ "LabelMissingSupplementaryEbook": "Has no supplementary ebook",
"LabelMobileRedirectURIs": "允许移动应用重定向 URI",
"LabelMobileRedirectURIsDescription": "这是移动应用程序的有效重定向 URI 白名单. 默认值为 audiobookshelf://oauth
,您可以删除它或添加其他 URI 以进行第三方应用集成. 使用星号 (*
) 作为唯一条目允许任何 URI.",
"LabelMore": "更多",
diff --git a/server/utils/queries/libraryItemsBookFilters.js b/server/utils/queries/libraryItemsBookFilters.js
index d23459b466..16a2584763 100644
--- a/server/utils/queries/libraryItemsBookFilters.js
+++ b/server/utils/queries/libraryItemsBookFilters.js
@@ -204,6 +204,10 @@ module.exports = {
mediaWhere['ebookFile'] = {
[Sequelize.Op.not]: null
}
+ } else if (value == 'no-ebook') {
+ mediaWhere['ebookFile'] = {
+ [Sequelize.Op.eq]: null
+ }
}
} else if (group === 'missing') {
if (['asin', 'isbn', 'subtitle', 'publishedYear', 'description', 'publisher', 'language', 'cover'].includes(value)) {
@@ -421,6 +425,10 @@ module.exports = {
libraryItemWhere['libraryFiles'] = {
[Sequelize.Op.substring]: `"isSupplementary":true`
}
+ } else if (filterGroup === 'ebooks' && filterValue === 'no-supplementary') {
+ libraryItemWhere['libraryFiles'] = {
+ [Sequelize.Op.notLike]: Sequelize.literal(`\'%"isSupplementary":true%\'`),
+ }
} else if (filterGroup === 'missing' && filterValue === 'authors') {
authorInclude = {
model: Database.authorModel,