Panel Administrativo - MarketPlace Chile
Panel Administrativo - MarketPlace Chile Panel de Administración Gestiona los anuncios y usuarios de MarketPlace Chile. Aquí puedes moderar contenido, bloquear usuarios y mantener la calidad de la plataforma. 0 Anuncios Totales 0 Usuarios Registrados 0 Anuncios Premium 0 Contenido Bloqueado Gestión de Contenido Anuncios Usuarios Todos Premium Bloqueados Activos Actualizar Producto Usuario Precio Tipo Estado Acciones Cargando anuncios... Usuario Email Rol Estado Acciones Cargando usuarios... Confirmar Acción ¿Estás seguro de que deseas realizar esta acción? Cancelar Confirmar import { initApp } from './src/app.js'; // Estado global let allAnuncios = []; let allUsuarios = []; let currentTab = 'anuncios'; let searchTerm = ''; let filterValue = 'todos'; let modalCallback = null; // Elementos DOM const listaAnuncios = document.getElementById('lista-admin-anuncios'); const listaUsuarios = document.getElementById('lista-admin-usuarios'); const tabBtns = document.querySelectorAll('.tab-btn'); const searchInput = document.getElementById('search-input'); const filterSelect = document.getElementById('filter-select'); const refreshBtn = document.getElementById('refresh-btn'); const modalOverlay = document.getElementById('modal-overlay'); const modalMessage = document.getElementById('modal-message'); const modalConfirm = document.getElementById('modal-confirm'); const modalCancel = document.getElementById('modal-cancel'); const toast = document.getElementById('toast'); // Funciones de utilidad function showToast(message, type = 'info') { toast.textContent = message; toast.className = `toast show ${type}`; setTimeout(() => { toast.classList.remove('show'); }, 3000); } function showModal(message, callback) { modalMessage.textContent = message; modalCallback = callback; modalOverlay.classList.add('show'); } function hideModal() { modalOverlay.classList.remove('show'); modalCallback = null; } function formatPrice(price) { if (!price) return '$0'; return new Intl.NumberFormat('es-CL', { style: 'currency', currency: 'CLP', minimumFractionDigits: 0 }).format(price); } function getInitials(name) { if (!name) return '?'; return name.split(' ').map(n => n[0]).slice(0, 2).join('').toUpperCase(); } function getProductIcon(categoria) { const icons = { 'Vehículos': ' ', 'Inmuebles': ' ', 'Tecnología': ' ', 'Hogar': ' ', 'Moda': ' ', 'Deportes': ' ', 'Servicios': '