dynamic-table
Version:
Dynamic HTML grid
4 lines (3 loc) • 23.6 kB
JavaScript
/* dynamic-table - v0.0.0 - 2016-02-23
Copyright (c) 2016 Ross Basarevych; Licensed MIT */
!function(a,b,c,d){var e="dynamicTable",f=function(a,b){this.id=a.attr("id"),this.element=a,this.options={locale:null,row_id_column:null,mapper:null,sort_column:null,sort_dir:"asc",page_number:1,page_size:15,page_sizes:[15,30,50,100,0],table_class:"table table-striped table-hover table-condensed",loader_image:"img/loader.gif",strings:{DT_BANNER_LOADING:"Loading... Please wait",DT_BANNER_EMPTY:"Nothing found",DT_BANNER_ERROR:"Error loading table",DT_BUTTON_PAGE_SIZE:"Page size",DT_BUTTON_COLUMNS:"Columns",DT_BUTTON_REFRESH:"Refresh",DT_BUTTON_OK:"OK",DT_BUTTON_CLEAR:"Clear",DT_BUTTON_CANCEL:"Cancel",DT_TITLE_FILTER_WINDOW:"Filter",DT_LABEL_ALL_ENTRIES:"All",DT_LABEL_CURRENT_PAGE:"Current page",DT_LABEL_ALL_PAGES:"All pages",DT_LABEL_PAGE_OF_1:"Page",DT_LABEL_PAGE_OF_2:"of #",DT_LABEL_FILTER_LIKE:"Strings like",DT_LABEL_FILTER_EQUAL:"Values equal to",DT_LABEL_FILTER_BETWEEN_START:"Values greater than or equal to",DT_LABEL_FILTER_BETWEEN_END:"Values less than or equal to",DT_LABEL_FILTER_NULL:"Include rows with empty value in this column",DT_LABEL_TRUE:"True",DT_LABEL_FALSE:"False",DT_DATE_TIME_FORMAT:"YYYY-MM-DD HH:mm:ss"}},this.columns=[],this.rows=[],this.filters={},this.sortColumn=null,this.sortDir="asc",this.pageNumber=1,this.pageSize=15,this.totalPages=1,this.visibleColumns=0,this.init(b)};f.prototype={init:function(b){a.extend(this.options,b),this.sortColumn=this.options.sort_column,this.sortDir=this.options.sort_dir,this.pageNumber=this.options.page_number,this.pageSize=this.options.page_size,g(this);var c=this;a.ajax({dataType:"json",url:this.options.url,data:{query:"describe"},success:function(a){a.success===!0&&(c.columns=a.columns,h(c),c.refresh())},error:function(a){p(c,a.status)}})},refresh:function(b){var c=this;c.element.trigger("dt.loading"),c.enable(!1);var d={query:"data",filters:JSON.stringify(c.filters),sort_column:JSON.stringify(c.sortColumn),sort_dir:JSON.stringify(c.sortDir),page_number:JSON.stringify(c.pageNumber),page_size:JSON.stringify(c.pageSize)};"undefined"!=typeof b&&a.each(b,function(a,b){d[a]=JSON.stringify(b)});var e=this.element.find("tbody td.selector input:checked");a.ajax({dataType:"json",url:this.options.url,data:d,success:function(b){return b.success!==!0?void c.enable(!0):(c.sortColumn=b.sort_column,c.sortDir=b.sort_dir,c.pageNumber=b.page_number,c.pageSize=b.page_size,c.totalPages=b.total_pages,c.filters=b.filters,c.rows=b.rows,o(c),a.each(e,function(b,d){c.toggleSelected(a(d).val())}),c.enable(!0),void c.element.trigger("dt.loaded"))},error:function(a){p(c,a.status)}})},enable:function(b){var c=this;a.each(this.columns,function(a,d){l(c,a,b)}),m(c,!b),n(c,b)},setSize:function(a){this.refresh({page_size:a})},setPage:function(a){a=parseInt(a),1>a?a=1:a>this.totalPages&&(a=this.totalPages),this.refresh({page_number:a})},setFilters:function(a,b){var c=this.filters;c[a]=b,this.refresh({filters:c})},toggleSort:function(a){var b="asc";this.sortColumn==a&&(b="asc"==this.sortDir?"desc":"asc"),this.refresh({sort_column:a,sort_dir:b})},toggleColumn:function(a){var b=this.columns[a],c=this.columns[a].visible=!b.visible;c?this.visibleColumns++:this.visibleColumns--,this.element.find("thead th[data-column-id="+a+"]").css("display",c?"table-cell":"none"),this.element.find("tbody td[data-column-id="+a+"]").css("display",c?"table-cell":"none"),this.element.find("thead.empty td").prop("colspan",this.visibleColumns),this.element.find("tfoot td").prop("colspan",this.visibleColumns),this.element.find("tfoot a[data-column-id="+a+"] span.glyphicon").attr("class","glyphicon glyphicon-ok "+(c?"":"invisible"))},toggleSelected:function(a){var b=this.element.find("tbody tr[data-row-id="+a+"] td.selector input"),c=!b.prop("checked");b.prop("checked",c),c?(b.closest("tr").addClass("success"),this.element.trigger("dt.selected")):(b.closest("tr").removeClass("success"),this.element.trigger("dt.deselected"));var d=this.element.find("tbody.data td.selector input:checked");this.element.find('thead th.selector input[type="checkbox"]').prop("checked",d.length==this.rows.length),this.element.find("thead .all-selector-menu input").val(["page"])},getSelected:function(){var b=this.element.find("tbody.data td.selector input:checked"),c=this.element.find("thead .all-selector-menu input:checked").val();if(b.length==this.rows.length&&"all"==c)return"all";var d=[];return b.each(function(b,c){d.push(a(c).val())}),d}},a.fn[e]=function(a){var b=this.data(e);return b instanceof f?"undefined"!=typeof a&&b.init(a):(b=new f(this,a),this.data(e,b)),b};var g=function(b){b.element.empty().addClass("dynamic-table"),a("<table></table>").attr("class",b.options.table_class).css("display","none").appendTo(b.element),a("<div></div>").attr("class","overlay-back").appendTo(b.element),a("<div></div>").attr("class","overlay-loader").css("background-image","url("+b.options.loader_image+")").appendTo(b.element);var c=a("<div></div>");c.attr("class","table-loader").css("text-align","center").text(b.options.strings.DT_BANNER_LOADING).html(c.html()+'<br><img src="'+b.options.loader_image+'"><br>').appendTo(b.element);var d=a('<button type="button" class="btn btn-default error-reset-button"></button>');d.text(b.options.strings.DT_BUTTON_REFRESH),d.on("click",function(){b.init()});var e=a("<div></div>");e.attr("class","ajax-error").text(b.options.strings.DT_BANNER_ERROR).append("<br>").append(d).appendTo(b.element)},h=function(a){i(a),j(a),k(a)},i=function(b){var c=a("<thead></thead>"),d=a("<tr></tr>");if(d.appendTo(c),b.visibleColumns=0,null!=b.options.row_id_column){b.visibleColumns++;var e=a('<th class="selector"><div class="menu-wrapper"><input type="checkbox"></th>');e.appendTo(d).find('input[type="checkbox"]').prop("disabled",!0).on("change",function(){var c=b.element.find("tbody td.selector input");a(this).prop("checked")?(c.prop("checked",!0).closest("tr").addClass("success"),b.element.trigger("dt.selected"),b.element.find("thead .all-selector-menu input").val(["page"]),b.element.find("thead th.selector").addClass("bg-primary"),b.element.find("thead .all-selector-menu").show()):(c.prop("checked",!1).closest("tr").removeClass("success"),b.element.trigger("dt.deselected"),b.element.find("thead th.selector").removeClass("bg-primary"),b.element.find("thead .all-selector-menu").hide())}),e.find(".menu-wrapper").on("mouseenter",function(){b.element.find('thead th.selector input[type="checkbox"]').prop("checked")&&(b.element.find("thead th.selector").addClass("bg-primary"),b.element.find("thead .all-selector-menu").show())}).on("mouseleave",function(){b.element.find("thead th.selector").removeClass("bg-primary"),b.element.find("thead .all-selector-menu").hide()});var f=a('<div class="all-selector-menu bg-primary"></div>');a('<label><input type="radio" name="all-selector-menu" value="page"> '+b.options.strings.DT_LABEL_CURRENT_PAGE+"</label>").appendTo(f),a("<br>").appendTo(f),a('<label><input type="radio" name="all-selector-menu" value="all"> '+b.options.strings.DT_LABEL_ALL_PAGES+"</label>").appendTo(f),f.find("input[type=radio]").on("change",function(){b.element.trigger("dt.selected")}),f.appendTo(e.find(".menu-wrapper"))}a.each(b.columns,function(e,f){f.visible&&b.visibleColumns++;var g=a("<th></th>");if(g.attr("data-column-id",e).css("display",f.visible?"table-cell":"none").appendTo(d),a('<span class="text"></span>').text(f.title).appendTo(g),a('<a class="link"></a>').css("display","none").attr("href","javascript:void(0)").text(f.title).on("click",function(){b.toggleSort(e)}).appendTo(g),a('<span class="sort-asc glyphicon glyphicon-sort-by-attributes"></span>').css("display","none").appendTo(g),a('<span class="sort-desc glyphicon glyphicon-sort-by-attributes-alt"></span>').css("display","none").appendTo(g),0!=f.filters.length){a('<button class="filter btn btn-default btn-xs"></button>').css("display","none").html('<span class="glyphicon glyphicon-wrench"></span>').on("click",function(){var b=a(this).parent().find(".popover"),d=a(this).closest("th"),e=d.position(),f=c.position(),g=e.left,h=b.is(":visible");c.find(".popover").css("display","none"),e.left+b.width()>f.left+c.width()&&(g-=b.width()-d.width()),b.css("top",e.top+a(this).height()+15).css("left",g).css("display",h?"none":"block")}).appendTo(g);var h=a("<div></div>");h.attr("class","popover").appendTo(g),a("<h3></h3>").attr("class","popover-title").text(b.options.strings.DT_TITLE_FILTER_WINDOW).appendTo(h);var i=a("<div></div>");i.attr("class","popover-content").appendTo(h);var j=a('<form onsubmit="return false"></form>');if(j.attr("role","form").appendTo(i),-1!=f.filters.indexOf("like")){var k=a("<div></div>");k.attr("class","form-group").appendTo(j),a("<label></label>").text(b.options.strings.DT_LABEL_FILTER_LIKE+":").appendTo(k),a("<input></input>").attr("type","text").attr("class","form-control").attr("data-filter","like").appendTo(k)}if(-1!=f.filters.indexOf("equal"))if("boolean"==f.type){var k=a("<div></div>");k.attr("class","radio").appendTo(j);var l=a('<input type="radio">');l.attr("data-filter","equal-false").attr("name",b.id+"-"+e+"-equal").val(0);var m=a("<label></label>");m.html(l).html(m.html()+b.options.strings.DT_LABEL_FALSE).appendTo(k);var k=a("<div></div>");k.attr("class","radio").appendTo(j);var l=a('<input type="radio">');l.attr("data-filter","equal-true").attr("name",b.id+"-"+e+"-equal").val(1);var m=a("<label></label>");m.html(l).html(m.html()+b.options.strings.DT_LABEL_TRUE).appendTo(k)}else if("datetime"==f.type){var k=a("<div></div>");k.attr("class","form-group").appendTo(j),a("<label></label>").text(b.options.strings.DT_LABEL_FILTER_EQUAL+":").appendTo(k);var n=a("<div></div>");n.attr("class","input-group date").appendTo(k);var o=a('<input type="text">');o.attr("class","form-control").attr("data-filter","equal").appendTo(n);var p=a("<span></span>");p.attr("class","input-group-addon").html('<span class="glyphicon glyphicon-calendar"></span>').appendTo(n);var q=n.datetimepicker({locale:b.options.locale,format:b.options.strings.DT_DATE_TIME_FORMAT,timeZone:null})}else{var k=a("<div></div>");k.attr("class","form-group").appendTo(j),a("<label></label>").text(b.options.strings.DT_LABEL_FILTER_EQUAL+":").appendTo(k),a("<input></input>").attr("type","text").attr("class","form-control").attr("data-filter","equal").appendTo(k)}if(-1!=f.filters.indexOf("between"))if("datetime"==f.type){var k=a("<div></div>");k.attr("class","form-group").appendTo(j),a("<label></label>").text(b.options.strings.DT_LABEL_FILTER_BETWEEN_START+":").appendTo(k);var n=a("<div></div>");n.attr("class","input-group date").appendTo(k);var o=a('<input type="text">');o.attr("class","form-control").attr("data-filter","between-start").appendTo(n);var p=a("<span></span>");p.attr("class","input-group-addon").html('<span class="glyphicon glyphicon-calendar"></span>').appendTo(n);var r=n.datetimepicker({locale:b.options.locale,format:b.options.strings.DT_DATE_TIME_FORMAT,timeZone:null}),k=a("<div></div>");k.attr("class","form-group").appendTo(j),a("<label></label>").text(b.options.strings.DT_LABEL_FILTER_BETWEEN_END+":").appendTo(k);var n=a("<div></div>");n.attr("class","input-group date").appendTo(k);var o=a('<input type="text">');o.attr("class","form-control").attr("data-filter","between-end").appendTo(n);var p=a("<span></span>");p.attr("class","input-group-addon").html('<span class="glyphicon glyphicon-calendar"></span>').appendTo(n);var s=n.datetimepicker({locale:b.options.locale,format:b.options.strings.DT_DATE_TIME_FORMAT,timeZone:null})}else{var k=a("<div></div>");k.attr("class","form-group").appendTo(j),a("<label></label>").text(b.options.strings.DT_LABEL_FILTER_BETWEEN_START+":").appendTo(k),a("<input></input>").attr("type","text").attr("class","form-control").attr("data-filter","between-start").appendTo(k),a("<label></label>").text(b.options.strings.DT_LABEL_FILTER_BETWEEN_END+":").appendTo(k),a("<input></input>").attr("type","text").attr("class","form-control").attr("data-filter","between-end").appendTo(k)}if(-1!=f.filters.indexOf("null")){var k=a("<div></div>");k.attr("class","checkbox").appendTo(j),a("<label></label>").html('<input type="checkbox" data-filter="null">'+b.options.strings.DT_LABEL_FILTER_NULL).appendTo(k)}a("<button></button>").attr("type","submit").attr("class","btn btn-primary").text(b.options.strings.DT_BUTTON_OK).on("click",function(){h.css("display","none");var a={};if(-1!=f.filters.indexOf("like")){var c=j.find("input[data-filter=like]");c.val().trim().length>0&&(a.like=c.val())}if(-1!=f.filters.indexOf("equal"))if("boolean"==f.type){var d=j.find("input[data-filter=equal-true]"),g=j.find("input[data-filter=equal-false]");d.prop("checked")?a.equal=!0:g.prop("checked")&&(a.equal=!1)}else if("datetime"==f.type){var i=j.find("input[data-filter=equal]"),k=q.data("DateTimePicker").date();i.val().trim().length>0&&null!=k&&(a.equal=k.unix())}else{var i=j.find("input[data-filter=equal]");i.val().trim().length>0&&(a.equal=i.val())}if(-1!=f.filters.indexOf("between"))if("datetime"==f.type){var l=j.find("input[data-filter=between-start]"),m=r.data("DateTimePicker").date(),n=j.find("input[data-filter=between-end]"),o=s.data("DateTimePicker").date(),p=null;l.val().trim().length>0&&null!=m&&(p=m.unix());var t=null;n.val().trim().length>0&&null!=o&&(t=o.unix()),(null!=p||null!=t)&&(a.between=[p,t])}else{var u=j.find("input[data-filter=between-start]"),v=j.find("input[data-filter=between-end]");u=u.val().trim().length>0?u.val():null,v=v.val().trim().length>0?v.val():null,(null!=u||null!=v)&&(a.between=[u,v])}if(-1!=f.filters.indexOf("null")){var w=j.find("input[data-filter=null]");w.prop("checked")&&(a["null"]=!0)}b.setFilters(e,a)}).appendTo(j),a("<span> </span>").appendTo(j),a("<button></button>").attr("class","btn btn-default").text(b.options.strings.DT_BUTTON_CLEAR).on("click",function(){h.css("display","none"),b.setFilters(e,{})}).appendTo(j),a("<span> </span>").appendTo(j),a("<button></button>").attr("class","btn btn-default").text(b.options.strings.DT_BUTTON_CANCEL).on("click",function(){h.css("display","none")}).appendTo(j)}}),c.appendTo(b.element.find("table"));var g=b.element.find("thead th.selector").css("padding-left");b.element.find("thead .all-selector-menu").css("margin-left",-1*parseInt(g))},j=function(b){var c=a("<tbody></tbody>");c.attr("class","empty").attr("display","none");var d=a("<tr></tr>");d.appendTo(c);var e=a("<td></td>");e.attr("colspan",b.visibleColumns).appendTo(d);var f=a("<tbody></tbody>");f.attr("class","data").attr("display","none"),c.appendTo(b.element.find("table")),f.appendTo(b.element.find("table"))},k=function(b){var c=a("<tfoot></tfoot>"),d=a("<tr></tr>");d.appendTo(c);var e=a("<td></td>");e.attr("colspan",b.visibleColumns).appendTo(d);var f=a("<div></div>");f.attr("class","pull-right btn-toolbar").attr("role","toolbar").appendTo(e);var g=a("<div></div>");g.attr("class","btn-group").attr("role","group").appendTo(f),a("<button></button>").attr("class","btn btn-default").attr("data-action","first").html('<span class="glyphicon glyphicon-fast-backward"></span>').on("click",function(){b.setPage(1)}).appendTo(g),a("<button></button>").attr("class","btn btn-default").attr("data-action","previous").html('<span class="glyphicon glyphicon-step-backward"></span>').on("click",function(){b.setPage(b.pageNumber-1)}).appendTo(g);var g=a("<div></div>");g.attr("class","btn-group").attr("role","group").appendTo(f);var h=a("<div></div>");h.attr("class","input-group").appendTo(g),a("<span></span>").attr("class","input-group-addon pagination-before").appendTo(h),a("<input>").attr("class","form-control pagination-input").on("keypress",function(c){13==c.keyCode?b.setPage(a(this).val()):(c.keyCode<48||c.keyCode>57)&&c.preventDefault()}).on("keyup",function(){a(this).val()!=b.pageNumber?b.element.find("tfoot button[data-action=refresh]").addClass("btn-primary").removeClass("btn-default"):b.element.find("tfoot button[data-action=refresh]").addClass("btn-default").removeClass("btn-primary")}).appendTo(h),a("<span></span>").attr("class","input-group-addon pagination-after").appendTo(h);var g=a("<div></div>");g.attr("class","btn-group").attr("role","group").appendTo(f),a("<button></button>").attr("class","btn btn-default").attr("data-action","next").html('<span class="glyphicon glyphicon-step-forward"></span>').on("click",function(){b.setPage(b.pageNumber+1)}).appendTo(g),a("<button></button>").attr("class","btn btn-default").attr("data-action","last").html('<span class="glyphicon glyphicon-fast-forward"></span>').on("click",function(){b.setPage(b.totalPages)}).appendTo(g);var g=a("<div></div>");g.attr("class","btn-group").attr("role","group").appendTo(f),a("<button></button>").attr("class","btn btn-default").attr("data-action","refresh").text(b.options.strings.DT_BUTTON_REFRESH).on("click",function(){var a=b.element.find("tfoot input.pagination-input");b.refresh({page_number:a.val()})}).appendTo(g);var i=a("<div></div>");i.attr("class","btn-toolbar").attr("role","toolbar").appendTo(e);var j=a("<div></div>");j.attr("class","btn-group dropdown").attr("role","group").appendTo(i),a("<button></button>").attr("class","btn btn-default dropdown-toggle").attr("data-toggle","dropdown").html(b.options.strings.DT_BUTTON_COLUMNS+' <span class="caret"></span>').appendTo(j);var k=a("<ul></ul>");k.attr("class","dropdown-menu").attr("role","menu").appendTo(j),a.each(b.columns,function(c,d){var e=a("<li></li>");e.attr("role","presentation").appendTo(k);var f=a("<span></span>");f.text(d.title),a("<a></a>").attr("role","menuitem").attr("tabindex","-1").attr("href","javascript:void(0)").attr("data-column-id",c).html('<span class="glyphicon glyphicon-ok '+(d.visible?"":"invisible")+'"></span> '+f.html()).on("click",function(){b.toggleColumn(a(this).attr("data-column-id"))}).appendTo(e)});var j=a("<div></div>");j.attr("class","btn-group dropdown").attr("role","group").appendTo(i),a("<button></button>").attr("class","btn btn-default dropdown-toggle").attr("data-toggle","dropdown").html(b.options.strings.DT_BUTTON_PAGE_SIZE+' <span class="caret"></span>').appendTo(j);var k=a("<ul></ul>");k.attr("class","dropdown-menu").attr("role","menu").appendTo(j),a.each(b.options.page_sizes,function(c,d){var e=a("<li></li>");e.attr("role","presentation").appendTo(k),d==b.pageSize&&e.attr("class","active"),a("<a></a>").attr("role","menuitem").attr("tabindex","-1").attr("href","javascript:void(0)").attr("data-size",d).text(0==d?b.options.strings.DT_LABEL_ALL_ENTRIES:d).on("click",function(){var c=a(this);c.closest("ul").find("li").removeClass("active"),c.closest("li").addClass("active"),b.setSize(c.attr("data-size"))}).appendTo(e)}),c.appendTo(b.element.find("table"))},l=function(a,b,c){var d=a.columns[b],e=a.element.find('.selector input[type="checkbox"]');e.prop("disabled",0==a.rows.length||!c),0==a.rows.length&&e.prop("checked",!1);var f=a.element.find("[data-column-id="+b+"]");f.find(".text").css("display",c&&d.sortable?"none":"inline"),f.find(".link").css("display",c&&d.sortable?"inline":"none"),f.find(".sort-asc").css("display",c&&a.sortColumn==b&&"asc"==a.sortDir?"inline":"none"),f.find(".sort-desc").css("display",c&&a.sortColumn==b&&"desc"==a.sortDir?"inline":"none"),f.find(".filter").css("display",c&&d.filters.length>0?"inline":"none")},m=function(b,c){var d=b.element.find(b.rows.length>0?"tbody.data":"tbody.empty"),e=d.position();a.each([".overlay-back",".overlay-loader"],function(a,f){var g=b.element.find(f);e&&g.css("top",e.top).css("left",e.left),g.width(d.width()).height(d.height()).css("display",c?"block":"none")})},n=function(a,b){var c=!b||1==a.pageNumber;a.element.find("tfoot button[data-action=first]").prop("disabled",c),a.element.find("tfoot button[data-action=previous]").prop("disabled",c);var c=!b||a.pageNumber==a.totalPages;a.element.find("tfoot button[data-action=next]").prop("disabled",c),a.element.find("tfoot button[data-action=last]").prop("disabled",c),a.element.find("tfoot button[data-action=refresh]").prop("disabled",!b).addClass("btn-default").removeClass("btn-primary"),a.element.find("tfoot .pagination-input").prop("disabled",!b)},o=function(b){if(b.element.find(".pagination-input").val(b.pageNumber),b.element.find("tfoot .pagination-before").text(b.options.strings.DT_LABEL_PAGE_OF_1.replace("#",b.totalPages)),b.element.find("tfoot .pagination-after").text(b.options.strings.DT_LABEL_PAGE_OF_2.replace("#",b.totalPages)),b.element.find("thead button.filter").removeClass("btn-primary").addClass("btn-default"),a.each(b.columns,function(a,c){var d=b.element.find("thead th[data-column-id="+a+"]");if(d.find("input[data-filter=like]").val(""),d.find("input[data-filter=equal]").val(""),d.find("input[data-filter=equal-true]").prop("checked",!1),d.find("input[data-filter=equal-false]").prop("checked",!1),d.find("input[data-filter=between-start]").val(""),d.find("input[data-filter=between-end]").val(""),d.find("input[data-filter=null]").prop("checked",!1),"undefined"!=typeof b.filters[a]){var e=!1,f=b.filters[a].like;"undefined"!=typeof f&&(d.find("input[data-filter=like]").val(f),e=!0);var g=b.filters[a].equal;if("undefined"!=typeof g){if("boolean"==c.type)g?d.find("input[data-filter=equal-true]").prop("checked",!0):d.find("input[data-filter=equal-false]").prop("checked",!0);else if("datetime"==c.type){var h=d.find("input[data-filter=equal]").closest(".input-group");h.data("DateTimePicker").date(moment(1e3*g))}else d.find("input[data-filter=equal]").val(g);e=!0}var i=b.filters[a].between;if("undefined"!=typeof i){if("datetime"==c.type){if(null!=i[0]){var j=d.find("input[data-filter=between-start]").closest(".input-group");j.data("DateTimePicker").date(moment(1e3*i[0]))}if(null!=i[1]){var k=d.find("input[data-filter=between-end]").closest(".input-group");k.data("DateTimePicker").date(moment(1e3*i[1]))}}else null!=i[0]&&d.find("input[data-filter=between-start]").val(i[0]),null!=i[1]&&d.find("input[data-filter=between-end]").val(i[1]);e=!0}var l=b.filters[a]["null"];"undefined"!=typeof l&&(d.find("input[data-filter=null]").prop("checked",!0),e=!0),e&&d.find("button.filter").removeClass("btn-default").addClass("btn-primary")}}),0==b.rows.length){b.element.find(".table-loader").remove(),b.element.find("table").css("display","table");var c=b.element.find("tbody.data");c.css("display","none");var d=b.element.find("tbody.empty");return d.find("td").text(b.options.strings.DT_BANNER_EMPTY),void d.css("display","table-row-group")}var c=a("<tbody></tbody>");c.attr("class","data"),a.each(b.rows,function(d,e){var f=a("<tr></tr>");if(null!=b.options.row_id_column){var g=e[b.options.row_id_column];f.attr("data-row-id",g);var h=a('<td class="selector"><input type="checkbox"></td>');h.appendTo(f).find("input").prop("disabled",!0).prop("value",g).on("click",function(){a(this).prop("checked",!a(this).prop("checked")),b.toggleSelected(g)})}var i=null!=b.options.mapper?b.options.mapper(e):e;a.each(b.columns,function(b,c){var d=a("<td></td>");d.html(i[b]).attr("data-column-id",b).css("display",c.visible?"table-cell":"none").appendTo(f)}),f.appendTo(c)}),b.element.find(".table-loader").remove(),b.element.find("table").css("display","table"),b.element.find("tbody.empty").css("display","none"),b.element.find("tbody.data").replaceWith(c).css("display","table-row-group")},p=function(a,b){a.element.find(".table-loader").remove(),a.element.find("table").css("display","none"),m(a,!1),a.element.trigger("dt.http-error",{status:b}),a.element.find(".ajax-error").css("display","block")}}(jQuery,window,document);