Commit Graph
98 Commits
Author SHA1 Message Date
Lizandro GuarnizoandCopilot 34f2c3e582 feat(query-runner): helpers DBA para conexiones SQL
- Chips rápidos: SHOW DATABASES, SHOW TABLES, SHOW USERS, SHOW GRANTS,
  SHOW PROCESSLIST, SHOW CREATE TABLE, DESCRIBE, info_schema engine/charset
- Generador DBA (collapsible): form con BD, usuario, host y contraseña
  Operaciones: Setup completo | CREATE DATABASE | CREATE USER | GRANT ALL |
  REVOKE | SHOW GRANTS | DROP USER | DROP DATABASE
- Setup completo genera las 3 sentencias en bloque con comentarios
- Visible só

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-20 11:14:11 -05:00
Lizandro GuarnizoandCopilot 3114a2da6c feat(vcard-api): modales Ver/Editar Plan con todos los campos
- Añade botones 'Ver' y 'Editar' en cada card de plan
- Modal 'Ver Plan': todos los campos + tabla completa de tarifas por país
  (nombre, descripción, características HTML, imagen, cantidad, estado,
   plan_id_anual/mensual, PayPal IDs, timestamps, tarifas con pais_id/monto)
- Modal 'Editar Plan': formulario con todos los campos editables
  (nombre, descripcion, caracteristicas HTML, cantidad, img, estado,
   plan_id_anual/mensual, plan_anual/mensual_paypal)
   + tabla de tarifas en sólo lectura
- Backend: agrega VcardApiPlan (GET) y VcardApiPlanUpdate (PUT) como proxy
- Rutas: GET/PUT /app/vcard-api/planes/:id

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-20 10:48:29 -05:00
Lizandro GuarnizoandCopilot 15b38203f2 fix(vcard-api): corregir tab Planes con campos reales de la API
- Corrección: p.activo → p.estado (activo no existe en la respuesta)
- Corrección: tarifas usan t.monto, no t.precio/t.moneda/t.periodo
- Mejora: precios únicos resumidos con helper uniqueMontos() (max 5)
- Añade: img del plan, cantidad de vcards permitidas, conteo de tarifas por país
- Añade: ID del plan al pie de cada card

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-20 10:38:46 -05:00
Lizandro GuarnizoandCopilot 5a1a8857a1 feat(vcard-api): modal Ver VCard + boton ver en tabla + animacion como select
- Tabla VCards: boton 'Ver' abre modal detalle con 3 tabs (Info, Redes, Apariencia)
- Modal Ver VCard: muestra todos los campos, colores con preview, redes configuradas
- Footer del modal: boton 'Ver VCard' abre https://vcard.u-site.app/{unico} en nueva pestaña
- Footer: boton 'Editar' abre modal de edicion desde el ver
- Edit VCard: campo animacion cambiado a select (Sin animacion, Fade, Slide, Zoom, Bounce, Flip)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-20 10:23:11 -05:00
Lizandro GuarnizoandCopilot bf4fdd6db0 feat(vcard-api): tabla VCards completa + modal edicion con redes y apariencia
- Tabla VCards: añade columnas cargo, URL (enlace unico), borrador badge, pais/ciudad, fecha
- Modal Editar VCard ahora tiene 3 tabs: Datos, Redes Sociales, Apariencia
- Datos: todos los campos existentes + indicativos tel/whatsapp, foto_perfil, logo, boton
- Redes: linkedin, twitter, facebook, instagram, tiktok, github, behance,
  youtube, youtube_channel, telegram, messenger, wechat, signal, line
- Apariencia: colores (cabecera, fondo, cuerpo, iconos, info) con color picker,
  fuente, bordes, estilo_vcard, orden_iconos, animacion
- JS: editVcardForm y openEditVcardModal actualizados con todos los campos

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-20 09:52:40 -05:00
Lizandro GuarnizoandCopilot b43c144a82 feat(vcard-api): modal Ver Usuario con tabs + rol select + roles acumulados
- Reemplaza drill-down inline de Usuarios por modal 'Ver' con tabs:
  General, Perfil, VCards, Wallet, Pagos, Logs, MiniWebs
