diff --git a/modules/backend/ServiceProvider.php b/modules/backend/ServiceProvider.php
index eafe022ea..9ea60b84d 100644
--- a/modules/backend/ServiceProvider.php
+++ b/modules/backend/ServiceProvider.php
@@ -75,10 +75,29 @@ class ServiceProvider extends ModuleServiceProvider
'editor' => [
'label' => 'backend::lang.editor.menu_label',
'description' => 'backend::lang.editor.menu_description',
- 'category' => 'System',
+ 'category' => 'My Settings',
'icon' => 'icon-code',
- 'url' => Backend::URL('backend/editorsettings'),
- 'sort' => 200
+ 'url' => Backend::URL('backend/editorpreferences'),
+ 'sort' => 200,
+ 'context' => 'mysettings'
+ ],
+ 'backend_preferences' => [
+ 'label' => 'backend::lang.backend_preferences.menu_label',
+ 'description' => 'backend::lang.backend_preferences.menu_description',
+ 'category' => 'My Settings',
+ 'icon' => 'icon-laptop',
+ 'class' => 'Backend\Models\BackendPreferences',
+ 'sort' => 200,
+ 'context' => 'mysettings'
+ ],
+ 'myaccount' => [
+ 'label' => 'backend::lang.myaccount.menu_label',
+ 'description' => 'backend::lang.myaccount.menu_description',
+ 'category' => 'My Settings',
+ 'icon' => 'icon-user',
+ 'url' => Backend::URL('backend/users/myaccount'),
+ 'sort' => 200,
+ 'context' => 'mysettings'
],
]);
});
diff --git a/modules/backend/assets/css/october.css b/modules/backend/assets/css/october.css
index 2fd6c3954..cad0ea24f 100644
--- a/modules/backend/assets/css/october.css
+++ b/modules/backend/assets/css/october.css
@@ -6373,6 +6373,787 @@ a .icon-flip-vertical:before {
.oc-icon-plus-square-o:before {
content: "\f196";
}
+[class^="flag-"],
+[class*=" flag-"] {
+ background: url(../images/flag-icons-small.png) no-repeat;
+ width: 16px;
+ height: 16px;
+ line-height: 16px;
+ vertical-align: middle;
+ display: inline-block;
+ margin: -1 2px 0 2px;
+}
+.flag-AfricanUnion {
+ background-position: 0 -16px;
+}
+.flag-ArabLeague {
+ background-position: 0 -32px;
+}
+.flag-ASEAN {
+ background-position: 0 -48px;
+}
+.flag-CARICOM {
+ background-position: 0 -64px;
+}
+.flag-CIS {
+ background-position: 0 -80px;
+}
+.flag-Commonwealth {
+ background-position: 0 -96px;
+}
+.flag-England {
+ background-position: 0 -112px;
+}
+.flag-European_Union {
+ background-position: 0 -128px;
+}
+.flag-Islamic_Conference {
+ background-position: 0 -144px;
+}
+.flag-Kosovo {
+ background-position: 0 -160px;
+}
+.flag-NATO {
+ background-position: 0 -176px;
+}
+.flag-NorthernCyprus {
+ background-position: 0 -192px;
+}
+.flag-NorthernIreland {
+ background-position: 0 -208px;
+}
+.flag-OlimpicMovement {
+ background-position: 0 -224px;
+}
+.flag-OPEC {
+ background-position: 0 -240px;
+}
+.flag-RedCross {
+ background-position: 0 -256px;
+}
+.flag-Scotland {
+ background-position: 0 -272px;
+}
+.flag-Somaliland {
+ background-position: 0 -288px;
+}
+.flag-Tibet {
+ background-position: 0 -304px;
+}
+.flag-United_Nations {
+ background-position: 0 -320px;
+}
+.flag-Wales {
+ background-position: 0 -336px;
+}
+.flag-eu {
+ background-position: 0 -128px;
+}
+.flag-ad {
+ background-position: 0 -352px;
+}
+.flag-ae {
+ background-position: 0 -368px;
+}
+.flag-af {
+ background-position: 0 -384px;
+}
+.flag-ag {
+ background-position: 0 -400px;
+}
+.flag-ai {
+ background-position: 0 -416px;
+}
+.flag-al {
+ background-position: 0 -432px;
+}
+.flag-am {
+ background-position: 0 -448px;
+}
+.flag-ao {
+ background-position: 0 -464px;
+}
+.flag-aq {
+ background-position: 0 -480px;
+}
+.flag-ar {
+ background-position: 0 -496px;
+}
+.flag-as {
+ background-position: 0 -512px;
+}
+.flag-at {
+ background-position: 0 -528px;
+}
+.flag-au {
+ background-position: 0 -544px;
+}
+.flag-aw {
+ background-position: 0 -560px;
+}
+.flag-ax {
+ background-position: 0 -576px;
+}
+.flag-az {
+ background-position: 0 -592px;
+}
+.flag-ba {
+ background-position: 0 -608px;
+}
+.flag-bb {
+ background-position: 0 -624px;
+}
+.flag-bd {
+ background-position: 0 -640px;
+}
+.flag-be {
+ background-position: 0 -656px;
+}
+.flag-bf {
+ background-position: 0 -672px;
+}
+.flag-bg {
+ background-position: 0 -688px;
+}
+.flag-bh {
+ background-position: 0 -704px;
+}
+.flag-bi {
+ background-position: 0 -720px;
+}
+.flag-bj {
+ background-position: 0 -736px;
+}
+.flag-bm {
+ background-position: 0 -752px;
+}
+.flag-bn {
+ background-position: 0 -768px;
+}
+.flag-bo {
+ background-position: 0 -784px;
+}
+.flag-br {
+ background-position: 0 -800px;
+}
+.flag-bs {
+ background-position: 0 -816px;
+}
+.flag-bt {
+ background-position: 0 -832px;
+}
+.flag-bw {
+ background-position: 0 -848px;
+}
+.flag-by {
+ background-position: 0 -864px;
+}
+.flag-bz {
+ background-position: 0 -880px;
+}
+.flag-ca {
+ background-position: 0 -896px;
+}
+.flag-cg {
+ background-position: 0 -912px;
+}
+.flag-cf {
+ background-position: 0 -928px;
+}
+.flag-cd {
+ background-position: 0 -944px;
+}
+.flag-ch {
+ background-position: 0 -960px;
+}
+.flag-ci {
+ background-position: 0 -976px;
+}
+.flag-ck {
+ background-position: 0 -992px;
+}
+.flag-cl {
+ background-position: 0 -1008px;
+}
+.flag-cm {
+ background-position: 0 -1024px;
+}
+.flag-cn {
+ background-position: 0 -1040px;
+}
+.flag-co {
+ background-position: 0 -1056px;
+}
+.flag-cr {
+ background-position: 0 -1072px;
+}
+.flag-cu {
+ background-position: 0 -1088px;
+}
+.flag-cv {
+ background-position: 0 -1104px;
+}
+.flag-cy {
+ background-position: 0 -1120px;
+}
+.flag-cz {
+ background-position: 0 -1136px;
+}
+.flag-de {
+ background-position: 0 -1152px;
+}
+.flag-dj {
+ background-position: 0 -1168px;
+}
+.flag-dk {
+ background-position: 0 -1184px;
+}
+.flag-dm {
+ background-position: 0 -1200px;
+}
+.flag-do {
+ background-position: 0 -1216px;
+}
+.flag-dz {
+ background-position: 0 -1232px;
+}
+.flag-ec {
+ background-position: 0 -1248px;
+}
+.flag-ee {
+ background-position: 0 -1264px;
+}
+.flag-eg {
+ background-position: 0 -1280px;
+}
+.flag-eh {
+ background-position: 0 -1296px;
+}
+.flag-er {
+ background-position: 0 -1312px;
+}
+.flag-es {
+ background-position: 0 -1328px;
+}
+.flag-et {
+ background-position: 0 -1344px;
+}
+.flag-fi {
+ background-position: 0 -1360px;
+}
+.flag-fj {
+ background-position: 0 -1376px;
+}
+.flag-fm {
+ background-position: 0 -1392px;
+}
+.flag-fo {
+ background-position: 0 -1408px;
+}
+.flag-fr {
+ background-position: 0 -1424px;
+}
+.flag-bl {
+ background-position: 0 -1424px;
+}
+.flag-cp {
+ background-position: 0 -1424px;
+}
+.flag-mf {
+ background-position: 0 -1424px;
+}
+.flag-yt {
+ background-position: 0 -1424px;
+}
+.flag-ga {
+ background-position: 0 -1440px;
+}
+.flag-gb {
+ background-position: 0 -1456px;
+}
+.flag-sh {
+ background-position: 0 -1456px;
+}
+.flag-gd {
+ background-position: 0 -1472px;
+}
+.flag-ge {
+ background-position: 0 -1488px;
+}
+.flag-gg {
+ background-position: 0 -1504px;
+}
+.flag-gh {
+ background-position: 0 -1520px;
+}
+.flag-gi {
+ background-position: 0 -1536px;
+}
+.flag-gl {
+ background-position: 0 -1552px;
+}
+.flag-gm {
+ background-position: 0 -1568px;
+}
+.flag-gn {
+ background-position: 0 -1584px;
+}
+.flag-gp {
+ background-position: 0 -1600px;
+}
+.flag-gq {
+ background-position: 0 -1616px;
+}
+.flag-gr {
+ background-position: 0 -1632px;
+}
+.flag-gt {
+ background-position: 0 -1648px;
+}
+.flag-gu {
+ background-position: 0 -1664px;
+}
+.flag-gw {
+ background-position: 0 -1680px;
+}
+.flag-gy {
+ background-position: 0 -1696px;
+}
+.flag-hk {
+ background-position: 0 -1712px;
+}
+.flag-hn {
+ background-position: 0 -1728px;
+}
+.flag-hr {
+ background-position: 0 -1744px;
+}
+.flag-ht {
+ background-position: 0 -1760px;
+}
+.flag-hu {
+ background-position: 0 -1776px;
+}
+.flag-id {
+ background-position: 0 -1792px;
+}
+.flag-mc {
+ background-position: 0 -1792px;
+}
+.flag-ie {
+ background-position: 0 -1808px;
+}
+.flag-il {
+ background-position: 0 -1824px;
+}
+.flag-im {
+ background-position: 0 -1840px;
+}
+.flag-in {
+ background-position: 0 -1856px;
+}
+.flag-iq {
+ background-position: 0 -1872px;
+}
+.flag-ir {
+ background-position: 0 -1888px;
+}
+.flag-is {
+ background-position: 0 -1904px;
+}
+.flag-it {
+ background-position: 0 -1920px;
+}
+.flag-je {
+ background-position: 0 -1936px;
+}
+.flag-jm {
+ background-position: 0 -1952px;
+}
+.flag-jo {
+ background-position: 0 -1968px;
+}
+.flag-jp {
+ background-position: 0 -1984px;
+}
+.flag-ke {
+ background-position: 0 -2000px;
+}
+.flag-kg {
+ background-position: 0 -2016px;
+}
+.flag-kh {
+ background-position: 0 -2032px;
+}
+.flag-ki {
+ background-position: 0 -2048px;
+}
+.flag-km {
+ background-position: 0 -2064px;
+}
+.flag-kn {
+ background-position: 0 -2080px;
+}
+.flag-kp {
+ background-position: 0 -2096px;
+}
+.flag-kr {
+ background-position: 0 -2112px;
+}
+.flag-kw {
+ background-position: 0 -2128px;
+}
+.flag-ky {
+ background-position: 0 -2144px;
+}
+.flag-kz {
+ background-position: 0 -2160px;
+}
+.flag-la {
+ background-position: 0 -2176px;
+}
+.flag-lb {
+ background-position: 0 -2192px;
+}
+.flag-lc {
+ background-position: 0 -2208px;
+}
+.flag-li {
+ background-position: 0 -2224px;
+}
+.flag-lk {
+ background-position: 0 -2240px;
+}
+.flag-lr {
+ background-position: 0 -2256px;
+}
+.flag-ls {
+ background-position: 0 -2272px;
+}
+.flag-lt {
+ background-position: 0 -2288px;
+}
+.flag-lu {
+ background-position: 0 -2304px;
+}
+.flag-lv {
+ background-position: 0 -2320px;
+}
+.flag-ly {
+ background-position: 0 -2336px;
+}
+.flag-ma {
+ background-position: 0 -2352px;
+}
+.flag-md {
+ background-position: 0 -2368px;
+}
+.flag-me {
+ background-position: 0 -2384px;
+}
+.flag-mg {
+ background-position: 0 -2400px;
+}
+.flag-mh {
+ background-position: 0 -2416px;
+}
+.flag-mk {
+ background-position: 0 -2432px;
+}
+.flag-ml {
+ background-position: 0 -2448px;
+}
+.flag-mm {
+ background-position: 0 -2464px;
+}
+.flag-mn {
+ background-position: 0 -2480px;
+}
+.flag-mo {
+ background-position: 0 -2496px;
+}
+.flag-mq {
+ background-position: 0 -2512px;
+}
+.flag-mr {
+ background-position: 0 -2528px;
+}
+.flag-ms {
+ background-position: 0 -2544px;
+}
+.flag-mt {
+ background-position: 0 -2560px;
+}
+.flag-mu {
+ background-position: 0 -2576px;
+}
+.flag-mv {
+ background-position: 0 -2592px;
+}
+.flag-mw {
+ background-position: 0 -2608px;
+}
+.flag-mx {
+ background-position: 0 -2624px;
+}
+.flag-my {
+ background-position: 0 -2640px;
+}
+.flag-mz {
+ background-position: 0 -2656px;
+}
+.flag-na {
+ background-position: 0 -2672px;
+}
+.flag-nc {
+ background-position: 0 -2688px;
+}
+.flag-ne {
+ background-position: 0 -2704px;
+}
+.flag-ng {
+ background-position: 0 -2720px;
+}
+.flag-ni {
+ background-position: 0 -2736px;
+}
+.flag-nl {
+ background-position: 0 -2752px;
+}
+.flag-bq {
+ background-position: 0 -2752px;
+}
+.flag-no {
+ background-position: 0 -2768px;
+}
+.flag-bv {
+ background-position: 0 -2768px;
+}
+.flag-nq {
+ background-position: 0 -2768px;
+}
+.flag-sj {
+ background-position: 0 -2768px;
+}
+.flag-np {
+ background-position: 0 -2784px;
+}
+.flag-nr {
+ background-position: 0 -2800px;
+}
+.flag-nz {
+ background-position: 0 -2816px;
+}
+.flag-om {
+ background-position: 0 -2832px;
+}
+.flag-pa {
+ background-position: 0 -2848px;
+}
+.flag-pe {
+ background-position: 0 -2864px;
+}
+.flag-pf {
+ background-position: 0 -2880px;
+}
+.flag-pg {
+ background-position: 0 -2896px;
+}
+.flag-ph {
+ background-position: 0 -2912px;
+}
+.flag-pk {
+ background-position: 0 -2928px;
+}
+.flag-pl {
+ background-position: 0 -2944px;
+}
+.flag-pr {
+ background-position: 0 -2960px;
+}
+.flag-ps {
+ background-position: 0 -2976px;
+}
+.flag-pt {
+ background-position: 0 -2992px;
+}
+.flag-pw {
+ background-position: 0 -3008px;
+}
+.flag-py {
+ background-position: 0 -3024px;
+}
+.flag-qa {
+ background-position: 0 -3040px;
+}
+.flag-re {
+ background-position: 0 -3056px;
+}
+.flag-ro {
+ background-position: 0 -3072px;
+}
+.flag-rs {
+ background-position: 0 -3088px;
+}
+.flag-ru {
+ background-position: 0 -3104px;
+}
+.flag-rw {
+ background-position: 0 -3120px;
+}
+.flag-sa {
+ background-position: 0 -3136px;
+}
+.flag-sb {
+ background-position: 0 -3152px;
+}
+.flag-sc {
+ background-position: 0 -3168px;
+}
+.flag-sd {
+ background-position: 0 -3184px;
+}
+.flag-se {
+ background-position: 0 -3200px;
+}
+.flag-sg {
+ background-position: 0 -3216px;
+}
+.flag-si {
+ background-position: 0 -3232px;
+}
+.flag-sk {
+ background-position: 0 -3248px;
+}
+.flag-sl {
+ background-position: 0 -3264px;
+}
+.flag-sm {
+ background-position: 0 -3280px;
+}
+.flag-sn {
+ background-position: 0 -3296px;
+}
+.flag-so {
+ background-position: 0 -3312px;
+}
+.flag-sr {
+ background-position: 0 -3328px;
+}
+.flag-st {
+ background-position: 0 -3344px;
+}
+.flag-sv {
+ background-position: 0 -3360px;
+}
+.flag-sy {
+ background-position: 0 -3376px;
+}
+.flag-sz {
+ background-position: 0 -3392px;
+}
+.flag-tc {
+ background-position: 0 -3408px;
+}
+.flag-td {
+ background-position: 0 -3424px;
+}
+.flag-tg {
+ background-position: 0 -3440px;
+}
+.flag-th {
+ background-position: 0 -3456px;
+}
+.flag-tj {
+ background-position: 0 -3472px;
+}
+.flag-tl {
+ background-position: 0 -3488px;
+}
+.flag-tm {
+ background-position: 0 -3504px;
+}
+.flag-tn {
+ background-position: 0 -3520px;
+}
+.flag-to {
+ background-position: 0 -3536px;
+}
+.flag-tr {
+ background-position: 0 -3552px;
+}
+.flag-tt {
+ background-position: 0 -3568px;
+}
+.flag-tv {
+ background-position: 0 -3584px;
+}
+.flag-tw {
+ background-position: 0 -3600px;
+}
+.flag-tz {
+ background-position: 0 -3616px;
+}
+.flag-ua {
+ background-position: 0 -3632px;
+}
+.flag-ug {
+ background-position: 0 -3648px;
+}
+.flag-us {
+ background-position: 0 -3664px;
+}
+.flag-uy {
+ background-position: 0 -3680px;
+}
+.flag-uz {
+ background-position: 0 -3696px;
+}
+.flag-va {
+ background-position: 0 -3712px;
+}
+.flag-vc {
+ background-position: 0 -3728px;
+}
+.flag-ve {
+ background-position: 0 -3744px;
+}
+.flag-vg {
+ background-position: 0 -3760px;
+}
+.flag-vi {
+ background-position: 0 -3776px;
+}
+.flag-vn {
+ background-position: 0 -3792px;
+}
+.flag-vu {
+ background-position: 0 -3808px;
+}
+.flag-ws {
+ background-position: 0 -3824px;
+}
+.flag-ye {
+ background-position: 0 -3840px;
+}
+.flag-za {
+ background-position: 0 -3856px;
+}
+.flag-zm {
+ background-position: 0 -3872px;
+}
+.flag-zw {
+ background-position: 0 -3888px;
+}
+.flag-sx {
+ background-position: 0 -3904px;
+}
+.flag-cw {
+ background-position: 0 -3920px;
+}
+.flag-ss {
+ background-position: 0 -3936px;
+}
@font-face {
font-family: 'Open Sans';
src: url('../font/OpenSans-Light.eot');
diff --git a/modules/backend/assets/images/flag-icons-large.png b/modules/backend/assets/images/flag-icons-large.png
new file mode 100644
index 000000000..66a0d1515
Binary files /dev/null and b/modules/backend/assets/images/flag-icons-large.png differ
diff --git a/modules/backend/assets/images/flag-icons-small.png b/modules/backend/assets/images/flag-icons-small.png
new file mode 100644
index 000000000..5b90d4e6f
Binary files /dev/null and b/modules/backend/assets/images/flag-icons-small.png differ
diff --git a/modules/backend/assets/js/editorsettings/editorsettings.js b/modules/backend/assets/js/editorpreferences/editorpreferences.js
similarity index 53%
rename from modules/backend/assets/js/editorsettings/editorsettings.js
rename to modules/backend/assets/js/editorpreferences/editorpreferences.js
index b26910db7..7838669c8 100644
--- a/modules/backend/assets/js/editorsettings/editorsettings.js
+++ b/modules/backend/assets/js/editorpreferences/editorpreferences.js
@@ -1,45 +1,45 @@
$(document).ready(function(){
- var editorEl = $('#editorsettingsCodeeditor'),
+ var editorEl = $('#editorpreferencesCodeeditor'),
editor = editorEl.codeEditor('getEditorObject'),
session = editor.getSession(),
renderer = editor.renderer
editorEl.height($('#editorSettingsForm').height() - 23)
- $('#Form-field-EditorSettings-theme').on('change', function(){
+ $('#Form-field-EditorPreferences-theme').on('change', function(){
editorEl.codeEditor('setTheme', $(this).val())
})
- $('#Form-field-EditorSettings-font_size').on('change', function(){
+ $('#Form-field-EditorPreferences-font_size').on('change', function(){
editor.setFontSize(parseInt($(this).val()))
})
- $('#Form-field-EditorSettings-word_wrap').on('change', function(){
+ $('#Form-field-EditorPreferences-word_wrap').on('change', function(){
editorEl.codeEditor('setWordWrap', $(this).val())
})
- $('#Form-field-EditorSettings-code_folding').on('change', function(){
+ $('#Form-field-EditorPreferences-code_folding').on('change', function(){
session.setFoldStyle($(this).val())
})
- $('#Form-field-EditorSettings-tab_size').on('change', function(){
+ $('#Form-field-EditorPreferences-tab_size').on('change', function(){
session.setTabSize($(this).val())
})
- $('#Form-field-EditorSettings-show_invisibles').on('change', function(){
+ $('#Form-field-EditorPreferences-show_invisibles').on('change', function(){
editor.setShowInvisibles($(this).is(':checked'))
})
- $('#Form-field-EditorSettings-highlight_active_line').on('change', function(){
+ $('#Form-field-EditorPreferences-highlight_active_line').on('change', function(){
editor.setHighlightActiveLine($(this).is(':checked'))
})
- $('#Form-field-EditorSettings-use_hard_tabs').on('change', function(){
+ $('#Form-field-EditorPreferences-use_hard_tabs').on('change', function(){
session.setUseSoftTabs(!$(this).is(':checked'))
})
- $('#Form-field-EditorSettings-show_gutter').on('change', function(){
+ $('#Form-field-EditorPreferences-show_gutter').on('change', function(){
renderer.setShowGutter($(this).is(':checked'))
})
diff --git a/modules/backend/assets/js/october.controls.js b/modules/backend/assets/js/october.controls.js
index e637f6937..dc94b45c1 100644
--- a/modules/backend/assets/js/october.controls.js
+++ b/modules/backend/assets/js/october.controls.js
@@ -29,7 +29,29 @@
if (Modernizr.touch)
return
- $('select.custom-select').select2()
+ var formatSelectOption = function(state) {
+ if (!state.id)
+ return state.text; // optgroup
+
+ var $option = $(state.element),
+ iconClass = $option.data('icon'),
+ imageSrc = $option.data('image')
+
+ if (iconClass)
+ return ' ' + state.text
+
+ if (imageSrc)
+ return ' ' + state.text
+
+ return state.text
+ }
+
+ $('select.custom-select').select2({
+ formatResult: formatSelectOption,
+ formatSelection: formatSelectOption,
+ escapeMarkup: function(m) { return m; }
+ })
+
$(document).on('disable', 'select.custom-select', function(event, status){
$(this).select2('enable', !status)
})
diff --git a/modules/backend/assets/less/core/flags.less b/modules/backend/assets/less/core/flags.less
new file mode 100644
index 000000000..884a38ab0
--- /dev/null
+++ b/modules/backend/assets/less/core/flags.less
@@ -0,0 +1,270 @@
+
+[class^="flag-"],
+[class*=" flag-"] {
+ background:url(../images/flag-icons-small.png) no-repeat;
+ width: 16px;
+ height: 16px;
+ line-height: 16px;
+ vertical-align: middle;
+ display: inline-block;
+ margin: -1 2px 0 2px;
+}
+
+.flag-AfricanUnion { background-position:0 -16px }
+.flag-ArabLeague { background-position:0 -32px }
+.flag-ASEAN { background-position:0 -48px }
+.flag-CARICOM { background-position:0 -64px }
+.flag-CIS { background-position:0 -80px }
+.flag-Commonwealth { background-position:0 -96px }
+.flag-England { background-position:0 -112px }
+.flag-European_Union { background-position:0 -128px }
+.flag-Islamic_Conference { background-position:0 -144px }
+.flag-Kosovo { background-position:0 -160px }
+.flag-NATO { background-position:0 -176px }
+.flag-NorthernCyprus { background-position:0 -192px }
+.flag-NorthernIreland { background-position:0 -208px }
+.flag-OlimpicMovement { background-position:0 -224px }
+.flag-OPEC { background-position:0 -240px }
+.flag-RedCross { background-position:0 -256px }
+.flag-Scotland { background-position:0 -272px }
+.flag-Somaliland { background-position:0 -288px }
+.flag-Tibet { background-position:0 -304px }
+.flag-United_Nations { background-position:0 -320px }
+.flag-Wales { background-position:0 -336px }
+
+.flag-eu { background-position:0 -128px }
+.flag-ad { background-position:0 -352px }
+.flag-ae { background-position:0 -368px }
+.flag-af { background-position:0 -384px }
+.flag-ag { background-position:0 -400px }
+.flag-ai { background-position:0 -416px }
+.flag-al { background-position:0 -432px }
+.flag-am { background-position:0 -448px }
+.flag-ao { background-position:0 -464px }
+.flag-aq { background-position:0 -480px }
+.flag-ar { background-position:0 -496px }
+.flag-as { background-position:0 -512px }
+.flag-at { background-position:0 -528px }
+.flag-au { background-position:0 -544px }
+.flag-aw { background-position:0 -560px }
+.flag-ax { background-position:0 -576px }
+.flag-az { background-position:0 -592px }
+.flag-ba { background-position:0 -608px }
+.flag-bb { background-position:0 -624px }
+.flag-bd { background-position:0 -640px }
+.flag-be { background-position:0 -656px }
+.flag-bf { background-position:0 -672px }
+.flag-bg { background-position:0 -688px }
+.flag-bh { background-position:0 -704px }
+.flag-bi { background-position:0 -720px }
+.flag-bj { background-position:0 -736px }
+.flag-bm { background-position:0 -752px }
+.flag-bn { background-position:0 -768px }
+.flag-bo { background-position:0 -784px }
+.flag-br { background-position:0 -800px }
+.flag-bs { background-position:0 -816px }
+.flag-bt { background-position:0 -832px }
+.flag-bw { background-position:0 -848px }
+.flag-by { background-position:0 -864px }
+.flag-bz { background-position:0 -880px }
+.flag-ca { background-position:0 -896px }
+.flag-cg { background-position:0 -912px }
+.flag-cf { background-position:0 -928px }
+.flag-cd { background-position:0 -944px }
+.flag-ch { background-position:0 -960px }
+.flag-ci { background-position:0 -976px }
+.flag-ck { background-position:0 -992px }
+.flag-cl { background-position:0 -1008px }
+.flag-cm { background-position:0 -1024px }
+.flag-cn { background-position:0 -1040px }
+.flag-co { background-position:0 -1056px }
+.flag-cr { background-position:0 -1072px }
+.flag-cu { background-position:0 -1088px }
+.flag-cv { background-position:0 -1104px }
+.flag-cy { background-position:0 -1120px }
+.flag-cz { background-position:0 -1136px }
+.flag-de { background-position:0 -1152px }
+.flag-dj { background-position:0 -1168px }
+.flag-dk { background-position:0 -1184px }
+.flag-dm { background-position:0 -1200px }
+.flag-do { background-position:0 -1216px }
+.flag-dz { background-position:0 -1232px }
+.flag-ec { background-position:0 -1248px }
+.flag-ee { background-position:0 -1264px }
+.flag-eg { background-position:0 -1280px }
+.flag-eh { background-position:0 -1296px }
+.flag-er { background-position:0 -1312px }
+.flag-es { background-position:0 -1328px }
+.flag-et { background-position:0 -1344px }
+.flag-fi { background-position:0 -1360px }
+.flag-fj { background-position:0 -1376px }
+.flag-fm { background-position:0 -1392px }
+.flag-fo { background-position:0 -1408px }
+.flag-fr { background-position:0 -1424px }
+.flag-bl { background-position:0 -1424px }
+.flag-cp { background-position:0 -1424px }
+.flag-mf { background-position:0 -1424px }
+.flag-yt { background-position:0 -1424px }
+.flag-ga { background-position:0 -1440px }
+.flag-gb { background-position:0 -1456px }
+.flag-sh { background-position:0 -1456px }
+.flag-gd { background-position:0 -1472px }
+.flag-ge { background-position:0 -1488px }
+.flag-gg { background-position:0 -1504px }
+.flag-gh { background-position:0 -1520px }
+.flag-gi { background-position:0 -1536px }
+.flag-gl { background-position:0 -1552px }
+.flag-gm { background-position:0 -1568px }
+.flag-gn { background-position:0 -1584px }
+.flag-gp { background-position:0 -1600px }
+.flag-gq { background-position:0 -1616px }
+.flag-gr { background-position:0 -1632px }
+.flag-gt { background-position:0 -1648px }
+.flag-gu { background-position:0 -1664px }
+.flag-gw { background-position:0 -1680px }
+.flag-gy { background-position:0 -1696px }
+.flag-hk { background-position:0 -1712px }
+.flag-hn { background-position:0 -1728px }
+.flag-hr { background-position:0 -1744px }
+.flag-ht { background-position:0 -1760px }
+.flag-hu { background-position:0 -1776px }
+.flag-id { background-position:0 -1792px }
+.flag-mc { background-position:0 -1792px }
+.flag-ie { background-position:0 -1808px }
+.flag-il { background-position:0 -1824px }
+.flag-im { background-position:0 -1840px }
+.flag-in { background-position:0 -1856px }
+.flag-iq { background-position:0 -1872px }
+.flag-ir { background-position:0 -1888px }
+.flag-is { background-position:0 -1904px }
+.flag-it { background-position:0 -1920px }
+.flag-je { background-position:0 -1936px }
+.flag-jm { background-position:0 -1952px }
+.flag-jo { background-position:0 -1968px }
+.flag-jp { background-position:0 -1984px }
+.flag-ke { background-position:0 -2000px }
+.flag-kg { background-position:0 -2016px }
+.flag-kh { background-position:0 -2032px }
+.flag-ki { background-position:0 -2048px }
+.flag-km { background-position:0 -2064px }
+.flag-kn { background-position:0 -2080px }
+.flag-kp { background-position:0 -2096px }
+.flag-kr { background-position:0 -2112px }
+.flag-kw { background-position:0 -2128px }
+.flag-ky { background-position:0 -2144px }
+.flag-kz { background-position:0 -2160px }
+.flag-la { background-position:0 -2176px }
+.flag-lb { background-position:0 -2192px }
+.flag-lc { background-position:0 -2208px }
+.flag-li { background-position:0 -2224px }
+.flag-lk { background-position:0 -2240px }
+.flag-lr { background-position:0 -2256px }
+.flag-ls { background-position:0 -2272px }
+.flag-lt { background-position:0 -2288px }
+.flag-lu { background-position:0 -2304px }
+.flag-lv { background-position:0 -2320px }
+.flag-ly { background-position:0 -2336px }
+.flag-ma { background-position:0 -2352px }
+.flag-md { background-position:0 -2368px }
+.flag-me { background-position:0 -2384px }
+.flag-mg { background-position:0 -2400px }
+.flag-mh { background-position:0 -2416px }
+.flag-mk { background-position:0 -2432px }
+.flag-ml { background-position:0 -2448px }
+.flag-mm { background-position:0 -2464px }
+.flag-mn { background-position:0 -2480px }
+.flag-mo { background-position:0 -2496px }
+.flag-mq { background-position:0 -2512px }
+.flag-mr { background-position:0 -2528px }
+.flag-ms { background-position:0 -2544px }
+.flag-mt { background-position:0 -2560px }
+.flag-mu { background-position:0 -2576px }
+.flag-mv { background-position:0 -2592px }
+.flag-mw { background-position:0 -2608px }
+.flag-mx { background-position:0 -2624px }
+.flag-my { background-position:0 -2640px }
+.flag-mz { background-position:0 -2656px }
+.flag-na { background-position:0 -2672px }
+.flag-nc { background-position:0 -2688px }
+.flag-ne { background-position:0 -2704px }
+.flag-ng { background-position:0 -2720px }
+.flag-ni { background-position:0 -2736px }
+.flag-nl { background-position:0 -2752px }
+.flag-bq { background-position:0 -2752px }
+.flag-no { background-position:0 -2768px }
+.flag-bv { background-position:0 -2768px }
+.flag-nq { background-position:0 -2768px }
+.flag-sj { background-position:0 -2768px }
+.flag-np { background-position:0 -2784px }
+.flag-nr { background-position:0 -2800px }
+.flag-nz { background-position:0 -2816px }
+.flag-om { background-position:0 -2832px }
+.flag-pa { background-position:0 -2848px }
+.flag-pe { background-position:0 -2864px }
+.flag-pf { background-position:0 -2880px }
+.flag-pg { background-position:0 -2896px }
+.flag-ph { background-position:0 -2912px }
+.flag-pk { background-position:0 -2928px }
+.flag-pl { background-position:0 -2944px }
+.flag-pr { background-position:0 -2960px }
+.flag-ps { background-position:0 -2976px }
+.flag-pt { background-position:0 -2992px }
+.flag-pw { background-position:0 -3008px }
+.flag-py { background-position:0 -3024px }
+.flag-qa { background-position:0 -3040px }
+.flag-re { background-position:0 -3056px }
+.flag-ro { background-position:0 -3072px }
+.flag-rs { background-position:0 -3088px }
+.flag-ru { background-position:0 -3104px }
+.flag-rw { background-position:0 -3120px }
+.flag-sa { background-position:0 -3136px }
+.flag-sb { background-position:0 -3152px }
+.flag-sc { background-position:0 -3168px }
+.flag-sd { background-position:0 -3184px }
+.flag-se { background-position:0 -3200px }
+.flag-sg { background-position:0 -3216px }
+.flag-si { background-position:0 -3232px }
+.flag-sk { background-position:0 -3248px }
+.flag-sl { background-position:0 -3264px }
+.flag-sm { background-position:0 -3280px }
+.flag-sn { background-position:0 -3296px }
+.flag-so { background-position:0 -3312px }
+.flag-sr { background-position:0 -3328px }
+.flag-st { background-position:0 -3344px }
+.flag-sv { background-position:0 -3360px }
+.flag-sy { background-position:0 -3376px }
+.flag-sz { background-position:0 -3392px }
+.flag-tc { background-position:0 -3408px }
+.flag-td { background-position:0 -3424px }
+.flag-tg { background-position:0 -3440px }
+.flag-th { background-position:0 -3456px }
+.flag-tj { background-position:0 -3472px }
+.flag-tl { background-position:0 -3488px }
+.flag-tm { background-position:0 -3504px }
+.flag-tn { background-position:0 -3520px }
+.flag-to { background-position:0 -3536px }
+.flag-tr { background-position:0 -3552px }
+.flag-tt { background-position:0 -3568px }
+.flag-tv { background-position:0 -3584px }
+.flag-tw { background-position:0 -3600px }
+.flag-tz { background-position:0 -3616px }
+.flag-ua { background-position:0 -3632px }
+.flag-ug { background-position:0 -3648px }
+.flag-us { background-position:0 -3664px }
+.flag-uy { background-position:0 -3680px }
+.flag-uz { background-position:0 -3696px }
+.flag-va { background-position:0 -3712px }
+.flag-vc { background-position:0 -3728px }
+.flag-ve { background-position:0 -3744px }
+.flag-vg { background-position:0 -3760px }
+.flag-vi { background-position:0 -3776px }
+.flag-vn { background-position:0 -3792px }
+.flag-vu { background-position:0 -3808px }
+.flag-ws { background-position:0 -3824px }
+.flag-ye { background-position:0 -3840px }
+.flag-za { background-position:0 -3856px }
+.flag-zm { background-position:0 -3872px }
+.flag-zw { background-position:0 -3888px }
+.flag-sx { background-position:0 -3904px }
+.flag-cw { background-position:0 -3920px }
+.flag-ss { background-position:0 -3936px }
diff --git a/modules/backend/assets/less/october.less b/modules/backend/assets/less/october.less
index be62c0a23..4a3c0b359 100644
--- a/modules/backend/assets/less/october.less
+++ b/modules/backend/assets/less/october.less
@@ -2,6 +2,7 @@
@import "core/bootstrap.less";
@import "../../../system/assets/vendor/font-autumn/less/font-autumn.less";
@import "core/icons.less";
+@import "core/flags.less";
@import "core/fonts.less";
// Boot variables and mixins
diff --git a/modules/backend/behaviors/UserSettingsModel.php b/modules/backend/behaviors/UserPreferencesModel.php
similarity index 92%
rename from modules/backend/behaviors/UserSettingsModel.php
rename to modules/backend/behaviors/UserPreferencesModel.php
index 6d630f037..6df2ddda0 100644
--- a/modules/backend/behaviors/UserSettingsModel.php
+++ b/modules/backend/behaviors/UserPreferencesModel.php
@@ -4,19 +4,19 @@ use System\Behaviors\SettingsModel;
use Backend\Models\UserPreferences;
/**
- * User Settings model extension, identical to System.Behaviors.SettingsModel
+ * User Preferences model extension, identical to System.Behaviors.SettingsModel
* except values are set against the logged in user's preferences via Backend\Models\UserPreferences.
*
* Usage:
*
* In the model class definition:
*
- * public $implement = ['Backend.Behaviors.UserSettingsModel'];
+ * public $implement = ['Backend.Behaviors.UserPreferencesModel'];
* public $settingsCode = 'author.plugin::code';
* public $settingsFields = 'fields.yaml';
*
*/
-class UserSettingsModel extends SettingsModel
+class UserPreferencesModel extends SettingsModel
{
private static $instances = [];
diff --git a/modules/backend/classes/Controller.php b/modules/backend/classes/Controller.php
index 4594c3d07..2e072068a 100644
--- a/modules/backend/classes/Controller.php
+++ b/modules/backend/classes/Controller.php
@@ -1,5 +1,6 @@
addCss('/modules/backend/formwidgets/codeeditor/assets/css/codeeditor.css', 'core');
$this->addJs('/modules/backend/formwidgets/codeeditor/assets/vendor/ace/ace.js', 'core');
$this->addJs('/modules/backend/formwidgets/codeeditor/assets/js/codeeditor.js', 'core');
- $this->addJs('/modules/backend/assets/js/editorsettings/editorsettings.js', 'core');
+ $this->addJs('/modules/backend/assets/js/editorpreferences/editorpreferences.js', 'core');
- BackendMenu::setContext('October.System', 'system', 'settings');
+ BackendMenu::setContext('October.System', 'system', 'mysettings');
}
public function index()
{
// Load the editor system settings
- $editorSettings = EditorSettingsModel::instance();
+ $editorSettings = EditorPreferencesModel::instance();
$this->vars['fontSize'] = $editorSettings->font_size;
$this->vars['wordWrap'] = $editorSettings->word_wrap;
@@ -64,6 +64,6 @@ class EditorSettings extends Controller
public function formFindModelObject()
{
- return EditorSettingsModel::instance();
+ return EditorPreferencesModel::instance();
}
}
\ No newline at end of file
diff --git a/modules/backend/controllers/Users.php b/modules/backend/controllers/Users.php
index 7b6675c01..5ff369d7b 100644
--- a/modules/backend/controllers/Users.php
+++ b/modules/backend/controllers/Users.php
@@ -1,5 +1,6 @@
action == 'mysettings')
+ if ($this->action == 'myaccount')
$this->requiredPermissions = null;
BackendMenu::setContext('October.System', 'system', 'users');
@@ -43,8 +44,8 @@ class Users extends Controller
public function update($recordId, $context = null)
{
// Users cannot edit themselves, only use My Settings
- if ($context != 'mysettings' && $recordId == $this->user->id)
- return Redirect::to(Backend::url('backend/users/mysettings'));
+ if ($context != 'myaccount' && $recordId == $this->user->id)
+ return Redirect::to(Backend::url('backend/users/myaccount'));
return $this->getClassExtension('Backend.Behaviors.FormController')->update($recordId, $context);
}
@@ -52,16 +53,17 @@ class Users extends Controller
/**
* My Settings controller
*/
- public function mysettings()
+ public function myaccount()
{
- $this->pageTitle = 'My Settings';
- return $this->update($this->user->id, 'mysettings');
+ BackendMenu::setContextSideMenu('mysettings');
+ $this->pageTitle = Lang::get('backend::lang.myaccount.menu_label');
+ return $this->update($this->user->id, 'myaccount');
}
/**
* Proxy update onSave event
*/
- public function mysettings_onSave()
+ public function myaccount_onSave()
{
$result = $this->getClassExtension('Backend.Behaviors.FormController')->update_onSave($this->user->id);
@@ -81,7 +83,7 @@ class Users extends Controller
*/
protected function formExtendFields($host)
{
- if ($host->getContext() == 'mysettings')
+ if ($host->getContext() == 'myaccount')
return;
$permissionFields = [];
diff --git a/modules/backend/controllers/editorsettings/_example_code.htm b/modules/backend/controllers/editorpreferences/_example_code.htm
similarity index 100%
rename from modules/backend/controllers/editorsettings/_example_code.htm
rename to modules/backend/controllers/editorpreferences/_example_code.htm
diff --git a/modules/backend/controllers/editorsettings/config_form.yaml b/modules/backend/controllers/editorpreferences/config_form.yaml
similarity index 56%
rename from modules/backend/controllers/editorsettings/config_form.yaml
rename to modules/backend/controllers/editorpreferences/config_form.yaml
index 46cf0ac8d..954284a78 100644
--- a/modules/backend/controllers/editorsettings/config_form.yaml
+++ b/modules/backend/controllers/editorpreferences/config_form.yaml
@@ -2,6 +2,6 @@
# Form Behavior Config
# ===================================
-form: @/modules/backend/models/editorsettings/fields.yaml
-modelClass: Backend\Models\EditorSettings
+form: @/modules/backend/models/editorpreferences/fields.yaml
+modelClass: Backend\Models\EditorPreferences
defaultRedirect: system/emailtemplates
diff --git a/modules/backend/controllers/editorsettings/index.htm b/modules/backend/controllers/editorpreferences/index.htm
similarity index 88%
rename from modules/backend/controllers/editorsettings/index.htm
rename to modules/backend/controllers/editorpreferences/index.htm
index 66e193bb6..a66351741 100644
--- a/modules/backend/controllers/editorsettings/index.htm
+++ b/modules/backend/controllers/editorpreferences/index.htm
@@ -1,6 +1,6 @@