This commit is contained in:
KONE SOREL 2026-03-11 13:36:51 +00:00
parent 85a7e40c4a
commit 9d782d45f9
3 changed files with 244 additions and 120 deletions

View File

@ -1,16 +1,75 @@
<form id="formData"> <div class="card border-0 shadow-sm border-start border-4 border-primary">
<legend id="titre_formData"><?= _("Ajouter des données") ?></legend> <div class="card-header bg-white py-3 border-bottom">
<table class="table table-responsive table-condensed"> <h6 class="mb-0 fw-bold text-uppercase text-success small" id="titre_formData">
<tbody> <i class="fas fa-stethoscope me-2"></i><?= _("Ajouter une spécialité") ?>
<tr> </h6>
</div>
<td width="5%" align="center" class="required"><?= _("Libellé") ?></td> <div class="card-body p-4">
<td width="25%" ><INPUT class="form-control majuscule" TYPE="text" id="libelle" NAME="libelle" required AUTOCOMPLETE="OFF" ></td> <form id="formData" class="container-fluid p-0">
<div class="row g-4">
<td width="5%" align="center"><?= _("Libellé Eng") ?></td> <div class="col-md-6">
<td width="25%" ><INPUT class="form-control majuscule" TYPE="text" id="libelleEng" NAME="libelleEng"></td> <label class="form-label fw-bold text-muted small required"><?= _("Libellé (Fr)") ?></label>
</tr> <div class="input-group shadow-xs">
</tbody> <span class="input-group-text bg-white border-2 border-end-0">
</table> <img src="../Bootstrap_new/images/france.png" width="16" alt="FR">
</form> </span>
<input type="text"
class="form-control border-2 border-start-0 majuscule fw-bold"
id="libelle"
name="libelle"
required
autocomplete="OFF">
</div>
</div>
<div class="col-md-6">
<label class="form-label fw-bold text-muted small"><?= _("Libellé (Eng)") ?></label>
<div class="input-group shadow-xs">
<span class="input-group-text bg-white border-2 border-end-0">
<img src="../Bootstrap_new/images/england.png" width="16" alt="EN">
</span>
<input type="text"
class="form-control border-2 border-start-0 majuscule"
id="libelleEng"
name="libelleEng"
autocomplete="OFF">
</div>
</div>
</div>
</form>
</div>
</div>
<script>
$(document).ready(function() {
// Règle d'Or Neutral Pro : Focus sur le premier champ modifiable après 200ms
setTimeout(function() {
$('#libelle').focus();
}, 200);
});
</script>
<style>
/* Identité Visuelle Neutral Pro */
.border-primary { border-color: #212e53 !important; }
.shadow-xs { box-shadow: 0 2px 4px rgba(0,0,0,0.05); }
.form-control.border-2, .input-group-text.border-2 {
border-width: 2px !important;
border-color: #dee2e6;
}
.form-control:focus {
border-color: #212e53;
box-shadow: 0 0 0 0.25rem rgba(33, 46, 83, 0.1);
}
.majuscule { text-transform: uppercase; }
.required:after {
content: " *";
color: #dc3545;
font-weight: bold;
}
</style>

View File

@ -1,89 +1,78 @@
<?php <?php
$nbreTotal = count($specialite); // Préparation du compteur Standard Neutral Pro
$nbreTotal = count($specialite);
if($nbreTotal < 10){
$nbreTotal = '0'.$nbreTotal;
}else{
$nbreTotal = format_N($nbreTotal);
}
if (est_anglophone()){
if($existeselection){
$libbouton = "Uncheck all";
}else{
$libbouton = "Check all";
}
}else{
if($existeselection){
$libbouton = "Décocher tous";
}else{
$libbouton = "Cocher tous";
}
}
?> ?>
<?php $superUser = $_SESSION['superUser']; ?> <div class="card border-0 shadow-sm overflow-hidden">
<div class="card-header bg-white py-3 border-bottom d-flex justify-content-between align-items-center">
<div class="d-flex align-items-center">
<h6 class="mb-0 fw-bold text-uppercase text-primary small">
<i class="fas fa-stethoscope me-2"></i><?= _("Référentiel des Spécialités") ?>
</h6>
<span class="badge bg-primary-ghost text-primary ms-3 px-3 py-2 rounded-pill fw-bold" id="badge-total">
<?= $nbreTotal ?> <?= _("Lignes") ?>
</span>
</div>
<div id="table-buttons" class="d-flex gap-2"></div>
</div>
<table style="margin: auto" class="table-responsive"> <div class="card-body p-0">
<tbody> <div class="table-responsive">
<td><input class="form-control" style="text-align: center; font-size:10pt;" type="text" id="nbreTotal" name="nbreTotal" value="<?= _("Lignes Total").": ". $nbreTotal; ?>" readonly> </td> <table id="tableLister" class="table table-hover align-middle mb-0" style="width:100%">
</tbody> <thead class="bg-light text-muted small text-uppercase">
</table> <tr>
<input type="hidden" id="total" value="<?= $nbreTotal;?>"> <th class="ps-4 border-0" width="15%"><?= _("Centre") ?></th>
<table id="tableLister" class="table table-striped table-bordered table-hover table-condensed table-responsive compact"> <th class="border-0" width="15%">Code</th>
<thead> <th class="border-0"><?= _("Libellé") ?></th>
<tr> <th class="border-0 text-center pe-4" width="15%"><?= _("Actions") ?></th>
<th class="text-center"><?= _("Centre gestion") ?></th> </tr>
<th class="text-center">Code</th> </thead>
<th class="text-center"><?= _("Libellé") ?></th> <tbody>
<!-- <?php foreach ($specialite as $v):
<th class="text-center"> $idData = $this->nettoyer($v['id']);
<button type="button" style="font-size:10pt; font-weight: bold; width:100%; background-color:#4caf50; color: white;" class="form-control btn" onclick="javascript:cocherDecocherTout($('#fichier_lister').val());" > <?= $libbouton; ?> </button> $libelle = est_anglophone() ? $this->nettoyer($v['libelleEng']) : $this->nettoyer($v['libelle']);
</th> ?>
--> <tr>
<th class="text-center"><?= _("Modifier") ?></th> <td class="ps-4 fw-medium text-muted small">
<!-- <?= $this->nettoyer($v['codeSociete']) ?>
<th class="text-center">Supprimer</th> </td>
--> <td>
</tr> <span class="badge bg-light text-dark border fw-bold px-2 py-1">
</thead> <?= $this->nettoyer($v['codeSpecialite']) ?>
<tbody> </span>
<?php foreach ($specialite as $v): </td>
$idData = $this->nettoyer($v['id']); <td class="fw-bold text-dark text-uppercase">
$libelle = $this->nettoyer($v['libelle']); <?= $libelle ?>
</td>
if (est_anglophone()){ <td class="text-center pe-4">
$libelle = $this->nettoyer($v['libelleEng']); <button type="button"
} class="btn btn-outline-primary btn-sm px-3 rounded-pill fw-bold shadow-xs"
?> onclick="formModifTableRef(<?= $idData; ?>);">
<tr valign="top"> <i class="fas fa-edit me-1"></i> <?= _("Modifier") ?>
<td class="text-center" width="12%"><?= $this->nettoyer($v['codeSociete']);; ?> </button>
<td class="text-center" width="10%"><?= $this->nettoyer($v['codeSpecialite']) ?></td> </td>
<td class="text-left" width="35%"><?= $libelle;?></td> </tr>
<!-- <?php endforeach; ?>
<td class="text-center" width="10%"> </tbody>
<?php </table>
if($this->nettoyer($v['choix'] == '0')){ </div>
$check =''; </div>
} </div>
else{
$check = 'checked'; <script>
} $(document).ready(function() {
?> // Initialisation standard avec exports et compteur
<INPUT TYPE="checkbox" class="custom-control-input" style="width: 2rem;height: 2rem;" id="choix" NAME="choix" value="<?=(($this->nettoyer($v['choix'])==0)? 0 : 1);?>" onclick="if (this.checked) this.value=1; else this.value=0;cocherDecocherUn($('#fichier_lister').val(),<?= $idData; ?>);" <?= $check;?>> initDataTableReference('#tableLister', 'Liste_Specialites');
</td> });
--> </script>
<td class="text-center" width="10%">
<button style="width:100%" class ="form-control btn btn-primary" type="button" id="btn-editer" name="Modifier" <style>
onclick="JAVASCRIPT:formModifTableRef(<?= $idData; ?>);" ><?= _("Modifier") ?></button> /* Rappel des règles d'or Neutral Pro */
</td> #tableLister tbody td {
<!-- height: 60px;
<td class="text-center" width="10%"> border-bottom: 1px solid #f1f4f6;
<button style="width:100%" class = "form-control btn btn-danger" type="button" id="btn-supprimer" name="Supprimer" }
onclick="JAVASCRIPT:supprimeLigneListe(<?= $idData; ?>,'<?= $superUser; ?>')">Supprimer</button> .bg-primary-ghost { background-color: rgba(33, 46, 83, 0.08) !important; }
</td> .shadow-xs { box-shadow: 0 2px 4px rgba(0,0,0,0.05); }
--> .text-primary { color: #212e53 !important; }
</tr> </style>
<?php endforeach; ?>
</tbody>
</table>

View File

@ -1,18 +1,94 @@
<form id="formData"> <div class="card border-0 shadow-sm border-start border-4 border-primary">
<legend id="titre_formData"><?= _("Modification des données") ?></legend> <div class="card-header bg-white py-3 border-bottom">
<INPUT class="sr-only" TYPE="text" id = "id" name = "id" value="<?=$specialite['id']?>"> <h6 class="mb-0 fw-bold text-uppercase text-warning small" id="titre_formData">
<table class="table table-responsive table-condensed"> <i class="fas fa-edit me-2"></i><?= _("Modification des données de la spécialité") ?>
<tbody> </h6>
<tr> </div>
<td width="5%" align="center">Code</td>
<td width="10%" ><INPUT class="form-control majuscule" TYPE="text" id="codeSpecialite" NAME="codeSpecialite" value="<?= $this->nettoyer($specialite['codeSpecialite']); ?>" disabled></td> <div class="card-body p-4">
<form id="formData" class="container-fluid p-0">
<td width="5%" align="center" class="required"><?= _("Libellé") ?></td> <input type="hidden" id="id" name="id" value="<?= $this->nettoyer($specialite['id']) ?>">
<td width="25%" ><INPUT class="form-control majuscule" TYPE="text" id="libelle" NAME="libelle" required AUTOCOMPLETE="OFF" value="<?= $this->nettoyer($specialite['libelle']); ?>"></td>
<div class="row g-4 align-items-end">
<td width="5%" align="center"><?= _("Libellé Eng") ?></td> <div class="col-md-2">
<td width="25%" ><INPUT class="form-control majuscule" TYPE="text" id="libelleEng" NAME="libelleEng" value="<?= $this->nettoyer($specialite['libelleEng']); ?>"></td> <label class="form-label fw-bold text-muted small">Code</label>
</tr> <div class="input-group shadow-xs">
</tbody> <span class="input-group-text bg-light border-2 border-end-0">
</table> <i class="fas fa-lock text-muted"></i>
</form> </span>
<input type="text"
class="form-control border-2 border-start-0 majuscule fw-bold bg-light"
id="codeSpecialite"
name="codeSpecialite"
value="<?= $this->nettoyer($specialite['codeSpecialite']); ?>"
disabled>
</div>
</div>
<div class="col-md-5">
<label class="form-label fw-bold text-muted small required"><?= _("Libellé (Fr)") ?></label>
<div class="input-group shadow-xs">
<span class="input-group-text bg-white border-2 border-end-0">
<img src="../Bootstrap_new/images/new/france.png" width="16" alt="FR">
</span>
<input type="text"
class="form-control border-2 border-start-0 majuscule fw-bold"
id="libelle"
name="libelle"
required
autocomplete="OFF"
value="<?= $this->nettoyer($specialite['libelle']); ?>">
</div>
</div>
<div class="col-md-5">
<label class="form-label fw-bold text-muted small"><?= _("Libellé (Eng)") ?></label>
<div class="input-group shadow-xs">
<span class="input-group-text bg-white border-2 border-end-0">
<img src="../Bootstrap_new/images/new/england.png" width="16" alt="EN">
</span>
<input type="text"
class="form-control border-2 border-start-0 majuscule"
id="libelleEng"
name="libelleEng"
autocomplete="OFF"
value="<?= $this->nettoyer($specialite['libelleEng']); ?>">
</div>
</div>
</div>
</form>
</div>
</div>
<script>
$(document).ready(function() {
// Règle d'Or Neutral Pro : Focus différé de 200ms sur le champ FR
setTimeout(function() {
$('#libelle').focus();
}, 200);
});
</script>
<style>
/* Identité Visuelle Neutral Pro */
.border-primary { border-color: #212e53 !important; }
.shadow-xs { box-shadow: 0 2px 4px rgba(0,0,0,0.05); }
.form-control.border-2, .input-group-text.border-2 {
border-width: 2px !important;
border-color: #dee2e6;
}
.form-control:focus {
border-color: #212e53;
box-shadow: 0 0 0 0.25rem rgba(33, 46, 83, 0.1);
}
.majuscule { text-transform: uppercase; }
.required:after {
content: " *";
color: #dc3545;
font-weight: bold;
}
</style>