64 lines
2.0 KiB
JavaScript
64 lines
2.0 KiB
JavaScript
const DEFAULT_SETTINGS = {
|
|
uploadMode: "desktop",
|
|
apiUrl: "https://f0ckm.com/api/v2/upload",
|
|
apiKey: "",
|
|
rating: "s",
|
|
tags: "",
|
|
visibility: "0",
|
|
isOc: false,
|
|
urlType: "post"
|
|
};
|
|
|
|
document.addEventListener("DOMContentLoaded", () => {
|
|
const form = document.getElementById("settings-form");
|
|
const modeDesktop = document.getElementById("mode-desktop");
|
|
const modeDirect = document.getElementById("mode-direct");
|
|
const apiUrl = document.getElementById("apiUrl");
|
|
const apiKey = document.getElementById("apiKey");
|
|
const rating = document.getElementById("rating");
|
|
const visibility = document.getElementById("visibility");
|
|
const tags = document.getElementById("tags");
|
|
const isOc = document.getElementById("isOc");
|
|
const urlType = document.getElementById("urlType");
|
|
const saveToast = document.getElementById("save-toast");
|
|
|
|
// Load existing settings
|
|
chrome.storage.sync.get(DEFAULT_SETTINGS, (items) => {
|
|
if (items.uploadMode === "direct") {
|
|
modeDirect.checked = true;
|
|
} else {
|
|
modeDesktop.checked = true;
|
|
}
|
|
|
|
apiUrl.value = items.apiUrl || "";
|
|
apiKey.value = items.apiKey || "";
|
|
rating.value = items.rating || "s";
|
|
visibility.value = items.visibility !== undefined ? String(items.visibility) : "0";
|
|
tags.value = items.tags || "";
|
|
isOc.checked = !!items.isOc;
|
|
urlType.value = items.urlType || "post";
|
|
});
|
|
|
|
// Save settings on form submit
|
|
form.addEventListener("submit", (e) => {
|
|
e.preventDefault();
|
|
const newSettings = {
|
|
uploadMode: modeDirect.checked ? "direct" : "desktop",
|
|
apiUrl: apiUrl.value.trim(),
|
|
apiKey: apiKey.value.trim(),
|
|
rating: rating.value,
|
|
visibility: visibility.value,
|
|
tags: tags.value.trim(),
|
|
isOc: isOc.checked,
|
|
urlType: urlType.value
|
|
};
|
|
|
|
chrome.storage.sync.set(newSettings, () => {
|
|
saveToast.classList.remove("hidden");
|
|
setTimeout(() => {
|
|
saveToast.classList.add("hidden");
|
|
}, 2500);
|
|
});
|
|
});
|
|
});
|