Просмотр исходного кода

fix - il calendario ora torna alla settimana dell'evento attuale

ferrari 4 месяцев назад
Родитель
Сommit
83417f624a

+ 18 - 0
app/Http/Livewire/Calendar.php

@@ -38,6 +38,8 @@ class Calendar extends Component
     public $festivities = [];
     public $css_festivities = '';
 
+    public $lastDate = null;
+
     public function mount()
     {
         $this->names = \App\Models\Calendar::orderBy('name')->groupBy('name')->pluck('name')->toArray();
@@ -115,8 +117,24 @@ class Calendar extends Component
         }, $this->festivities);
         $this->css_festivities = implode(", ", $this->festivities);
         
+        $this->lastDate = null;
+        if (isset($_GET['last_date'])) {
+            try {
+                $this->lastDate = \Illuminate\Support\Facades\Date::createFromFormat('Y-m-d',  $_GET['last_date']);
+            } catch (\Throwable $e) {
+                $this->lastDate = null;
+            }
+
+            if (!$this->lastDate) {
+                $this->lastDate = null;
+            } else {
+                $this->lastDate = $this->lastDate->format("Y-m-d");
+            }
+        }
+
         if ($reload)
             $this->emit('reload-calendar', ["'" . json_encode($this->records) . "'"]);
+
         return view('livewire.calendar');
     }
 

+ 3 - 1
app/Http/Livewire/Presence.php

@@ -216,7 +216,9 @@ class Presence extends Component
     public function save($ids)
     {
         $this->saveAndStay($ids);
-        return redirect()->to('/calendar');
+        $last_date = explode(" ", $this->calendar->from)[0];
+
+        return redirect()->to("/calendar?last_date={$last_date}");
     }
 
     public function saveAndStay($ids)

+ 1 - 0
resources/views/livewire/calendar.blade.php

@@ -253,6 +253,7 @@
 
             initialView = document.body.clientWidth < 768 ? 'timeGridDay' : 'timeGridWeek';
             var calendar = new FullCalendar.Calendar(calendarEl, {
+                initialDate: @this.lastDate ?? null,
                 initialView: initialView,
                 slotMinTime: '06:00:00',
                 headerToolbar: {

+ 5 - 1
resources/views/livewire/presence.blade.php

@@ -1,6 +1,10 @@
+@php
+    $last_date = explode(" ", $this->calendar->from)[0];
+@endphp
+
 <div class="col card--ui" id="card--dashboard">
 
-    <a class="btn--ui lightGrey" href="/calendar"><i class="fa-solid fa-arrow-left"></i></a><br><br>
+    <a class="btn--ui lightGrey" href="/calendar?last_date={{$last_date}}"><i class="fa-solid fa-arrow-left"></i></a><br><br>
 
     <div class="compare--chart_wrapper d-none"></div>