From 735a6cf7380f3faa7f18db1df798b18d7b0d47f4 Mon Sep 17 00:00:00 2001 From: maliming Date: Wed, 5 Mar 2025 12:57:28 +0800 Subject: [PATCH] Add custom renderer for time and enhance locale string options in clock --- .../datatables/datatables-extensions.js | 8 ++++++++ npm/packs/core/src/abp.js | 11 +++++++++-- npm/packs/luxon/src/abp.luxon.js | 10 +++++----- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js index c64d216ec0..58b570253c 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js @@ -509,6 +509,14 @@ var abp = abp || {}; } }; + datatables.defaultRenderers['time'] = function (value) { + if (!value) { + return value; + } else { + return abp.clock.normalizeToLocaleString(value, { hour: '2-digit', minute: '2-digit', second: '2-digit' }); + } + }; + datatables.defaultRenderers['datetime'] = function (value) { if (!value) { return value; diff --git a/npm/packs/core/src/abp.js b/npm/packs/core/src/abp.js index 57a3c606cf..6ad09542fc 100644 --- a/npm/packs/core/src/abp.js +++ b/npm/packs/core/src/abp.js @@ -792,7 +792,14 @@ var abp = abp || {}; }; // Default options for toLocaleString - abp.clock.toLocaleStringOptions = abp.clock.toLocaleStringOptions || {}; + abp.clock.toLocaleStringOptions = abp.clock.toLocaleStringOptions || { + "year": "numeric", + "month": "long", + "day": "numeric", + "hour": "numeric", + "minute": "numeric", + "second": "numeric" + }; // Normalize date string to locale date string that will be displayed to user abp.clock.normalizeToLocaleString = function (dateString, options) { @@ -806,7 +813,7 @@ var abp = abp || {}; } var culture = abp.localization.currentCulture.cultureName; - options = Object.assign({}, abp.clock.toLocaleStringOptions, options || {}); + options = options || abp.clock.toLocaleStringOptions; if (abp.clock.supportsMultipleTimezone()) { var timezone = abp.clock.timeZone(); if (timezone) { diff --git a/npm/packs/luxon/src/abp.luxon.js b/npm/packs/luxon/src/abp.luxon.js index 0cf90eb055..e8bcfb7acc 100644 --- a/npm/packs/luxon/src/abp.luxon.js +++ b/npm/packs/luxon/src/abp.luxon.js @@ -32,7 +32,7 @@ var abp = abp || {}; .fromFormat( getObjectValue(form, field), abp.localization.currentCulture.dateTimeFormat.shortDatePattern, - {locale: abp.localization.currentCulture.cultureName} + { locale: abp.localization.currentCulture.cultureName } ); if (!dateTime.invalid) { @@ -80,19 +80,19 @@ var abp = abp || {}; return dateString; } - options = options || luxon.DateTime.DATETIME_FULL; + options = options || abp.clock.toLocaleStringOptions; if (abp.clock.supportsMultipleTimezone()) { var timezone = abp.clock.timeZone(); if (timezone) { return luxon.DateTime.fromJSDate(date) .setZone(timezone) .setLocale(abp.localization.currentCulture.cultureName) - .toLocaleString(Object.assign({}, abp.clock.toLocaleStringOptions, options)); + .toLocaleString(options); } } return luxon.DateTime.fromJSDate(date) - .setLocale(abp.localization.currentCulture.cultureName) - .toLocaleString(Object.assign({}, abp.clock.toLocaleStringOptions, options)); + .setLocale(abp.localization.currentCulture.cultureName) + .toLocaleString(options); } })(jQuery);