phpservermon/static/plugin/bootstrap-multiselect/bootstrap-multiselect.min.js

1 line
18 KiB
JavaScript
Raw Normal View History

!function($){if(Array.prototype.forEach===null||Array.prototype.forEach===undefined){Array.prototype.forEach=function(func){var index;for(index=0;index<this.length;++index){func(this[index])}}}if(typeof ko!=="undefined"&&ko.bindingHandlers&&!ko.bindingHandlers.multiselect){ko.bindingHandlers.multiselect={init:function(element,valueAccessor,allBindingsAccessor,viewModel,bindingContext){var listOfSelectedItems=allBindingsAccessor().selectedOptions,config=ko.utils.unwrapObservable(valueAccessor());$(element).multiselect(config);if(isObservableArray(listOfSelectedItems)){$(element).multiselect("select",ko.utils.unwrapObservable(listOfSelectedItems));listOfSelectedItems.subscribe(function(changes){var addedArray=[],deletedArray=[];changes.forEach(function(change){switch(change.status){case"added":addedArray.push(change.value);break;case"deleted":deletedArray.push(change.value);break}});if(addedArray.length>0){$(element).multiselect("select",addedArray)}if(deletedArray.length>0){$(element).multiselect("deselect",deletedArray)}},null,"arrayChange")}},update:function(element,valueAccessor,allBindingsAccessor,viewModel,bindingContext){var listOfItems=allBindingsAccessor().options,ms=$(element).data("multiselect"),config=ko.utils.unwrapObservable(valueAccessor());if(isObservableArray(listOfItems)){listOfItems.subscribe(function(theArray){$(element).multiselect("rebuild")})}if(!ms){$(element).multiselect(config)}else{ms.updateOriginalOptions()}}}}function isObservableArray(obj){return ko.isObservable(obj)&&!(obj.destroyAll===undefined)}function Multiselect(select,options){this.options=this.mergeOptions(options);this.$select=$(select);this.originalOptions=this.$select.clone()[0].options;this.query="";this.searchTimeout=null;this.options.multiple=this.$select.attr("multiple")==="multiple";this.options.onChange=$.proxy(this.options.onChange,this);this.options.onDropdownShow=$.proxy(this.options.onDropdownShow,this);this.options.onDropdownHide=$.proxy(this.options.onDropdownHide,this);this.buildContainer();this.buildButton();this.buildDropdown();this.buildSelectAll();this.buildDropdownOptions();this.buildFilter();this.updateButtonText();this.updateSelectAll();this.$select.hide().after(this.$container)}Multiselect.prototype={defaults:{buttonText:function(options,select){if(options.length===0){return this.nonSelectedText+' <b class="caret"></b>'}else{if(options.length>this.numberDisplayed){return options.length+" "+this.nSelectedText+' <b class="caret"></b>'}else{var selected="";options.each(function(){var label=($(this).attr("label")!==undefined)?$(this).attr("label"):$(this).html();selected+=label+", "});return selected.substr(0,selected.length-2)+' <b class="caret"></b>'}}},buttonTitle:function(options,select){if(options.length===0){return this.nonSelectedText}else{var selected="";options.each(function(){selected+=$(this).text()+", "});return selected.substr(0,selected.length-2)}},label:function(element){return $(element).attr("label")||$(element).html()},onChange:function(option,checked){},onDropdownShow:function(event){},onDropdownHide:function(event){},buttonClass:"btn btn-default",dropRight:false,selectedClass:"active",buttonWidth:"auto",buttonContainer:'<div class="btn-group" />',maxHeight:false,checkboxName:"multiselect",includeSelectAllOption:false,includeSelectAllIfMoreThan:0,selectAllText:" Select all",selectAllValue:"multiselect-all",enableFiltering:false,enableCaseInsensitiveFiltering:false,filterPlaceholder:"Search",filterBehavior:"text",preventInputChangeEvent:false,nonSelectedText:"None selected",nSelectedText:"selected",numberDisplayed:3,templates:{button:'<button type="button" class="multiselect dropdown-toggle" data-toggle="dropdown"></button>',ul:'<ul class="multiselect-container dropdown-menu"></ul>',filter:'<li class="multiselect-item filter"><div class="input-group"><span class="input-group-addon"><i class="glyphicon glyphicon-search"></i></span><input class="form-control multiselect-search" type="text"></div></li>',li:'<li><a href="javascript:void(0);"><label></label></a></li>',divider:'<li class="multiselect-it