diff --git a/modules/backend/assets/js/october.js b/modules/backend/assets/js/october.js index 5f0f6da3a..8dc94045f 100644 --- a/modules/backend/assets/js/october.js +++ b/modules/backend/assets/js/october.js @@ -12,14 +12,12 @@ =require vendor/jquery.autoellipsis.js =require vendor/jquery.waterfall.js =require vendor/jquery.cookie.js -=require ../vendor/select2/select2.js =require ../vendor/dropzone/dropzone.js =require ../vendor/sweet-alert/sweet-alert.js =require ../vendor/jcrop/js/jquery.Jcrop.js =require ../../../system/assets/ui/storm.js -=require october.controls.js =require october.scrollpad.js =require october.verticalmenu.js =require october.navbar.js diff --git a/modules/backend/assets/less/october.less b/modules/backend/assets/less/october.less index 83150719a..b44c94001 100644 --- a/modules/backend/assets/less/october.less +++ b/modules/backend/assets/less/october.less @@ -12,7 +12,6 @@ // Vendor @import "../vendor/sweet-alert/sweet-alert.less"; -@import "../vendor/select2/select2.css"; @import "../vendor/jcrop/css/jquery.Jcrop.min.css"; // diff --git a/modules/system/assets/ui/docs/checkbox.md b/modules/system/assets/ui/docs/checkbox.md new file mode 100644 index 000000000..badc71085 --- /dev/null +++ b/modules/system/assets/ui/docs/checkbox.md @@ -0,0 +1,44 @@ +# Checkbox + +Allows a user to select from a small set of binary options. + +# Example + +
Checkbox
+
+ + +
+ + + +
+ + + +
Radio
+
+ + +
+
+ + +
+
+ + +
+ + + +
+ + + +
Slider
+ \ No newline at end of file diff --git a/modules/system/assets/ui/docs/select.md b/modules/system/assets/ui/docs/select.md new file mode 100644 index 000000000..6eb21715e --- /dev/null +++ b/modules/system/assets/ui/docs/select.md @@ -0,0 +1,11 @@ +# Select + +Custom select control. + +# Example + + \ No newline at end of file diff --git a/modules/system/assets/ui/js/checkbox.js b/modules/system/assets/ui/js/checkbox.js new file mode 100644 index 000000000..c0047155f --- /dev/null +++ b/modules/system/assets/ui/js/checkbox.js @@ -0,0 +1,27 @@ +/* + * Checkbox control + * + */ + +(function($){ + + $(document).on('keydown', 'div.custom-checkbox', function(e){ + if (e.keyCode == 32) + e.preventDefault() + }) + + $(document).on('keyup', 'div.custom-checkbox', function(e){ + if (e.keyCode == 32) { + var $cb = $('input', this) + + if ($cb.data('oc-space-timestamp') == e.timeStamp) + return + + $cb.get(0).checked = !$cb.get(0).checked + $cb.data('oc-space-timestamp', e.timeStamp) + $cb.trigger('change') + return false + } + }) + +})(jQuery); \ No newline at end of file diff --git a/modules/system/assets/ui/js/form.js b/modules/system/assets/ui/js/form.js new file mode 100644 index 000000000..f68e87689 --- /dev/null +++ b/modules/system/assets/ui/js/form.js @@ -0,0 +1,9 @@ +/* +=require foundation.js +=require checkbox.js +=require select.js +*/ +/* + * Form control + * + */ \ No newline at end of file diff --git a/modules/backend/assets/js/october.controls.js b/modules/system/assets/ui/js/select.js similarity index 66% rename from modules/backend/assets/js/october.controls.js rename to modules/system/assets/ui/js/select.js index 10bc21da9..534ce5161 100644 --- a/modules/backend/assets/js/october.controls.js +++ b/modules/system/assets/ui/js/select.js @@ -1,26 +1,14 @@ /* - * Custom controls that could exist separately of the form widget +=require ../vendor/modernizr/modernizr.js +=require ../vendor/select2/select2.js +*/ + +/* + * Select control + * */ (function($){ - $(document).on('keydown', 'div.custom-checkbox', function(e){ - if (e.keyCode == 32) - e.preventDefault() - }) - - $(document).on('keyup', 'div.custom-checkbox', function(e){ - if (e.keyCode == 32) { - var $cb = $('input', this) - - if ($cb.data('oc-space-timestamp') == e.timeStamp) - return - - $cb.get(0).checked = !$cb.get(0).checked - $cb.data('oc-space-timestamp', e.timeStamp) - $cb.trigger('change') - return false - } - }) /* * Custom drop downs (Desktop only) @@ -48,10 +36,11 @@ $('select.custom-select:not([data-no-auto-update-on-render=true])').select2({ // The data-no-auto-update-on-render attribute allows to disable the - // selec2 automatic initialization for edge cases. + // select2 automatic initialization for edge cases. formatResult: formatSelectOption, formatSelection: formatSelectOption, + // minimumResultsForSearch: Infinity, escapeMarkup: function(m) { return m; } }) }) diff --git a/modules/system/assets/ui/less/checkbox.less b/modules/system/assets/ui/less/checkbox.less new file mode 100644 index 000000000..12c01001a --- /dev/null +++ b/modules/system/assets/ui/less/checkbox.less @@ -0,0 +1,218 @@ +// +// Dependencies +// -------------------------------------------------- + +@import "global.less"; +@import "icon.less"; + +// +// Checkbox +// -------------------------------------------------- + +@color-checkbox-icon: #666666; +@color-checkbox-border: #999999; + +@color-checkbox-switch-bg: #f6f6f6; +@color-checkbox-switch-on: #8da85e; +@color-checkbox-switch-off: #cc3300; + + +// +// Checkbox +// -------------------------------------------------- + +.custom-checkbox.nolabel label, +.custom-radio.nolabel label { + .text-hide(); +} + +// +// Nice Checkboxes & Radios +// + +.custom-checkbox, +.custom-radio { + padding-left: 23px; + margin-top: 0; + + input[type=radio], + input[type=checkbox] { + display: none; + } + + label { + display: inline-block; + cursor: pointer; + position: relative; + padding-left: 20px; + margin-right: 15px; + margin-left: -20px; + + font-size: 12px; + &:before { + content: ""; + display: inline-block; + text-align: center; + + width: 16px; + height: 16px; + + margin-right: 10px; + position: absolute; + left: -3px; + bottom: 1px; + background-color: #FFFFFF; + border: 1px solid @color-checkbox-border; + color: @color-checkbox-icon; + + } + &:hover:before { + border-color: darken(@color-checkbox-border, 10%); + color: darken(@color-checkbox-icon, 10%); + } + &:active:before { + border-color: darken(@color-checkbox-border, 20%); + color: darken(@color-checkbox-icon, 20%); + } + } + + input[type=radio]:checked + label:before { + .icon(@circle); + font-size: 9px; + line-height: 12px; + border-width: 2px; + } + + input[type=checkbox]:checked + label:before { + .icon(@check); + font-size: 10px; + line-height: 12px; + border-width: 2px; + } + + &:focus { + outline: none; + label:before { + border-color: @color-focus; + } + } + + p.help-block { + margin-top: 0; + } +} + +.custom-radio label:before { + border-radius: 8px; +} + +.custom-checkbox label:before { + border-radius: @border-radius-base; +} + +// +// ON / OFF Switcher +// + +.switch-field { + .field-switch { + padding-left: 75px; + float: left; + } +} + +.custom-switch { + display: block; + width: 58px; + height: 26px; + position: relative; + text-transform: uppercase; + border: none; + cursor: pointer; + .border-radius(3px); + + * { .box-sizing(border-box); } + &.disabled { .opacity(.5); } + .slide-button { + z-index: 4; + display: block; + position: absolute; + right: 34px; + top: 2px; + width: 22px; + height: 22px; + background-color: @color-checkbox-switch-bg; + .border-radius(20px); + .transition(all 0.1s); + } + + label, + > span { + line-height: 23px; + vertical-align: middle; + } + + label { + z-index: 3; + width: 100%; + display: block; + position: relative; + } + + input { + z-index: 5; + position: absolute; + left: 0; + top: 0; + .opacity(0); + &:checked { + ~ .slide-button { + right: 2px; + } + ~ span { background-color: @color-checkbox-switch-on; } + ~ span span { + &:first-of-type { + color: #FFFFFF; + display: block; + } + &:last-of-type { + color: #666666; + display: none; + } + } + } + } + + > span { + display: block; + height: 100%; + position: absolute; + left: 0; + width: 100%; + background-color: @color-checkbox-switch-off; + font-size: 11px; + .user-select(none); + .border-radius(20px); + + span { + z-index: 5; + display: block; + width: 50%; + position: absolute; + top: 1px; + left: 0; + .box-sizing(border-box); + &:last-child { + left: 50%; + color: #FFFFFF; + display: block; + } + &:first-of-type { + padding-left: 9px; + display: none; + color: #666666; + } + } + } +} + diff --git a/modules/system/assets/ui/less/form.less b/modules/system/assets/ui/less/form.less index bd52f7d1c..81c546507 100644 --- a/modules/system/assets/ui/less/form.less +++ b/modules/system/assets/ui/less/form.less @@ -7,6 +7,7 @@ @import "site.variables.less"; @import "site.mixins.less"; + // // Forms // -------------------------------------------------- @@ -16,6 +17,10 @@ @import "form.base.less"; @import "form.groups.less"; +// Load order +@import "select.less"; +@import "checkbox.less"; + // // Resets to bootstrap // @@ -70,11 +75,6 @@ label { font-size: 12px; } -.radio.nolabel label, -.checkbox.nolabel label { - .text-hide(); -} - .form-control { border: 1px solid @color-form-field-border; position: relative; @@ -396,415 +396,6 @@ body.slim-container { } } -// -// Nice Checkboxes & Radios -// - -.custom-checkbox, -.custom-radio { - padding-left: 23px; - margin-top: 0; - - input[type=radio], - input[type=checkbox] { - display: none; - } - - label { - display: inline-block; - cursor: pointer; - position: relative; - padding-left: 20px; - margin-right: 15px; - margin-left: -20px; - - font-size: 12px; - &:before { - content: ""; - display: inline-block; - text-align: center; - - width: 16px; - height: 16px; - - margin-right: 10px; - position: absolute; - left: -3px; - bottom: 1px; - background-color: #FFFFFF; - border: 1px solid @color-custom-input-border; - color: @color-custom-input-icon; - - } - &:hover:before { - border-color: darken(@color-custom-input-border, 10%); - color: darken(@color-custom-input-icon, 10%); - } - &:active:before { - border-color: darken(@color-custom-input-border, 20%); - color: darken(@color-custom-input-icon, 20%); - } - } - - input[type=radio]:checked + label:before { - .icon(@circle); - font-size: 9px; - line-height: 12px; - border-width: 2px; - } - - input[type=checkbox]:checked + label:before { - .icon(@check); - font-size: 10px; - line-height: 12px; - border-width: 2px; - } - - &:focus { - outline: none; - label:before { - border-color: @color-focus; - } - } - - p.help-block { - margin-top: 0; - } -} - -.custom-radio label:before { - border-radius: 8px; -} - -.custom-checkbox label:before { - border-radius: @border-radius-base; -} - -// -// ON / OFF Switcher -// - -.switch-field { - .field-switch { - padding-left: 75px; - float: left; - } -} - -.custom-switch { - display: block; - width: 58px; - height: 26px; - position: relative; - text-transform: uppercase; - border: none; - cursor: pointer; - .border-radius(3px); - - * { .box-sizing(border-box); } - &.disabled { .opacity(.5); } - .slide-button { - z-index: 4; - display: block; - position: absolute; - right: 34px; - top: 2px; - width: 22px; - height: 22px; - background-color: @color-switch-input-bg; - .border-radius(20px); - .transition(all 0.1s); - } - - label, - > span { - line-height: 23px; - vertical-align: middle; - } - - label { - z-index: 3; - width: 100%; - display: block; - position: relative; - } - - input { - z-index: 5; - position: absolute; - left: 0; - top: 0; - .opacity(0); - &:checked { - ~ .slide-button { - right: 2px; - } - ~ span { background-color: @color-switch-input-on; } - ~ span span { - &:first-of-type { - color: #FFFFFF; - display: block; - } - &:last-of-type { - color: #666666; - display: none; - } - } - } - } - - > span { - display: block; - height: 100%; - position: absolute; - left: 0; - width: 100%; - background-color: @color-switch-input-off; - font-size: 11px; - .user-select(none); - .border-radius(20px); - - span { - z-index: 5; - display: block; - width: 50%; - position: absolute; - top: 1px; - left: 0; - .box-sizing(border-box); - &:last-child { - left: 50%; - color: #FFFFFF; - display: block; - } - &:first-of-type { - padding-left: 9px; - display: none; - color: #666666; - } - } - } -} - - -// -// Nice Dropdowns -// - -.custom-select { - - // - // Allows Select2 to work with Bootstrap - // - - .select2-choice { - border: 0; - border-radius: @border-radius-base; - .select2-arrow { - border-radius: 0 @border-radius-base @border-radius-base 0; - } - } - - &.select2-container { - padding: 0px; - .select2-choices { - border: 0 !important; - border-radius: @border-radius-base; - } - - .loading-indicator { - background: transparent; - - > span { - background-image:url(../images/loader-transparent.svg); - left: auto; - right: 10px; - top: 19px; - background-size: 17px 17px; - } - } - - &.in-progress { - .select2-choice .select2-arrow { - display: none !important; - } - } - } - - &.select2-container.select2-dropdown-open { - border-color: @color-form-field-border-focus; - &,.select2-choices { - border-radius: @border-radius-base @border-radius-base 0 0; - } - - &.select2-drop-above { - border-radius: 0 0 @border-radius-base @border-radius-base; - } - } - - &.select2-container-active { - border-color: @color-form-field-border-focus; - } - - // - // Restyle Select2 - // - - &.select2-container { - .select2-choice { - height: 36px; - line-height: 36px; - padding: 0 0 0 15px; - border: none; - background: #FFFFFF; - - .select2-arrow { - width: 38px; - background: none; - background: transparent; - border-left: none; - b { - background: none !important; - text-align: center; - color: @color-custom-input-icon; - &:before { .icon(@angle-down); } - } - } - } - - &.select2-container-disabled { - background-color: #f4f4f4; - .select2-choice { - background-color: #f4f4f4; - .select2-arrow b { .opacity(.5); } - } - } - } - - &.select2-container.select2-container-active { - .select2-choice, - .select2-choices { - .box-shadow(none); - } - } - - &.select2-container.select2-dropdown-open, - &.select2-container.select2-dropdown-open.select2-drop-above { - .select2-choice { - background: @color-custom-select-bg; - .select2-arrow { - border-left-color: transparent; - b { - &:before { .icon(@angle-up); } - } - } - } - } -} - -// -// Multi select -// - -.select2-container-multi { - &.form-control { - height: auto; - } - - .select2-choices { - min-height: 28px; - line-height: 28px; - padding-left: 10px; - background: none; - - .select2-search-choice { - background: none; - padding: 8px 15px; - margin: 4px 0 4px 5px; - .box-shadow(none); - .transition(.25s linear); - - &:hover { - padding: 8px 7px 8px 23px; - .select2-search-choice-close { - opacity: 1; - } - } - } - } - - .select2-search-choice-close { - .transition(.25s linear); - opacity: 0; - left: 7px; - } -} - -.select2-drop-multi { - .select2-no-results { - padding: 7px; - } -} - -// -// Outside Select2 container -// - -.select2-drop { - .box-shadow(none); - border: 1px solid @color-custom-select-border; - border-top: none; - - &.select2-drop-above { - .box-shadow(none); - border: 1px solid @color-custom-select-border; - border-bottom: none; - } - - &.select2-drop-active { - .border-bottom-radius(@border-radius-base); - } - - &.select2-drop-above.select2-drop-active { - border-top: 1px solid @color-custom-select-border; - .border-bottom-radius(0); - } - - .select2-search { - padding: 0; - min-height: 36px; - input { - min-height: 36px; - border: none; - border-bottom: 1px solid @color-custom-select-border; - background: transparent url('../images/bitmap-icons.png') no-repeat 100% -84px !important; - } - } - - .select2-results { - padding: 0; - margin: 0; - font-size: 13px; - .select2-no-results, - .select2-searching, - .select2-selection-limit { - background: #FFFFFF; - } - - .select2-no-results { - padding: 7px!important; - } - - .select2-highlighted { - background: @color-custom-select-bg-hover; - } - - > li > div { - padding: 5px 7px 5px; - } - } -} - // // Controls inside toolbar // diff --git a/modules/system/assets/ui/less/form.variables.less b/modules/system/assets/ui/less/form.variables.less index e19cfe8ef..b96de3717 100644 --- a/modules/system/assets/ui/less/form.variables.less +++ b/modules/system/assets/ui/less/form.variables.less @@ -39,17 +39,4 @@ @color-form-field-recordfinder-btn: #333333; -@color-custom-input-icon: #666666; -@color-custom-input-border: #999999; - @color-form-checkboxlist-border: #e2e2e2; - -// Switch is control? -@color-switch-input-bg: #f6f6f6; -@color-switch-input-on: #8da85e; -@color-switch-input-off: #cc3300; - -// Ditto -@color-custom-select-border: #b2b9be; -@color-custom-select-bg: #f6f6f6; -@color-custom-select-bg-hover: #4da7e8; diff --git a/modules/system/assets/ui/less/select.less b/modules/system/assets/ui/less/select.less new file mode 100644 index 000000000..28c5d93fc --- /dev/null +++ b/modules/system/assets/ui/less/select.less @@ -0,0 +1,242 @@ +// +// Dependencies +// -------------------------------------------------- + +@import "global.less"; +@import "icon.less"; +@import "loader.less"; + +@import "../vendor/select2/select2.less"; + +// +// Select +// -------------------------------------------------- + +@color-select-icon: #666666; +@color-select-border: #b2b9be; +@color-select-border-focus: #808c8d; +@color-select-bg: #f6f6f6; +@color-select-bg-hover: #4da7e8; + + +// +// Select +// -------------------------------------------------- + +// +// Nice Dropdowns +// + +.custom-select { + + // + // Allows Select2 to work with Bootstrap + // + + .select2-choice { + border: 0; + border-radius: @border-radius-base; + .select2-arrow { + border-radius: 0 @border-radius-base @border-radius-base 0; + } + } + + &.select2-container { + padding: 0px; + .select2-choices { + border: 0 !important; + border-radius: @border-radius-base; + } + + .loading-indicator { + background: transparent; + + > span { + background-image: url('@{loader-image-path}/loader-transparent.svg'); + left: auto; + right: 10px; + top: 19px; + background-size: 17px 17px; + } + } + + &.in-progress { + .select2-choice .select2-arrow { + display: none !important; + } + } + } + + &.select2-container.select2-dropdown-open { + border-color: @color-select-border-focus; + &,.select2-choices { + border-radius: @border-radius-base @border-radius-base 0 0; + } + + &.select2-drop-above { + border-radius: 0 0 @border-radius-base @border-radius-base; + } + } + + &.select2-container-active { + border-color: @color-select-border-focus; + } + + // + // Restyle Select2 + // + + &.select2-container { + .select2-choice { + height: 36px; + line-height: 36px; + padding: 0 0 0 15px; + border: none; + background: #FFFFFF; + + .select2-arrow { + width: 38px; + background: none; + background: transparent; + border-left: none; + b { + background: none !important; + text-align: center; + color: @color-select-icon; + &:before { .icon(@angle-down); } + } + } + } + + &.select2-container-disabled { + background-color: #f4f4f4; + .select2-choice { + background-color: #f4f4f4; + .select2-arrow b { .opacity(.5); } + } + } + } + + &.select2-container.select2-container-active { + .select2-choice, + .select2-choices { + .box-shadow(none); + } + } + + &.select2-container.select2-dropdown-open, + &.select2-container.select2-dropdown-open.select2-drop-above { + .select2-choice { + background: @color-select-bg; + .select2-arrow { + border-left-color: transparent; + b { + &:before { .icon(@angle-up); } + } + } + } + } +} + +// +// Multi select +// + +.select2-container-multi { + &.form-control { + height: auto; + } + + .select2-choices { + min-height: 28px; + line-height: 28px; + padding-left: 10px; + background: none; + + .select2-search-choice { + background: none; + padding: 8px 15px; + margin: 4px 0 4px 5px; + .box-shadow(none); + .transition(.25s linear); + + &:hover { + padding: 8px 7px 8px 23px; + .select2-search-choice-close { + opacity: 1; + } + } + } + } + + .select2-search-choice-close { + .transition(.25s linear); + opacity: 0; + left: 7px; + } +} + +.select2-drop-multi { + .select2-no-results { + padding: 7px; + } +} + +// +// Outside Select2 container +// + +.select2-drop { + .box-shadow(none); + border: 1px solid @color-select-border; + border-top: none; + + &.select2-drop-above { + .box-shadow(none); + border: 1px solid @color-select-border; + border-bottom: none; + } + + &.select2-drop-active { + .border-bottom-radius(@border-radius-base); + } + + &.select2-drop-above.select2-drop-active { + border-top: 1px solid @color-select-border; + .border-bottom-radius(0); + } + + .select2-search { + padding: 0; + min-height: 36px; + input { + min-height: 36px; + border: none; + border-bottom: 1px solid @color-select-border; + background: transparent url('../images/bitmap-icons.png') no-repeat 100% -84px !important; + } + } + + .select2-results { + padding: 0; + margin: 0; + font-size: 13px; + .select2-no-results, + .select2-searching, + .select2-selection-limit { + background: #FFFFFF; + } + + .select2-no-results { + padding: 7px!important; + } + + .select2-highlighted { + background: @color-select-bg-hover; + } + + > li > div { + padding: 5px 7px 5px; + } + } +} \ No newline at end of file diff --git a/modules/system/assets/ui/storm.js b/modules/system/assets/ui/storm.js index daa2b367d..04eb02578 100644 --- a/modules/system/assets/ui/storm.js +++ b/modules/system/assets/ui/storm.js @@ -7,11 +7,13 @@ =require js/foundation.js =require js/flashmessage.js =require js/inspector.js +=require js/checkbox.js =require js/dropdown.js =require js/callout.js =require js/tooltip.js =require js/toolbar.js =require js/filter.js +=require js/select.js =require js/loader.js =require js/popover.js =require js/popup.js diff --git a/modules/system/assets/ui/storm.less b/modules/system/assets/ui/storm.less index 8b31b56f9..83bd93829 100644 --- a/modules/system/assets/ui/storm.less +++ b/modules/system/assets/ui/storm.less @@ -26,4 +26,6 @@ @import "less/loader.less"; @import "less/popover.less"; @import "less/popup.less"; -@import "less/tab.less"; \ No newline at end of file +@import "less/tab.less"; +@import "less/checkbox.less"; +@import "less/select.less"; diff --git a/modules/backend/assets/vendor/select2/LICENSE b/modules/system/assets/ui/vendor/select2/LICENSE similarity index 100% rename from modules/backend/assets/vendor/select2/LICENSE rename to modules/system/assets/ui/vendor/select2/LICENSE diff --git a/modules/backend/assets/vendor/select2/OCTOBER-README.md b/modules/system/assets/ui/vendor/select2/OCTOBER-README.md similarity index 100% rename from modules/backend/assets/vendor/select2/OCTOBER-README.md rename to modules/system/assets/ui/vendor/select2/OCTOBER-README.md diff --git a/modules/backend/assets/vendor/select2/README.md b/modules/system/assets/ui/vendor/select2/README.md similarity index 100% rename from modules/backend/assets/vendor/select2/README.md rename to modules/system/assets/ui/vendor/select2/README.md diff --git a/modules/backend/assets/vendor/select2/bower.json b/modules/system/assets/ui/vendor/select2/bower.json similarity index 100% rename from modules/backend/assets/vendor/select2/bower.json rename to modules/system/assets/ui/vendor/select2/bower.json diff --git a/modules/backend/assets/vendor/select2/select2-bootstrap.css b/modules/system/assets/ui/vendor/select2/select2-bootstrap.css similarity index 100% rename from modules/backend/assets/vendor/select2/select2-bootstrap.css rename to modules/system/assets/ui/vendor/select2/select2-bootstrap.css diff --git a/modules/backend/assets/vendor/select2/select2-spinner.gif b/modules/system/assets/ui/vendor/select2/select2-spinner.gif similarity index 100% rename from modules/backend/assets/vendor/select2/select2-spinner.gif rename to modules/system/assets/ui/vendor/select2/select2-spinner.gif diff --git a/modules/backend/assets/vendor/select2/select2.jquery.json b/modules/system/assets/ui/vendor/select2/select2.jquery.json similarity index 100% rename from modules/backend/assets/vendor/select2/select2.jquery.json rename to modules/system/assets/ui/vendor/select2/select2.jquery.json diff --git a/modules/backend/assets/vendor/select2/select2.js b/modules/system/assets/ui/vendor/select2/select2.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2.js rename to modules/system/assets/ui/vendor/select2/select2.js diff --git a/modules/backend/assets/vendor/select2/select2.css b/modules/system/assets/ui/vendor/select2/select2.less similarity index 100% rename from modules/backend/assets/vendor/select2/select2.css rename to modules/system/assets/ui/vendor/select2/select2.less diff --git a/modules/backend/assets/vendor/select2/select2.min.js b/modules/system/assets/ui/vendor/select2/select2.min.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2.min.js rename to modules/system/assets/ui/vendor/select2/select2.min.js diff --git a/modules/backend/assets/vendor/select2/select2.png b/modules/system/assets/ui/vendor/select2/select2.png similarity index 100% rename from modules/backend/assets/vendor/select2/select2.png rename to modules/system/assets/ui/vendor/select2/select2.png diff --git a/modules/backend/assets/vendor/select2/select2_locale_ar.js b/modules/system/assets/ui/vendor/select2/select2_locale_ar.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_ar.js rename to modules/system/assets/ui/vendor/select2/select2_locale_ar.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_az.js b/modules/system/assets/ui/vendor/select2/select2_locale_az.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_az.js rename to modules/system/assets/ui/vendor/select2/select2_locale_az.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_bg.js b/modules/system/assets/ui/vendor/select2/select2_locale_bg.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_bg.js rename to modules/system/assets/ui/vendor/select2/select2_locale_bg.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_ca.js b/modules/system/assets/ui/vendor/select2/select2_locale_ca.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_ca.js rename to modules/system/assets/ui/vendor/select2/select2_locale_ca.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_cs.js b/modules/system/assets/ui/vendor/select2/select2_locale_cs.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_cs.js rename to modules/system/assets/ui/vendor/select2/select2_locale_cs.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_da.js b/modules/system/assets/ui/vendor/select2/select2_locale_da.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_da.js rename to modules/system/assets/ui/vendor/select2/select2_locale_da.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_de.js b/modules/system/assets/ui/vendor/select2/select2_locale_de.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_de.js rename to modules/system/assets/ui/vendor/select2/select2_locale_de.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_el.js b/modules/system/assets/ui/vendor/select2/select2_locale_el.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_el.js rename to modules/system/assets/ui/vendor/select2/select2_locale_el.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_en.js.template b/modules/system/assets/ui/vendor/select2/select2_locale_en.js.template similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_en.js.template rename to modules/system/assets/ui/vendor/select2/select2_locale_en.js.template diff --git a/modules/backend/assets/vendor/select2/select2_locale_es.js b/modules/system/assets/ui/vendor/select2/select2_locale_es.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_es.js rename to modules/system/assets/ui/vendor/select2/select2_locale_es.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_et.js b/modules/system/assets/ui/vendor/select2/select2_locale_et.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_et.js rename to modules/system/assets/ui/vendor/select2/select2_locale_et.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_eu.js b/modules/system/assets/ui/vendor/select2/select2_locale_eu.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_eu.js rename to modules/system/assets/ui/vendor/select2/select2_locale_eu.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_fa.js b/modules/system/assets/ui/vendor/select2/select2_locale_fa.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_fa.js rename to modules/system/assets/ui/vendor/select2/select2_locale_fa.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_fi.js b/modules/system/assets/ui/vendor/select2/select2_locale_fi.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_fi.js rename to modules/system/assets/ui/vendor/select2/select2_locale_fi.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_fr.js b/modules/system/assets/ui/vendor/select2/select2_locale_fr.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_fr.js rename to modules/system/assets/ui/vendor/select2/select2_locale_fr.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_gl.js b/modules/system/assets/ui/vendor/select2/select2_locale_gl.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_gl.js rename to modules/system/assets/ui/vendor/select2/select2_locale_gl.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_he.js b/modules/system/assets/ui/vendor/select2/select2_locale_he.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_he.js rename to modules/system/assets/ui/vendor/select2/select2_locale_he.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_hr.js b/modules/system/assets/ui/vendor/select2/select2_locale_hr.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_hr.js rename to modules/system/assets/ui/vendor/select2/select2_locale_hr.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_hu.js b/modules/system/assets/ui/vendor/select2/select2_locale_hu.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_hu.js rename to modules/system/assets/ui/vendor/select2/select2_locale_hu.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_id.js b/modules/system/assets/ui/vendor/select2/select2_locale_id.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_id.js rename to modules/system/assets/ui/vendor/select2/select2_locale_id.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_is.js b/modules/system/assets/ui/vendor/select2/select2_locale_is.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_is.js rename to modules/system/assets/ui/vendor/select2/select2_locale_is.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_it.js b/modules/system/assets/ui/vendor/select2/select2_locale_it.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_it.js rename to modules/system/assets/ui/vendor/select2/select2_locale_it.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_ja.js b/modules/system/assets/ui/vendor/select2/select2_locale_ja.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_ja.js rename to modules/system/assets/ui/vendor/select2/select2_locale_ja.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_ka.js b/modules/system/assets/ui/vendor/select2/select2_locale_ka.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_ka.js rename to modules/system/assets/ui/vendor/select2/select2_locale_ka.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_ko.js b/modules/system/assets/ui/vendor/select2/select2_locale_ko.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_ko.js rename to modules/system/assets/ui/vendor/select2/select2_locale_ko.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_lt.js b/modules/system/assets/ui/vendor/select2/select2_locale_lt.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_lt.js rename to modules/system/assets/ui/vendor/select2/select2_locale_lt.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_lv.js b/modules/system/assets/ui/vendor/select2/select2_locale_lv.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_lv.js rename to modules/system/assets/ui/vendor/select2/select2_locale_lv.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_mk.js b/modules/system/assets/ui/vendor/select2/select2_locale_mk.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_mk.js rename to modules/system/assets/ui/vendor/select2/select2_locale_mk.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_ms.js b/modules/system/assets/ui/vendor/select2/select2_locale_ms.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_ms.js rename to modules/system/assets/ui/vendor/select2/select2_locale_ms.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_nl.js b/modules/system/assets/ui/vendor/select2/select2_locale_nl.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_nl.js rename to modules/system/assets/ui/vendor/select2/select2_locale_nl.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_no.js b/modules/system/assets/ui/vendor/select2/select2_locale_no.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_no.js rename to modules/system/assets/ui/vendor/select2/select2_locale_no.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_pl.js b/modules/system/assets/ui/vendor/select2/select2_locale_pl.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_pl.js rename to modules/system/assets/ui/vendor/select2/select2_locale_pl.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_pt-BR.js b/modules/system/assets/ui/vendor/select2/select2_locale_pt-BR.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_pt-BR.js rename to modules/system/assets/ui/vendor/select2/select2_locale_pt-BR.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_pt-PT.js b/modules/system/assets/ui/vendor/select2/select2_locale_pt-PT.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_pt-PT.js rename to modules/system/assets/ui/vendor/select2/select2_locale_pt-PT.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_ro.js b/modules/system/assets/ui/vendor/select2/select2_locale_ro.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_ro.js rename to modules/system/assets/ui/vendor/select2/select2_locale_ro.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_rs.js b/modules/system/assets/ui/vendor/select2/select2_locale_rs.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_rs.js rename to modules/system/assets/ui/vendor/select2/select2_locale_rs.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_ru.js b/modules/system/assets/ui/vendor/select2/select2_locale_ru.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_ru.js rename to modules/system/assets/ui/vendor/select2/select2_locale_ru.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_sk.js b/modules/system/assets/ui/vendor/select2/select2_locale_sk.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_sk.js rename to modules/system/assets/ui/vendor/select2/select2_locale_sk.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_sv.js b/modules/system/assets/ui/vendor/select2/select2_locale_sv.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_sv.js rename to modules/system/assets/ui/vendor/select2/select2_locale_sv.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_th.js b/modules/system/assets/ui/vendor/select2/select2_locale_th.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_th.js rename to modules/system/assets/ui/vendor/select2/select2_locale_th.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_tr.js b/modules/system/assets/ui/vendor/select2/select2_locale_tr.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_tr.js rename to modules/system/assets/ui/vendor/select2/select2_locale_tr.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_ua.js b/modules/system/assets/ui/vendor/select2/select2_locale_ua.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_ua.js rename to modules/system/assets/ui/vendor/select2/select2_locale_ua.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_ug-CN.js b/modules/system/assets/ui/vendor/select2/select2_locale_ug-CN.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_ug-CN.js rename to modules/system/assets/ui/vendor/select2/select2_locale_ug-CN.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_uk.js b/modules/system/assets/ui/vendor/select2/select2_locale_uk.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_uk.js rename to modules/system/assets/ui/vendor/select2/select2_locale_uk.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_vi.js b/modules/system/assets/ui/vendor/select2/select2_locale_vi.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_vi.js rename to modules/system/assets/ui/vendor/select2/select2_locale_vi.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_zh-CN.js b/modules/system/assets/ui/vendor/select2/select2_locale_zh-CN.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_zh-CN.js rename to modules/system/assets/ui/vendor/select2/select2_locale_zh-CN.js diff --git a/modules/backend/assets/vendor/select2/select2_locale_zh-TW.js b/modules/system/assets/ui/vendor/select2/select2_locale_zh-TW.js similarity index 100% rename from modules/backend/assets/vendor/select2/select2_locale_zh-TW.js rename to modules/system/assets/ui/vendor/select2/select2_locale_zh-TW.js diff --git a/modules/backend/assets/vendor/select2/select2x2.png b/modules/system/assets/ui/vendor/select2/select2x2.png similarity index 100% rename from modules/backend/assets/vendor/select2/select2x2.png rename to modules/system/assets/ui/vendor/select2/select2x2.png