Эх сурвалжийг харах

updated GA create endpoints

Josh 4 жил өмнө
parent
commit
51c8a0ef54

+ 8 - 2
app/Http/Controllers/PracticeManagementController.php

@@ -7,7 +7,9 @@ use App\Models\Bill;
 use App\Models\Client;
 use App\Models\McpRequest;
 use App\Models\Note;
+use App\Models\ProGeneralAvailability;
 use App\Models\ProRate;
+use App\Models\ProSpecificUnavailability;
 use App\Models\ProTextShortcut;
 use App\Models\ProTransaction;
 use Illuminate\Http\Request;
@@ -138,9 +140,13 @@ class PracticeManagementController extends Controller
     public function myAvailability(Request $request)
     {
         $performer = $this->performer();
-        return view('app.practice-management.my-availability');
-    }
+        $pro = $performer->pro;
+        $generalAvailabilities = ProGeneralAvailability::where('pro_id', $pro->id)->where('is_cancelled', false)->orderBy('created_at', 'asc')->get();
+        $specificAvailabilities = ProGeneralAvailability::where('pro_id', $pro->id)->where('is_cancelled', false)->orderBy('created_at', 'asc')->get();
+        $specificUnavailabilities = ProSpecificUnavailability::where('pro_id', $pro->id)->where('is_cancelled', false)->orderBy('created_at', 'asc')->get();
 
+        return view('app.practice-management.my-availability', compact('generalAvailabilities', 'specificAvailabilities', 'specificUnavailabilities'));
+    }
 
 
     // video call page (RHS)

+ 217 - 104
resources/views/app/practice-management/my-availability.blade.php

@@ -3,120 +3,233 @@
 @section('content')
 <link href='/fullcalendar-5.3.2/lib/main.css' rel='stylesheet' />
 <script src='/fullcalendar-5.3.2/lib/main.js'></script>
-<div class="p-3 mcp-theme-1">
-    <div class="card">
+<div class="container-fluid">
+    <div class="row mt-4">
+        <div class="col-md-6">
+            <div class="card mb-2">
+                <div class="card-header d-flex">
+                    <?php $daysOfWeek = ['MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY'] ?>
+                    <div class="mr-2">
+                        General Availability
+                    </div>
+                    <div moe wide class="mr-2">
+                        <a start show>
+                            Add Whole Week
+                        </a>
+                        <form url="/api/proGeneralAvailability/createForWholeWeek">
+                            <input type="hidden" name="proUid" value="{{$pro->uid}}">
+                            <input type="hidden" name="timezone" value="EASTERN">
+                            <div class="form-group">
+                                @foreach($daysOfWeek as $dayOfWeek)
+                                <div class="form-check">
+                                    <input class="form-check-input" type="checkbox" name="daysOfWeek[{{$loop->index}}]" id="ga_chk_{{$dayOfWeek}}" value="{{$dayOfWeek}}">
+                                    <label class="form-check-label" for="ga_chk_{{$dayOfWeek}}">{{$dayOfWeek}}</label>
+                                </div>
+                                @endforeach
+                            </div>
+                            <div class="form-group">
+                                <label for="" class="control-label">Start Time </label>
+                                <input class="form-control" type="time" name="startTime" value="08:00">
+                            </div>
+                            <div class="form-group">
+                                <label for="" class="control-label">End Time </label>
+                                <input class="form-control" type="time" name="endTime" value="17:00">
+                            </div>
+                            <div class="form-group m-0">
+                                <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>
+                            </div>
+                        </form>
+                    </div>
+                    <div class="text-secondary mr-2">|</div>
+                    <div moe wide class="mr-2">
+                        <a start show>
+                            Add Single Day
+                        </a>
+                        <form url="/api/proGeneralAvailability/createForSingleDay">
+                            <input type="hidden" name="proUid" value="{{$pro->uid}}">
+                            <input type="hidden" name="timezone" value="EASTERN">
+                            <div class="form-group">
+                                <select name="dayOfWeek" class="form-control">
+                                    <option value=""> -- select day -- </option>
+                                    @foreach($daysOfWeek as $dayOfWeek)
+                                    <option value="{{$dayOfWeek}}">{{$dayOfWeek}}</option>
+                                    @endforeach
+                                </select>        
+                            </div>
+                            <div class="form-group">
+                                <label for="" class="control-label">Start Time </label>
+                                <input class="form-control" type="time" name="startTime" value="08:00">
+                            </div>
+                            <div class="form-group">
+                                <label for="" class="control-label">End Time </label>
+                                <input class="form-control" type="time" name="endTime" value="17:00">
+                            </div>
+                            <div class="form-group m-0">
+                                <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>
+                            </div>
+                        </form>
+                    </div>
+                </div>
+                <table class="table table-sm table-striped">
+                    <thead>
+                        <tr>
+                            <th>Day</th>
+                            <th>Start Time</th>
+                            <th>End Time</th>
+                            <th></th>
+                        </tr>
+                    </thead>
+                    <tbody>
+                        @foreach($generalAvailabilities as $ga)
+                        <tr>
+                            <td>{{$ga->day_of_week}}</td>
+                            <td>{{$ga->start_time}}</td>
+                            <td>{{$ga->end_time}}</td>
+                            <td></td>
+                        </tr>
+                        @endforeach
+                    </tbody>
+                </table>
+            </div>
 
