mirror of
https://github.com/tips-of-mine/gestion-certificats2.git
synced 2025-08-24 13:05:49 +02:00
Merge pull request #18 from tips-of-mine/fix/dashboard-layout-cert-links
Correction de la mise en page du tableau de bord pour les liens de ce…
This commit is contained in:
@@ -364,3 +364,57 @@ tr.revoked-cert:hover {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
/* Styles for certificate entries */
|
||||
.certificate-entry {
|
||||
display: flex;
|
||||
justify-content: space-between; /* Aligne les enfants (infos du cert et actions) aux extrémités */
|
||||
align-items: center; /* Centre les enfants verticalement */
|
||||
margin-bottom: 10px; /* Ajoute un peu d'espace entre les entrées de certificat */
|
||||
padding: 10px; /* Ajoute un peu de rembourrage à l'intérieur de chaque entrée */
|
||||
border: 1px solid #eee; /* Optionnel : ajoute une bordure pour mieux visualiser les boîtes */
|
||||
flex-wrap: wrap; /* Permet aux éléments de passer à la ligne sur les petits écrans si nécessaire */
|
||||
}
|
||||
|
||||
.certificate-info {
|
||||
flex-grow: 1; /* Permet à cette section de prendre l'espace disponible */
|
||||
margin-right: 10px; /* Espace entre les infos et les boutons d'action */
|
||||
}
|
||||
|
||||
.certificate-actions {
|
||||
display: flex; /* Rend les boutons d'action eux-mêmes flexibles pour un alignement interne si nécessaire */
|
||||
flex-shrink: 0; /* Empêche les actions de rétrécir si l'espace est limité */
|
||||
gap: 5px; /* Ajoute un petit espace entre les boutons de téléchargement */
|
||||
}
|
||||
|
||||
.certificate-info h4 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
/* Vous pouvez également envisager de définir display: inline ou display: inline-block si nécessaire,
|
||||
mais les marges sont le problème le plus courant pour l'alignement vertical dans les conteneurs flex.
|
||||
Pour l'instant, concentrons-nous sur les marges. */
|
||||
}
|
||||
|
||||
/* Ajustements pour les certificats finaux dans les listes */
|
||||
.certificates-overview ul .certificate-entry {
|
||||
/* Peut-être des ajustements spécifiques si nécessaire, mais les styles .certificate-entry ci-dessus devraient déjà bien fonctionner */
|
||||
/* Par exemple, si la bordure n'est pas souhaitée ici : */
|
||||
/* border: none; */
|
||||
/* padding: 5px 0; */ /* Ajuster le rembourrage pour un look plus compact dans la liste */
|
||||
}
|
||||
|
||||
/* Assurer que les paragraphes à l'intérieur des actions n'ajoutent pas de marges indésirables */
|
||||
.certificate-actions p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Styles pour les boutons de téléchargement pour qu'ils soient plus compacts si nécessaire */
|
||||
.download-button-small {
|
||||
padding: 5px 10px; /* Réduire le rembourrage pour les rendre plus petits */
|
||||
font-size: 0.9em; /* Réduire la taille de la police */
|
||||
}
|
||||
|
||||
/* Pour s'assurer que les liens dans .certificate-actions ne sont pas soulignés par défaut s'ils héritent d'un style global */
|
||||
.certificate-actions a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
@@ -34,16 +34,16 @@ require_once APP_ROOT_DIR . '/src/Views/shared/header.php';
|
||||
<!-- Root Certificate -->
|
||||
<h3><?= htmlspecialchars($translations['root_certificate_title'] ?? 'Root Certificate') ?></h3>
|
||||
<?php if (isset($structuredCertificates['root']) && $structuredCertificates['root']): ?>
|
||||
<div>
|
||||
<p><strong><?= htmlspecialchars($translations['name'] ?? 'Name:') ?></strong> <?= htmlspecialchars($structuredCertificates['root']['name']) ?></p>
|
||||
<p>
|
||||
<div class="certificate-entry">
|
||||
<span><strong><?= htmlspecialchars($translations['name'] ?? 'Name:') ?></strong> <?= htmlspecialchars($structuredCertificates['root']['name']) ?></span>
|
||||
<div class="certificate-actions">
|
||||
<a href="/certificates/download?type=root&file=ca.cert.pem" class="button">
|
||||
<?= htmlspecialchars($translations['download_certificate_pem'] ?? 'Download Certificate (.pem)') ?>
|
||||
</a>
|
||||
<a href="/certificates/download?type=root&file=ca.key.pem" class="button" style="margin-left: 10px;">
|
||||
<?= htmlspecialchars($translations['download_key_pem'] ?? 'Download Private Key (.key)') ?>
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
<p><?= htmlspecialchars($translations['root_certificate_not_configured'] ?? 'Root certificate is not configured.') ?></p>
|
||||
@@ -54,32 +54,38 @@ require_once APP_ROOT_DIR . '/src/Views/shared/header.php';
|
||||
<?php if (isset($structuredCertificates['intermediates']) && !empty($structuredCertificates['intermediates'])): ?>
|
||||
<?php foreach ($structuredCertificates['intermediates'] as $intermediate): ?>
|
||||
<div class="intermediate-certificate">
|
||||
<h4><?= htmlspecialchars($intermediate['name']) ?> (<?= htmlspecialchars($translations['perimeter'] ?? 'Perimeter:') ?> <?= htmlspecialchars($intermediate['perimeter_name']) ?>)</h4>
|
||||
<p>
|
||||
<a href="/certificates/download?type=intermediate&perimeter=<?= urlencode($intermediate['perimeter_name']) ?>&file=<?= urlencode($intermediate['name']) ?>" class="button">
|
||||
<?= htmlspecialchars($translations['download_certificate_pem'] ?? 'Download Certificate (.pem)') ?>
|
||||
</a>
|
||||
<?php if (isset($userRole) && $userRole === 'admin'): ?>
|
||||
<?php
|
||||
// Suppose que le nom du fichier clé est le nom du cert avec .key.pem au lieu de .cert.pem
|
||||
$intermediateKeyName = str_replace('.cert.pem', '.key.pem', $intermediate['name']);
|
||||
?>
|
||||
<a href="/certificates/download?type=intermediate&perimeter=<?= urlencode($intermediate['perimeter_name']) ?>&file=<?= urlencode($intermediateKeyName) ?>" class="button" style="margin-left: 10px;">
|
||||
<?= htmlspecialchars($translations['download_private_key'] ?? 'Télécharger Clé Privée (.key)') ?>
|
||||
<div class="certificate-entry">
|
||||
<div class="certificate-info">
|
||||
<h4><?= htmlspecialchars($intermediate['name']) ?> (<?= htmlspecialchars($translations['perimeter'] ?? 'Perimeter:') ?> <?= htmlspecialchars($intermediate['perimeter_name']) ?>)</h4>
|
||||
</div>
|
||||
<div class="certificate-actions">
|
||||
<a href="/certificates/download?type=intermediate&perimeter=<?= urlencode($intermediate['perimeter_name']) ?>&file=<?= urlencode($intermediate['name']) ?>" class="button">
|
||||
<?= htmlspecialchars($translations['download_certificate_pem'] ?? 'Download Certificate (.pem)') ?>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
</p>
|
||||
<?php if (isset($userRole) && $userRole === 'admin'): ?>
|
||||
<?php
|
||||
// Suppose que le nom du fichier clé est le nom du cert avec .key.pem au lieu de .cert.pem
|
||||
$intermediateKeyName = str_replace('.cert.pem', '.key.pem', $intermediate['name']);
|
||||
?>
|
||||
<a href="/certificates/download?type=intermediate&perimeter=<?= urlencode($intermediate['perimeter_name']) ?>&file=<?= urlencode($intermediateKeyName) ?>" class="button" style="margin-left: 10px;">
|
||||
<?= htmlspecialchars($translations['download_private_key'] ?? 'Télécharger Clé Privée (.key)') ?>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h5><?= htmlspecialchars($translations['associated_final_certificates_title'] ?? 'Associated Final Certificates') ?></h5>
|
||||
<?php if (isset($intermediate['final_certificates']) && !empty($intermediate['final_certificates'])): ?>
|
||||
<ul>
|
||||
<?php foreach ($intermediate['final_certificates'] as $finalCert): ?>
|
||||
<li>
|
||||
<?= htmlspecialchars($finalCert['name']) ?>
|
||||
(<?= htmlspecialchars($translations['type'] ?? 'Type:') ?> <?= htmlspecialchars($finalCert['type']) ?>,
|
||||
<?= htmlspecialchars($translations['expires'] ?? 'Expires:') ?> <?= htmlspecialchars($finalCert['expiration_date']) ?>,
|
||||
<?= htmlspecialchars($translations['revoked'] ?? 'Revoked:') ?> <?= $finalCert['is_revoked'] ? htmlspecialchars($translations['yes'] ?? 'Yes') : htmlspecialchars($translations['no'] ?? 'No') ?>)
|
||||
<p>
|
||||
<li class="certificate-entry">
|
||||
<div class="certificate-info">
|
||||
<?= htmlspecialchars($finalCert['name']) ?>
|
||||
(<?= htmlspecialchars($translations['type'] ?? 'Type:') ?> <?= htmlspecialchars($finalCert['type']) ?>,
|
||||
<?= htmlspecialchars($translations['expires'] ?? 'Expires:') ?> <?= htmlspecialchars($finalCert['expiration_date']) ?>,
|
||||
<?= htmlspecialchars($translations['revoked'] ?? 'Revoked:') ?> <?= $finalCert['is_revoked'] ? htmlspecialchars($translations['yes'] ?? 'Yes') : htmlspecialchars($translations['no'] ?? 'No') ?>)
|
||||
</div>
|
||||
<div class="certificate-actions">
|
||||
<a href="/certificates/download?type=simple&perimeter=<?= urlencode($intermediate['perimeter_name']) ?>&file=<?= urlencode($finalCert['name']) ?>" class="button download-button-small">
|
||||
<?= htmlspecialchars($translations['download_certificate_pem'] ?? 'Download Certificate (.pem)') ?>
|
||||
</a>
|
||||
@@ -92,7 +98,7 @@ require_once APP_ROOT_DIR . '/src/Views/shared/header.php';
|
||||
<?= htmlspecialchars($translations['download_private_key'] ?? 'Télécharger Clé Privée (.key)') ?>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
</p>
|
||||
</div>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
|
Reference in New Issue
Block a user