From ece3a68631e0421c07b5dbd730e98fb18af73b6b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Arch=20de=20No=C3=A9?= <noe.le-cam@etu.unistra.fr>
Date: Mon, 28 Mar 2022 22:02:32 +0200
Subject: [PATCH] Fixed search

---
 assets/css/search.css          |   1 +
 assets/database.sqlite         | Bin 45056 -> 45056 bytes
 assets/php/models/TimeSlot.php |   6 ++--
 search.php                     |  49 ++++++++-------------------------
 4 files changed, 16 insertions(+), 40 deletions(-)

diff --git a/assets/css/search.css b/assets/css/search.css
index 7290550..156a348 100644
--- a/assets/css/search.css
+++ b/assets/css/search.css
@@ -5,6 +5,7 @@ section {
     overflow:hidden; overflow-y:scroll;
     height: 55vh;
     width: 40rem;
+    border-radius: 10px;
 }
 
 h2 {
diff --git a/assets/database.sqlite b/assets/database.sqlite
index a261d9485895755000ef963a74c9d1c472888104..0023b829897185d52c3a41616f2dd6d40079f46f 100644
GIT binary patch
literal 45056
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
Ov@~{Y$4i@{>i+>p^+wJB

literal 45056
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
a?yqIv$g>kv({3rely2HB*t0WDr2h}g=6Zzy

diff --git a/assets/php/models/TimeSlot.php b/assets/php/models/TimeSlot.php
index dc93b41..bbcedb2 100644
--- a/assets/php/models/TimeSlot.php
+++ b/assets/php/models/TimeSlot.php
@@ -68,6 +68,10 @@ class TimeSlot
 
     public function cut(TimeSlot $slot): array
     {
+        // Early return : nothing to cut / no overlap
+        if ($slot->start >= $this->end || $slot->end <= $this->start)
+            return [$this];
+
         $cutout = [];
 
         $ss_diff = $this->start->diff($slot->start);
@@ -94,8 +98,6 @@ class TimeSlot
             $pre->end->add($es_diff);
             $post->start->add($se_diff);
             array_push($cutout, $pre, $post);
-        } elseif (!($ss_diff->invert && !$ee_diff->invert)) {
-            array_push($cutout, $this);
         }
 
         return array_filter($cutout, function (TimeSlot $e) {
diff --git a/search.php b/search.php
index 178adaa..5ba4008 100644
--- a/search.php
+++ b/search.php
@@ -17,7 +17,8 @@ try {
   $query = $pdo->prepare("SELECT id, type, start_time, end_time, location
     FROM schedule NATURAL JOIN rooms
     WHERE type LIKE :type AND date(date) = date(:date)
-    AND time(end_time) > time(:start_time) AND time(start_time) < time(:end_time)");
+    AND time(end_time) > time(:start_time) AND time(start_time) < time(:end_time)
+    ORDER BY start_time");
 
   /**
    * QUERY DESCRIPTION : 
@@ -78,9 +79,8 @@ try {
     <h2>Résultats de la recherche</h2>
     <hr>
     <section>
-
       <?php
-      $final_results = [];
+      $results = [];
       foreach ($wanted_slots as $span) {
         $scissors = array_filter(
           $query_result,
@@ -89,51 +89,24 @@ try {
           }
         );
 
+        foreach ($scissors as $b) {
+          $b->display();
+        }
+
         $strips = [$span];
         foreach ($scissors as $blade) {
           $cuts = [];
           foreach ($strips as $sub_span)
-          {
-            echo "Strip";
-            foreach ($sub_span->cut($blade) as $x) {
-              $x->display();
-            }  
             $cuts = array_merge($cuts, $sub_span->cut($blade));
-          }
-          
-          $strips = $cuts; 
+
+          $strips = $cuts;
         }
-        $final_results = array_merge($final_results, $strips);
+        $results = array_merge($results, $strips);
       }
 
-      foreach ($final_results as $slot)
+      foreach ($results as $slot)
         $slot->display();
-      
-      // echo "test";
-      // $test_room = new Room();
-      // $test_room->id = "UWU";
-      // $test_room->location = 10;
-      // $test_room->type = "tp";
-
-      // $test_span = new TimeSlot();
-      // $test_span->start_time = "09:00";
-      // $test_span->end_time = "15:00";
-      // $test_span->room = $test_room;
-
-      // $test_cut = new TimeSlot();
-      // $test_cut->start_time = "13:00";
-      // $test_cut->end_time = "15:00";
-      // $test_cut->room = $test_room;
-
-
-      // $res = $test_span->cut($test_cut);
-      // foreach ($res as $x) {
-      //   $x->display();
-      // }
       ?>
-
-
-
     </section>
   </main>
   <?php include "assets/php/cookies.php"; ?>
-- 
GitLab