mirror of
https://github.com/JMP-MS/ASPIC.git
synced 2026-10-27 16:07:10 +00:00
V1.23.24 Externalisation des prompts et évolutions des collaborateurs
This commit is contained in:
+55
-8
@@ -38,11 +38,16 @@
|
||||
#message-identite.ok{color:#7be07b;}
|
||||
#message-identite.ko{color:#e14a5c;}
|
||||
|
||||
#liste-competences-collab{max-width:720px;}
|
||||
#liste-competences-collab .ligne-comp{padding:8px 0;border-bottom:1px solid #1e1e1e;font-size:13px;}
|
||||
#liste-competences-collab p{color:#666;font-size:12px;}
|
||||
.lien-gestion-competences{display:inline-block;margin-top:12px;font-size:12px;color:#7ab8e0;}
|
||||
|
||||
#chat-messages{height:320px;overflow-y:auto;background:#000;border:1px solid #333;
|
||||
border-radius:6px;padding:12px;display:flex;flex-direction:column;gap:8px;max-width:720px;}
|
||||
.bulle-chat{max-width:80%;padding:8px 12px;border-radius:10px;font-size:13px;
|
||||
line-height:1.5;white-space:pre-wrap;}
|
||||
.bulle-chat.moi{align-self:flex-end;background:#264d73;color:#fff;}
|
||||
.bulle-chat.moi{align-self:flex-end;background:#fbe14a;color:#1a1a1a;}
|
||||
.bulle-chat.collab{align-self:flex-start;background:#333;color:#eee;}
|
||||
.bulle-chat.systeme{align-self:center;color:#7a7;font-size:11px;font-style:italic;}
|
||||
#chat-input{width:100%;max-width:720px;resize:none;margin-top:10px;}
|
||||
@@ -61,6 +66,8 @@
|
||||
<div class="onglets-collab" id="onglets" style="display:none;">
|
||||
<button type="button" id="onglet-identite">Identité</button>
|
||||
<button type="button" id="onglet-experience">Expérience</button>
|
||||
<button type="button" id="onglet-relationnel">Relationnel</button>
|
||||
<button type="button" id="onglet-competences">Compétences</button>
|
||||
<button type="button" id="onglet-test">Tester</button>
|
||||
</div>
|
||||
|
||||
@@ -74,6 +81,11 @@
|
||||
<div id="message-identite"></div>
|
||||
</div>
|
||||
|
||||
<div id="panneau-competences" class="panneau-corps">
|
||||
<div id="liste-competences-collab"></div>
|
||||
<a class="lien-gestion-competences" href="bo_competences.html">Gérer les compétences →</a>
|
||||
</div>
|
||||
|
||||
<div id="panneau-test" class="panneau-corps">
|
||||
<div id="chat-messages"></div>
|
||||
<textarea id="chat-input" rows="2" placeholder="Écris un message…"></textarea>
|
||||
@@ -103,8 +115,12 @@ const ligne = document.getElementById('ligne-photos');
|
||||
const onglets = document.getElementById('onglets');
|
||||
const ongletIdentite = document.getElementById('onglet-identite');
|
||||
const ongletExperience = document.getElementById('onglet-experience');
|
||||
const ongletRelationnel = document.getElementById('onglet-relationnel');
|
||||
const ongletCompetences = document.getElementById('onglet-competences');
|
||||
const ongletTest = document.getElementById('onglet-test');
|
||||
const panneauIdentite = document.getElementById('panneau-identite');
|
||||
const panneauCompetences = document.getElementById('panneau-competences');
|
||||
const listeCompetencesCollab = document.getElementById('liste-competences-collab');
|
||||
const panneauTest = document.getElementById('panneau-test');
|
||||
const texteIdentite = document.getElementById('texte-identite');
|
||||
const compteurIdentite = document.getElementById('compteur-identite');
|
||||
@@ -119,7 +135,7 @@ const TEXTE_IDENTITE_MAX_OCTETS = 16777215;
|
||||
const codeurUtf8 = new TextEncoder();
|
||||
let collaborateurs = [];
|
||||
let collaborateurActif = null;
|
||||
let champActif = null; // 'AGN_Identite' | 'AGN_Experience'
|
||||
let champActif = null; // 'AGN_Identite' | 'AGN_Experience' | 'AGN_Relationnel'
|
||||
let historiqueChatTest = [];
|
||||
let premierEchangeSession = true;
|
||||
|
||||
@@ -134,24 +150,46 @@ function mettreAJourCompteur() {
|
||||
texteIdentite.addEventListener('input', mettreAJourCompteur);
|
||||
|
||||
function afficherPanneau(nom) {
|
||||
panneauIdentite.classList.toggle('visible', nom === 'identite' || nom === 'experience');
|
||||
panneauIdentite.classList.toggle('visible', nom === 'identite' || nom === 'experience' || nom === 'relationnel');
|
||||
panneauCompetences.classList.toggle('visible', nom === 'competences');
|
||||
panneauTest.classList.toggle('visible', nom === 'test');
|
||||
[ongletIdentite, ongletExperience, ongletTest].forEach(function (b) { b.classList.remove('actif'); });
|
||||
[ongletIdentite, ongletExperience, ongletRelationnel, ongletCompetences, ongletTest].forEach(function (b) { b.classList.remove('actif'); });
|
||||
if (nom === 'identite') ongletIdentite.classList.add('actif');
|
||||
if (nom === 'experience') ongletExperience.classList.add('actif');
|
||||
if (nom === 'relationnel') ongletRelationnel.classList.add('actif');
|
||||
if (nom === 'competences') ongletCompetences.classList.add('actif');
|
||||
if (nom === 'test') ongletTest.classList.add('actif');
|
||||
}
|
||||
|
||||
async function afficherCompetencesCollab() {
|
||||
listeCompetencesCollab.innerHTML = 'Chargement…';
|
||||
try {
|
||||
const r = await fetch('agents_competences.php');
|
||||
const data = await r.json();
|
||||
const lignes = (data.attributions || []).filter(function (a) { return a.AGC_AgentIncr == collaborateurActif.AGN_Incr; });
|
||||
listeCompetencesCollab.innerHTML = lignes.length ? '' : '<p>Aucune compétence attribuée.</p>';
|
||||
lignes.forEach(function (a) {
|
||||
const div = document.createElement('div');
|
||||
div.className = 'ligne-comp';
|
||||
div.textContent = a.CMP_Libelle;
|
||||
listeCompetencesCollab.appendChild(div);
|
||||
});
|
||||
} catch (e) {
|
||||
listeCompetencesCollab.innerHTML = '<p>Erreur de chargement.</p>';
|
||||
}
|
||||
}
|
||||
|
||||
const PANNEAU_PAR_CHAMP = { AGN_Identite: 'identite', AGN_Experience: 'experience', AGN_Relationnel: 'relationnel' };
|
||||
|
||||
function chargerChamp(champ) {
|
||||
champActif = champ;
|
||||
const estIdentite = champ === 'AGN_Identite';
|
||||
texteIdentite.value = estIdentite
|
||||
texteIdentite.value = champ === 'AGN_Identite'
|
||||
? (collaborateurActif.AGN_Identite || EBAUCHES_IDENTITE[collaborateurActif.AGN_Prenom] || '')
|
||||
: (collaborateurActif.AGN_Experience || '');
|
||||
: (collaborateurActif[champ] || '');
|
||||
messageIdentite.textContent = '';
|
||||
messageIdentite.className = '';
|
||||
mettreAJourCompteur();
|
||||
afficherPanneau(estIdentite ? 'identite' : 'experience');
|
||||
afficherPanneau(PANNEAU_PAR_CHAMP[champ]);
|
||||
}
|
||||
|
||||
function ouvrirTest() {
|
||||
@@ -165,6 +203,13 @@ function ouvrirTest() {
|
||||
function ajouterBulle(role, texte) {
|
||||
const b = document.createElement('div');
|
||||
b.className = 'bulle-chat ' + role;
|
||||
// Couleur du collaborateur (AGN_Couleur, pastel) sur ses propres bulles —
|
||||
// le jaune classique du post-it (#fbe14a, voir ecran_fond.html, "toujours
|
||||
// pour l'humain") reste fixe en CSS pour "moi", jamais écrasé ici.
|
||||
if (role === 'collab' && collaborateurActif && collaborateurActif.AGN_Couleur) {
|
||||
b.style.background = collaborateurActif.AGN_Couleur;
|
||||
b.style.color = '#1a1a1a';
|
||||
}
|
||||
b.textContent = texte;
|
||||
chatMessages.appendChild(b);
|
||||
chatMessages.scrollTop = chatMessages.scrollHeight;
|
||||
@@ -207,6 +252,8 @@ async function chargerCollaborateurs() {
|
||||
|
||||
ongletIdentite.addEventListener('click', function () { chargerChamp('AGN_Identite'); });
|
||||
ongletExperience.addEventListener('click', function () { chargerChamp('AGN_Experience'); });
|
||||
ongletRelationnel.addEventListener('click', function () { chargerChamp('AGN_Relationnel'); });
|
||||
ongletCompetences.addEventListener('click', function () { afficherPanneau('competences'); afficherCompetencesCollab(); });
|
||||
ongletTest.addEventListener('click', ouvrirTest);
|
||||
|
||||
btnAbandonner.addEventListener('click', function () { chargerChamp(champActif); });
|
||||
|
||||
Reference in New Issue
Block a user