From 9fc05b97d3837f77b90d3e4deb116f4d9c180e51 Mon Sep 17 00:00:00 2001 From: maru21 Date: Mon, 6 Nov 2023 00:00:41 +0100 Subject: [PATCH] implemented title and fixed empty results cause newline --- index.html | 7 +++++++ js/2.0.2/buildForm.js | 18 ++++++++++++++++++ js/2.0.2/files.js | 5 +---- js/2.0.2/form.js | 2 ++ js/2.0.2/init.js | 1 + js/2.0.2/parseForm.js | 6 +++++- template/testing.txt | 5 +++-- 7 files changed, 37 insertions(+), 7 deletions(-) diff --git a/index.html b/index.html index e83001e..71b010e 100644 --- a/index.html +++ b/index.html @@ -216,6 +216,7 @@ hiddenField
current_time
current_date
+ title
markup:title
And these are the markups you can add:
title
@@ -253,6 +254,12 @@ >
You can also have multiple hidden fields selectable by a list +
  • + For titles in form
    + Use + %Sample Expression=title%1 +
  • You can also use markups in the template file at the beginning of a line.
    diff --git a/js/2.0.2/buildForm.js b/js/2.0.2/buildForm.js index 9a6f50b..c2413d3 100644 --- a/js/2.0.2/buildForm.js +++ b/js/2.0.2/buildForm.js @@ -318,6 +318,17 @@ function buildField(obj, form, sidebarList) { div.appendChild(label); div.appendChild(input3); break; + case "title": + let title = document.createElement("p"); + title.classList.add("w3-xxlarge"); + title.innerHTML = obj.word; + title.id = obj.word.replace(/ /g, "_"); + title.setAttribute("tabindex", "-1"); + title.style.cssText = "margin: 20px 0 0 0"; + divContainer.className = "w3-container"; + div.style.cssText = "padding: 0 10px"; + div.appendChild(title); + break; } //check if item is connected list item cl @@ -397,6 +408,13 @@ function buildSidebarList(obj, sidebarList) { sidebarListItem.setAttribute("data-item", obj.word.replace(/ /g, "_")); sidebarListItem.innerHTML = obj.word; sidebarListItem; + if (obj.type == "title") { + sidebarListItem.setAttribute("data-item", "_title"); + sidebarListItem.style.backgroundColor = "#e3e7e8"; + sidebarListItem.classList.remove("w3-button"); + sidebarListItem.style.borderTop = "1px solid rgb(221, 221, 221)"; + sidebarListItem.innerHTML = ""+obj.word+""; + } sidebarList.appendChild(sidebarListItem); } diff --git a/js/2.0.2/files.js b/js/2.0.2/files.js index 4e62ac8..722596e 100644 --- a/js/2.0.2/files.js +++ b/js/2.0.2/files.js @@ -234,12 +234,9 @@ function loadFileSidebar(tF) { sidebarList.appendChild(sidebarListItem); let c = 0; - let sidebarItemsAmount = 10; + let sidebarItemsAmount = 6; for (let obj of tF.reverse()) { - console.log(obj); - - sidebarListItem = document.createElement("li"); sidebarListItem.classList.add( "w3-bar-item", diff --git a/js/2.0.2/form.js b/js/2.0.2/form.js index d389085..58ff37e 100644 --- a/js/2.0.2/form.js +++ b/js/2.0.2/form.js @@ -273,6 +273,7 @@ function formEvts() { //add handle on blur event listener to each form object let mainForm = document.getElementById("mainFormObj"); for (let formElement of mainForm.children) { + if (formElement.firstChild.lastChild == null) continue; let id = formElement.firstChild.lastChild.id; document.getElementById(id).addEventListener("blur", (e) => { e.preventDefault; @@ -283,6 +284,7 @@ function formEvts() { function focusOnField(id) { let targetElement = document.getElementById(id); + if (targetElement == null) return; //handle pell content focus if (targetElement.parentElement != undefined) { diff --git a/js/2.0.2/init.js b/js/2.0.2/init.js index 7167cd4..4a83506 100644 --- a/js/2.0.2/init.js +++ b/js/2.0.2/init.js @@ -45,6 +45,7 @@ window.activeState = { "current_time", "current_date", "markup", + "title", ], markups: ["title", "link", "italic", "green_highlighted", "highlighted"], storage: [], diff --git a/js/2.0.2/parseForm.js b/js/2.0.2/parseForm.js index 064eab5..0c6efbf 100644 --- a/js/2.0.2/parseForm.js +++ b/js/2.0.2/parseForm.js @@ -63,6 +63,7 @@ function parseFormOnSubmit(returnJSON = false, parseOnly = false) { //iterate through templateObjects and look for according formdata for (let obj of objects) { + obj.result = ""; //compaire each obj with elements from mainFormObj for (let data of dataArray) { @@ -114,9 +115,12 @@ function parseFormOnSubmit(returnJSON = false, parseOnly = false) { objects[i].result + fullString.substring(objects[i].epos, fullString.length); } else { + let tepos = objects[i].epos; + //skip empty results by skipping the newline char + if (objects[i].result == "") tepos += 1; b += objects[i].result + - fullString.substring(objects[i].epos, objects[j].spos); + fullString.substring(tepos, objects[j].spos); } } diff --git a/template/testing.txt b/template/testing.txt index 82eb39e..577b9be 100644 --- a/template/testing.txt +++ b/template/testing.txt @@ -1,5 +1,6 @@ #connected list test -%Con List Selection=h:Die Patientin ist erwerbstätig:longText:!ls;h:Der Patient ist erwerbstätig auf dem 2. AM:longText:!ls;h: Der Patient ist nicht erwerbstätig:longText:!ls;h:Andere:simpleInput:!ls;%1 +%Con List Selection=h:Die Patientin ist erwerbstätig:longText:!ls;h:Der Patient ist erwerbstätig auf dem 2. AM:longText:!ls;h: Der Patient ist nicht erwerbstätig:longText:!ls;h:Andere:simpleInput:!ls;%10 #connected list one item test -%Con List Button=h:Lebensmittelpunkt:longText:!ls;%2 +%Wohnen=title%12 +%Con List Button=h:Lebensmittelpunkt:longText:!ls;%20