Peter Muturi há 7 meses atrás
pai
commit
a15c631b88

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

@@ -523,6 +523,29 @@ class AdminController extends Controller
     return $this->pass();    
   }
 
+  public function emailAttachment(Request $request){
+    $params = [
+        'to' => [
+            ['email' => $request->get('toEmail'), 'name' => $request->get('toName')]
+        ],
+        'template' => 'attachment',
+        'subject' => $request->get('subject'),
+        'template_params' => [
+            'toEmail' => $request->get('toEmail'),
+            'toName' => $request->get('toName'),
+            'message_body' => $request->get('message')
+        ],
+        'file' => $request->get('attachmentPath')
+    ];
+
+    try{
+        $this->sendEmailNotification($params);
+        return $this->pass();
+    }catch(Exception $e){
+        return $this->fail($e->getMessage());
+    }
+  }
+
   public function emailReport(Request $request, StoreOrder $order){
     $results_attachment = $order->getDetailJsonValue('results_attachment');
     $params = [

+ 17 - 3
resources/views/app/my-account/admin/orders/forms/email-attachment.blade.php

@@ -1,12 +1,26 @@
 <div moe wide>
     <a start show href="#">{{ $title }}</a>
-    <form url="{{ route('admin.orders.view.email-report', $order) }}">
+    <form url="{{ route('admin.email-attachment') }}">
+        @csrf
+        <input type="hidden" name="attachmentPath" value="{{ $attachmentPath }}" />
+        <div class="mb-2">
+            <label class="fw-bold mb-1">Email Address:</label>
+            <input name="toEmail" class="form-control form-control-sm" value="{{ $toEmail }}" required />
+        </div>
+        <div class="mb-2">
+            <label class="fw-bold mb-1">Name:</label>
+            <input name="toName" class="form-control form-control-sm" value="{{ $toName }}" required />
+        </div>
+        <div class="mb-2">
+            <label class="fw-bold mb-1">Subject:</label>
+            <input name="subject" class="form-control form-control-sm" value="{{ $subject }}" required />
+        </div>
         <div class="mb-2">
             <label class="fw-bold mb-1">Message</label>
-            <textarea name="message" class="form-control form-control-sm" accept="application/pdf" style="min-height:100px;"></textarea>
+            <textarea name="message" class="form-control form-control-sm"></textarea>
         </div>
         <div class="mb-2">
-            <span class="me-1">Report: <i class="fas fa-paperclip fa-fw"></i> <a href="{{ $results_attachment['attachmentAccessTokenUrl'] }}" target="_blank">{{ $results_attachment['orginalFileName'] }}</a></span>
+            <span class="me-1">Attachment: <i class="fas fa-paperclip fa-fw"></i> <a href="{{ $attachmentUrl }}" target="_blank">{{ $attachmentName }}</a></span>
         </div>    
         <div>
             <button submit class="btn btn-sm btn-primary me-2">Email</button>

+ 23 - 0
resources/views/app/my-account/admin/orders/forms/upload-attachment.blade.php

@@ -0,0 +1,23 @@
+<style>
+.mcp-theme-1 .uploadAttachmentFileFile input[type="file"]::after {
+    display: none;
+}
+</style>
+<div moe wide>
+    @if(@$edit)
+    <a start show href="#"><i class="fas fa-pencil-alt"></i></a>
+    @else
+    <a start show href="#">{{ $title }}</a>
+    @endif
+    <form url="{{ route('admin.orders.view.upload-file', $order) }}" class="uploadAttachmentFileFile">
+        <input type="hidden" name="file_name" value="{{ $fileName }}" />
+        <div class="mb-2">
+            <label class="fw-bold mb-1">Attachment</label>
+            <input type="file" name="{{ $fileName }}" class="form-control form-control-sm" accept="application/pdf" />
+        </div>   
+        <div>
+            <button submit class="btn btn-sm btn-primary me-2">Upload</button>
+            <button cancel class="btn btn-sm btn-default border">Cancel</button>
+        </div>
+    </form>
+</div>

+ 30 - 1
resources/views/app/my-account/admin/orders/sub/dashboard.blade.php

@@ -54,8 +54,37 @@
                 <div class="card-header">
                     <div class="d-flex align-items-center justify-content-between">
                         <h5 class="mb-0 fw-bold">Partner</h5>
-                        <div>
+                        <div class="d-flex align-items-center">
+                            <div>
+                                <?php
+                                    $partner_results_attachment = $order->getDetailJsonValue('partner_results_attachment');
+                                ?>
+                                @if($partner_results_attachment)
+                                    <span class="me-1">Partner Results: <i class="fas fa-paperclip fa-fw"></i>
+                                        <a href="{{ $partner_results_attachment['attachmentAccessTokenUrl'] . '?fileType=partner_results_attachment' }}" target="_blank">{{ $partner_results_attachment['orginalFileName'] }}</a>
+                                    </span>
+                                @endif
+                                @include('app.my-account.admin.orders.forms.upload-attachment', [
+                                    'title' => 'Upload Partner Results',
+                                    'fileName' => 'partner_results_attachment',
+                                    'edit' => $partner_results_attachment ? true:false
+                                ])
+                            </div>
+                            @if($partner_results_attachment)
+                                <span class="text-muted mx-1">|</span>
 
+                                <div>
+                                    @include('app.my-account.admin.orders.forms.email-attachment', [
+                                        'title' => 'Email Results',
+                                        'toEmail' => $order->getPartnerEmail(),
+                                        'toName' => '',
+                                        'subject' => 'Test Results',
+                                        'attachmentUrl' => $partner_results_attachment['attachmentAccessTokenUrl'] . '?fileType=partner_results_attachment',
+                                        'attachmentName' => $partner_results_attachment['orginalFileName'],
+                                        'attachmentPath' => $partner_results_attachment['path']
+                                    ])
+                                </div>
+                            @endif
                         </div>
                     </div>
                 </div>

+ 14 - 0
resources/views/emails/templates/attachment.blade.php

@@ -0,0 +1,14 @@
+<?php
+    $appUrl = config('app.url');
+?>
+
+@extends('emails.layout')
+@section('salutation')
+    Hi, {{$toName}}!
+@endsection
+
+@section('content')
+    <p class="f-fallback" style="color: #000; font-size: 15px; padding: 0 15px; line-height: 24px; margin: .4em 0 0.1875em;">
+    <?= nl2br($message_body) ?>
+    </p>
+@endsection

+ 1 - 0
routes/web.php

@@ -96,6 +96,7 @@ Route::group(['middleware' => ['ensureUserLoggedIn']], function () {
 
             Route::get('/sessions', [AdminController::class, 'sessions'])->name('.sessions');
             Route::get('/user-events', [AdminController::class, 'userEvents'])->name('.user-events');
+            Route::post('/email-attachment', [AdminController::class, 'emailAttachment'])->name('.email-attachment');
         });
 
         Route::get('/search-users', [AppController::class, 'searchUsers'])->name('search-users');