|
|
@ -1,11 +1,15 @@
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Created by Shodhan Save on Jan 23, 2018.
|
|
|
|
* Created by Shodhan Save on Jan 23, 2018.
|
|
|
|
|
|
|
|
* Updated @ Jan 25, 2018
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* This plug-in allows sorting of human readable time delta, viz.,
|
|
|
|
* This plug-in allows sorting of human readable time delta, viz.,
|
|
|
|
* "1 week", "2 weeks 3 days", "4 weeks 5 days 6hours", etc.
|
|
|
|
* "1 week", "2 weeks 3 days", "4 weeks 5 days 6hours", etc.
|
|
|
|
* Curently this plugin supports time range from seconds to weeks
|
|
|
|
*
|
|
|
|
|
|
|
|
* Curently this plugin supports time range from microseconds to decades.
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* The plugin also takes care of singular and plural values lik week(s)
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* @name Natural Time Delta
|
|
|
|
* @name Natural Time Delta
|
|
|
|
* @summary Sort human readable time delta
|
|
|
|
* @summary Sort human readable time delta
|
|
|
@ -21,7 +25,7 @@
|
|
|
|
jQuery.extend(jQuery.fn.dataTableExt.oSort,{
|
|
|
|
jQuery.extend(jQuery.fn.dataTableExt.oSort,{
|
|
|
|
"natural-time-delta-pre" : function(data){
|
|
|
|
"natural-time-delta-pre" : function(data){
|
|
|
|
var result = 0;
|
|
|
|
var result = 0;
|
|
|
|
var pattern = /(\d+\s*weeks?\s*)?(\d+\s*days?\s*)?(\d+\s*hours?\s*)?(\d+\s*minutes?)?(\d+\s*seconds?)?/i
|
|
|
|
var pattern = /(\d+\s*decades?\s*)?(\d+\s*years?\s*)?(\d+\s*months?\s*)?(\d+\s*weeks?\s*)?(\d+\s*days?\s*)?(\d+\s*hours?\s*)?(\d+\s*minutes?\s*)?(\d+\s*seconds?\s*)?(\d+\s*milliseconds?\s*)?(\d+\s*microseconds?\s*)?/i
|
|
|
|
var format_time_element = function(el, splitter, mul){
|
|
|
|
var format_time_element = function(el, splitter, mul){
|
|
|
|
if (el === undefined){
|
|
|
|
if (el === undefined){
|
|
|
|
return 0;
|
|
|
|
return 0;
|
|
|
@ -33,11 +37,16 @@ jQuery.extend(jQuery.fn.dataTableExt.oSort,{
|
|
|
|
matches.reverse();
|
|
|
|
matches.reverse();
|
|
|
|
|
|
|
|
|
|
|
|
var time_elements = [
|
|
|
|
var time_elements = [
|
|
|
|
|
|
|
|
{"splitter" : "us", "name" : "microsecond", "mul" : 1 / 1000 / 1000},
|
|
|
|
|
|
|
|
{"splitter" : "ms", "name" : "millisecond", "mul" : 1 / 1000},
|
|
|
|
{"splitter" : "s", "name" : "second", "mul" : 1},
|
|
|
|
{"splitter" : "s", "name" : "second", "mul" : 1},
|
|
|
|
{"splitter" : "m", "name" : "minute", "mul" : 1 * 60},
|
|
|
|
{"splitter" : "m", "name" : "minute", "mul" : 1 * 60},
|
|
|
|
{"splitter" : "h", "name" : "hour", "mul" : 1 * 60 * 60},
|
|
|
|
{"splitter" : "h", "name" : "hour", "mul" : 1 * 60 * 60},
|
|
|
|
{"splitter" : "d", "name" : "day", "mul" : 1 * 60 * 60 * 24},
|
|
|
|
{"splitter" : "d", "name" : "day", "mul" : 1 * 60 * 60 * 24},
|
|
|
|
{"splitter" : "w", "name" : "week", "mul" : 1 * 60 * 60 * 24 * 7},
|
|
|
|
{"splitter" : "w", "name" : "week", "mul" : 1 * 60 * 60 * 24 * 7},
|
|
|
|
|
|
|
|
{"splitter" : "w", "name" : "month", "mul" : 1 * 60 * 60 * 24 * 7 * 30},
|
|
|
|
|
|
|
|
{"splitter" : "w", "name" : "year", "mul" : 1 * 60 * 60 * 24 * 7 * 30 * 12},
|
|
|
|
|
|
|
|
{"splitter" : "w", "name" : "decade", "mul" : 1 * 60 * 60 * 24 * 7 * 30 * 12 * 10},
|
|
|
|
];
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
|
|
time_elements.forEach(function(el, i){
|
|
|
|
time_elements.forEach(function(el, i){
|
|
|
|