-        <div class="card-header px-3 py-2 d-flex align-items-center">
-            <strong class="">
-                <i class="fas fa-user-injured"></i>
-                My Availability
-            </strong>
-            <span class="mx-2 text-secondary">|</span>
-            <div moe wide class="mr-2">
-                <a start show>
-                    Add General Availability
-                </a>
-                <form url="/api/proGeneralAvailability/create">
-                    <input type="hidden" name="proUid" value="{{$pro->uid}}">
-                    <input type="hidden" name="timezone" value="EASTERN">
-                    <div class="form-group">
-                        <?php $daysOfWeek = ['MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY'] ?>
-                        @foreach($daysOfWeek as $dayOfWeek)
-                        <div class="form-check">
-                            <input class="form-check-input" type="checkbox" name="daysOfWeek[{{$loop->index}}]" id="ga_chk_{{$dayOfWeek}}" value="{{$dayOfWeek}}">
-                            <label class="form-check-label" for="ga_chk_{{$dayOfWeek}}">{{$dayOfWeek}}</label>
-                        </div>
+            <div class="card mb-2">
+                <div class="card-header">
+                    Specific Availability
+                </div>
+                <table class="table table-sm table-striped">
+                    <thead>
+                        <tr>
+                            <th>Start Time</th>
+                            <th>End Time</th>
+                            <th></th>
+                        </tr>
+                    </thead>
+                    <tbody>
+                        @foreach($specificAvailabilities as $ga)
+                        <tr>
+                            <td>{{$ga->start_time}}</td>
+                            <td>{{$ga->end_time}}</td>
+                            <td></td>
+                        </tr>
                         @endforeach
-                    </div>
-                    <div class="form-group">
-                        <label for="" class="control-label">Start Time </label>
-                        <input class="form-control" type="time" name="startTimeEst" value="08:00">
-                    </div>
-                    <div class="form-group">
-                        <label for="" class="control-label">End Time </label>
-                        <input class="form-control" type="time" name="endTimeEst" value="17:00">
-                    </div>
-                    <div class="form-group m-0">
-                        <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>
-                    </div>
-                </form>
+                    </tbody>
+                </table>
             </div>
-            <span class="mx-2 text-secondary">|</span>
-            <div moe wide class="mr-2">
-                <a start show>
-                    Add Specific Availability
-                </a>
-                <form url="/api/proSpecificAvailability/create">
-                    <input type="hidden" name="proUid" value="{{$pro->uid}}">
-                    <input type="hidden" name="timezone" value="EASTERN">
-                    <div class="mb-2">
-                        <input type="text" class="form-control form-control-sm" name="title" placeholder="Title">
-                    </div>
-                    <div class="mb-2">
-                        <label for="" class="control-label">Start Date </label>
-                        <input class="form-control" type="date" name="startDate">
-                    </div>
-                    <div class="mb-2">
-                        <label for="" class="control-label">Start Time </label>
-                        <input class="form-control" type="time" name="startTime">
-                    </div>
-                    <div class="mb-2">
-                        <label for="" class="control-label">End Date </label>
-                        <input class="form-control" type="date" name="endDate">
-                    </div>
-                    <div class="mb-2">
-                        <label for="" class="control-label">End Time </label>
-                        <input class="form-control" type="time" name="endTime">
-                    </div>
-                    <div class="form-group m-0">
-                        <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>
-                    </div>
-                </form>
+
+            <div class="card mb-2">
+                <div class="card-header">
+                    Specific Unavailability
+                </div>
+                <table class="table table-sm table-striped">
+                    <thead>
+                        <tr>
+                            <th>Start Time</th>
+                            <th>End Time</th>
+                            <th>Title</th>
+                            <th></th>
+                        </tr>
+                    </thead>
+                    <tbody>
+                        @foreach($specificUnavailabilities as $su)
+                        <tr>
+                            <td>{{$su->start_time}}</td>
+                            <td>{{$su->end_time}}</td>
+                            <td>{{$su->title}}</td>
+                            <td></td>
+                        </tr>
+                        @endforeach
+                    </tbody>
+                </table>
             </div>
