Browse code

Update

Benjamin Roth authored on20/09/2023 13:46:43
Showing2 changed files
... ...
@@ -7,6 +7,27 @@
7 7
 {% endblock %}
8 8
 
9 9
 {% block main %}
10
+    <form class="tl_form" method="post" aria-label="Such- und Filterfunktionen">
11
+        <div class="tl_formbody">
12
+            <input type="hidden" name="FORM_SUBMIT" value="tl_filters">
13
+            <input type="hidden" name="REQUEST_TOKEN" value="{{ request_token }}">
14
+
15
+            <div class="tl_panel cf">
16
+
17
+                <div class="tl_submit_panel tl_subpanel">
18
+                    <button name="filter" id="filter" class="tl_img_submit filter_apply" title="">Anwenden</button>
19
+                    <button name="filter_reset" id="filter_reset" value="1" class="tl_img_submit filter_reset" title="">Zurücksetzen</button>
20
+                </div>
21
+                <div class="tl_sorting tl_subpanel">
22
+                    <strong>Filter:</strong>
23
+                    <select name="tl_sort" id="tl_sort" class="tl_select tl_chosen">
24
+                        <option value="title" selected="selected">Monat</option>
25
+                    </select>
26
+                </div>
27
+            </div>
28
+        </div>
29
+    </form>
30
+
10 31
     <div id="tl_buttons">
11 32
         <a href="/contao?do=weinanlieferung&table=tl_vr_wa_reservation&act=create&rt={{ request_token }}&ref={{ ref }}" class="header_new" title="" accesskey="n" onclick="Backend.getScrollOffset()">Neu</a>
12 33
     </div>
... ...
@@ -20,6 +20,7 @@ use Contao\FrontendUser;
20 20
 use Contao\Input;
21 21
 use Contao\StringUtil;
22 22
 use Contao\System;
23
+use Doctrine\DBAL\Connection;
23 24
 use Symfony\Component\HttpFoundation\RequestStack;
24 25
 use Symfony\Component\HttpFoundation\Response;
25 26
 use Symfony\Component\Routing\Annotation\Route;
... ...
@@ -37,12 +38,14 @@ class WeinanlieferungBookingsController extends AbstractController
37 38
     private $twig;
38 39
     private $tokenManager;
39 40
     private $request;
41
+    private $db;
40 42
 
41
-    public function __construct(TwigEnvironment $twig, ContaoCsrfTokenManager $tokenManager, RequestStack $requestStack)
43
+    public function __construct(TwigEnvironment $twig, ContaoCsrfTokenManager $tokenManager, RequestStack $requestStack, Connection $db)
42 44
     {
43 45
         $this->twig = $twig;
44 46
         $this->tokenManager = $tokenManager;
45 47
         $this->request = $requestStack->getCurrentRequest();
48
+        $this->db = $db;
46 49
 
47 50
         $container = System::getContainer();
48 51
         $objSession = $container->get('session');
... ...
@@ -64,6 +67,16 @@ class WeinanlieferungBookingsController extends AbstractController
64 67
         ];
65 68
         System::loadLanguageFile('default');
66 69
 
70
+        // Filter
71
+        $arrMonthOptions = [];
72
+        $MonthRequest = $this->db->executeQuery("SELECT s.date, DATE_FORMAT(FROM_UNIXTIME(s.date),'%m/%Y') as 'month_label' FROM tl_vr_wa_reservation r INNER JOIN tl_vr_wa_slot s ON s.id = r.pid GROUP BY month_label, s.date ORDER BY s.date ASC");
73
+
74
+        foreach ($MonthRequest->iterateAssociative() as $month)
75
+        {
76
+            $arrMonthOptions[$month['date']] = $month['month_label'];
77
+        }
78
+
79
+
67 80
         // Get bookings
68 81
         if (($bookings = WeinanlieferungReservationModel::findAllFuture(['order' => "(SELECT tl_vr_wa_slot.time FROM tl_vr_wa_slot WHERE tl_vr_wa_slot.id=tl_vr_wa_reservation.pid) ASC"])) !== null)
69 82
         {