message achoix

This commit is contained in:
gpatruno
2025-07-20 03:33:48 +02:00
parent 9725cd7a7c
commit 75d9a65cc4
15 changed files with 272 additions and 47 deletions
+116 -36
View File
@@ -327,12 +327,24 @@ async function savePrompts() {
// Envoi d'un message personnalisé
async function sendCustomMessage() {
const message = document.getElementById('custom-message').value.trim();
const userId = parseInt(document.getElementById('custom-message-user').value);
console.log('Debug - Message:', message);
console.log('Debug - User ID:', userId);
console.log('Debug - User ID type:', typeof userId);
console.log('Debug - Selector value:', document.getElementById('custom-message-user').value);
if (!message) {
showToast('Veuillez entrer un message', 'error');
return;
}
// Vérifier si l'utilisateur est valide (pas NaN et dans la plage des utilisateurs)
if (isNaN(userId) || userId < 0 || userId >= currentUsers.length) {
showToast('Veuillez sélectionner un utilisateur valide', 'error');
return;
}
try {
const response = await fetch(`${API_BASE}/api/send-message`, {
method: 'POST',
@@ -341,7 +353,8 @@ async function sendCustomMessage() {
},
body: JSON.stringify({
message: message,
channel: 'default'
channel: 'default',
user_id: userId
})
});
@@ -364,12 +377,19 @@ async function sendCustomMessage() {
async function sendNextMessage() {
const nextMessageElement = document.getElementById('next-message');
const message = nextMessageElement.textContent.trim();
const userId = parseInt(document.getElementById('custom-message-user').value);
if (message === 'Aucun message en attente') {
showToast('Aucun message à envoyer', 'warning');
return;
}
// Vérifier si l'utilisateur est valide (pas NaN et dans la plage des utilisateurs)
if (isNaN(userId) || userId < 0 || userId >= currentUsers.length) {
showToast('Veuillez sélectionner un utilisateur valide', 'error');
return;
}
try {
const response = await fetch(`${API_BASE}/api/send-message`, {
method: 'POST',
@@ -378,7 +398,8 @@ async function sendNextMessage() {
},
body: JSON.stringify({
message: message,
channel: 'default'
channel: 'default',
user_id: userId
})
});
@@ -399,6 +420,14 @@ async function sendNextMessage() {
// Envoi de la dernière génération
async function sendLastGeneration() {
const userId = parseInt(document.getElementById('custom-message-user').value);
// Vérifier si l'utilisateur est valide (pas NaN et dans la plage des utilisateurs)
if (isNaN(userId) || userId < 0 || userId >= currentUsers.length) {
showToast('Veuillez sélectionner un utilisateur valide', 'error');
return;
}
try {
const response = await fetch(`${API_BASE}/api/generations`);
const generations = await response.json();
@@ -418,7 +447,8 @@ async function sendLastGeneration() {
},
body: JSON.stringify({
message: lastGeneration,
channel: 'default'
channel: 'default',
user_id: userId
})
});
@@ -839,8 +869,21 @@ function addSystemMessage(message) {
// Envoi d'un message via le chat
async function sendChatMessage() {
const message = chatInput.value.trim();
const userId = parseInt(document.getElementById('chat-user-select').value);
console.log('Debug - Chat Message:', message);
console.log('Debug - Chat User ID:', userId);
console.log('Debug - Chat User ID type:', typeof userId);
console.log('Debug - Chat Selector value:', document.getElementById('chat-user-select').value);
if (!message) return;
// Vérifier si l'utilisateur est valide (pas NaN et dans la plage des utilisateurs)
if (isNaN(userId) || userId < 0 || userId >= currentUsers.length) {
showToast('Veuillez sélectionner un utilisateur valide', 'error');
return;
}
// Trouver le premier flux actif
const activeFlux = bot_controller.flux_list.find(flux => flux.active);
if (!activeFlux) {
@@ -855,7 +898,8 @@ async function sendChatMessage() {
'Content-Type': 'application/json'
},
body: JSON.stringify({
message: message
message: message,
user_id: userId
})
});
@@ -963,6 +1007,7 @@ async function loadUsers() {
const response = await fetch(`${API_BASE}/api/config/users`);
currentUsers = await response.json();
renderUsers();
updateUserSelectors(); // Mettre à jour les sélecteurs après le chargement
} catch (error) {
console.error('Erreur lors du chargement des utilisateurs:', error);
}
@@ -1010,6 +1055,53 @@ function renderUsers() {
</div>
</div>
`).join('');
// Mettre à jour les sélecteurs d'utilisateurs
updateUserSelectors();
}
// Mettre à jour les sélecteurs d'utilisateurs dans l'interface
function updateUserSelectors() {
console.log('Debug - updateUserSelectors called');
console.log('Debug - currentUsers:', currentUsers);
const selectors = [
'custom-message-user',
'chat-user-select'
];
selectors.forEach(selectorId => {
const selector = document.getElementById(selectorId);
if (selector) {
console.log(`Debug - Updating selector: ${selectorId}`);
// Sauvegarder la sélection actuelle
const currentValue = selector.value;
console.log(`Debug - Current value: ${currentValue}`);
// Vider le sélecteur avec une valeur par défaut différente
selector.innerHTML = '<option value="-1">Sélectionner un utilisateur...</option>';
// Ajouter les utilisateurs
currentUsers.forEach((user, index) => {
const option = document.createElement('option');
option.value = index.toString(); // Convertir en chaîne
option.textContent = `${user.tw_acc_pseudo} ${user.charactere}`;
selector.appendChild(option);
console.log(`Debug - Added option: value=${index.toString()}, text=${user.tw_acc_pseudo} ${user.charactere}`);
});
// Restaurer la sélection si elle était valide
if (currentValue && currentValue !== '-1' && currentValue !== '0') {
selector.value = currentValue;
console.log(`Debug - Restored value: ${currentValue}`);
}
} else {
console.log(`Debug - Selector not found: ${selectorId}`);
}
});
console.log('Debug - Selectors updated');
}
// Ouvrir le modal pour ajouter un utilisateur
@@ -1054,47 +1146,34 @@ async function saveUser() {
}
try {
let response;
if (userId === '') {
// Ajouter un nouvel utilisateur
response = await fetch(`${API_BASE}/api/config/users`, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
tw_acc_pseudo: pseudo,
tw_acc_token: token,
charactere: charactere
})
});
} else {
// Modifier un utilisateur existant
response = await fetch(`${API_BASE}/api/config/users/${userId}`, {
method: 'PUT',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
tw_acc_pseudo: pseudo,
tw_acc_token: token,
charactere: charactere
})
});
}
const url = userId ? `${API_BASE}/api/config/users/${userId}` : `${API_BASE}/api/config/users`;
const method = userId ? 'PUT' : 'POST';
const response = await fetch(url, {
method: method,
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
tw_acc_pseudo: pseudo,
tw_acc_token: token,
charactere: charactere
})
});
const result = await response.json();
if (result.success) {
showToast(userId === '' ? 'Utilisateur ajouté' : 'Utilisateur modifié', 'success');
showToast(userId ? 'Utilisateur modifié' : 'Utilisateur ajouté', 'success');
bootstrap.Modal.getInstance(document.getElementById('addUserModal')).hide();
await loadUsers();
updateUserSelectors(); // Mettre à jour les sélecteurs
} else {
showToast(result.error || 'Erreur lors de la sauvegarde', 'error');
}
} catch (error) {
console.error('Erreur:', error);
showToast('Erreur lors de la sauvegarde de l\'utilisateur', 'error');
showToast('Erreur lors de la sauvegarde', 'error');
}
}
@@ -1112,13 +1191,14 @@ async function deleteUser(userId) {
const result = await response.json();
if (result.success) {
showToast('Utilisateur supprimé avec succès', 'success');
showToast('Utilisateur supprimé', 'success');
await loadUsers();
updateUserSelectors(); // Mettre à jour les sélecteurs
} else {
showToast(result.error || 'Erreur lors de la suppression', 'error');
}
} catch (error) {
console.error('Erreur:', error);
showToast('Erreur lors de la suppression de l\'utilisateur', 'error');
showToast('Erreur lors de la suppression', 'error');
}
}