فهرست منبع

Fix scroollbar

Luca Parisio 5 ماه پیش
والد
کامیت
acc8c581ba

+ 57 - 6
app/Http/Livewire/Member.php

@@ -150,7 +150,9 @@ class Member extends Component
     public $tabOrder = ['dati', 'tesseramento', 'corsi', 'gruppi'];
 
     public $presenceYears = [];
+    public $presenceYearFilter = '';
     public $presenceTitle = [];
+    public $presenceTitleFilter = '';
     public $member_presences = [];
 
     public $totals = 0;
@@ -753,6 +755,8 @@ class Member extends Component
     public function loadMemberPresences()
     {
 
+        $this->loadCombo();
+
         $this->member_presences = [];
 
         // Carico tutti i calendar_id delle presenza
@@ -760,8 +764,17 @@ class Member extends Component
         $presences_annullate = \App\Models\Presence::where('member_id', $this->dataId)->where('status', 99)->pluck('calendar_id')->toArray();
 
         $course_ids = array();
+        
         // Tutti i calendari
-        $calendars = \App\Models\Calendar::whereNull('manual')->orderBy('from')->get();
+        if ($this->presenceYearFilter == '' && sizeof($this->presenceYears) > 0)
+            $this->presenceYearFilter = $this->presenceYears[0];
+
+        if ($this->presenceTitleFilter == '' && sizeof($this->presenceTitle) > 0)
+            $this->presenceTitleFilter = $this->presenceTitle[0];
+
+        $curses_ids = \App\Models\Course::where('year', $this->presenceYearFilter)->pluck('id')->toArray();
+
+        $calendars = \App\Models\Calendar::whereNull('manual')->whereIn('course_id', $curses_ids)->where('name', $this->presenceTitleFilter)->orderBy('from')->get();
 
         $this->totals = 0;
         $this->presenze = 0;
@@ -824,11 +837,11 @@ class Member extends Component
         }
 
         // Manuali (recuperi)
-        $calendar_recuperi = \App\Models\Calendar::where('manual', 1)->pluck('id')->toArray();
+        $calendar_recuperi = \App\Models\Calendar::where('manual', 1)->where('name', $this->presenceTitleFilter)->pluck('id')->toArray();
         $presences_recuperi = \App\Models\Presence::whereIn('calendar_id', $calendar_recuperi)->where('member_id', $this->dataId)->get();
         foreach($presences_recuperi as $p)
         {
-            $this->member_presences[] = array('calendar_id' => $p->calendar->id, 'from' => $p->calendar->from, 'to' => $p->calendar->to, 'status' => '<span style=\"color:violet\">Recupero</span>');//\App\Models\Presence::where('member_id', $this->dataId)->get();
+            $this->member_presences[] = array('calendar_id' => $p->calendar->id, 'from' => $p->calendar->from, 'to' => $p->calendar->to, 'status' => '<span style="color:violet">Recupero</span>');//\App\Models\Presence::where('member_id', $this->dataId)->get();
             $this->recuperi += 1;
         }
 
@@ -841,14 +854,52 @@ class Member extends Component
         //usort($this->member_presences, $this->cmp);
         //usort($this->member_presences, function ($a, $b) { return $a['from'] > $b['from']; });
         
-        $this->presenceYears = \App\Models\Course::whereIn('id', $course_ids)->orderBy('year')->groupBy('year')->pluck('year')->toArray();
-        $this->presenceTitle = \App\Models\Course::whereIn('id', $course_ids)->orderBy('name')->groupBy('name')->pluck('name')->toArray();
+        //$this->presenceYears = \App\Models\Course::whereIn('id', $course_ids)->orderBy('year')->groupBy('year')->pluck('year')->toArray();
+        //if (sizeof($this->presenceYears) > 0)
+        //    $this->presenceYearFilter = $this->presenceYears[0];
+        //$this->presenceTitle = \App\Models\Course::whereIn('id', $course_ids)->orderBy('name')->groupBy('name')->pluck('name')->toArray();
 
         
         // return view('livewire.member');
     }
 
