!function(a){"use strict";var b=a.fn.bootstrapTable.utils.sprintf,c=function(b,c,e){if(b=a(b.get(b.length-1)),d(b,c)){b.append(a("<option></option>").attr("value",c).text(a("<div />").html(e).text()));var f=b.find("option:gt(0)");f.sort(function(b,c){return b=a(b).text().toLowerCase(),c=a(c).text().toLowerCase(),a.isNumeric(b)&&a.isNumeric(c)&&(b=parseFloat(b),c=parseFloat(c)),b>c?1:c>b?-1:0}),b.find("option:gt(0)").remove(),b.append(f)}},d=function(a,b){for(var c=a.get(a.length-1).options,d=0;d<c.length;d++)if(c[d].value===b.toString())return!1;return!0},e=function(a){a.$tableHeader.css("height","77px")},f=function(a){var b=a.$header;return a.options.height&&(b=a.$tableHeader),b},g=function(a){var b="select, input";return a.options.height&&(b="table select, table input"),b},h=function(b){var c=f(b),d=g(b);b.options.values=[],c.find(d).each(function(){b.options.values.push({field:a(this).parent().parent().parent().data("field"),value:a(this).val()})})},i=function(b){var c=null,d=[],e=f(b),h=g(b);b.options.values.length>0&&e.find(h).each(function(){c=a(this).parent().parent().parent().data("field"),d=a.grep(b.options.values,function(a){return a.field===c}),d.length>0&&a(this).val(d[0].value)})},j=function(d,e){var f,g,h=!1,i=0;a.each(d.columns,function(d,i){if(f="hidden",g=[],i.visible){if(i.filterControl)switch(g.push('<div style="margin: 0px 2px 2px 2px;" class="filterControl">'),i.filterControl&&i.searchable&&(h=!0,f="visible"),i.filterControl.toLowerCase()){case"input":g.push(b('<input type="text" class="form-control" style="width: 100%; visibility: %s">',f));break;case"select":g.push(b('<select class="%s form-control" style="width: 100%; visibility: %s"></select>',i.field,f));break;case"datepicker":g.push(b('<input type="text" class="date-filter-control %s form-control" style="width: 100%; visibility: %s">',i.field,f))}else g.push('<div style="height: 34px;"></div>');if(a.each(e.children().children(),function(b,c){return c=a(c),c.data("field")===i.field?(c.find(".fht-cell").append(g.join("")),!1):void 0}),void 0!==i.filterData&&"column"!==i.filterData.toLowerCase()){var j=i.filterData.substring(0,3),k=i.filterData.substring(4,i.filterData.length),l=a("."+i.field);switch(c(l,"",""),j){case"url":a.ajax({url:k,dataType:"json",success:function(b){a.each(b,function(a,b){c(l,a,b)})}});break;case"var":var m=window[k];for(var n in m)c(l,n,m[n])}}}}),h?(e.off("keyup","input").on("keyup","input",function(a){clearTimeout(i),i=setTimeout(function(){d.onColumnSearch(a)},d.options.searchTimeOut)}),e.off("change","select").on("change","select",function(a){clearTimeout(i),i=setTimeout(function(){d.onColumnSearch(a)},d.options.searchTimeOut)}),e.off("mouseup","input").on("mouseup","input",function(b){var c=a(this),e=c.val();""!==e&&setTimeout(function(){var a=c.val();""===a&&(clearTimeout(i),i=setTimeout(function(){d.onColumnSearch(b)},d.options.searchTimeOut))},1)}),e.find(".date-filter-control").length>0&&a.each(d.columns,function(b,c){void 0!==c.filterControl&&"datepicker"===c.filterControl.toLowerCase()&&e.find(".date-filter-control."+c.field).datepicker(c.filterDatepickerOptions).on("changeDate",function(b){a(b.currentTarget).keyup()})})):e.find(".filterControl").hide()};a.extend(a.fn.bootstrapTable.defaults,{filterControl:!1,onColumnSearch:function(){return!1},filterShowClear:!1,values:[]}),a.extend(a.fn.bootstrapTable.COLUMN_DEFAULTS,{filterControl:void 0,filterData:void 0,filterDatepickerOptions:void 0,filterStrictSearch:!1}),a.extend(a.fn.bootstrapTable.Constructor.EVENTS,{"column-search.bs.table":"onColumnSearch"});var k=a.fn.bootstrapTable.Constructor,l=k.prototype.init,m=k.prototype.initToolbar,n=k.prototype.initHeader,o=k.prototype.initBody,p=k.prototype.initSearch;k.prototype.init=function(){if(this.options.filterControl){var a=this;this.options.values=[],this.$el.on("reset-view.bs.table",function(){a.options.height&&(a.$tableHeader.find("select").length>0||a.$tableHeader.find("input").length>0||j(a,a.$tableHeader))}).on("post-header.bs.table",function(){i(a)}).on("post-body.bs.table",function(){a.options.height&&e(a)}).on("column-switch.bs.table",function(){i(a)})}l.apply(this,Array.prototype.slice.apply(arguments))},k.prototype.initToolbar=function(){if(!this.showToolbar&&this.options.filterControl&&(this.showToolbar=this.options.filterControl),m.apply(this,Array.prototype.slice.apply(arguments)),this.options.filterControl&&this.options.filterShowClear){var b=this.$toolbar.find(">.btn-group"),c=b.find("div.export");c.length||(c=a(['<button class="btn btn-default " type="button">','<i class="glyphicon glyphicon-trash icon-share"></i> ',"</button>","</ul>"].join("")).appendTo(b),c.off("click").on("click",a.proxy(this.clearFilterControl,this)))}},k.prototype.initHeader=function(){n.apply(this,Array.prototype.slice.apply(arguments)),this.options.filterControl&&j(this,this.$header)},k.prototype.initBody=function(){o.apply(this,Array.prototype.slice.apply(arguments));for(var b=this,d=this.options.data,e=this.pageTo<this.options.data.length?this.options.data.length:this.pageTo,f=this.pageFrom-1;e>f;f++){var g=d[f];a.each(this.header.fields,function(d,e){var h=g[e],i=b.columns[a.fn.bootstrapTable.utils.getFieldIndex(b.columns,e)];if(h=a.fn.bootstrapTable.utils.calculateObjectValue(b.header,b.header.formatters[d],[h,g,f],h),!(i.checkbox&&i.radio||void 0===i.filterControl||"select"!==i.filterControl.toLowerCase()||!i.searchable||void 0!==i.filterData&&"column"!==i.filterData.toLowerCase())){var j=a("."+i.field);void 0!==j&&j.length>0&&(0===j.get(j.length-1).options.length&&c(j,"",""),c(j,h,h))}})}},k.prototype.initSearch=function(){p.apply(this,Array.prototype.slice.apply(arguments));var b=this,c=a.isEmptyObject(this.filterColumnsPartial)?null:this.filterColumnsPartial;this.data=c?a.grep(this.data,function(d,e){for(var f in c){var g=b.columns[a.fn.bootstrapTable.utils.getFieldIndex(b.columns,f)],h=c[f].toLowerCase(),i=d[f];if(i=a.fn.bootstrapTable.utils.calculateObjectValue(b.header,b.header.formatters[a.inArray(f,b.header.fields)],[i,d,e],i),g.filterStrictSearch){if(-1===a.inArray(f,b.header.fields)||"string"!=typeof i&&"number"!=typeof i||i.toString().toLowerCase()!==h.toString().toLowerCase())return!1}else if(-1===a.inArray(f,b.header.fields)||"string"!=typeof i&&"number"!=typeof i||-1===(i+"").toLowerCase().indexOf(h))return!1}return!0}):this.data},k.prototype.onColumnSearch=function(b){h(this);var c=a.trim(a(b.currentTarget).val()),d=a(b.currentTarget).parent().parent().parent().data("field");a.isEmptyObject(this.filterColumnsPartial)&&(this.filterColumnsPartial={}),c?this.filterColumnsPartial[d]=c:delete this.filterColumnsPartial[d],this.options.pageNumber=1,this.onSearch(b),this.updatePagination(),this.trigger("column-search",d,c)},k.prototype.clearFilterControl=function(){if(this.options.filterControl&&this.options.filterShowClear){a.each(this.options.values,function(a,b){b.value=""}),i(this);var b=f(this).find(g(this)),c=0;b.length>0&&(this.filterColumnsPartial={},clearTimeout(c),c=setTimeout(function(){a(b[0]).trigger("INPUT"===b[0].tagName?"keyup":"change")},this.options.searchTimeOut))}}}(jQuery);
|