message achoix
This commit is contained in:
+59
-1
@@ -735,5 +735,63 @@ body {
|
||||
|
||||
.user-status.testing {
|
||||
background-color: var(--warning-color);
|
||||
animation: pulse 1s infinite;
|
||||
}
|
||||
|
||||
/* Sélecteurs d'utilisateurs */
|
||||
.user-selector {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.user-selector .form-label {
|
||||
font-size: 0.875rem;
|
||||
font-weight: 500;
|
||||
color: var(--text-secondary);
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.user-selector .form-select {
|
||||
background-color: var(--secondary-bg);
|
||||
border: 1px solid var(--border-color);
|
||||
color: var(--text-primary);
|
||||
border-radius: 6px;
|
||||
font-size: 0.875rem;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.user-selector .form-select:focus {
|
||||
background-color: var(--secondary-bg);
|
||||
border-color: var(--accent-color);
|
||||
color: var(--text-primary);
|
||||
box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
|
||||
}
|
||||
|
||||
.user-selector .form-select option {
|
||||
background-color: var(--secondary-bg);
|
||||
color: var(--text-primary);
|
||||
padding: 0.5rem;
|
||||
}
|
||||
|
||||
/* Amélioration des sélecteurs dans le chat */
|
||||
.chat-container .form-select {
|
||||
background-color: var(--tertiary-bg);
|
||||
border: 1px solid var(--border-color);
|
||||
color: var(--text-primary);
|
||||
font-size: 0.8rem;
|
||||
padding: 0.375rem 0.75rem;
|
||||
}
|
||||
|
||||
.chat-container .form-select:focus {
|
||||
background-color: var(--tertiary-bg);
|
||||
border-color: var(--accent-color);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
/* Animation pour les sélecteurs */
|
||||
.form-select {
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.form-select:hover {
|
||||
border-color: var(--accent-color);
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
+116
-36
@@ -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');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user