diff --git a/js/src/admin/index.ts b/js/src/admin/index.ts index 7deb7b5..ce06dab 100644 --- a/js/src/admin/index.ts +++ b/js/src/admin/index.ts @@ -1,50 +1,82 @@ import app from 'flarum/admin/app'; app.initializers.add('blomstra-search', () => { - const languages = new Map; - ['arabic', 'armenian', 'basque', 'bengali', 'brazilian', 'bulgarian', 'catalan', 'cjk', 'czech', - 'danish', 'dutch', 'english', 'estonian', 'finnish', 'french', 'galician', 'german', 'greek', - 'hindi', 'hungarian', 'indonesian', 'irish', 'italian', 'latvian', 'lithuanian', 'norwegian', - 'persian', 'portuguese', 'romanian', 'russian', 'sorani', 'spanish', 'swedish', 'turkish', 'thai'] - .forEach(language => { - languages.set(language, language); - }); + const languages = new Map(); + [ + 'arabic', + 'armenian', + 'basque', + 'bengali', + 'brazilian', + 'bulgarian', + 'catalan', + 'cjk', + 'czech', + 'danish', + 'dutch', + 'english', + 'estonian', + 'finnish', + 'french', + 'galician', + 'german', + 'greek', + 'hindi', + 'hungarian', + 'indonesian', + 'irish', + 'italian', + 'latvian', + 'lithuanian', + 'norwegian', + 'persian', + 'portuguese', + 'romanian', + 'russian', + 'sorani', + 'spanish', + 'swedish', + 'turkish', + 'thai', + ].forEach((language) => { + languages.set(language, language); + }); - app.extensionData - .for('blomstra-search') - .registerSetting({ - setting: 'blomstra-search.elastic-endpoint', - label: app.translator.trans('blomstra-search.admin.elastic-endpoint'), - type: 'input' - }) - .registerSetting({ - setting: 'blomstra-search.elastic-username', - label: app.translator.trans('blomstra-search.admin.elastic-username'), - type: 'input' - }) - .registerSetting({ - setting: 'blomstra-search.elastic-password', - label: app.translator.trans('blomstra-search.admin.elastic-password'), - type: 'password' - }) - .registerSetting({ - setting: 'blomstra-search.elastic-index', - label: app.translator.trans('blomstra-search.admin.elastic-index'), - default: 'flarum', - type: 'input' - }) - .registerSetting({ - setting: 'blomstra-search.analyzer-language', - label: app.translator.trans('blomstra-search.admin.analyzer.label'), - help: app.translator.trans('blomstra-search.admin.analyzer.help'), - type: 'select', - options: Object.fromEntries(languages.entries()), - default: 'english', - }) - .registerSetting({ - setting: 'blomstra-search.elastic-index', - label: app.translator.trans('blomstra-search.admin.elastic-index'), - default: 'flarum', - type: 'input' - }) + app.extensionData + .for('blomstra-search') + .registerSetting({ + setting: 'blomstra-search.elastic-endpoint', + label: app.translator.trans('blomstra-search.admin.elastic-endpoint'), + type: 'input', + }) + .registerSetting({ + setting: 'blomstra-search.elastic-username', + label: app.translator.trans('blomstra-search.admin.elastic-username'), + type: 'input', + }) + .registerSetting({ + setting: 'blomstra-search.elastic-password', + label: app.translator.trans('blomstra-search.admin.elastic-password'), + type: 'password', + }) + .registerSetting({ + setting: 'blomstra-search.elastic-index', + label: app.translator.trans('blomstra-search.admin.elastic-index'), + default: 'flarum', + type: 'input', + }) + .registerSetting({ + setting: 'blomstra-search.analyzer-language', + label: app.translator.trans('blomstra-search.admin.analyzer.label'), + help: app.translator.trans('blomstra-search.admin.analyzer.help'), + type: 'select', + options: Object.fromEntries(languages.entries()), + default: 'english', + }) + .registerSetting({ + setting: 'blomstra-search.elastic-index', + label: app.translator.trans('blomstra-search.admin.elastic-index'), + default: 'flarum', + type: 'input', + }); }); diff --git a/js/src/forum/PaginatedListStates/extendDiscussionState.tsx b/js/src/forum/PaginatedListStates/extendDiscussionState.tsx index a4c288e..b25c9ec 100644 --- a/js/src/forum/PaginatedListStates/extendDiscussionState.tsx +++ b/js/src/forum/PaginatedListStates/extendDiscussionState.tsx @@ -1,33 +1,33 @@ import app from 'flarum/forum/app'; -import {override} from 'flarum/common/extend'; +import { override } from 'flarum/common/extend'; import DiscussionListState from 'flarum/forum/states/DiscussionListState'; export default function extendDiscussionState() { - override(DiscussionListState.prototype, 'loadPage', async function (this: DiscussionListState, original, page: number = 1) { - const preloaded = app.data.apiDocument || null; + override(DiscussionListState.prototype, 'loadPage', async function (this: DiscussionListState, original, page: number = 1) { + const preloaded = app.data.apiDocument || null; - // If existing payload is given or no search is made, fallback on native page. - if (preloaded || !this.requestParams()?.filter?.q) return original.call(this, page); + // If existing payload is given or no search is made, fallback on native page. + if (preloaded || !this.requestParams()?.filter?.q) return original.call(this, page); - const params = this.requestParams(); - params.page = { - offset: this.pageSize * (page - 1), - ...params.page, - }; + const params = this.requestParams(); + params.page = { + offset: this.pageSize * (page - 1), + ...params.page, + }; - if (Array.isArray(params.include)) { - params.include = params.include.join(','); - } + if (Array.isArray(params.include)) { + params.include = params.include.join(','); + } - // Construct API search URI - const url = `${app.forum.attribute('apiUrl')}/blomstra/search/${this.type}`; + // Construct API search URI + const url = `${app.forum.attribute('apiUrl')}/blomstra/search/${this.type}`; - // Make API GET request - const results = await app.request({params, url, method: 'GET'}); + // Make API GET request + const results = await app.request({ params, url, method: 'GET' }); - // Parse API response into models and push to store - return app.store.pushPayload(results); - }); + // Parse API response into models and push to store + return app.store.pushPayload(results); + }); }