feat(conx_db): complete edit/add modals with nombre, estado, version fields
- Edit modal: added Nombre, Versión, Estado (select) fields - Add modal: added Nombre, Versión, Estado (select) fields - loadData() JS mapping: includes nombre, estado, version - updateItem() payload: sends nombre, estado, version to backend Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
co-authored by
Copilot
parent
03ccc75337
commit
4cb564890d
@@ -24,11 +24,13 @@
|
||||
<table class="table-auto w-full">
|
||||
<thead class="text-sm text-left py-4 border-b border-gray-300">
|
||||
<tr class="text-left font-semibold border-collapse">
|
||||
<th class="py-2 px-3 border-b">Nombre</th>
|
||||
<th class="py-2 px-3 border-b">Puerto</th>
|
||||
<th class="py-2 px-3 border-b">Usuario</th>
|
||||
<th class="py-2 px-3 border-b">Password</th>
|
||||
<th class="py-2 px-3 border-b">Tipo DB</th>
|
||||
<th class="py-2 px-3 border-b">Servidor</th>
|
||||
<th class="py-2 px-3 border-b">Estado</th>
|
||||
<th class="py-2 px-3 border-b">Versión</th>
|
||||
<th class="py-2 px-3 border-b"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -36,13 +38,19 @@
|
||||
<template x-for="data in datos" :key="data.id">
|
||||
<tr class="hover:bg-gray-100">
|
||||
|
||||
<td class="py-3 text-xs px-3 border-b" x-text="data.nombre || '—'"></td>
|
||||
<td class="py-3 text-xs px-3 border-b" x-text="data.puerto"></td>
|
||||
<td class="py-3 text-xs px-3 border-b" x-text="data.usuario"></td>
|
||||
<td class="py-3 text-xs px-3 border-b" x-text="data.password"></td>
|
||||
<td class="py-3 text-xs px-3 border-b" x-text="tipos.find(ts => ts.ID == data.tipo_db_id)?.nombre || '-'"></td>
|
||||
<td class="py-3 text-xs px-3 border-b">
|
||||
<span x-text="(servidores.find(serv => serv.ID == data.servidor_id)?.nombre ?? '-') + ' - ' + (servidores.find(serv => serv.ID == data.servidor_id)?.ip_servidor ?? '')"></span>
|
||||
</td>
|
||||
<td class="py-3 text-xs px-3 border-b">
|
||||
<span class="px-2 py-0.5 rounded-full text-xs font-semibold"
|
||||
:class="data.estado === 'activo' ? 'bg-green-100 text-green-800' : 'bg-red-100 text-red-800'"
|
||||
x-text="data.estado || 'activo'"></span>
|
||||
</td>
|
||||
<td class="py-3 text-xs px-3 border-b" x-text="data.version || '—'"></td>
|
||||
<td class="py-3 text-xs px-3 border-b w-24">
|
||||
<div class="flex items-center gap-2">
|
||||
<button @click="openViewModal(data)" title="Ver">
|
||||
@@ -107,6 +115,13 @@
|
||||
<div class="bg-white rounded-lg shadow-lg p-6 w-11/12 max-w-lg">
|
||||
<h2 class="text-xl font-bold mb-4">Ver conexión DB</h2>
|
||||
|
||||
<div class="flex flex-col sm:flex-row justify-between gap-4 mb-4">
|
||||
<div class="w-full">
|
||||
<label class="block mb-2">Nombre:</label>
|
||||
<input type="text" x-model="selectedItem.nombre" disabled class="border border-gray-300 rounded p-2 w-full" placeholder="Nombre de la conexión" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col sm:flex-row justify-between gap-4 mb-4">
|
||||
<div class="w-full">
|
||||
<label class="block mb-2">Puerto:</label>
|
||||
@@ -144,6 +159,21 @@
|
||||
<label class="block mb-2">Password:</label>
|
||||
<input type="text" x-model="selectedItem.password" disabled class="border border-gray-300 rounded p-2 w-full" placeholder="Password" />
|
||||
</div>
|
||||
<div class="w-full">
|
||||
<label class="block mb-2">Versión:</label>
|
||||
<input type="text" x-model="selectedItem.version" disabled class="border border-gray-300 rounded p-2 w-full" placeholder="Ej: 8.0, 15.2" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col sm:flex-row justify-between gap-4 mb-4">
|
||||
<div class="w-full">
|
||||
<label class="block mb-2">Estado:</label>
|
||||
<select x-model="selectedItem.estado" disabled class="border border-gray-300 rounded p-2 w-full">
|
||||
<option value="activo">Activo</option>
|
||||
<option value="inactivo">Inactivo</option>
|
||||
<option value="mantenimiento">Mantenimiento</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex justify-end gap-2 text-sm">
|
||||
@@ -156,6 +186,13 @@
|
||||
<div class="bg-white rounded-lg shadow-lg p-6 w-11/12 max-w-lg">
|
||||
<h2 class="text-xl font-bold mb-4">Editar conexión DB</h2>
|
||||
|
||||
<div class="flex flex-col sm:flex-row justify-between gap-4 mb-4">
|
||||
<div class="w-full">
|
||||
<label class="block mb-2">Nombre:</label>
|
||||
<input type="text" x-model="selectedItem.nombre" class="border border-gray-300 rounded p-2 w-full" placeholder="Nombre de la conexión" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col sm:flex-row justify-between gap-4 mb-4">
|
||||
<div class="w-full">
|
||||
<label class="block mb-2">Puerto:</label>
|
||||
@@ -193,7 +230,23 @@
|
||||
<label class="block mb-2">Password:</label>
|
||||
<input type="text" x-model="selectedItem.password" class="border border-gray-300 rounded p-2 w-full" placeholder="Password" />
|
||||
</div>
|
||||
<div class="w-full">
|
||||
<label class="block mb-2">Versión:</label>
|
||||
<input type="text" x-model="selectedItem.version" class="border border-gray-300 rounded p-2 w-full" placeholder="Ej: 8.0, 15.2" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col sm:flex-row justify-between gap-4 mb-4">
|
||||
<div class="w-full">
|
||||
<label class="block mb-2">Estado:</label>
|
||||
<select x-model="selectedItem.estado" class="border border-gray-300 rounded p-2 w-full">
|
||||
<option value="activo">Activo</option>
|
||||
<option value="inactivo">Inactivo</option>
|
||||
<option value="mantenimiento">Mantenimiento</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex justify-between gap-2 text-sm">
|
||||
<button @click="updateItem()" class="px-4 py-2 bg-[#8eb02f] text-white rounded">Actualizar</button>
|
||||
<button @click="closeModals()" class="px-4 py-2 bg-gray-600 text-white rounded">Cerrar</button>
|
||||
@@ -205,6 +258,13 @@
|
||||
<div class="bg-white rounded-lg shadow-lg p-6 w-11/12 max-w-lg">
|
||||
<h2 class="text-xl font-bold mb-4">Añadir conexión DB</h2>
|
||||
|
||||
<div class="flex flex-col sm:flex-row justify-between gap-4 mb-4">
|
||||
<div class="w-full">
|
||||
<label class="block mb-2">Nombre:</label>
|
||||
<input type="text" x-model="selectedItem.nombre" class="border border-gray-300 rounded p-2 w-full" placeholder="Nombre de la conexión" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col sm:flex-row justify-between gap-4 mb-4">
|
||||
<div class="w-full">
|
||||
<label class="block mb-2">Puerto:</label>
|
||||
@@ -242,6 +302,21 @@
|
||||
<label class="block mb-2">Password:</label>
|
||||
<input type="text" x-model="selectedItem.password" class="border border-gray-300 rounded p-2 w-full" placeholder="Password" />
|
||||
</div>
|
||||
<div class="w-full">
|
||||
<label class="block mb-2">Versión:</label>
|
||||
<input type="text" x-model="selectedItem.version" class="border border-gray-300 rounded p-2 w-full" placeholder="Ej: 8.0, 15.2" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col sm:flex-row justify-between gap-4 mb-4">
|
||||
<div class="w-full">
|
||||
<label class="block mb-2">Estado:</label>
|
||||
<select x-model="selectedItem.estado" class="border border-gray-300 rounded p-2 w-full">
|
||||
<option value="activo">Activo</option>
|
||||
<option value="inactivo">Inactivo</option>
|
||||
<option value="mantenimiento">Mantenimiento</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex justify-between gap-2 text-sm">
|
||||
@@ -308,9 +383,12 @@
|
||||
}).then(response => {
|
||||
this.datos = response.data.registros.map(data => ({
|
||||
id: data.ID,
|
||||
nombre: data.nombre,
|
||||
puerto: data.puerto,
|
||||
usuario: data.usuario,
|
||||
password: data.password,
|
||||
estado: data.estado,
|
||||
version: data.version,
|
||||
tipo_db_id: data.tipo_db_id,
|
||||
servidor_id: data.servidor_id,
|
||||
created_at: data.CreatedAt,
|
||||
@@ -443,9 +521,12 @@
|
||||
}
|
||||
|
||||
const dataToSend = {
|
||||
nombre: this.selectedItem.nombre,
|
||||
puerto: this.selectedItem.puerto,
|
||||
usuario: this.selectedItem.usuario,
|
||||
password: this.selectedItem.password,
|
||||
estado: this.selectedItem.estado || 'activo',
|
||||
version: this.selectedItem.version,
|
||||
tipo_db_id: this.selectedItem.tipo_db_id,
|
||||
servidor_id: this.selectedItem.servidor_id,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user