!function(a){"use strict";var b=a.fn.bootstrapTable.utils.sprintf,c=function(b,c,e){if(c=a.trim(c),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.valuesFilterControl=[],c.find(d).each(function(){b.options.valuesFilterControl.push({field:a(this).closest("[data-field]").data("field"),value:a(this).val()})})},i=function(b){var c=null,d=[],e=f(b),h=g(b);b.options.valuesFilterControl.length>0&&e.find(h).each(function(){c=a(this).closest("[data-field]").data("field"),d=a.grep(b.options.valuesFilterControl,function(a){return a.field===c}),d.length>0&&a(this).val(d[0].value)})},j=function(){var b=[],c=document.cookie.match(/(?:bs.table.)(\w*)/g);return c?(a.each(c,function(c,d){/./.test(d)&&(d=d.split(".").pop()),-1===a.inArray(d,b)&&b.push(d)}),b):void 0},k=function(b){for(var d=b.options.data,e=(b.pageTo<b.options.data.length?b.options.data.length:b.pageTo,function(a){return a.filterControl&&"select"===a.filterControl.toLowerCase()&&a.searchable}),f=function(a){return void 0===a.filterData||"column"===a.filterData.toLowerCase()},g=function(a){return a&&a.length>0},h=b.pageFrom-1;h<b.pageTo;h++)a.each(b.header.fields,function(i,j){var k=b.columns[a.fn.bootstrapTable.utils.getFieldIndex(b.columns,j)],l=a("."+k.field);if(e(k)&&f(k)&&g(l)){0===l.get(l.length-1).options.length&&c(l,"","");var m=d[h][j],n=a.fn.bootstrapTable.utils.calculateObjectValue(b.header,b.header.formatters[i],[m,d[h],h],m);c(l,m,n)}})},l=function(b,d){var e,f,g=!1,h=0;a.each(b.columns,function(h,i){if(e="hidden",f=[],i.visible){if(i.filterControl){f.push('<div style="margin: 0 2px 2px 2px;" class="filterControl">');var j=i.filterControl.toLowerCase();i.searchable&&b.options.filterTemplate[j]&&(g=!0,e="visible",f.push(b.options.filterTemplate[j](b,i.field,e)))}else f.push('<div style="height: 34px;"></div>');if(a.each(d.children().children(),function(b,c){return c=a(c),c.data("field")===i.field?(c.find(".fht-cell").append(f.join("")),!1):void 0}),void 0!==i.filterData&&"column"!==i.filterData.toLowerCase()){var k=i.filterData.substring(0,3),l=i.filterData.substring(4,i.filterData.length),m=a("."+i.field);switch(c(m,"",""),k){case"url":a.ajax({url:l,dataType:"json",success:function(b){a.each(b,function(a,b){c(m,a,b)})}});break;case"var":var n=window[l];for(var o in n)c(m,o,n[o])}}}}),g?(d.off("keyup","input").on("keyup","input",function(a){clearTimeout(h),h=setTimeout(function(){b.onColumnSearch(a)},b.options.searchTimeOut)}),d.off("change","select").on("change","select",function(a){clearTimeout(h),h=setTimeout(function(){b.onColumnSearch(a)},b.options.searchTimeOut)}),d.off("mouseup","input").on("mouseup","input",function(c){var d=a(this),e=d.val();""!==e&&setTimeout(function(){var a=d.val();""===a&&(clearTimeout(h),h=setTimeout(function(){b.onColumnSearch(c)},b.options.searchTimeOut))},1)}),d.find(".date-filter-control").length>0&&a.each(b.columns,function(b,c){void 0!==c.filterControl&&"datepicker"===c.filterControl.toLowerCase()&&d.find(".date-filter-control."+c.field).datepicker(c.filterDatepickerOptions).on("changeDate",function(b){a(b.currentTarget).keyup()})})):d.find(".filterControl").hide()},m=function(a){switch(a=void 0===a?"left":a.toLowerCase()){case"left":return"ltr";case"right":return"rtl";case"auto":return"auto";default:return"ltr"}};a.extend(a.fn.bootstrapTable.defaults,{filterControl:!1,onColumnSearch:function(){return!1},filterShowClear:!1,alignmentSelectControlOptions:void 0,valuesFilterControl:[],filterTemplate:{input:function(a,c,d){return b('<input type="text" class="form-control %s" style="width: 100%; visibility: %s">',c,d)},select:function(a,c,d){return b('<select class="%s form-control" style="width: 100%; visibility: %s" dir="%s"></select>',c,d,m(a.options.alignmentSelectControlOptions))},datepicker:function(a,c,d){return b('<input type="text" class="date-filter-control %s form-control" style="width: 100%; visibility: %s">',c,d)}}}),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"}),a.extend(a.fn.bootstrapTable.defaults.icons,{clear:"glyphicon-trash icon-clear"});var n=a.fn.bootstrapTable.Constructor,o=n.prototype.init,p=n.prototype.initToolbar,q=n.prototype.initHeader,r=n.prototype.initBody,s=n.prototype.initSearch;n.prototype.init=function(){if(this.options.filterControl){var a=this;this.options.valuesFilterControl=[],this.$el.on("reset-view.bs.table",function(){a.options.height&&(a.$tableHeader.find("select").length>0||a.$tableHeader.find("input").length>0||l(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)})}o.apply(this,Array.prototype.slice.apply(arguments))},a.extend(a.fn.bootstrapTable.locales,{formatClearFilters:function(){return"Clear Filters"}}),a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales),n.prototype.initToolbar=function(){if(!this.showToolbar&&this.options.filterControl&&(this.showToolbar=this.options.filterControl),p.apply(this,Array.prototype.slice.apply(arguments)),this.options.filterControl&&this.options.filterShowClear){var c=this.$toolbar.find(">.btn-group"),d=c.find("div.export");d.length||(d=a(['<button class="btn btn-default" ',b('type="button" title="%s">',this.options.formatClearFilters()),b('<i class="%s %s"></i> ',this.options.iconsPrefix,this.options.icons.clear),"</button>","</ul>"].join("")).appendTo(c),d.off("click").on("click",a.proxy(this.clearFilterControl,this)))}},n.prototype.initHeader=function(){q.apply(this,Array.prototype.slice.apply(arguments)),this.options.filterControl&&l(this,this.$header)},n.prototype.initBody=function(){r.apply(this,Array.prototype.slice.apply(arguments)),k(this)},n.prototype.initSearch=function(){if(s.apply(this,Array.prototype.slice.apply(arguments)),"server"!==!this.options.sidePagination){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(g&&g.searchFormatter&&(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}},n.prototype.onColumnSearch=function(b){h(this);var c=a.trim(a(b.currentTarget).val()),d=a(b.currentTarget).closest("[data-field]").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)},n.prototype.clearFilterControl=function(){if(this.options.filterControl&&this.options.filterShowClear){var c=this,d=j(),e=f(c),h=e.closest("table"),k=e.find(g(c)),l=c.$toolbar.find(".search input"),m=0;if(a.each(c.options.valuesFilterControl,function(a,b){b.value=""}),i(c),k.length>0&&(this.filterColumnsPartial={},a(k[0]).trigger("INPUT"===k[0].tagName?"keyup":"change")),l.length>0&&c.resetSearch(),c.options.sortName!==h.data("sortName")||c.options.sortOrder!==h.data("sortOrder")){var n=b(e.find('[data-field="%s"]',a(k[0]).closest("table").data("sortName")));c.onSort(h.data("sortName"),h.data("sortName")),a(n).find(".sortable").trigger("click")}clearTimeout(m),m=setTimeout(function(){d&&d.length>0&&a.each(d,function(a,b){c.deleteCookie(b)})},c.options.searchTimeOut)}}}(jQuery);
|