Listage des alias virtuels et ajout d'une capacité de filtrage de celui-ci via le champ de domaine

pull/5/head
ycharbi 3 years ago
parent 3723e5096f
commit 8f39a94134

@ -0,0 +1,20 @@
function myFunction() {
// Déclaration des variables
var input, filter, ul, li, a, i, txtValue;
input = document.getElementById('nom_alias');
filter = input.value.toUpperCase();
ul = document.getElementById("liste_alias_virtuels");
li = ul.getElementsByTagName('li');
// Pour chaque "<li>", comparer le contenu (actualisé à chaque frappe) du "<input>" "nom_alias" avec le texte du "<p>" qu'il contient
// Si le contenu du champ de texte est vide, n'en masquer aucun. Si le motif correspond, masquer les autres
for (i = 0; i < li.length; i++) {
a = li[i].getElementsByTagName("p")[0];
txtValue = a.textContent || a.innerText;
if (txtValue.toUpperCase().indexOf(filter) > -1) {
li[i].style.display = "";
} else {
li[i].style.display = "none";
}
}
}

@ -0,0 +1,19 @@
<?php
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/connexion.php");
function listeAliasVirtuelsPostfix($pdo) {
try {
$req = $pdo->query('SELECT * FROM postfix_alias_virtuels');
$liste_alias_virtuels = array();
foreach ($req as $alias_virtuels_bdd => $alias_virtuels) {
array_push($liste_alias_virtuels,$alias_virtuels);
}
return $liste_alias_virtuels;
}
catch (\Exception $e) {
die ("Erreur de requête de selection des domaines pour \"$base\" : ".$e->getMessage());
}
}
?>

@ -7,9 +7,11 @@
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/domaines.php");
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/utilisateurs.php");
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/bdd/alias_virtuels.php");
$liste_utilisateurs = listeUtilisateursPostfix($pdo);
$liste_domaines = listeDomainesPostfix($pdo);
$liste_alias_virtuels = listeAliasVirtuelsPostfix($pdo);
try {
foreach ($liste_utilisateurs as $utilisateur_bdd => $utilisateur) {
@ -28,7 +30,7 @@
?>
</select>
<select name="choix_domaine_alias" id="" onchange='document.getElementById("d1").innerHTML = this.options[this.selectedIndex].text'>
<select name="choix_domaine_alias" onchange='document.getElementById("domaine_alias").innerHTML = this.options[this.selectedIndex].text'>
<?php
try {
@ -64,12 +66,38 @@
<div>
<h1>Ajouter un alias</h1>
<input type="text" name="prefix_alias">
<input type="text" name="nom_alias">
<p id="d1"><?php echo $liste_domaines[0]["domaine"]; ?></p>
<input type="submit">
<input type="text" id="nom_alias" name="nom_alias" onkeyup="myFunction()">
<p id="domaine_alias"><?php echo $liste_domaines[0]["domaine"]; ?></p>
<input type="submit" value="Ajouter">
</div>
</form>
<h1>Alias de <?php echo $_SESSION['identifiant_utilisateur']; ?></h1>
<form class="" action="index.html" method="post">
<ul id="liste_alias_virtuels">
<?php
// Faire un filtre des alias (depuis la requête SQL) pour n'afficher que ceux de l'adresse de l'utilisateur connecté. Il faudra donc concaténer son identifiant_utilisateur avec le domaine par défaut de la table qu'utilisera Postfix (ça ne fonctionne pas actuellement) pour les utilisateurs locaux via Sqlite
// Réexploiter la fonction du filtre pour s'assurer que la supression d'un alias est légitime
try {
foreach ($liste_alias_virtuels as $alias_virtuels_bdd => $alias_virtuels) {
echo "<li><input type=\"checkbox\"; ";
if (isset($alias_virtuels['active']) && !empty($alias_virtuels['active']) && $alias_virtuels['active']==1) echo "checked";
// Lors de la suppression, mettre un message de confirmation avec un avertissement que les données non-enregistrées seront perdues
echo "><p>".$alias_virtuels['destination']."</p><a href=\"unePage.php?supprAliasVirtuel=".$alias_virtuels['id']."\">Supprimer</a></li>\n";
//echo "<form action=\"uneAutrePage.php\" method=\"post\"><input type=\"checkbox\" onchange=submit(); checked></form><p>".$alias_virtuels['destination']."<a href=\"unePage.php?supprAliasVirtuel=".$alias_virtuels['id']."\">Supprimer</a></p>\n";
}
}
catch (\Exception $e) {
die ("Erreur de requête de selection utilisateurs pour \"$base\" : ".$e->getMessage());
}
?>
</ul>
<input type="submit" value="Appliquer">
</form>
<script src="/fichiers/js/filtre.js"></script>
</div>

Loading…
Cancel
Save