feat: chat module

This commit is contained in:
amazuecos
2024-09-23 09:19:45 +02:00
parent bfea4aa67c
commit 766347ad81
28 changed files with 1598 additions and 801 deletions

View File

@ -86,53 +86,53 @@ function searchChatContacts(searchListItems, searchValue) {
// Enviar mensaje
if (sendMsgBtn.length) {
sendMsgBtn.on('click', function (e) {
e.preventDefault();
if (messageInput.val()) {
const renderMsg = $('<div>').addClass('chat-message-text mt-2').html(`<p class="mb-0">${messageInput.val()}</p>`);
const lastChatMessageWrapper = $('li:last-child .chat-message-wrapper');
if (lastChatMessageWrapper.length) {
lastChatMessageWrapper.append(renderMsg);
}
messageInput.val('');
scrollToBottom();
}
});
// sendMsgBtn.on('click', function (e) {
// e.preventDefault();
// if (messageInput.val()) {
// const renderMsg = $('<div>').addClass('chat-message-text mt-2').html(`<p class="mb-0">${messageInput.val()}</p>`);
// const lastChatMessageWrapper = $('li:last-child .chat-message-wrapper');
// if (lastChatMessageWrapper.length) {
// lastChatMessageWrapper.append(renderMsg);
// }
// messageInput.val('');
// scrollToBottom();
// }
// });
}
// Seleccionar los elementos <p> con la clase .chat-contact-status
$('.chat-contact-status').on('click', function () {
// Obtener el id de la conversación desde el atributo id del elemento <p>
var conversationId = $(this).attr('id');
// // Seleccionar los elementos <p> con la clase .chat-contact-status
// $('.chat-contact-status').on('click', function () {
// // Obtener el id de la conversación desde el atributo id del elemento <p>
// var conversationId = $(this).attr('id');
console.log(conversationId)
// console.log(conversationId)
// Realizar la llamada AJAX
$.ajax({
url: 'internos/chat/' + conversationId, // Cambia esta URL por la ruta correcta a tu API
type: 'GET',
dataType: 'json',
success: function (data) {
// Manejar la respuesta exitosa de la llamada AJAX
console.log('Datos recibidos:', data);
// Aquí puedes actualizar el DOM o realizar otras acciones con los datos recibidos
if (Array.isArray(data.people) && data.people.length > 0) {
// Limpiar el contenedor donde se mostrarán los participantes
$('#participants-container').empty();
data.people.forEach(person => {
// Crear el HTML para cada participante y agregarlo al contenedor
var participantHtml = `
<div class="avatar d-block flex-shrink-0 me-2">
<span class="avatar-initial rounded-circle bg-label-primary ">${person.user_id}</span>
</div>`;
$('#participants-container').append(participantHtml);
});
}
},
error: function (jqXHR, textStatus, errorThrown) {
// Manejar errores en la llamada AJAX
console.error('Error en la llamada AJAX:', textStatus, errorThrown);
}
});
})
;
// // Realizar la llamada AJAX
// $.ajax({
// url: 'internos/chat/' + conversationId, // Cambia esta URL por la ruta correcta a tu API
// type: 'GET',
// dataType: 'json',
// success: function (data) {
// // Manejar la respuesta exitosa de la llamada AJAX
// console.log('Datos recibidos:', data);
// // Aquí puedes actualizar el DOM o realizar otras acciones con los datos recibidos
// if (Array.isArray(data.people) && data.people.length > 0) {
// // Limpiar el contenedor donde se mostrarán los participantes
// $('#participants-container').empty();
// data.people.forEach(person => {
// // Crear el HTML para cada participante y agregarlo al contenedor
// var participantHtml = `
// <div class="avatar d-block flex-shrink-0 me-2">
// <span class="avatar-initial rounded-circle bg-label-primary ">${person.user_id}</span>
// </div>`;
// $('#participants-container').append(participantHtml);
// });
// }
// },
// error: function (jqXHR, textStatus, errorThrown) {
// // Manejar errores en la llamada AJAX
// console.error('Error en la llamada AJAX:', textStatus, errorThrown);
// }
// });
// })
// ;