-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdsDataTable.min.js
More file actions
21 lines (21 loc) · 7.04 KB
/
dsDataTable.min.js
File metadata and controls
21 lines (21 loc) · 7.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/*!
*
* DevelopScript - DataTable v0.6.5 (http://developscript.com)
*
* Licensed under the MIT license.
*
* @file dsDataTable.js
* @author Rafael Pegorari
* @date 13/07/2015
*
* ====== Required ======
* This code was developed based on jQuery v2.1.4 and Bootstrap v3.3.5
* More informations
* jQuery url: https://jquery.com/
* Bootstrap url: http://getbootstrap.com/
*
* ====== Globais ======
* $, jQuery, _dsSettings_default, _dsEmtName, _randomID, _mergeSettings, _dsPaginationGet, _dsSerchGet, _dsRecordsGet, _dsAjax, _dsPagination,
* _dsSearch, _dsRecordPages, _dsLabelTotal, _trigger_dsAjax, _dsOrderColumnsGet,_dsOrderColumns, _dsCreateElements, _dsDataTable
*/
!function(a){var e={search:{active:!0,placeholder:"Search",button:'<span class="icon-seach" aria-hidden="true"></span>',autosearch:!0,"class":""},recordsPage:{active:!0,rows:10,next:20,length:5,"class":""},labelTotal:{active:!0,showing:"Showing",to:"to",of:"of",entries:"entries",loading:"Loading...",filter:"Filter",values_in_total:"values in total",records_not_found:"Records not found.","class":""},pagination:{active:!0,"class":""},orderDefault:[]},t={top:"_dsTop",bottom:"_dsBottom",search:"_dsSearch",records:"_dsRecords",pagination:"_dsPagination",totais:"_dsTotais"},n=function(){return"_dsDataTable_"+Math.random().toString(36).substr(2,9)},o=function(t){return a.extend(!0,{},e,t)},s=function(e){var n;return a("#"+e.id+" [name='"+t.pagination+"']").length&&(n=a("#"+e.id+" [name='"+t.pagination+"']").find(".active").find("a").data("page")),Number(isNaN(n)?1:n)},r=function(e){var n="";return a("#"+e.id+" [name='"+t.search+"']").length&&(n=a("#"+e.id+" [name='"+t.search+"']").val()),n},i=function(e){var n=e.recordsPage.rows;return a("#"+e.id+" [name='"+t.records+"']").length&&(n=a("#"+e.id+" [name='"+t.records+"']").val()),n},d=function(e){var t,n=e,o={dsRecordPages:i(e),dsSearch:r(e),dsPageNow:s(e),dsOrder:h(e)},d=o;"undefined"!=typeof n.ajax.addData&&(d=a.extend({},o,n.ajax.addData)),jQuery.ajax({type:n.ajax.type,url:n.ajax.url,data:d,cache:!1,dataType:"json",beforeSend:function(){f(e,1)},success:function(o){"undefined"!=typeof o.fields?(t="",a.each(o.fields,function(e,o){t+="<tr>",a.each(n.columns,function(a,e){var n="";"undefined"!=typeof e["class"]&&(n='class="'+e["class"]+'"'),t+="<td "+n+">"+o[e.name]+"</td>"}),t+="</tr>"}),a(e.element).find("tbody").html(t),l(e,{total:Number(o.pages)}),f(e,2,{start:o.start,end:o.end,rows:o.rows,total_rows:o.total_rows})):(t='<tr><td colspan="'+n.columns.length+'" align="center">'+n.labelTotal.records_not_found+"</td></tr>",a(e.element).find("tbody").html(t),l(e,{total:1}),f(e,3,{total_rows:o.total_rows}))}})},l=function(e,n){if(!e.pagination.active)return!1;var o,r=s(e),i=n.total,l=1>r-2?1:r-2,c="",u="";i>=l+4?o=l+4:i>=l+3?(o=l+3,l=1>r-3?1:r-3):(o=i,l=1>r-4?1:r-4),1===r&&(c="disabled"),r===i&&(u="disabled");for(var f,p='<li><a href="javascript:;" data-page="1">1...</a></li>',h='<li><a href="javascript:;" data-page="'+i+'">...'+i+"</a></li>",v='<li class="'+c+'"><a href="javascript:;" data-page="'+(r-1)+'"><span aria-hidden="true">«</span></a></li>',m='<li class="'+u+'"><a href="javascript:;" data-page="'+(r+1)+'"><span aria-hidden="true">»</span></a></li>',g="",_="",w=l;o>=w;w++){var b="";w===r&&(b="active"),g+='<li class="'+b+'"><a href="javascript:;" data-page="'+w+'">'+w+"</a></li>"}i-1>=o&&(g+=h),l>=2&&(g=p+g),_=v+g+m,f=a("#"+e.id+" [name='"+t.pagination+"']").html(_),a(f).find("li").click(function(){return a(this).hasClass("active")||a(this).hasClass("disabled")?!1:(a("#"+e.id+" [name='"+t.pagination+"']").find("li").removeClass("active"),a(this).addClass("active"),d(e),void 0)})},c=function(e){if(!e.search.active)return!1;var n=e.search,o='<div class="pull-right col-22 '+n["class"]+'"> <div class="form-group"> <div class="input-group"> <input type="text" class="form-control" name="'+t.search+'" placeholder="'+n.placeholder+'"> <span class="input-group-btn"> <button class="btn btn-default" type="button"> '+n.button+" </button> </span> </div> </div></div>",s=a(o).appendTo("#"+e.id+" [name='"+t.top+"']");a(s).find("button").click(function(){p(e)}),a(s).find("input").keyup(function(a){(n.autosearch||13===a.which)&&p(e)})},u=function(e){if(!e.recordsPage.active)return!1;for(var n,o,s,r=e.recordsPage,i=1;i<r.length;i++){var d=r.rows+r.next*i;n+='<option value="'+d+'">'+d+"</option>"}o='<div class="pull-left col-12 '+r["class"]+'"> <div class="form-group"> <select name="'+t.records+'" class="form-control"> <option value="'+r.rows+'">'+r.rows+"</option>"+n+" </select> </div></div>",s=a(o).appendTo("#"+e.id+" [name='"+t.top+"']"),a(s).find("[name='"+t.records+"']").change(function(){p(e)})},f=function(e,n,o){if(!e.labelTotal.active)return!1;var s,r=e.labelTotal;2===n?(s=r.showing+" "+(o.start+1)+" "+r.to+" "+o.end+" "+r.of+" "+o.rows+" "+r.entries,o.rows!==o.total_rows&&(s+=" - "+r.filter+" "+o.total_rows+" "+r.values_in_total),a("#"+e.id+" [name='"+t.totais+"']").html(s)):3===n?(s=r.records_not_found,"0"!==o.total_rows&&(s+=" - "+r.filter+" "+o.total_rows+" "+r.values_in_total),a("#"+e.id+" [name='"+t.totais+"']").html(s)):1===n&&a("#"+e.id+" [name='"+t.totais+"']").html(r.loading)},p=function(a){l(a,{total:1}),d(a)},h=function(e){var t=e,n=[];return a(e.element).find("th").each(function(e){("undefined"==typeof t.columns[e].order||t.columns[e].order===!0)&&(a(this).find(".arrow_order").hasClass("asc")?n.push({name:t.columns[e].name,order:"asc"}):a(this).find(".arrow_order").hasClass("desc")&&n.push({name:t.columns[e].name,order:"desc"}))}),n},v=function(e){var t=e,n='<div class="arrow_order"><span class="icon-arrow top"></span> <span class="icon-arrow bottom"></span></div>';a(e.element).find("th").each(function(o){var s=this;"undefined"!=typeof t.columns[o]["class"]&&a(s).addClass(t.columns[o]["class"]),("undefined"==typeof t.columns[o].order||t.columns[o].order===!0)&&(a(s).append(n),"undefined"!=typeof t.orderDefault&&t.orderDefault.length&&a.each(t.orderDefault,function(e,n){t.columns[o].name===n.name&&a(s).find(".arrow_order").addClass(n.order)}),a(s).click(function(){a(s).find(".arrow_order").hasClass("asc")||a(s).find(".arrow_order").hasClass("desc")?a(s).find(".arrow_order").hasClass("asc")?(a(s).find(".arrow_order").removeClass("asc"),a(s).find(".arrow_order").addClass("desc")):a(s).find(".arrow_order").hasClass("desc")&&a(s).find(".arrow_order").removeClass("desc"):a(s).find(".arrow_order").addClass("asc"),p(e)}))})},m=function(e){var n,o=a(e.element).wrap('<div class="_dsDataTable" id="'+e.id+'"></div>');a('<div name="'+t.top+'"></div>').insertBefore(o),n=a('<div name="'+t.bottom+'"></div>').insertAfter(o),a(n).append('<div class="pull-left col-100 '+e.labelTotal["class"]+'" name="'+t.totais+'"></div>'),a(n).append('<div class="col-100 text-center '+e.pagination["class"]+'"><ul name="'+t.pagination+'" class="pagination"></ul></div>'),0===a(e.element).find("tbody").length&&a(e.element).append("<tbody></tbody>")},g=function(a){var e=o(a);return e.element=this,e.id=n(),m(e),v(e),u(e),c(e),f(e,1,null),p(e),this};jQuery.fn.dsDataTable=g}(jQuery);