1
0
mirror of https://github.com/flarum/core.git synced 2025-08-10 02:17:37 +02:00

update: admin/components/BasicsPage

- Not tested: locale selector, homepage selector, display name driver selector
This commit is contained in:
Alexander Skvortsov
2020-08-10 19:41:42 -04:00
committed by Franz Liedke
parent 99b119f1fa
commit 0087b956ef

View File

@@ -5,10 +5,11 @@ import Button from '../../common/components/Button';
import saveSettings from '../utils/saveSettings'; import saveSettings from '../utils/saveSettings';
import ItemList from '../../common/utils/ItemList'; import ItemList from '../../common/utils/ItemList';
import Switch from '../../common/components/Switch'; import Switch from '../../common/components/Switch';
import withAttr from '../../common/utils/withAttr';
export default class BasicsPage extends Page { export default class BasicsPage extends Page {
init() { oninit(vnode) {
super.init(); super.oninit(vnode);
this.loading = false; this.loading = false;
@@ -25,7 +26,7 @@ export default class BasicsPage extends Page {
this.values = {}; this.values = {};
const settings = app.data.settings; const settings = app.data.settings;
this.fields.forEach((key) => (this.values[key] = m.prop(settings[key]))); this.fields.forEach((key) => (this.values[key] = m.stream(settings[key])));
this.localeOptions = {}; this.localeOptions = {};
const locales = app.data.locales; const locales = app.data.locales;
@@ -49,45 +50,51 @@ export default class BasicsPage extends Page {
<div className="BasicsPage"> <div className="BasicsPage">
<div className="container"> <div className="container">
<form onsubmit={this.onsubmit.bind(this)}> <form onsubmit={this.onsubmit.bind(this)}>
{FieldSet.component({ {FieldSet.component(
{
label: app.translator.trans('core.admin.basics.forum_title_heading'), label: app.translator.trans('core.admin.basics.forum_title_heading'),
children: [<input className="FormControl" value={this.values.forum_title()} oninput={m.withAttr('value', this.values.forum_title)} />], },
})} [<input className="FormControl" bidi={this.values.forum_title} />]
)}
{FieldSet.component({ {FieldSet.component(
{
label: app.translator.trans('core.admin.basics.forum_description_heading'), label: app.translator.trans('core.admin.basics.forum_description_heading'),
children: [ },
[
<div className="helpText">{app.translator.trans('core.admin.basics.forum_description_text')}</div>, <div className="helpText">{app.translator.trans('core.admin.basics.forum_description_text')}</div>,
<textarea <textarea className="FormControl" bidi={this.values.forum_description} />,
className="FormControl" ]
value={this.values.forum_description()} )}
oninput={m.withAttr('value', this.values.forum_description)}
/>,
],
})}
{Object.keys(this.localeOptions).length > 1 {Object.keys(this.localeOptions).length > 1
? FieldSet.component({ ? FieldSet.component(
{
label: app.translator.trans('core.admin.basics.default_language_heading'), label: app.translator.trans('core.admin.basics.default_language_heading'),
children: [ },
[
Select.component({ Select.component({
options: this.localeOptions, options: this.localeOptions,
value: this.values.default_locale(), value: this.values.default_locale(),
onchange: this.values.default_locale, onchange: this.values.default_locale,
}), }),
Switch.component({ Switch.component(
{
state: this.values.show_language_selector(), state: this.values.show_language_selector(),
onchange: this.values.show_language_selector, onchange: this.values.show_language_selector,
children: app.translator.trans('core.admin.basics.show_language_selector_label'), },
}), app.translator.trans('core.admin.basics.show_language_selector_label')
], ),
}) ]
)
: ''} : ''}
{FieldSet.component({ {FieldSet.component(
{
label: app.translator.trans('core.admin.basics.home_page_heading'), label: app.translator.trans('core.admin.basics.home_page_heading'),
className: 'BasicsPage-homePage', className: 'BasicsPage-homePage',
children: [ },
[
<div className="helpText">{app.translator.trans('core.admin.basics.home_page_text')}</div>, <div className="helpText">{app.translator.trans('core.admin.basics.home_page_text')}</div>,
this.homePageItems() this.homePageItems()
.toArray() .toArray()
@@ -98,51 +105,52 @@ export default class BasicsPage extends Page {
name="homePage" name="homePage"
value={path} value={path}
checked={this.values.default_route() === path} checked={this.values.default_route() === path}
onclick={m.withAttr('value', this.values.default_route)} onclick={withAttr('value', this.values.default_route)}
/> />
{label} {label}
</label> </label>
)), )),
], ]
})} )}
{FieldSet.component({ {FieldSet.component(
{
label: app.translator.trans('core.admin.basics.welcome_banner_heading'), label: app.translator.trans('core.admin.basics.welcome_banner_heading'),
className: 'BasicsPage-welcomeBanner', className: 'BasicsPage-welcomeBanner',
children: [ },
[
<div className="helpText">{app.translator.trans('core.admin.basics.welcome_banner_text')}</div>, <div className="helpText">{app.translator.trans('core.admin.basics.welcome_banner_text')}</div>,
<div className="BasicsPage-welcomeBanner-input"> <div className="BasicsPage-welcomeBanner-input">
<input className="FormControl" value={this.values.welcome_title()} oninput={m.withAttr('value', this.values.welcome_title)} /> <input className="FormControl" bidi={this.values.welcome_title} />
<textarea <textarea className="FormControl" bidi={this.values.welcome_message} />
className="FormControl"
value={this.values.welcome_message()}
oninput={m.withAttr('value', this.values.welcome_message)}
/>
</div>, </div>,
], ]
})} )}
{Object.keys(this.displayNameOptions).length > 1 {Object.keys(this.displayNameOptions).length > 1
? FieldSet.component({ ? FieldSet.component(
{
label: app.translator.trans('core.admin.basics.display_name_heading'), label: app.translator.trans('core.admin.basics.display_name_heading'),
children: [ },
[
<div className="helpText">{app.translator.trans('core.admin.basics.display_name_text')}</div>, <div className="helpText">{app.translator.trans('core.admin.basics.display_name_text')}</div>,
Select.component({ Select.component({
options: this.displayNameOptions, options: this.displayNameOptions,
value: this.values.display_name_driver(), bidi: this.values.display_name_driver,
onchange: this.values.display_name_driver,
}), }),
], ]
}) )
: ''} : ''}
{Button.component({ {Button.component(
{
type: 'submit', type: 'submit',
className: 'Button Button--primary', className: 'Button Button--primary',
children: app.translator.trans('core.admin.basics.submit_button'),
loading: this.loading, loading: this.loading,
disabled: !this.changed(), disabled: !this.changed(),
})} },
app.translator.trans('core.admin.basics.submit_button')
)}
</form> </form>
</div> </div>
</div> </div>
@@ -185,9 +193,8 @@ export default class BasicsPage extends Page {
saveSettings(settings) saveSettings(settings)
.then(() => { .then(() => {
this.successAlert = app.alerts.show({ this.successAlert = app.alerts.show(app.translator.trans('core.admin.basics.saved_message'), {
type: 'success', type: 'success',
children: app.translator.trans('core.admin.basics.saved_message'),
}); });
}) })
.catch(() => {}) .catch(() => {})