|
50 | 50 |
|
51 | 51 | return val; |
52 | 52 | case "Date": |
53 | | - return String(val).replace(/[^0-9a-zA-Z-\/]/g, ""); |
| 53 | + return $.fn.griddly.defaults.getCleanedDate(val); |
54 | 54 | default: |
55 | 55 | return val; |
56 | 56 | } |
|
122 | 122 |
|
123 | 123 | return val; |
124 | 124 | case "Date": |
125 | | - val = parseForValidDate(val); |
126 | | - |
127 | | - if (val == null || !isFinite(val)) |
128 | | - return null; |
129 | | - else |
130 | | - return (val.getMonth() + 1) + "/" + val.getDate() + "/" + val.getFullYear(); |
| 125 | + return $.fn.griddly.defaults.getFormattedDate(val); |
131 | 126 | default: |
132 | 127 | return val; |
133 | 128 | } |
|
347 | 342 | switch (datatype) |
348 | 343 | { |
349 | 344 | case "Date": |
350 | | - var date; |
351 | | - var pos; |
352 | | - |
353 | | - if (typeof (value) === "string" && (pos = value.indexOf("T")) != -1) |
354 | | - { |
355 | | - value = value.substr(0, pos); |
356 | | - |
357 | | - // Strip time, we only want date |
358 | | - var parts = value.split('-'); |
359 | | - |
360 | | - // new Date(year, month [, day [, hours[, minutes[, seconds[, ms]]]]]) |
361 | | - date = new Date(parts[0], parts[1] - 1, parts[2]); // Note: months are 0-based |
362 | | - } |
363 | | - else |
364 | | - date = new Date(value); |
365 | | - |
366 | | - date.setHours(0, 0, 0, 0); |
367 | | - |
368 | | - value = date.toLocaleDateString(); |
369 | | - |
| 345 | + value = $.fn.griddly.defaults.getFilterDate(value); |
370 | 346 | break; |
371 | 347 | case "Currency": |
372 | 348 | value = parseFloat(value).toFixed(2); |
|
2044 | 2020 | return this; |
2045 | 2021 | }; |
2046 | 2022 |
|
| 2023 | + const defaultCleanedDate = str => String(str).replace(/[^0-9a-zA-Z-\/]/g, ""); |
| 2024 | + const defaultFormatedDate = str => { |
| 2025 | + var val = parseForValidDate(str); |
| 2026 | + return (val == null || !isFinite(val)) |
| 2027 | + ? null |
| 2028 | + : (val.getMonth() + 1) + "/" + val.getDate() + "/" + val.getFullYear(); |
| 2029 | + }; |
| 2030 | + const defaultFilterDate = strOrDate => { |
| 2031 | + var date; |
| 2032 | + var pos; |
| 2033 | + |
| 2034 | + if (typeof (strOrDate) === "string" && (pos = strOrDate.indexOf("T")) != -1) |
| 2035 | + { |
| 2036 | + strOrDate = strOrDate.substr(0, pos); |
| 2037 | + |
| 2038 | + // Strip time, we only want date |
| 2039 | + var parts = strOrDate.split('-'); |
| 2040 | + |
| 2041 | + // new Date(year, month [, day [, hours[, minutes[, seconds[, ms]]]]]) |
| 2042 | + date = new Date(parts[0], parts[1] - 1, parts[2]); // Note: months are 0-based |
| 2043 | + } |
| 2044 | + else |
| 2045 | + date = new Date(strOrDate); |
| 2046 | + |
| 2047 | + date.setHours(0, 0, 0, 0); |
| 2048 | + |
| 2049 | + return date.toLocaleDateString(); |
| 2050 | + }; |
| 2051 | + |
2047 | 2052 | $.fn.griddly.defaults = $.extend({}, |
2048 | 2053 | { |
2049 | 2054 | pageNumber: 0, |
|
2065 | 2070 | serializeSkipEmpty: true, |
2066 | 2071 | filtersSelector: "input[name], select[name]", |
2067 | 2072 | exportCustomFunction: null, |
2068 | | - exportFunction: null |
| 2073 | + exportFunction: null, |
| 2074 | + getCleanedDate: defaultCleanedDate, |
| 2075 | + getFormattedDate: defaultFormatedDate, |
| 2076 | + getFilterDate: defaultFilterDate |
2069 | 2077 | }, $.fn.griddlyGlobalDefaults); |
2070 | 2078 |
|
2071 | 2079 | var GriddlyFilterBar = function (element, options) |
|
0 commit comments