Skip to content

Commit 6d1ae9f

Browse files
author
dtbuild
committed
25f3ba87157060cd9878b86da667c3ee8b2ab78b Fix: Server-side processing with dates and times wasn't working (DT2)
Sync to source repo @25f3ba87157060cd9878b86da667c3ee8b2ab78b
1 parent 89fea25 commit 6d1ae9f

5 files changed

+24
-20
lines changed

datatables.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,5 @@
1414
],
1515
"src-repo": "http://github.com/DataTables/SearchBuilder",
1616
"last-tag": "1.8.1",
17-
"last-sync": "84262408efca7449a2d0c2b89a6014b57ede7a72"
17+
"last-sync": "25f3ba87157060cd9878b86da667c3ee8b2ab78b"
1818
}

js/dataTables.searchBuilder.js

+10-8
Original file line numberDiff line numberDiff line change
@@ -349,29 +349,31 @@ var DataTable = $.fn.dataTable;
349349
}
350350
}
351351
else if (this.s.type !== null && deFormatDates) {
352-
if (this.s.type.includes('date') ||
353-
this.s.type.includes('time')) {
352+
var momentLib = moment();
353+
var luxonLib = luxon();
354+
if ((this.s.type.includes('date') ||
355+
this.s.type.includes('time')) && !moment && !luxon) {
354356
for (i = 0; i < this.s.value.length; i++) {
355357
if (this.s.value[i].match(/^\d{4}-([0]\d|1[0-2])-([0-2]\d|3[01])$/g) === null) {
356358
this.s.value[i] = '';
357359
}
358360
}
359361
}
360-
else if (this.s.type.includes('moment')) {
362+
else if (this.s.type.includes('moment') || (this.s.type.includes('datetime') && moment)) {
361363
for (i = 0; i < this.s.value.length; i++) {
362364
if (this.s.value[i] &&
363365
this.s.value[i].length > 0 &&
364-
moment()(this.s.value[i], this.s.dateFormat, true).isValid()) {
365-
this.s.value[i] = moment()(this.s.value[i], this.s.dateFormat).format('YYYY-MM-DD HH:mm:ss');
366+
momentLib(this.s.value[i], this.s.dateFormat, true).isValid()) {
367+
this.s.value[i] = momentLib(this.s.value[i], this.s.dateFormat).format('YYYY-MM-DD HH:mm:ss');
366368
}
367369
}
368370
}
369-
else if (this.s.type.includes('luxon')) {
371+
else if (this.s.type.includes('luxon') || (this.s.type.includes('datetime') && luxon)) {
370372
for (i = 0; i < this.s.value.length; i++) {
371373
if (this.s.value[i] &&
372374
this.s.value[i].length > 0 &&
373-
luxon().DateTime.fromFormat(this.s.value[i], this.s.dateFormat).invalid === null) {
374-
this.s.value[i] = luxon().DateTime.fromFormat(this.s.value[i], this.s.dateFormat).toFormat('yyyy-MM-dd HH:mm:ss');
375+
luxonLib.DateTime.fromFormat(this.s.value[i], this.s.dateFormat).invalid === null) {
376+
this.s.value[i] = luxonLib.DateTime.fromFormat(this.s.value[i], this.s.dateFormat).toFormat('yyyy-MM-dd HH:mm:ss');
375377
}
376378
}
377379
}

js/dataTables.searchBuilder.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/dataTables.searchBuilder.min.mjs

+2-2
Large diffs are not rendered by default.

js/dataTables.searchBuilder.mjs

+10-8
Original file line numberDiff line numberDiff line change
@@ -309,29 +309,31 @@ let $ = jQuery;
309309
}
310310
}
311311
else if (this.s.type !== null && deFormatDates) {
312-
if (this.s.type.includes('date') ||
313-
this.s.type.includes('time')) {
312+
var momentLib = moment();
313+
var luxonLib = luxon();
314+
if ((this.s.type.includes('date') ||
315+
this.s.type.includes('time')) && !moment && !luxon) {
314316
for (i = 0; i < this.s.value.length; i++) {
315317
if (this.s.value[i].match(/^\d{4}-([0]\d|1[0-2])-([0-2]\d|3[01])$/g) === null) {
316318
this.s.value[i] = '';
317319
}
318320
}
319321
}
320-
else if (this.s.type.includes('moment')) {
322+
else if (this.s.type.includes('moment') || (this.s.type.includes('datetime') && moment)) {
321323
for (i = 0; i < this.s.value.length; i++) {
322324
if (this.s.value[i] &&
323325
this.s.value[i].length > 0 &&
324-
moment()(this.s.value[i], this.s.dateFormat, true).isValid()) {
325-
this.s.value[i] = moment()(this.s.value[i], this.s.dateFormat).format('YYYY-MM-DD HH:mm:ss');
326+
momentLib(this.s.value[i], this.s.dateFormat, true).isValid()) {
327+
this.s.value[i] = momentLib(this.s.value[i], this.s.dateFormat).format('YYYY-MM-DD HH:mm:ss');
326328
}
327329
}
328330
}
329-
else if (this.s.type.includes('luxon')) {
331+
else if (this.s.type.includes('luxon') || (this.s.type.includes('datetime') && luxon)) {
330332
for (i = 0; i < this.s.value.length; i++) {
331333
if (this.s.value[i] &&
332334
this.s.value[i].length > 0 &&
333-
luxon().DateTime.fromFormat(this.s.value[i], this.s.dateFormat).invalid === null) {
334-
this.s.value[i] = luxon().DateTime.fromFormat(this.s.value[i], this.s.dateFormat).toFormat('yyyy-MM-dd HH:mm:ss');
335+
luxonLib.DateTime.fromFormat(this.s.value[i], this.s.dateFormat).invalid === null) {
336+
this.s.value[i] = luxonLib.DateTime.fromFormat(this.s.value[i], this.s.dateFormat).toFormat('yyyy-MM-dd HH:mm:ss');
335337
}
336338
}
337339
}

0 commit comments

Comments
 (0)