diff --git a/client/components/Search/Search.vue b/client/components/Search/Search.vue
index 63daf59..432e407 100644
--- a/client/components/Search/Search.vue
+++ b/client/components/Search/Search.vue
@@ -51,14 +51,18 @@
/>
+ >
+
+ {{ genreNames }}
+
+
@@ -325,6 +329,20 @@ class Search {
return this.$store.state.settings;
}
+ get genreNames() {
+ let result = [];
+ const genre = new Set(this.genre.split(','));
+
+ for (const section of this.genreTree) {
+ for (const g of section.value)
+ if (genre.has(g.value))
+ result.push(g.name);
+
+ }
+
+ return result.join(', ');
+ }
+
makeTitle() {
const collection = this.config.dbConfig.inpxInfo.collection.split('\n');
this.collection = collection[0].trim();
diff --git a/server/core/WebWorker.js b/server/core/WebWorker.js
index d52b89e..c9a6aa9 100644
--- a/server/core/WebWorker.js
+++ b/server/core/WebWorker.js
@@ -223,12 +223,28 @@ class WebWorker {
}
//добавим к жанрам те, что нашлись при парсинге
+ const genreParsed = new Set();
const rows = await db.select({table: 'genre', map: `(r) => ({value: r.value})`});
for (const row of rows) {
+ genreParsed.add(row.value);
+
if (!genreValues.has(row.value))
last.value.push({name: row.value, value: row.value});
}
+ //уберем те, которые не нашлись при парсинге
+ for (let j = 0; j < genres.length; j++) {
+ const section = genres[j];
+ for (let i = 0; i < section.value.length; i++) {
+ const g = section.value[i];
+ if (!genreParsed.has(g.value))
+ section.value.splice(i--, 1);
+ }
+
+ if (!section.value.length)
+ genres.splice(j--, 1);
+ }
+
result = {
genreTree: genres,
inpxHash: (config.inpxHash ? config.inpxHash : ''),