fixed parsedonsubmit and default userInput

implemented ts_copy
This commit is contained in:
maru21 2023-11-06 16:51:26 +01:00
parent e15a291498
commit aa6b528147
9 changed files with 91 additions and 78 deletions

View File

@ -39,7 +39,10 @@ function createTemplate(template = false) {
let outputDiv = document.getElementById("output"); let outputDiv = document.getElementById("output");
let submitContainerDiv = document.getElementById("submitContainer"); let submitContainerDiv = document.getElementById("submitContainer");
let sidebarDiv = document.getElementById("sidebar"); let sidebarDiv = document.getElementById("sidebar");
let fileInfoDiv = document.getElementById("outputInfo");
fileInfoDiv.innerHTML = "";
fileInfoDiv.replaceWith(fileInfoDiv.cloneNode(true));
mainFormDiv.innerHTML = ""; mainFormDiv.innerHTML = "";
mainFormDiv.replaceWith(mainFormDiv.cloneNode(true)); mainFormDiv.replaceWith(mainFormDiv.cloneNode(true));
outputDiv.innerHTML = ""; outputDiv.innerHTML = "";

View File

@ -89,28 +89,6 @@ function loadFileDiv(fileName, template, pos) {
loadTemplate(template, false, true); loadTemplate(template, false, true);
//append TS info
let fileInfoDiv = document.getElementById("outputInfo");
let tF = retrieveData("templateFiles");
console.log(tF[pos].metadata.ts_save.current_date);
let tsCreate = tF[pos].metadata.ts_create;
tsCreate = tsCreate.current_time_long+" "+tsCreate.current_date+"."+tsCreate.current_year;
let created = "";
if (tsCreate != undefined) {
created = "created at: "+tsCreate;
}
let tsSave = tF[pos].metadata.ts_save;
tsSave = tsSave.current_time_long+" "+tsSave.current_date+"."+tsSave.current_year;
let lastSaved = "";
if (tF[pos].metadata.ts_save != "") {
lastSaved = " | last saved at: "+tsSave;
}
fileInfoDiv.innerHTML = "<p>"+created+lastSaved+" | template: "+template+"</p>";
fileInfoDiv.style.display = "block";
} }
function loadFileDivCallBack() { function loadFileDivCallBack() {
@ -180,12 +158,42 @@ function loadFileDivCallBack() {
fileDisplay.appendChild(div); fileDisplay.appendChild(div);
let ts = document.createElement("p");
ts.innerHTML = ""
//fileDisplay.appendChild(ts);
document.getElementById("mainForm").appendChild(fileDisplay); document.getElementById("mainForm").appendChild(fileDisplay);
//append TS info
let fileInfoDiv = document.getElementById("outputInfo");
let pos = "";
tF = retrieveData("templateFiles")
for (let tFi of tF) {
if (tFi.fileName == fN) {
pos = parseInt(tFi.pos);
}
}
let tsCreate = tF[pos].metadata.ts_create;
tsCreate = tsCreate.current_time_long+" "+tsCreate.current_date+"."+tsCreate.current_year;
let created = "";
if (tF[pos].metadata.ts_create != undefined) {
created = "<p>Created at: "+tsCreate+"</p>";
}
let tsSave = tF[pos].metadata.ts_save;
tsSave = tsSave.current_time_long+" "+tsSave.current_date+"."+tsSave.current_year;
let lastSaved = "";
if (tF[pos].metadata.ts_save != "") {
lastSaved = "<p>Last saved at: "+tsSave+"</p>";
}
let tsCopy = tF[pos].metadata.ts_copy;
tsCopy = tsCopy.current_time_long+" "+tsCopy.current_date+"."+tsCopy.current_year;
let lastCopy = "";
if (tF[pos].metadata.ts_copy != "") {
lastCopy = "<p>Last copied at: "+tsCopy+"</p>";
}
fileInfoDiv.innerHTML = "<p><b>Fileinformation:</b></p>"+created+lastSaved+lastCopy+"<p>Template: "+lT+"</p>";
fileInfoDiv.style.display = "block";
//fix min height of file display //fix min height of file display
try { try {
document.getElementById("fileDisplay").style.cssText = "min-height: 300px;"; document.getElementById("fileDisplay").style.cssText = "min-height: 300px;";
@ -227,6 +235,7 @@ function clearFileData(storData) {
document.getElementById("mainForm").innerHTML = ""; document.getElementById("mainForm").innerHTML = "";
document.getElementById("output").innerHTML = ""; document.getElementById("output").innerHTML = "";
document.getElementById("outputInfo").innerHTML = "";
document.getElementById("submitContainer").innerHTML = ""; document.getElementById("submitContainer").innerHTML = "";
document.getElementById("sidebar").innerHTML = ""; document.getElementById("sidebar").innerHTML = "";
document.getElementById("mainForm").innerHTML = mainFormPlaceholder(); document.getElementById("mainForm").innerHTML = mainFormPlaceholder();

View File

@ -80,7 +80,7 @@ function buildForm(templateInput, loadOnly = false) {
let outputDiv = document.getElementById("output"); let outputDiv = document.getElementById("output");
let submitContainerDiv = document.getElementById("submitContainer"); let submitContainerDiv = document.getElementById("submitContainer");
let sidebarDiv = document.getElementById("sidebar"); let sidebarDiv = document.getElementById("sidebar");
//sidebarDiv.replaceWith(sidebarDiv.cloneNode(true)); let fileInfoDiv = document.getElementById("outputInfo");
mainFormDiv.innerHTML = ""; mainFormDiv.innerHTML = "";
mainFormDiv.replaceWith(mainFormDiv.cloneNode(true)); mainFormDiv.replaceWith(mainFormDiv.cloneNode(true));
@ -89,6 +89,9 @@ function buildForm(templateInput, loadOnly = false) {
submitContainerDiv.innerHTML = ""; submitContainerDiv.innerHTML = "";
submitContainerDiv.replaceWith(submitContainerDiv.cloneNode(true)); submitContainerDiv.replaceWith(submitContainerDiv.cloneNode(true));
sidebarDiv.innerHTML = ""; sidebarDiv.innerHTML = "";
fileInfoDiv.innerHTML = "";
fileInfoDiv.replaceWith(fileInfoDiv.cloneNode(true));
fileInfoDiv.style.display = "none";
//finally build html code for Form and siddebar and add it to dom if needed //finally build html code for Form and siddebar and add it to dom if needed
if (loadOnly) {return}; if (loadOnly) {return};
@ -221,7 +224,7 @@ function formEvts() {
if (e.target && e.target.tagName === "INPUT") { if (e.target && e.target.tagName === "INPUT") {
switch (e.target.value) { switch (e.target.value) {
case "Copy": case "Copy":
createStorageObj(); createStorageObj("copy");
parseFormOnSubmit(); parseFormOnSubmit();
e.target.className = e.target.className.replace(" w3-grey", " w3-flat-carrot"); e.target.className = e.target.className.replace(" w3-grey", " w3-flat-carrot");
e.target.style.pointerEvents = "none"; e.target.style.pointerEvents = "none";
@ -234,7 +237,7 @@ function formEvts() {
}, 5000); }, 5000);
break; break;
case "Save": case "Save":
createStorageObj(); createStorageObj("save");
e.target.className = e.target.className.replace(" w3-grey", " w3-flat-nephritis"); e.target.className = e.target.className.replace(" w3-grey", " w3-flat-nephritis");
e.target.style.pointerEvents = "none"; e.target.style.pointerEvents = "none";
modalNotifier(activeState.fileName + " saved", activeState.settings.notifierPause); modalNotifier(activeState.fileName + " saved", activeState.settings.notifierPause);
@ -253,10 +256,12 @@ function formEvts() {
document.getElementById("sidebar").addEventListener("click", (e) => { document.getElementById("sidebar").addEventListener("click", (e) => {
if (e.target) { if (e.target) {
if (e.target.id == "sb-submit") { if (e.target.id == "sb-submit") {
createStorageObj("save");
parseFormOnSubmit(); parseFormOnSubmit();
modalNotifier("File saved and copied to clipboard", activeState.settings.notifierPause); modalNotifier("File saved and copied to clipboard", activeState.settings.notifierPause);
} }
if (e.target.id == "sb-setform") { if (e.target.id == "sb-setform") {
createStorageObj("setform");
let dataArray = parseFormOnSubmit(true); let dataArray = parseFormOnSubmit(true);
let lT = activeState.loadedTemplate; let lT = activeState.loadedTemplate;
setTemplatePreset(lT, JSON.stringify(dataArray)); setTemplatePreset(lT, JSON.stringify(dataArray));

View File

@ -146,7 +146,7 @@ function eventListeners() {
if (activeState.activePage == "template") { if (activeState.activePage == "template") {
inputRead.read(e); inputRead.read(e);
if (e.ctrlKey && e.key == "s") { if (e.ctrlKey && e.key == "s") {
createStorageObj(); createStorageObj("copy");
parseFormOnSubmit(); parseFormOnSubmit();
modalNotifier("File copied to clipboard", activeState.settings.notifierPause); modalNotifier("File copied to clipboard", activeState.settings.notifierPause);
let copyButton = document.getElementById("fromCopyBtn"); let copyButton = document.getElementById("fromCopyBtn");

View File

@ -1,5 +1,4 @@
import { sanitize } from "./scripts.js"; import { storeData, clearData, retrieveData, setCurrentFileName } from "./storage.js";
import { storeData, clearData, retrieveData } from "./storage.js";
function parseFormOnSubmit(returnJSON = false, parseOnly = false) { function parseFormOnSubmit(returnJSON = false, parseOnly = false) {
//event.preventDefault; //event.preventDefault;
@ -25,26 +24,7 @@ function parseFormOnSubmit(returnJSON = false, parseOnly = false) {
} }
} else { } else {
let x = document.getElementById("mainFormObj"); dataArray = retrieveData("userInput");
if (x != null) {
for (let i = 0; i < x.length; i++) {
dataArray.push({
value: x.elements[i].value,
name: x.elements[i].name,
});
}
}
//set filename to active state according to userFileName field from loadTemplate
let userFileNameField = document.getElementById("userFileName");
let userFileName = sanitize(userFileNameField.value);
let userFileNamePH = userFileNameField.getAttribute("placeholder");
if (userFileName.length != 0) {
activeState.fileName = userFileName;
} else if (userFileNamePH != null) {
activeState.fileName = userFileNamePH;
}
} }

View File

@ -175,7 +175,7 @@ export const inputRead = {
i.classList.add("fa", "fa-save"); i.classList.add("fa", "fa-save");
this.target.appendChild(i); this.target.appendChild(i);
this.lastExecId = setTimeout(() => { this.lastExecId = setTimeout(() => {
createStorageObj(); createStorageObj("save");
this.target.style.borderBottom = "none"; this.target.style.borderBottom = "none";
this.target.innerHTML = ""; this.target.innerHTML = "";
let i = document.createElement("i"); let i = document.createElement("i");

View File

@ -32,7 +32,10 @@ const buildSettings = () => {
let outputDiv = document.getElementById("output"); let outputDiv = document.getElementById("output");
let submitContainerDiv = document.getElementById("submitContainer"); let submitContainerDiv = document.getElementById("submitContainer");
let sidebarDiv = document.getElementById("sidebar"); let sidebarDiv = document.getElementById("sidebar");
let fileInfoDiv = document.getElementById("outputInfo");
fileInfoDiv.innerHTML = "";
fileInfoDiv.replaceWith(fileInfoDiv.cloneNode(true));
mainFormDiv.innerHTML = ""; mainFormDiv.innerHTML = "";
mainFormDiv.replaceWith(mainFormDiv.cloneNode(true)); mainFormDiv.replaceWith(mainFormDiv.cloneNode(true));
outputDiv.innerHTML = ""; outputDiv.innerHTML = "";

View File

@ -52,7 +52,7 @@ function debug(mode, key, data) {
return data; return data;
} }
function createStorageObj() { function createStorageObj(ref = "none") {
let x = document.getElementById("mainFormObj"); let x = document.getElementById("mainFormObj");
let dataArray = []; let dataArray = [];
if (x == null) { if (x == null) {
@ -66,20 +66,8 @@ function createStorageObj() {
} }
//console.log(this, dataArray); //console.log(this, dataArray);
//set current filename according to filenamefield
let userFileNameField = document.getElementById("userFileName"); setCurrentFileName();
let userFileName = sanitize(userFileNameField.value);
let userFileNamePH = userFileNameField.getAttribute("placeholder");
if (userFileName.length != 0) {
activeState.fileName = userFileName;
//clear old data as file switches to new filename
if (userFileNamePH.length != 0) {
clearData(userFileNamePH);
popFromTemplateFiles(userFileNamePH);
}
} else if (userFileNamePH.length != 0) {
activeState.fileName = userFileNamePH;
}
//set savetime in templateFiles //set savetime in templateFiles
if (activeState.fileName != "") { if (activeState.fileName != "") {
@ -88,7 +76,15 @@ function createStorageObj() {
let c = 0; let c = 0;
for (let tFi of tF) { for (let tFi of tF) {
if (tFi.fileName == activeState.fileName) { if (tFi.fileName == activeState.fileName) {
switch (ref) {
case "save":
tF[c].metadata.ts_save = getCurrentDate(); tF[c].metadata.ts_save = getCurrentDate();
break;
case "copy":
console.log("copy");
tF[c].metadata.ts_copy = getCurrentDate();
break;
}
storeData("templateFiles", tF); storeData("templateFiles", tF);
} }
c += 1; c += 1;
@ -119,11 +115,10 @@ function storeData(name, data) {
function retrieveData(name, template = "none") { function retrieveData(name, template = "none") {
if (passwordHash == "") return null; if (passwordHash == "") return null;
if (name == "userInput") { if (name == "userInput") {
let tF = retrieveData("templateFiles"); if (activeState.fileName != "") {
if (tF == null) { name = activeState.fileName;
return [];
} else { } else {
name = tF[tF.length - 1].fileName; return [];
} }
} }
if (name == "userInputForce") { if (name == "userInputForce") {
@ -172,7 +167,7 @@ function clearData(name, template = "none") {
store.removeItem(key); store.removeItem(key);
} }
function getFileName(ref = "none") { function getFileName() {
let currentFileName = activeState.fileName; let currentFileName = activeState.fileName;
let lT = activeState.loadedTemplate; let lT = activeState.loadedTemplate;
if (currentFileName == "none" || currentFileName == "") { if (currentFileName == "none" || currentFileName == "") {
@ -185,13 +180,13 @@ function getFileName(ref = "none") {
const metadata = { const metadata = {
ts_create: getCurrentDate(), ts_create: getCurrentDate(),
ts_save: "", ts_save: "",
ts_copy: "",
id: cyrb53(currentFileName), id: cyrb53(currentFileName),
}; };
if (tF.length != 0) { if (tF.length != 0) {
for (let tFi of tF) { for (let tFi of tF) {
if (tFi.fileName == currentFileName) { if (tFi.fileName == currentFileName) {
console.log("found", tFi);
return currentFileName; return currentFileName;
} }
} }
@ -199,7 +194,7 @@ function getFileName(ref = "none") {
fileName: currentFileName, fileName: currentFileName,
template: lT, template: lT,
metadata: metadata, metadata: metadata,
pos: tF.length - 1, pos: tF.length,
}); });
} else { } else {
tF = [ tF = [
@ -316,6 +311,23 @@ function clearStorage() {
store.clear(); store.clear();
} }
function setCurrentFileName() {
activeState.fileName = "";
let userFileNameField = document.getElementById("userFileName");
let userFileName = sanitize(userFileNameField.value);
let userFileNamePH = userFileNameField.getAttribute("placeholder");
if (userFileName.length != 0) {
activeState.fileName = userFileName;
//clear old data as file switches to new filename
if (userFileNamePH.length != 0) {
clearData(userFileNamePH);
popFromTemplateFiles(userFileNamePH);
}
} else if (userFileNamePH.length != 0) {
activeState.fileName = userFileNamePH;
}
}
export { export {
createStorageObj, createStorageObj,
storeData, storeData,
@ -326,4 +338,5 @@ export {
importBookShelf, importBookShelf,
storeSettings, storeSettings,
clearStorage, clearStorage,
setCurrentFileName
}; };

View File

@ -1 +1 @@
[{"value":"Folgetermin Sozialdienst","name":"Termin_Sozialdienst"},{"value":"Pat.","name":"Involvierte_Personen"},{"value":"","name":"Eintrag_in_Listenform"},{"value":"!none","name":"Procedere_einblenden"},{"value":"","name":"cl-Procedere:!l"}] [{"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"}]