From c424477872e72e9556658f2558c54f6c33f44234 Mon Sep 17 00:00:00 2001 From: Natalia Luzuriaga Date: Tue, 4 Mar 2025 13:37:55 -0800 Subject: [PATCH 1/6] Added copy to clipboard functionality Signed-off-by: Natalia Luzuriaga --- js/formDataToJson.js | 23 ++++++++++++++++------- js/generateFormComponents.js | 4 ++-- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/js/formDataToJson.js b/js/formDataToJson.js index d657683..3714055 100644 --- a/js/formDataToJson.js +++ b/js/formDataToJson.js @@ -73,21 +73,30 @@ async function populateCodeJson(data) { return codeJson; } +async function copyToClipboard(event){ + event.preventDefault(); + var textArea = document.getElementById("json-result"); + textArea.select(); + document.execCommand("copy") +} + // Creates code.json and triggers file download async function downloadFile(data) { delete data.submit; const codeJson = await populateCodeJson(data); const jsonString = JSON.stringify(codeJson, null, 2); - const blob = new Blob([jsonString], { type: "application/json" }); + // const blob = new Blob([jsonString], { type: "application/json" }); + document.getElementById("json-result").value = jsonString; - // Create anchor element and create download link - const link = document.createElement("a"); - link.href = URL.createObjectURL(blob); - link.download = "code.json"; + // // Create anchor element and create download link + // const link = document.createElement("a"); + // link.href = URL.createObjectURL(blob); + // link.download = "code.json"; - // Trigger the download - link.click(); + // // Trigger the download + // link.click(); } window.downloadFile = downloadFile; +window.copyToClipboard = copyToClipboard; diff --git a/js/generateFormComponents.js b/js/generateFormComponents.js index d9e3086..b92fdb3 100644 --- a/js/generateFormComponents.js +++ b/js/generateFormComponents.js @@ -299,7 +299,7 @@ async function createFormComponents() { // Add submit button to form components.push({ type: "button", - label: "Submit", + label: "Create code.json metadata", key: "submit", disableOnInvalid: false, input: true, @@ -311,4 +311,4 @@ async function createFormComponents() { return components; } -window.createFormComponents = createFormComponents; +window.createFormComponents = createFormComponents; \ No newline at end of file From 1e7aad6abbc53026679c755438a764938753b020 Mon Sep 17 00:00:00 2001 From: Natalia Luzuriaga Date: Tue, 4 Mar 2025 13:38:13 -0800 Subject: [PATCH 2/6] Added favicon Signed-off-by: Natalia Luzuriaga --- favicon.ico | Bin 0 -> 15086 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 favicon.ico diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a0e1976ba38dcfd607d4e771812287aa5f00548a GIT binary patch literal 15086 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 E4+%*;J^%m! literal 0 HcmV?d00001 From f14f2f4707128c1137eaf5f01d07b56578480ca5 Mon Sep 17 00:00:00 2001 From: Natalia Luzuriaga Date: Tue, 4 Mar 2025 13:54:44 -0800 Subject: [PATCH 3/6] Updated local file download functionality Signed-off-by: Natalia Luzuriaga --- index.html | 6 +++++- js/formDataToJson.js | 41 +++++++++++++++++++++++++++-------------- 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/index.html b/index.html index 5702d28..2b6445a 100644 --- a/index.html +++ b/index.html @@ -40,7 +40,7 @@ }).then(function (form) { form.on("submit", function (submission) { console.log("form submission here:", submission); - downloadFile(submission.data); + createCodeJson(submission.data); }); }); }) @@ -52,5 +52,9 @@
+
+ + +
diff --git a/js/formDataToJson.js b/js/formDataToJson.js index 3714055..5ab724b 100644 --- a/js/formDataToJson.js +++ b/js/formDataToJson.js @@ -73,30 +73,43 @@ async function populateCodeJson(data) { return codeJson; } +// Creates code.json object +async function createCodeJson(data) { + delete data.submit; + const codeJson = await populateCodeJson(data); + + const jsonString = JSON.stringify(codeJson, null, 2); + // const blob = new Blob([jsonString], { type: "application/json" }); + document.getElementById("json-result").value = jsonString; +} + +// Copies code.json to clipboard async function copyToClipboard(event){ event.preventDefault(); + var textArea = document.getElementById("json-result"); textArea.select(); document.execCommand("copy") } -// Creates code.json and triggers file download -async function downloadFile(data) { - delete data.submit; - const codeJson = await populateCodeJson(data); +// Triggers local file download +async function downloadFile(event) { + event.preventDefault(); - const jsonString = JSON.stringify(codeJson, null, 2); - // const blob = new Blob([jsonString], { type: "application/json" }); - document.getElementById("json-result").value = jsonString; + const codeJson = document.getElementById("json-result").value + const jsonObject = JSON.parse(codeJson); + const jsonString = JSON.stringify(jsonObject, null, 2); + const blob = new Blob([jsonString], { type: "application/json" }); - // // Create anchor element and create download link - // const link = document.createElement("a"); - // link.href = URL.createObjectURL(blob); - // link.download = "code.json"; + // Create anchor element and create download link + const link = document.createElement("a"); + link.href = URL.createObjectURL(blob); + link.download = "code.json"; - // // Trigger the download - // link.click(); + // Trigger the download + link.click(); } -window.downloadFile = downloadFile; +window.createCodeJson = createCodeJson; window.copyToClipboard = copyToClipboard; +window.downloadFile = downloadFile; From ce73f7447057f9bc0b37859aa3b0b1322e4d2286 Mon Sep 17 00:00:00 2001 From: Natalia Luzuriaga Date: Tue, 4 Mar 2025 14:04:02 -0800 Subject: [PATCH 4/6] Removed extraneous comment Signed-off-by: Natalia Luzuriaga --- js/formDataToJson.js | 1 - 1 file changed, 1 deletion(-) diff --git a/js/formDataToJson.js b/js/formDataToJson.js index 5ab724b..f517caf 100644 --- a/js/formDataToJson.js +++ b/js/formDataToJson.js @@ -79,7 +79,6 @@ async function createCodeJson(data) { const codeJson = await populateCodeJson(data); const jsonString = JSON.stringify(codeJson, null, 2); - // const blob = new Blob([jsonString], { type: "application/json" }); document.getElementById("json-result").value = jsonString; } From 30b289bffd53908e6a6c02b8f09f88027cadba84 Mon Sep 17 00:00:00 2001 From: Natalia Luzuriaga Date: Wed, 5 Mar 2025 14:40:11 -0800 Subject: [PATCH 5/6] Updated submit button label Signed-off-by: Natalia Luzuriaga --- js/generateFormComponents.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/generateFormComponents.js b/js/generateFormComponents.js index b92fdb3..e386038 100644 --- a/js/generateFormComponents.js +++ b/js/generateFormComponents.js @@ -299,7 +299,7 @@ async function createFormComponents() { // Add submit button to form components.push({ type: "button", - label: "Create code.json metadata", + label: "Generate code.json metadata", key: "submit", disableOnInvalid: false, input: true, From 770facd9aafc5a1bd94931b0348a90e46be06c7d Mon Sep 17 00:00:00 2001 From: Natalia Luzuriaga Date: Fri, 7 Mar 2025 11:30:16 -0800 Subject: [PATCH 6/6] Edited styling of buttons Signed-off-by: Natalia Luzuriaga --- css/styles.css | 4 ++++ index.html | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/css/styles.css b/css/styles.css index 4a1055a..143e902 100644 --- a/css/styles.css +++ b/css/styles.css @@ -1,3 +1,7 @@ body { margin: 20px; +} + +textarea { + margin-bottom: 10px; } \ No newline at end of file diff --git a/index.html b/index.html index 2b6445a..ed04630 100644 --- a/index.html +++ b/index.html @@ -53,8 +53,10 @@
- - + + + +