import { hideMenus, showMenu, showSidebar, showTextBlocks, clickSetForm, clickImportFiles } from "./evts.js"; import { buildFile } from "./files.js"; import setPassword, { passwordHash, sessionVerification } from "./scripts.js"; import { getUsrId, logout } from "./scripts.js"; import parseFormOnSubmit from "./parseForm.js"; import { createStorageObj } from "./storage.js"; import XORCipher from "./xorc.js"; import sha256 from "./sha256.min.js"; import { loadNavBar, initTextBlocks } from "./web.js"; window.activeState = { userId: getUsrId(), activePage: "landing", loadedTemplate: "", fileName: "", lastElement: "", serverFilesTs: "", lineBreak: 100, localOnly: true, templates: [], templateFieldTypes: [ "simpleInput", "longText", "hiddenField", "current_time", "current_date", "markup", ], markups: [ "title", "link", "italic", "green_highlighted", "highlighted", ] }; function init() { //check if user is logged in sessionVerification(); let verfiedStatus = window.sessionStorage.getItem(sha256("verified")); if (verfiedStatus != null) { //user logged in //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"; } //load NavigationBar with templates according to server loadNavBar(); //init Textblocks field with entries according to server initTextBlocks(); //add event listeners to document and window eventListeners(); //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); //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 saveFiles to server listener on launch page document .getElementById("importFilesSB") .addEventListener("click", () => clickImportFiles()); //add key listener for ctrl s in form mode window.addEventListener("keydown", (e) => { if (e.ctrlKey && e.key == "s") { if (activeState.activePage == "form"); createStorageObj(); parseFormOnSubmit(); e.preventDefault(); } }) } function printVersion() { const scripts = document.getElementsByTagName("script"); const versionSpan = document.getElementById("currentVersion").lastChild; for (var i=0;i