-    
+    public function loadCombo()
+    {
+        $course_ids = array();
+        
+        $calendars = \App\Models\Calendar::whereNull('manual')->orderBy('from')->get();
+
+        foreach($calendars as $calendar)
+        {
+            $days = ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab'];
+            $dow = date('w', strtotime($calendar->from));
+            $d = $days[$dow];
+
+            // Elenco corsi per tipologia in base al calendario
+            $courses = \App\Models\Course::where('name', $calendar->name)->where('date_from', '<=', $calendar->from)->where('date_to', '>=', $calendar->to)->pluck('id')->toArray();
+
+            //$courses = array(1);
+            foreach($courses as $c)
+            {
+                $course_ids[] = $c;    
+            }
+
+            //$course_ids = array_push($course_ids, $courses);
+
+        }
+
+        // Manuali (recuperi)
+        $calendar_recuperi = \App\Models\Calendar::where('manual', 1)->pluck('name')->toArray();
+        
+        $this->presenceYears = \App\Models\Course::whereIn('id', $course_ids)->orderBy('year')->groupBy('year')->pluck('year')->toArray();
+        $this->presenceTitle = \App\Models\Course::whereIn('id', $course_ids)->orderBy('name')->groupBy('name')->pluck('name')->toArray();
+
+        foreach($calendar_recuperi as $cr)
+        {
+            $this->presenceTitle[] = $cr;
+        }
+
+    }
 
     public function showDetailF($id)
     {

+ 6 - 2
app/Http/Livewire/Presence.php

@@ -204,8 +204,12 @@ class Presence extends Component
         $this->calendar->save();
 
         $x = \App\Models\Presence::where('calendar_id', $this->calendar->id)->where('user_id', \Auth::user()->id)->where('status', '<>', 99)->first();
-        $mid = $x->motivation_id;
-        $x->delete();
+        $mid = null;
+        if ($x)
+        {
+            $mid = $x->motivation_id;
+            $x->delete();
+        }
         foreach($ids as $id)
         {
             $p = new \App\Models\Presence();

+ 10 - 0
public/assets/js/select2_scroll_fix.js

@@ -0,0 +1,10 @@
+document.addEventListener("livewire:load", disableSelect2Scroll);
+document.addEventListener("livewire:update", disableSelect2Scroll);
+
+function disableSelect2Scroll() {
+    $(document).on("select2:open", function (e) {
+        const evt = "scroll.select2";
+        $(e.target).parents().off(evt);
+        $(window).off(evt);
+    });
+}

+ 4 - 0
public/css/style.css

@@ -16777,3 +16777,7 @@ div.dt-container div.dt-length label {
     }
   }
   /* END CSS Ferrari - Modifiche UI */
+
+body div.dt-button-background {
+  pointer-events: none;
+}

+ 1 - 1
resources/views/layouts/app.blade.php

@@ -399,7 +399,7 @@
   <script src="/assets/js/app.js"></script>
   <script src="/assets/js/tablesaw.js"></script>
   <script src="/assets/js/tablesaw-init.js"></script>
-
+    <script src="/assets/js/select2_scroll_fix.js"></script>
 
     @livewireScripts
 

+ 2 - 2
resources/views/livewire/member.blade.php

@@ -1136,14 +1136,14 @@
                                     <div class="form--wrapper">
                                         <div class="row ">
                                             <div class="col-md-6">
-                                                <select class="form-control">
+                                                <select class="form-control" wire:model="presenceYearFilter">
                                                     @foreach($presenceYears as $y)
                                                         <option value="{{$y}}">{{$y}}</option>
                                                     @endforeach
                                                 </select>
                                             </div>
                                             <div class="col-md-6">
-                                                <select class="form-control">
+                                                <select class="form-control"  wire:model="presenceTitleFilter">
                                                     @foreach($presenceTitle as $t)
                                                         <option value="{{$t}}">{{$t}}</option>
                                                     @endforeach