[fix] fallback-datetime-input

This commit is contained in:
fenris 2026-03-31 19:15:57 +02:00
parent 9fdafe3536
commit 05d1d67936

View file

@ -316,7 +316,11 @@ namespace _dali.helpers
date : string; date : string;
time : string; time : string;
}, },
lib_plankton.pit.type_datetime (
null
|
lib_plankton.pit.type_datetime
)
>( >(
new lib_plankton.zoo_input.class_input_group( new lib_plankton.zoo_input.class_input_group(
[ [
@ -343,50 +347,91 @@ namespace _dali.helpers
] ]
), ),
(inner) => { (inner) => {
const date_parts : Array<string> = inner.date.split("-"); if (inner === null)
const time_parts : Array<string> = inner.time.split(":"); {
const datetime_raw : lib_plankton.pit.type_datetime = { return null;
"timezone_shift": 0, }
"date": { else
"year": parseInt(date_parts[0]), {
"month": parseInt(date_parts[1]), const date_parts : Array<string> = ((inner.date === "") ? null : inner.date.split("-"));
"day": parseInt(date_parts[2]), const time_parts : (null | Array<string>) = ((inner.time === "") ? null : inner.time.split(":"));
}, const datetime_raw : (null | lib_plankton.pit.type_datetime) = (
"time": { (date_parts === null)
"hour": parseInt(time_parts[0]),
"minute": parseInt(time_parts[1]),
"second": 0,
},
};
return {
"timezone_shift": (
_dali.conf.get().misc.use_central_europe_specific_datetime_inputs
? ?
lib_plankton.pit.timezone_shift_ce(lib_plankton.pit.from_datetime(datetime_raw)) null
: :
0 {
), "timezone_shift": 0,
"date": datetime_raw.date, "date": {
"time": datetime_raw.time, "year": parseInt(date_parts[0]),
}; "month": parseInt(date_parts[1]),
"day": parseInt(date_parts[2]),
},
"time": (
(time_parts === null)
?
null
:
{
"hour": parseInt(time_parts[0]),
"minute": parseInt(time_parts[1]),
"second": 0,
}
),
}
);
return (
(datetime_raw === null)
?
null
:
{
"timezone_shift": (
_dali.conf.get().misc.use_central_europe_specific_datetime_inputs
?
lib_plankton.pit.timezone_shift_ce(lib_plankton.pit.from_datetime(datetime_raw))
:
0
),
"date": datetime_raw.date,
"time": datetime_raw.time,
}
);
}
}, },
(outer) => { (outer) => {
return { if (outer === null)
"date": lib_plankton.string.coin( {
"{{year}}-{{month}}-{{day}}", return {
{ "date": "",
"year": outer.date.year.toFixed(0).padStart(4, "0"), "time": "",
"month": outer.date.month.toFixed(0).padStart(2, "0"), };
"day": outer.date.day.toFixed(0).padStart(2, "0"), }
} else
), {
"time": lib_plankton.string.coin( return {
"{{hour}}:{{minute}}", "date": lib_plankton.string.coin(
{ "{{year}}-{{month}}-{{day}}",
"hour": outer.time.hour.toFixed(0).padStart(2, "0"), {
"minute": outer.time.minute.toFixed(0).padStart(2, "0"), "year": outer.date.year.toFixed(0).padStart(4, "0"),
} "month": outer.date.month.toFixed(0).padStart(2, "0"),
), "day": outer.date.day.toFixed(0).padStart(2, "0"),
}
),
"time": (
(outer.time === null)
?
""
:
lib_plankton.string.coin(
"{{hour}}:{{minute}}",
{
"hour": outer.time.hour.toFixed(0).padStart(2, "0"),
"minute": outer.time.minute.toFixed(0).padStart(2, "0"),
}
)
),
};
} }
} }
) )