90 lines
2.5 KiB
JavaScript
90 lines
2.5 KiB
JavaScript
"use strict";
|
|
|
|
window.onload = async () => {
|
|
const account = JSON.parse(localStorage.getItem("account"));
|
|
const i = account.token;
|
|
|
|
const api = (endpoint, data = {}) => {
|
|
const promise = new Promise((resolve, reject) => {
|
|
// Append a credential
|
|
if (i) data.i = i;
|
|
|
|
// Send request
|
|
fetch(endpoint.indexOf("://") > -1 ? endpoint : `/api/${endpoint}`, {
|
|
method: "POST",
|
|
body: JSON.stringify(data),
|
|
credentials: "omit",
|
|
cache: "no-cache",
|
|
})
|
|
.then(async (res) => {
|
|
const body = res.status === 204 ? null : await res.json();
|
|
|
|
if (res.status === 200) {
|
|
resolve(body);
|
|
} else if (res.status === 204) {
|
|
resolve();
|
|
} else {
|
|
reject(body.error);
|
|
}
|
|
})
|
|
.catch(reject);
|
|
});
|
|
|
|
return promise;
|
|
};
|
|
|
|
const content = document.getElementById("content");
|
|
|
|
document.getElementById("ls").addEventListener("click", () => {
|
|
content.innerHTML = "";
|
|
|
|
const lsEditor = document.createElement("div");
|
|
lsEditor.id = "lsEditor";
|
|
|
|
const adder = document.createElement("div");
|
|
adder.classList.add("adder");
|
|
const addKeyInput = document.createElement("input");
|
|
const addValueTextarea = document.createElement("textarea");
|
|
const addButton = document.createElement("button");
|
|
addButton.textContent = "Add";
|
|
addButton.addEventListener("click", () => {
|
|
localStorage.setItem(addKeyInput.value, addValueTextarea.value);
|
|
location.reload();
|
|
});
|
|
|
|
adder.appendChild(addKeyInput);
|
|
adder.appendChild(addValueTextarea);
|
|
adder.appendChild(addButton);
|
|
lsEditor.appendChild(adder);
|
|
|
|
for (let i = 0; i < localStorage.length; i++) {
|
|
const k = localStorage.key(i);
|
|
const record = document.createElement("div");
|
|
record.classList.add("record");
|
|
const header = document.createElement("header");
|
|
header.textContent = k;
|
|
const textarea = document.createElement("textarea");
|
|
textarea.textContent = localStorage.getItem(k);
|
|
const saveButton = document.createElement("button");
|
|
saveButton.textContent = "Save";
|
|
saveButton.addEventListener("click", () => {
|
|
localStorage.setItem(k, textarea.value);
|
|
location.reload();
|
|
});
|
|
const removeButton = document.createElement("button");
|
|
removeButton.textContent = "Remove";
|
|
removeButton.addEventListener("click", () => {
|
|
localStorage.removeItem(k);
|
|
location.reload();
|
|
});
|
|
record.appendChild(header);
|
|
record.appendChild(textarea);
|
|
record.appendChild(saveButton);
|
|
record.appendChild(removeButton);
|
|
lsEditor.appendChild(record);
|
|
}
|
|
|
|
content.appendChild(lsEditor);
|
|
});
|
|
};
|