diff --git a/src/core/js/caosdb.js b/src/core/js/caosdb.js index a5483d640a070d1736ffff08c14f6406f9faacc7..5eb53a463f2da5072f760a9f5081ef955d1c92db 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 d9c5d1937f0fd6f94f167c2364fe1f800d823fe3..beff84e1decc6b9bd77c5e2cae385032cb6c589e 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 + "'/>";