forked from joequery/Stupid-Table-Plugin
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstupidtable.min.js
More file actions
1 lines (1 loc) · 1.69 KB
/
stupidtable.min.js
File metadata and controls
1 lines (1 loc) · 1.69 KB
1
(function(e){e.fn.stupidtable=function(t){return this.each(function(){var n=e(this);t=t||{};t=e.extend({},e.fn.stupidtable.default_sort_fns,t);var r=function(t,n){var r=[],i=0,s=t.slice(0).sort(n),o=t.length;for(var u=0;u<o;u++){i=e.inArray(t[u],s);while(e.inArray(i,r)!=-1){i++}r.push(i)}return r};var i=function(e,t){var n=e.slice(0),r=0,i=t.length;for(var s=0;s<i;s++){r=t[s];n[r]=e[s]}return n};n.on("click.stupidtable","th",function(){var s=n.children("tbody").children("tr");var o=e(this);var u=0;var a=e.fn.stupidtable.dir;n.find("th").slice(0,o.index()).each(function(){var t=e(this).attr("colspan")||1;u+=parseInt(t,10)});var f=o.data("sort-default")||a.ASC;if(o.data("sort-dir"))f=o.data("sort-dir")===a.ASC?a.DESC:a.ASC;var l=o.data("sort")||null;if(l===null){return}n.trigger("beforetablesort",{column:u,direction:f});n.css("display");setTimeout(function(){var c=[];var h=t[l];s.each(function(t,n){var r=e(n).children().eq(u);var i=r.data("sort-value");var s=typeof i!=="undefined"?i:r.text();c.push(s)});var p;if(f==a.ASC)p=r(c,h);else p=r(c,function(e,t){return-h(e,t)});n.find("th").data("sort-dir",null).removeClass("sorting-desc sorting-asc");o.data("sort-dir",f).addClass("sorting-"+f);var d=e(i(s,p));n.children("tbody").remove();n.append("<tbody />").append(d);n.trigger("aftertablesort",{column:u,direction:f});n.css("display")},10)})})};e.fn.stupidtable.dir={ASC:"asc",DESC:"desc"};e.fn.stupidtable.default_sort_fns={"int":function(e,t){return parseInt(e,10)-parseInt(t,10)},"float":function(e,t){return parseFloat(e)-parseFloat(t)},string:function(e,t){if(e<t)return-1;if(e>t)return+1;return 0},"string-ins":function(e,t){e=e.toLowerCase();t=t.toLowerCase();if(e<t)return-1;if(e>t)return+1;return 0}}})(jQuery)