Files
f0ckm-uploader/browser-extension/options/options.js

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