Browse Source

Availability filter UI fixes

Vijayakrishnan 4 years ago
parent
commit
69f971add4

+ 13 - 15
app/Http/Controllers/PracticeManagementController.php

@@ -149,12 +149,14 @@ class PracticeManagementController extends Controller
         if($proUid){
         if($proUid){
             $pro = Pro::where('uid', $proUid)->first();
             $pro = Pro::where('uid', $proUid)->first();
         }
         }
-        
+
         if($request->get('pro_uid')){
         if($request->get('pro_uid')){
             $proUid = $request->get('pro_uid');
             $proUid = $request->get('pro_uid');
             $pro = Pro::where('uid', $proUid)->first();
             $pro = Pro::where('uid', $proUid)->first();
         }
         }
 
 
+        $selectedProUid = $pro->uid;
+
         $pros = Pro::all();
         $pros = Pro::all();
 
 
         $generalAvailabilitiesList = ProGeneralAvailability::where('pro_id', $pro->id)->where('is_cancelled', false)->orderBy('created_at', 'asc')->get();
         $generalAvailabilitiesList = ProGeneralAvailability::where('pro_id', $pro->id)->where('is_cancelled', false)->orderBy('created_at', 'asc')->get();
@@ -190,37 +192,33 @@ class PracticeManagementController extends Controller
                 $generalAvailabilities['SUNDAY'][] = $ga;
                 $generalAvailabilities['SUNDAY'][] = $ga;
             }
             }
         }
         }
-        
+
         $specificAvailabilities = ProSpecificAvailability::where('pro_id', $pro->id)->where('is_cancelled', false)->orderBy('start_time')->get();
         $specificAvailabilities = ProSpecificAvailability::where('pro_id', $pro->id)->where('is_cancelled', false)->orderBy('start_time')->get();
         $specificUnavailabilities = ProSpecificUnavailability::where('pro_id', $pro->id)->where('is_cancelled', false)->orderBy('start_time', 'asc')->get();
         $specificUnavailabilities = ProSpecificUnavailability::where('pro_id', $pro->id)->where('is_cancelled', false)->orderBy('start_time', 'asc')->get();
 
 
         //events for the calendar
         //events for the calendar
-        $startDate = date('Y-m-d', strtotime("sunday -1 week")); 
-        $endDateTime = new DateTime($startDate);        
+        $startDate = date('Y-m-d', strtotime("sunday -1 week"));
+        $endDateTime = new DateTime($startDate);
         $endDateTime->modify('+6 day');
         $endDateTime->modify('+6 day');
         $endDate =  $endDateTime->format("Y-m-d");
         $endDate =  $endDateTime->format("Y-m-d");
 
 
         $eventsData = $pro->getAvailabilityEvents($startDate, $endDate);
         $eventsData = $pro->getAvailabilityEvents($startDate, $endDate);
         $events = json_encode($eventsData);
         $events = json_encode($eventsData);
 
 
-        return view('app.practice-management.pro-availability', compact('pros','generalAvailabilities', 'specificAvailabilities', 'specificUnavailabilities','events'));
+        return view('app.practice-management.pro-availability',
+            compact('pros','generalAvailabilities', 'specificAvailabilities',
+                'specificUnavailabilities', 'events', 'selectedProUid'));
     }
     }
 
 
