Untagged filter

This commit is contained in:
Djeex
2025-09-02 22:53:21 +02:00
parent 6b03ee30fa
commit 65fd62e342
3 changed files with 57 additions and 6 deletions

View File

@ -2,6 +2,7 @@
let galleryImages = [];
let heroImages = [];
let allTags = []; // global tag list
let showOnlyUntagged = false;
// --- Load images from server on page load ---
async function loadData() {
@ -34,7 +35,15 @@ function updateAllTags() {
function renderGallery() {
const container = document.getElementById('gallery');
container.innerHTML = '';
galleryImages.forEach((img, i) => {
// Filter images if toggle is on
let imagesToShow = galleryImages;
if (showOnlyUntagged) {
imagesToShow = galleryImages.filter(img => !img.tags || img.tags.length === 0);
}
imagesToShow.forEach((img) => {
const i = galleryImages.indexOf(img); // Use real index for tag/delete actions
const div = document.createElement('div');
div.className = 'photo flex-item flex-column';
div.innerHTML = `
@ -57,31 +66,31 @@ function renderGallery() {
// Update gallery count (top)
const galleryCount = document.getElementById('gallery-count');
if (galleryCount) {
galleryCount.innerHTML = `<p>${galleryImages.length} photos</p>`;
galleryCount.innerHTML = `<p>${imagesToShow.length} photos</p>`;
}
// Update gallery count (bottom)
const galleryCountBottom = document.getElementById('gallery-count-bottom');
if (galleryCountBottom) {
galleryCountBottom.innerHTML = `<p>${galleryImages.length} photos</p>`;
galleryCountBottom.innerHTML = `<p>${imagesToShow.length} photos</p>`;
}
// Show/hide Remove All button (top)
const removeAllBtn = document.getElementById('remove-all-gallery');
if (removeAllBtn) {
removeAllBtn.style.display = galleryImages.length > 0 ? 'inline-block' : 'none';
removeAllBtn.style.display = imagesToShow.length > 0 ? 'inline-block' : 'none';
}
// Show/hide bottom upload row
const bottomGalleryUpload = document.getElementById('bottom-gallery-upload');
if (bottomGalleryUpload) {
bottomGalleryUpload.style.display = galleryImages.length > 0 ? 'flex' : 'none';
bottomGalleryUpload.style.display = imagesToShow.length > 0 ? 'flex' : 'none';
}
// Show/hide Remove All button (bottom)
const removeAllBtnBottom = document.getElementById('remove-all-gallery-bottom');
if (removeAllBtnBottom) {
removeAllBtnBottom.style.display = galleryImages.length > 0 ? 'inline-block' : 'none';
removeAllBtnBottom.style.display = imagesToShow.length > 0 ? 'inline-block' : 'none';
}
}
@ -475,6 +484,25 @@ document.addEventListener('DOMContentLoaded', () => {
document.getElementById('delete-modal-cancel').onclick = hideDeleteModal;
document.getElementById('delete-modal-confirm').onclick = confirmDelete;
// --- Radio toggle for gallery filter ---
const showAllRadio = document.getElementById('show-all-radio');
const showUntaggedRadio = document.getElementById('show-untagged-radio');
if (showAllRadio && showUntaggedRadio) {
showAllRadio.addEventListener('change', () => {
if (showAllRadio.checked) {
showOnlyUntagged = false;
renderGallery();
}
});
showUntaggedRadio.addEventListener('change', () => {
if (showUntaggedRadio.checked) {
showOnlyUntagged = true;
renderGallery();
}
});
}
// Bulk delete buttons
const removeAllGalleryBtn = document.getElementById('remove-all-gallery');
const removeAllGalleryBtnBottom = document.getElementById('remove-all-gallery-bottom');