Easy-Session-Manager/src/scripts/actions.js

92 lines
3.2 KiB
JavaScript
Raw Normal View History

2020-02-01 02:43:21 +00:00
const messageWindow = (type = "warning", message = "No message passed in...") => {
2020-02-26 08:21:16 +00:00
Swal.fire({
text: message,
icon: type
});
2020-02-01 02:43:21 +00:00
}
const getSavedSessionIDs = () => {
storageApi.get(null).then((results) => {
const sessions = Object.keys(results);
for (let session of sessions) {
2020-02-01 06:59:29 +00:00
storageApi.get(session).then((results) => {
size = getStoreSize(results[session]);
appendToSavedSessionsList(session, size);
});
2020-02-01 02:43:21 +00:00
}
});
}
2020-02-01 06:59:29 +00:00
const saveToStorage = (name, data, action = "undefined", willReplace = false, sveElm = null) => {
2020-02-01 02:43:21 +00:00
storageApi.get(name).then((results) => {
2020-02-01 06:59:29 +00:00
const size = getStoreSize(data); // Must be outside try block for catch block to see it
2020-02-01 02:43:21 +00:00
try {
2020-02-01 06:59:29 +00:00
const json = JSON.parse(results[name]); // If a session is found
2020-02-01 02:43:21 +00:00
if (!willReplace) {
2020-02-26 08:21:16 +00:00
Swal.fire({
2020-02-01 02:43:21 +00:00
title: "Replace?",
text: "Found a session with that name! Do you want to replace it?",
icon: "warning",
2020-02-26 08:21:16 +00:00
showCloseButton: true,
showCancelButton: true,
2020-02-01 02:43:21 +00:00
}).then((willReplace) => {
2020-02-26 08:21:16 +00:00
if (willReplace.value) {
2020-02-01 02:43:21 +00:00
storageApi.set({[name]: data});
2020-02-01 06:59:29 +00:00
sveElm.innerText = size + " | " + name;
sveElm.name = name;
2020-02-01 02:43:21 +00:00
messageWindow("warning", "Overwrote session...");
} else {
messageWindow("warning", "Canceled " + action + "...");
}
});
} else {
2020-02-01 06:59:29 +00:00
sveElm.innerText = size + " | " + name;
sveElm.name = name;
2020-02-01 02:43:21 +00:00
storageApi.set({[name]: data});
messageWindow("warning", "Overwrote session...");
}
} catch (e) {
if (action !== "edit") {
2020-02-01 06:59:29 +00:00
appendToSavedSessionsList(name, size);
2020-02-01 02:43:21 +00:00
messageWindow("success", "Saved session...");
storageApi.set({[name]: data});
} else {
storageApi.set({[name]: data});
2020-02-01 06:59:29 +00:00
messageWindow("warning", "Overwrote session...");
2020-02-01 02:43:21 +00:00
}
}
});
}
2020-02-01 06:59:29 +00:00
const deleteFromStorage = (elm = null, name = null) => {
2020-02-26 08:21:16 +00:00
Swal.fire({
2020-02-01 02:43:21 +00:00
title: "Are you sure?",
2020-02-01 06:59:29 +00:00
text: "Do you wish to delete session:\n" + name + "?",
2020-02-01 02:43:21 +00:00
icon: "warning",
2020-02-26 08:21:16 +00:00
showCloseButton: true,
showCancelButton: true,
2020-02-01 02:43:21 +00:00
}).then((willDelete) => {
2020-02-26 08:21:16 +00:00
if (willDelete.value) {
2020-02-01 06:59:29 +00:00
storageApi.remove(name).then(() => {
2020-02-01 02:43:21 +00:00
elm.parentElement.removeChild(elm);
});
selectedItem = null; // reset selectedItem
messageWindow("success", "Deleted session successfully...");
} else {
messageWindow("warning", "Canceled deletion...");
}
});
}
2020-02-01 06:59:29 +00:00
const windowMaker = (i, keysLength, keys, json) => {
for (; i < keysLength; i++) {
let store = json[keys[i]];
let urls = [];
for (let j = 0; j < store.length; j++) {
urls.push(store[j].link);
}
windowApi.create({ url: urls });
}
}