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 submitContainerDiv = document.getElementById("submitContainer");
let sidebarDiv = document.getElementById("sidebar");
let fileInfoDiv = document.getElementById("outputInfo");
fileInfoDiv.innerHTML = "";
fileInfoDiv.replaceWith(fileInfoDiv.cloneNode(true));
mainFormDiv.innerHTML = "";
mainFormDiv.replaceWith(mainFormDiv.cloneNode(true));
outputDiv.innerHTML = "";

View File

@ -88,28 +88,6 @@ function loadFileDiv(fileName, template, pos) {
storeData("userInputForce", retrieveData(fileName, template));
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";
}
@ -180,12 +158,42 @@ function loadFileDivCallBack() {
fileDisplay.appendChild(div);
let ts = document.createElement("p");
ts.innerHTML = ""
//fileDisplay.appendChild(ts);
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
try {
document.getElementById("fileDisplay").style.cssText = "min-height: 300px;";
@ -227,6 +235,7 @@ function clearFileData(storData) {
document.getElementById("mainForm").innerHTML = "";
document.getElementById("output").innerHTML = "";
document.getElementById("outputInfo").innerHTML = "";
document.getElementById("submitContainer").innerHTML = "";
document.getElementById("sidebar").innerHTML = "";
document.getElementById("mainForm").innerHTML = mainFormPlaceholder();

View File

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

View File

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

View File

@ -1,5 +1,4 @@
import { sanitize } from "./scripts.js";
import { storeData, clearData, retrieveData } from "./storage.js";
import { storeData, clearData, retrieveData, setCurrentFileName } from "./storage.js";
function parseFormOnSubmit(returnJSON = false, parseOnly = false) {
//event.preventDefault;
@ -25,26 +24,7 @@ function parseFormOnSubmit(returnJSON = false, parseOnly = false) {
}
} else {
let x = document.getElementById("mainFormObj");
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;
}
dataArray = retrieveData("userInput");
}

View File

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

View File

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

View File

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