From d568ca527127d03e7765396314f3c5caed7a8ab9 Mon Sep 17 00:00:00 2001 From: Maxim Stewart Date: Fri, 19 Apr 2019 14:16:33 -0500 Subject: [PATCH] Changed edit logic --- README.md | 4 +-- src/manifest.json | 2 +- src/scripts/sessionManager.js | 57 ++++++++++++++++++++++------------- 3 files changed, 39 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 7540e3a..3a4539e 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,8 @@ Easy Session Manager allows you to manage your Firefox session by backing up or # Download https://addons.mozilla.org/en-US/firefox/addon/easy-session-manager/ -# Version: 0.2.0.1 -Fixed deleted elment reference in memory issue. +# Version: 0.2.0.2 +Changed edit logic: If name is different, Editing will change the session name unless new session is checked. # Images ![1 Default interface with no sessions. ](images/pic1.png) diff --git a/src/manifest.json b/src/manifest.json index 1d8b8a7..964534b 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 2, "name": " Easy Session Manager", - "version": "0.2.0.1", + "version": "0.2.0.2", "description": " Easy Session Manager allows you to manage your Firefox session by backing up or loading your saved sessions.", "applications": { diff --git a/src/scripts/sessionManager.js b/src/scripts/sessionManager.js index 5da6d46..d6b45db 100644 --- a/src/scripts/sessionManager.js +++ b/src/scripts/sessionManager.js @@ -3,7 +3,7 @@ const windowSys = browser.windows; const regexp = /^[a-zA-Z0-9-_]+$/; // Alphanumeric, dash, underscore -const saveSession = (elm = null, message = "[ Session Name ] Allowed: a-z, A-Z, -, _") => { +const saveSession = (elm = null, message = "Session Name\nAllowed: a-z, A-Z, 0-9, -, _") => { let inputTag = document.createElement("INPUT"); inputTag.value = new Date().toLocaleString().split(',')[0].replace(/\//g, '-'); @@ -38,7 +38,7 @@ const saveSession = (elm = null, message = "[ Session Name ] Allowed: a-z, A-Z, if (enteryName) { if (enteryName.search(regexp) == -1) { - saveSession("Please try again...\nAllowed: a-z, A-Z, -, _") + saveSession("Please try again...\nAllowed: a-z, A-Z, 0-9, -, _") return ; } @@ -59,23 +59,19 @@ const saveSession = (elm = null, message = "[ Session Name ] Allowed: a-z, A-Z, }); } -const editSession = (elm = null, message = "Editing selected session...\nAllowed: a-z, A-Z, -, _") => { +const editSession = (elm = null, message = "Editing selected session...\nAllowed: a-z, A-Z, 0-9, -, _") => { let id = elm.innerText; let inputTag = document.createElement("INPUT"); let checkedTag = document.createElement("INPUT"); let labelTag = document.createElement("LABEL"); let brTag = document.createElement("BR"); - inputTag.disabled = true; inputTag.value = id; checkedTag.type = "checkbox"; - checkedTag.id = "newOrOld"; + checkedTag.id = "newSession"; + checkedTag.checked = false; labelTag.innerText = "Create New Session"; - labelTag.htmlFor = "newOrOld"; - - checkedTag.onchange = function () { - inputTag.disabled = !inputTag.disabled; - } + labelTag.htmlFor = "newSession"; storage.get(id).then((storageResults) => { let json = JSON.parse(storageResults[id]); @@ -96,22 +92,41 @@ const editSession = (elm = null, message = "Editing selected session...\nAllowed if (newName) { if (newName.search(regexp) == -1) { - editSession("Please try again...\nAllowed: a-z, A-Z, -, _") + editSession("Please try again...\nAllowed: a-z, A-Z, 0-9, -, _") return ; } json = selectionData(container, keys, keysLength); - if (!checkedTag.checked) { - storage.get(id).then((storageResults) => { - storage.remove(id); - saveToStorage(newName, JSON.stringify(json), true); - }); - elm.textContent = newName; - } else { - if (newName !== elm.textContent) { + if (checkedTag.checked) { // if creating from collection new session + if (newName !== elm.innerText) { + let sessions = document.getElementById("savedSessions").querySelectorAll("li"); + console.log(sessions); + for (var i = 0; i < sessions.length; i++) { + if (sessions[i].innerText === newName) { + let min = 1; + let max = 200000; + var random = Math.floor(Math.random() * (+max - +min)) + +min; + newName += "-" + random + "-" + Math.floor(Math.random() * (+10 - +1)) + +1; + } + } saveToStorage(newName, JSON.stringify(json), false); - } else { - editSession(elm, "Cannot have the same name as before...\nAllowed: a-z, A-Z, -, _") + } else { // enforce unique name + let min = 1; + let max = 200000; + var random = Math.floor(Math.random() * (+max - +min)) + +min; + newName += "-" + random + "-" + Math.floor(Math.random() * (+10 - +1)) + +1; + saveToStorage(newName, JSON.stringify(json), false); + } + } else { + if (newName !== elm.innerText) { // if not creating new session and diff name rename + storage.get(id).then((storageResults) => { + storage.remove(id); + saveToStorage(newName, JSON.stringify(json), true); + }).then(() => { + elm.textContent = newName; + }); + } else { // just replace + saveToStorage(newName, JSON.stringify(json), true); } } } else {