mirror of
https://github.com/flarum/framework.git
synced 2025-06-02 05:23:12 +08:00
Allow locale to be selected in footer
This commit is contained in:
@ -1,4 +1,6 @@
|
||||
import Component from 'flarum/Component';
|
||||
import SelectDropdown from 'flarum/components/SelectDropdown';
|
||||
import Button from 'flarum/components/Button';
|
||||
import ItemList from 'flarum/utils/ItemList';
|
||||
import listItems from 'flarum/helpers/listItems';
|
||||
|
||||
@ -24,6 +26,31 @@ export default class FooterSecondary extends Component {
|
||||
items() {
|
||||
const items = new ItemList();
|
||||
|
||||
if (Object.keys(app.locales).length > 1) {
|
||||
const locales = [];
|
||||
|
||||
for (const locale in app.locales) {
|
||||
locales.push(Button.component({
|
||||
active: app.locale === locale,
|
||||
children: app.locales[locale],
|
||||
icon: app.locale === locale ? 'check' : true,
|
||||
onclick: () => {
|
||||
if (app.session.user) {
|
||||
app.session.user.savePreferences({locale}).then(() => window.location.reload());
|
||||
} else {
|
||||
document.cookie = `locale=${locale}; path=/; expires=Tue, 19 Jan 2038 03:14:07 GMT`;
|
||||
window.location.reload();
|
||||
}
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
items.add('locale', SelectDropdown.component({
|
||||
children: locales,
|
||||
buttonClassName: 'Button Button--text'
|
||||
}));
|
||||
}
|
||||
|
||||
items.add('poweredBy', (
|
||||
<a href="http://flarum.org?r=forum" target="_blank">
|
||||
{app.trans('core.powered_by_flarum')}
|
||||
|
@ -98,13 +98,10 @@ export default class SettingsPage extends UserPage {
|
||||
*/
|
||||
preferenceSaver(key) {
|
||||
return (value, component) => {
|
||||
const preferences = this.user.preferences();
|
||||
preferences[key] = value;
|
||||
|
||||
if (component) component.loading = true;
|
||||
m.redraw();
|
||||
|
||||
this.user.save({preferences}).then(() => {
|
||||
this.user.savePreferences({[key]: value}).then(() => {
|
||||
if (component) component.loading = false;
|
||||
m.redraw();
|
||||
});
|
||||
|
Reference in New Issue
Block a user