Add settings

This commit is contained in:
2026-03-13 13:53:32 +01:00
parent e94b50e8c3
commit 07d0dcd41f
4 changed files with 217 additions and 6 deletions

View File

@@ -4,6 +4,10 @@ const homeTemplate = document.getElementById("home-template");
const settingsTemplate = document.getElementById("settings-template");
let imagesUrls = [];
let uuid;
let imagesProvider = "Bing";
let imagesOffset = 1;
let maxImages = 1000;
let smartMode = false;
navigate("home");
@@ -93,6 +97,26 @@ function navigate(page) {
break;
case "settings":
view.appendChild(settingsTemplate.content.cloneNode(true));
setProviderButton();
toggleSelectedListButton("provider-menu", imagesProvider);
const maxImagesInput = document.getElementById("max-images-input");
maxImagesInput.value = maxImages;
maxImagesInput.addEventListener("input", function (event) {
maxImages = maxImagesInput.value;
});
const offsetInput = document.getElementById("offset-input");
offsetInput.value = imagesOffset;
offsetInput.addEventListener("input", function (event) {
imagesOffset = offsetInput.value;
});
const smartModeCheckbox = document.getElementById("smart-mode");
smartModeCheckbox.checked = smartMode;
smartModeCheckbox.addEventListener("change", function () {
smartMode = this.checked;
});
break;
}
}
@@ -137,7 +161,7 @@ async function search() {
imagesDiv.replaceChildren();
loaderDiv.classList.toggle("show");
const urls = await getImagesURL(searchInput.value, 1, 1000, false);
const urls = await getImagesURL(searchInput.value, imagesOffset, maxImages, smartMode);
loaderDiv.classList.toggle("show");
for (const url of urls) {
@@ -151,3 +175,38 @@ async function search() {
async function download() {
await downloadImages(uuid);
}
function toggleProviderMenu() {
const providerMenu = document.getElementById("provider-menu");
if (providerMenu) {
providerMenu.classList.toggle("show");
}
}
async function setProviderButton() {
const providerButton = document.getElementById("provider-button");
if (providerButton) {
providerButton.innerHTML = `<img src="assets/${imagesProvider}.svg" class="icons" /> ${imagesProvider}`;
}
}
function changeProvider(provider) {
imagesProvider = provider;
toggleProviderMenu();
toggleSelectedListButton("provider-menu", provider);
setProviderButton();
}
function toggleSelectedListButton(ListMenuId, buttonId) {
const listMenu = document.getElementById(ListMenuId);
if (listMenu) {
Array.from(listMenu.children).forEach((child) => {
child.classList.remove("selected");
});
}
const listButton = document.getElementById(buttonId);
if (listButton) {
listButton.classList.toggle("selected");
}
}