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