From 25b3439d2ea519efa633bdb4ea7c0df39539af7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Sevilla=20Mart=C3=ADn?= Date: Sat, 16 Apr 2016 12:04:54 -0400 Subject: [PATCH 1/3] Added "Advanced" page on admin & SMTP settings Refs #258 --- framework/core/js/admin/dist/app.js | 150 +++++++++++++++++- .../core/js/admin/src/components/AdminNav.js | 7 + .../js/admin/src/components/AdvancedPage.js | 98 ++++++++++++ .../core/js/admin/src/initializers/routes.js | 4 +- framework/core/less/admin/AdvancedPage.less | 31 ++++ framework/core/less/admin/app.less | 1 + 6 files changed, 287 insertions(+), 4 deletions(-) create mode 100644 framework/core/js/admin/src/components/AdvancedPage.js create mode 100644 framework/core/less/admin/AdvancedPage.less diff --git a/framework/core/js/admin/dist/app.js b/framework/core/js/admin/dist/app.js index 37e2f47a6..7eeb68510 100644 --- a/framework/core/js/admin/dist/app.js +++ b/framework/core/js/admin/dist/app.js @@ -17293,6 +17293,13 @@ System.register('flarum/components/AdminNav', ['flarum/Component', 'flarum/compo description: app.translator.trans('core.admin.nav.extensions_text') })); + items.add('advanced', AdminLinkButton.component({ + href: app.route('advanced'), + icon: 'cog', + children: app.translator.trans('core.admin.nav.advanced_button'), + description: app.translator.trans('core.admin.nav.advanced_text') + })); + return items; } }]); @@ -17305,6 +17312,140 @@ System.register('flarum/components/AdminNav', ['flarum/Component', 'flarum/compo });; 'use strict'; +System.register('flarum/components/AdvancedPage', ['flarum/components/Page', 'flarum/components/FieldSet', 'flarum/components/Button', 'flarum/components/Alert', 'flarum/utils/saveSettings', 'flarum/utils/ItemList'], function (_export, _context) { + var Page, FieldSet, Button, Alert, saveSettings, ItemList, AdvancedPage; + return { + setters: [function (_flarumComponentsPage) { + Page = _flarumComponentsPage.default; + }, function (_flarumComponentsFieldSet) { + FieldSet = _flarumComponentsFieldSet.default; + }, function (_flarumComponentsButton) { + Button = _flarumComponentsButton.default; + }, function (_flarumComponentsAlert) { + Alert = _flarumComponentsAlert.default; + }, function (_flarumUtilsSaveSettings) { + saveSettings = _flarumUtilsSaveSettings.default; + }, function (_flarumUtilsItemList) { + ItemList = _flarumUtilsItemList.default; + }], + execute: function () { + AdvancedPage = function (_Page) { + babelHelpers.inherits(AdvancedPage, _Page); + + function AdvancedPage() { + babelHelpers.classCallCheck(this, AdvancedPage); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(AdvancedPage).apply(this, arguments)); + } + + babelHelpers.createClass(AdvancedPage, [{ + key: 'init', + value: function init() { + var _this2 = this; + + babelHelpers.get(Object.getPrototypeOf(AdvancedPage.prototype), 'init', this).call(this); + + this.loading = false; + + this.fields = ['mail_driver', 'mail_host', 'mail_from', 'mail_port', 'mail_username', 'mail_password', 'mail_encryption']; + this.values = {}; + + var settings = app.settings; + this.fields.forEach(function (key) { + return _this2.values[key] = m.prop(settings[key]); + }); + + this.localeOptions = {}; + var locales = app.locales; + for (var i in locales) { + this.localeOptions[i] = locales[i] + ' (' + i + ')'; + } + } + }, { + key: 'view', + value: function view() { + return m( + 'div', + { className: 'AdvancedPage' }, + m( + 'div', + { className: 'container' }, + m( + 'form', + { onsubmit: this.onsubmit.bind(this) }, + FieldSet.component({ + label: app.translator.trans('core.admin.advanced.mail_heading'), + className: 'AdvancedPage-MailSettings', + children: [m( + 'div', + { className: 'helpText' }, + app.translator.trans('core.admin.advanced.mail_text') + ), m( + 'div', + { className: 'AdvancedPage-mailSettings-input' }, + m('input', { className: 'FormControl', value: this.values.mail_driver() || '', oninput: m.withAttr('value', this.values.mail_driver), placeholder: app.translator.trans('core.admin.advanced.mail_driver') }), + m('input', { className: 'FormControl', value: this.values.mail_host() || '', oninput: m.withAttr('value', this.values.mail_host), placeholder: app.translator.trans('core.admin.advanced.mail_host') }), + m('input', { className: 'FormControl', value: this.values.mail_from() || '', oninput: m.withAttr('value', this.values.mail_from), placeholder: app.translator.trans('core.admin.advanced.mail_from') }), + m('input', { className: 'FormControl', value: this.values.mail_port() || '', oninput: m.withAttr('value', this.values.mail_port), placeholder: app.translator.trans('core.admin.advanced.mail_port') }), + m('input', { className: 'FormControl', value: this.values.mail_username() || '', oninput: m.withAttr('value', this.values.mail_username), placeholder: app.translator.trans('core.admin.advanced.mail_username') }), + m('input', { className: 'FormControl', value: this.values.mail_password() || '', oninput: m.withAttr('value', this.values.mail_password), placeholder: app.translator.trans('core.admin.advanced.mail_password') }), + m('input', { className: 'FormControl', value: this.values.mail_encryption() || '', oninput: m.withAttr('value', this.values.mail_encryption), placeholder: app.translator.trans('core.admin.advanced.mail_encryption') }) + )] + }), + Button.component({ + type: 'submit', + className: 'Button Button--primary', + children: app.translator.trans('core.admin.advanced.submit_button'), + loading: this.loading, + disabled: !this.changed() + }) + ) + ) + ); + } + }, { + key: 'changed', + value: function changed() { + var _this3 = this; + + return this.fields.some(function (key) { + return _this3.values[key]() !== app.settings[key]; + }); + } + }, { + key: 'onsubmit', + value: function onsubmit(e) { + var _this4 = this; + + e.preventDefault(); + + if (this.loading) return; + + this.loading = true; + app.alerts.dismiss(this.successAlert); + + var settings = {}; + + this.fields.forEach(function (key) { + return settings[key] = _this4.values[key](); + }); + + saveSettings(settings).then(function () { + app.alerts.show(_this4.successAlert = new Alert({ type: 'success', children: app.translator.trans('core.admin.basics.saved_message') })); + }).catch(function () {}).then(function () { + _this4.loading = false; + m.redraw(); + }); + } + }]); + return AdvancedPage; + }(Page); + + _export('default', AdvancedPage); + } + }; +});; +'use strict'; + System.register('flarum/components/Alert', ['flarum/Component', 'flarum/components/Button', 'flarum/helpers/listItems', 'flarum/utils/extract'], function (_export, _context) { var Component, Button, listItems, extract, Alert; return { @@ -20946,8 +21087,8 @@ System.register('flarum/initializers/preload', ['flarum/Session'], function (_ex });; 'use strict'; -System.register('flarum/initializers/routes', ['flarum/components/DashboardPage', 'flarum/components/BasicsPage', 'flarum/components/PermissionsPage', 'flarum/components/AppearancePage', 'flarum/components/ExtensionsPage'], function (_export, _context) { - var DashboardPage, BasicsPage, PermissionsPage, AppearancePage, ExtensionsPage; +System.register('flarum/initializers/routes', ['flarum/components/DashboardPage', 'flarum/components/BasicsPage', 'flarum/components/PermissionsPage', 'flarum/components/AppearancePage', 'flarum/components/ExtensionsPage', 'flarum/components/AdvancedPage'], function (_export, _context) { + var DashboardPage, BasicsPage, PermissionsPage, AppearancePage, ExtensionsPage, AdvancedPage; _export('default', function (app) { app.routes = { @@ -20955,7 +21096,8 @@ System.register('flarum/initializers/routes', ['flarum/components/DashboardPage' 'basics': { path: '/basics', component: BasicsPage.component() }, 'permissions': { path: '/permissions', component: PermissionsPage.component() }, 'appearance': { path: '/appearance', component: AppearancePage.component() }, - 'extensions': { path: '/extensions', component: ExtensionsPage.component() } + 'extensions': { path: '/extensions', component: ExtensionsPage.component() }, + 'advanced': { path: '/advanced', component: AdvancedPage.component() } }; }); @@ -20970,6 +21112,8 @@ System.register('flarum/initializers/routes', ['flarum/components/DashboardPage' AppearancePage = _flarumComponentsAppearancePage.default; }, function (_flarumComponentsExtensionsPage) { ExtensionsPage = _flarumComponentsExtensionsPage.default; + }, function (_flarumComponentsAdvancedPage) { + AdvancedPage = _flarumComponentsAdvancedPage.default; }], execute: function () {} }; diff --git a/framework/core/js/admin/src/components/AdminNav.js b/framework/core/js/admin/src/components/AdminNav.js index 240872467..ef2f54e78 100644 --- a/framework/core/js/admin/src/components/AdminNav.js +++ b/framework/core/js/admin/src/components/AdminNav.js @@ -67,6 +67,13 @@ export default class AdminNav extends Component { description: app.translator.trans('core.admin.nav.extensions_text') })); + items.add('advanced', AdminLinkButton.component({ + href: app.route('advanced'), + icon: 'cog', + children: app.translator.trans('core.admin.nav.advanced_button'), + description: app.translator.trans('core.admin.nav.advanced_text') + })) + return items; } } diff --git a/framework/core/js/admin/src/components/AdvancedPage.js b/framework/core/js/admin/src/components/AdvancedPage.js new file mode 100644 index 000000000..82567585f --- /dev/null +++ b/framework/core/js/admin/src/components/AdvancedPage.js @@ -0,0 +1,98 @@ +import Page from 'flarum/components/Page'; +import FieldSet from 'flarum/components/FieldSet'; +import Button from 'flarum/components/Button'; +import Alert from 'flarum/components/Alert'; +import saveSettings from 'flarum/utils/saveSettings'; +import ItemList from 'flarum/utils/ItemList'; + +export default class AdvancedPage extends Page { + init() { + super.init(); + + this.loading = false; + + this.fields = [ + 'mail_driver', + 'mail_host', + 'mail_from', + 'mail_port', + 'mail_username', + 'mail_password', + 'mail_encryption' + ]; + this.values = {}; + + const settings = app.settings; + this.fields.forEach(key => this.values[key] = m.prop(settings[key])); + + this.localeOptions = {}; + const locales = app.locales; + for (const i in locales) { + this.localeOptions[i] = `${locales[i]} (${i})`; + } + } + + view() { + return ( +
+
+
+ {FieldSet.component({ + label: app.translator.trans('core.admin.advanced.mail_heading'), + className: 'AdvancedPage-MailSettings', + children: [ +
+ {app.translator.trans('core.admin.advanced.mail_text')} +
, +
+ + + + + + + +
+ ] + })} + + {Button.component({ + type: 'submit', + className: 'Button Button--primary', + children: app.translator.trans('core.admin.advanced.submit_button'), + loading: this.loading, + disabled: !this.changed() + })} +
+
+
+ ); + } + + changed() { + return this.fields.some(key => this.values[key]() !== app.settings[key]); + } + + onsubmit(e) { + e.preventDefault(); + + if (this.loading) return; + + this.loading = true; + app.alerts.dismiss(this.successAlert); + + const settings = {}; + + this.fields.forEach(key => settings[key] = this.values[key]()); + + saveSettings(settings) + .then(() => { + app.alerts.show(this.successAlert = new Alert({type: 'success', children: app.translator.trans('core.admin.basics.saved_message')})); + }) + .catch(() => {}) + .then(() => { + this.loading = false; + m.redraw(); + }); + } +} diff --git a/framework/core/js/admin/src/initializers/routes.js b/framework/core/js/admin/src/initializers/routes.js index 5a5a416ae..8d8400c1f 100644 --- a/framework/core/js/admin/src/initializers/routes.js +++ b/framework/core/js/admin/src/initializers/routes.js @@ -3,6 +3,7 @@ import BasicsPage from 'flarum/components/BasicsPage'; import PermissionsPage from 'flarum/components/PermissionsPage'; import AppearancePage from 'flarum/components/AppearancePage'; import ExtensionsPage from 'flarum/components/ExtensionsPage'; +import AdvancedPage from 'flarum/components/AdvancedPage'; /** * The `routes` initializer defines the admin app's routes. @@ -15,6 +16,7 @@ export default function(app) { 'basics': {path: '/basics', component: BasicsPage.component()}, 'permissions': {path: '/permissions', component: PermissionsPage.component()}, 'appearance': {path: '/appearance', component: AppearancePage.component()}, - 'extensions': {path: '/extensions', component: ExtensionsPage.component()} + 'extensions': {path: '/extensions', component: ExtensionsPage.component()}, + 'advanced': {path: '/advanced', component: AdvancedPage.component()} }; } diff --git a/framework/core/less/admin/AdvancedPage.less b/framework/core/less/admin/AdvancedPage.less new file mode 100644 index 000000000..896718dc5 --- /dev/null +++ b/framework/core/less/admin/AdvancedPage.less @@ -0,0 +1,31 @@ +.AdvancedPage { + padding: 20px 0; + + @media @desktop-up { + .container { + max-width: 600px; + margin: 0; + } + } + + fieldset { + margin-bottom: 30px; + + > ul { + list-style: none; + margin: 0; + padding: 0; + } + } +} + +.AdvancedPage-mailSettings-input { + + .FormControl { + margin-bottom: 1px; + } + + :last-child { + margin-bottom: 0; + } +} diff --git a/framework/core/less/admin/app.less b/framework/core/less/admin/app.less index 021cb346d..977ecd475 100644 --- a/framework/core/less/admin/app.less +++ b/framework/core/less/admin/app.less @@ -7,3 +7,4 @@ @import "EditGroupModal.less"; @import "ExtensionsPage.less"; @import "AppearancePage.less"; +@import "AdvancedPage.less"; From 1934d51b8ade3013a518e2869e36a8896052bc6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Sevilla=20Mart=C3=ADn?= Date: Sat, 23 Apr 2016 09:19:02 -0400 Subject: [PATCH 2/3] Changed "Advanced" to "Mail" + Added labels above inputs - Removed Placeholders --- framework/core/js/admin/dist/app.js | 323 ++++++++++-------- .../core/js/admin/src/components/AdminNav.js | 10 +- .../{AdvancedPage.js => MailPage.js} | 35 +- .../core/js/admin/src/initializers/routes.js | 4 +- .../{AdvancedPage.less => MailPage.less} | 10 +- framework/core/less/admin/app.less | 2 +- 6 files changed, 215 insertions(+), 169 deletions(-) rename framework/core/js/admin/src/components/{AdvancedPage.js => MailPage.js} (72%) rename framework/core/less/admin/{AdvancedPage.less => MailPage.less} (73%) diff --git a/framework/core/js/admin/dist/app.js b/framework/core/js/admin/dist/app.js index 7eeb68510..acff04247 100644 --- a/framework/core/js/admin/dist/app.js +++ b/framework/core/js/admin/dist/app.js @@ -17293,11 +17293,11 @@ System.register('flarum/components/AdminNav', ['flarum/Component', 'flarum/compo description: app.translator.trans('core.admin.nav.extensions_text') })); - items.add('advanced', AdminLinkButton.component({ - href: app.route('advanced'), - icon: 'cog', - children: app.translator.trans('core.admin.nav.advanced_button'), - description: app.translator.trans('core.admin.nav.advanced_text') + items.add('mail', AdminLinkButton.component({ + href: app.route('mail'), + icon: 'envelope', + children: app.translator.trans('core.admin.nav.mail_button'), + description: app.translator.trans('core.admin.nav.mail_text') })); return items; @@ -17312,140 +17312,6 @@ System.register('flarum/components/AdminNav', ['flarum/Component', 'flarum/compo });; 'use strict'; -System.register('flarum/components/AdvancedPage', ['flarum/components/Page', 'flarum/components/FieldSet', 'flarum/components/Button', 'flarum/components/Alert', 'flarum/utils/saveSettings', 'flarum/utils/ItemList'], function (_export, _context) { - var Page, FieldSet, Button, Alert, saveSettings, ItemList, AdvancedPage; - return { - setters: [function (_flarumComponentsPage) { - Page = _flarumComponentsPage.default; - }, function (_flarumComponentsFieldSet) { - FieldSet = _flarumComponentsFieldSet.default; - }, function (_flarumComponentsButton) { - Button = _flarumComponentsButton.default; - }, function (_flarumComponentsAlert) { - Alert = _flarumComponentsAlert.default; - }, function (_flarumUtilsSaveSettings) { - saveSettings = _flarumUtilsSaveSettings.default; - }, function (_flarumUtilsItemList) { - ItemList = _flarumUtilsItemList.default; - }], - execute: function () { - AdvancedPage = function (_Page) { - babelHelpers.inherits(AdvancedPage, _Page); - - function AdvancedPage() { - babelHelpers.classCallCheck(this, AdvancedPage); - return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(AdvancedPage).apply(this, arguments)); - } - - babelHelpers.createClass(AdvancedPage, [{ - key: 'init', - value: function init() { - var _this2 = this; - - babelHelpers.get(Object.getPrototypeOf(AdvancedPage.prototype), 'init', this).call(this); - - this.loading = false; - - this.fields = ['mail_driver', 'mail_host', 'mail_from', 'mail_port', 'mail_username', 'mail_password', 'mail_encryption']; - this.values = {}; - - var settings = app.settings; - this.fields.forEach(function (key) { - return _this2.values[key] = m.prop(settings[key]); - }); - - this.localeOptions = {}; - var locales = app.locales; - for (var i in locales) { - this.localeOptions[i] = locales[i] + ' (' + i + ')'; - } - } - }, { - key: 'view', - value: function view() { - return m( - 'div', - { className: 'AdvancedPage' }, - m( - 'div', - { className: 'container' }, - m( - 'form', - { onsubmit: this.onsubmit.bind(this) }, - FieldSet.component({ - label: app.translator.trans('core.admin.advanced.mail_heading'), - className: 'AdvancedPage-MailSettings', - children: [m( - 'div', - { className: 'helpText' }, - app.translator.trans('core.admin.advanced.mail_text') - ), m( - 'div', - { className: 'AdvancedPage-mailSettings-input' }, - m('input', { className: 'FormControl', value: this.values.mail_driver() || '', oninput: m.withAttr('value', this.values.mail_driver), placeholder: app.translator.trans('core.admin.advanced.mail_driver') }), - m('input', { className: 'FormControl', value: this.values.mail_host() || '', oninput: m.withAttr('value', this.values.mail_host), placeholder: app.translator.trans('core.admin.advanced.mail_host') }), - m('input', { className: 'FormControl', value: this.values.mail_from() || '', oninput: m.withAttr('value', this.values.mail_from), placeholder: app.translator.trans('core.admin.advanced.mail_from') }), - m('input', { className: 'FormControl', value: this.values.mail_port() || '', oninput: m.withAttr('value', this.values.mail_port), placeholder: app.translator.trans('core.admin.advanced.mail_port') }), - m('input', { className: 'FormControl', value: this.values.mail_username() || '', oninput: m.withAttr('value', this.values.mail_username), placeholder: app.translator.trans('core.admin.advanced.mail_username') }), - m('input', { className: 'FormControl', value: this.values.mail_password() || '', oninput: m.withAttr('value', this.values.mail_password), placeholder: app.translator.trans('core.admin.advanced.mail_password') }), - m('input', { className: 'FormControl', value: this.values.mail_encryption() || '', oninput: m.withAttr('value', this.values.mail_encryption), placeholder: app.translator.trans('core.admin.advanced.mail_encryption') }) - )] - }), - Button.component({ - type: 'submit', - className: 'Button Button--primary', - children: app.translator.trans('core.admin.advanced.submit_button'), - loading: this.loading, - disabled: !this.changed() - }) - ) - ) - ); - } - }, { - key: 'changed', - value: function changed() { - var _this3 = this; - - return this.fields.some(function (key) { - return _this3.values[key]() !== app.settings[key]; - }); - } - }, { - key: 'onsubmit', - value: function onsubmit(e) { - var _this4 = this; - - e.preventDefault(); - - if (this.loading) return; - - this.loading = true; - app.alerts.dismiss(this.successAlert); - - var settings = {}; - - this.fields.forEach(function (key) { - return settings[key] = _this4.values[key](); - }); - - saveSettings(settings).then(function () { - app.alerts.show(_this4.successAlert = new Alert({ type: 'success', children: app.translator.trans('core.admin.basics.saved_message') })); - }).catch(function () {}).then(function () { - _this4.loading = false; - m.redraw(); - }); - } - }]); - return AdvancedPage; - }(Page); - - _export('default', AdvancedPage); - } - }; -});; -'use strict'; - System.register('flarum/components/Alert', ['flarum/Component', 'flarum/components/Button', 'flarum/helpers/listItems', 'flarum/utils/extract'], function (_export, _context) { var Component, Button, listItems, extract, Alert; return { @@ -19069,6 +18935,175 @@ System.register('flarum/components/LoadingModal', ['flarum/components/Modal'], f });; 'use strict'; +System.register('flarum/components/MailPage', ['flarum/components/Page', 'flarum/components/FieldSet', 'flarum/components/Button', 'flarum/components/Alert', 'flarum/utils/saveSettings', 'flarum/utils/ItemList'], function (_export, _context) { + var Page, FieldSet, Button, Alert, saveSettings, ItemList, MailPage; + return { + setters: [function (_flarumComponentsPage) { + Page = _flarumComponentsPage.default; + }, function (_flarumComponentsFieldSet) { + FieldSet = _flarumComponentsFieldSet.default; + }, function (_flarumComponentsButton) { + Button = _flarumComponentsButton.default; + }, function (_flarumComponentsAlert) { + Alert = _flarumComponentsAlert.default; + }, function (_flarumUtilsSaveSettings) { + saveSettings = _flarumUtilsSaveSettings.default; + }, function (_flarumUtilsItemList) { + ItemList = _flarumUtilsItemList.default; + }], + execute: function () { + MailPage = function (_Page) { + babelHelpers.inherits(MailPage, _Page); + + function MailPage() { + babelHelpers.classCallCheck(this, MailPage); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(MailPage).apply(this, arguments)); + } + + babelHelpers.createClass(MailPage, [{ + key: 'init', + value: function init() { + var _this2 = this; + + babelHelpers.get(Object.getPrototypeOf(MailPage.prototype), 'init', this).call(this); + + this.loading = false; + + this.fields = ['mail_driver', 'mail_host', 'mail_from', 'mail_port', 'mail_username', 'mail_password', 'mail_encryption']; + this.values = {}; + + var settings = app.settings; + this.fields.forEach(function (key) { + return _this2.values[key] = m.prop(settings[key]); + }); + + this.localeOptions = {}; + var locales = app.locales; + for (var i in locales) { + this.localeOptions[i] = locales[i] + ' (' + i + ')'; + } + } + }, { + key: 'view', + value: function view() { + return m( + 'div', + { className: 'MailPage' }, + m( + 'div', + { className: 'container' }, + m( + 'form', + { onsubmit: this.onsubmit.bind(this) }, + FieldSet.component({ + label: app.translator.trans('core.admin.mail.heading'), + className: 'MailPage-MailSettings', + children: [m( + 'div', + { className: 'helpText' }, + app.translator.trans('core.admin.mail.text') + ), m( + 'div', + { className: 'MailPage-MailSettings-input' }, + m( + 'label', + null, + app.translator.trans('core.admin.mail.driver') + ), + m('input', { className: 'FormControl', value: this.values.mail_driver() || '', oninput: m.withAttr('value', this.values.mail_driver) }), + m( + 'label', + null, + app.translator.trans('core.admin.mail.host') + ), + m('input', { className: 'FormControl', value: this.values.mail_host() || '', oninput: m.withAttr('value', this.values.mail_host) }), + m( + 'label', + null, + app.translator.trans('core.admin.mail.from') + ), + m('input', { className: 'FormControl', value: this.values.mail_from() || '', oninput: m.withAttr('value', this.values.mail_from) }), + m( + 'label', + null, + app.translator.trans('core.admin.mail.port') + ), + m('input', { className: 'FormControl', value: this.values.mail_port() || '', oninput: m.withAttr('value', this.values.mail_port) }), + m( + 'label', + null, + app.translator.trans('core.admin.mail.username') + ), + m('input', { className: 'FormControl', value: this.values.mail_username() || '', oninput: m.withAttr('value', this.values.mail_username) }), + m( + 'label', + null, + app.translator.trans('core.admin.mail.password') + ), + m('input', { className: 'FormControl', value: this.values.mail_password() || '', oninput: m.withAttr('value', this.values.mail_password) }), + m( + 'label', + null, + app.translator.trans('core.admin.mail.encryption') + ), + m('input', { className: 'FormControl', value: this.values.mail_encryption() || '', oninput: m.withAttr('value', this.values.mail_encryption) }) + )] + }), + Button.component({ + type: 'submit', + className: 'Button Button--primary', + children: app.translator.trans('core.admin.mail.submit_button'), + loading: this.loading, + disabled: !this.changed() + }) + ) + ) + ); + } + }, { + key: 'changed', + value: function changed() { + var _this3 = this; + + return this.fields.some(function (key) { + return _this3.values[key]() !== app.settings[key]; + }); + } + }, { + key: 'onsubmit', + value: function onsubmit(e) { + var _this4 = this; + + e.preventDefault(); + + if (this.loading) return; + + this.loading = true; + app.alerts.dismiss(this.successAlert); + + var settings = {}; + + this.fields.forEach(function (key) { + return settings[key] = _this4.values[key](); + }); + + saveSettings(settings).then(function () { + app.alerts.show(_this4.successAlert = new Alert({ type: 'success', children: app.translator.trans('core.admin.basics.saved_message') })); + }).catch(function () {}).then(function () { + _this4.loading = false; + m.redraw(); + }); + } + }]); + return MailPage; + }(Page); + + _export('default', MailPage); + } + }; +});; +'use strict'; + System.register('flarum/components/Modal', ['flarum/Component', 'flarum/components/Alert', 'flarum/components/Button'], function (_export, _context) { var Component, Alert, Button, Modal; return { @@ -21087,8 +21122,8 @@ System.register('flarum/initializers/preload', ['flarum/Session'], function (_ex });; 'use strict'; -System.register('flarum/initializers/routes', ['flarum/components/DashboardPage', 'flarum/components/BasicsPage', 'flarum/components/PermissionsPage', 'flarum/components/AppearancePage', 'flarum/components/ExtensionsPage', 'flarum/components/AdvancedPage'], function (_export, _context) { - var DashboardPage, BasicsPage, PermissionsPage, AppearancePage, ExtensionsPage, AdvancedPage; +System.register('flarum/initializers/routes', ['flarum/components/DashboardPage', 'flarum/components/BasicsPage', 'flarum/components/PermissionsPage', 'flarum/components/AppearancePage', 'flarum/components/ExtensionsPage', 'flarum/components/MailPage'], function (_export, _context) { + var DashboardPage, BasicsPage, PermissionsPage, AppearancePage, ExtensionsPage, MailPage; _export('default', function (app) { app.routes = { @@ -21097,7 +21132,7 @@ System.register('flarum/initializers/routes', ['flarum/components/DashboardPage' 'permissions': { path: '/permissions', component: PermissionsPage.component() }, 'appearance': { path: '/appearance', component: AppearancePage.component() }, 'extensions': { path: '/extensions', component: ExtensionsPage.component() }, - 'advanced': { path: '/advanced', component: AdvancedPage.component() } + 'mail': { path: '/mail', component: MailPage.component() } }; }); @@ -21112,8 +21147,8 @@ System.register('flarum/initializers/routes', ['flarum/components/DashboardPage' AppearancePage = _flarumComponentsAppearancePage.default; }, function (_flarumComponentsExtensionsPage) { ExtensionsPage = _flarumComponentsExtensionsPage.default; - }, function (_flarumComponentsAdvancedPage) { - AdvancedPage = _flarumComponentsAdvancedPage.default; + }, function (_flarumComponentsMailPage) { + MailPage = _flarumComponentsMailPage.default; }], execute: function () {} }; diff --git a/framework/core/js/admin/src/components/AdminNav.js b/framework/core/js/admin/src/components/AdminNav.js index ef2f54e78..436f44296 100644 --- a/framework/core/js/admin/src/components/AdminNav.js +++ b/framework/core/js/admin/src/components/AdminNav.js @@ -67,11 +67,11 @@ export default class AdminNav extends Component { description: app.translator.trans('core.admin.nav.extensions_text') })); - items.add('advanced', AdminLinkButton.component({ - href: app.route('advanced'), - icon: 'cog', - children: app.translator.trans('core.admin.nav.advanced_button'), - description: app.translator.trans('core.admin.nav.advanced_text') + items.add('mail', AdminLinkButton.component({ + href: app.route('mail'), + icon: 'envelope', + children: app.translator.trans('core.admin.nav.mail_button'), + description: app.translator.trans('core.admin.nav.mail_text') })) return items; diff --git a/framework/core/js/admin/src/components/AdvancedPage.js b/framework/core/js/admin/src/components/MailPage.js similarity index 72% rename from framework/core/js/admin/src/components/AdvancedPage.js rename to framework/core/js/admin/src/components/MailPage.js index 82567585f..4fe53b73e 100644 --- a/framework/core/js/admin/src/components/AdvancedPage.js +++ b/framework/core/js/admin/src/components/MailPage.js @@ -5,7 +5,7 @@ import Alert from 'flarum/components/Alert'; import saveSettings from 'flarum/utils/saveSettings'; import ItemList from 'flarum/utils/ItemList'; -export default class AdvancedPage extends Page { +export default class MailPage extends Page { init() { super.init(); @@ -34,24 +34,31 @@ export default class AdvancedPage extends Page { view() { return ( -
+
{FieldSet.component({ - label: app.translator.trans('core.admin.advanced.mail_heading'), - className: 'AdvancedPage-MailSettings', + label: app.translator.trans('core.admin.mail.heading'), + className: 'MailPage-MailSettings', children: [
- {app.translator.trans('core.admin.advanced.mail_text')} + {app.translator.trans('core.admin.mail.text')}
, -
- - - - - - - +
+ + + + + + + + + + + + + +
] })} @@ -59,7 +66,7 @@ export default class AdvancedPage extends Page { {Button.component({ type: 'submit', className: 'Button Button--primary', - children: app.translator.trans('core.admin.advanced.submit_button'), + children: app.translator.trans('core.admin.mail.submit_button'), loading: this.loading, disabled: !this.changed() })} diff --git a/framework/core/js/admin/src/initializers/routes.js b/framework/core/js/admin/src/initializers/routes.js index 8d8400c1f..29b7ffc3b 100644 --- a/framework/core/js/admin/src/initializers/routes.js +++ b/framework/core/js/admin/src/initializers/routes.js @@ -3,7 +3,7 @@ import BasicsPage from 'flarum/components/BasicsPage'; import PermissionsPage from 'flarum/components/PermissionsPage'; import AppearancePage from 'flarum/components/AppearancePage'; import ExtensionsPage from 'flarum/components/ExtensionsPage'; -import AdvancedPage from 'flarum/components/AdvancedPage'; +import MailPage from 'flarum/components/MailPage'; /** * The `routes` initializer defines the admin app's routes. @@ -17,6 +17,6 @@ export default function(app) { 'permissions': {path: '/permissions', component: PermissionsPage.component()}, 'appearance': {path: '/appearance', component: AppearancePage.component()}, 'extensions': {path: '/extensions', component: ExtensionsPage.component()}, - 'advanced': {path: '/advanced', component: AdvancedPage.component()} + 'mail': {path: '/mail', component: MailPage.component()} }; } diff --git a/framework/core/less/admin/AdvancedPage.less b/framework/core/less/admin/MailPage.less similarity index 73% rename from framework/core/less/admin/AdvancedPage.less rename to framework/core/less/admin/MailPage.less index 896718dc5..10ed97add 100644 --- a/framework/core/less/admin/AdvancedPage.less +++ b/framework/core/less/admin/MailPage.less @@ -1,4 +1,4 @@ -.AdvancedPage { +.MailPage { padding: 20px 0; @media @desktop-up { @@ -19,10 +19,14 @@ } } -.AdvancedPage-mailSettings-input { +.MailPage-MailSettings-input { + + label { + margin-bottom: 5px; + } .FormControl { - margin-bottom: 1px; + margin-bottom: 7px; } :last-child { diff --git a/framework/core/less/admin/app.less b/framework/core/less/admin/app.less index 977ecd475..b16fb9c10 100644 --- a/framework/core/less/admin/app.less +++ b/framework/core/less/admin/app.less @@ -7,4 +7,4 @@ @import "EditGroupModal.less"; @import "ExtensionsPage.less"; @import "AppearancePage.less"; -@import "AdvancedPage.less"; +@import "MailPage.less"; From 98b68c6c45975c8cc3183a50911572d9827b270b Mon Sep 17 00:00:00 2001 From: Franz Liedke Date: Fri, 13 May 2016 00:25:11 +0900 Subject: [PATCH 3/3] Remove unused import --- framework/core/js/admin/dist/app.js | 6 ++---- framework/core/js/admin/src/components/MailPage.js | 1 - 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/framework/core/js/admin/dist/app.js b/framework/core/js/admin/dist/app.js index acff04247..8b0e472d2 100644 --- a/framework/core/js/admin/dist/app.js +++ b/framework/core/js/admin/dist/app.js @@ -18935,8 +18935,8 @@ System.register('flarum/components/LoadingModal', ['flarum/components/Modal'], f });; 'use strict'; -System.register('flarum/components/MailPage', ['flarum/components/Page', 'flarum/components/FieldSet', 'flarum/components/Button', 'flarum/components/Alert', 'flarum/utils/saveSettings', 'flarum/utils/ItemList'], function (_export, _context) { - var Page, FieldSet, Button, Alert, saveSettings, ItemList, MailPage; +System.register('flarum/components/MailPage', ['flarum/components/Page', 'flarum/components/FieldSet', 'flarum/components/Button', 'flarum/components/Alert', 'flarum/utils/saveSettings'], function (_export, _context) { + var Page, FieldSet, Button, Alert, saveSettings, MailPage; return { setters: [function (_flarumComponentsPage) { Page = _flarumComponentsPage.default; @@ -18948,8 +18948,6 @@ System.register('flarum/components/MailPage', ['flarum/components/Page', 'flarum Alert = _flarumComponentsAlert.default; }, function (_flarumUtilsSaveSettings) { saveSettings = _flarumUtilsSaveSettings.default; - }, function (_flarumUtilsItemList) { - ItemList = _flarumUtilsItemList.default; }], execute: function () { MailPage = function (_Page) { diff --git a/framework/core/js/admin/src/components/MailPage.js b/framework/core/js/admin/src/components/MailPage.js index 4fe53b73e..3c7788d65 100644 --- a/framework/core/js/admin/src/components/MailPage.js +++ b/framework/core/js/admin/src/components/MailPage.js @@ -3,7 +3,6 @@ import FieldSet from 'flarum/components/FieldSet'; import Button from 'flarum/components/Button'; import Alert from 'flarum/components/Alert'; import saveSettings from 'flarum/utils/saveSettings'; -import ItemList from 'flarum/utils/ItemList'; export default class MailPage extends Page { init() {