+        </div>
+        <div class="col-md-6">
+            <div class="card">
 
-            <span class="mx-2 text-secondary">|</span>
-            <div moe wide class="mr-2">
-                <a start show>
-                    Add Specific Unvailability
-                </a>
-                <form url="/api/proSpecificUnavailability/create">
-                    <input type="hidden" name="proUid" value="{{$pro->uid}}">
-                    <input type="hidden" name="timezone" value="EASTERN">
-                    <div class="mb-2">
-                        <input type="text" class="form-control form-control-sm" name="title" placeholder="Title">
-                    </div>
-                    <div class="mb-2">
-                        <label for="" class="control-label">Start Date </label>
-                        <input class="form-control" type="date" name="startDate">
-                    </div>
-                    <div class="mb-2">
-                        <label for="" class="control-label">Start Time </label>
-                        <input class="form-control" type="time" name="startTime">
-                    </div>
-                    <div class="mb-2">
-                        <label for="" class="control-label">End Date </label>
-                        <input class="form-control" type="date" name="endDate">
+                <div class="card-header px-3 py-2 d-flex align-items-center">
+                    <strong class="">
+                        <i class="fas fa-user-injured"></i>
+                        My Availability
+                    </strong>
+                    <span class="mx-2 text-secondary">|</span>
+                    <div moe wide class="mr-2">
+                        <a start show>
+                            Add Specific Availability
+                        </a>
+                        <form url="/api/proSpecificAvailability/create">
+                            <input type="hidden" name="proUid" value="{{$pro->uid}}">
+                            <input type="hidden" name="timezone" value="EASTERN">
+                            <div class="mb-2">
+                                <input type="text" class="form-control form-control-sm" name="title" placeholder="Title">
+                            </div>
+                            <div class="mb-2">
+                                <label for="" class="control-label">Start Date </label>
+                                <input class="form-control" type="date" name="startDate">
+                            </div>
+                            <div class="mb-2">
+                                <label for="" class="control-label">Start Time </label>
+                                <input class="form-control" type="time" name="startTime">
+                            </div>
+                            <div class="mb-2">
+                                <label for="" class="control-label">End Date </label>
+                                <input class="form-control" type="date" name="endDate">
+                            </div>
+                            <div class="mb-2">
+                                <label for="" class="control-label">End Time </label>
+                                <input class="form-control" type="time" name="endTime">
+                            </div>
+                            <div class="form-group m-0">
+                                <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>
+                            </div>
+                        </form>
                     </div>
-                    <div class="mb-2">
-                        <label for="" class="control-label">End Time </label>
-                        <input class="form-control" type="time" name="endTime">
-                    </div>
-                    <div class="form-group m-0">
-                        <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>
-                    </div>
-                </form>
+
+                    <span class="mx-2 text-secondary">|</span>
+                    <div moe wide class="mr-2">
+                        <a start show>
+                            Add Specific Unvailability
+                        </a>
+                        <form url="/api/proSpecificUnavailability/create">
+                            <input type="hidden" name="proUid" value="{{$pro->uid}}">
+                            <input type="hidden" name="timezone" value="EASTERN">
+                            <div class="mb-2">
+                                <input type="text" class="form-control form-control-sm" name="title" placeholder="Title">
+                            </div>
+                            <div class="mb-2">
+                                <label for="" class="control-label">Start Date </label>
+                                <input class="form-control" type="date" name="startDate">
+                            </div>
+                            <div class="mb-2">
+                                <label for="" class="control-label">Start Time </label>
+                                <input class="form-control" type="time" name="startTime">
+                            </div>
+                            <div class="mb-2">
+                                <label for="" class="control-label">End Date </label>
+                                <input class="form-control" type="date" name="endDate">
+                            </div>
+                            <div class="mb-2">
+                                <label for="" class="control-label">End Time </label>
+                                <input class="form-control" type="time" name="endTime">
+                            </div>
+                            <div class="form-group m-0">
+                                <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>
+                            </div>
+                        </form>
+                    </div>
+                </div>
+                <div class="card-body p-0">
+                    <div id="pro-availability-calendar"></div>
+                </div>
             </div>
         </div>
-        <div class="card-body p-0">
-            <div id="pro-availability-calendar"></div>
-        </div>
     </div>
 </div>
+
 <script>
-     (function() {
+    (function() {
 
         function initAvailabilityCalendar() {
             var calendarEl = document.getElementById('pro-availability-calendar');
@@ -128,4 +241,4 @@
         addMCInitializer('pro-availability-calendar', initAvailabilityCalendar);
     })();
 </script>
-@endsection
+@endsection