Format js

This commit is contained in:
Ian Morland 2022-05-03 09:13:50 +01:00
parent af85834a5a
commit 886e78d6fb
2 changed files with 97 additions and 65 deletions

View File

@ -1,50 +1,82 @@
import app from 'flarum/admin/app'; import app from 'flarum/admin/app';
app.initializers.add('blomstra-search', () => { app.initializers.add('blomstra-search', () => {
const languages = new Map; const languages = new Map();
['arabic', 'armenian', 'basque', 'bengali', 'brazilian', 'bulgarian', 'catalan', 'cjk', 'czech', [
'danish', 'dutch', 'english', 'estonian', 'finnish', 'french', 'galician', 'german', 'greek', 'arabic',
'hindi', 'hungarian', 'indonesian', 'irish', 'italian', 'latvian', 'lithuanian', 'norwegian', 'armenian',
'persian', 'portuguese', 'romanian', 'russian', 'sorani', 'spanish', 'swedish', 'turkish', 'thai'] 'basque',
.forEach(language => { 'bengali',
languages.set(language, language); '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 app.extensionData
.for('blomstra-search') .for('blomstra-search')
.registerSetting({ .registerSetting({
setting: 'blomstra-search.elastic-endpoint', setting: 'blomstra-search.elastic-endpoint',
label: app.translator.trans('blomstra-search.admin.elastic-endpoint'), label: app.translator.trans('blomstra-search.admin.elastic-endpoint'),
type: 'input' type: 'input',
}) })
.registerSetting({ .registerSetting({
setting: 'blomstra-search.elastic-username', setting: 'blomstra-search.elastic-username',
label: app.translator.trans('blomstra-search.admin.elastic-username'), label: app.translator.trans('blomstra-search.admin.elastic-username'),
type: 'input' type: 'input',
}) })
.registerSetting({ .registerSetting({
setting: 'blomstra-search.elastic-password', setting: 'blomstra-search.elastic-password',
label: app.translator.trans('blomstra-search.admin.elastic-password'), label: app.translator.trans('blomstra-search.admin.elastic-password'),
type: 'password' type: 'password',
}) })
.registerSetting({ .registerSetting({
setting: 'blomstra-search.elastic-index', setting: 'blomstra-search.elastic-index',
label: app.translator.trans('blomstra-search.admin.elastic-index'), label: app.translator.trans('blomstra-search.admin.elastic-index'),
default: 'flarum', default: 'flarum',
type: 'input' type: 'input',
}) })
.registerSetting({ .registerSetting({
setting: 'blomstra-search.analyzer-language', setting: 'blomstra-search.analyzer-language',
label: app.translator.trans('blomstra-search.admin.analyzer.label'), label: app.translator.trans('blomstra-search.admin.analyzer.label'),
help: app.translator.trans('blomstra-search.admin.analyzer.help'), help: app.translator.trans('blomstra-search.admin.analyzer.help'),
type: 'select', type: 'select',
options: Object.fromEntries(languages.entries()), options: Object.fromEntries(languages.entries()),
default: 'english', default: 'english',
}) })
.registerSetting({ .registerSetting({
setting: 'blomstra-search.elastic-index', setting: 'blomstra-search.elastic-index',
label: app.translator.trans('blomstra-search.admin.elastic-index'), label: app.translator.trans('blomstra-search.admin.elastic-index'),
default: 'flarum', default: 'flarum',
type: 'input' type: 'input',
}) });
}); });

View File

@ -1,33 +1,33 @@
import app from 'flarum/forum/app'; 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'; import DiscussionListState from 'flarum/forum/states/DiscussionListState';
export default function extendDiscussionState() { export default function extendDiscussionState() {
override(DiscussionListState.prototype, 'loadPage', async function (this: DiscussionListState, original, page: number = 1) { override(DiscussionListState.prototype, 'loadPage', async function (this: DiscussionListState, original, page: number = 1) {
const preloaded = app.data.apiDocument || null; const preloaded = app.data.apiDocument || null;
// If existing payload is given or no search is made, fallback on native 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); if (preloaded || !this.requestParams()?.filter?.q) return original.call(this, page);
const params = this.requestParams(); const params = this.requestParams();
params.page = { params.page = {
offset: this.pageSize * (page - 1), offset: this.pageSize * (page - 1),
...params.page, ...params.page,
}; };
if (Array.isArray(params.include)) { if (Array.isArray(params.include)) {
params.include = params.include.join(','); params.include = params.include.join(',');
} }
// Construct API search URI // Construct API search URI
const url = `${app.forum.attribute('apiUrl')}/blomstra/search/${this.type}`; const url = `${app.forum.attribute('apiUrl')}/blomstra/search/${this.type}`;
// Make API GET request // Make API GET request
const results = await app.request({params, url, method: 'GET'}); const results = await app.request({ params, url, method: 'GET' });
// Parse API response into models and push to store // Parse API response into models and push to store
return app.store.pushPayload(results); return app.store.pushPayload(results);
}); });
} }