-    public function loadAvailability(Request $request){
+    public function loadAvailability(Request $request, $proUid){
         $performer = $this->performer();
         $performer = $this->performer();
         $pro = $performer->pro;
         $pro = $performer->pro;
         $startDate = $request->get('start');
         $startDate = $request->get('start');
         $endDate = $request->get('end');
         $endDate = $request->get('end');
-        
-        if($request->get('pro_uid')){
-            $proUid = $request->get('pro_uid');
-            $pro = Pro::where('uid', $proUid)->first();
-        }
 
 
-        $eventsData = $pro->getAvailabilityEvents($startDate, $endDate);
-        //$events = json_encode($eventsData);
-        
-        return $eventsData;
+        $selectedPro = Pro::where('uid', $proUid)->first();
+
+        return $selectedPro->getAvailabilityEvents($startDate, $endDate);
     }
     }
 
 
     public function proAvailabilityFilter(Request $request){
     public function proAvailabilityFilter(Request $request){

+ 12 - 11
resources/views/app/practice-management/pro-availability.blade.php

@@ -9,15 +9,15 @@
             <form show url="{{route('pro-availability-filter')}}" method="POST" class="form-inline" redir="/practice-management/pro-availability/[data]">
             <form show url="{{route('pro-availability-filter')}}" method="POST" class="form-inline" redir="/practice-management/pro-availability/[data]">
                 @csrf
                 @csrf
                 <div class="form-group">
                 <div class="form-group">
-                    <select name="proUid" class="form-control">
+                    <select name="proUid" class="form-control" required>
                         <option value="">-- select pro --</option>
                         <option value="">-- select pro --</option>
                         @foreach($pros as $apro)
                         @foreach($pros as $apro)
-                        <option value="{{$pro->uid}}">{{$apro->name_first}} {{$apro->name_last}}</option>
+                        <option value="{{$apro->uid}}" {{$selectedProUid === $apro->uid ? 'selected' : ''}}>{{$apro->name_first}} {{$apro->name_last}}</option>
                         @endforeach
                         @endforeach
                     </select>
                     </select>
                 </div>
                 </div>
                 <div class="form-group">
                 <div class="form-group">
-                    <button class="btn btn-sm btn-outline-secondary">Filter</button>
+                    <button class="btn btn-sm btn-outline-secondary" submit>Filter</button>
                 </div>
                 </div>
             </form>
             </form>
         </div>
         </div>
@@ -139,11 +139,11 @@
                                                 </a>
                                                 </a>
                                                 <form url="/api/proGeneralAvailability/cancel">
                                                 <form url="/api/proGeneralAvailability/cancel">
                                                     <input type="hidden" name="uid" value="{{$ga->uid}}">
                                                     <input type="hidden" name="uid" value="{{$ga->uid}}">
-                                                    
+
                                                     <div class="form-group">
                                                     <div class="form-group">
                                                         Cancel record?
                                                         Cancel record?
                                                     </div>
                                                     </div>
-                                                   
+
                                                     <div class="form-group m-0">
                                                     <div class="form-group m-0">
                                                         <button submit class="btn btn-primary btn-sm mr-2">Submit</button>
                                                         <button submit class="btn btn-primary btn-sm mr-2">Submit</button>
                                                         <button cancel class="btn btn-default border btn-sm mr-2">Cancel</button>
                                                         <button cancel class="btn btn-default border btn-sm mr-2">Cancel</button>
@@ -252,11 +252,11 @@
                                     </a>
                                     </a>
                                     <form url="/api/proSpecificAvailability/cancel">
                                     <form url="/api/proSpecificAvailability/cancel">
                                         <input type="hidden" name="uid" value="{{$sa->uid}}">
                                         <input type="hidden" name="uid" value="{{$sa->uid}}">
-                                        
+
                                         <div class="form-group">
                                         <div class="form-group">
                                             Cancel record?
                                             Cancel record?
                                         </div>
                                         </div>
-                                        
+
                                         <div class="form-group m-0">
                                         <div class="form-group m-0">
                                             <button submit class="btn btn-primary btn-sm mr-2">Submit</button>
                                             <button submit class="btn btn-primary btn-sm mr-2">Submit</button>
                                             <button cancel class="btn btn-default border btn-sm mr-2">Cancel</button>
                                             <button cancel class="btn btn-default border btn-sm mr-2">Cancel</button>
@@ -364,11 +364,11 @@
                                     </a>
                                     </a>
                                     <form url="/api/proSpecificUnavailability/cancel">
                                     <form url="/api/proSpecificUnavailability/cancel">
                                         <input type="hidden" name="uid" value="{{$su->uid}}">
                                         <input type="hidden" name="uid" value="{{$su->uid}}">
-                                        
+
                                         <div class="form-group">
                                         <div class="form-group">
                                             Cancel record?
                                             Cancel record?
                                         </div>
                                         </div>
-                                        
+
                                         <div class="form-group m-0">
                                         <div class="form-group m-0">
                                             <button submit class="btn btn-primary btn-sm mr-2">Submit</button>
                                             <button submit class="btn btn-primary btn-sm mr-2">Submit</button>
                                             <button cancel class="btn btn-default border btn-sm mr-2">Cancel</button>
                                             <button cancel class="btn btn-default border btn-sm mr-2">Cancel</button>
@@ -421,10 +421,11 @@
                 events: function(info, successCallback, failureCallbackk) {
                 events: function(info, successCallback, failureCallbackk) {
                     console.log("loading envents:", info.startStr.substr(0, 10), info.endStr.substr(0, 10))
                     console.log("loading envents:", info.startStr.substr(0, 10), info.endStr.substr(0, 10))
                     jQuery.ajax({
                     jQuery.ajax({
-                        url: '/availability/load',
+                        url: '/availability/load/{{ $selectedProUid }}',
                         type: 'POST',
                         type: 'POST',
                         dataType: 'json',
                         dataType: 'json',
                         data: {
                         data: {
+                            _token: '{{ csrf_token() }}',
                             start: info.startStr.substr(0, 10),
                             start: info.startStr.substr(0, 10),
                             end: info.endStr.substr(0, 10)
                             end: info.endStr.substr(0, 10)
                         },
                         },
@@ -440,4 +441,4 @@
         addMCInitializer('pro-availability-calendar', initAvailabilityCalendar);
         addMCInitializer('pro-availability-calendar', initAvailabilityCalendar);
     })();
     })();
 </script>
 </script>
-@endsection
+@endsection

+ 1 - 1
routes/web.php

@@ -122,7 +122,7 @@ Route::middleware('pro.auth')->group(function () {
     Route::get('/appointment/getAllAppointmentsForPros', 'AppointmentController@events')->name('events');
     Route::get('/appointment/getAllAppointmentsForPros', 'AppointmentController@events')->name('events');
 
 
     //events for availability
     //events for availability
-    Route::post('/availability/load', 'PracticeManagementController@loadAvailability')->name('loadAvailability');
+    Route::post('/availability/load/{proUid}', 'PracticeManagementController@loadAvailability')->name('loadAvailability');
     Route::post('/pro-availability/filter', 'PracticeManagementController@proAvailabilityFilter')->name('pro-availability-filter');
     Route::post('/pro-availability/filter', 'PracticeManagementController@proAvailabilityFilter')->name('pro-availability-filter');
 
 
     // load template set
     // load template set