Add unread messages support

This commit is contained in:
osaajani 2019-12-02 01:55:06 +01:00
parent cfde77a0c1
commit 88b00e4e9f
12 changed files with 249 additions and 15 deletions

View file

@ -21,7 +21,6 @@ namespace controllers\publics;
private $internal_contact;
private $internal_group;
private $internal_scheduled;
private $internal_command;
private $internal_event;
/**
@ -39,7 +38,6 @@ namespace controllers\publics;
$this->internal_contact = new \controllers\internals\Contact($bdd);
$this->internal_group = new \controllers\internals\Group($bdd);
$this->internal_scheduled = new \controllers\internals\Scheduled($bdd);
$this->internal_command = new \controllers\internals\Command($bdd);
$this->internal_event = new \controllers\internals\Event($bdd);
\controllers\internals\Tool::verifyconnect();
@ -58,7 +56,7 @@ namespace controllers\publics;
$nb_contacts = $this->internal_contact->count_for_user($id_user);
$nb_groups = $this->internal_group->count_for_user($id_user);
$nb_scheduleds = $this->internal_scheduled->count_for_user($id_user);
$nb_commands = $this->internal_command->count_for_user($id_user);
$nb_unreads = $this->internal_received->count_unread_for_user($id_user);
$nb_sendeds = $this->internal_sended->count_for_user($id_user);
$nb_receiveds = $this->internal_received->count_for_user($id_user);
@ -124,9 +122,9 @@ namespace controllers\publics;
'nb_contacts' => $nb_contacts,
'nb_groups' => $nb_groups,
'nb_scheduleds' => $nb_scheduleds,
'nb_commands' => $nb_commands,
'nb_sendeds' => $nb_sendeds,
'nb_receiveds' => $nb_receiveds,
'nb_unreads' => $nb_unreads,
'avg_sendeds' => $avg_sendeds,
'avg_receiveds' => $avg_receiveds,
'sendeds' => $sendeds,

View file

@ -107,6 +107,11 @@ namespace controllers\publics;
foreach ($receiveds as $received)
{
if ($received['status'] != 'read')
{
$this->internal_received->mark_as_read_for_user($id_user, $received['id']);
}
$messages[] = [
'date' => htmlspecialchars($received['at']),
'text' => htmlspecialchars($received['text']),

View file

@ -49,6 +49,11 @@ namespace controllers\publics;
foreach ($receiveds as $key => $received)
{
if ($received['status'] != 'read')
{
$this->internal_received->mark_as_read_for_user($_SESSION['user']['id'], $received['id']);
}
if (!$contact = $this->internal_contact->get_by_number_and_user($_SESSION['user']['id'], $received['origin']))
{
continue;
@ -59,6 +64,32 @@ namespace controllers\publics;
$this->render('received/list', ['receiveds' => $receiveds, 'page' => $page, 'limit' => $limit, 'nb_results' => \count($receiveds)]);
}
/**
* Return all unread receiveds messages
* @param mixed $page
*/
public function list_unread($page = 0)
{
$page = (int) $page;
$limit = 25;
$receiveds = $this->internal_received->list_unread_for_user($_SESSION['user']['id'], $limit, $page);
foreach ($receiveds as $key => $received)
{
$this->internal_received->mark_as_read_for_user($_SESSION['user']['id'], $received['id']);
if (!$contact = $this->internal_contact->get_by_number_and_user($_SESSION['user']['id'], $received['origin']))
{
continue;
}
$receiveds[$key]['origin'] = $contact['name'].' ('.$received['origin'].')';
}
$this->render('received/list_unread', ['receiveds' => $receiveds, 'page' => $page, 'limit' => $limit, 'nb_results' => \count($receiveds)]);
}
/**
* Delete Receiveds