diff --git a/Bootstrap.Admin/Bootstrap.Admin.csproj b/Bootstrap.Admin/Bootstrap.Admin.csproj
index 0ff3a929..64dae381 100644
--- a/Bootstrap.Admin/Bootstrap.Admin.csproj
+++ b/Bootstrap.Admin/Bootstrap.Admin.csproj
@@ -108,8 +108,6 @@
-
-
@@ -144,12 +142,8 @@
-
-
-
-
@@ -225,8 +219,6 @@
-
-
diff --git a/Bootstrap.Admin/Content/css/admin.css b/Bootstrap.Admin/Content/css/admin.css
index 7216d890..e19c5f98 100644
--- a/Bootstrap.Admin/Content/css/admin.css
+++ b/Bootstrap.Admin/Content/css/admin.css
@@ -492,3 +492,18 @@ input[type="datetime"] {
.mail-box .lg-side .table-inbox tr td:hover {
cursor: pointer;
}
+
+.btn-select {
+}
+
+ .btn-select .dropdown-menu {
+ padding: 0;
+ }
+
+ .btn-select .dropdown-menu li a {
+ padding: 6px 20px;
+ }
+
+ .btn-select .dropdown-menu .divider {
+ margin: 0;
+ }
diff --git a/Bootstrap.Admin/Content/css/bootstrap-select.css b/Bootstrap.Admin/Content/css/bootstrap-select.css
deleted file mode 100644
index 2190f3b6..00000000
--- a/Bootstrap.Admin/Content/css/bootstrap-select.css
+++ /dev/null
@@ -1,293 +0,0 @@
-/*!
- * Bootstrap-select v1.11.2 (http://silviomoreto.github.io/bootstrap-select)
- *
- * Copyright 2013-2016 bootstrap-select
- * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
- */
-
-select.bs-select-hidden,
-select.selectpicker {
- display: none !important;
-}
-.bootstrap-select {
- width: 220px \0;
- /*IE9 and below*/
-}
-.bootstrap-select > .dropdown-toggle {
- width: 100%;
- padding-right: 25px;
- z-index: 1;
-}
-.bootstrap-select > .dropdown-toggle.bs-placeholder,
-.bootstrap-select > .dropdown-toggle.bs-placeholder:hover,
-.bootstrap-select > .dropdown-toggle.bs-placeholder:focus,
-.bootstrap-select > .dropdown-toggle.bs-placeholder:active {
- color: #999;
-}
-.bootstrap-select > select {
- position: absolute !important;
- bottom: 0;
- left: 50%;
- display: block !important;
- width: 0.5px !important;
- height: 100% !important;
- padding: 0 !important;
- opacity: 0 !important;
- border: none;
-}
-.bootstrap-select > select.mobile-device {
- top: 0;
- left: 0;
- display: block !important;
- width: 100% !important;
- z-index: 2;
-}
-.has-error .bootstrap-select .dropdown-toggle,
-.error .bootstrap-select .dropdown-toggle {
- border-color: #b94a48;
-}
-.bootstrap-select.fit-width {
- width: auto !important;
-}
-.bootstrap-select:not([class*="col-"]):not([class*="form-control"]):not(.input-group-btn) {
- width: 220px;
-}
-.bootstrap-select .dropdown-toggle:focus {
- outline: thin dotted #333333 !important;
- outline: 5px auto -webkit-focus-ring-color !important;
- outline-offset: -2px;
-}
-.bootstrap-select.form-control {
- margin-bottom: 0;
- padding: 0;
- border: none;
-}
-.bootstrap-select.form-control:not([class*="col-"]) {
- width: 100%;
-}
-.bootstrap-select.form-control.input-group-btn {
- z-index: auto;
-}
-.bootstrap-select.form-control.input-group-btn:not(:first-child):not(:last-child) > .btn {
- border-radius: 0;
-}
-.bootstrap-select.btn-group:not(.input-group-btn),
-.bootstrap-select.btn-group[class*="col-"] {
- float: none;
- display: inline-block;
- margin-left: 0;
-}
-.bootstrap-select.btn-group.dropdown-menu-right,
-.bootstrap-select.btn-group[class*="col-"].dropdown-menu-right,
-.row .bootstrap-select.btn-group[class*="col-"].dropdown-menu-right {
- float: right;
-}
-.form-inline .bootstrap-select.btn-group,
-.form-horizontal .bootstrap-select.btn-group,
-.form-group .bootstrap-select.btn-group {
- margin-bottom: 0;
-}
-.form-group-lg .bootstrap-select.btn-group.form-control,
-.form-group-sm .bootstrap-select.btn-group.form-control {
- padding: 0;
-}
-.form-inline .bootstrap-select.btn-group .form-control {
- width: 100%;
-}
-.bootstrap-select.btn-group.disabled,
-.bootstrap-select.btn-group > .disabled {
- cursor: not-allowed;
-}
-.bootstrap-select.btn-group.disabled:focus,
-.bootstrap-select.btn-group > .disabled:focus {
- outline: none !important;
-}
-.bootstrap-select.btn-group.bs-container {
- position: absolute;
- height: 0 !important;
- padding: 0 !important;
-}
-.bootstrap-select.btn-group.bs-container .dropdown-menu {
- z-index: 1060;
-}
-.bootstrap-select.btn-group .dropdown-toggle .filter-option {
- display: inline-block;
- overflow: hidden;
- width: 100%;
- text-align: left;
-}
-.bootstrap-select.btn-group .dropdown-toggle .caret {
- position: absolute;
- top: 50%;
- right: 12px;
- margin-top: -2px;
- vertical-align: middle;
-}
-.bootstrap-select.btn-group[class*="col-"] .dropdown-toggle {
- width: 100%;
-}
-.bootstrap-select.btn-group .dropdown-menu {
- min-width: 100%;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
-}
-.bootstrap-select.btn-group .dropdown-menu.inner {
- position: static;
- float: none;
- border: 0;
- padding: 0;
- margin: 0;
- border-radius: 0;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.bootstrap-select.btn-group .dropdown-menu li {
- position: relative;
-}
-.bootstrap-select.btn-group .dropdown-menu li.active small {
- color: #fff;
-}
-.bootstrap-select.btn-group .dropdown-menu li.disabled a {
- cursor: not-allowed;
-}
-.bootstrap-select.btn-group .dropdown-menu li a {
- cursor: pointer;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-.bootstrap-select.btn-group .dropdown-menu li a.opt {
- position: relative;
- padding-left: 2.25em;
-}
-.bootstrap-select.btn-group .dropdown-menu li a span.check-mark {
- display: none;
-}
-.bootstrap-select.btn-group .dropdown-menu li a span.text {
- display: inline-block;
-}
-.bootstrap-select.btn-group .dropdown-menu li small {
- padding-left: 0.5em;
-}
-.bootstrap-select.btn-group .dropdown-menu .notify {
- position: absolute;
- bottom: 5px;
- width: 96%;
- margin: 0 2%;
- min-height: 26px;
- padding: 3px 5px;
- background: #f5f5f5;
- border: 1px solid #e3e3e3;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
- pointer-events: none;
- opacity: 0.9;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
-}
-.bootstrap-select.btn-group .no-results {
- padding: 3px;
- background: #f5f5f5;
- margin: 0 5px;
- white-space: nowrap;
-}
-.bootstrap-select.btn-group.fit-width .dropdown-toggle .filter-option {
- position: static;
-}
-.bootstrap-select.btn-group.fit-width .dropdown-toggle .caret {
- position: static;
- top: auto;
- margin-top: -1px;
-}
-.bootstrap-select.btn-group.show-tick .dropdown-menu li.selected a span.check-mark {
- position: absolute;
- display: inline-block;
- right: 15px;
- margin-top: 5px;
-}
-.bootstrap-select.btn-group.show-tick .dropdown-menu li a span.text {
- margin-right: 34px;
-}
-.bootstrap-select.show-menu-arrow.open > .dropdown-toggle {
- z-index: 1061;
-}
-.bootstrap-select.show-menu-arrow .dropdown-toggle:before {
- content: '';
- border-left: 7px solid transparent;
- border-right: 7px solid transparent;
- border-bottom: 7px solid rgba(204, 204, 204, 0.2);
- position: absolute;
- bottom: -4px;
- left: 9px;
- display: none;
-}
-.bootstrap-select.show-menu-arrow .dropdown-toggle:after {
- content: '';
- border-left: 6px solid transparent;
- border-right: 6px solid transparent;
- border-bottom: 6px solid white;
- position: absolute;
- bottom: -4px;
- left: 10px;
- display: none;
-}
-.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:before {
- bottom: auto;
- top: -3px;
- border-top: 7px solid rgba(204, 204, 204, 0.2);
- border-bottom: 0;
-}
-.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:after {
- bottom: auto;
- top: -3px;
- border-top: 6px solid white;
- border-bottom: 0;
-}
-.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:before {
- right: 12px;
- left: auto;
-}
-.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:after {
- right: 13px;
- left: auto;
-}
-.bootstrap-select.show-menu-arrow.open > .dropdown-toggle:before,
-.bootstrap-select.show-menu-arrow.open > .dropdown-toggle:after {
- display: block;
-}
-.bs-searchbox,
-.bs-actionsbox,
-.bs-donebutton {
- padding: 4px 8px;
-}
-.bs-actionsbox {
- width: 100%;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
-}
-.bs-actionsbox .btn-group button {
- width: 50%;
-}
-.bs-donebutton {
- float: left;
- width: 100%;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
-}
-.bs-donebutton .btn-group button {
- width: 100%;
-}
-.bs-searchbox + .bs-actionsbox {
- padding: 0 8px 4px;
-}
-.bs-searchbox .form-control {
- margin-bottom: 0;
- width: 100%;
- float: none;
-}
-/*# sourceMappingURL=bootstrap-select.css.map */
\ No newline at end of file
diff --git a/Bootstrap.Admin/Content/css/bootstrap-select.css.map b/Bootstrap.Admin/Content/css/bootstrap-select.css.map
deleted file mode 100644
index dcd254d5..00000000
--- a/Bootstrap.Admin/Content/css/bootstrap-select.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["less/bootstrap-select.less","bootstrap-select.css"],"names":[],"mappings":"AAQA;;EAEE,0BAAA;ECPD;ADUD;EACE,iBAAA;ECRA,kBAAiB;EAClB;ADMD;EAKI,aAAA;EACA,qBAAA;EACA,YAAA;ECRH;ADUG;;;;EAG0B,aAAA;ECP7B;ADLD;EAgBI,+BAAA;EACA,WAAA;EACA,WAAA;EACA,2BAAA;EACA,yBAAA;EACA,yBAAA;EACA,uBAAA;EACA,uBAAA;EACA,cAAA;ECRH;ADUG;EACE,QAAA;EACA,SAAA;EACA,2BAAA;EACA,wBAAA;EACA,YAAA;ECRL;ADaC;;EAEE,uBAAA;ECXH;ADcC;EACE,wBAAA;ECZH;ADeC;EACE,cAAA;ECbH;ADjCD;EAkDI,yCAAA;EACA,uDAAA;EACA,sBAAA;ECdH;ADkBD;EACE,kBAAA;EACA,YAAA;EACA,cAAA;EChBD;ADkBC;EACE,aAAA;EChBH;ADmBC;EACE,eAAA;ECjBH;ADmBG;EAEI,kBAAA;EClBP;AD0BC;;EAEE,aAAA;EACA,uBAAA;EACA,gBAAA;ECxBH;AD+BG;;;EACE,cAAA;EC3BL;AD+BC;;;EAGE,kBAAA;EC7BH;ADgCC;;EAEE,YAAA;EC9BH;ADmCC;EACE,aAAA;ECjCH;ADoCC;;EAxHA,qBAAA;ECwFD;ADoCG;;EACE,0BAAA;ECjCL;ADqCC;EACE,oBAAA;EACA,sBAAA;EACA,uBAAA;ECnCH;ADgCC;EAMI,eAAA;ECnCL;ADdD;EAwDM,uBAAA;EACA,kBAAA;EACA,aAAA;EACA,kBAAA;ECvCL;ADpBD;EA+DM,oBAAA;EACA,UAAA;EACA,aAAA;EACA,kBAAA;EACA,wBAAA;ECxCL;AD4CC;EACE,aAAA;EC1CH;AD9BD;EA6EI,iBAAA;EACA,gCAAA;KAAA,6BAAA;UAAA,wBAAA;EC5CH;AD8CG;EACE,kBAAA;EACA,aAAA;EACA,WAAA;EACA,YAAA;EACA,WAAA;EACA,kBAAA;EACA,0BAAA;UAAA,kBAAA;EC5CL;AD3CD;EA2FM,oBAAA;EC7CL;AD+CK;EACE,aAAA;EC7CP;ADgDK;EAvLJ,qBAAA;EC0ID;ADpDD;EAsGQ,iBAAA;EACA,2BAAA;EACG,wBAAA;EACC,uBAAA;EACI,mBAAA;EC/Cf;ADiDO;EACE,oBAAA;EACA,sBAAA;EC/CT;AD/DD;EAkHU,eAAA;EChDT;ADlED;EAsHU,uBAAA;ECjDT;ADrED;EA2HQ,qBAAA;ECnDP;ADxED;EAgIM,oBAAA;EACA,aAAA;EACA,YAAA;EACA,cAAA;EACA,kBAAA;EACA,kBAAA;EACA,qBAAA;EACA,2BAAA;EACA,yDAAA;UAAA,iDAAA;EACA,sBAAA;EACA,cAAA;EACA,gCAAA;KAAA,6BAAA;UAAA,wBAAA;ECrDL;ADtFD;EAgJI,cAAA;EACA,qBAAA;EACA,eAAA;EACA,qBAAA;ECvDH;AD0DC;EAEI,kBAAA;ECzDL;ADuDC;EAMI,kBAAA;EACA,WAAA;EACA,kBAAA;EC1DL;AD+DG;EACE,oBAAA;EACA,uBAAA;EACA,aAAA;EACA,iBAAA;EC7DL;ADwDC;EASI,oBAAA;EC9DL;ADoEC;EACE,eAAA;EClEH;ADsEG;EACE,aAAA;EACA,oCAAA;EACA,qCAAA;EACA,mDAAA;EACA,oBAAA;EACA,cAAA;EACA,WAAA;EACA,eAAA;ECpEL;ADuEG;EACE,aAAA;EACA,oCAAA;EACA,qCAAA;EACA,gCAAA;EACA,oBAAA;EACA,cAAA;EACA,YAAA;EACA,eAAA;ECrEL;AD0EG;EACE,cAAA;EACA,WAAA;EACA,gDAAA;EACA,kBAAA;ECxEL;AD2EG;EACE,cAAA;EACA,WAAA;EACA,6BAAA;EACA,kBAAA;ECzEL;AD8EG;EACE,aAAA;EACA,YAAA;EC5EL;AD+EG;EACE,aAAA;EACA,YAAA;EC7EL;ADkFG;;EAEE,gBAAA;EChFL;ADqFD;;;EAGE,kBAAA;ECnFD;ADsFD;EACE,aAAA;EACA,gCAAA;KAAA,6BAAA;UAAA,wBAAA;ECpFD;ADsFC;EACE,YAAA;ECpFH;ADwFD;EACE,aAAA;EACA,aAAA;EACA,gCAAA;KAAA,6BAAA;UAAA,wBAAA;ECtFD;ADwFC;EACE,aAAA;ECtFH;AD2FC;EACE,oBAAA;ECzFH;AD4FC;EACE,kBAAA;EACA,aAAA;EACA,aAAA;EC1FH","file":"bootstrap-select.css","sourcesContent":["@import \"variables\";\n\n// Mixins\n.cursor-disabled() {\n cursor: not-allowed;\n}\n\n// Rules\nselect.bs-select-hidden,\nselect.selectpicker {\n display: none !important;\n}\n\n.bootstrap-select {\n width: 220px \\0; /*IE9 and below*/\n\n // The selectpicker button\n > .dropdown-toggle {\n width: 100%;\n padding-right: 25px;\n z-index: 1;\n\n &.bs-placeholder,\n &.bs-placeholder:hover,\n &.bs-placeholder:focus,\n &.bs-placeholder:active { color: @input-color-placeholder; }\n }\n\n > select {\n position: absolute !important;\n bottom: 0;\n left: 50%;\n display: block !important;\n width: 0.5px !important;\n height: 100% !important;\n padding: 0 !important;\n opacity: 0 !important;\n border: none;\n\n &.mobile-device {\n top: 0;\n left: 0;\n display: block !important;\n width: 100% !important;\n z-index: 2;\n }\n }\n\n // Error display\n .has-error & .dropdown-toggle,\n .error & .dropdown-toggle {\n border-color: @color-red-error;\n }\n\n &.fit-width {\n width: auto !important;\n }\n\n &:not([class*=\"col-\"]):not([class*=\"form-control\"]):not(.input-group-btn) {\n width: @width-default;\n }\n\n .dropdown-toggle:focus {\n outline: thin dotted #333333 !important;\n outline: 5px auto -webkit-focus-ring-color !important;\n outline-offset: -2px;\n }\n}\n\n.bootstrap-select.form-control {\n margin-bottom: 0;\n padding: 0;\n border: none;\n\n &:not([class*=\"col-\"]) {\n width: 100%;\n }\n\n &.input-group-btn {\n z-index: auto;\n\n &:not(:first-child):not(:last-child) {\n > .btn {\n border-radius: 0;\n }\n }\n }\n}\n\n// The selectpicker components\n.bootstrap-select.btn-group {\n &:not(.input-group-btn),\n &[class*=\"col-\"] {\n float: none;\n display: inline-block;\n margin-left: 0;\n }\n\n // Forces the pull to the right, if necessary\n &,\n &[class*=\"col-\"],\n .row &[class*=\"col-\"] {\n &.dropdown-menu-right {\n float: right;\n }\n }\n\n .form-inline &,\n .form-horizontal &,\n .form-group & {\n margin-bottom: 0;\n }\n\n .form-group-lg &.form-control,\n .form-group-sm &.form-control {\n padding: 0;\n }\n\n // Set the width of the live search (and any other form control within an inline form)\n // see https://github.com/silviomoreto/bootstrap-select/issues/685\n .form-inline & .form-control {\n width: 100%;\n }\n\n &.disabled,\n > .disabled {\n .cursor-disabled();\n\n &:focus {\n outline: none !important;\n }\n }\n\n &.bs-container {\n position: absolute;\n height: 0 !important;\n padding: 0 !important;\n \n .dropdown-menu {\n z-index: @zindex-select-dropdown;\n }\n }\n\n // The selectpicker button\n .dropdown-toggle {\n .filter-option {\n display: inline-block;\n overflow: hidden;\n width: 100%;\n text-align: left;\n }\n\n .caret {\n position: absolute;\n top: 50%;\n right: 12px;\n margin-top: -2px;\n vertical-align: middle;\n }\n }\n\n &[class*=\"col-\"] .dropdown-toggle {\n width: 100%;\n }\n\n // The selectpicker dropdown\n .dropdown-menu {\n min-width: 100%;\n box-sizing: border-box;\n\n &.inner {\n position: static;\n float: none;\n border: 0;\n padding: 0;\n margin: 0;\n border-radius: 0;\n box-shadow: none;\n }\n\n li {\n position: relative;\n\n &.active small {\n color: #fff;\n }\n\n &.disabled a {\n .cursor-disabled();\n }\n\n a {\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n &.opt {\n position: relative;\n padding-left: 2.25em;\n }\n\n span.check-mark {\n display: none;\n }\n\n span.text {\n display: inline-block;\n }\n }\n\n small {\n padding-left: 0.5em;\n }\n }\n\n .notify {\n position: absolute;\n bottom: 5px;\n width: 96%;\n margin: 0 2%;\n min-height: 26px;\n padding: 3px 5px;\n background: rgb(245, 245, 245);\n border: 1px solid rgb(227, 227, 227);\n box-shadow: inset 0 1px 1px fade(rgb(0, 0, 0), 5%);\n pointer-events: none;\n opacity: 0.9;\n box-sizing: border-box;\n }\n }\n\n .no-results {\n padding: 3px;\n background: #f5f5f5;\n margin: 0 5px;\n white-space: nowrap;\n }\n\n &.fit-width .dropdown-toggle {\n .filter-option {\n position: static;\n }\n\n .caret {\n position: static;\n top: auto;\n margin-top: -1px;\n }\n }\n\n &.show-tick .dropdown-menu li {\n &.selected a span.check-mark {\n position: absolute;\n display: inline-block;\n right: 15px;\n margin-top: 5px;\n }\n\n a span.text {\n margin-right: 34px;\n }\n }\n}\n\n.bootstrap-select.show-menu-arrow {\n &.open > .dropdown-toggle {\n z-index: (@zindex-select-dropdown + 1);\n }\n\n .dropdown-toggle {\n &:before {\n content: '';\n border-left: 7px solid transparent;\n border-right: 7px solid transparent;\n border-bottom: 7px solid @color-grey-arrow;\n position: absolute;\n bottom: -4px;\n left: 9px;\n display: none;\n }\n\n &:after {\n content: '';\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-bottom: 6px solid white;\n position: absolute;\n bottom: -4px;\n left: 10px;\n display: none;\n }\n }\n\n &.dropup .dropdown-toggle {\n &:before {\n bottom: auto;\n top: -3px;\n border-top: 7px solid @color-grey-arrow;\n border-bottom: 0;\n }\n\n &:after {\n bottom: auto;\n top: -3px;\n border-top: 6px solid white;\n border-bottom: 0;\n }\n }\n\n &.pull-right .dropdown-toggle {\n &:before {\n right: 12px;\n left: auto;\n }\n\n &:after {\n right: 13px;\n left: auto;\n }\n }\n\n &.open > .dropdown-toggle {\n &:before,\n &:after {\n display: block;\n }\n }\n}\n\n.bs-searchbox,\n.bs-actionsbox,\n.bs-donebutton {\n padding: 4px 8px;\n}\n\n.bs-actionsbox {\n width: 100%;\n box-sizing: border-box;\n\n & .btn-group button {\n width: 50%;\n }\n}\n\n.bs-donebutton {\n float: left;\n width: 100%;\n box-sizing: border-box;\n\n & .btn-group button {\n width: 100%;\n }\n}\n\n.bs-searchbox {\n & + .bs-actionsbox {\n padding: 0 8px 4px;\n }\n\n & .form-control {\n margin-bottom: 0;\n width: 100%;\n float: none;\n }\n}\n","select.bs-select-hidden,\nselect.selectpicker {\n display: none !important;\n}\n.bootstrap-select {\n width: 220px \\0;\n /*IE9 and below*/\n}\n.bootstrap-select > .dropdown-toggle {\n width: 100%;\n padding-right: 25px;\n z-index: 1;\n}\n.bootstrap-select > .dropdown-toggle.bs-placeholder,\n.bootstrap-select > .dropdown-toggle.bs-placeholder:hover,\n.bootstrap-select > .dropdown-toggle.bs-placeholder:focus,\n.bootstrap-select > .dropdown-toggle.bs-placeholder:active {\n color: #999;\n}\n.bootstrap-select > select {\n position: absolute !important;\n bottom: 0;\n left: 50%;\n display: block !important;\n width: 0.5px !important;\n height: 100% !important;\n padding: 0 !important;\n opacity: 0 !important;\n border: none;\n}\n.bootstrap-select > select.mobile-device {\n top: 0;\n left: 0;\n display: block !important;\n width: 100% !important;\n z-index: 2;\n}\n.has-error .bootstrap-select .dropdown-toggle,\n.error .bootstrap-select .dropdown-toggle {\n border-color: #b94a48;\n}\n.bootstrap-select.fit-width {\n width: auto !important;\n}\n.bootstrap-select:not([class*=\"col-\"]):not([class*=\"form-control\"]):not(.input-group-btn) {\n width: 220px;\n}\n.bootstrap-select .dropdown-toggle:focus {\n outline: thin dotted #333333 !important;\n outline: 5px auto -webkit-focus-ring-color !important;\n outline-offset: -2px;\n}\n.bootstrap-select.form-control {\n margin-bottom: 0;\n padding: 0;\n border: none;\n}\n.bootstrap-select.form-control:not([class*=\"col-\"]) {\n width: 100%;\n}\n.bootstrap-select.form-control.input-group-btn {\n z-index: auto;\n}\n.bootstrap-select.form-control.input-group-btn:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.bootstrap-select.btn-group:not(.input-group-btn),\n.bootstrap-select.btn-group[class*=\"col-\"] {\n float: none;\n display: inline-block;\n margin-left: 0;\n}\n.bootstrap-select.btn-group.dropdown-menu-right,\n.bootstrap-select.btn-group[class*=\"col-\"].dropdown-menu-right,\n.row .bootstrap-select.btn-group[class*=\"col-\"].dropdown-menu-right {\n float: right;\n}\n.form-inline .bootstrap-select.btn-group,\n.form-horizontal .bootstrap-select.btn-group,\n.form-group .bootstrap-select.btn-group {\n margin-bottom: 0;\n}\n.form-group-lg .bootstrap-select.btn-group.form-control,\n.form-group-sm .bootstrap-select.btn-group.form-control {\n padding: 0;\n}\n.form-inline .bootstrap-select.btn-group .form-control {\n width: 100%;\n}\n.bootstrap-select.btn-group.disabled,\n.bootstrap-select.btn-group > .disabled {\n cursor: not-allowed;\n}\n.bootstrap-select.btn-group.disabled:focus,\n.bootstrap-select.btn-group > .disabled:focus {\n outline: none !important;\n}\n.bootstrap-select.btn-group.bs-container {\n position: absolute;\n height: 0 !important;\n padding: 0 !important;\n}\n.bootstrap-select.btn-group.bs-container .dropdown-menu {\n z-index: 1060;\n}\n.bootstrap-select.btn-group .dropdown-toggle .filter-option {\n display: inline-block;\n overflow: hidden;\n width: 100%;\n text-align: left;\n}\n.bootstrap-select.btn-group .dropdown-toggle .caret {\n position: absolute;\n top: 50%;\n right: 12px;\n margin-top: -2px;\n vertical-align: middle;\n}\n.bootstrap-select.btn-group[class*=\"col-\"] .dropdown-toggle {\n width: 100%;\n}\n.bootstrap-select.btn-group .dropdown-menu {\n min-width: 100%;\n box-sizing: border-box;\n}\n.bootstrap-select.btn-group .dropdown-menu.inner {\n position: static;\n float: none;\n border: 0;\n padding: 0;\n margin: 0;\n border-radius: 0;\n box-shadow: none;\n}\n.bootstrap-select.btn-group .dropdown-menu li {\n position: relative;\n}\n.bootstrap-select.btn-group .dropdown-menu li.active small {\n color: #fff;\n}\n.bootstrap-select.btn-group .dropdown-menu li.disabled a {\n cursor: not-allowed;\n}\n.bootstrap-select.btn-group .dropdown-menu li a {\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.bootstrap-select.btn-group .dropdown-menu li a.opt {\n position: relative;\n padding-left: 2.25em;\n}\n.bootstrap-select.btn-group .dropdown-menu li a span.check-mark {\n display: none;\n}\n.bootstrap-select.btn-group .dropdown-menu li a span.text {\n display: inline-block;\n}\n.bootstrap-select.btn-group .dropdown-menu li small {\n padding-left: 0.5em;\n}\n.bootstrap-select.btn-group .dropdown-menu .notify {\n position: absolute;\n bottom: 5px;\n width: 96%;\n margin: 0 2%;\n min-height: 26px;\n padding: 3px 5px;\n background: #f5f5f5;\n border: 1px solid #e3e3e3;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n pointer-events: none;\n opacity: 0.9;\n box-sizing: border-box;\n}\n.bootstrap-select.btn-group .no-results {\n padding: 3px;\n background: #f5f5f5;\n margin: 0 5px;\n white-space: nowrap;\n}\n.bootstrap-select.btn-group.fit-width .dropdown-toggle .filter-option {\n position: static;\n}\n.bootstrap-select.btn-group.fit-width .dropdown-toggle .caret {\n position: static;\n top: auto;\n margin-top: -1px;\n}\n.bootstrap-select.btn-group.show-tick .dropdown-menu li.selected a span.check-mark {\n position: absolute;\n display: inline-block;\n right: 15px;\n margin-top: 5px;\n}\n.bootstrap-select.btn-group.show-tick .dropdown-menu li a span.text {\n margin-right: 34px;\n}\n.bootstrap-select.show-menu-arrow.open > .dropdown-toggle {\n z-index: 1061;\n}\n.bootstrap-select.show-menu-arrow .dropdown-toggle:before {\n content: '';\n border-left: 7px solid transparent;\n border-right: 7px solid transparent;\n border-bottom: 7px solid rgba(204, 204, 204, 0.2);\n position: absolute;\n bottom: -4px;\n left: 9px;\n display: none;\n}\n.bootstrap-select.show-menu-arrow .dropdown-toggle:after {\n content: '';\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-bottom: 6px solid white;\n position: absolute;\n bottom: -4px;\n left: 10px;\n display: none;\n}\n.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:before {\n bottom: auto;\n top: -3px;\n border-top: 7px solid rgba(204, 204, 204, 0.2);\n border-bottom: 0;\n}\n.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:after {\n bottom: auto;\n top: -3px;\n border-top: 6px solid white;\n border-bottom: 0;\n}\n.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:before {\n right: 12px;\n left: auto;\n}\n.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:after {\n right: 13px;\n left: auto;\n}\n.bootstrap-select.show-menu-arrow.open > .dropdown-toggle:before,\n.bootstrap-select.show-menu-arrow.open > .dropdown-toggle:after {\n display: block;\n}\n.bs-searchbox,\n.bs-actionsbox,\n.bs-donebutton {\n padding: 4px 8px;\n}\n.bs-actionsbox {\n width: 100%;\n box-sizing: border-box;\n}\n.bs-actionsbox .btn-group button {\n width: 50%;\n}\n.bs-donebutton {\n float: left;\n width: 100%;\n box-sizing: border-box;\n}\n.bs-donebutton .btn-group button {\n width: 100%;\n}\n.bs-searchbox + .bs-actionsbox {\n padding: 0 8px 4px;\n}\n.bs-searchbox .form-control {\n margin-bottom: 0;\n width: 100%;\n float: none;\n}\n/*# sourceMappingURL=bootstrap-select.css.map */"]}
\ No newline at end of file
diff --git a/Bootstrap.Admin/Content/css/bootstrap-select.min.css b/Bootstrap.Admin/Content/css/bootstrap-select.min.css
deleted file mode 100644
index 6cdc93bc..00000000
--- a/Bootstrap.Admin/Content/css/bootstrap-select.min.css
+++ /dev/null
@@ -1,6 +0,0 @@
-/*!
- * Bootstrap-select v1.11.2 (http://silviomoreto.github.io/bootstrap-select)
- *
- * Copyright 2013-2016 bootstrap-select
- * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
- */select.bs-select-hidden,select.selectpicker{display:none!important}.bootstrap-select{width:220px\9}.bootstrap-select>.dropdown-toggle{width:100%;padding-right:25px;z-index:1}.bootstrap-select>.dropdown-toggle.bs-placeholder,.bootstrap-select>.dropdown-toggle.bs-placeholder:active,.bootstrap-select>.dropdown-toggle.bs-placeholder:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder:hover{color:#999}.bootstrap-select>select{position:absolute!important;bottom:0;left:50%;display:block!important;width:.5px!important;height:100%!important;padding:0!important;opacity:0!important;border:none}.bootstrap-select>select.mobile-device{top:0;left:0;display:block!important;width:100%!important;z-index:2}.error .bootstrap-select .dropdown-toggle,.has-error .bootstrap-select .dropdown-toggle{border-color:#b94a48}.bootstrap-select.fit-width{width:auto!important}.bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn){width:220px}.bootstrap-select .dropdown-toggle:focus{outline:thin dotted #333!important;outline:5px auto -webkit-focus-ring-color!important;outline-offset:-2px}.bootstrap-select.form-control{margin-bottom:0;padding:0;border:none}.bootstrap-select.form-control:not([class*=col-]){width:100%}.bootstrap-select.form-control.input-group-btn{z-index:auto}.bootstrap-select.form-control.input-group-btn:not(:first-child):not(:last-child)>.btn{border-radius:0}.bootstrap-select.btn-group:not(.input-group-btn),.bootstrap-select.btn-group[class*=col-]{float:none;display:inline-block;margin-left:0}.bootstrap-select.btn-group.dropdown-menu-right,.bootstrap-select.btn-group[class*=col-].dropdown-menu-right,.row .bootstrap-select.btn-group[class*=col-].dropdown-menu-right{float:right}.form-group .bootstrap-select.btn-group,.form-horizontal .bootstrap-select.btn-group,.form-inline .bootstrap-select.btn-group{margin-bottom:0}.form-group-lg .bootstrap-select.btn-group.form-control,.form-group-sm .bootstrap-select.btn-group.form-control{padding:0}.form-inline .bootstrap-select.btn-group .form-control{width:100%}.bootstrap-select.btn-group.disabled,.bootstrap-select.btn-group>.disabled{cursor:not-allowed}.bootstrap-select.btn-group.disabled:focus,.bootstrap-select.btn-group>.disabled:focus{outline:0!important}.bootstrap-select.btn-group.bs-container{position:absolute;height:0!important;padding:0!important}.bootstrap-select.btn-group.bs-container .dropdown-menu{z-index:1060}.bootstrap-select.btn-group .dropdown-toggle .filter-option{display:inline-block;overflow:hidden;width:100%;text-align:left}.bootstrap-select.btn-group .dropdown-toggle .caret{position:absolute;top:50%;right:12px;margin-top:-2px;vertical-align:middle}.bootstrap-select.btn-group[class*=col-] .dropdown-toggle{width:100%}.bootstrap-select.btn-group .dropdown-menu{min-width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select.btn-group .dropdown-menu.inner{position:static;float:none;border:0;padding:0;margin:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.bootstrap-select.btn-group .dropdown-menu li{position:relative}.bootstrap-select.btn-group .dropdown-menu li.active small{color:#fff}.bootstrap-select.btn-group .dropdown-menu li.disabled a{cursor:not-allowed}.bootstrap-select.btn-group .dropdown-menu li a{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.bootstrap-select.btn-group .dropdown-menu li a.opt{position:relative;padding-left:2.25em}.bootstrap-select.btn-group .dropdown-menu li a span.check-mark{display:none}.bootstrap-select.btn-group .dropdown-menu li a span.text{display:inline-block}.bootstrap-select.btn-group .dropdown-menu li small{padding-left:.5em}.bootstrap-select.btn-group .dropdown-menu .notify{position:absolute;bottom:5px;width:96%;margin:0 2%;min-height:26px;padding:3px 5px;background:#f5f5f5;border:1px solid #e3e3e3;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05);pointer-events:none;opacity:.9;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select.btn-group .no-results{padding:3px;background:#f5f5f5;margin:0 5px;white-space:nowrap}.bootstrap-select.btn-group.fit-width .dropdown-toggle .filter-option{position:static}.bootstrap-select.btn-group.fit-width .dropdown-toggle .caret{position:static;top:auto;margin-top:-1px}.bootstrap-select.btn-group.show-tick .dropdown-menu li.selected a span.check-mark{position:absolute;display:inline-block;right:15px;margin-top:5px}.bootstrap-select.btn-group.show-tick .dropdown-menu li a span.text{margin-right:34px}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle{z-index:1061}.bootstrap-select.show-menu-arrow .dropdown-toggle:before{content:'';border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(204,204,204,.2);position:absolute;bottom:-4px;left:9px;display:none}.bootstrap-select.show-menu-arrow .dropdown-toggle:after{content:'';border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;bottom:-4px;left:10px;display:none}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:before{bottom:auto;top:-3px;border-top:7px solid rgba(204,204,204,.2);border-bottom:0}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:after{bottom:auto;top:-3px;border-top:6px solid #fff;border-bottom:0}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:before{right:12px;left:auto}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:after{right:13px;left:auto}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle:after,.bootstrap-select.show-menu-arrow.open>.dropdown-toggle:before{display:block}.bs-actionsbox,.bs-donebutton,.bs-searchbox{padding:4px 8px}.bs-actionsbox{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-actionsbox .btn-group button{width:50%}.bs-donebutton{float:left;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-donebutton .btn-group button{width:100%}.bs-searchbox+.bs-actionsbox{padding:0 8px 4px}.bs-searchbox .form-control{margin-bottom:0;width:100%;float:none}
\ No newline at end of file
diff --git a/Bootstrap.Admin/Content/js/Longbow.Common.js b/Bootstrap.Admin/Content/js/Longbow.Common.js
index eeb02474..ed3973a6 100644
--- a/Bootstrap.Admin/Content/js/Longbow.Common.js
+++ b/Bootstrap.Admin/Content/js/Longbow.Common.js
@@ -205,6 +205,30 @@
var ctl = $('#' + $(this).attr('id').replace('tb_', 'btn_'));
ctl.trigger("click");
});
+ },
+ select: function () {
+ var $this = $(this);
+ $this.each(function (index, element) {
+ var $element = $(element);
+ var $select = $element.find('button').first();
+ var $options = $element.find('.dropdown-menu > li > a');
+ $select.addClass('select').data('options', $options);
+ $options.on('click', function () {
+ var $op = $(this);
+ $select.text($op.text()).attr('data-val', $op.attr('data-val'));
+ });
+ });
+ },
+ selectval: function (value) {
+ var $this = $(this);
+ if (value == undefined) return $this.attr('data-val');
+ $this.data('options').each(function (index, element) {
+ var $op = $(element);
+ var val = $op.attr('data-val');
+ if (value == val) {
+ $this.text($op.text()).attr('data-val', val);
+ }
+ });
}
});
})(jQuery);
diff --git a/Bootstrap.Admin/Content/js/bootstrap-select.js b/Bootstrap.Admin/Content/js/bootstrap-select.js
deleted file mode 100644
index 18779764..00000000
--- a/Bootstrap.Admin/Content/js/bootstrap-select.js
+++ /dev/null
@@ -1,1888 +0,0 @@
-/*!
- * Bootstrap-select v1.11.2 (http://silviomoreto.github.io/bootstrap-select)
- *
- * Copyright 2013-2016 bootstrap-select
- * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
- */
-
-(function (root, factory) {
- if (typeof define === 'function' && define.amd) {
- // AMD. Register as an anonymous module unless amdModuleId is set
- define(["jquery"], function (a0) {
- return (factory(a0));
- });
- } else if (typeof exports === 'object') {
- // Node. Does not work with strict CommonJS, but
- // only CommonJS-like environments that support module.exports,
- // like Node.
- module.exports = factory(require("jquery"));
- } else {
- factory(jQuery);
- }
-}(this, function (jQuery) {
-
-(function ($) {
- 'use strict';
-
- //
- if (!String.prototype.includes) {
- (function () {
- 'use strict'; // needed to support `apply`/`call` with `undefined`/`null`
- var toString = {}.toString;
- var defineProperty = (function () {
- // IE 8 only supports `Object.defineProperty` on DOM elements
- try {
- var object = {};
- var $defineProperty = Object.defineProperty;
- var result = $defineProperty(object, object, object) && $defineProperty;
- } catch (error) {
- }
- return result;
- }());
- var indexOf = ''.indexOf;
- var includes = function (search) {
- if (this == null) {
- throw new TypeError();
- }
- var string = String(this);
- if (search && toString.call(search) == '[object RegExp]') {
- throw new TypeError();
- }
- var stringLength = string.length;
- var searchString = String(search);
- var searchLength = searchString.length;
- var position = arguments.length > 1 ? arguments[1] : undefined;
- // `ToInteger`
- var pos = position ? Number(position) : 0;
- if (pos != pos) { // better `isNaN`
- pos = 0;
- }
- var start = Math.min(Math.max(pos, 0), stringLength);
- // Avoid the `indexOf` call if no match is possible
- if (searchLength + start > stringLength) {
- return false;
- }
- return indexOf.call(string, searchString, pos) != -1;
- };
- if (defineProperty) {
- defineProperty(String.prototype, 'includes', {
- 'value': includes,
- 'configurable': true,
- 'writable': true
- });
- } else {
- String.prototype.includes = includes;
- }
- }());
- }
-
- if (!String.prototype.startsWith) {
- (function () {
- 'use strict'; // needed to support `apply`/`call` with `undefined`/`null`
- var defineProperty = (function () {
- // IE 8 only supports `Object.defineProperty` on DOM elements
- try {
- var object = {};
- var $defineProperty = Object.defineProperty;
- var result = $defineProperty(object, object, object) && $defineProperty;
- } catch (error) {
- }
- return result;
- }());
- var toString = {}.toString;
- var startsWith = function (search) {
- if (this == null) {
- throw new TypeError();
- }
- var string = String(this);
- if (search && toString.call(search) == '[object RegExp]') {
- throw new TypeError();
- }
- var stringLength = string.length;
- var searchString = String(search);
- var searchLength = searchString.length;
- var position = arguments.length > 1 ? arguments[1] : undefined;
- // `ToInteger`
- var pos = position ? Number(position) : 0;
- if (pos != pos) { // better `isNaN`
- pos = 0;
- }
- var start = Math.min(Math.max(pos, 0), stringLength);
- // Avoid the `indexOf` call if no match is possible
- if (searchLength + start > stringLength) {
- return false;
- }
- var index = -1;
- while (++index < searchLength) {
- if (string.charCodeAt(start + index) != searchString.charCodeAt(index)) {
- return false;
- }
- }
- return true;
- };
- if (defineProperty) {
- defineProperty(String.prototype, 'startsWith', {
- 'value': startsWith,
- 'configurable': true,
- 'writable': true
- });
- } else {
- String.prototype.startsWith = startsWith;
- }
- }());
- }
-
- if (!Object.keys) {
- Object.keys = function (
- o, // object
- k, // key
- r // result array
- ){
- // initialize object and result
- r=[];
- // iterate over object keys
- for (k in o)
- // fill result array with non-prototypical keys
- r.hasOwnProperty.call(o, k) && r.push(k);
- // return result
- return r;
- };
- }
-
- // set data-selected on select element if the value has been programmatically selected
- // prior to initialization of bootstrap-select
- // * consider removing or replacing an alternative method *
- var valHooks = {
- useDefault: false,
- _set: $.valHooks.select.set
- };
-
- $.valHooks.select.set = function(elem, value) {
- if (value && !valHooks.useDefault) $(elem).data('selected', true);
-
- return valHooks._set.apply(this, arguments);
- };
-
- var changed_arguments = null;
- $.fn.triggerNative = function (eventName) {
- var el = this[0],
- event;
-
- if (el.dispatchEvent) { // for modern browsers & IE9+
- if (typeof Event === 'function') {
- // For modern browsers
- event = new Event(eventName, {
- bubbles: true
- });
- } else {
- // For IE since it doesn't support Event constructor
- event = document.createEvent('Event');
- event.initEvent(eventName, true, false);
- }
-
- el.dispatchEvent(event);
- } else if (el.fireEvent) { // for IE8
- event = document.createEventObject();
- event.eventType = eventName;
- el.fireEvent('on' + eventName, event);
- } else {
- // fall back to jQuery.trigger
- this.trigger(eventName);
- }
- };
- //
-
- // Case insensitive contains search
- $.expr.pseudos.icontains = function (obj, index, meta) {
- var $obj = $(obj);
- var haystack = ($obj.data('tokens') || $obj.text()).toString().toUpperCase();
- return haystack.includes(meta[3].toUpperCase());
- };
-
- // Case insensitive begins search
- $.expr.pseudos.ibegins = function (obj, index, meta) {
- var $obj = $(obj);
- var haystack = ($obj.data('tokens') || $obj.text()).toString().toUpperCase();
- return haystack.startsWith(meta[3].toUpperCase());
- };
-
- // Case and accent insensitive contains search
- $.expr.pseudos.aicontains = function (obj, index, meta) {
- var $obj = $(obj);
- var haystack = ($obj.data('tokens') || $obj.data('normalizedText') || $obj.text()).toString().toUpperCase();
- return haystack.includes(meta[3].toUpperCase());
- };
-
- // Case and accent insensitive begins search
- $.expr.pseudos.aibegins = function (obj, index, meta) {
- var $obj = $(obj);
- var haystack = ($obj.data('tokens') || $obj.data('normalizedText') || $obj.text()).toString().toUpperCase();
- return haystack.startsWith(meta[3].toUpperCase());
- };
-
- /**
- * Remove all diatrics from the given text.
- * @access private
- * @param {String} text
- * @returns {String}
- */
- function normalizeToBase(text) {
- var rExps = [
- {re: /[\xC0-\xC6]/g, ch: "A"},
- {re: /[\xE0-\xE6]/g, ch: "a"},
- {re: /[\xC8-\xCB]/g, ch: "E"},
- {re: /[\xE8-\xEB]/g, ch: "e"},
- {re: /[\xCC-\xCF]/g, ch: "I"},
- {re: /[\xEC-\xEF]/g, ch: "i"},
- {re: /[\xD2-\xD6]/g, ch: "O"},
- {re: /[\xF2-\xF6]/g, ch: "o"},
- {re: /[\xD9-\xDC]/g, ch: "U"},
- {re: /[\xF9-\xFC]/g, ch: "u"},
- {re: /[\xC7-\xE7]/g, ch: "c"},
- {re: /[\xD1]/g, ch: "N"},
- {re: /[\xF1]/g, ch: "n"}
- ];
- $.each(rExps, function () {
- text = text.replace(this.re, this.ch);
- });
- return text;
- }
-
-
- function htmlEscape(html) {
- var escapeMap = {
- '&': '&',
- '<': '<',
- '>': '>',
- '"': '"',
- "'": ''',
- '`': '`'
- };
- var source = '(?:' + Object.keys(escapeMap).join('|') + ')',
- testRegexp = new RegExp(source),
- replaceRegexp = new RegExp(source, 'g'),
- string = html == null ? '' : '' + html;
- return testRegexp.test(string) ? string.replace(replaceRegexp, function (match) {
- return escapeMap[match];
- }) : string;
- }
-
- var Selectpicker = function (element, options, e) {
- // bootstrap-select has been initialized - revert valHooks.select.set back to its original function
- if (!valHooks.useDefault) {
- $.valHooks.select.set = valHooks._set;
- valHooks.useDefault = true;
- }
-
- if (e) {
- e.stopPropagation();
- e.preventDefault();
- }
-
- this.$element = $(element);
- this.$newElement = null;
- this.$button = null;
- this.$menu = null;
- this.$lis = null;
- this.options = options;
-
- // If we have no title yet, try to pull it from the html title attribute (jQuery doesnt' pick it up as it's not a
- // data-attribute)
- if (this.options.title === null) {
- this.options.title = this.$element.attr('title');
- }
-
- //Expose public methods
- this.val = Selectpicker.prototype.val;
- this.render = Selectpicker.prototype.render;
- this.refresh = Selectpicker.prototype.refresh;
- this.setStyle = Selectpicker.prototype.setStyle;
- this.selectAll = Selectpicker.prototype.selectAll;
- this.deselectAll = Selectpicker.prototype.deselectAll;
- this.destroy = Selectpicker.prototype.destroy;
- this.remove = Selectpicker.prototype.remove;
- this.show = Selectpicker.prototype.show;
- this.hide = Selectpicker.prototype.hide;
-
- this.init();
- };
-
- Selectpicker.VERSION = '1.11.2';
-
- // part of this is duplicated in i18n/defaults-en_US.js. Make sure to update both.
- Selectpicker.DEFAULTS = {
- noneSelectedText: 'Nothing selected',
- noneResultsText: 'No results matched {0}',
- countSelectedText: function (numSelected, numTotal) {
- return (numSelected == 1) ? "{0} item selected" : "{0} items selected";
- },
- maxOptionsText: function (numAll, numGroup) {
- return [
- (numAll == 1) ? 'Limit reached ({n} item max)' : 'Limit reached ({n} items max)',
- (numGroup == 1) ? 'Group limit reached ({n} item max)' : 'Group limit reached ({n} items max)'
- ];
- },
- selectAllText: 'Select All',
- deselectAllText: 'Deselect All',
- doneButton: false,
- doneButtonText: 'Close',
- multipleSeparator: ', ',
- styleBase: 'btn',
- style: 'btn-default',
- size: 'auto',
- title: null,
- selectedTextFormat: 'values',
- width: false,
- container: false,
- hideDisabled: false,
- showSubtext: false,
- showIcon: true,
- showContent: true,
- dropupAuto: true,
- header: false,
- liveSearch: false,
- liveSearchPlaceholder: null,
- liveSearchNormalize: false,
- liveSearchStyle: 'contains',
- actionsBox: false,
- iconBase: 'glyphicon',
- tickIcon: 'glyphicon-ok',
- showTick: false,
- template: {
- caret: ''
- },
- maxOptions: false,
- mobile: false,
- selectOnTab: false,
- dropdownAlignRight: false
- };
-
- Selectpicker.prototype = {
-
- constructor: Selectpicker,
-
- init: function () {
- var that = this,
- id = this.$element.attr('id');
-
- this.$element.addClass('bs-select-hidden');
-
- // store originalIndex (key) and newIndex (value) in this.liObj for fast accessibility
- // allows us to do this.$lis.eq(that.liObj[index]) instead of this.$lis.filter('[data-original-index="' + index + '"]')
- this.liObj = {};
- this.multiple = this.$element.prop('multiple');
- this.autofocus = this.$element.prop('autofocus');
- this.$newElement = this.createView();
- this.$element
- .after(this.$newElement)
- .appendTo(this.$newElement);
- this.$button = this.$newElement.children('button');
- this.$menu = this.$newElement.children('.dropdown-menu');
- this.$menuInner = this.$menu.children('.inner');
- this.$searchbox = this.$menu.find('input');
-
- this.$element.removeClass('bs-select-hidden');
-
- if (this.options.dropdownAlignRight === true) this.$menu.addClass('dropdown-menu-right');
-
- if (typeof id !== 'undefined') {
- this.$button.attr('data-id', id);
- $('label[for="' + id + '"]').click(function (e) {
- e.preventDefault();
- that.$button.focus();
- });
- }
-
- this.checkDisabled();
- this.clickListener();
- if (this.options.liveSearch) this.liveSearchListener();
- this.render();
- this.setStyle();
- this.setWidth();
- if (this.options.container) this.selectPosition();
- this.$menu.data('this', this);
- this.$newElement.data('this', this);
- if (this.options.mobile) this.mobile();
-
- this.$newElement.on({
- 'hide.bs.dropdown': function (e) {
- that.$menuInner.attr('aria-expanded', false);
- that.$element.trigger('hide.bs.select', e);
- },
- 'hidden.bs.dropdown': function (e) {
- that.$element.trigger('hidden.bs.select', e);
- },
- 'show.bs.dropdown': function (e) {
- that.$menuInner.attr('aria-expanded', true);
- that.$element.trigger('show.bs.select', e);
- },
- 'shown.bs.dropdown': function (e) {
- that.$element.trigger('shown.bs.select', e);
- }
- });
-
- if (that.$element[0].hasAttribute('required')) {
- this.$element.on('invalid', function () {
- that.$button
- .addClass('bs-invalid')
- .focus();
-
- that.$element.on({
- 'focus.bs.select': function () {
- that.$button.focus();
- that.$element.off('focus.bs.select');
- },
- 'shown.bs.select': function () {
- that.$element
- .val(that.$element.val()) // set the value to hide the validation message in Chrome when menu is opened
- .off('shown.bs.select');
- },
- 'rendered.bs.select': function () {
- // if select is no longer invalid, remove the bs-invalid class
- if (this.validity.valid) that.$button.removeClass('bs-invalid');
- that.$element.off('rendered.bs.select');
- }
- });
- });
- }
-
- setTimeout(function () {
- that.$element.trigger('loaded.bs.select');
- });
- },
-
- createDropdown: function () {
- // Options
- // If we are multiple or showTick option is set, then add the show-tick class
- var showTick = (this.multiple || this.options.showTick) ? ' show-tick' : '',
- inputGroup = this.$element.parent().hasClass('input-group') ? ' input-group-btn' : '',
- autofocus = this.autofocus ? ' autofocus' : '';
- // Elements
- var header = this.options.header ? '
' + this.options.header + '
' : '';
- var searchbox = this.options.liveSearch ?
- '' +
- '' +
- '
'
- : '';
- var actionsbox = this.multiple && this.options.actionsBox ?
- '' +
- '
' +
- '' +
- '' +
- '
' +
- '
'
- : '';
- var donebutton = this.multiple && this.options.doneButton ?
- ''
- : '';
- var drop =
- '' +
- '' +
- '' +
- '
';
-
- return $(drop);
- },
-
- createView: function () {
- var $drop = this.createDropdown(),
- li = this.createLi();
-
- $drop.find('ul')[0].innerHTML = li;
- return $drop;
- },
-
- reloadLi: function () {
- //Remove all children.
- this.destroyLi();
- //Re build
- var li = this.createLi();
- this.$menuInner[0].innerHTML = li;
- },
-
- destroyLi: function () {
- this.$menu.find('li').remove();
- },
-
- createLi: function () {
- var that = this,
- _li = [],
- optID = 0,
- titleOption = document.createElement('option'),
- liIndex = -1; // increment liIndex whenever a new element is created to ensure liObj is correct
-
- // Helper functions
- /**
- * @param content
- * @param [index]
- * @param [classes]
- * @param [optgroup]
- * @returns {string}
- */
- var generateLI = function (content, index, classes, optgroup) {
- return '' + content + '';
- };
-
- /**
- * @param text
- * @param [classes]
- * @param [inline]
- * @param [tokens]
- * @returns {string}
- */
- var generateA = function (text, classes, inline, tokens) {
- return '' + text +
- '' +
- '';
- };
-
- if (this.options.title && !this.multiple) {
- // this option doesn't create a new element, but does add a new option, so liIndex is decreased
- // since liObj is recalculated on every refresh, liIndex needs to be decreased even if the titleOption is already appended
- liIndex--;
-
- if (!this.$element.find('.bs-title-option').length) {
- // Use native JS to prepend option (faster)
- var element = this.$element[0];
- titleOption.className = 'bs-title-option';
- titleOption.appendChild(document.createTextNode(this.options.title));
- titleOption.value = '';
- element.insertBefore(titleOption, element.firstChild);
- // Check if selected or data-selected attribute is already set on an option. If not, select the titleOption option.
- // the selected item may have been changed by user or programmatically before the bootstrap select plugin runs,
- // if so, the select will have the data-selected attribute
- var $opt = $(element.options[element.selectedIndex]);
- if ($opt.attr('selected') === undefined && this.$element.data('selected') === undefined) {
- titleOption.selected = true;
- }
- }
- }
-
- this.$element.find('option').each(function (index) {
- var $this = $(this);
-
- liIndex++;
-
- if ($this.hasClass('bs-title-option')) return;
-
- // Get the class and text for the option
- var optionClass = this.className || '',
- inline = this.style.cssText,
- text = $this.data('content') ? $this.data('content') : $this.html(),
- tokens = $this.data('tokens') ? $this.data('tokens') : null,
- subtext = typeof $this.data('subtext') !== 'undefined' ? '' + $this.data('subtext') + '' : '',
- icon = typeof $this.data('icon') !== 'undefined' ? ' ' : '',
- $parent = $this.parent(),
- isOptgroup = $parent[0].tagName === 'OPTGROUP',
- isOptgroupDisabled = isOptgroup && $parent[0].disabled,
- isDisabled = this.disabled || isOptgroupDisabled;
-
- if (icon !== '' && isDisabled) {
- icon = '' + icon + '';
- }
-
- if (that.options.hideDisabled && (isDisabled && !isOptgroup || isOptgroupDisabled)) {
- liIndex--;
- return;
- }
-
- if (!$this.data('content')) {
- // Prepend any icon and append any subtext to the main text.
- text = icon + '' + text + subtext + '';
- }
-
- if (isOptgroup && $this.data('divider') !== true) {
- if (that.options.hideDisabled && isDisabled) {
- if ($parent.data('allOptionsDisabled') === undefined) {
- var $options = $parent.children();
- $parent.data('allOptionsDisabled', $options.filter(':disabled').length === $options.length);
- }
-
- if ($parent.data('allOptionsDisabled')) {
- liIndex--;
- return;
- }
- }
-
- var optGroupClass = ' ' + $parent[0].className || '';
-
- if ($this.index() === 0) { // Is it the first option of the optgroup?
- optID += 1;
-
- // Get the opt group label
- var label = $parent[0].label,
- labelSubtext = typeof $parent.data('subtext') !== 'undefined' ? '' + $parent.data('subtext') + '' : '',
- labelIcon = $parent.data('icon') ? ' ' : '';
-
- label = labelIcon + '' + label + labelSubtext + '';
-
- if (index !== 0 && _li.length > 0) { // Is it NOT the first option of the select && are there elements in the dropdown?
- liIndex++;
- _li.push(generateLI('', null, 'divider', optID + 'div'));
- }
- liIndex++;
- _li.push(generateLI(label, null, 'dropdown-header' + optGroupClass, optID));
- }
-
- if (that.options.hideDisabled && isDisabled) {
- liIndex--;
- return;
- }
-
- _li.push(generateLI(generateA(text, 'opt ' + optionClass + optGroupClass, inline, tokens), index, '', optID));
- } else if ($this.data('divider') === true) {
- _li.push(generateLI('', index, 'divider'));
- } else if ($this.data('hidden') === true) {
- _li.push(generateLI(generateA(text, optionClass, inline, tokens), index, 'hidden is-hidden'));
- } else {
- var showDivider = this.previousElementSibling && this.previousElementSibling.tagName === 'OPTGROUP';
-
- // if previous element is not an optgroup and hideDisabled is true
- if (!showDivider && that.options.hideDisabled) {
- // get previous elements
- var $prev = $(this).prevAll();
-
- for (var i = 0; i < $prev.length; i++) {
- // find the first element in the previous elements that is an optgroup
- if ($prev[i].tagName === 'OPTGROUP') {
- var optGroupDistance = 0;
-
- // loop through the options in between the current option and the optgroup
- // and check if they are hidden or disabled
- for (var d = 0; d < i; d++) {
- var prevOption = $prev[d];
- if (prevOption.disabled || $(prevOption).data('hidden') === true) optGroupDistance++;
- }
-
- // if all of the options between the current option and the optgroup are hidden or disabled, show the divider
- if (optGroupDistance === i) showDivider = true;
-
- break;
- }
- }
- }
-
- if (showDivider) {
- liIndex++;
- _li.push(generateLI('', null, 'divider', optID + 'div'));
- }
- _li.push(generateLI(generateA(text, optionClass, inline, tokens), index));
- }
-
- that.liObj[index] = liIndex;
- });
-
- //If we are not multiple, we don't have a selected item, and we don't have a title, select the first element so something is set in the button
- if (!this.multiple && this.$element.find('option:selected').length === 0 && !this.options.title) {
- this.$element.find('option').eq(0).prop('selected', true).attr('selected', 'selected');
- }
-
- return _li.join('');
- },
-
- findLis: function () {
- if (this.$lis == null) this.$lis = this.$menu.find('li');
- return this.$lis;
- },
-
- /**
- * @param [updateLi] defaults to true
- */
- render: function (updateLi) {
- var that = this,
- notDisabled;
-
- //Update the LI to match the SELECT
- if (updateLi !== false) {
- this.$element.find('option').each(function (index) {
- var $lis = that.findLis().eq(that.liObj[index]);
-
- that.setDisabled(index, this.disabled || this.parentNode.tagName === 'OPTGROUP' && this.parentNode.disabled, $lis);
- that.setSelected(index, this.selected, $lis);
- });
- }
-
- this.togglePlaceholder();
-
- this.tabIndex();
-
- var selectedItems = this.$element.find('option').map(function () {
- if (this.selected) {
- if (that.options.hideDisabled && (this.disabled || this.parentNode.tagName === 'OPTGROUP' && this.parentNode.disabled)) return;
-
- var $this = $(this),
- icon = $this.data('icon') && that.options.showIcon ? ' ' : '',
- subtext;
-
- if (that.options.showSubtext && $this.data('subtext') && !that.multiple) {
- subtext = ' ' + $this.data('subtext') + '';
- } else {
- subtext = '';
- }
- if (typeof $this.attr('title') !== 'undefined') {
- return $this.attr('title');
- } else if ($this.data('content') && that.options.showContent) {
- return $this.data('content');
- } else {
- return icon + $this.html() + subtext;
- }
- }
- }).toArray();
-
- //Fixes issue in IE10 occurring when no default option is selected and at least one option is disabled
- //Convert all the values into a comma delimited string
- var title = !this.multiple ? selectedItems[0] : selectedItems.join(this.options.multipleSeparator);
-
- //If this is multi select, and the selectText type is count, the show 1 of 2 selected etc..
- if (this.multiple && this.options.selectedTextFormat.indexOf('count') > -1) {
- var max = this.options.selectedTextFormat.split('>');
- if ((max.length > 1 && selectedItems.length > max[1]) || (max.length == 1 && selectedItems.length >= 2)) {
- notDisabled = this.options.hideDisabled ? ', [disabled]' : '';
- var totalCount = this.$element.find('option').not('[data-divider="true"], [data-hidden="true"]' + notDisabled).length,
- tr8nText = (typeof this.options.countSelectedText === 'function') ? this.options.countSelectedText(selectedItems.length, totalCount) : this.options.countSelectedText;
- title = tr8nText.replace('{0}', selectedItems.length.toString()).replace('{1}', totalCount.toString());
- }
- }
-
- if (this.options.title == undefined) {
- this.options.title = this.$element.attr('title');
- }
-
- if (this.options.selectedTextFormat == 'static') {
- title = this.options.title;
- }
-
- //If we dont have a title, then use the default, or if nothing is set at all, use the not selected text
- if (!title) {
- title = typeof this.options.title !== 'undefined' ? this.options.title : this.options.noneSelectedText;
- }
-
- //strip all html-tags and trim the result
- this.$button.attr('title', $.trim(title.replace(/<[^>]*>?/g, '')));
- this.$button.children('.filter-option').html(title);
-
- this.$element.trigger('rendered.bs.select');
- },
-
- /**
- * @param [style]
- * @param [status]
- */
- setStyle: function (style, status) {
- if (this.$element.attr('class')) {
- this.$newElement.addClass(this.$element.attr('class').replace(/selectpicker|mobile-device|bs-select-hidden|validate\[.*\]/gi, ''));
- }
-
- var buttonClass = style ? style : this.options.style;
-
- if (status == 'add') {
- this.$button.addClass(buttonClass);
- } else if (status == 'remove') {
- this.$button.removeClass(buttonClass);
- } else {
- this.$button.removeClass(this.options.style);
- this.$button.addClass(buttonClass);
- }
- },
-
- liHeight: function (refresh) {
- if (!refresh && (this.options.size === false || this.sizeInfo)) return;
-
- var newElement = document.createElement('div'),
- menu = document.createElement('div'),
- menuInner = document.createElement('ul'),
- divider = document.createElement('li'),
- li = document.createElement('li'),
- a = document.createElement('a'),
- text = document.createElement('span'),
- header = this.options.header && this.$menu.find('.popover-title').length > 0 ? this.$menu.find('.popover-title')[0].cloneNode(true) : null,
- search = this.options.liveSearch ? document.createElement('div') : null,
- actions = this.options.actionsBox && this.multiple && this.$menu.find('.bs-actionsbox').length > 0 ? this.$menu.find('.bs-actionsbox')[0].cloneNode(true) : null,
- doneButton = this.options.doneButton && this.multiple && this.$menu.find('.bs-donebutton').length > 0 ? this.$menu.find('.bs-donebutton')[0].cloneNode(true) : null;
-
- text.className = 'text';
- newElement.className = this.$menu[0].parentNode.className + ' open';
- menu.className = 'dropdown-menu open';
- menuInner.className = 'dropdown-menu inner';
- divider.className = 'divider';
-
- text.appendChild(document.createTextNode('Inner text'));
- a.appendChild(text);
- li.appendChild(a);
- menuInner.appendChild(li);
- menuInner.appendChild(divider);
- if (header) menu.appendChild(header);
- if (search) {
- // create a span instead of input as creating an input element is slower
- var input = document.createElement('span');
- search.className = 'bs-searchbox';
- input.className = 'form-control';
- search.appendChild(input);
- menu.appendChild(search);
- }
- if (actions) menu.appendChild(actions);
- menu.appendChild(menuInner);
- if (doneButton) menu.appendChild(doneButton);
- newElement.appendChild(menu);
-
- document.body.appendChild(newElement);
-
- var liHeight = a.offsetHeight,
- headerHeight = header ? header.offsetHeight : 0,
- searchHeight = search ? search.offsetHeight : 0,
- actionsHeight = actions ? actions.offsetHeight : 0,
- doneButtonHeight = doneButton ? doneButton.offsetHeight : 0,
- dividerHeight = $(divider).outerHeight(true),
- // fall back to jQuery if getComputedStyle is not supported
- menuStyle = typeof getComputedStyle === 'function' ? getComputedStyle(menu) : false,
- $menu = menuStyle ? null : $(menu),
- menuPadding = {
- vert: parseInt(menuStyle ? menuStyle.paddingTop : $menu.css('paddingTop')) +
- parseInt(menuStyle ? menuStyle.paddingBottom : $menu.css('paddingBottom')) +
- parseInt(menuStyle ? menuStyle.borderTopWidth : $menu.css('borderTopWidth')) +
- parseInt(menuStyle ? menuStyle.borderBottomWidth : $menu.css('borderBottomWidth')),
- horiz: parseInt(menuStyle ? menuStyle.paddingLeft : $menu.css('paddingLeft')) +
- parseInt(menuStyle ? menuStyle.paddingRight : $menu.css('paddingRight')) +
- parseInt(menuStyle ? menuStyle.borderLeftWidth : $menu.css('borderLeftWidth')) +
- parseInt(menuStyle ? menuStyle.borderRightWidth : $menu.css('borderRightWidth'))
- },
- menuExtras = {
- vert: menuPadding.vert +
- parseInt(menuStyle ? menuStyle.marginTop : $menu.css('marginTop')) +
- parseInt(menuStyle ? menuStyle.marginBottom : $menu.css('marginBottom')) + 2,
- horiz: menuPadding.horiz +
- parseInt(menuStyle ? menuStyle.marginLeft : $menu.css('marginLeft')) +
- parseInt(menuStyle ? menuStyle.marginRight : $menu.css('marginRight')) + 2
- }
-
- document.body.removeChild(newElement);
-
- this.sizeInfo = {
- liHeight: liHeight,
- headerHeight: headerHeight,
- searchHeight: searchHeight,
- actionsHeight: actionsHeight,
- doneButtonHeight: doneButtonHeight,
- dividerHeight: dividerHeight,
- menuPadding: menuPadding,
- menuExtras: menuExtras
- };
- },
-
- setSize: function () {
- this.findLis();
- this.liHeight();
-
- if (this.options.header) this.$menu.css('padding-top', 0);
- if (this.options.size === false) return;
-
- var that = this,
- $menu = this.$menu,
- $menuInner = this.$menuInner,
- $window = $(window),
- selectHeight = this.$newElement[0].offsetHeight,
- selectWidth = this.$newElement[0].offsetWidth,
- liHeight = this.sizeInfo['liHeight'],
- headerHeight = this.sizeInfo['headerHeight'],
- searchHeight = this.sizeInfo['searchHeight'],
- actionsHeight = this.sizeInfo['actionsHeight'],
- doneButtonHeight = this.sizeInfo['doneButtonHeight'],
- divHeight = this.sizeInfo['dividerHeight'],
- menuPadding = this.sizeInfo['menuPadding'],
- menuExtras = this.sizeInfo['menuExtras'],
- notDisabled = this.options.hideDisabled ? '.disabled' : '',
- menuHeight,
- menuWidth,
- getHeight,
- getWidth,
- selectOffsetTop,
- selectOffsetBot,
- selectOffsetLeft,
- selectOffsetRight,
- getPos = function() {
- var pos = that.$newElement.offset(),
- $container = $(that.options.container),
- containerPos;
-
- if (that.options.container && !$container.is('body')) {
- containerPos = $container.offset();
- containerPos.top += parseInt($container.css('borderTopWidth'));
- containerPos.left += parseInt($container.css('borderLeftWidth'));
- } else {
- containerPos = { top: 0, left: 0 };
- }
-
- selectOffsetTop = pos.top - containerPos.top - $window.scrollTop();
- selectOffsetBot = $window.height() - selectOffsetTop - selectHeight - containerPos.top;
- selectOffsetLeft = pos.left - containerPos.left - $window.scrollLeft();
- selectOffsetRight = $window.width() - selectOffsetLeft - selectWidth - containerPos.left;
- };
-
- getPos();
-
- if (this.options.size === 'auto') {
- var getSize = function () {
- var minHeight,
- hasClass = function (className, include) {
- return function (element) {
- if (include) {
- return (element.classList ? element.classList.contains(className) : $(element).hasClass(className));
- } else {
- return !(element.classList ? element.classList.contains(className) : $(element).hasClass(className));
- }
- };
- },
- lis = that.$menuInner[0].getElementsByTagName('li'),
- lisVisible = Array.prototype.filter ? Array.prototype.filter.call(lis, hasClass('hidden', false)) : that.$lis.not('.hidden'),
- optGroup = Array.prototype.filter ? Array.prototype.filter.call(lisVisible, hasClass('dropdown-header', true)) : lisVisible.filter('.dropdown-header');
-
- getPos();
- menuHeight = selectOffsetBot - menuExtras.vert;
- menuWidth = selectOffsetRight - menuExtras.horiz;
-
- if (that.options.container) {
- if (!$menu.data('height')) $menu.data('height', $menu.height());
- getHeight = $menu.data('height');
-
- if (!$menu.data('width')) $menu.data('width', $menu.width());
- getWidth = $menu.data('width');
- } else {
- getHeight = $menu.height();
- getWidth = $menu.width();
- }
-
- if (that.options.dropupAuto) {
- that.$newElement.toggleClass('dropup', selectOffsetTop > selectOffsetBot && (menuHeight - menuExtras.vert) < getHeight);
- }
-
- if (that.$newElement.hasClass('dropup')) {
- menuHeight = selectOffsetTop - menuExtras.vert;
- }
-
- if (that.options.dropdownAlignRight === 'auto') {
- $menu.toggleClass('dropdown-menu-right', selectOffsetLeft > selectOffsetRight && (menuWidth - menuExtras.horiz) < (getWidth - selectWidth));
- }
-
- if ((lisVisible.length + optGroup.length) > 3) {
- minHeight = liHeight * 3 + menuExtras.vert - 2;
- } else {
- minHeight = 0;
- }
-
- $menu.css({
- 'max-height': menuHeight + 'px',
- 'overflow': 'hidden',
- 'min-height': minHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight + 'px'
- });
- $menuInner.css({
- 'max-height': menuHeight - headerHeight - searchHeight - actionsHeight - doneButtonHeight - menuPadding.vert + 'px',
- 'overflow-y': 'auto',
- 'min-height': Math.max(minHeight - menuPadding.vert, 0) + 'px'
- });
- };
- getSize();
- this.$searchbox.off('input.getSize propertychange.getSize').on('input.getSize propertychange.getSize', getSize);
- $window.off('resize.getSize scroll.getSize').on('resize.getSize scroll.getSize', getSize);
- } else if (this.options.size && this.options.size != 'auto' && this.$lis.not(notDisabled).length > this.options.size) {
- var optIndex = this.$lis.not('.divider').not(notDisabled).children().slice(0, this.options.size).last().parent().index(),
- divLength = this.$lis.slice(0, optIndex + 1).filter('.divider').length;
- menuHeight = liHeight * this.options.size + divLength * divHeight + menuPadding.vert;
-
- if (that.options.container) {
- if (!$menu.data('height')) $menu.data('height', $menu.height());
- getHeight = $menu.data('height');
- } else {
- getHeight = $menu.height();
- }
-
- if (that.options.dropupAuto) {
- //noinspection JSUnusedAssignment
- this.$newElement.toggleClass('dropup', selectOffsetTop > selectOffsetBot && (menuHeight - menuExtras.vert) < getHeight);
- }
- $menu.css({
- 'max-height': menuHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight + 'px',
- 'overflow': 'hidden',
- 'min-height': ''
- });
- $menuInner.css({
- 'max-height': menuHeight - menuPadding.vert + 'px',
- 'overflow-y': 'auto',
- 'min-height': ''
- });
- }
- },
-
- setWidth: function () {
- if (this.options.width === 'auto') {
- this.$menu.css('min-width', '0');
-
- // Get correct width if element is hidden
- var $selectClone = this.$menu.parent().clone().appendTo('body'),
- $selectClone2 = this.options.container ? this.$newElement.clone().appendTo('body') : $selectClone,
- ulWidth = $selectClone.children('.dropdown-menu').outerWidth(),
- btnWidth = $selectClone2.css('width', 'auto').children('button').outerWidth();
-
- $selectClone.remove();
- $selectClone2.remove();
-
- // Set width to whatever's larger, button title or longest option
- this.$newElement.css('width', Math.max(ulWidth, btnWidth) + 'px');
- } else if (this.options.width === 'fit') {
- // Remove inline min-width so width can be changed from 'auto'
- this.$menu.css('min-width', '');
- this.$newElement.css('width', '').addClass('fit-width');
- } else if (this.options.width) {
- // Remove inline min-width so width can be changed from 'auto'
- this.$menu.css('min-width', '');
- this.$newElement.css('width', this.options.width);
- } else {
- // Remove inline min-width/width so width can be changed
- this.$menu.css('min-width', '');
- this.$newElement.css('width', '');
- }
- // Remove fit-width class if width is changed programmatically
- if (this.$newElement.hasClass('fit-width') && this.options.width !== 'fit') {
- this.$newElement.removeClass('fit-width');
- }
- },
-
- selectPosition: function () {
- this.$bsContainer = $('');
-
- var that = this,
- $container = $(this.options.container),
- pos,
- containerPos,
- actualHeight,
- getPlacement = function ($element) {
- that.$bsContainer.addClass($element.attr('class').replace(/form-control|fit-width/gi, '')).toggleClass('dropup', $element.hasClass('dropup'));
- pos = $element.offset();
-
- if (!$container.is('body')) {
- containerPos = $container.offset();
- containerPos.top += parseInt($container.css('borderTopWidth')) - $container.scrollTop();
- containerPos.left += parseInt($container.css('borderLeftWidth')) - $container.scrollLeft();
- } else {
- containerPos = { top: 0, left: 0 };
- }
-
- actualHeight = $element.hasClass('dropup') ? 0 : $element[0].offsetHeight;
-
- that.$bsContainer.css({
- 'top': pos.top - containerPos.top + actualHeight,
- 'left': pos.left - containerPos.left,
- 'width': $element[0].offsetWidth
- });
- };
-
- this.$button.on('click', function () {
- var $this = $(this);
-
- if (that.isDisabled()) {
- return;
- }
-
- getPlacement(that.$newElement);
-
- that.$bsContainer
- .appendTo(that.options.container)
- .toggleClass('open', !$this.hasClass('open'))
- .append(that.$menu);
- });
-
- $(window).on('resize scroll', function () {
- getPlacement(that.$newElement);
- });
-
- this.$element.on('hide.bs.select', function () {
- that.$menu.data('height', that.$menu.height());
- that.$bsContainer.detach();
- });
- },
-
- /**
- * @param {number} index - the index of the option that is being changed
- * @param {boolean} selected - true if the option is being selected, false if being deselected
- * @param {JQuery} $lis - the 'li' element that is being modified
- */
- setSelected: function (index, selected, $lis) {
- if (!$lis) {
- this.togglePlaceholder(); // check if setSelected is being called by changing the value of the select
- $lis = this.findLis().eq(this.liObj[index]);
- }
-
- $lis.toggleClass('selected', selected).find('a').attr('aria-selected', selected);
- },
-
- /**
- * @param {number} index - the index of the option that is being disabled
- * @param {boolean} disabled - true if the option is being disabled, false if being enabled
- * @param {JQuery} $lis - the 'li' element that is being modified
- */
- setDisabled: function (index, disabled, $lis) {
- if (!$lis) {
- $lis = this.findLis().eq(this.liObj[index]);
- }
-
- if (disabled) {
- $lis.addClass('disabled').children('a').attr('href', '#').attr('tabindex', -1).attr('aria-disabled', true);
- } else {
- $lis.removeClass('disabled').children('a').removeAttr('href').attr('tabindex', 0).attr('aria-disabled', false);
- }
- },
-
- isDisabled: function () {
- return this.$element[0].disabled;
- },
-
- checkDisabled: function () {
- var that = this;
-
- if (this.isDisabled()) {
- this.$newElement.addClass('disabled');
- this.$button.addClass('disabled').attr('tabindex', -1);
- } else {
- if (this.$button.hasClass('disabled')) {
- this.$newElement.removeClass('disabled');
- this.$button.removeClass('disabled');
- }
-
- if (this.$button.attr('tabindex') == -1 && !this.$element.data('tabindex')) {
- this.$button.removeAttr('tabindex');
- }
- }
-
- this.$button.click(function () {
- return !that.isDisabled();
- });
- },
-
- togglePlaceholder: function () {
- var value = this.$element.val();
- this.$button.toggleClass('bs-placeholder', value === null || value === '');
- },
-
- tabIndex: function () {
- if (this.$element.data('tabindex') !== this.$element.attr('tabindex') &&
- (this.$element.attr('tabindex') !== -98 && this.$element.attr('tabindex') !== '-98')) {
- this.$element.data('tabindex', this.$element.attr('tabindex'));
- this.$button.attr('tabindex', this.$element.data('tabindex'));
- }
-
- this.$element.attr('tabindex', -98);
- },
-
- clickListener: function () {
- var that = this,
- $document = $(document);
-
- this.$newElement.on('touchstart.dropdown', '.dropdown-menu', function (e) {
- e.stopPropagation();
- });
-
- $document.data('spaceSelect', false);
-
- this.$button.on('keyup', function (e) {
- if (/(32)/.test(e.keyCode.toString(10)) && $document.data('spaceSelect')) {
- e.preventDefault();
- $document.data('spaceSelect', false);
- }
- });
-
- this.$button.on('click', function () {
- that.setSize();
- });
-
- this.$element.on('shown.bs.select', function () {
- if (!that.options.liveSearch && !that.multiple) {
- that.$menuInner.find('.selected a').focus();
- } else if (!that.multiple) {
- var selectedIndex = that.liObj[that.$element[0].selectedIndex];
-
- if (typeof selectedIndex !== 'number' || that.options.size === false) return;
-
- // scroll to selected option
- var offset = that.$lis.eq(selectedIndex)[0].offsetTop - that.$menuInner[0].offsetTop;
- offset = offset - that.$menuInner[0].offsetHeight/2 + that.sizeInfo.liHeight/2;
- that.$menuInner[0].scrollTop = offset;
- }
- });
-
- this.$menuInner.on('click', 'li a', function (e) {
- var $this = $(this),
- clickedIndex = $this.parent().data('originalIndex'),
- prevValue = that.$element.val(),
- prevIndex = that.$element.prop('selectedIndex'),
- triggerChange = true;
-
- // Don't close on multi choice menu
- if (that.multiple && that.options.maxOptions !== 1) {
- e.stopPropagation();
- }
-
- e.preventDefault();
-
- //Don't run if we have been disabled
- if (!that.isDisabled() && !$this.parent().hasClass('disabled')) {
- var $options = that.$element.find('option'),
- $option = $options.eq(clickedIndex),
- state = $option.prop('selected'),
- $optgroup = $option.parent('optgroup'),
- maxOptions = that.options.maxOptions,
- maxOptionsGrp = $optgroup.data('maxOptions') || false;
-
- if (!that.multiple) { // Deselect all others if not multi select box
- $options.prop('selected', false);
- $option.prop('selected', true);
- that.$menuInner.find('.selected').removeClass('selected').find('a').attr('aria-selected', false);
- that.setSelected(clickedIndex, true);
- } else { // Toggle the one we have chosen if we are multi select.
- $option.prop('selected', !state);
- that.setSelected(clickedIndex, !state);
- $this.blur();
-
- if (maxOptions !== false || maxOptionsGrp !== false) {
- var maxReached = maxOptions < $options.filter(':selected').length,
- maxReachedGrp = maxOptionsGrp < $optgroup.find('option:selected').length;
-
- if ((maxOptions && maxReached) || (maxOptionsGrp && maxReachedGrp)) {
- if (maxOptions && maxOptions == 1) {
- $options.prop('selected', false);
- $option.prop('selected', true);
- that.$menuInner.find('.selected').removeClass('selected');
- that.setSelected(clickedIndex, true);
- } else if (maxOptionsGrp && maxOptionsGrp == 1) {
- $optgroup.find('option:selected').prop('selected', false);
- $option.prop('selected', true);
- var optgroupID = $this.parent().data('optgroup');
- that.$menuInner.find('[data-optgroup="' + optgroupID + '"]').removeClass('selected');
- that.setSelected(clickedIndex, true);
- } else {
- var maxOptionsText = typeof that.options.maxOptionsText === 'string' ? [that.options.maxOptionsText, that.options.maxOptionsText] : that.options.maxOptionsText,
- maxOptionsArr = typeof maxOptionsText === 'function' ? maxOptionsText(maxOptions, maxOptionsGrp) : maxOptionsText,
- maxTxt = maxOptionsArr[0].replace('{n}', maxOptions),
- maxTxtGrp = maxOptionsArr[1].replace('{n}', maxOptionsGrp),
- $notify = $('');
- // If {var} is set in array, replace it
- /** @deprecated */
- if (maxOptionsArr[2]) {
- maxTxt = maxTxt.replace('{var}', maxOptionsArr[2][maxOptions > 1 ? 0 : 1]);
- maxTxtGrp = maxTxtGrp.replace('{var}', maxOptionsArr[2][maxOptionsGrp > 1 ? 0 : 1]);
- }
-
- $option.prop('selected', false);
-
- that.$menu.append($notify);
-
- if (maxOptions && maxReached) {
- $notify.append($('' + maxTxt + '
'));
- triggerChange = false;
- that.$element.trigger('maxReached.bs.select');
- }
-
- if (maxOptionsGrp && maxReachedGrp) {
- $notify.append($('' + maxTxtGrp + '
'));
- triggerChange = false;
- that.$element.trigger('maxReachedGrp.bs.select');
- }
-
- setTimeout(function () {
- that.setSelected(clickedIndex, false);
- }, 10);
-
- $notify.delay(750).fadeOut(300, function () {
- $(this).remove();
- });
- }
- }
- }
- }
-
- if (!that.multiple || (that.multiple && that.options.maxOptions === 1)) {
- that.$button.focus();
- } else if (that.options.liveSearch) {
- that.$searchbox.focus();
- }
-
- // Trigger select 'change'
- if (triggerChange) {
- if ((prevValue != that.$element.val() && that.multiple) || (prevIndex != that.$element.prop('selectedIndex') && !that.multiple)) {
- // $option.prop('selected') is current option state (selected/unselected). state is previous option state.
- changed_arguments = [clickedIndex, $option.prop('selected'), state];
- that.$element
- .triggerNative('change');
- }
- }
- }
- });
-
- this.$menu.on('click', 'li.disabled a, .popover-title, .popover-title :not(.close)', function (e) {
- if (e.currentTarget == this) {
- e.preventDefault();
- e.stopPropagation();
- if (that.options.liveSearch && !$(e.target).hasClass('close')) {
- that.$searchbox.focus();
- } else {
- that.$button.focus();
- }
- }
- });
-
- this.$menuInner.on('click', '.divider, .dropdown-header', function (e) {
- e.preventDefault();
- e.stopPropagation();
- if (that.options.liveSearch) {
- that.$searchbox.focus();
- } else {
- that.$button.focus();
- }
- });
-
- this.$menu.on('click', '.popover-title .close', function () {
- that.$button.click();
- });
-
- this.$searchbox.on('click', function (e) {
- e.stopPropagation();
- });
-
- this.$menu.on('click', '.actions-btn', function (e) {
- if (that.options.liveSearch) {
- that.$searchbox.focus();
- } else {
- that.$button.focus();
- }
-
- e.preventDefault();
- e.stopPropagation();
-
- if ($(this).hasClass('bs-select-all')) {
- that.selectAll();
- } else {
- that.deselectAll();
- }
- });
-
- this.$element.change(function () {
- that.render(false);
- that.$element.trigger('changed.bs.select', changed_arguments);
- changed_arguments = null;
- });
- },
-
- liveSearchListener: function () {
- var that = this,
- $no_results = $('');
-
- this.$button.on('click.dropdown.data-api touchstart.dropdown.data-api', function () {
- that.$menuInner.find('.active').removeClass('active');
- if (!!that.$searchbox.val()) {
- that.$searchbox.val('');
- that.$lis.not('.is-hidden').removeClass('hidden');
- if (!!$no_results.parent().length) $no_results.remove();
- }
- if (!that.multiple) that.$menuInner.find('.selected').addClass('active');
- setTimeout(function () {
- that.$searchbox.focus();
- }, 10);
- });
-
- this.$searchbox.on('click.dropdown.data-api focus.dropdown.data-api touchend.dropdown.data-api', function (e) {
- e.stopPropagation();
- });
-
- this.$searchbox.on('input propertychange', function () {
- if (that.$searchbox.val()) {
- var $searchBase = that.$lis.not('.is-hidden').removeClass('hidden').children('a');
- if (that.options.liveSearchNormalize) {
- $searchBase = $searchBase.not(':a' + that._searchStyle() + '("' + normalizeToBase(that.$searchbox.val()) + '")');
- } else {
- $searchBase = $searchBase.not(':' + that._searchStyle() + '("' + that.$searchbox.val() + '")');
- }
- $searchBase.parent().addClass('hidden');
-
- that.$lis.filter('.dropdown-header').each(function () {
- var $this = $(this),
- optgroup = $this.data('optgroup');
-
- if (that.$lis.filter('[data-optgroup=' + optgroup + ']').not($this).not('.hidden').length === 0) {
- $this.addClass('hidden');
- that.$lis.filter('[data-optgroup=' + optgroup + 'div]').addClass('hidden');
- }
- });
-
- var $lisVisible = that.$lis.not('.hidden');
-
- // hide divider if first or last visible, or if followed by another divider
- $lisVisible.each(function (index) {
- var $this = $(this);
-
- if ($this.hasClass('divider') && (
- $this.index() === $lisVisible.first().index() ||
- $this.index() === $lisVisible.last().index() ||
- $lisVisible.eq(index + 1).hasClass('divider'))) {
- $this.addClass('hidden');
- }
- });
-
- if (!that.$lis.not('.hidden, .no-results').length) {
- if (!!$no_results.parent().length) {
- $no_results.remove();
- }
- $no_results.html(that.options.noneResultsText.replace('{0}', '"' + htmlEscape(that.$searchbox.val()) + '"')).show();
- that.$menuInner.append($no_results);
- } else if (!!$no_results.parent().length) {
- $no_results.remove();
- }
- } else {
- that.$lis.not('.is-hidden').removeClass('hidden');
- if (!!$no_results.parent().length) {
- $no_results.remove();
- }
- }
-
- that.$lis.filter('.active').removeClass('active');
- if (that.$searchbox.val()) that.$lis.not('.hidden, .divider, .dropdown-header').eq(0).addClass('active').children('a').focus();
- $(this).focus();
- });
- },
-
- _searchStyle: function () {
- var styles = {
- begins: 'ibegins',
- startsWith: 'ibegins'
- };
-
- return styles[this.options.liveSearchStyle] || 'icontains';
- },
-
- val: function (value) {
- if (typeof value !== 'undefined') {
- this.$element.val(value);
- this.render();
-
- return this.$element;
- } else {
- return this.$element.val();
- }
- },
-
- changeAll: function (status) {
- if (!this.multiple) return;
- if (typeof status === 'undefined') status = true;
-
- this.findLis();
-
- var $options = this.$element.find('option'),
- $lisVisible = this.$lis.not('.divider, .dropdown-header, .disabled, .hidden'),
- lisVisLen = $lisVisible.length,
- selectedOptions = [];
-
- if (status) {
- if ($lisVisible.filter('.selected').length === $lisVisible.length) return;
- } else {
- if ($lisVisible.filter('.selected').length === 0) return;
- }
-
- $lisVisible.toggleClass('selected', status);
-
- for (var i = 0; i < lisVisLen; i++) {
- var origIndex = $lisVisible[i].getAttribute('data-original-index');
- selectedOptions[selectedOptions.length] = $options.eq(origIndex)[0];
- }
-
- $(selectedOptions).prop('selected', status);
-
- this.render(false);
-
- this.togglePlaceholder();
-
- this.$element
- .triggerNative('change');
- },
-
- selectAll: function () {
- return this.changeAll(true);
- },
-
- deselectAll: function () {
- return this.changeAll(false);
- },
-
- toggle: function (e) {
- e = e || window.event;
-
- if (e) e.stopPropagation();
-
- this.$button.trigger('click');
- },
-
- keydown: function (e) {
- var $this = $(this),
- $parent = $this.is('input') ? $this.parent().parent() : $this.parent(),
- $items,
- that = $parent.data('this'),
- index,
- next,
- first,
- last,
- prev,
- nextPrev,
- prevIndex,
- isActive,
- selector = ':not(.disabled, .hidden, .dropdown-header, .divider)',
- keyCodeMap = {
- 32: ' ',
- 48: '0',
- 49: '1',
- 50: '2',
- 51: '3',
- 52: '4',
- 53: '5',
- 54: '6',
- 55: '7',
- 56: '8',
- 57: '9',
- 59: ';',
- 65: 'a',
- 66: 'b',
- 67: 'c',
- 68: 'd',
- 69: 'e',
- 70: 'f',
- 71: 'g',
- 72: 'h',
- 73: 'i',
- 74: 'j',
- 75: 'k',
- 76: 'l',
- 77: 'm',
- 78: 'n',
- 79: 'o',
- 80: 'p',
- 81: 'q',
- 82: 'r',
- 83: 's',
- 84: 't',
- 85: 'u',
- 86: 'v',
- 87: 'w',
- 88: 'x',
- 89: 'y',
- 90: 'z',
- 96: '0',
- 97: '1',
- 98: '2',
- 99: '3',
- 100: '4',
- 101: '5',
- 102: '6',
- 103: '7',
- 104: '8',
- 105: '9'
- };
-
- if (that.options.liveSearch) $parent = $this.parent().parent();
-
- if (that.options.container) $parent = that.$menu;
-
- $items = $('[role="listbox"] li', $parent);
-
- isActive = that.$newElement.hasClass('open');
-
- if (!isActive && (e.keyCode >= 48 && e.keyCode <= 57 || e.keyCode >= 96 && e.keyCode <= 105 || e.keyCode >= 65 && e.keyCode <= 90)) {
- if (!that.options.container) {
- that.setSize();
- that.$menu.parent().addClass('open');
- isActive = true;
- } else {
- that.$button.trigger('click');
- }
- that.$searchbox.focus();
- return;
- }
-
- if (that.options.liveSearch) {
- if (/(^9$|27)/.test(e.keyCode.toString(10)) && isActive) {
- e.preventDefault();
- e.stopPropagation();
- that.$button.click().focus();
- }
- // $items contains li elements when liveSearch is enabled
- $items = $('[role="listbox"] li' + selector, $parent);
- if (!$this.val() && !/(38|40)/.test(e.keyCode.toString(10))) {
- if ($items.filter('.active').length === 0) {
- $items = that.$menuInner.find('li');
- if (that.options.liveSearchNormalize) {
- $items = $items.filter(':a' + that._searchStyle() + '(' + normalizeToBase(keyCodeMap[e.keyCode]) + ')');
- } else {
- $items = $items.filter(':' + that._searchStyle() + '(' + keyCodeMap[e.keyCode] + ')');
- }
- }
- }
- }
-
- if (!$items.length) return;
-
- if (/(38|40)/.test(e.keyCode.toString(10))) {
- index = $items.index($items.find('a').filter(':focus').parent());
- first = $items.filter(selector).first().index();
- last = $items.filter(selector).last().index();
- next = $items.eq(index).nextAll(selector).eq(0).index();
- prev = $items.eq(index).prevAll(selector).eq(0).index();
- nextPrev = $items.eq(next).prevAll(selector).eq(0).index();
-
- if (that.options.liveSearch) {
- $items.each(function (i) {
- if (!$(this).hasClass('disabled')) {
- $(this).data('index', i);
- }
- });
- index = $items.index($items.filter('.active'));
- first = $items.first().data('index');
- last = $items.last().data('index');
- next = $items.eq(index).nextAll().eq(0).data('index');
- prev = $items.eq(index).prevAll().eq(0).data('index');
- nextPrev = $items.eq(next).prevAll().eq(0).data('index');
- }
-
- prevIndex = $this.data('prevIndex');
-
- if (e.keyCode == 38) {
- if (that.options.liveSearch) index--;
- if (index != nextPrev && index > prev) index = prev;
- if (index < first) index = first;
- if (index == prevIndex) index = last;
- } else if (e.keyCode == 40) {
- if (that.options.liveSearch) index++;
- if (index == -1) index = 0;
- if (index != nextPrev && index < next) index = next;
- if (index > last) index = last;
- if (index == prevIndex) index = first;
- }
-
- $this.data('prevIndex', index);
-
- if (!that.options.liveSearch) {
- $items.eq(index).children('a').focus();
- } else {
- e.preventDefault();
- if (!$this.hasClass('dropdown-toggle')) {
- $items.removeClass('active').eq(index).addClass('active').children('a').focus();
- $this.focus();
- }
- }
-
- } else if (!$this.is('input')) {
- var keyIndex = [],
- count,
- prevKey;
-
- $items.each(function () {
- if (!$(this).hasClass('disabled')) {
- if ($.trim($(this).children('a').text().toLowerCase()).substring(0, 1) == keyCodeMap[e.keyCode]) {
- keyIndex.push($(this).index());
- }
- }
- });
-
- count = $(document).data('keycount');
- count++;
- $(document).data('keycount', count);
-
- prevKey = $.trim($(':focus').text().toLowerCase()).substring(0, 1);
-
- if (prevKey != keyCodeMap[e.keyCode]) {
- count = 1;
- $(document).data('keycount', count);
- } else if (count >= keyIndex.length) {
- $(document).data('keycount', 0);
- if (count > keyIndex.length) count = 1;
- }
-
- $items.eq(keyIndex[count - 1]).children('a').focus();
- }
-
- // Select focused option if "Enter", "Spacebar" or "Tab" (when selectOnTab is true) are pressed inside the menu.
- if ((/(13|32)/.test(e.keyCode.toString(10)) || (/(^9$)/.test(e.keyCode.toString(10)) && that.options.selectOnTab)) && isActive) {
- if (!/(32)/.test(e.keyCode.toString(10))) e.preventDefault();
- if (!that.options.liveSearch) {
- var elem = $(':focus');
- elem.click();
- // Bring back focus for multiselects
- elem.focus();
- // Prevent screen from scrolling if the user hit the spacebar
- e.preventDefault();
- // Fixes spacebar selection of dropdown items in FF & IE
- $(document).data('spaceSelect', true);
- } else if (!/(32)/.test(e.keyCode.toString(10))) {
- that.$menuInner.find('.active a').click();
- $this.focus();
- }
- $(document).data('keycount', 0);
- }
-
- if ((/(^9$|27)/.test(e.keyCode.toString(10)) && isActive && (that.multiple || that.options.liveSearch)) || (/(27)/.test(e.keyCode.toString(10)) && !isActive)) {
- that.$menu.parent().removeClass('open');
- if (that.options.container) that.$newElement.removeClass('open');
- that.$button.focus();
- }
- },
-
- mobile: function () {
- this.$element.addClass('mobile-device');
- },
-
- refresh: function () {
- this.$lis = null;
- this.liObj = {};
- this.reloadLi();
- this.render();
- this.checkDisabled();
- this.liHeight(true);
- this.setStyle();
- this.setWidth();
- if (this.$lis) this.$searchbox.trigger('propertychange');
-
- this.$element.trigger('refreshed.bs.select');
- },
-
- hide: function () {
- this.$newElement.hide();
- },
-
- show: function () {
- this.$newElement.show();
- },
-
- remove: function () {
- this.$newElement.remove();
- this.$element.remove();
- },
-
- destroy: function () {
- this.$newElement.before(this.$element).remove();
-
- if (this.$bsContainer) {
- this.$bsContainer.remove();
- } else {
- this.$menu.remove();
- }
-
- this.$element
- .off('.bs.select')
- .removeData('selectpicker')
- .removeClass('bs-select-hidden selectpicker');
- }
- };
-
- // SELECTPICKER PLUGIN DEFINITION
- // ==============================
- function Plugin(option, event) {
- // get the args of the outer function..
- var args = arguments;
- // The arguments of the function are explicitly re-defined from the argument list, because the shift causes them
- // to get lost/corrupted in android 2.3 and IE9 #715 #775
- var _option = option,
- _event = event;
- [].shift.apply(args);
-
- var value;
- var chain = this.each(function () {
- var $this = $(this);
- if ($this.is('select')) {
- var data = $this.data('selectpicker'),
- options = typeof _option == 'object' && _option;
-
- if (!data) {
- var config = $.extend({}, Selectpicker.DEFAULTS, $.fn.selectpicker.defaults || {}, $this.data(), options);
- config.template = $.extend({}, Selectpicker.DEFAULTS.template, ($.fn.selectpicker.defaults ? $.fn.selectpicker.defaults.template : {}), $this.data().template, options.template);
- $this.data('selectpicker', (data = new Selectpicker(this, config, _event)));
- } else if (options) {
- for (var i in options) {
- if (options.hasOwnProperty(i)) {
- data.options[i] = options[i];
- }
- }
- }
-
- if (typeof _option == 'string') {
- if (data[_option] instanceof Function) {
- value = data[_option].apply(data, args);
- } else {
- value = data.options[_option];
- }
- }
- }
- });
-
- if (typeof value !== 'undefined') {
- //noinspection JSUnusedAssignment
- return value;
- } else {
- return chain;
- }
- }
-
- var old = $.fn.selectpicker;
- $.fn.selectpicker = Plugin;
- $.fn.selectpicker.Constructor = Selectpicker;
-
- // SELECTPICKER NO CONFLICT
- // ========================
- $.fn.selectpicker.noConflict = function () {
- $.fn.selectpicker = old;
- return this;
- };
-
- $(document)
- .data('keycount', 0)
- .on('keydown.bs.select', '.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="listbox"], .bs-searchbox input', Selectpicker.prototype.keydown)
- .on('focusin.modal', '.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="listbox"], .bs-searchbox input', function (e) {
- e.stopPropagation();
- });
-
- // SELECTPICKER DATA-API
- // =====================
- $(window).on('load.bs.select.data-api', function () {
- $('.selectpicker').each(function () {
- var $selectpicker = $(this);
- Plugin.call($selectpicker, $selectpicker.data());
- })
- });
-})(jQuery);
-
-
-}));
diff --git a/Bootstrap.Admin/Content/js/bootstrap-select.js.map b/Bootstrap.Admin/Content/js/bootstrap-select.js.map
deleted file mode 100644
index a513f515..00000000
--- a/Bootstrap.Admin/Content/js/bootstrap-select.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["bootstrap-select.js"],"names":["root","factory","define","amd","a0","exports","module","require","jQuery","this","$","normalizeToBase","text","rExps","re","ch","each","replace","htmlEscape","html","escapeMap","&","<",">","\"","'","`","source","Object","keys","join","testRegexp","RegExp","replaceRegexp","string","test","match","Plugin","option","event","args","arguments","_option","_event","shift","apply","value","chain","$this","is","data","options","i","hasOwnProperty","config","extend","Selectpicker","DEFAULTS","fn","selectpicker","defaults","template","Function","String","prototype","includes","toString","defineProperty","object","$defineProperty","result","error","indexOf","search","TypeError","call","stringLength","length","searchString","searchLength","position","undefined","pos","Number","start","Math","min","max","configurable","writable","startsWith","index","charCodeAt","o","k","r","push","valHooks","useDefault","_set","select","set","elem","changed_arguments","triggerNative","eventName","el","dispatchEvent","Event","bubbles","document","createEvent","initEvent","fireEvent","createEventObject","eventType","trigger","expr","pseudos","icontains","obj","meta","$obj","haystack","toUpperCase","ibegins","aicontains","aibegins","element","e","stopPropagation","preventDefault","$element","$newElement","$button","$menu","$lis","title","attr","val","render","refresh","setStyle","selectAll","deselectAll","destroy","remove","show","hide","init","VERSION","noneSelectedText","noneResultsText","countSelectedText","numSelected","numTotal","maxOptionsText","numAll","numGroup","selectAllText","deselectAllText","doneButton","doneButtonText","multipleSeparator","styleBase","style","size","selectedTextFormat","width","container","hideDisabled","showSubtext","showIcon","showContent","dropupAuto","header","liveSearch","liveSearchPlaceholder","liveSearchNormalize","liveSearchStyle","actionsBox","iconBase","tickIcon","showTick","caret","maxOptions","mobile","selectOnTab","dropdownAlignRight","constructor","that","id","addClass","liObj","multiple","prop","autofocus","createView","after","appendTo","children","$menuInner","$searchbox","find","removeClass","click","focus","checkDisabled","clickListener","liveSearchListener","setWidth","selectPosition","on","hide.bs.dropdown","hidden.bs.dropdown","show.bs.dropdown","shown.bs.dropdown","hasAttribute","focus.bs.select","off","shown.bs.select","rendered.bs.select","validity","valid","setTimeout","createDropdown","inputGroup","parent","hasClass","searchbox","actionsbox","donebutton","drop","$drop","li","createLi","innerHTML","reloadLi","destroyLi","_li","optID","titleOption","createElement","liIndex","generateLI","content","classes","optgroup","generateA","inline","tokens","className","appendChild","createTextNode","insertBefore","firstChild","$opt","selectedIndex","selected","optionClass","cssText","subtext","icon","$parent","isOptgroup","tagName","isOptgroupDisabled","disabled","isDisabled","$options","filter","optGroupClass","label","labelSubtext","labelIcon","showDivider","previousElementSibling","$prev","prevAll","optGroupDistance","d","prevOption","eq","findLis","updateLi","notDisabled","setDisabled","parentNode","setSelected","togglePlaceholder","tabIndex","selectedItems","map","toArray","split","totalCount","not","tr8nText","trim","status","buttonClass","liHeight","sizeInfo","newElement","menu","menuInner","divider","a","cloneNode","actions","input","body","offsetHeight","headerHeight","searchHeight","actionsHeight","doneButtonHeight","dividerHeight","outerHeight","menuStyle","getComputedStyle","menuPadding","vert","parseInt","paddingTop","css","paddingBottom","borderTopWidth","borderBottomWidth","horiz","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","menuExtras","marginTop","marginBottom","marginLeft","marginRight","removeChild","setSize","menuHeight","menuWidth","getHeight","getWidth","selectOffsetTop","selectOffsetBot","selectOffsetLeft","selectOffsetRight","$window","window","selectHeight","selectWidth","offsetWidth","divHeight","getPos","containerPos","offset","$container","top","left","scrollTop","height","scrollLeft","getSize","minHeight","include","classList","contains","lis","getElementsByTagName","lisVisible","Array","optGroup","toggleClass","max-height","overflow","min-height","overflow-y","optIndex","slice","last","divLength","$selectClone","clone","$selectClone2","ulWidth","outerWidth","btnWidth","$bsContainer","actualHeight","getPlacement","append","detach","removeAttr","$document","keyCode","offsetTop","clickedIndex","prevValue","prevIndex","triggerChange","$option","state","$optgroup","maxOptionsGrp","blur","maxReached","maxReachedGrp","optgroupID","maxOptionsArr","maxTxt","maxTxtGrp","$notify","delay","fadeOut","currentTarget","target","change","$no_results","$searchBase","_searchStyle","$lisVisible","first","styles","begins","changeAll","lisVisLen","selectedOptions","origIndex","getAttribute","toggle","keydown","$items","next","prev","nextPrev","isActive","selector","keyCodeMap","32","48","49","50","51","52","53","54","55","56","57","59","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","96","97","98","99","100","101","102","103","104","105","nextAll","count","prevKey","keyIndex","toLowerCase","substring","before","removeData","old","Constructor","noConflict","$selectpicker"],"mappings":"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","file":"bootstrap-select.min.js"}
\ No newline at end of file
diff --git a/Bootstrap.Admin/Content/js/bootstrap-select.min.js b/Bootstrap.Admin/Content/js/bootstrap-select.min.js
deleted file mode 100644
index f3e67b42..00000000
--- a/Bootstrap.Admin/Content/js/bootstrap-select.min.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/*!
- * Bootstrap-select v1.11.2 (http://silviomoreto.github.io/bootstrap-select)
- *
- * Copyright 2013-2016 bootstrap-select
- * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
- */
-!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){"use strict";function b(b){var c=[{re:/[\xC0-\xC6]/g,ch:"A"},{re:/[\xE0-\xE6]/g,ch:"a"},{re:/[\xC8-\xCB]/g,ch:"E"},{re:/[\xE8-\xEB]/g,ch:"e"},{re:/[\xCC-\xCF]/g,ch:"I"},{re:/[\xEC-\xEF]/g,ch:"i"},{re:/[\xD2-\xD6]/g,ch:"O"},{re:/[\xF2-\xF6]/g,ch:"o"},{re:/[\xD9-\xDC]/g,ch:"U"},{re:/[\xF9-\xFC]/g,ch:"u"},{re:/[\xC7-\xE7]/g,ch:"c"},{re:/[\xD1]/g,ch:"N"},{re:/[\xF1]/g,ch:"n"}];return a.each(c,function(){b=b.replace(this.re,this.ch)}),b}function c(a){var b={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},c="(?:"+Object.keys(b).join("|")+")",d=new RegExp(c),e=new RegExp(c,"g"),f=null==a?"":""+a;return d.test(f)?f.replace(e,function(a){return b[a]}):f}function d(b,c){var d=arguments,e=b,f=c;[].shift.apply(d);var h,i=this.each(function(){var b=a(this);if(b.is("select")){var c=b.data("selectpicker"),i="object"==typeof e&&e;if(c){if(i)for(var j in i)i.hasOwnProperty(j)&&(c.options[j]=i[j])}else{var k=a.extend({},g.DEFAULTS,a.fn.selectpicker.defaults||{},b.data(),i);k.template=a.extend({},g.DEFAULTS.template,a.fn.selectpicker.defaults?a.fn.selectpicker.defaults.template:{},b.data().template,i.template),b.data("selectpicker",c=new g(this,k,f))}"string"==typeof e&&(h=c[e]instanceof Function?c[e].apply(c,d):c.options[e])}});return"undefined"!=typeof h?h:i}String.prototype.includes||!function(){var a={}.toString,b=function(){try{var a={},b=Object.defineProperty,c=b(a,a,a)&&b}catch(d){}return c}(),c="".indexOf,d=function(b){if(null==this)throw new TypeError;var d=String(this);if(b&&"[object RegExp]"==a.call(b))throw new TypeError;var e=d.length,f=String(b),g=f.length,h=arguments.length>1?arguments[1]:void 0,i=h?Number(h):0;i!=i&&(i=0);var j=Math.min(Math.max(i,0),e);return g+j>e?!1:-1!=c.call(d,f,i)};b?b(String.prototype,"includes",{value:d,configurable:!0,writable:!0}):String.prototype.includes=d}(),String.prototype.startsWith||!function(){var a=function(){try{var a={},b=Object.defineProperty,c=b(a,a,a)&&b}catch(d){}return c}(),b={}.toString,c=function(a){if(null==this)throw new TypeError;var c=String(this);if(a&&"[object RegExp]"==b.call(a))throw new TypeError;var d=c.length,e=String(a),f=e.length,g=arguments.length>1?arguments[1]:void 0,h=g?Number(g):0;h!=h&&(h=0);var i=Math.min(Math.max(h,0),d);if(f+i>d)return!1;for(var j=-1;++j'},maxOptions:!1,mobile:!1,selectOnTab:!1,dropdownAlignRight:!1},g.prototype={constructor:g,init:function(){var b=this,c=this.$element.attr("id");this.$element.addClass("bs-select-hidden"),this.liObj={},this.multiple=this.$element.prop("multiple"),this.autofocus=this.$element.prop("autofocus"),this.$newElement=this.createView(),this.$element.after(this.$newElement).appendTo(this.$newElement),this.$button=this.$newElement.children("button"),this.$menu=this.$newElement.children(".dropdown-menu"),this.$menuInner=this.$menu.children(".inner"),this.$searchbox=this.$menu.find("input"),this.$element.removeClass("bs-select-hidden"),this.options.dropdownAlignRight===!0&&this.$menu.addClass("dropdown-menu-right"),"undefined"!=typeof c&&(this.$button.attr("data-id",c),a('label[for="'+c+'"]').click(function(a){a.preventDefault(),b.$button.focus()})),this.checkDisabled(),this.clickListener(),this.options.liveSearch&&this.liveSearchListener(),this.render(),this.setStyle(),this.setWidth(),this.options.container&&this.selectPosition(),this.$menu.data("this",this),this.$newElement.data("this",this),this.options.mobile&&this.mobile(),this.$newElement.on({"hide.bs.dropdown":function(a){b.$menuInner.attr("aria-expanded",!1),b.$element.trigger("hide.bs.select",a)},"hidden.bs.dropdown":function(a){b.$element.trigger("hidden.bs.select",a)},"show.bs.dropdown":function(a){b.$menuInner.attr("aria-expanded",!0),b.$element.trigger("show.bs.select",a)},"shown.bs.dropdown":function(a){b.$element.trigger("shown.bs.select",a)}}),b.$element[0].hasAttribute("required")&&this.$element.on("invalid",function(){b.$button.addClass("bs-invalid").focus(),b.$element.on({"focus.bs.select":function(){b.$button.focus(),b.$element.off("focus.bs.select")},"shown.bs.select":function(){b.$element.val(b.$element.val()).off("shown.bs.select")},"rendered.bs.select":function(){this.validity.valid&&b.$button.removeClass("bs-invalid"),b.$element.off("rendered.bs.select")}})}),setTimeout(function(){b.$element.trigger("loaded.bs.select")})},createDropdown:function(){var b=this.multiple||this.options.showTick?" show-tick":"",d=this.$element.parent().hasClass("input-group")?" input-group-btn":"",e=this.autofocus?" autofocus":"",f=this.options.header?''+this.options.header+"
":"",g=this.options.liveSearch?'':"",h=this.multiple&&this.options.actionsBox?' ":"",i=this.multiple&&this.options.doneButton?'":"",j='";return a(j)},createView:function(){var a=this.createDropdown(),b=this.createLi();return a.find("ul")[0].innerHTML=b,a},reloadLi:function(){this.destroyLi();var a=this.createLi();this.$menuInner[0].innerHTML=a},destroyLi:function(){this.$menu.find("li").remove()},createLi:function(){var d=this,e=[],f=0,g=document.createElement("option"),h=-1,i=function(a,b,c,d){return""+a+""},j=function(a,e,f,g){return''+a+''};if(this.options.title&&!this.multiple&&(h--,!this.$element.find(".bs-title-option").length)){var k=this.$element[0];g.className="bs-title-option",g.appendChild(document.createTextNode(this.options.title)),g.value="",k.insertBefore(g,k.firstChild);var l=a(k.options[k.selectedIndex]);void 0===l.attr("selected")&&void 0===this.$element.data("selected")&&(g.selected=!0)}return this.$element.find("option").each(function(b){var c=a(this);if(h++,!c.hasClass("bs-title-option")){var g=this.className||"",k=this.style.cssText,l=c.data("content")?c.data("content"):c.html(),m=c.data("tokens")?c.data("tokens"):null,n="undefined"!=typeof c.data("subtext")?''+c.data("subtext")+"":"",o="undefined"!=typeof c.data("icon")?' ':"",p=c.parent(),q="OPTGROUP"===p[0].tagName,r=q&&p[0].disabled,s=this.disabled||r;if(""!==o&&s&&(o=""+o+""),d.options.hideDisabled&&(s&&!q||r))return void h--;if(c.data("content")||(l=o+''+l+n+""),q&&c.data("divider")!==!0){if(d.options.hideDisabled&&s){if(void 0===p.data("allOptionsDisabled")){var t=p.children();p.data("allOptionsDisabled",t.filter(":disabled").length===t.length)}if(p.data("allOptionsDisabled"))return void h--}var u=" "+p[0].className||"";if(0===c.index()){f+=1;var v=p[0].label,w="undefined"!=typeof p.data("subtext")?''+p.data("subtext")+"":"",x=p.data("icon")?' ':"";v=x+''+v+w+"",0!==b&&e.length>0&&(h++,e.push(i("",null,"divider",f+"div"))),h++,e.push(i(v,null,"dropdown-header"+u,f))}if(d.options.hideDisabled&&s)return void h--;e.push(i(j(l,"opt "+g+u,k,m),b,"",f))}else if(c.data("divider")===!0)e.push(i("",b,"divider"));else if(c.data("hidden")===!0)e.push(i(j(l,g,k,m),b,"hidden is-hidden"));else{var y=this.previousElementSibling&&"OPTGROUP"===this.previousElementSibling.tagName;if(!y&&d.options.hideDisabled)for(var z=a(this).prevAll(),A=0;AC;C++){var D=z[C];(D.disabled||a(D).data("hidden")===!0)&&B++}B===A&&(y=!0);break}y&&(h++,e.push(i("",null,"divider",f+"div"))),e.push(i(j(l,g,k,m),b))}d.liObj[b]=h}}),this.multiple||0!==this.$element.find("option:selected").length||this.options.title||this.$element.find("option").eq(0).prop("selected",!0).attr("selected","selected"),e.join("")},findLis:function(){return null==this.$lis&&(this.$lis=this.$menu.find("li")),this.$lis},render:function(b){var c,d=this;b!==!1&&this.$element.find("option").each(function(a){var b=d.findLis().eq(d.liObj[a]);d.setDisabled(a,this.disabled||"OPTGROUP"===this.parentNode.tagName&&this.parentNode.disabled,b),d.setSelected(a,this.selected,b)}),this.togglePlaceholder(),this.tabIndex();var e=this.$element.find("option").map(function(){if(this.selected){if(d.options.hideDisabled&&(this.disabled||"OPTGROUP"===this.parentNode.tagName&&this.parentNode.disabled))return;var b,c=a(this),e=c.data("icon")&&d.options.showIcon?' ':"";return b=d.options.showSubtext&&c.data("subtext")&&!d.multiple?' '+c.data("subtext")+"":"","undefined"!=typeof c.attr("title")?c.attr("title"):c.data("content")&&d.options.showContent?c.data("content"):e+c.html()+b}}).toArray(),f=this.multiple?e.join(this.options.multipleSeparator):e[0];if(this.multiple&&this.options.selectedTextFormat.indexOf("count")>-1){var g=this.options.selectedTextFormat.split(">");if(g.length>1&&e.length>g[1]||1==g.length&&e.length>=2){c=this.options.hideDisabled?", [disabled]":"";var h=this.$element.find("option").not('[data-divider="true"], [data-hidden="true"]'+c).length,i="function"==typeof this.options.countSelectedText?this.options.countSelectedText(e.length,h):this.options.countSelectedText;f=i.replace("{0}",e.length.toString()).replace("{1}",h.toString())}}void 0==this.options.title&&(this.options.title=this.$element.attr("title")),"static"==this.options.selectedTextFormat&&(f=this.options.title),f||(f="undefined"!=typeof this.options.title?this.options.title:this.options.noneSelectedText),this.$button.attr("title",a.trim(f.replace(/<[^>]*>?/g,""))),this.$button.children(".filter-option").html(f),this.$element.trigger("rendered.bs.select")},setStyle:function(a,b){this.$element.attr("class")&&this.$newElement.addClass(this.$element.attr("class").replace(/selectpicker|mobile-device|bs-select-hidden|validate\[.*\]/gi,""));var c=a?a:this.options.style;"add"==b?this.$button.addClass(c):"remove"==b?this.$button.removeClass(c):(this.$button.removeClass(this.options.style),this.$button.addClass(c))},liHeight:function(b){if(b||this.options.size!==!1&&!this.sizeInfo){var c=document.createElement("div"),d=document.createElement("div"),e=document.createElement("ul"),f=document.createElement("li"),g=document.createElement("li"),h=document.createElement("a"),i=document.createElement("span"),j=this.options.header&&this.$menu.find(".popover-title").length>0?this.$menu.find(".popover-title")[0].cloneNode(!0):null,k=this.options.liveSearch?document.createElement("div"):null,l=this.options.actionsBox&&this.multiple&&this.$menu.find(".bs-actionsbox").length>0?this.$menu.find(".bs-actionsbox")[0].cloneNode(!0):null,m=this.options.doneButton&&this.multiple&&this.$menu.find(".bs-donebutton").length>0?this.$menu.find(".bs-donebutton")[0].cloneNode(!0):null;if(i.className="text",c.className=this.$menu[0].parentNode.className+" open",d.className="dropdown-menu open",e.className="dropdown-menu inner",f.className="divider",i.appendChild(document.createTextNode("Inner text")),h.appendChild(i),g.appendChild(h),e.appendChild(g),e.appendChild(f),j&&d.appendChild(j),k){var n=document.createElement("span");k.className="bs-searchbox",n.className="form-control",k.appendChild(n),d.appendChild(k)}l&&d.appendChild(l),d.appendChild(e),m&&d.appendChild(m),c.appendChild(d),document.body.appendChild(c);var o=h.offsetHeight,p=j?j.offsetHeight:0,q=k?k.offsetHeight:0,r=l?l.offsetHeight:0,s=m?m.offsetHeight:0,t=a(f).outerHeight(!0),u="function"==typeof getComputedStyle?getComputedStyle(d):!1,v=u?null:a(d),w={vert:parseInt(u?u.paddingTop:v.css("paddingTop"))+parseInt(u?u.paddingBottom:v.css("paddingBottom"))+parseInt(u?u.borderTopWidth:v.css("borderTopWidth"))+parseInt(u?u.borderBottomWidth:v.css("borderBottomWidth")),horiz:parseInt(u?u.paddingLeft:v.css("paddingLeft"))+parseInt(u?u.paddingRight:v.css("paddingRight"))+parseInt(u?u.borderLeftWidth:v.css("borderLeftWidth"))+parseInt(u?u.borderRightWidth:v.css("borderRightWidth"))},x={vert:w.vert+parseInt(u?u.marginTop:v.css("marginTop"))+parseInt(u?u.marginBottom:v.css("marginBottom"))+2,horiz:w.horiz+parseInt(u?u.marginLeft:v.css("marginLeft"))+parseInt(u?u.marginRight:v.css("marginRight"))+2};document.body.removeChild(c),this.sizeInfo={liHeight:o,headerHeight:p,searchHeight:q,actionsHeight:r,doneButtonHeight:s,dividerHeight:t,menuPadding:w,menuExtras:x}}},setSize:function(){if(this.findLis(),this.liHeight(),this.options.header&&this.$menu.css("padding-top",0),this.options.size!==!1){var b,c,d,e,f,g,h,i,j=this,k=this.$menu,l=this.$menuInner,m=a(window),n=this.$newElement[0].offsetHeight,o=this.$newElement[0].offsetWidth,p=this.sizeInfo.liHeight,q=this.sizeInfo.headerHeight,r=this.sizeInfo.searchHeight,s=this.sizeInfo.actionsHeight,t=this.sizeInfo.doneButtonHeight,u=this.sizeInfo.dividerHeight,v=this.sizeInfo.menuPadding,w=this.sizeInfo.menuExtras,x=this.options.hideDisabled?".disabled":"",y=function(){var b,c=j.$newElement.offset(),d=a(j.options.container);j.options.container&&!d.is("body")?(b=d.offset(),b.top+=parseInt(d.css("borderTopWidth")),b.left+=parseInt(d.css("borderLeftWidth"))):b={top:0,left:0},f=c.top-b.top-m.scrollTop(),g=m.height()-f-n-b.top,h=c.left-b.left-m.scrollLeft(),i=m.width()-h-o-b.left};if(y(),"auto"===this.options.size){var z=function(){var m,n=function(b,c){return function(d){return c?d.classList?d.classList.contains(b):a(d).hasClass(b):!(d.classList?d.classList.contains(b):a(d).hasClass(b))}},u=j.$menuInner[0].getElementsByTagName("li"),x=Array.prototype.filter?Array.prototype.filter.call(u,n("hidden",!1)):j.$lis.not(".hidden"),z=Array.prototype.filter?Array.prototype.filter.call(x,n("dropdown-header",!0)):x.filter(".dropdown-header");y(),b=g-w.vert,c=i-w.horiz,j.options.container?(k.data("height")||k.data("height",k.height()),d=k.data("height"),k.data("width")||k.data("width",k.width()),e=k.data("width")):(d=k.height(),e=k.width()),j.options.dropupAuto&&j.$newElement.toggleClass("dropup",f>g&&b-w.verti&&c-w.horiz3?3*p+w.vert-2:0,k.css({"max-height":b+"px",overflow:"hidden","min-height":m+q+r+s+t+"px"}),l.css({"max-height":b-q-r-s-t-v.vert+"px","overflow-y":"auto","min-height":Math.max(m-v.vert,0)+"px"})};z(),this.$searchbox.off("input.getSize propertychange.getSize").on("input.getSize propertychange.getSize",z),m.off("resize.getSize scroll.getSize").on("resize.getSize scroll.getSize",z)}else if(this.options.size&&"auto"!=this.options.size&&this.$lis.not(x).length>this.options.size){var A=this.$lis.not(".divider").not(x).children().slice(0,this.options.size).last().parent().index(),B=this.$lis.slice(0,A+1).filter(".divider").length;b=p*this.options.size+B*u+v.vert,j.options.container?(k.data("height")||k.data("height",k.height()),d=k.data("height")):d=k.height(),j.options.dropupAuto&&this.$newElement.toggleClass("dropup",f>g&&b-w.vert');var b,c,d,e=this,f=a(this.options.container),g=function(a){e.$bsContainer.addClass(a.attr("class").replace(/form-control|fit-width/gi,"")).toggleClass("dropup",a.hasClass("dropup")),b=a.offset(),f.is("body")?c={top:0,left:0}:(c=f.offset(),c.top+=parseInt(f.css("borderTopWidth"))-f.scrollTop(),c.left+=parseInt(f.css("borderLeftWidth"))-f.scrollLeft()),d=a.hasClass("dropup")?0:a[0].offsetHeight,e.$bsContainer.css({top:b.top-c.top+d,left:b.left-c.left,width:a[0].offsetWidth})};this.$button.on("click",function(){var b=a(this);e.isDisabled()||(g(e.$newElement),e.$bsContainer.appendTo(e.options.container).toggleClass("open",!b.hasClass("open")).append(e.$menu))}),a(window).on("resize scroll",function(){g(e.$newElement)}),this.$element.on("hide.bs.select",function(){e.$menu.data("height",e.$menu.height()),e.$bsContainer.detach()})},setSelected:function(a,b,c){c||(this.togglePlaceholder(),c=this.findLis().eq(this.liObj[a])),c.toggleClass("selected",b).find("a").attr("aria-selected",b)},setDisabled:function(a,b,c){c||(c=this.findLis().eq(this.liObj[a])),b?c.addClass("disabled").children("a").attr("href","#").attr("tabindex",-1).attr("aria-disabled",!0):c.removeClass("disabled").children("a").removeAttr("href").attr("tabindex",0).attr("aria-disabled",!1)},isDisabled:function(){return this.$element[0].disabled},checkDisabled:function(){var a=this;this.isDisabled()?(this.$newElement.addClass("disabled"),this.$button.addClass("disabled").attr("tabindex",-1)):(this.$button.hasClass("disabled")&&(this.$newElement.removeClass("disabled"),this.$button.removeClass("disabled")),-1!=this.$button.attr("tabindex")||this.$element.data("tabindex")||this.$button.removeAttr("tabindex")),this.$button.click(function(){return!a.isDisabled()})},togglePlaceholder:function(){var a=this.$element.val();this.$button.toggleClass("bs-placeholder",null===a||""===a)},tabIndex:function(){this.$element.data("tabindex")!==this.$element.attr("tabindex")&&-98!==this.$element.attr("tabindex")&&"-98"!==this.$element.attr("tabindex")&&(this.$element.data("tabindex",this.$element.attr("tabindex")),this.$button.attr("tabindex",this.$element.data("tabindex"))),this.$element.attr("tabindex",-98)},clickListener:function(){var b=this,c=a(document);this.$newElement.on("touchstart.dropdown",".dropdown-menu",function(a){a.stopPropagation()}),c.data("spaceSelect",!1),this.$button.on("keyup",function(a){/(32)/.test(a.keyCode.toString(10))&&c.data("spaceSelect")&&(a.preventDefault(),c.data("spaceSelect",!1))}),this.$button.on("click",function(){b.setSize()}),this.$element.on("shown.bs.select",function(){if(b.options.liveSearch||b.multiple){if(!b.multiple){var a=b.liObj[b.$element[0].selectedIndex];if("number"!=typeof a||b.options.size===!1)return;var c=b.$lis.eq(a)[0].offsetTop-b.$menuInner[0].offsetTop;c=c-b.$menuInner[0].offsetHeight/2+b.sizeInfo.liHeight/2,b.$menuInner[0].scrollTop=c}}else b.$menuInner.find(".selected a").focus()}),this.$menuInner.on("click","li a",function(c){var d=a(this),e=d.parent().data("originalIndex"),g=b.$element.val(),h=b.$element.prop("selectedIndex"),i=!0;if(b.multiple&&1!==b.options.maxOptions&&c.stopPropagation(),c.preventDefault(),!b.isDisabled()&&!d.parent().hasClass("disabled")){var j=b.$element.find("option"),k=j.eq(e),l=k.prop("selected"),m=k.parent("optgroup"),n=b.options.maxOptions,o=m.data("maxOptions")||!1;if(b.multiple){if(k.prop("selected",!l),b.setSelected(e,!l),d.blur(),n!==!1||o!==!1){var p=n');t[2]&&(u=u.replace("{var}",t[2][n>1?0:1]),v=v.replace("{var}",t[2][o>1?0:1])),k.prop("selected",!1),b.$menu.append(w),n&&p&&(w.append(a(""+u+"
")),i=!1,b.$element.trigger("maxReached.bs.select")),o&&q&&(w.append(a(""+v+"
")),i=!1,b.$element.trigger("maxReachedGrp.bs.select")),setTimeout(function(){b.setSelected(e,!1)},10),w.delay(750).fadeOut(300,function(){a(this).remove()})}}}else j.prop("selected",!1),k.prop("selected",!0),b.$menuInner.find(".selected").removeClass("selected").find("a").attr("aria-selected",!1),b.setSelected(e,!0);!b.multiple||b.multiple&&1===b.options.maxOptions?b.$button.focus():b.options.liveSearch&&b.$searchbox.focus(),i&&(g!=b.$element.val()&&b.multiple||h!=b.$element.prop("selectedIndex")&&!b.multiple)&&(f=[e,k.prop("selected"),l],b.$element.triggerNative("change"))}}),this.$menu.on("click","li.disabled a, .popover-title, .popover-title :not(.close)",function(c){c.currentTarget==this&&(c.preventDefault(),c.stopPropagation(),b.options.liveSearch&&!a(c.target).hasClass("close")?b.$searchbox.focus():b.$button.focus())}),this.$menuInner.on("click",".divider, .dropdown-header",function(a){a.preventDefault(),a.stopPropagation(),b.options.liveSearch?b.$searchbox.focus():b.$button.focus()}),this.$menu.on("click",".popover-title .close",function(){b.$button.click()}),this.$searchbox.on("click",function(a){a.stopPropagation()}),this.$menu.on("click",".actions-btn",function(c){b.options.liveSearch?b.$searchbox.focus():b.$button.focus(),c.preventDefault(),c.stopPropagation(),a(this).hasClass("bs-select-all")?b.selectAll():b.deselectAll()}),this.$element.change(function(){b.render(!1),b.$element.trigger("changed.bs.select",f),f=null})},liveSearchListener:function(){var d=this,e=a('');this.$button.on("click.dropdown.data-api touchstart.dropdown.data-api",function(){d.$menuInner.find(".active").removeClass("active"),d.$searchbox.val()&&(d.$searchbox.val(""),d.$lis.not(".is-hidden").removeClass("hidden"),e.parent().length&&e.remove()),d.multiple||d.$menuInner.find(".selected").addClass("active"),setTimeout(function(){d.$searchbox.focus()},10)}),this.$searchbox.on("click.dropdown.data-api focus.dropdown.data-api touchend.dropdown.data-api",function(a){a.stopPropagation()}),this.$searchbox.on("input propertychange",function(){if(d.$searchbox.val()){var f=d.$lis.not(".is-hidden").removeClass("hidden").children("a");f=d.options.liveSearchNormalize?f.not(":a"+d._searchStyle()+'("'+b(d.$searchbox.val())+'")'):f.not(":"+d._searchStyle()+'("'+d.$searchbox.val()+'")'),f.parent().addClass("hidden"),d.$lis.filter(".dropdown-header").each(function(){var b=a(this),c=b.data("optgroup");0===d.$lis.filter("[data-optgroup="+c+"]").not(b).not(".hidden").length&&(b.addClass("hidden"),d.$lis.filter("[data-optgroup="+c+"div]").addClass("hidden"))});var g=d.$lis.not(".hidden");g.each(function(b){var c=a(this);c.hasClass("divider")&&(c.index()===g.first().index()||c.index()===g.last().index()||g.eq(b+1).hasClass("divider"))&&c.addClass("hidden")}),d.$lis.not(".hidden, .no-results").length?e.parent().length&&e.remove():(e.parent().length&&e.remove(),e.html(d.options.noneResultsText.replace("{0}",'"'+c(d.$searchbox.val())+'"')).show(),d.$menuInner.append(e))}else d.$lis.not(".is-hidden").removeClass("hidden"),e.parent().length&&e.remove();d.$lis.filter(".active").removeClass("active"),d.$searchbox.val()&&d.$lis.not(".hidden, .divider, .dropdown-header").eq(0).addClass("active").children("a").focus(),a(this).focus()})},_searchStyle:function(){var a={begins:"ibegins",startsWith:"ibegins"};return a[this.options.liveSearchStyle]||"icontains"},val:function(a){return"undefined"!=typeof a?(this.$element.val(a),this.render(),this.$element):this.$element.val()},changeAll:function(b){if(this.multiple){"undefined"==typeof b&&(b=!0),this.findLis();var c=this.$element.find("option"),d=this.$lis.not(".divider, .dropdown-header, .disabled, .hidden"),e=d.length,f=[];if(b){if(d.filter(".selected").length===d.length)return}else if(0===d.filter(".selected").length)return;d.toggleClass("selected",b);for(var g=0;e>g;g++){var h=d[g].getAttribute("data-original-index");f[f.length]=c.eq(h)[0]}a(f).prop("selected",b),this.render(!1),this.togglePlaceholder(),this.$element.triggerNative("change")}},selectAll:function(){return this.changeAll(!0)},deselectAll:function(){return this.changeAll(!1)},toggle:function(a){a=a||window.event,a&&a.stopPropagation(),this.$button.trigger("click")},keydown:function(c){var d,e,f,g,h,i,j,k,l,m=a(this),n=m.is("input")?m.parent().parent():m.parent(),o=n.data("this"),p=":not(.disabled, .hidden, .dropdown-header, .divider)",q={32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9"};if(o.options.liveSearch&&(n=m.parent().parent()),o.options.container&&(n=o.$menu),d=a('[role="listbox"] li',n),l=o.$newElement.hasClass("open"),!l&&(c.keyCode>=48&&c.keyCode<=57||c.keyCode>=96&&c.keyCode<=105||c.keyCode>=65&&c.keyCode<=90))return o.options.container?o.$button.trigger("click"):(o.setSize(),o.$menu.parent().addClass("open"),l=!0),void o.$searchbox.focus();if(o.options.liveSearch&&(/(^9$|27)/.test(c.keyCode.toString(10))&&l&&(c.preventDefault(),c.stopPropagation(),o.$button.click().focus()),d=a('[role="listbox"] li'+p,n),m.val()||/(38|40)/.test(c.keyCode.toString(10))||0===d.filter(".active").length&&(d=o.$menuInner.find("li"),d=o.options.liveSearchNormalize?d.filter(":a"+o._searchStyle()+"("+b(q[c.keyCode])+")"):d.filter(":"+o._searchStyle()+"("+q[c.keyCode]+")"))),d.length){if(/(38|40)/.test(c.keyCode.toString(10)))e=d.index(d.find("a").filter(":focus").parent()),g=d.filter(p).first().index(),h=d.filter(p).last().index(),f=d.eq(e).nextAll(p).eq(0).index(),i=d.eq(e).prevAll(p).eq(0).index(),j=d.eq(f).prevAll(p).eq(0).index(),o.options.liveSearch&&(d.each(function(b){a(this).hasClass("disabled")||a(this).data("index",b)}),e=d.index(d.filter(".active")),g=d.first().data("index"),h=d.last().data("index"),f=d.eq(e).nextAll().eq(0).data("index"),i=d.eq(e).prevAll().eq(0).data("index"),j=d.eq(f).prevAll().eq(0).data("index")),k=m.data("prevIndex"),38==c.keyCode?(o.options.liveSearch&&e--,e!=j&&e>i&&(e=i),g>e&&(e=g),e==k&&(e=h)):40==c.keyCode&&(o.options.liveSearch&&e++,-1==e&&(e=0),e!=j&&f>e&&(e=f),e>h&&(e=h),e==k&&(e=g)),m.data("prevIndex",e),o.options.liveSearch?(c.preventDefault(),m.hasClass("dropdown-toggle")||(d.removeClass("active").eq(e).addClass("active").children("a").focus(),m.focus())):d.eq(e).children("a").focus();else if(!m.is("input")){var r,s,t=[];d.each(function(){a(this).hasClass("disabled")||a.trim(a(this).children("a").text().toLowerCase()).substring(0,1)==q[c.keyCode]&&t.push(a(this).index())}),r=a(document).data("keycount"),r++,a(document).data("keycount",r),s=a.trim(a(":focus").text().toLowerCase()).substring(0,1),s!=q[c.keyCode]?(r=1,a(document).data("keycount",r)):r>=t.length&&(a(document).data("keycount",0),r>t.length&&(r=1)),d.eq(t[r-1]).children("a").focus()}if((/(13|32)/.test(c.keyCode.toString(10))||/(^9$)/.test(c.keyCode.toString(10))&&o.options.selectOnTab)&&l){
-if(/(32)/.test(c.keyCode.toString(10))||c.preventDefault(),o.options.liveSearch)/(32)/.test(c.keyCode.toString(10))||(o.$menuInner.find(".active a").click(),m.focus());else{var u=a(":focus");u.click(),u.focus(),c.preventDefault(),a(document).data("spaceSelect",!0)}a(document).data("keycount",0)}(/(^9$|27)/.test(c.keyCode.toString(10))&&l&&(o.multiple||o.options.liveSearch)||/(27)/.test(c.keyCode.toString(10))&&!l)&&(o.$menu.parent().removeClass("open"),o.options.container&&o.$newElement.removeClass("open"),o.$button.focus())}},mobile:function(){this.$element.addClass("mobile-device")},refresh:function(){this.$lis=null,this.liObj={},this.reloadLi(),this.render(),this.checkDisabled(),this.liHeight(!0),this.setStyle(),this.setWidth(),this.$lis&&this.$searchbox.trigger("propertychange"),this.$element.trigger("refreshed.bs.select")},hide:function(){this.$newElement.hide()},show:function(){this.$newElement.show()},remove:function(){this.$newElement.remove(),this.$element.remove()},destroy:function(){this.$newElement.before(this.$element).remove(),this.$bsContainer?this.$bsContainer.remove():this.$menu.remove(),this.$element.off(".bs.select").removeData("selectpicker").removeClass("bs-select-hidden selectpicker")}};var h=a.fn.selectpicker;a.fn.selectpicker=d,a.fn.selectpicker.Constructor=g,a.fn.selectpicker.noConflict=function(){return a.fn.selectpicker=h,this},a(document).data("keycount",0).on("keydown.bs.select",'.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="listbox"], .bs-searchbox input',g.prototype.keydown).on("focusin.modal",'.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="listbox"], .bs-searchbox input',function(a){a.stopPropagation()}),a(window).on("load.bs.select.data-api",function(){a(".selectpicker").each(function(){var b=a(this);d.call(b,b.data())})})}(a)});
-//# sourceMappingURL=bootstrap-select.js.map
\ No newline at end of file
diff --git a/Bootstrap.Admin/Content/js/defaults-zh_CN.js b/Bootstrap.Admin/Content/js/defaults-zh_CN.js
deleted file mode 100644
index eb1a0316..00000000
--- a/Bootstrap.Admin/Content/js/defaults-zh_CN.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*!
- * Bootstrap-select v1.11.2 (http://silviomoreto.github.io/bootstrap-select)
- *
- * Copyright 2013-2016 bootstrap-select
- * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
- */
-
-(function (root, factory) {
- if (typeof define === 'function' && define.amd) {
- // AMD. Register as an anonymous module unless amdModuleId is set
- define(["jquery"], function (a0) {
- return (factory(a0));
- });
- } else if (typeof exports === 'object') {
- // Node. Does not work with strict CommonJS, but
- // only CommonJS-like environments that support module.exports,
- // like Node.
- module.exports = factory(require("jquery"));
- } else {
- factory(jQuery);
- }
-}(this, function (jQuery) {
-
-(function ($) {
- $.fn.selectpicker.defaults = {
- noneSelectedText: '没有选中任何项',
- noneResultsText: '没有找到匹配项',
- countSelectedText: '选中{1}中的{0}项',
- maxOptionsText: ['超出限制 (最多选择{n}项)', '组选择超出限制(最多选择{n}组)'],
- multipleSeparator: ', '
- };
-})(jQuery);
-
-
-}));
diff --git a/Bootstrap.Admin/Content/js/defaults-zh_CN.min.js b/Bootstrap.Admin/Content/js/defaults-zh_CN.min.js
deleted file mode 100644
index 55f78280..00000000
--- a/Bootstrap.Admin/Content/js/defaults-zh_CN.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/*!
- * Bootstrap-select v1.11.2 (http://silviomoreto.github.io/bootstrap-select)
- *
- * Copyright 2013-2016 bootstrap-select
- * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
- */
-!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){a.fn.selectpicker.defaults={noneSelectedText:"没有选中任何项",noneResultsText:"没有找到匹配项",countSelectedText:"选中{1}中的{0}项",maxOptionsText:["超出限制 (最多选择{n}项)","组选择超出限制(最多选择{n}组)"],multipleSeparator:", "}}(a)});
\ No newline at end of file
diff --git a/Bootstrap.Admin/Content/js/longbow.dataentity.js b/Bootstrap.Admin/Content/js/longbow.dataentity.js
index c8303358..40c9313a 100644
--- a/Bootstrap.Admin/Content/js/longbow.dataentity.js
+++ b/Bootstrap.Admin/Content/js/longbow.dataentity.js
@@ -11,7 +11,7 @@
load: function (value) {
for (name in this.options.map) {
var ctl = $("#" + this.options.map[name]);
- if (ctl.hasClass('selectpicker')) ctl.selectpicker('val', value[name]);
+ if (ctl.hasClass('select')) ctl.selectval(value[name]);
else ctl.val(value[name]);
}
},
@@ -20,7 +20,7 @@
var ctl = $("#" + this.options.map[name]);
var dv = ctl.attr("data-default-val");
if (dv === undefined) dv = "";
- if (ctl.hasClass('selectpicker')) ctl.selectpicker('val', dv);
+ if (ctl.hasClass('select')) ctl.selectval(dv);
else ctl.val(dv);
}
},
@@ -28,9 +28,8 @@
var target = {};
for (name in this.options.map) {
var ctl = $("#" + this.options.map[name]);
- if (ctl.hasClass('selectpicker')) {
- target[name] = ctl.selectpicker('val');
- target[name + 'Name'] = ctl.parentsUntil('bootstrap-select').children('button[data-id="' + this.options.map[name] + '"]').attr('title');
+ if (ctl.hasClass('select')) {
+ target[name] = ctl.selectval();
}
else {
var dv = ctl.attr('data-default-val');
diff --git a/Bootstrap.Admin/Scripts/Dicts.js b/Bootstrap.Admin/Scripts/Dicts.js
index 460c2e95..ca264c43 100644
--- a/Bootstrap.Admin/Scripts/Dicts.js
+++ b/Bootstrap.Admin/Scripts/Dicts.js
@@ -16,7 +16,7 @@
$('table').smartTable({
url: Dicts.url,
sortName: 'Category',
- queryParams: function (params) { return $.extend(params, { category: $('#txt_dict_cate').val(), name: $("#txt_dict_name").val(), define: $("#txt_dict_define").val() }); },
+ queryParams: function (params) { return $.extend(params, { category: $('#txt_dict_cate').val(), name: $("#txt_dict_name").val(), define: $("#txt_dict_define").selectval() }); },
columns: [{ checkbox: true },
{ title: "Id", field: "ID", events: bsa.idEvents(), formatter: BootstrapAdmin.idFormatter },
{ title: "字典分项", field: "Category", sortable: true },
@@ -46,7 +46,7 @@
}
});
// select
- $('select').selectpicker();
+ $('.btn-select').select();
// autocomplete
$.bc({
diff --git a/Bootstrap.Admin/Scripts/Menus.js b/Bootstrap.Admin/Scripts/Menus.js
index 84099346..85a69492 100644
--- a/Bootstrap.Admin/Scripts/Menus.js
+++ b/Bootstrap.Admin/Scripts/Menus.js
@@ -15,6 +15,7 @@
var $nestMenuInput = $nestMenu.find('div.dd3-content');
var $parentMenuID = $('#parentId');
var $parentMenuName = $('#parentName');
+ var $category = $('#category');
$nestMenuInput.find('label:first').hide();
var bsa = new BootstrapAdmin({
@@ -101,7 +102,7 @@
$('table').smartTable({
url: Menu.url, //请求后台的URL(*)
sortName: 'Order',
- queryParams: function (params) { return $.extend(params, { parentName: $('#txt_parent_menus_name').val(), name: $("#txt_menus_name").val(), category: $('#sel_menus_category').val() }); }, //传递参数(*)
+ queryParams: function (params) { return $.extend(params, { parentName: $('#txt_parent_menus_name').val(), name: $("#txt_menus_name").val(), category: $('#sel_menus_category').selectval() }); }, //传递参数(*)
columns: [{ checkbox: true },
{ title: "Id", field: "ID", events: bsa.idEvents(), formatter: BootstrapAdmin.idFormatter },
{ title: "父级菜单", field: "ParentName", sortable: true },
@@ -180,13 +181,13 @@
$btnSubmitMenu.data('type', 'order');
$nestMenuInput.find('label:last').find('input').hide();
$nestMenu.find('li.dd-item').hide().remove('[data-id="0"]');
- $nestMenu.find('li[data-category="' + $('#category').selectpicker('val') + '"]').show();
+ $nestMenu.find('li[data-category="' + $category.selectval() + '"]').show();
// handler new menu
var did = $('#menuID').val();
if (did == "") did = 0;
if (did == 0) {
var menuName = $('#name').val();
- var menuCate = $('select').selectpicker('val');
+ var menuCate = $category.selectval();
if (menuName == "") menuName = "新建菜单-未命名";
$nestMenu.find('ol.dd-list:first').append($.format('', menuName, menuCate));
}
@@ -200,7 +201,7 @@
$btnSubmitMenu.data('type', 'parent');
$nestMenuInput.find('label:last').find('input').show();
$nestMenu.find('li.dd-item').hide().remove('[data-id="0"]');
- $nestMenu.find('li[data-category="' + $('#category').selectpicker('val') + '"]').show();
+ $nestMenu.find('li[data-category="' + $category.selectval() + '"]').show();
$dialogMenu.show().adjustDialog();
});
@@ -245,5 +246,5 @@
});
$nestMenu.nestable();
// select
- $('select').selectpicker();
+ $('.btn-select').select();
});
\ No newline at end of file
diff --git a/Bootstrap.Admin/Scripts/_references.js b/Bootstrap.Admin/Scripts/_references.js
index e0a1650b..e97ae6ce 100644
Binary files a/Bootstrap.Admin/Scripts/_references.js and b/Bootstrap.Admin/Scripts/_references.js differ
diff --git a/Bootstrap.Admin/Views/Admin/Dicts.cshtml b/Bootstrap.Admin/Views/Admin/Dicts.cshtml
index 7c9a691f..1fb8308c 100644
--- a/Bootstrap.Admin/Views/Admin/Dicts.cshtml
+++ b/Bootstrap.Admin/Views/Admin/Dicts.cshtml
@@ -26,11 +26,19 @@
@@ -69,10 +77,17 @@
diff --git a/Bootstrap.Admin/Views/Admin/Menus.cshtml b/Bootstrap.Admin/Views/Admin/Menus.cshtml
index d29e0d4d..b35073d4 100644
--- a/Bootstrap.Admin/Views/Admin/Menus.cshtml
+++ b/Bootstrap.Admin/Views/Admin/Menus.cshtml
@@ -31,11 +31,19 @@
@@ -104,21 +112,35 @@
-