From e4336766a055d1006feca65abead853b8811056c Mon Sep 17 00:00:00 2001 From: maru21 Date: Mon, 16 Oct 2023 14:18:55 +0200 Subject: [PATCH] fixed bugs --- index.html | 9 +-- js/9.9.9/evts.js | 2 +- js/9.9.9/files.js | 7 +- js/9.9.9/init.js | 153 +++++++++++++++++++++----------------------- js/9.9.9/scripts.js | 17 +++-- js/9.9.9/web.js | 20 ++++-- 6 files changed, 108 insertions(+), 100 deletions(-) diff --git a/index.html b/index.html index 9285636..758abf3 100644 --- a/index.html +++ b/index.html @@ -104,17 +104,10 @@ -

" + + "

" + msg + "












" ); @@ -315,6 +315,7 @@ function formEvts(storageName) { document.getElementById("mainForm").innerHTML = mainFormPlaceholder("No file yet"); } + modalNotifier(activeState.fileName + " deleted!", 2); break; default: @@ -332,6 +333,10 @@ function loadSpecificTemplate(storageName) { //reset sidebar to clear events let sidebarDiv = document.getElementById("sidebar"); sidebarDiv.replaceWith(sidebarDiv.cloneNode(true)); + + //reset correct activePage + activeState.activePage = "template"; + loadTemplate(storageName.split("_m21_")[1]); } diff --git a/js/9.9.9/init.js b/js/9.9.9/init.js index 107be2f..03d6691 100644 --- a/js/9.9.9/init.js +++ b/js/9.9.9/init.js @@ -1,6 +1,18 @@ -import { hideMenus, showMenu, showSidebar, showTextBlocks, clickSetForm, clickImportFiles, modalNotifier } from "./evts.js"; +import { + hideMenus, + showMenu, + showSidebar, + showTextBlocks, + clickSetForm, + clickImportFiles, + modalNotifier, +} from "./evts.js"; import { buildFile } from "./files.js"; -import setPassword, { passwordHash, sessionVerification, inputRead } from "./scripts.js"; +import setPassword, { + passwordHash, + sessionVerification, + inputRead, +} from "./scripts.js"; import { getUsrId, logout } from "./scripts.js"; import parseFormOnSubmit from "./parseForm.js"; import { createStorageObj } from "./storage.js"; @@ -8,7 +20,6 @@ import XORCipher from "./xorc.js"; import sha256 from "./sha256.min.js"; import { loadNavBar, initTextBlocks } from "./web.js"; - window.activeState = { userId: getUsrId(), activePage: "landing", @@ -25,24 +36,16 @@ window.activeState = { "current_date", "markup", ], - markups: [ - "title", - "link", - "italic", - "green_highlighted", - "highlighted", - ] + markups: ["title", "link", "italic", "green_highlighted", "highlighted"], }; - function init() { - //load settings into activeState for (let setting of Object.entries(window.settings)) { activeState[setting[0]] = setting[1]; } - //check if user is logged in + //check if user is logged in sessionVerification(); let verfiedStatus = window.sessionStorage.getItem(sha256("verified")); if (verfiedStatus != null) { @@ -51,7 +54,6 @@ function init() { //write verifiedStatus content into passwordHash for decode check later passwordHash.set(XORCipher.decode(sha256("passwordHash"), verfiedStatus)); document.getElementById("login").style.display = "none"; - } else { document.getElementById("login").style.display = "block"; } @@ -68,98 +70,89 @@ function init() { //print current version to footer printVersion(); - //add sign out - document - .getElementById("logout") - .addEventListener("click", logout); - - //adjust title for mobile use if (screen.width < 993) { document.getElementById("siteTitle").innerHTML = "TG"; } - - - } function eventListeners() { - //add hideMenu to Body document - .getElementsByClassName("w3-main")[0] - .addEventListener("click", hideMenus); + .getElementsByClassName("w3-main")[0] + .addEventListener("click", hideMenus); -//add set Password to loginForm -document - .getElementById("submitPassword") - .addEventListener("click", setPassword); -//add toggle Navigation Menu -document - .getElementById("toggleNavigationMenu") - .addEventListener("click", showMenu); -//add loadTemplateBtn event showMenu -document - .getElementById("loadTemplateBtn") - .addEventListener("click", showMenu); -//add toggle sideBar Menu -document - .getElementById("toggleSidebarMenu") - .addEventListener("click", showSidebar); -//add toggle files Menu and sidebar button -document - .getElementById("toggleFilesMenuSB") - .addEventListener("click", buildFile); -document - .getElementById("toggleFilesMenu") - .addEventListener("click", buildFile); -//add load template sidebar entry -document - .getElementById("loadTemplateBtn") - .addEventListener("click", showMenu); -//add toggle textBLocks Menu -document - .getElementById("toggleTestBlocksMenu") - .addEventListener("click", showTextBlocks); + //add set Password to loginForm + document + .getElementById("submitPassword") + .addEventListener("click", setPassword); + //add toggle Navigation Menu + document + .getElementById("toggleNavigationMenu") + .addEventListener("click", showMenu); + //add loadTemplateBtn event showMenu + document + .getElementById("loadTemplateBtn") + .addEventListener("click", showMenu); + //add toggle sideBar Menu + document + .getElementById("toggleSidebarMenu") + .addEventListener("click", showSidebar); + //add toggle files Menu and sidebar button + document + .getElementById("toggleFilesMenuSB") + .addEventListener("click", buildFile); + document + .getElementById("toggleFilesMenu") + .addEventListener("click", buildFile); + //add load template sidebar entry + document + .getElementById("loadTemplateBtn") + .addEventListener("click", showMenu); + //add toggle textBLocks Menu + document + .getElementById("toggleTestBlocksMenu") + .addEventListener("click", showTextBlocks); -//add setFormBtn for use in form -document - .getElementById("setFormBtn") - .addEventListener("click", (e) => clickSetForm(e)); + //add setFormBtn for use in form + document + .getElementById("setFormBtn") + .addEventListener("click", (e) => clickSetForm(e)); -//add saveFiles to server listener on launch page -document - .getElementById("importFilesSB") - .addEventListener("click", () => clickImportFiles()); + //add saveFiles to server listener on launch page + document + .getElementById("importFilesSB") + .addEventListener("click", () => clickImportFiles()); -//add key listener for ctrl s in form mode -inputRead.init(); -window.addEventListener("keydown", (e) => { - inputRead.read(e); - if (e.ctrlKey && e.key == "s") { - if (activeState.activePage == "form"); - createStorageObj(); - parseFormOnSubmit(); - modalNotifier("File copied to clipboard", 1); - e.preventDefault(); - } -}) + //add key listener for ctrl s in form mode + inputRead.init(); + window.addEventListener("keydown", (e) => { + if (activeState.activePage == "template") { + inputRead.read(e); + if (e.ctrlKey && e.key == "s") { + createStorageObj(); + parseFormOnSubmit(); + modalNotifier("File copied to clipboard", 1); + e.preventDefault(); + } + } + }); } function printVersion() { const scripts = document.getElementsByTagName("script"); const versionSpan = document.getElementById("currentVersion").lastChild; - for (var i=0;i(map[match])); } -function isAlphaNumeric(str) { +export function isAlphaNumeric(str) { var code, i, len; for (i = 0, len = str.length; i < len; i++) { @@ -201,26 +201,31 @@ export const inputRead = { this.inputString = ""; this.source = ""; this.inputContent = ""; + this.lastRunTime = new Date(); + this.lastExecId = ""; }, read: function (event) { this.event = event; this.source = event.srcElement.id; + let previousContent = this.inputContent; let key = (event.key !=undefined) ? event.key : ""; let contentElement = document.getElementById(this.source); this.inputContent = (contentElement != undefined) ? contentElement.value + key : ""; if (this.inputContent == "" || key == "") return; - if (!isAlphaNumeric(key)) return; if (key.length > 1) return; - if (activeState.activePage != "template") return; + if (event.ctrlKey) return; + if (this.inputContent == previousContent) return; + + this.lastRunTime = new Date(); + clearTimeout(this.lastExecId); document.getElementById("toggleFilesMenu").style.backgroundColor = "#c0392b"; - const run = setTimeout(() => { + this.lastExecId = setTimeout(() => { createStorageObj(); document.getElementById("toggleFilesMenu").style.backgroundColor = "#34495e" - }, 3000); + }, 1000); }, - //filter words } export default setPassword; diff --git a/js/9.9.9/web.js b/js/9.9.9/web.js index 30b84c2..fe63405 100644 --- a/js/9.9.9/web.js +++ b/js/9.9.9/web.js @@ -3,7 +3,7 @@ import { loadFileDivCallBack } from "./files.js"; import { retrieveData, clearData, getFileName, importBookShelf } from "./storage.js"; import { insertTextBlocks, modalNotifier } from "./evts.js"; import { createTemplate, createTemplateCallBack} from "./createTemplate.js"; -import { getUsrId, sessionVerification } from "./scripts.js"; +import { getUsrId, logout, sessionVerification } from "./scripts.js"; function loadTemplate(template, newFlag = false, loadOnly = false) { document.getElementById("siteTitle").innerHTML = template.replace(/_/g, " "); @@ -113,18 +113,30 @@ function loadNavBar() { } let createEntry = document.createElement("a"); createEntry.setAttribute("href", "#"); - createEntry.setAttribute("data-template", "createNew"); + createEntry.setAttribute("data-template", "!createNew"); createEntry.classList.add("w3-bar-item", "w3-button", "w3-padding-large"); + createEntry.style.borderTop = "2px solid rgb(221, 221, 221)"; createEntry.innerHTML = "Manage templates"; - divMob.appendChild(createEntry); + + createEntry = document.createElement("a"); + createEntry.setAttribute("href", "#"); + createEntry.setAttribute("data-template", "!logout"); + createEntry.classList.add("w3-bar-item", "w3-button", "w3-padding-large", "w3-flat-pomegranate"); + createEntry.innerHTML = "Logout"; + divMob.appendChild(createEntry); + divMob.addEventListener("click", (e) => { if (e.target && e.target.matches("a.w3-bar-item")) { let template = e.target.dataset.template; - if (template == "createNew") { + if (template == "!createNew") { createTemplate(); return; } + if (template == "!logout") { + logout(); + return; + } loadNewTemplate(template); } });