Samson Mutunga 2 days ago
parent
commit
ebf186c09f

+ 13 - 0
app/Http/Controllers/AdminController.php

@@ -667,6 +667,19 @@ class AdminController extends Controller
         return $this->pass($user->uid);
     }
 
+    public function userUpdateContactInfo(Request $request, User $user)
+    {
+        $detailJson = $user->detailJson(true);
+        $data = $request->all();
+        unset($data['_token']);
+
+        $newDetailJson = array_merge($detailJson, $data);
+
+        $user->detail_json = json_encode($newDetailJson);
+        $user->save();
+        return $this->pass($user->uid);
+    }
+
     public function abandonedCarts(Request $request){
         $records = GuestData::query();
         $records = $records->whereRaw("detail_json->>'user_id' IS NOT NULL")->whereRaw("detail_json->>'submitted' IS NULL");

+ 34 - 0
resources/views/app/my-account/admin/users/forms/update-contact-info.blade.php

@@ -0,0 +1,34 @@
+<div moe relative>
+    <a start show href="#"><i class="fas fa-edit"></i></a>
+    <form url="{{ route('admin.users.view.update-contact-info', $user) }}" right>
+        @csrf
+        <h4 class="fw-bold mb-4">User Contact Info</h4>
+        <div>
+            <div class="mb-2">
+                <label class="text-sm text-secondary mb-1">Phone</label>
+                <input type="text" name="phoneNumber" class="form-control form-control-sm" value="{{ @$userDetailJson->phoneNumber }}" />
+            </div>
+            <div class="mb-2">
+                <label class="text-sm text-secondary mb-1">Street Address</label>
+                <input type="text" name="street_address" class="form-control form-control-sm" value="{{ @$userDetailJson->street_address }}" />
+            </div>
+            <div class="mb-2">
+                <label class="text-sm text-secondary mb-1">City</label>
+                <input type="text" name="city" class="form-control form-control-sm" value="{{ @$userDetailJson->city }}">
+            </div>
+            <div class="mb-2">
+                <label class="text-sm text-secondary mb-1">State/Province</label>
+                <input type="text" name="state_or_province" class="form-control form-control-sm" value="{{ @$userDetailJson->state_or_province }}">
+            </div>
+            <div class="mb-2">
+                <label class="text-sm text-secondary mb-1">Zip Code/Postal Code</label>
+                <input type="text" name="zip_or_postal_code" class="form-control form-control-sm" value="{{ @$userDetailJson->zip_or_postal_code }}">
+            </div>
+           
+        </div>
+        <div class="d-flex align-items-center mt-3">
+            <button type="button" class="btn py-2 btn-grey border w-100 no-shadow" cancel>Cancel</button>
+            <button class="btn py-2 btn-primary w-100 ms-3" submit>Submit</button>
+        </div>
+    </form>
+</div>

+ 37 - 2
resources/views/app/my-account/admin/users/sub/info/login.blade.php

@@ -1,7 +1,7 @@
 <div class="d-flex align-items-center border-bottom px-3 py-2 mb-0 m-neg-3 bg-light">
     <div class="w-100">
         <div class="row">
-            <div class="col-md-6">
+            <div class="col-md-5">
                 <div class="bg-white p-2 rounded h-100">
                     <div class="row">
                         <div class="col-md-12">
@@ -99,7 +99,7 @@
                     </div>
                 </div>
             </div>
-            <div class="col-md-6">
+            <div class="col-md-4">
                 <div class="bg-white p-2 rounded h-100">
                     <div class="d-flex align-items-center">
                         <h6 class="text-muted text-nowrap mb-0"><b>Google Login</b></h6>
@@ -128,6 +128,41 @@
                     </div>
                 </div>
             </div>
+            <div class="col-md-3">
+                <div class="bg-white rounded p-3 h-100">
+                    <div class="d-flex align-items-center flex-wrap mb-3" style="gap:10px;">
+                        <h6 class="fw-bold text-muted mb-0">Contact Info</h6>
+                        <?php 
+                            $userDetailJson = $user->detailJson();
+                        ?>
+                        <div>
+                            @include('app.my-account.admin.users.forms.update-contact-info')
+                        </div>
+                    </div>                    
+                    <div>
+                        <div class="d-flex flex-wrap mb-2" style="gap:10px;">
+                            <span>Phone #:</span>
+                            <b>{{ @$userDetailJson->phoneNumber }}</b>
+                        </div>
+                        <div class="d-flex flex-wrap mb-2" style="gap:10px;">
+                            <span>Street Address:</span>
+                            <b>{{ @$userDetailJson->street_address }}</b>
+                        </div>
+                        <div class="d-flex flex-wrap mb-2" style="gap:10px;">
+                            <span>City:</span>
+                            <b>{{ @$userDetailJson->city }}</b>
+                        </div>
+                        <div class="d-flex flex-wrap mb-2" style="gap:10px;">
+                            <span>State/Province:</span>
+                            <b>{{ @$userDetailJson->state_or_province }}</b>
+                        </div>
+                        <div class="d-flex flex-wrap mb-2" style="gap:10px;">
+                            <span>Zip Code/Postal Code:</span>
+                            <b>{{ @$userDetailJson->zip_or_postal_code }}</b>
+                        </div>
+                    </div>                    
+                </div>
+            </div>
             <div class="col-md-3 d-none">
                 <div class="bg-white p-2 rounded h-100">
                     <div class="d-flex align-items-center">

+ 1 - 0
routes/web.php

@@ -72,6 +72,7 @@ Route::group(['middleware' => ['ensureUserLoggedIn']], function () {
                 Route::get('messages/{message}/attachments', [AdminController::class, 'userMessageAttachments'])->name('message-attachments');
                 Route::post('/make-admin', [AdminController::class, 'userMakeAdmin'])->name('.make-admin');
                 Route::post('/undo-make-admin', [AdminController::class, 'userUndoMakeAdmin'])->name('.undo-make-admin');
+                Route::post('/update-contact-info', [AdminController::class, 'userUpdateContactInfo'])->name('.update-contact-info');
             });
 
             Route::get('/orders', [AdminController::class, 'orders'])->name('.orders');