diff --git a/controllers/publics/Discussion.php b/controllers/publics/Discussion.php index 7c7b79a..da30f5d 100644 --- a/controllers/publics/Discussion.php +++ b/controllers/publics/Discussion.php @@ -21,6 +21,7 @@ namespace controllers\publics; private $internal_received; private $internal_contact; private $internal_phone; + private $internal_media; /** * Cette fonction est appelée avant toute les autres : @@ -37,6 +38,7 @@ namespace controllers\publics; $this->internal_received = new \controllers\internals\Received($bdd); $this->internal_contact = new \controllers\internals\Contact($bdd); $this->internal_phone = new \controllers\internals\Phone($bdd); + $this->internal_media = new \controllers\internals\Media($bdd); \controllers\internals\Tool::verifyconnect(); } @@ -112,12 +114,26 @@ namespace controllers\publics; foreach ($sendeds as $sended) { - $messages[] = [ + $medias = []; + if ($sended['mms']) + { + $medias = $this->internal_media->gets_for_sended($sended['id']); + foreach ($medias as &$media) + { + $media = HTTP_PWD_DATA . '/' . $media['path']; + } + } + + $message = [ 'date' => htmlspecialchars($sended['at']), 'text' => htmlspecialchars($sended['text']), 'type' => 'sended', + 'medias' => $medias, 'status' => $sended['status'], ]; + + + $messages[] = $message; } foreach ($receiveds as $received) @@ -126,21 +142,43 @@ namespace controllers\publics; { $this->internal_received->mark_as_read_for_user($id_user, $received['id']); } + + $medias = []; + if ($sended['mms']) + { + $medias = $this->internal_media->gets_for_received($received['id']); + foreach ($medias as &$media) + { + $media = HTTP_PWD_DATA . '/' . $media['path']; + } + } $messages[] = [ 'date' => htmlspecialchars($received['at']), 'text' => htmlspecialchars($received['text']), 'type' => 'received', 'md5' => md5($received['at'] . $received['text']), + 'medias' => $medias, ]; } foreach ($scheduleds as $scheduled) { + $medias = []; + if ($sended['mms']) + { + $medias = $this->internal_media->gets_for_scheduled($scheduled['id']); + foreach ($medias as &$media) + { + $media = HTTP_PWD_DATA . '/' . $media['path']; + } + } + $messages[] = [ 'date' => htmlspecialchars($scheduled['at']), 'text' => htmlspecialchars($scheduled['text']), 'type' => 'inprogress', + 'medias' => $medias, ]; } diff --git a/controllers/publics/Received.php b/controllers/publics/Received.php index e5ba67e..d6ab5a4 100644 --- a/controllers/publics/Received.php +++ b/controllers/publics/Received.php @@ -19,6 +19,7 @@ namespace controllers\publics; private $internal_received; private $internal_contact; private $internal_phone; + private $internal_media; /** * Cette fonction est appelée avant toute les autres : @@ -32,6 +33,7 @@ namespace controllers\publics; $this->internal_received = new \controllers\internals\Received($bdd); $this->internal_contact = new \controllers\internals\Contact($bdd); $this->internal_phone = new \controllers\internals\Phone($bdd); + $this->internal_media = new \controllers\internals\Media($bdd); \controllers\internals\Tool::verifyconnect(); } @@ -53,6 +55,10 @@ namespace controllers\publics; foreach ($entities as &$entity) { $entity['origin_formatted'] = \controllers\internals\Tool::phone_link($entity['origin']); + if ($entity['mms']) + { + $entity['medias'] = $this->internal_media->gets_for_received($entity['id']); + } } header('Content-Type: application/json'); @@ -76,6 +82,10 @@ namespace controllers\publics; foreach ($entities as &$entity) { $entity['origin_formatted'] = \controllers\internals\Tool::phone_link($entity['origin']); + if ($entity['mms']) + { + $entity['medias'] = $this->internal_media->gets_for_received($entity['id']); + } } header('Content-Type: application/json'); diff --git a/controllers/publics/Scheduled.php b/controllers/publics/Scheduled.php index 81ccd3b..2e4d8a7 100644 --- a/controllers/publics/Scheduled.php +++ b/controllers/publics/Scheduled.php @@ -56,6 +56,13 @@ namespace controllers\publics; public function list_json() { $entities = $this->internal_scheduled->list_for_user($_SESSION['user']['id']); + foreach ($entities as &$entity) + { + if ($entity['mms']) + { + $entity['medias'] = $this->internal_media->gets_for_scheduled($entity['id']); + } + } header('Content-Type: application/json'); echo json_encode(['data' => $entities]); diff --git a/controllers/publics/Sended.php b/controllers/publics/Sended.php index fa0a67c..8227e38 100644 --- a/controllers/publics/Sended.php +++ b/controllers/publics/Sended.php @@ -19,6 +19,7 @@ namespace controllers\publics; private $internal_sended; private $internal_phone; private $internal_contact; + private $internal_media; /** * Cette fonction est appelée avant toute les autres : @@ -32,6 +33,7 @@ namespace controllers\publics; $this->internal_sended = new \controllers\internals\Sended($bdd); $this->internal_phone = new \controllers\internals\Phone($bdd); $this->internal_contact = new \controllers\internals\Contact($bdd); + $this->internal_media = new \controllers\internals\Media($bdd); \controllers\internals\Tool::verifyconnect(); } @@ -55,6 +57,10 @@ namespace controllers\publics; foreach ($entities as &$entity) { $entity['destination_formatted'] = \controllers\internals\Tool::phone_link($entity['destination']); + if ($entity['mms']) + { + $entity['medias'] = $this->internal_media->gets_for_sended($entity['id']); + } } header('Content-Type: application/json'); diff --git a/templates/discussion/show.php b/templates/discussion/show.php index bb6a357..835761a 100644 --- a/templates/discussion/show.php +++ b/templates/discussion/show.php @@ -76,7 +76,7 @@ //On ajoute la detection de lien dans le texte du message message.text = Autolinker.link(message.text, {newWindow:true}); - + switch (message.type) { @@ -85,7 +85,10 @@ '
' + '
' + '
' + message.text + '
' + - '
' + message.date + '
' + + '
' + message.medias.map((mediaUrl, index) => { + return 'Voir le fichier ' + (index + 1) + ''; + }).join(' - ') + '
' + + '
' + message.date + '
' + '
' + '
'; @@ -101,6 +104,9 @@ '
' + '
' + '
' + message.text + '
' + + '
' + message.medias.map((mediaUrl, index) => { + return 'Voir le fichier ' + (index + 1) + ''; + }).join(' - ') + '
' + '
' + message.date + ' ' + (message.status == 'delivered' ? '' : (message.status == 'failed' ? '' : '' )) + '
' + '
' + '
'; @@ -111,6 +117,9 @@ '
' + '
' + '
' + message.text + '
' + + '
' + message.medias.map((mediaUrl, index) => { + return 'Voir le fichier ' + (index + 1) + ''; + }).join(' - ') + '
' + '
' + message.date + '
' + '
' + ''; diff --git a/templates/received/list.php b/templates/received/list.php index 5611fb0..763a28e 100644 --- a/templates/received/list.php +++ b/templates/received/list.php @@ -45,8 +45,8 @@ - - + + @@ -104,7 +104,21 @@ jQuery(document).ready(function () }, }, {data: 'phone_name', render: jQuery.fn.dataTable.render.text()}, - {data: 'text', render: jQuery.fn.dataTable.render.text()}, + { + data: 'text', + render: function (data, type, row, meta) { + if (row.mms == 1) { + var medias = []; + for (i = 0; i < row.medias.length; i++) { + medias.push('Fichier ' + (i + 1) + ''); + } + html = data + '
' + medias.join(' - '); + return html; + } + + return data; + }, + }, {data: 'at', render: jQuery.fn.dataTable.render.text()}, { data: 'status', diff --git a/templates/scheduled/list.php b/templates/scheduled/list.php index cfeda14..ecfd708 100644 --- a/templates/scheduled/list.php +++ b/templates/scheduled/list.php @@ -87,7 +87,21 @@ jQuery(document).ready(function () }, "columns" : [ {data: 'at', render: jQuery.fn.dataTable.render.text()}, - {data: 'text', render: jQuery.fn.dataTable.render.text()}, + { + data: 'text', + render: function (data, type, row, meta) { + if (row.mms == 1) { + var medias = []; + for (i = 0; i < row.medias.length; i++) { + medias.push('Fichier ' + (i + 1) + ''); + } + html = data + '
' + medias.join(' - '); + return html; + } + + return data; + }, + }, { data: 'id', render: function (data, type, row, meta) { diff --git a/templates/sended/list.php b/templates/sended/list.php index 726cb2b..d8c6289 100644 --- a/templates/sended/list.php +++ b/templates/sended/list.php @@ -39,8 +39,8 @@
DeÀExpéditeurDestinataire Message Date Status
- - + + @@ -94,7 +94,21 @@ jQuery(document).ready(function () return row.destination_formatted; }, }, - {data: 'text', render: jQuery.fn.dataTable.render.text()}, + { + data: 'text', + render: function (data, type, row, meta) { + if (row.mms == 1) { + var medias = []; + for (i = 0; i < row.medias.length; i++) { + medias.push('Fichier ' + (i + 1) + ''); + } + html = data + '
' + medias.join(' - '); + return html; + } + + return data; + }, + }, {data: 'at', render: jQuery.fn.dataTable.render.text()}, { data: 'status',
DeÀExpéditeurDestinataire Message Date Statut