From d29f7c47f7d94152fb9e4739ea4471a417ffba5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20tom=20W=C3=B6rden?= <h.tomwoerden@indiscale.com> Date: Sun, 8 Oct 2023 11:56:58 +0200 Subject: [PATCH] FIX: preserver subsec resolution --- src/core/js/caosdb.js | 14 +++++++++++--- src/core/js/edit_mode.js | 7 ++++--- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/core/js/caosdb.js b/src/core/js/caosdb.js index a5483d64..5eb53a46 100644 --- a/src/core/js/caosdb.js +++ b/src/core/js/caosdb.js @@ -335,8 +335,12 @@ var getEntityIdVersion = function (entity) { * @param time A time * @return A CaosDB compatible representation. */ -function input2caosdbDate(date, time) { - return date + "T" + time; +function input2caosdbDate(date, time, subsec) { + let res = date + "T" + time; + if (subsec!=""){ + res = res +"." + subsec; + } + return res } /** @@ -377,8 +381,12 @@ var getAllEntityPermissions = function (entity) { function caosdb2InputDate(text) { if (text.includes("T")) { var spl = text.trim().split("T"); + var subsec="" + if (spl[1].includes(".")) { + subsec = spl[1].split('.')[1] + } //TODO subsecond resolution is IGNORED!!! - return [spl[0], spl[1].substring(0, 8)]; + return [spl[0], spl[1].substring(0, 8), subsec]; } return [text]; } diff --git a/src/core/js/edit_mode.js b/src/core/js/edit_mode.js index d9c5d193..beff84e1 100644 --- a/src/core/js/edit_mode.js +++ b/src/core/js/edit_mode.js @@ -513,8 +513,9 @@ var edit_mode = new function () { var _parse_single_datetime = function (field) { let time = $(field).find(":input[type='time']").val() let date = $(field).find(":input[type='date']").val(); + let subsec = $(field).find(":input[type='time']").attr('subsec'); if (time) { - return input2caosdbDate(date, time); + return input2caosdbDate(date, time, subsec); } else { return date; } @@ -975,10 +976,10 @@ var edit_mode = new function () { dateandtime = caosdb2InputDate(property.value); } let date = dateandtime[0]; - if (dateandtime.length == 2) { + if (dateandtime.length > 1) { let time = dateandtime[1]; result = "<span><input type='date' value='" + date + "'/>" + - "<input type='time' value='" + time + "'/></span>"; + "<input type='time' subsec='"+dateandtime[2]+"' value='" + time + "'/></span>"; } else if (property.value && ((property.name || "").toLowerCase() == "year" || (date.match(/-/g) || []).length == 0)) { // Year result = "<input type='number' value='" + date + "'/>"; -- GitLab