diff --git a/api.php b/api.php index fc1b07d53056f447e855d585e3b8e0a710257555..8c1f14e6dbbedb4d2b1b4267e3591d1eccc3c05c 100644 --- a/api.php +++ b/api.php @@ -54,6 +54,10 @@ switch($_GET['action']) echo json_encode(getFreeDockResume($codeStation, "-1month", 360)); exit(); break; + case 'vote': + echo json_encode(compterVote($codeStation, $_GET['statut'])); + exit(); + break; } function getBikeInstantane($codeStation) @@ -404,4 +408,20 @@ function getDataFreeDockResume($codeStation, $filtre, $periode) ) ); } + +function compterVote($codeStation, $statut) +{ + global $pdo; + + $vote = null; + if($statut == 'oui') + $vote = 1; + elseif($statut == 'non') + $vote = 0; + else + return false; + + $pdo->exec('INSERT INTO signalement (code, estFonctionnel) VALUES ('.$codeStation.', '.$vote.')'); + return true; +} ?> \ No newline at end of file diff --git a/script.js b/script.js index d30f31484f8a869641d79e56364ecc72e7909d34..7e40b14fc28aeb920b8676ef9a948211741103d8 100644 --- a/script.js +++ b/script.js @@ -131,9 +131,29 @@ function displayDetails() updateGraph(); } +function voteOui() +{ + vote(true); +} + +function voteNon() +{ + vote(false); +} + +function vote(statut) +{ + getData('api.php?action=vote&statut='+(statut ? 'oui' : 'non')+'&codeStation='+codeStation).then(function(data) { + if(data) + alert('Votre vote a été pris en compte'); + }); +} + $(document).ready( function () { $("#dureeGraphiqueSelect").change(changerGraphe); $("#typeGraphiqueSelect").change(changerGraphe); $("#displayDetails").change(displayDetails); + $("#boutonFonctionneOui").click(voteOui); + $("#boutonFonctionneNon").click(voteNon); changerGraphe(); }); \ No newline at end of file diff --git a/station.php b/station.php index 96afb9714e177ba17c934894da79fb232340c75a..407fa696ed57d43ad8e24384f5be61f81e1d4d72 100644 --- a/station.php +++ b/station.php @@ -34,6 +34,22 @@ INNER JOIN statusConso c ON c.id = s.idConso WHERE s.code = '.$code.' AND c.date >= "'.$filtreDate.'" ORDER BY s.code ASC'); $statusStation = $requete->fetchAll(); + +//Filtre semaine +$hier = new DateTime("-1week"); +$filtreSemaine = $hier->format('Y-m-d H:i:s'); + +//Signalements +$requete = $pdo->query('SELECT * +FROM signalement +WHERE code = '.$code.' AND dateSignalement >= "'.$filtreSemaine.'" +ORDER BY dateSignalement DESC'); +$signalements = $requete->fetchAll(); +$resumeSignalement = array(true => 0, false => 0); +foreach($signalements as $sign) +{ + $resumeSignalement[$sign['estFonctionnel'] == 1]++; +} ?> @@ -68,6 +84,22 @@ $statusStation = $requete->fetchAll();
  • Nom :
  • Date d'ouverture :
  • Adresse la plus proche (selon BAN) :
  • +
  • Signalement des utilisateurs sur l'état de la station (dernière semaine) : + 0) + echo 'Fonctionne = '.$resumeSignalement[true].'; '; + if($resumeSignalement[false] > 0) + echo 'Ne fonctionne pas = '.$resumeSignalement[false].'; '; + echo 'Dernier signalement : '.($signalements[0]['estFonctionnel'] == 1 ? 'Fonctionne' : 'Ne fonctionne pas').' à '.(new DateTime($signalements[0]['dateSignalement']))->format('d/m H:i'); + } + ?> + + +
  • Graphique