uo
This commit is contained in:
+220
-18
@@ -377,6 +377,9 @@ class SimpleWhatsAppManager {
|
||||
const container = document.getElementById('users-table');
|
||||
if (!container) return;
|
||||
|
||||
// Guardar datos para uso posterior
|
||||
this.usersData = users;
|
||||
|
||||
if (users.length === 0) {
|
||||
container.innerHTML = '<tr><td colspan="7" class="text-center text-muted">No hay usuarios registrados</td></tr>';
|
||||
return;
|
||||
@@ -834,6 +837,9 @@ class SimpleWhatsAppManager {
|
||||
const container = document.getElementById('templates-table');
|
||||
if (!container) return;
|
||||
|
||||
// Guardar datos para uso posterior
|
||||
this.templatesData = templates;
|
||||
|
||||
if (templates.length === 0) {
|
||||
container.innerHTML = '<tr><td colspan="6" class="text-center text-muted">No hay plantillas registradas</td></tr>';
|
||||
return;
|
||||
@@ -1100,14 +1106,24 @@ class SimpleWhatsAppManager {
|
||||
this.log('Guardando respuesta automática');
|
||||
|
||||
try {
|
||||
const autoresponseId = document.getElementById('autoresponse-id')?.value || '';
|
||||
|
||||
const responseData = {
|
||||
trigger_type: document.getElementById('autoresponse-type')?.value || 'keyword',
|
||||
trigger_value: document.getElementById('autoresponse-trigger')?.value || '',
|
||||
trigger_type: document.getElementById('autoresponse-trigger-type')?.value || 'keyword',
|
||||
trigger_value: document.getElementById('autoresponse-trigger-value')?.value || '',
|
||||
response_text: document.getElementById('autoresponse-text')?.value || '',
|
||||
response_type: document.getElementById('autoresponse-response-type')?.value || 'text',
|
||||
is_active: document.getElementById('autoresponse-active')?.checked ? 1 : 0
|
||||
response_type: document.getElementById('autoresponse-type')?.value || 'text',
|
||||
priority: document.getElementById('autoresponse-priority')?.value || 0,
|
||||
template_name: document.getElementById('autoresponse-template-name')?.value || '',
|
||||
menu_id: document.getElementById('autoresponse-menu-id')?.value || '',
|
||||
is_active: document.getElementById('autoresponse-active')?.value === '1' ? 1 : 0
|
||||
};
|
||||
|
||||
// Si hay ID, es una actualización
|
||||
if (autoresponseId) {
|
||||
responseData.id = autoresponseId;
|
||||
}
|
||||
|
||||
// Validar campos requeridos
|
||||
if (!responseData.response_text) {
|
||||
this.showError('El texto de respuesta es requerido');
|
||||
@@ -1157,7 +1173,7 @@ class SimpleWhatsAppManager {
|
||||
try {
|
||||
const response = await this.apiCall('delete_autoresponse.php', {
|
||||
method: 'POST',
|
||||
body: { response_id: responseId }
|
||||
body: { id: responseId }
|
||||
});
|
||||
|
||||
if (response && response.success) {
|
||||
@@ -1440,6 +1456,50 @@ class SimpleWhatsAppManager {
|
||||
const bootstrapModal = new bootstrap.Modal(modal);
|
||||
bootstrapModal.show();
|
||||
}
|
||||
|
||||
async deleteUserAction(userId, userName, userPhone) {
|
||||
if (!confirm(`¿Estás seguro de que quieres eliminar este usuario?\n\nUsuario: ${userName}\nTeléfono: ${userPhone}\n\nEsta acción no se puede deshacer y eliminará:\n• Todos sus mensajes\n• Su historial de conversación\n• Sus datos personales`)) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.log(`Eliminando usuario ID: ${userId}`);
|
||||
|
||||
try {
|
||||
const response = await this.apiCall('delete_user.php', {
|
||||
method: 'POST',
|
||||
body: { id: userId }
|
||||
});
|
||||
|
||||
if (response && response.success) {
|
||||
this.showSuccess('Usuario eliminado correctamente');
|
||||
this.loadUsers(); // Recargar la lista
|
||||
} else {
|
||||
this.showError(`Error eliminando usuario: ${response?.error || 'Error desconocido'}`);
|
||||
}
|
||||
} catch (error) {
|
||||
this.showError('Error eliminando usuario: ' + error.message);
|
||||
}
|
||||
}
|
||||
|
||||
async deleteTemplateAction(templateId) {
|
||||
this.log(`Eliminando plantilla ID: ${templateId}`);
|
||||
|
||||
try {
|
||||
const response = await this.apiCall('delete_template.php', {
|
||||
method: 'POST',
|
||||
body: { id: templateId }
|
||||
});
|
||||
|
||||
if (response && response.success) {
|
||||
this.showSuccess('Plantilla eliminada correctamente');
|
||||
this.loadTemplates(); // Recargar la lista
|
||||
} else {
|
||||
this.showError(`Error eliminando plantilla: ${response?.error || 'Error desconocido'}`);
|
||||
}
|
||||
} catch (error) {
|
||||
this.showError('Error eliminando plantilla: ' + error.message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Inicializar cuando el DOM esté listo
|
||||
@@ -1987,7 +2047,18 @@ window.viewConversation = function (userId) {
|
||||
// Función para editar usuario
|
||||
window.editUser = function (userId) {
|
||||
console.log('Editando usuario:', userId);
|
||||
alert(`Editar usuario ${userId} - Función en desarrollo`);
|
||||
|
||||
// Buscar el usuario en los datos cargados
|
||||
if (window.whatsappManager && window.whatsappManager.usersData) {
|
||||
const user = window.whatsappManager.usersData.find(u => u.id == userId);
|
||||
if (user) {
|
||||
showEditUserModal(user);
|
||||
} else {
|
||||
alert('Error: Usuario no encontrado');
|
||||
}
|
||||
} else {
|
||||
alert('Error: Datos no disponibles, recarga la página');
|
||||
}
|
||||
};
|
||||
|
||||
// Función para ver historial de usuario
|
||||
@@ -2009,8 +2080,11 @@ window.viewUserHistory = function (userId) {
|
||||
<div class="text-center py-4">
|
||||
<i class="fas fa-history fa-3x text-muted mb-3"></i>
|
||||
<h5>Historial de Usuario</h5>
|
||||
<p class="text-muted">Esta funcionalidad está en desarrollo.<br>
|
||||
Aquí se mostrará el historial completo de mensajes y actividades del usuario.</p>
|
||||
<p class="text-muted">Para ver el historial completo de conversaciones, usa la pestaña <strong>"Conversaciones"</strong> en el menú principal.<br>
|
||||
Allí podrás ver todos los mensajes y el historial detallado de cada usuario.</p>
|
||||
<a href="#" onclick="window.whatsappManager.showTab('conversations'); bootstrap.Modal.getInstance(document.getElementById('userHistoryModal')).hide(); return false;" class="btn btn-primary mt-3">
|
||||
<i class="fas fa-comments"></i> Ir a Conversaciones
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
@@ -2074,8 +2148,21 @@ window.deleteUser = async function (userId) {
|
||||
// Función para eliminar usuario
|
||||
window.deleteUser = function (userId) {
|
||||
console.log('Eliminando usuario:', userId);
|
||||
if (confirm(`¿Está seguro que desea eliminar el usuario ${userId}?`)) {
|
||||
alert(`Eliminar usuario ${userId} - Función en desarrollo`);
|
||||
|
||||
// Buscar el usuario para mostrar información
|
||||
let userName = 'Usuario ' + userId;
|
||||
let userPhone = '';
|
||||
|
||||
if (window.whatsappManager && window.whatsappManager.usersData) {
|
||||
const user = window.whatsappManager.usersData.find(u => u.id == userId);
|
||||
if (user) {
|
||||
userName = user.name || 'Usuario ' + userId;
|
||||
userPhone = user.phone_number || '';
|
||||
}
|
||||
}
|
||||
|
||||
if (window.whatsappManager) {
|
||||
window.whatsappManager.deleteUserAction(userId, userName, userPhone);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -2087,13 +2174,132 @@ window.showCreateTemplateModal = function () {
|
||||
|
||||
window.editTemplate = function (templateId) {
|
||||
console.log('Editando plantilla:', templateId);
|
||||
alert(`Editar plantilla ${templateId} - Función en desarrollo`);
|
||||
|
||||
// Las plantillas de WhatsApp no se pueden editar una vez creadas
|
||||
// Solo se pueden crear nuevas o eliminar existentes
|
||||
if (window.whatsappManager) {
|
||||
window.whatsappManager.showInfo(
|
||||
'Las plantillas de WhatsApp aprobadas no se pueden editar una vez creadas. ' +
|
||||
'Si necesitas cambiar el contenido, debes crear una nueva plantilla y enviarla a revisión.'
|
||||
);
|
||||
} else {
|
||||
alert('Las plantillas no se pueden editar. Crea una nueva plantilla si necesitas modificar el contenido.');
|
||||
}
|
||||
};
|
||||
|
||||
window.deleteTemplate = function (templateId) {
|
||||
console.log('Eliminando plantilla:', templateId);
|
||||
if (confirm(`¿Está seguro que desea eliminar la plantilla ${templateId}?`)) {
|
||||
alert(`Eliminar plantilla ${templateId} - Función en desarrollo`);
|
||||
|
||||
// Buscar la plantilla para mostrar información
|
||||
let templateName = 'Plantilla ' + templateId;
|
||||
|
||||
if (window.whatsappManager && window.whatsappManager.templatesData) {
|
||||
const template = window.whatsappManager.templatesData.find(t => t.id == templateId);
|
||||
if (template) {
|
||||
templateName = template.name || 'Plantilla ' + templateId;
|
||||
}
|
||||
}
|
||||
|
||||
if (confirm(`¿Está seguro que desea eliminar la plantilla "${templateName}"?\n\nEsta acción no se puede deshacer.`)) {
|
||||
if (window.whatsappManager) {
|
||||
window.whatsappManager.deleteTemplateAction(templateId);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// Función para editar usuario - Modal simple
|
||||
window.showEditUserModal = function(user) {
|
||||
const modalHtml = `
|
||||
<div class="modal fade" id="editUserModal" tabindex="-1">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header bg-primary text-white">
|
||||
<h5 class="modal-title">
|
||||
<i class="fas fa-user-edit"></i> Editar Usuario
|
||||
</h5>
|
||||
<button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form id="edit-user-form">
|
||||
<input type="hidden" id="edit-user-id" value="${user.id}">
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Teléfono</label>
|
||||
<input type="text" class="form-control" value="${user.phone_number}" readonly>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Nombre</label>
|
||||
<input type="text" class="form-control" id="edit-user-name" value="${user.name || ''}" placeholder="Nombre del usuario">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Estado</label>
|
||||
<select class="form-control" id="edit-user-status">
|
||||
<option value="active" ${user.status === 'active' ? 'selected' : ''}>Activo</option>
|
||||
<option value="inactive" ${user.status === 'inactive' ? 'selected' : ''}>Inactivo</option>
|
||||
<option value="blocked" ${user.status === 'blocked' ? 'selected' : ''}>Bloqueado</option>
|
||||
</select>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancelar</button>
|
||||
<button type="button" class="btn btn-primary" onclick="saveEditedUser()">
|
||||
<i class="fas fa-save"></i> Guardar Cambios
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
|
||||
// Eliminar modal anterior si existe
|
||||
const existingModal = document.getElementById('editUserModal');
|
||||
if (existingModal) {
|
||||
existingModal.remove();
|
||||
}
|
||||
|
||||
// Agregar nuevo modal
|
||||
document.body.insertAdjacentHTML('beforeend', modalHtml);
|
||||
|
||||
// Mostrar modal
|
||||
const modal = new bootstrap.Modal(document.getElementById('editUserModal'));
|
||||
modal.show();
|
||||
};
|
||||
|
||||
// Función para guardar usuario editado
|
||||
window.saveEditedUser = async function() {
|
||||
const userId = document.getElementById('edit-user-id').value;
|
||||
const name = document.getElementById('edit-user-name').value;
|
||||
const status = document.getElementById('edit-user-status').value;
|
||||
|
||||
if (window.whatsappManager) {
|
||||
try {
|
||||
const response = await window.whatsappManager.apiCall('update_user.php', {
|
||||
method: 'POST',
|
||||
body: {
|
||||
id: userId,
|
||||
name: name,
|
||||
status: status
|
||||
}
|
||||
});
|
||||
|
||||
if (response && response.success) {
|
||||
window.whatsappManager.showSuccess('Usuario actualizado correctamente');
|
||||
|
||||
// Cerrar modal
|
||||
const modal = bootstrap.Modal.getInstance(document.getElementById('editUserModal'));
|
||||
if (modal) modal.hide();
|
||||
|
||||
// Recargar lista
|
||||
window.whatsappManager.loadUsers();
|
||||
} else {
|
||||
window.whatsappManager.showError(`Error: ${response?.error || 'Error desconocido'}`);
|
||||
}
|
||||
} catch (error) {
|
||||
window.whatsappManager.showError('Error actualizando usuario: ' + error.message);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -2228,11 +2434,7 @@ window.removeMenuOption = function (button) {
|
||||
};
|
||||
|
||||
// Funciones globales para gestión de respuestas automáticas
|
||||
window.editAutoResponse = function (responseId) {
|
||||
console.log('Editando respuesta automática:', responseId);
|
||||
// TODO: Implementar edición de respuestas automáticas
|
||||
alert(`Editar respuesta automática ${responseId} - Función en desarrollo`);
|
||||
};
|
||||
// La función real está más abajo en el archivo (línea ~2390)
|
||||
|
||||
window.deleteAutoResponse = function (responseId) {
|
||||
console.log('Eliminando respuesta automática:', responseId);
|
||||
|
||||
Reference in New Issue
Block a user