111 lines
6.6 KiB
PHP
111 lines
6.6 KiB
PHP
<?php
|
|
$envois = [
|
|
'envoye' => t('Envoyée par email'),
|
|
'sans_piece' => t('Email sans pièce jointe'),
|
|
'echec' => t('Email non parti'),
|
|
'non_demande' => t('Sans email'),
|
|
];
|
|
$derniere = $etat['derniere'];
|
|
$configuree = $reglages['destinataires'] && $reglages['expediteur'] !== '';
|
|
$copies = count(array_filter($liste, static fn ($s) => $s['fichier'] !== null));
|
|
?>
|
|
<h1><?= e(t('Sauvegarde')) ?></h1>
|
|
|
|
<?php if ($etat['en_retard']): ?>
|
|
<p class="flash flash-erreur" role="alert">
|
|
<strong><?= e($etat['jours'] === null ? t('Aucune sauvegarde de la base n\'a encore été faite.') : t('Dernière sauvegarde réussie il y a %d jours.', $etat['jours'])) ?></strong>
|
|
<?= e(t('La tâche planifiée de l\'hébergement ne tourne pas, ou elle échoue. Lancez une sauvegarde ci-dessous, puis vérifiez la tâche dans l\'espace client OVH.')) ?>
|
|
</p>
|
|
<?php elseif ($etat['dernier_echec']): ?>
|
|
<p class="flash flash-erreur" role="alert">
|
|
<strong><?= e(t('La dernière sauvegarde a rencontré un problème.')) ?></strong> <?= e((string) $etat['dernier_echec']['detail']) ?>
|
|
</p>
|
|
<?php endif; ?>
|
|
|
|
<div class="deux-egales">
|
|
<section class="carte">
|
|
<h2><?= e(t('Base de données')) ?></h2>
|
|
<dl class="grille">
|
|
<dt><?= e(t('Dernière réussie')) ?></dt>
|
|
<dd><?= $derniere ? e(date_fr($derniere['cree_le'], true)) . ' · ' . e(tn((int) $derniere['profils'], '%d profil', '%d profils')) . ' · ' . e(Sauvegarde::taille((int) $derniere['taille_octets'])) : '<em>' . e(t('aucune')) . '</em>' ?></dd>
|
|
<dt><?= e(t('Envoi')) ?></dt>
|
|
<dd><?= $configuree ? e(implode(', ', $reglages['destinataires'])) . '<br><small>' . e(t('depuis %s', $reglages['expediteur'])) . '</small>' : '<em class="retard">' . e(t('adresses absentes de config/config.php')) . '</em>' ?></dd>
|
|
<dt><?= e(t('Copies gardées')) ?></dt>
|
|
<dd><?= e($reglages['semaines_conservees'] > 0 ? tn($reglages['semaines_conservees'], '%d semaine', '%d semaines') : t('sans limite de durée')) ?> · <?= e(tn($copies, '%d copie sur le serveur', '%d copies sur le serveur')) ?></dd>
|
|
</dl>
|
|
<p class="aide"><?= e(t('La tâche planifiée de l\'hébergement lance cette sauvegarde chaque semaine et l\'envoie par email. Le fichier contient les données des candidats et n\'est pas chiffré : la protection repose sur celle des boîtes de réception.')) ?></p>
|
|
<form method="post" action="<?= e(url('sauvegarde')) ?>" class="pile" data-attente="<?= e(t('Sauvegarde en cours. Gardez la page ouverte.')) ?>" data-attente-bouton="<?= e(t('Sauvegarde en cours…')) ?>">
|
|
<?= champ_csrf() ?>
|
|
<input type="hidden" name="action" value="lancer">
|
|
<label class="case"><input type="checkbox" name="envoyer" value="1"<?= $configuree ? ' checked' : ' disabled' ?>> <?= e(t('Envoyer aussi la sauvegarde par email')) ?></label>
|
|
<div class="actions gauche">
|
|
<button type="submit"><?= e(t('Sauvegarder maintenant')) ?></button>
|
|
</div>
|
|
</form>
|
|
<?php if ($configuree): ?>
|
|
<form method="post" action="<?= e(url('sauvegarde')) ?>">
|
|
<?= champ_csrf() ?>
|
|
<button type="submit" name="action" value="essai" class="lien"><?= e(t('Envoyer un email d\'essai, sans pièce jointe')) ?></button>
|
|
</form>
|
|
<?php endif; ?>
|
|
</section>
|
|
|
|
<section class="carte">
|
|
<h2><?= e(t('Fichiers')) ?></h2>
|
|
<dl class="grille">
|
|
<dt><?= e(t('Contenu')) ?></dt>
|
|
<dd><?= e(tn((int) $fichiers['n'], '%d document', '%d documents')) ?> · <?= e(Sauvegarde::taille((int) $fichiers['octets'])) ?> · <?= e(t('et les photos')) ?></dd>
|
|
</dl>
|
|
<p class="aide"><?= e(t('Les CV, rapports, pièces jointes et photos sont trop lourds pour un email. Téléchargez leur archive et gardez-la avec la sauvegarde de la base du même jour.')) ?></p>
|
|
<form method="post" action="<?= e(url('sauvegarde')) ?>" class="pile">
|
|
<?= champ_csrf() ?>
|
|
<label><?= e(t('Votre mot de passe, pour confirmer')) ?>
|
|
<input type="password" name="mon_mot_de_passe" required autocomplete="current-password">
|
|
<small class="aide-champ"><?= e(t('L\'archive contient tous les CV : Vivier vérifie que c\'est bien vous.')) ?></small>
|
|
</label>
|
|
<div class="actions gauche"><button type="submit" name="action" value="fichiers" class="secondaire"><?= e(t('Télécharger l\'archive des fichiers')) ?></button></div>
|
|
</form>
|
|
</section>
|
|
</div>
|
|
|
|
<section class="carte">
|
|
<h2><?= e(t('Historique des sauvegardes')) ?></h2>
|
|
<?php if (!$liste): ?>
|
|
<p class="vide"><?= e(t('Aucune sauvegarde pour l\'instant.')) ?></p>
|
|
<?php else: ?>
|
|
<div class="defile"><table>
|
|
<thead><tr><th><?= e(t('Date')) ?></th><th><?= e(t('Origine')) ?></th><th><?= e(t('Résultat')) ?></th><th class="nombre"><?= e(t('Profils')) ?></th><th class="nombre"><?= e(t('Taille')) ?></th><th></th></tr></thead>
|
|
<tbody>
|
|
<?php foreach ($liste as $s): ?>
|
|
<tr>
|
|
<td><?= e(date_fr($s['cree_le'], true)) ?></td>
|
|
<td><?= e($s['origine'] === 'planifiee' ? t('Tâche planifiée') : t('Manuelle, %s', (string) ($s['nom_affiche'] ?? '?'))) ?></td>
|
|
<td>
|
|
<?php if (!$s['reussie']): ?>
|
|
<span class="retard"><?= e(t('Échec')) ?></span>
|
|
<?php else: ?>
|
|
<span class="<?= $s['envoi'] === 'echec' ? 'retard' : '' ?>"><?= e($envois[$s['envoi']]) ?></span>
|
|
<?php endif; ?>
|
|
<?php if ($s['detail']): ?><br><small><?= e($s['detail']) ?></small><?php endif; ?>
|
|
</td>
|
|
<td class="nombre"><?= $s['profils'] !== null ? (int) $s['profils'] : '' ?></td>
|
|
<td class="nombre"><?= $s['taille_octets'] !== null ? e(Sauvegarde::taille((int) $s['taille_octets'])) : '' ?></td>
|
|
<td class="actions-ligne">
|
|
<?php if ($s['fichier'] !== null && Sauvegarde::chemin($s) !== null): ?>
|
|
<a href="<?= e(url('sauvegarde', ['telecharger' => $s['id']])) ?>"><?= e(t('Télécharger')) ?></a>
|
|
<form method="post" action="<?= e(url('sauvegarde')) ?>" data-confirmer="<?= e(t('Supprimer cette copie du serveur ? Les copies reçues par email ne sont pas touchées.')) ?>">
|
|
<?= champ_csrf() ?>
|
|
<input type="hidden" name="id" value="<?= (int) $s['id'] ?>">
|
|
<button type="submit" name="action" value="supprimer" class="lien"><?= e(t('Supprimer')) ?></button>
|
|
</form>
|
|
<?php elseif ($s['reussie']): ?>
|
|
<small><?= e(t('copie supprimée')) ?></small>
|
|
<?php endif; ?>
|
|
</td>
|
|
</tr>
|
|
<?php endforeach; ?>
|
|
</tbody>
|
|
</table></div>
|
|
<?php endif; ?>
|
|
</section>
|