Format js
This commit is contained in:
parent
af85834a5a
commit
886e78d6fb
|
|
@ -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',
|
||||||
})
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue