From 6806620d90b5c1c64d167813fb28f882de28efad Mon Sep 17 00:00:00 2001 From: "SPRINX0\\prochazka" Date: Tue, 8 Oct 2024 14:38:46 +0200 Subject: [PATCH] fixed datetime filtering #912 --- packages/filterparser/package.json | 1 + packages/filterparser/src/filterTool.ts | 12 ++++++++++-- packages/web/package.json | 2 +- packages/web/src/clientAuth.ts | 1 - packages/web/src/modals/EditCellDataModal.svelte | 3 +-- yarn.lock | 7 ++++++- 6 files changed, 19 insertions(+), 7 deletions(-) diff --git a/packages/filterparser/package.json b/packages/filterparser/package.json index f7cdbca44..04b67ba31 100644 --- a/packages/filterparser/package.json +++ b/packages/filterparser/package.json @@ -24,6 +24,7 @@ "@types/parsimmon": "^1.10.1", "dbgate-tools": "^5.0.0-alpha.1", "lodash": "^4.17.21", + "date-fns": "^4.1.0", "moment": "^2.24.0", "parsimmon": "^1.13.0" } diff --git a/packages/filterparser/src/filterTool.ts b/packages/filterparser/src/filterTool.ts index 3eb9ef466..09e5c5f51 100644 --- a/packages/filterparser/src/filterTool.ts +++ b/packages/filterparser/src/filterTool.ts @@ -1,11 +1,19 @@ import { arrayToHexString, isTypeDateTime } from 'dbgate-tools'; -import moment from 'moment'; +import { format, toDate } from 'date-fns'; +import _isString from 'lodash/isString'; export type FilterMultipleValuesMode = 'is' | 'is_not' | 'contains' | 'begins' | 'ends'; +function getDateStringWithoutTimeZone(dateString) { + if (_isString(dateString)) { + return dateString.replace(/Z|([+-]\d{2}:\d{2})$/, ''); + } + return dateString; +} + export function getFilterValueExpression(value, dataType?) { if (value == null) return 'NULL'; - if (isTypeDateTime(dataType)) return moment(value).format('YYYY-MM-DD HH:mm:ss'); + if (isTypeDateTime(dataType)) return format(toDate(getDateStringWithoutTimeZone(value)), 'yyyy-MM-dd HH:mm:ss'); if (value === true) return 'TRUE'; if (value === false) return 'FALSE'; if (value.$oid) return `ObjectId("${value.$oid}")`; diff --git a/packages/web/package.json b/packages/web/package.json index 09e3aa7df..5a451bc62 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -58,7 +58,7 @@ }, "dependencies": { "chartjs-plugin-zoom": "^1.2.0", - "date-fns": "^2.28.0", + "date-fns": "^4.1.0", "debug": "^4.3.4", "fuzzy": "^0.1.3", "interval-operations": "^1.0.7", diff --git a/packages/web/src/clientAuth.ts b/packages/web/src/clientAuth.ts index a84f93b8e..91f3135ff 100644 --- a/packages/web/src/clientAuth.ts +++ b/packages/web/src/clientAuth.ts @@ -1,4 +1,3 @@ -import { ca } from 'date-fns/locale'; import { apiCall, enableApi, getAuthCategory } from './utility/api'; import { getConfig } from './utility/metadataLoaders'; import { isAdminPage } from './utility/pageDefs'; diff --git a/packages/web/src/modals/EditCellDataModal.svelte b/packages/web/src/modals/EditCellDataModal.svelte index 39fa738c9..b2980b76e 100644 --- a/packages/web/src/modals/EditCellDataModal.svelte +++ b/packages/web/src/modals/EditCellDataModal.svelte @@ -13,8 +13,7 @@ import { parseCellValue, safeJsonParse, stringifyCellValue } from 'dbgate-tools'; import { showSnackbarError } from '../utility/snackbar'; import ErrorMessageModal from './ErrorMessageModal.svelte'; - import da from 'date-fns/locale/da'; - + export let onSave; export let value; diff --git a/yarn.lock b/yarn.lock index ed9757403..731e20b4e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4093,13 +4093,18 @@ data-view-byte-offset@^1.0.0: es-errors "^1.3.0" is-data-view "^1.0.1" -date-fns@^2.0.1, date-fns@^2.28.0: +date-fns@^2.0.1: version "2.30.0" resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== dependencies: "@babel/runtime" "^7.21.0" +date-fns@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-4.1.0.tgz#64b3d83fff5aa80438f5b1a633c2e83b8a1c2d14" + integrity sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg== + dateformat@^4.6.3: version "4.6.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5"