This commit is contained in:
Daniel Klabbers 2021-10-29 10:42:57 +02:00
parent 07a1e9dc44
commit 12bc9d74e0
4 changed files with 1300 additions and 17 deletions

View File

@ -9,6 +9,8 @@ return [
(new Flarum\Frontend('forum')) (new Flarum\Frontend('forum'))
->js(__DIR__ . '/js/dist/forum.js'), ->js(__DIR__ . '/js/dist/forum.js'),
(new Flarum\Frontend('admin'))
->js(__DIR__ . '/js/dist/admin.js'),
(new Flarum\Routes('api')) (new Flarum\Routes('api'))
->get('/blomstra/search/{type}', 'blomstra.search', Api\Controllers\SearchController::class), ->get('/blomstra/search/{type}', 'blomstra.search', Api\Controllers\SearchController::class),

1257
js/dist/forum.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,21 +1,47 @@
import app from 'flarum/forum/app'; import app from 'flarum/admin/app';
app.initializers.add('blomstra-search', (app) => { app.initializers.add('blomstra-search', () => {
const languages = {...['arabic', 'armenian', 'basque', 'bengali', 'brazilian', 'bulgarian', 'catalan', 'cjk', 'czech', const languages = new Map;
['arabic', 'armenian', 'basque', 'bengali', 'brazilian', 'bulgarian', 'catalan', 'cjk', 'czech',
'danish', 'dutch', 'english', 'estonian', 'finnish', 'french', 'galician', 'german', 'greek', 'danish', 'dutch', 'english', 'estonian', 'finnish', 'french', 'galician', 'german', 'greek',
'hindi', 'hungarian', 'indonesian', 'irish', 'italian', 'latvian', 'lithuanian', 'norwegian', 'hindi', 'hungarian', 'indonesian', 'irish', 'italian', 'latvian', 'lithuanian', 'norwegian',
'persian', 'portuguese', 'romanian', 'russian', 'sorani', 'spanish', 'swedish', 'turkish', 'thai']} '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.analyzer-language', // This is the key the settings will be saved under in the settings table in the database. label: app.translator.trans('blomstra-search.admin.elastic-endpoint.label'),
label: app.translator.trans('blomstra-search.admin.analyzer.label'), // The label to be shown letting the admin know what the setting does. help: app.translator.trans('blomstra-search.admin.elastic-endpoint.help'),
help: app.translator.trans('blomstra-search.admin.analyzer.help'), // Optional help text where a longer explanation of the setting can go. type: 'input'
type: 'select', // What type of setting this is, valid options are: boolean, text (or any other <input> tag type), and select. })
options: languages, .registerSetting({
default: null, setting: 'blomstra-search.elastic-username',
}, label: app.translator.trans('blomstra-search.admin.elastic-username.label'),
30 // Optional: Priority help: app.translator.trans('blomstra-search.admin.elastic-username.help'),
) type: 'input'
})
.registerSetting({
setting: 'blomstra-search.elastic-password',
label: app.translator.trans('blomstra-search.admin.elastic-password.label'),
help: app.translator.trans('blomstra-search.admin.elastic-password.help'),
type: 'password'
})
.registerSetting({
setting: 'blomstra-search.elastic-index',
label: app.translator.trans('blomstra-search.admin.elastic-index.label'),
help: app.translator.trans('blomstra-search.admin.elastic-index.help'),
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',
})
}); });