Samson Mutunga 3 жил өмнө
parent
commit
986a40abc5

+ 13 - 3
app/Http/Controllers/McpController.php

@@ -177,9 +177,19 @@ class McpController extends Controller
     }
 
     public function client_messages(Request $request)
-    {
-        $clientMessages = ClientSMS::paginate(5);
-        return view('app.mcp.client_messages', compact('clientMessages'));
+    {      
+        $filters = $request->all();
+
+        $clientMessages = ClientSMS::select('client_sms.*')
+        ->join('client', 'client.id', '=', 'client_sms.client_id')
+        ->where('client.mcp_pro_id', $this->performer->pro->id);
+
+        $this->filterMultiQuery($request, $clientMessages, 'client_sms.created_at', 'date_category', 'date_value_1', 'date_value_2');
+        $this->filterSimpleQuery($request, $clientMessages, 'sms_status', 'sms_status');
+
+        $clientMessages = $clientMessages->orderBy('client_sms.created_at', 'DESC');
+        $clientMessages = $clientMessages->paginate(20);
+        return view('app.mcp.client_messages', compact('clientMessages', 'filters'));
     }
 
     public function new_patients_awaiting_visit(Request $request){

+ 9 - 5
resources/views/app/mcp/client_messages.blade.php

@@ -19,8 +19,10 @@
                 <thead class="bg-light">
                     <tr>
                         <th class="px-3 border-0">Date</th>
+                        <th class="px-3 border-0">Folder</th>
                         <th class="px-3 border-0">To</th>
                         <th class="px-3 border-0">From</th>
+                        <th class="px-3 border-0">Client</th>
                         <th class="px-3 border-0">Message</th>
                         <th class="px-3 border-0">Status</th>
                     </tr>
@@ -28,11 +30,13 @@
                 <tbody>
                     @foreach($clientMessages as $clientMessage)
                     <tr>
-                        <td>{{ $clientMessage->created_at }}</td>
-                        <td>{{$clientMessage->to}}</td>
-                        <td>{{$clientMessage->from}}</td>
-                        <td><?= nl2br($clientMessage->body) ?></td>                        
-                        <td>{{-- status --}} - </td>
+                        <td>{{ date('M d, Y h:i A', strtotime($clientMessage->created_at))}}</td>
+                        <td>{{ $clientMessage->incoming_or_outgoing }}</td>
+                        <td>{{$clientMessage->to_number}}</td>
+                        <td>{{$clientMessage->from_number}}</td>
+                        <td>{{ $clientMessage->client->displayName() }}</td>
+                        <td style="width:300px;"><?= nl2br($clientMessage->body) ?></td>                        
+                        <td>{{ $clientMessage->sms_status }} </td>
                     </tr>
                     @endforeach
 

+ 29 - 14
resources/views/app/mcp/client_messages_filters.blade.php

@@ -25,17 +25,17 @@
 	<div v-if="filters.date_category" class="col-md-2">
 		<div class="form-group">
 			<label>&nbsp;</label>
-			<input name="date_value_1" value="{{ $date_value_1 ?? '' }}" type="date" class="form-control input-sm" :placeholder="(filters.date_category === 'BETWEEN' || filters.date_category === 'NOT_BETWEEN') ? 'From' : 'Date'" />
+			<input name="date_value_1" v-model="filters.date_value_1" type="date" class="form-control input-sm" :placeholder="(filters.date_category === 'BETWEEN' || filters.date_category === 'NOT_BETWEEN') ? 'From' : 'Date'" />
 		</div>
 	</div>
 	<div v-if="filters.date_category && (filters.date_category === 'BETWEEN' || filters.date_category === 'NOT_BETWEEN')" class="col-md-2">
 		<div class="form-group">
 			<label>&nbsp;</label>
-			<input name="date_value_2" value="{{ $date_value_2 ?? '' }}" type="date" class="form-control input-sm" placeholder="To" />
+			<input name="date_value_2" v-model="filters.date_value_2" type="date" class="form-control input-sm" placeholder="To" />
 		</div>
 	</div>
 	<!-- TO OR FROM ME -->
-	<div class="col-md-2">
+	<!-- <div class="col-md-2">
 		<div class="form-group">
 			<label>To or From Me:</label>
 			<select name="to_or_from_me" class="form-control input-sm" v-model="filters.to_or_from_me">
@@ -44,14 +44,14 @@
 				<option value="FROM_ME">From Me</option>
 			</select>
 		</div>
-	</div>
+	</div> -->
 	<!-- STATUS -->
 	<div class="col-md-2">
 		<div class="form-group">
 			<label>Status:</label>
-			<select name="status" class="form-control input-sm" v-model="filters.status">
-				<option value="ALL">All</option>
-				<option value="AWAITING_REPLY">AWaiting Reply</option>
+			<select name="sms_status" class="form-control input-sm" v-model="filters.sms_status">
+				<option value="">All</option>
+				<option value="received">Received</option>
 			</select>
 		</div>
 	</div>
@@ -59,12 +59,27 @@
 	<div class="col-md-2">
 		<div class="form-group d-flex">
 			<label>&nbsp;</label>
-			<button type="submit" class="btn btn-primary btn-sm mr-2 mw-100px">Apply Filters</button>
-			<a href="{{ route('mcp.patients') }}" class="btn btn-danger btn-sm text-white mw-100px">Clear Filters</a>
+			<button type="submit" v-on:click.prevent="doSubmit()" class="btn btn-primary btn-sm mr-2 mw-100px">Apply Filters</button>
+			<a v-on:click.prevent="fastLoad('{{route('mcp.client_messages')}}')" href="#" class="btn btn-danger btn-sm text-white mw-100px">Clear Filters</a>
 		</div>
 	</div>
 </form>
 
+<?php
+$loadedFilters = $filters;
+$allFilterKeys = [
+	'date_category',
+	'date_value_1',
+	'date_value_2',
+	'sms_status'
+];
+for ($i=0; $i < count($allFilterKeys); $i++) {
+	if (!isset($loadedFilters[$allFilterKeys[$i]]) || !$loadedFilters[$allFilterKeys[$i]]) {
+		$loadedFilters[$allFilterKeys[$i]] = '';
+	}
+}
+?>
+
 <script>
 	(function() {
 		function init() {
@@ -72,13 +87,13 @@
 				el: '#mcp-client-messages-filters',
 				delimiters: ['@{{', '}}'],
 				data: {
-					filters: {
-						date_category: "<?= $date_category ?? '' ?>",
-						to_or_from_me: "<?= $to_or_from_me ?? '' ?>",
-						status: "<?= $status ?? '' ?>"
-					}
+					filters: <?= json_encode($loadedFilters) ?>
 				},
 				methods: {
+					doSubmit: function() {
+						fastLoad('{{ route("mcp.client_messages") }}?' + $('#mcp-client-messages-filters').serialize());
+						return false;
+					},
 					init: function() {
 
 					}