fixed bugs

This commit is contained in:
maru21 2023-10-16 14:18:55 +02:00
parent 9ee0b3e2c8
commit e4336766a0
6 changed files with 108 additions and 100 deletions

View File

@ -104,17 +104,10 @@
<a <a
class="w3-button w3-right w3-padding-large w3-hover-grey w3-large w3-flat-wet-aspalt" class="w3-button w3-right w3-padding-large w3-hover-grey w3-large w3-flat-wet-aspalt"
href="javascript:void(0);" href="javascript:void(0);"
title="Toggle Files Menu" title="Open Files Menu"
id="toggleFilesMenu" id="toggleFilesMenu"
><i class="fa fa-file"></i ><i class="fa fa-file"></i
></a> ></a>
<a
class="w3-button w3-right w3-padding-large w3-hover-grey w3-large w3-flat-wet-aspalt"
href="javascript:void(0);"
title="Logout"
id="logout"
><i class="fa fa-sign-out-alt"></i
></a>
<a <a
href="." href="."
class="w3-left-align w3-button w3-padding-large w3-flat-wet-asphalt" class="w3-left-align w3-button w3-padding-large w3-flat-wet-asphalt"

View File

@ -71,7 +71,7 @@ function insertTextBlocks(t) {
function handleOnBlur(t) { function handleOnBlur(t) {
activeState.lastElement = t.id; activeState.lastElement = t.id;
createStorageObj(); //createStorageObj();
} }
function clickClearForm() { function clickClearForm() {

View File

@ -229,7 +229,7 @@ function loadFileSidebar(tF) {
function mainFormPlaceholder(msg = "Select a file") { function mainFormPlaceholder(msg = "Select a file") {
return ( return (
"<div class='w3-row-padding w3-padding-24 w3-container w3-flat-clouds'><div class='w3-code notranslate w3-border-white' style='font-family: Arial, Helvetica, sans-serif;'><p>" + "<div id='fileDisplay' class='w3-row-padding w3-padding-24 w3-container w3-flat-clouds'><div class='w3-code notranslate w3-border-white' style='font-family: Arial, Helvetica, sans-serif;'><p>" +
msg + msg +
"</p><br><br><br><br><br><br><br><br><br><br><br></div></div>" "</p><br><br><br><br><br><br><br><br><br><br><br></div></div>"
); );
@ -315,6 +315,7 @@ function formEvts(storageName) {
document.getElementById("mainForm").innerHTML = document.getElementById("mainForm").innerHTML =
mainFormPlaceholder("No file yet"); mainFormPlaceholder("No file yet");
} }
modalNotifier(activeState.fileName + " deleted!", 2);
break; break;
default: default:
@ -332,6 +333,10 @@ function loadSpecificTemplate(storageName) {
//reset sidebar to clear events //reset sidebar to clear events
let sidebarDiv = document.getElementById("sidebar"); let sidebarDiv = document.getElementById("sidebar");
sidebarDiv.replaceWith(sidebarDiv.cloneNode(true)); sidebarDiv.replaceWith(sidebarDiv.cloneNode(true));
//reset correct activePage
activeState.activePage = "template";
loadTemplate(storageName.split("_m21_")[1]); loadTemplate(storageName.split("_m21_")[1]);
} }

View File

@ -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 { 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 { getUsrId, logout } from "./scripts.js";
import parseFormOnSubmit from "./parseForm.js"; import parseFormOnSubmit from "./parseForm.js";
import { createStorageObj } from "./storage.js"; import { createStorageObj } from "./storage.js";
@ -8,7 +20,6 @@ import XORCipher from "./xorc.js";
import sha256 from "./sha256.min.js"; import sha256 from "./sha256.min.js";
import { loadNavBar, initTextBlocks } from "./web.js"; import { loadNavBar, initTextBlocks } from "./web.js";
window.activeState = { window.activeState = {
userId: getUsrId(), userId: getUsrId(),
activePage: "landing", activePage: "landing",
@ -25,18 +36,10 @@ window.activeState = {
"current_date", "current_date",
"markup", "markup",
], ],
markups: [ markups: ["title", "link", "italic", "green_highlighted", "highlighted"],
"title",
"link",
"italic",
"green_highlighted",
"highlighted",
]
}; };
function init() { function init() {
//load settings into activeState //load settings into activeState
for (let setting of Object.entries(window.settings)) { for (let setting of Object.entries(window.settings)) {
activeState[setting[0]] = setting[1]; activeState[setting[0]] = setting[1];
@ -51,7 +54,6 @@ function init() {
//write verifiedStatus content into passwordHash for decode check later //write verifiedStatus content into passwordHash for decode check later
passwordHash.set(XORCipher.decode(sha256("passwordHash"), verfiedStatus)); passwordHash.set(XORCipher.decode(sha256("passwordHash"), verfiedStatus));
document.getElementById("login").style.display = "none"; document.getElementById("login").style.display = "none";
} else { } else {
document.getElementById("login").style.display = "block"; document.getElementById("login").style.display = "block";
} }
@ -68,98 +70,89 @@ function init() {
//print current version to footer //print current version to footer
printVersion(); printVersion();
//add sign out
document
.getElementById("logout")
.addEventListener("click", logout);
//adjust title for mobile use //adjust title for mobile use
if (screen.width < 993) { if (screen.width < 993) {
document.getElementById("siteTitle").innerHTML = "TG"; document.getElementById("siteTitle").innerHTML = "TG";
} }
} }
function eventListeners() { function eventListeners() {
//add hideMenu to Body //add hideMenu to Body
document document
.getElementsByClassName("w3-main")[0] .getElementsByClassName("w3-main")[0]
.addEventListener("click", hideMenus); .addEventListener("click", hideMenus);
//add set Password to loginForm //add set Password to loginForm
document document
.getElementById("submitPassword") .getElementById("submitPassword")
.addEventListener("click", setPassword); .addEventListener("click", setPassword);
//add toggle Navigation Menu //add toggle Navigation Menu
document document
.getElementById("toggleNavigationMenu") .getElementById("toggleNavigationMenu")
.addEventListener("click", showMenu); .addEventListener("click", showMenu);
//add loadTemplateBtn event showMenu //add loadTemplateBtn event showMenu
document document
.getElementById("loadTemplateBtn") .getElementById("loadTemplateBtn")
.addEventListener("click", showMenu); .addEventListener("click", showMenu);
//add toggle sideBar Menu //add toggle sideBar Menu
document document
.getElementById("toggleSidebarMenu") .getElementById("toggleSidebarMenu")
.addEventListener("click", showSidebar); .addEventListener("click", showSidebar);
//add toggle files Menu and sidebar button //add toggle files Menu and sidebar button
document document
.getElementById("toggleFilesMenuSB") .getElementById("toggleFilesMenuSB")
.addEventListener("click", buildFile); .addEventListener("click", buildFile);
document document
.getElementById("toggleFilesMenu") .getElementById("toggleFilesMenu")
.addEventListener("click", buildFile); .addEventListener("click", buildFile);
//add load template sidebar entry //add load template sidebar entry
document document
.getElementById("loadTemplateBtn") .getElementById("loadTemplateBtn")
.addEventListener("click", showMenu); .addEventListener("click", showMenu);
//add toggle textBLocks Menu //add toggle textBLocks Menu
document document
.getElementById("toggleTestBlocksMenu") .getElementById("toggleTestBlocksMenu")
.addEventListener("click", showTextBlocks); .addEventListener("click", showTextBlocks);
//add setFormBtn for use in form //add setFormBtn for use in form
document document
.getElementById("setFormBtn") .getElementById("setFormBtn")
.addEventListener("click", (e) => clickSetForm(e)); .addEventListener("click", (e) => clickSetForm(e));
//add saveFiles to server listener on launch page //add saveFiles to server listener on launch page
document document
.getElementById("importFilesSB") .getElementById("importFilesSB")
.addEventListener("click", () => clickImportFiles()); .addEventListener("click", () => clickImportFiles());
//add key listener for ctrl s in form mode //add key listener for ctrl s in form mode
inputRead.init(); inputRead.init();
window.addEventListener("keydown", (e) => { window.addEventListener("keydown", (e) => {
inputRead.read(e); if (activeState.activePage == "template") {
if (e.ctrlKey && e.key == "s") { inputRead.read(e);
if (activeState.activePage == "form"); if (e.ctrlKey && e.key == "s") {
createStorageObj(); createStorageObj();
parseFormOnSubmit(); parseFormOnSubmit();
modalNotifier("File copied to clipboard", 1); modalNotifier("File copied to clipboard", 1);
e.preventDefault(); e.preventDefault();
} }
}) }
});
} }
function printVersion() { function printVersion() {
const scripts = document.getElementsByTagName("script"); const scripts = document.getElementsByTagName("script");
const versionSpan = document.getElementById("currentVersion").lastChild; const versionSpan = document.getElementById("currentVersion").lastChild;
for (var i=0;i<scripts.length;i++) { for (var i = 0; i < scripts.length; i++) {
if (scripts[i].src) { if (scripts[i].src) {
let source = scripts[i].src; let source = scripts[i].src;
// js/version/main.js // js/version/main.js
let pathVersion = source.split("/"); let pathVersion = source.split("/");
pathVersion = pathVersion[pathVersion.length-2]; pathVersion = pathVersion[pathVersion.length - 2];
//add it to document footer currentVersion //add it to document footer currentVersion
versionSpan.textContent = "version: " + pathVersion; versionSpan.textContent = "version: " + pathVersion;
} }
} }
} }
init(); init();

View File

@ -181,7 +181,7 @@ export function sanitize(string) {
return string.replace(reg, (match)=>(map[match])); return string.replace(reg, (match)=>(map[match]));
} }
function isAlphaNumeric(str) { export function isAlphaNumeric(str) {
var code, i, len; var code, i, len;
for (i = 0, len = str.length; i < len; i++) { for (i = 0, len = str.length; i < len; i++) {
@ -201,26 +201,31 @@ export const inputRead = {
this.inputString = ""; this.inputString = "";
this.source = ""; this.source = "";
this.inputContent = ""; this.inputContent = "";
this.lastRunTime = new Date();
this.lastExecId = "";
}, },
read: function (event) { read: function (event) {
this.event = event; this.event = event;
this.source = event.srcElement.id; this.source = event.srcElement.id;
let previousContent = this.inputContent;
let key = (event.key !=undefined) ? event.key : ""; let key = (event.key !=undefined) ? event.key : "";
let contentElement = document.getElementById(this.source); let contentElement = document.getElementById(this.source);
this.inputContent = (contentElement != undefined) ? contentElement.value + key : ""; this.inputContent = (contentElement != undefined) ? contentElement.value + key : "";
if (this.inputContent == "" || key == "") return; if (this.inputContent == "" || key == "") return;
if (!isAlphaNumeric(key)) return;
if (key.length > 1) 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"; document.getElementById("toggleFilesMenu").style.backgroundColor = "#c0392b";
const run = setTimeout(() => { this.lastExecId = setTimeout(() => {
createStorageObj(); createStorageObj();
document.getElementById("toggleFilesMenu").style.backgroundColor = "#34495e" document.getElementById("toggleFilesMenu").style.backgroundColor = "#34495e"
}, 3000); }, 1000);
}, },
//filter words
} }
export default setPassword; export default setPassword;

View File

@ -3,7 +3,7 @@ import { loadFileDivCallBack } from "./files.js";
import { retrieveData, clearData, getFileName, importBookShelf } from "./storage.js"; import { retrieveData, clearData, getFileName, importBookShelf } from "./storage.js";
import { insertTextBlocks, modalNotifier } from "./evts.js"; import { insertTextBlocks, modalNotifier } from "./evts.js";
import { createTemplate, createTemplateCallBack} from "./createTemplate.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) { function loadTemplate(template, newFlag = false, loadOnly = false) {
document.getElementById("siteTitle").innerHTML = template.replace(/_/g, " "); document.getElementById("siteTitle").innerHTML = template.replace(/_/g, " ");
@ -113,18 +113,30 @@ function loadNavBar() {
} }
let createEntry = document.createElement("a"); let createEntry = document.createElement("a");
createEntry.setAttribute("href", "#"); 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.classList.add("w3-bar-item", "w3-button", "w3-padding-large");
createEntry.style.borderTop = "2px solid rgb(221, 221, 221)";
createEntry.innerHTML = "Manage templates"; createEntry.innerHTML = "Manage templates";
divMob.appendChild(createEntry); 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) => { divMob.addEventListener("click", (e) => {
if (e.target && e.target.matches("a.w3-bar-item")) { if (e.target && e.target.matches("a.w3-bar-item")) {
let template = e.target.dataset.template; let template = e.target.dataset.template;
if (template == "createNew") { if (template == "!createNew") {
createTemplate(); createTemplate();
return; return;
} }
if (template == "!logout") {
logout();
return;
}
loadNewTemplate(template); loadNewTemplate(template);
} }
}); });