Merge branch 'copilot/vcard-api-integraciones-anlisis'

This commit is contained in:
Lizandro Guarnizo
2026-05-25 20:21:19 -05:00
2 changed files with 26 additions and 5 deletions
+2
View File
@@ -80,6 +80,8 @@ func main() {
&models.PortalPasswordResetToken{},
// Integración VCard API Admin
&models.VcardApiConfig{},
// Integración Coolify
&models.CoolifyConfig{},
// Servidores: nuevos campos de agente + tabla join de integraciones
&models.Servidor{},
&models.ConxDb{},
+24 -5
View File
@@ -446,12 +446,31 @@
<tbody>
<template x-for="m in items" :key="m.id || m._id">
<tr class="hover:bg-gray-50 border-b border-gray-100">
<td class="py-2 px-3 font-medium" x-text="m.titulo || m.title || '—'"></td>
<td class="py-2 px-3 text-xs text-gray-500" x-text="(m.user && m.user.email) ? m.user.email : (m.user_id || '—')"></td>
<td class="py-2 px-3 text-xs text-gray-500" x-text="(m.vcard && m.vcard.nombre) ? m.vcard.nombre : '—'"></td>
<td class="py-2 px-3">
<span :class="m.activo ? 'bg-green-100 text-green-700' : 'bg-red-100 text-red-700'"
class="text-xs px-2 py-0.5 rounded-full" x-text="m.activo ? 'Activa' : 'Inactiva'"></span>
<div class="font-medium" x-text="m.titulo || m.title || '—'"></div>
<a x-show="m.url || m.unico" :href="m.url || ('https://web.u-site.app/w/' + m.unico)" target="_blank"
class="text-xs text-blue-500 hover:underline font-mono" x-text="m.unico || m.url || ''"></a>
</td>
<td class="py-2 px-3 text-xs text-gray-500">
<div x-text="(m.user && m.user.name) ? m.user.name : '—'"></div>
<div class="text-gray-400" x-text="(m.user && m.user.email) ? m.user.email : ''"></div>
</td>
<td class="py-2 px-3 text-xs text-gray-500">
<div x-text="(m.vcard && m.vcard.nombre) ? m.vcard.nombre : '—'"></div>
<span x-show="m.vcard" :class="(m.vcard && (m.vcard.estado === true || m.vcard.estado === 'true')) ? 'bg-green-100 text-green-700' : 'bg-gray-100 text-gray-400'"
class="text-xs px-1.5 py-0.5 rounded-full"
x-text="(m.vcard && (m.vcard.estado === true || m.vcard.estado === 'true')) ? 'VCard activa' : 'VCard inactiva'"></span>
</td>
<td class="py-2 px-3">
<template x-if="m.activo !== undefined && m.activo !== null">
<span :class="m.activo ? 'bg-green-100 text-green-700' : 'bg-red-100 text-red-700'"
class="text-xs px-2 py-0.5 rounded-full" x-text="m.activo ? 'Activa' : 'Inactiva'"></span>
</template>
<template x-if="m.activo === undefined || m.activo === null">
<span :class="(m.vcard && (m.vcard.estado === true || m.vcard.estado === 'true')) ? 'bg-green-100 text-green-700' : 'bg-gray-100 text-gray-500'"
class="text-xs px-2 py-0.5 rounded-full"
x-text="(m.vcard && (m.vcard.estado === true || m.vcard.estado === 'true')) ? 'Activa' : 'Sin estado'"></span>
</template>
</td>
</tr>
</template>