// Simple animation for feature cards
document.addEventListener('DOMContentLoaded', function() {
const featureCards = document.querySelectorAll('.feature-card');
featureCards.forEach(card => {
card.addEventListener('mouseenter', () => {
card.style.transform = 'translateY(-5px)';
});
card.addEventListener('mouseleave', () => {
card.style.transform = 'translateY(0)';
});
});
// Mobile menu toggle
const mobileMenuButton = document.querySelector('.md\\:hidden');
const navMenu = document.querySelector('nav');
if (mobileMenuButton && navMenu) {
mobileMenuButton.addEventListener('click', () => {
navMenu.classList.toggle('hidden');
navMenu.classList.toggle('flex');
navMenu.classList.toggle('flex-col');
navMenu.classList.toggle('absolute');
navMenu.classList.toggle('top-16');
navMenu.classList.toggle('left-0');
navMenu.classList.toggle('w-full');
navMenu.classList.toggle('bg-white');
navMenu.classList.toggle('py-4');
navMenu.classList.toggle('shadow-md');
});
}
// Settings page functionality
if (document.getElementById('settings.html')) {
initializeSettingsPage();
}
});
function initializeSettingsPage() {
// Load categories and subcategories
loadCategories();
loadSubCategories();
// Event listeners for category management
document.getElementById('createCategoryBtn').addEventListener('click', createCategory);
document.getElementById('addTagsBtn').addEventListener('click', addTagsToCategory);
document.getElementById('removeTagsBtn').addEventListener('click', removeTagsFromCategory);
// Event listeners for subcategory management
document.getElementById('createSubCategoryBtn').addEventListener('click', createSubCategory);
document.getElementById('addSubTagsBtn').addEventListener('click', addTagsToSubCategory);
document.getElementById('removeSubTagsBtn').addEventListener('click', removeTagsFromSubCategory);
}
function loadCategories() {
// This would normally fetch from the backend
const categories = ['Character', 'Style', 'Color', 'Background', 'Clothing'];
const select = document.getElementById('categorySelect');
const grid = document.getElementById('categoriesGrid');
// Clear existing options
select.innerHTML = '';
grid.innerHTML = '';
// Populate select and grid
categories.forEach(category => {
const option = document.createElement('option');
option.value = category;
option.textContent = category;
select.appendChild(option);
const gridItem = document.createElement('div');
gridItem.className = 'bg-primary/10 text-primary p-3 rounded-lg text-center';
gridItem.textContent = `${category} (0)`;
grid.appendChild(gridItem);
});
}
function loadSubCategories() {
// This would normally fetch from the backend
const subCategories = ['Hair', 'Eyes', 'Accessories', 'Expression', 'Pose'];
const select = document.getElementById('subCategorySelect');
const grid = document.getElementById('subCategoriesGrid');
// Clear existing options
select.innerHTML = '';
grid.innerHTML = '';
// Populate select and grid
subCategories.forEach(subCategory => {
const option = document.createElement('option');
option.value = subCategory;
option.textContent = subCategory;
select.appendChild(option);
const gridItem = document.createElement('div');
gridItem.className = 'bg-secondary/10 text-secondary p-3 rounded-lg text-center';
gridItem.textContent = `${subCategory} (0)`;
grid.appendChild(gridItem);
});
}
function createCategory() {
const categoryName = document.getElementById('newCategoryName').value.trim();
if (!categoryName) {
showMessage('categoryMessage', 'Kategori adı boş olamaz!', 'error');
return;
}
// This would normally send a request to the backend
showMessage('categoryMessage', `"${categoryName}" kategorisi oluşturuldu!`, 'success');
document.getElementById('newCategoryName').value = '';
// Reload categories
loadCategories();
}
function addTagsToCategory() {
const selectedCategory = document.getElementById('categorySelect').value;
const tags = document.getElementById('addTagsInput').value.trim();
if (!selectedCategory) {
showMessage('categoryMessage', 'Lütfen bir kategori seçin!', 'error');
return;
}
if (!tags) {
showMessage('categoryMessage', 'Lütfen eklenecek etiketleri girin!', 'error');
return;
}
// This would normally send a request to the backend
showMessage('categoryMessage', `"${tags}" etiketleri "${selectedCategory}" kategorisine eklendi!`, 'success');
document.getElementById('addTagsInput').value = '';
}
function removeTagsFromCategory() {
const selectedCategory = document.getElementById('categorySelect').value;
const tags = document.getElementById('removeTagsInput').value.trim();
if (!selectedCategory) {
showMessage('categoryMessage', 'Lütfen bir kategori seçin!', 'error');
return;
}
if (!tags) {
showMessage('categoryMessage', 'Lütfen silinecek etiketleri girin!', 'error');
return;
}
// This would normally send a request to the backend
showMessage('categoryMessage', `"${tags}" etiketleri "${selectedCategory}" kategorisinden silindi!`, 'success');
document.getElementById('removeTagsInput').value = '';
}
function createSubCategory() {
const categoryName = document.getElementById('newSubCategoryName').value.trim();
if (!categoryName) {
showMessage('subcategoryMessage', 'Alt kategori adı boş olamaz!', 'error');
return;
}
// This would normally send a request to the backend
showMessage('subcategoryMessage', `"${categoryName}" alt kategorisi oluşturuldu!`, 'success');
document.getElementById('newSubCategoryName').value = '';
// Reload subcategories
loadSubCategories();
}
function addTagsToSubCategory() {
const selectedCategory = document.getElementById('subCategorySelect').value;
const tags = document.getElementById('addSubTagsInput').value.trim();
if (!selectedCategory) {
showMessage('subcategoryMessage', 'Lütfen bir alt kategori seçin!', 'error');
return;
}
if (!tags) {
showMessage('subcategoryMessage', 'Lütfen eklenecek etiketleri girin!', 'error');
return;
}
// This would normally send a request to the backend
showMessage('subcategoryMessage', `"${tags}" etiketleri "${selectedCategory}" alt kategorisine eklendi!`, 'success');
document.getElementById('addSubTagsInput').value = '';
}
function removeTagsFromSubCategory() {
const selectedCategory = document.getElementById('subCategorySelect').value;
const tags = document.getElementById('removeSubTagsInput').value.trim();
if (!selectedCategory) {
showMessage('subcategoryMessage', 'Lütfen bir alt kategori seçin!', 'error');
return;
}
if (!tags) {
showMessage('subcategoryMessage', 'Lütfen silinecek etiketleri girin!', 'error');
return;
}
// This would normally send a request to the backend
showMessage('subcategoryMessage', `"${tags}" etiketleri "${selectedCategory}" alt kategorisinden silindi!`, 'success');
document.getElementById('removeSubTagsInput').value = '';
}
function showMessage(elementId, message, type) {
const element = document.getElementById(elementId);
element.textContent = message;
element.className = `p-3 rounded-lg mb-4 ${type === 'error' ? 'bg-red-100 text-red-700' : 'bg-green-100 text-green-700'}`;
element.classList.remove('hidden');
// Hide message after 3 seconds
setTimeout(() => {
element.classList.add('hidden');
}, 3000);
}
featureCards.forEach(card => {
card.addEventListener('mouseenter', () => {
card.style.transform = 'translateY(-5px)';
});
card.addEventListener('mouseleave', () => {
card.style.transform = 'translateY(0)';
});
});
// Mobile menu toggle
const mobileMenuButton = document.querySelector('.md\\:hidden');
const navMenu = document.querySelector('nav');
if (mobileMenuButton && navMenu) {
mobileMenuButton.addEventListener('click', () => {
navMenu.classList.toggle('hidden');
navMenu.classList.toggle('flex');
navMenu.classList.toggle('flex-col');
navMenu.classList.toggle('absolute');
navMenu.classList.toggle('top-16');
navMenu.classList.toggle('left-0');
navMenu.classList.toggle('w-full');
navMenu.classList.toggle('bg-white');
navMenu.classList.toggle('py-4');
navMenu.classList.toggle('shadow-md');
});
}
});