From b952f6a2bc04d9de7b70aaecc68a42a248c95586 Mon Sep 17 00:00:00 2001 From: Alexander Skvortsov Date: Wed, 29 Apr 2020 19:02:16 -0400 Subject: [PATCH] Added Basics page --- js/src/admin/components/AdminNav.tsx | 15 +- js/src/admin/components/BasicsPage.tsx | 193 +++++++++++++++++++++++++ js/src/admin/routes.ts | 2 + 3 files changed, 204 insertions(+), 6 deletions(-) create mode 100644 js/src/admin/components/BasicsPage.tsx diff --git a/js/src/admin/components/AdminNav.tsx b/js/src/admin/components/AdminNav.tsx index ba963e209..308e1005e 100644 --- a/js/src/admin/components/AdminNav.tsx +++ b/js/src/admin/components/AdminNav.tsx @@ -30,12 +30,15 @@ export default class AdminNav extends Component { }) ); - // items.add('basics', AdminLinkButton.component({ - // href: app.route('basics'), - // icon: 'fas fa-pencil-alt', - // children: app.translator.trans('core.admin.nav.basics_button'), - // description: app.translator.trans('core.admin.nav.basics_text') - // })); + items.add( + 'basics', + AdminLinkButton.component({ + href: app.route('basics'), + icon: 'fas fa-pencil-alt', + children: app.translator.trans('core.admin.nav.basics_button'), + description: app.translator.trans('core.admin.nav.basics_text'), + }) + ); // items.add('mail', AdminLinkButton.component({ // href: app.route('mail'), diff --git a/js/src/admin/components/BasicsPage.tsx b/js/src/admin/components/BasicsPage.tsx new file mode 100644 index 000000000..73acaad23 --- /dev/null +++ b/js/src/admin/components/BasicsPage.tsx @@ -0,0 +1,193 @@ +import app from '../app'; + +import Page from './Page'; +import FieldSet from '../../common/components/FieldSet'; +import Select from '../../common/components/Select'; +import Button from '../../common/components/Button'; +import Alert from '../../common/components/Alert'; +import saveSettings from '../utils/saveSettings'; +import ItemList from '../../common/utils/ItemList'; +import Switch from '../../common/components/Switch'; + +import Stream from 'mithril/stream'; + +export default class BasicsPage extends Page { + loading: boolean = false; + fields: string[] = [ + 'forum_title', + 'forum_description', + 'default_locale', + 'show_language_selector', + 'default_route', + 'welcome_title', + 'welcome_message', + ]; + + values: { [key: string]: Stream } = {}; + + localeOptions: object = {}; + + successAlert: Alert; + + oninit(vnode) { + super.oninit(vnode); + + const settings = app.data.settings; + this.fields.forEach((key) => (this.values[key] = m.prop(settings[key]))); + + const locales = app.data.locales; + for (const i in locales) { + this.localeOptions[i] = `${locales[i]} (${i})`; + } + + if (typeof this.values.show_language_selector() !== 'number') this.values.show_language_selector(1); + } + + view() { + return ( +
+
+
+ {FieldSet.component({ + label: app.translator.trans('core.admin.basics.forum_title_heading'), + children: [ + , + ], + })} + + {FieldSet.component({ + label: app.translator.trans('core.admin.basics.forum_description_heading'), + children: [ +
{app.translator.trans('core.admin.basics.forum_description_text')}
, +