瀏覽代碼

Настройки веб-интерфейса и опции командной строки "--lib-dir", "--inpx" вынесены в конфиг (#6)

Book Pauk 2 年之前
父節點
當前提交
e53bb11566
共有 6 個文件被更改,包括 45 次插入2 次删除
  1. 1 0
      CHANGELOG.md
  2. 17 0
      README.md
  3. 7 0
      client/components/Search/Search.vue
  4. 5 1
      client/store/root.js
  5. 14 1
      server/config/base.js
  6. 1 0
      server/config/index.js

+ 1 - 0
CHANGELOG.md

@@ -2,6 +2,7 @@
 ------------------
 
 - Исправление проблем скроллинга панели инструментов (#12)
+- Настройки веб-интерфейса и опции командной строки "--lib-dir", "--inpx" вынесены в конфиг (#6)
 - Улучшение отображения веб-интерфейса на мобильных устройствах
 
 1.4.1 / 2022-12-21

+ 17 - 0
README.md

@@ -172,6 +172,23 @@ Options:
         "user": "",
         "password": "",
         "root": "/opds"
+    },
+
+    // настройки по умолчанию для веб-интерфейса
+    // устанавливаются при первой загрузке страницы в браузере
+    // дальнейшие изменения настроек с помощью веб-интерфейса уже сохраняются в самом браузере
+    "uiDefaults": {
+        "limit": 20, // результатов на странице
+        "downloadAsZip": false, // скачивать книги в виде zip-архива
+        "showCounts": true, // показывать количество
+        "showRates": true, // показывать оценки
+        "showInfo": true, // показывать кнопку (инфо)
+        "showGenres": true, // показывать жанры
+        "showDates": false, // показывать даты поступления
+        "showDeleted": false, // показывать удаленные
+        "abCacheEnabled": true, // кешировать запросы
+        "langDefault": "", // язык по умолчанию (например "ru,en")
+        "showJson": false // показывать JSON (в расширенном поиске)
     }
 }
 ```

+ 7 - 0
client/components/Search/Search.vue

@@ -557,6 +557,13 @@ class Search {
         (async() => {
             await this.api.updateConfig();
 
+            //устанавливаем uiDefaults от сервера, если это необходимо
+            if (!this.settings.defaultsSet) {
+                const uiDefaults = _.cloneDeep(this.config.uiDefaults);
+                uiDefaults.defaultsSet = true;
+                this.commit('setSettings', uiDefaults);
+            }
+
             this.generateDefaults(this.extSearch, this.recStruct.map(f => f.field));
             this.extSearch.setDefaults(this.extSearch);
             this.search.lang = this.langDefault;

+ 5 - 1
client/store/root.js

@@ -4,9 +4,13 @@ const state = {
     settings: {
         accessToken: '',
         extendedParams: false,
-        limit: 20,
         expandedAuthor: [],
         expandedSeries: [],
+
+        defaultsSet: false,
+        
+        //uiDefaults
+        limit: 20,
         downloadAsZip: false,
         showCounts: true,
         showRates: true,

+ 14 - 1
server/config/base.js

@@ -33,7 +33,7 @@ module.exports = {
     lowMemoryMode: false,
     fullOptimization: false,
 
-    webConfigParams: ['name', 'version', 'branch', 'bookReadLink', 'dbVersion', 'extendedSearch'],
+    webConfigParams: ['name', 'version', 'branch', 'bookReadLink', 'dbVersion', 'extendedSearch', 'uiDefaults'],
 
     allowRemoteLib: false,
     remoteLib: false,
@@ -57,5 +57,18 @@ module.exports = {
         password: '',
         root: '/opds',
     },
+    uiDefaults: {
+        limit: 20,
+        downloadAsZip: false,
+        showCounts: true,
+        showRates: true,
+        showInfo: true,
+        showGenres: true,
+        showDates: false,
+        showDeleted: false,
+        abCacheEnabled: true,
+        langDefault: '',
+        showJson: false,
+    },
 };
 

+ 1 - 0
server/config/index.js

@@ -25,6 +25,7 @@ const propsToSave = [
     'remoteLib',
     'server',
     'opds',
+    'uiDefaults',
 ];
 
 let instance = null;