diff --git a/CHANGELOG.md b/CHANGELOG.md index 76aa6a0..e15903e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ------------------ - Исправление проблем скроллинга панели инструментов (#12) +- Настройки веб-интерфейса и опции командной строки "--lib-dir", "--inpx" вынесены в конфиг (#6) - Улучшение отображения веб-интерфейса на мобильных устройствах 1.4.1 / 2022-12-21 diff --git a/README.md b/README.md index baa796a..7bafd07 100644 --- a/README.md +++ b/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 (в расширенном поиске) } } ``` diff --git a/client/components/Search/Search.vue b/client/components/Search/Search.vue index 5d4f652..d995ab9 100644 --- a/client/components/Search/Search.vue +++ b/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; diff --git a/client/store/root.js b/client/store/root.js index 58bc6a8..357d2c0 100644 --- a/client/store/root.js +++ b/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, diff --git a/server/config/base.js b/server/config/base.js index 9fa04a0..c349dd0 100644 --- a/server/config/base.js +++ b/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, + }, }; diff --git a/server/config/index.js b/server/config/index.js index c8dfe9d..b6549a5 100644 --- a/server/config/index.js +++ b/server/config/index.js @@ -25,6 +25,7 @@ const propsToSave = [ 'remoteLib', 'server', 'opds', + 'uiDefaults', ]; let instance = null;