- Añade columna Rol en tabla de usuarios con badge coloreado
- Edit Usuario: rol_id ahora es <select> con nombres reales (administrador/cliente)
- Roles se acumulan automáticamente al cargar usuarios (sin endpoint dedicado)
- Carga lazy de Pagos, Logs, MiniWebs dentro del modal de detalle
- VCards en detalle incluye URL con enlace directo

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-20 09:34:43 -05:00
Lizandro Guarnizo 62e49b39ad feat(vcard): agregar funcionalidad de edición de usuario y VCard, incluyendo filtros y modales 2026-05-20 09:09:33 -05:00
Lizandro GuarnizoandCopilot 45032dae3f feat(vcard): agregar login con email+password para obtener token automáticamente
- Nuevo endpoint POST /app/vcard-api/login que llama a /api/login del sistema VCard externo
- Modal de configuración con campos email+password y botón 'Obtener Token'
- El token se auto-rellena en el campo Bearer Token al conectar exitosamente
- Se mantiene la opción de pegar el token manualmente como fallback

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-19 20:44:40 -05:00
Lizandro Guarnizo 24e1cf1439 feat: add VCard API integration with configuration and proxy endpoints
- Implemented VCard API controller with methods to manage configuration (save, get).
- Added proxy functions to handle API requests for users, vcards, memberships, payments, transactions, logs, and miniwebs.
- Included error handling and response formatting for API interactions.
2026-05-19 20:08:50 -05:00
Lizandro GuarnizoandCopilot 749cf7ef2f feat(proyectos): mejorar feedback visual del toggle visibilidad en avances
- Botón de ojo reemplazado por badge con etiqueta Visible/Oculto
- Toast de confirmación al cambiar visibilidad (3s, estilo app)
- Tooltip descriptivo con acción esperada

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-19 16:57:47 -05:00
Lizandro GuarnizoandCopilot 6e27032ac6 feat(portal): agregar flujo de recuperación de contraseña
- Nuevo modelo PortalPasswordResetToken con token seguro (32 bytes, 1h vigencia)
- AutoMigrate del nuevo modelo en main.go
- SendPortalPasswordResetEmail con diseño consistente al app
- Handlers: PortalForgotPasswordPage/Post y PortalResetPasswordPost/Page
- Rutas públicas GET/POST /portal/forgot-password y /portal/reset-password
- Vistas forgot_password.html y reset_password.html con validación JS
- Enlace ¿Olvidaste tu contraseña? en login.html + soporte mensaje success

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-19 15:25:53 -05:00
Lizandro Guarnizo b5e6a9285f up 2026-05-19 13:33:39 -05:00
Lizandro Guarnizo 762ebc2afc up 2026-05-19 13:09:06 -05:00
Lizandro Guarnizo d713dcd47b up 2026-05-19 12:43:19 -05:00
Lizandro Guarnizo bbe83c79ba up 2026-05-18 23:45:11 -05:00
Lizandro Guarnizo 25f21be966 up 2026-05-18 19:17:05 -05:00
Lizandro Guarnizo 4b2003c752 ip 2026-05-16 21:54:17 -05:00
Lizandro Guarnizo 5aad09f1cd up 2026-05-16 21:41:44 -05:00
Lizandro Guarnizo 1511ca97d9 up 2026-05-16 21:36:59 -05:00
Lizandro Guarnizo 4fa506c7d6 up 2026-05-16 21:27:30 -05:00
Lizandro Guarnizo fcc3ff7ca7 up 2026-05-16 21:05:05 -05:00
Lizandro Guarnizo 605ff74cc8 Update lateral.html 2026-05-16 20:59:06 -05:00
Lizandro Guarnizo 562ffa4184 up 2026-05-16 20:54:11 -05:00
Lizandro Guarnizo 2b7458b612 up 2026-05-16 20:01:36 -05:00
Lizandro Guarnizo 4c14f4a641 up 2026-05-16 18:47:40 -05:00
Lizandro Guarnizo f5eef70e09 up 2026-05-16 15:17:49 -05:00
Lizandro Guarnizo 9820405475 up 2026-05-16 15:06:05 -05:00
Lizandro Guarnizo 76a0c28b16 up 2026-05-16 13:44:32 -05:00
Lizandro Guarnizo 85595e639e Update shield.html 2026-05-15 23:45:44 -05:00
Lizandro Guarnizo 49cc56123b up 2026-05-15 23:22:35 -05:00
Lizandro Guarnizo a0754c0c92 up 2026-05-15 22:27:07 -05:00
Lizandro Guarnizo 084f6e3930 up 2026-05-15 22:00:54 -05:00
Lizandro Guarnizo 5ec5595196 up 2026-05-15 21:01:30 -05:00
Lizandro Guarnizo 3a301267e7 up 2026-05-15 17:03:53 -05:00
Lizandro Guarnizo 00a7d173f3 Update proyecto_detalle.html 2026-05-15 16:49:01 -05:00
Lizandro Guarnizo d7fe292f05 up 2026-05-15 14:46:11 -05:00
Lizandro Guarnizo b340d29583 up 2026-05-15 14:26:52 -05:00
Lizandro Guarnizo 715d656b2a up 2026-05-15 09:10:26 -05:00
Lizandro Guarnizo e02a4f2141 up 2026-05-14 23:03:07 -05:00
Lizandro Guarnizo 61b3eca31d up 2026-05-14 22:30:31 -05:00
Lizandro Guarnizo 277ad6bb63 feat(hostinger): VPS resource metrics modal — CPU, RAM, disco, tráfico, uptime 2026-05-14 21:00:57 -05:00
Lizandro Guarnizo 1dd1a67459 fix(hostinger): VPS memory/disk son MB no bytes, corregir formatBytes 2026-05-14 20:49:29 -05:00
Lizandro Guarnizo 8343101525 feat(hostinger): VPS actions, DNS editing, domain lock/privacy, nameservers, auto-renewal 2026-05-14 20:42:57 -05:00
Lizandro Guarnizo abecb9b305 fix(hostinger): DNS aplanado + nameservers, facturacion precios formateados, subscriptions endpoint 2026-05-14 20:17:45 -05:00
Lizandro Guarnizo beb9e9d9eb up 2026-05-14 19:56:44 -05:00
Lizandro Guarnizo a633bc765c up 2026-05-14 19:28:24 -05:00
Lizandro Guarnizo d2fdc1f0db fix: hostinger VPS - ipv4/ipv6 son arrays, no strings 2026-05-14 19:21:29 -05:00
Lizandro Guarnizo e94f9ee1f4 up 2026-05-13 22:45:22 -05:00
Lizandro Guarnizo 9bcddcf1ea up 2026-05-13 22:05:20 -05:00
Lizandro Guarnizo aead156ba8 up 2026-05-12 22:07:31 -05:00