" +
+ "
" +
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);
}
});