diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 1c821a0..218b395 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -62,10 +62,19 @@
Cargando usuarios…
-
- -
+
@@ -111,9 +120,10 @@ diff --git a/frontend/src/components/UserCard.js b/frontend/src/components/UserCard.js deleted file mode 100644 index baf6c99..0000000 --- a/frontend/src/components/UserCard.js +++ /dev/null @@ -1,26 +0,0 @@ -import { defineComponent, h } from 'vue'; -import htm from 'htm'; -const html = htm.bind(h); - -export default defineComponent({ - name: 'UserCard', - props: { item: { type: Object, required: true }, mode: { type: String, default: 'user' } }, - emits: ['toggleDisable', 'remove', 'edit'], - setup(props, { emit }) { - function toggle() { emit('toggleDisable', props.item); } - function remove() { emit('remove', props.item); } - function edit() { emit('edit', props.item); } - return () => html`
-
- ${props.mode === 'user' ? props.item.username : (props.item.device || props.item.username)} - VLAN ${props.item.vlan} - ${props.item.disabled ? html`deshabilitado` : html`activo`} - - - - -
-
${props.item.devices ? props.item.devices.length : 0} dispositivos
-
`; - } -}); diff --git a/frontend/src/components/UserCard.vue b/frontend/src/components/UserCard.vue new file mode 100644 index 0000000..4e6ee84 --- /dev/null +++ b/frontend/src/components/UserCard.vue @@ -0,0 +1,40 @@ + + + diff --git a/node-api/src/routes/api.js b/node-api/src/routes/api.js index 6d9c95d..5e958ed 100644 --- a/node-api/src/routes/api.js +++ b/node-api/src/routes/api.js @@ -151,4 +151,15 @@ router.post('/vlans', async (req, res) => { } }); +// Devices list (read-only) +router.get('/devices', async (_req, res) => { + try { + const result = await pool.query('SELECT id, mac, nombre, vendor, descripcion, first_seen, last_seen FROM dispositivos ORDER BY last_seen DESC NULLS LAST, first_seen DESC'); + res.json({ items: result.rows }); + } catch (e) { + console.error('GET /api/devices error:', e?.message || e); + res.status(500).json({ ok: false, error: 'db_error', items: [] }); + } +}); + export default router;