Bonjour,
Sur une application, je dois mettre en place un système d'alerte.
Actuellement, j'ai fait ce système en php et je me demandais si il y avait un moyen de le faire en js pour éviter les requêtes un peut lourde.
Je m'explique, j'ai un tableau de bord avec plusieurs compteur qui indique le nombre de dossier suivant l'état de ceux-ci.
Je souhaite que dès qu'il y a un nouveau ou un changement d'état d'un dossier dans un des compteurs, afficher un badge qui compte le nombre de new pour chaque utilisateur. Dès qu'un utilisateur clique sur le compteur, il a la liste des dossiers qui correspond à l'état, là j'aimerais que les nouveau soient en vert et les dossiers qui ont été vue soient en rouge !
j'ai plusieurs utilisateur qui se connectent à mon application.
Lorsqu'ils sont connecté, ils tombent sur un tableau de bord avec plusieurs compteurs.
Exemple de compteur, j'ai 5 dossiers qui ont un statut "à vérifier" et 50 dossiers qui on un statut "vérifié"
problème 1 : comment l'utilisateur voit combien de dossier à été ajouté dans chaque compteur depuis sa dernière visite ?
problème 2 : comment l'utilisateur voit quel sont les dossiers qui ont été ajouté ou non vue ?
Actuellement, je fais une table qui enregistre, pour chaque utilisateurs et pour chaque dossiers, un statut vue = oui ou non
Le problème c'est que je dois gérer des milliers de dossiers pour 50 utilisateurs env.
Donc la qestion est, est ce qu'il y a un moyen de faire la même chose en js ?
En fait pour être plus clair, j'aimerais faire le même système que sur gmail où sur la boîte de réception il y a un badge qui indique le nombre d'email non lu. Je doute que ça soit enregistré en base de donnée pour chaque utilisateurs !
Comment fonctionne ces systèmes ?
Eh si c'est enregistré en BD pour chaque compte ;)
Chaque message a (sûrement) un flag 'read' qui est égal à si le message est non lu et à 1 si le message a été lu.
Je ne pense pas que ça soit le seul moyen, mais c'est le plus simple et intuitif en tout cas (de mon point de vue) :)
ok bon mon système fonctionne, seulement je rencontre un petit problème
Lorsque je décrémente un compteur, suite à un changement d'état, si l'utilisateur n'a pas consulté les nouveaux ajouts, il se retrouve avec :
40 le nombre de dossier "à vérifier", 41 le nombre de news.
Pourtant dès qu'il y a un dossier qui va dans un compteur, j'enregistre l'état, l'utilisateur, si vue ou non.
Si un dossier change d'état, donc il passe dans un autre compteur, je mets à jour la ligne en changeant l'état.
public function newViews($data, $etat)
{
$user = $this->FtthUser->find($_SESSION['auth']);
if($user->societe_id === '1'){
foreach($data as $d){
$dossier = $d->dossier;
$new = $this->FtthNew->findByDossier($dossier, $user->id);
if(empty($new)){
if($_SESSION['auth'] != null){
$this->FtthNew->create([
'dossier' => $dossier,
'user_id' => $user->id,
'view' => 'non',
'etat' => $etat
]);
}
}else{
if($new->etat != $etat){
$this->FtthNew->maj($new->dossier, [
'etat' => $etat
]);
}
}
}
}
return $this;
}
Du coup je ne suis peut être plus au bon endroit !
Bonjour
Pour ton problème numéro un tu peux utilisé la date de la dernière actualisation sur le site et comparé aux posts les plus récents.
tu aura le nombre depuis ta dernière connexion
pour ton autre soucis comme ca je vois pas.
Bon courage à toi.