aboutsummaryrefslogtreecommitdiff
path: root/src/view/ShowEmailsBuilder.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/view/ShowEmailsBuilder.php')
-rw-r--r--src/view/ShowEmailsBuilder.php69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/view/ShowEmailsBuilder.php b/src/view/ShowEmailsBuilder.php
new file mode 100644
index 0000000..3d2d6a9
--- /dev/null
+++ b/src/view/ShowEmailsBuilder.php
@@ -0,0 +1,69 @@
1<?php
2// src/view/ShowEmailsBuilder.php
3
4declare(strict_types=1);
5
6use App\Entity\Node;
7use App\Entity\Page;
8
9class ShowEmailsBuilder extends AbstractBuilder
10{
11 public function __construct(Node $node = null)
12 {
13 //parent::__construct($node);
14 $viewFile = self::VIEWS_PATH . $node->getName() . '.php';
15 if(file_exists($viewFile))
16 {
17 // objets Email groupés par destinataire
18 $emails_by_recipient = [];
19 foreach($node->getNodeData()->getEmails() as $email){
20 $recipient = $email->getRecipient();
21 $emails_by_recipient[$recipient][] = $email;
22 }
23
24 // affiche une table par destinataire
25 $emails = '';
26 foreach($emails_by_recipient as $recipient => $emails_list){
27 $html = '<h4>Destinataire: ' . $recipient . '</h4>
28 <table>
29 <thead>
30 <tr>
31 <th>Expéditeur</th>
32 <th>Adresse</th>
33 <th>Contenu</th>
34 <th>Date</th>
35 <th>Effacement prévu le</th>
36 <th>Sensible</th>
37 <th class="email_delete_button"></th>
38 </tr>
39 </thead>
40 <tbody>';
41
42 // insère les données
43 foreach($emails_list as $email){
44 $html .= '<tr id="' . $email->getId() . '">
45 <td>' . htmlspecialchars($email->getSenderName()) . '</td>
46 <td>' . htmlspecialchars($email->getSenderAddress()) . '</td>
47 <td>' . htmlspecialchars($email->getContent()) . '</td>
48 <td>' . $email->getDateTime()->format('d/m/Y') . '</td>
49 <td class="deletion_date">' . $email->getDeletionDate()->format('d/m/Y') . '</td>
50 <td><input class="make_checkbox_sensitive" type="checkbox" ' . ($email->isSensitive() ? 'checked' : '') . ' onclick="toggleSensitiveEmail(' . $email->getId() . ')"></td>
51 <td class="email_delete_button"><img class="action_icon" src="assets/delete-bin.svg" onclick="deleteEmail(' . $email->getId() . ')"></td>
52 </tr>';
53 }
54
55 $html .= '</tbody>
56 </table>';
57 $emails .= $html;
58 }
59
60 ob_start();
61 require $viewFile; // insertion de $this->html généré par unfoldMenu
62 $this->html = ob_get_clean(); // pas de concaténation .= cette fois on écrase
63 }
64 else{
65 header('Location: ' . new URL(['error' => 'show_emails_view_not_found']));
66 die;
67 }
68 }
69} \ No newline at end of file