mirror of
https://github.com/JMP-MS/ASPIC.git
synced 2026-10-27 17:17:08 +00:00
Réconciliation avec la production réelle - V1.001 (badge société/avatar, USR_Code/USR_Societe dans preferences.php)
This commit is contained in:
+42
-2
@@ -12,6 +12,11 @@
|
|||||||
:root{
|
:root{
|
||||||
--gris-fonce:#484848;
|
--gris-fonce:#484848;
|
||||||
--orange:#FF5A1F;
|
--orange:#FF5A1F;
|
||||||
|
/* Bleu badge/avatar (29 août 2026) : couleur commune au badge société et
|
||||||
|
à l'avatar (Jean-Marc a confirmé l'avatar réellement gris en
|
||||||
|
production — --gris-fonce reste donc défini et utilisé ailleurs dans
|
||||||
|
la feuille — puis a demandé d'unifier les deux en bleu). */
|
||||||
|
--bleu-badge:#2E5AAC;
|
||||||
--gris-clair:#C7C7C7;
|
--gris-clair:#C7C7C7;
|
||||||
--zebra-jaune:#F7F3E3;
|
--zebra-jaune:#F7F3E3;
|
||||||
--zebra-bleu:#E7EAF2;
|
--zebra-bleu:#E7EAF2;
|
||||||
@@ -72,11 +77,27 @@
|
|||||||
#bandeau-spacer{flex:1;}
|
#bandeau-spacer{flex:1;}
|
||||||
#avatar{
|
#avatar{
|
||||||
width:28px;height:28px;border-radius:50%;
|
width:28px;height:28px;border-radius:50%;
|
||||||
background:var(--gris-fonce);color:#FFFFFF;
|
background:var(--bleu-badge);color:#FFFFFF;
|
||||||
display:flex;align-items:center;justify-content:center;
|
display:flex;align-items:center;justify-content:center;
|
||||||
font-weight:700;font-size:10px;cursor:default;
|
font-weight:700;font-size:10px;cursor:default;
|
||||||
border:1px solid rgba(0,0,0,0.2);
|
border:1px solid rgba(0,0,0,0.2);
|
||||||
|
margin-left:6px;
|
||||||
}
|
}
|
||||||
|
/* Badge société (29 août 2026) : repère visuel d'environnement, à gauche
|
||||||
|
de l'avatar. "Bouton" non cliquable (cursor:default, pas de hover) —
|
||||||
|
forme pilule plutôt que le disque de l'avatar, pour bien distinguer les
|
||||||
|
deux informations (société vs utilisateur) tout en les regroupant
|
||||||
|
visuellement. Masqué (display:none) si USR_Societe est vide en base
|
||||||
|
pour l'utilisateur connecté — voir chargerPreferences(). */
|
||||||
|
#badge-societe{
|
||||||
|
height:20px;padding:0 10px;border-radius:10px;
|
||||||
|
background:var(--bleu-badge);color:#FFFFFF;
|
||||||
|
display:flex;align-items:center;justify-content:center;
|
||||||
|
font-weight:700;font-size:10px;letter-spacing:0.3px;cursor:default;
|
||||||
|
border:1px solid rgba(0,0,0,0.2);
|
||||||
|
white-space:nowrap;
|
||||||
|
}
|
||||||
|
#badge-societe[hidden]{display:none;}
|
||||||
|
|
||||||
/* -------- En-tête colonnes -------- */
|
/* -------- En-tête colonnes -------- */
|
||||||
#entete-colonnes{
|
#entete-colonnes{
|
||||||
@@ -599,7 +620,8 @@
|
|||||||
<div id="logo-aspic"><span class="A">A</span><span class="rest">SPIC</span></div>
|
<div id="logo-aspic"><span class="A">A</span><span class="rest">SPIC</span></div>
|
||||||
<div id="titre-ecran">LISTE DES CONTACTS</div>
|
<div id="titre-ecran">LISTE DES CONTACTS</div>
|
||||||
<div id="bandeau-spacer"></div>
|
<div id="bandeau-spacer"></div>
|
||||||
<div id="avatar" title="Utilisateur">JMP</div>
|
<div id="badge-societe" title="Société" hidden></div>
|
||||||
|
<div id="avatar" title="Utilisateur"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- En-tête de colonnes -->
|
<!-- En-tête de colonnes -->
|
||||||
@@ -1714,6 +1736,24 @@ async function chargerPreferences(){
|
|||||||
const data = await reponse.json();
|
const data = await reponse.json();
|
||||||
if(typeof data.USR_RatioPanneauContact === "number") PREFERENCES.USR_RatioPanneauContact = data.USR_RatioPanneauContact;
|
if(typeof data.USR_RatioPanneauContact === "number") PREFERENCES.USR_RatioPanneauContact = data.USR_RatioPanneauContact;
|
||||||
if(typeof data.USR_RatioPanneauProspect === "number") PREFERENCES.USR_RatioPanneauProspect = data.USR_RatioPanneauProspect;
|
if(typeof data.USR_RatioPanneauProspect === "number") PREFERENCES.USR_RatioPanneauProspect = data.USR_RatioPanneauProspect;
|
||||||
|
|
||||||
|
// Avatar (29 août 2026) : jusqu'ici du texte figé "JMP" dans le HTML,
|
||||||
|
// jamais vraiment branché sur la session — corrigé au passage à
|
||||||
|
// l'occasion du badge société ci-dessous (voir journal).
|
||||||
|
const elAvatar = document.getElementById("avatar");
|
||||||
|
if(elAvatar && data.USR_Code) elAvatar.textContent = data.USR_Code;
|
||||||
|
|
||||||
|
// Badge société (29 août 2026) : repère d'environnement, masqué si
|
||||||
|
// l'utilisateur connecté n'a pas encore de USR_Societe renseignée.
|
||||||
|
const elBadge = document.getElementById("badge-societe");
|
||||||
|
if(elBadge){
|
||||||
|
if(data.USR_Societe){
|
||||||
|
elBadge.textContent = data.USR_Societe;
|
||||||
|
elBadge.hidden = false;
|
||||||
|
} else {
|
||||||
|
elBadge.hidden = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
} catch(erreur){
|
} catch(erreur){
|
||||||
console.error("Erreur de chargement de preferences.php :", erreur);
|
console.error("Erreur de chargement de preferences.php :", erreur);
|
||||||
// Pas de toast : une préférence d'affichage non chargée retombe sur le
|
// Pas de toast : une préférence d'affichage non chargée retombe sur le
|
||||||
|
|||||||
+13
-7
@@ -1,10 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* ASPIC — preferences.php
|
* ASPIC — preferences.php
|
||||||
* Préférences d'affichage liées à l'utilisateur connecté (ASP_Users), et non
|
* Préférences d'affichage liées à l'utilisateur connecté (ASP_Users) : le
|
||||||
* à un contact ou à une donnée métier — pour l'instant, uniquement le ratio
|
* ratio de répartition du panneau de détail (grille des champs / sous-liste
|
||||||
* de répartition du panneau de détail (grille des champs / sous-liste des
|
* des réalisations, voir journal de développement, section 17), et depuis
|
||||||
* réalisations), voir journal de développement, section 17.
|
* le 29 août 2026, l'identité affichée dans le bandeau (USR_Code, USR_Societe
|
||||||
|
* — badge de repérage d'environnement, voir journal).
|
||||||
*
|
*
|
||||||
* Toujours restreint à l'utilisateur de la session en cours
|
* Toujours restreint à l'utilisateur de la session en cours
|
||||||
* ($_SESSION['USR_Code'], ouverte par aspic.php) : aucun USR_Code n'est
|
* ($_SESSION['USR_Code'], ouverte par aspic.php) : aucun USR_Code n'est
|
||||||
@@ -12,9 +13,12 @@
|
|||||||
* REA_CodeUser dans realisations.php (voir journal, section 15) — impossible
|
* REA_CodeUser dans realisations.php (voir journal, section 15) — impossible
|
||||||
* pour un utilisateur de lire ou modifier les préférences d'un autre.
|
* pour un utilisateur de lire ou modifier les préférences d'un autre.
|
||||||
*
|
*
|
||||||
* GET : renvoie les deux ratios (0-100) de l'utilisateur connecté.
|
* GET : renvoie les deux ratios (0-100), USR_Code et USR_Societe (peut être
|
||||||
|
* null si non renseignée) de l'utilisateur connecté.
|
||||||
* PUT : met à jour un ou plusieurs ratios (0-100 uniquement, whitelist des
|
* PUT : met à jour un ou plusieurs ratios (0-100 uniquement, whitelist des
|
||||||
* colonnes acceptées — voir CHAMPS_RATIO).
|
* colonnes acceptées — voir CHAMPS_RATIO). USR_Societe n'est pas
|
||||||
|
* modifiable depuis ce formulaire (donnée gérée à la main en base,
|
||||||
|
* comme le reste de ASP_Users — voir journal, section 2).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
session_start();
|
session_start();
|
||||||
@@ -46,7 +50,7 @@ try {
|
|||||||
switch ($method) {
|
switch ($method) {
|
||||||
case 'GET':
|
case 'GET':
|
||||||
$stmt = $pdo->prepare(
|
$stmt = $pdo->prepare(
|
||||||
'SELECT USR_RatioPanneauContact, USR_RatioPanneauProspect FROM ASP_Users WHERE USR_Code = ?'
|
'SELECT USR_Code, USR_Societe, USR_RatioPanneauContact, USR_RatioPanneauProspect FROM ASP_Users WHERE USR_Code = ?'
|
||||||
);
|
);
|
||||||
$stmt->execute([$_SESSION['USR_Code']]);
|
$stmt->execute([$_SESSION['USR_Code']]);
|
||||||
$ligne = $stmt->fetch();
|
$ligne = $stmt->fetch();
|
||||||
@@ -56,6 +60,8 @@ try {
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
echo json_encode([
|
echo json_encode([
|
||||||
|
'USR_Code' => $ligne['USR_Code'],
|
||||||
|
'USR_Societe' => $ligne['USR_Societe'],
|
||||||
'USR_RatioPanneauContact' => (int)$ligne['USR_RatioPanneauContact'],
|
'USR_RatioPanneauContact' => (int)$ligne['USR_RatioPanneauContact'],
|
||||||
'USR_RatioPanneauProspect' => (int)$ligne['USR_RatioPanneauProspect'],
|
'USR_RatioPanneauProspect' => (int)$ligne['USR_RatioPanneauProspect'],
|
||||||
]);
|
]);
|
||||||
|
|||||||
+1
-1
@@ -20,7 +20,7 @@
|
|||||||
* d'identification, avant toute connexion.
|
* d'identification, avant toute connexion.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const ASPIC_VERSION = 'V1.000';
|
const ASPIC_VERSION = 'V1.001';
|
||||||
|
|
||||||
if (basename($_SERVER['SCRIPT_NAME']) === 'version.php') {
|
if (basename($_SERVER['SCRIPT_NAME']) === 'version.php') {
|
||||||
header('Content-Type: application/json; charset=utf-8');
|
header('Content-Type: application/json; charset=utf-8');
|
||||||
|
|||||||
Reference in New Issue
Block a user