From 84fd30f357b2a205c4a95b7c96eba6183e858687 Mon Sep 17 00:00:00 2001 From: MatthewHana Date: Mon, 18 Mar 2024 06:40:14 +1100 Subject: [PATCH] Add HREF validity functions with documentation --- radicale/web/internal_data/fn.js | 34 ++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/radicale/web/internal_data/fn.js b/radicale/web/internal_data/fn.js index 85818473..a9170e35 100644 --- a/radicale/web/internal_data/fn.js +++ b/radicale/web/internal_data/fn.js @@ -1352,6 +1352,40 @@ function bytesToHumanReadable(bytes, dp=1) { return (bytes / Math.pow(1024, i)).toFixed(dp) * 1 + ' ' + ['b', 'kb', 'mb', 'gb', 'tb'][i]; } +/** + * Removed invalid HREF characters for a collection HREF. + * + * @param a A valid Input element or an onchange Event of an Input element. + */ +function cleanHREFinput(a) { + let href_form = a; + if (a.target) { + href_form = a.target; + } + let currentTxtVal = href_form.value.trim().toLowerCase(); + //Clean the HREF to remove non lowercase letters and dashes + currentTxtVal = currentTxtVal.replace(/(?![0-9a-z\-\_])./g, ''); + href_form.value = currentTxtVal; +} + +/** + * Checks if a proposed HREF for a collection has a valid format and syntax. + * + * @param href String of the porposed HREF. + * + * @return Boolean results if the HREF is valid. + */ +function isValidHREF(href) { + if (href.length < 1) { + return false; + } + if (href.indexOf("/") != -1) { + return false; + } + + return true; +} + function main() { // Hide startup loading message document.getElementById("loadingscene").classList.add("hidden");