From 1d8ea14dd2372e4e73d47a5eee1bb1cff69d41d3 Mon Sep 17 00:00:00 2001 From: Ethan Dalool Date: Sat, 22 Jul 2023 17:21:25 -0700 Subject: [PATCH] Match common.js. --- frontends/etiquette_flask/static/js/common.js | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/frontends/etiquette_flask/static/js/common.js b/frontends/etiquette_flask/static/js/common.js index 73f0b98..86957e0 100644 --- a/frontends/etiquette_flask/static/js/common.js +++ b/frontends/etiquette_flask/static/js/common.js @@ -71,6 +71,54 @@ function join_and_trail(list, separator) return list.join(separator) + separator } +common.hms_render_colons = +function hms_render_colons(hours, minutes, seconds) +{ + const parts = []; + if (hours !== null) + { + parts.push(hours.toLocaleString(undefined, {minimumIntegerDigits: 2})); + } + if (minutes !== null) + { + parts.push(minutes.toLocaleString(undefined, {minimumIntegerDigits: 2})); + } + parts.push(seconds.toLocaleString(undefined, {minimumIntegerDigits: 2})); + return parts.join(":") +} + +common.seconds_to_hms = +function seconds_to_hms(seconds, args) +{ + args = args || {}; + const renderer = args["renderer"] || common.hms_render_colons; + const force_minutes = args["force_minutes"] || false; + const force_hours = args["force_hours"] || false; + + if (seconds > 0 && seconds < 1) + { + seconds = 1; + } + else + { + seconds = Math.round(seconds); + } + let minutes = Math.floor(seconds / 60); + seconds = seconds % 60; + let hours = Math.floor(minutes / 60); + minutes = minutes % 60; + + if (hours == 0 && force_hours == false) + { + hours = null; + } + if (minutes == 0 && force_minutes == false) + { + minutes = null; + } + return renderer(hours, minutes, seconds); +} + //////////////////////////////////////////////////////////////////////////////////////////////////// // HTML & DOM ////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////