diff --git a/js/2.0.2/evts.js b/js/2.0.2/evts.js index 4f955ca..d7de4af 100644 --- a/js/2.0.2/evts.js +++ b/js/2.0.2/evts.js @@ -78,14 +78,6 @@ function handleOnBlur(t) { activeState.lastElement = t.id; } -function clickClearForm() { - //document.activeElement.blur(); - //document.getElementById("sidebar").focus(); - clearData("userInput"); - let lT = activeState.loadedTemplate; - loadTemplate(lT); -} - function hideMenus(evt) { if (evt === undefined) return; if (evt != "force" && evt.target.parentElement != null) { @@ -311,7 +303,6 @@ export { showTextBlocks, insertTextBlocks, handleOnBlur, - clickClearForm, modalNotifier, clickImportFiles, resetNavBar, diff --git a/js/2.0.2/files.js b/js/2.0.2/files.js index 621e052..5024b40 100644 --- a/js/2.0.2/files.js +++ b/js/2.0.2/files.js @@ -4,7 +4,7 @@ import { retrieveData, } from "./storage.js"; import { loadTemplate } from "./web.js"; -import parseFormOnSubmit from "./parseForm.js"; +import parseForm from "./parseForm.js"; import { copyToClipBoard, modalNotifier, resetNavBar } from "./evts.js"; import { passwordHash } from "./scripts.js"; @@ -153,7 +153,22 @@ function loadFileDivCallBack() { fileDisplay.appendChild(title); let div = document.createElement("div"); - let parsedTemplate = parseFormOnSubmit(false, true); + let parsedTemplate = parseForm(true); + + if (parsedTemplate == null) { + let wrapper = document.createElement("div"); + wrapper.innerHTML = mainFormPlaceholder("Error: file empty"); + let div = wrapper.firstChild; + parsedTemplate = div; + } + + if (parsedTemplate == "") { + let wrapper = document.createElement("div"); + wrapper.innerHTML = mainFormPlaceholder("File empty"); + let div = wrapper.firstChild; + parsedTemplate = div; + } + div.appendChild(parsedTemplate); fileDisplay.appendChild(div); @@ -231,7 +246,7 @@ function clearFileData(storData) { storeData("templateFiles", newArray); clearData(fileName); - clearData("userInput"); + clearData("userInputForce"); document.getElementById("mainForm").innerHTML = ""; document.getElementById("output").innerHTML = ""; diff --git a/js/2.0.2/form.js b/js/2.0.2/form.js index b0c15d5..6be250e 100644 --- a/js/2.0.2/form.js +++ b/js/2.0.2/form.js @@ -1,9 +1,9 @@ -import { storeData, createStorageObj } from "./storage.js"; +import { retrieveData, storeData, createStorageObj } from "./storage.js"; import parseInput from "./parseTemplate.js"; import transformTemplateObject from "./buildForm.js"; -import { handleOnBlur, modalNotifier } from "./evts.js"; -import parseFormOnSubmit, { parseTextMarkups } from "./parseForm.js"; +import { copyToClipBoard, handleOnBlur, modalNotifier } from "./evts.js"; +import parseForm, { parseTextMarkups } from "./parseForm.js"; import { setTemplatePreset } from "./web.js"; function buildForm(templateInput, loadOnly = false) { @@ -225,7 +225,7 @@ function formEvts() { switch (e.target.value) { case "Copy": createStorageObj("copy"); - parseFormOnSubmit(); + copyToClipBoard(parseForm()); e.target.className = e.target.className.replace(" w3-grey", " w3-flat-carrot"); e.target.style.pointerEvents = "none"; e.target.value = "Copied"; @@ -256,15 +256,15 @@ function formEvts() { document.getElementById("sidebar").addEventListener("click", (e) => { if (e.target) { if (e.target.id == "sb-submit") { - createStorageObj("save"); - parseFormOnSubmit(); + createStorageObj("copy"); + copyToClipBoard(parseForm()); modalNotifier("File saved and copied to clipboard", activeState.settings.notifierPause); } if (e.target.id == "sb-setform") { createStorageObj("setform"); - let dataArray = parseFormOnSubmit(true); + let dataArray = retrieveData("userInput"); let lT = activeState.loadedTemplate; - setTemplatePreset(lT, JSON.stringify(dataArray)); + setTemplatePreset(lT, dataArray); modalNotifier("Input saved as preset", activeState.settings.notifierPause); } if (e.target.id == "sb-item") { diff --git a/js/2.0.2/init.js b/js/2.0.2/init.js index d865453..8201bbe 100644 --- a/js/2.0.2/init.js +++ b/js/2.0.2/init.js @@ -5,14 +5,15 @@ import { showTextBlocks, clickImportFiles, modalNotifier, - printVersion + printVersion, + copyToClipBoard } from "./evts.js"; import { buildFile } from "./files.js"; import setPassword, { passwordHash, inputRead } from "./scripts.js"; -import parseFormOnSubmit from "./parseForm.js"; +import parseForm from "./parseForm.js"; import { createStorageObj, storeSettings } from "./storage.js"; import { loadNavBar, initTextBlocks, loadNewTemplate } from "./web.js"; @@ -147,7 +148,7 @@ function eventListeners() { inputRead.read(e); if (e.ctrlKey && e.key == "s") { createStorageObj("copy"); - parseFormOnSubmit(); + copyToClipBoard(parseForm()); modalNotifier("File copied to clipboard", activeState.settings.notifierPause); let copyButton = document.getElementById("fromCopyBtn"); copyButton.className = "w3-button w3-flat-carrot"; diff --git a/js/2.0.2/parseForm.js b/js/2.0.2/parseForm.js index c95547d..aa2e351 100644 --- a/js/2.0.2/parseForm.js +++ b/js/2.0.2/parseForm.js @@ -1,34 +1,22 @@ -import { copyToClipBoard } from "./evts.js"; -import { storeData, clearData, retrieveData } from "./storage.js"; +import { clearData, retrieveData } from "./storage.js"; -function parseFormOnSubmit(returnJSON = false, parseOnly = false) { - //event.preventDefault; +function parseForm(returnDIV = false) { + //get user Inout Data from preset or from file let dataArray = []; - - if (parseOnly) { - let lT = activeState.loadedTemplate; - dataArray = retrieveData("userInputForce", lT); - - if (dataArray == null) { - let wrapper = document.createElement("div"); - wrapper.innerHTML = mainFormPlaceholder("Error: file empty"); - let div = wrapper.firstChild; - return div; - } - - if (dataArray.length <= 0) { - let wrapper = document.createElement("div"); - wrapper.innerHTML = mainFormPlaceholder("File empty"); - let div = wrapper.firstChild; - return div; - } - + if (returnDIV) { + dataArray = retrieveData("userInputForce"); + clearData("userInputForce"); } else { dataArray = retrieveData("userInput"); } + //if the decryption went wrong return null + if (dataArray == null) return dataArray; + + //if there are no files yet return empty array + if (dataArray == []) return ""; //get original objects from sessionstorage gen from loadTemplate let objects = activeState.templateObjects; @@ -89,6 +77,7 @@ function parseFormOnSubmit(returnJSON = false, parseOnly = false) { } } + //build final output string by inserting objects b = fullString.substring(0, objects[0].spos); for (let i = 0; i < objects.length; i++) { let j = i + 1; @@ -106,7 +95,7 @@ function parseFormOnSubmit(returnJSON = false, parseOnly = false) { } } - //sanitizing + //sanitizing final output string let bHtml = b; bHtml = bHtml.replace(/ /g, " "); bHtml = bHtml.replace(/(?:\r\n|\r|\n)/g, "
"); @@ -122,6 +111,7 @@ function parseFormOnSubmit(returnJSON = false, parseOnly = false) { bHtml = bHtml.replace(/!ls /g, " ○ "); } + //creating output div let divContent = document.createElement("div"); divContent.style.fontFamily = activeState.settings.font + ", Helvetica, sans-serif"; divContent.style.fontSize = activeState.settings.fontSize; @@ -132,17 +122,10 @@ function parseFormOnSubmit(returnJSON = false, parseOnly = false) { div.id = "fileDisplay"; div.appendChild(divContent); - if (parseOnly) { + if (returnDIV) { return div; - } - - storeData("userInput", dataArray); - clearData("userInput"); - - if (returnJSON) { - return dataArray; } else { - copyToClipBoard(bHtml); + return bHtml; } } @@ -387,8 +370,5 @@ function loadTextBlocks() { return textBlocksObject; } - function mainFormPlaceholder(msg) { - return "

" + msg + "












"; - } - export default parseFormOnSubmit; \ No newline at end of file + export default parseForm; \ No newline at end of file diff --git a/js/2.0.2/storage.js b/js/2.0.2/storage.js index 7782b59..fa0f403 100644 --- a/js/2.0.2/storage.js +++ b/js/2.0.2/storage.js @@ -154,6 +154,8 @@ function retrieveData(name, template = "none") { function clearData(name, template = "none") { let lT; let key; + if (name == "userInputForce") name = "userInput"; + if (template == "none") { lT = activeState.loadedTemplate; key = name + "_m21_" + lT; diff --git a/js/2.0.2/web.js b/js/2.0.2/web.js index a3491df..d6f236a 100644 --- a/js/2.0.2/web.js +++ b/js/2.0.2/web.js @@ -47,6 +47,7 @@ function loadTemplate(template, newFlag = false, loadOnly = false) { cdata = retrieveData("templatePreset", template); } else { cdata = retrieveData("userInputForce"); + clearData("userInputForce"); } if (cdata != "") { if (cdata != null) { @@ -212,7 +213,7 @@ function setTemplatePreset(template, formData) { }; let data = { template: template, - data: formData, + data: JSON.stringify(formData), }; xhttp.send(JSON.stringify(data)); diff --git a/template/Simple-form.txt b/template/Simple-form.txt index 79a81e2..ad188eb 100644 --- a/template/Simple-form.txt +++ b/template/Simple-form.txt @@ -1 +1 @@ -[{"value":"Folgetermin Sozialdienst","name":"Termin_Sozialdienst"},{"value":"Pat.","name":"Involvierte_Personen"},{"value":"","name":""},{"value":"","name":""},{"value":"","name":""},{"value":"","name":""},{"value":"","name":""},{"value":"","name":""},{"value":"","name":""},{"value":"","name":""},{"value":"","name":""},{"value":"","name":"Eintrag_in_Listenform"},{"value":"!none","name":"Procedere_einblenden"},{"value":"","name":""},{"value":"","name":""},{"value":"","name":""},{"value":"","name":""},{"value":"","name":""},{"value":"","name":""},{"value":"","name":""},{"value":"","name":""},{"value":"","name":""},{"value":"","name":"cl-Procedere:!l"}] \ No newline at end of file +[{"value":"Folgetermin Sozialdienst","name":"Termin_Sozialdienst"},{"value":"Pat.","name":"Involvierte_Personen"},{"value":"","name":""},{"value":"","name":""},{"value":"","name":""},{"value":"","name":""},{"value":"","name":""},{"value":"","name":""},{"value":"","name":""},{"value":"","name":""},{"value":"","name":""},{"value":"

","name":"Eintrag_in_Listenform"},{"value":"!none","name":"clM-Procedere_einblenden"},{"value":"","name":""},{"value":"","name":""},{"value":"","name":""},{"value":"","name":""},{"value":"","name":""},{"value":"","name":""},{"value":"","name":""},{"value":"","name":""},{"value":"","name":""},{"value":"","name":"cl-Procedere:!l"}] \ No newline at end of file