Pārlūkot izejas kodu

Merge branch 'master' of https://rav.triplestart.com/TigerPHP/lhr

Peter Muturi 4 gadi atpakaļ
vecāks
revīzija
879478809d

+ 15 - 0
app/Http/Controllers/Controller.php

@@ -24,4 +24,19 @@ class Controller extends BaseController
             ->json();
         return $response;
     }
+    public function pass($data = null) : array
+    {
+        return [
+            'success'=>true,
+            'data'=>$data,
+        ];
+    }
+    
+	public function fail($message) : array
+    {
+        return [
+            'success'=>false,
+            'message'=>$message
+        ];
+    }
 }

+ 22 - 3
app/Http/Controllers/LoginController.php

@@ -39,8 +39,26 @@ class LoginController extends Controller
         return redirect()->to(route('confirm-auth-token'));
     }
 
+    public function resendSmsAuthToken(Request $request){
+        $cellNumber = $request->cookie('current_cell_number');
+
+        $javaResponse = $this->callJava($request, '/potentialPro/createAndSendSmsAuthToken', [
+            'cellNumber'=>$cellNumber
+        ]);
+
+
+        if(!$javaResponse['success']){
+            return $this->fail($javaResponse['message']);
+        }
+
+        return $this->pass();
+
+    }
+
     public function confirmAuthToken(Request $request){
-        return view('confirm-auth-token');
+        $cellNumber = $request->cookie('current_cell_number');
+        $maskedCellNumber = str_pad(substr($cellNumber, -4), strlen($cellNumber), '*', STR_PAD_LEFT);
+        return view('confirm-auth-token',compact('maskedCellNumber'));
     }
 
     public function processConfirmAuthToken(Request $request){
@@ -74,9 +92,10 @@ class LoginController extends Controller
     public function accountSetup(Request $request){
         $cellNumber = $request->cookie('current_cell_number');
         $token = $request->cookie('current_confirmation_token');
-        $potentialPro = PotentialPro::where('cell_number_confirmation_token', $token)->get();
+        $potentialPro = PotentialPro::where('cell_number_confirmation_token', $token)->first();
+        
         if(!$potentialPro){
-            return redirect()->to(route('confirm-password'));
+            return redirect()->to(route('login'));
         }
         return view('account-setup');
     }

+ 49 - 4
resources/views/confirm-auth-token.blade.php

@@ -1,8 +1,8 @@
 @extends('layouts.login')
 @section('content')
 
-<div class="blue-card p-4">
-  <form action="{{route('process-confirm-auth-token')}}"  method="post">
+<div id="confirmAuthTokenComponent" class="blue-card p-4" v-cloak>
+  <form action="{{route('process-confirm-auth-token')}}" method="post">
     <div class="text-center d-flex align-items-center my-3">
       <img src="/img/icon.svg" alt="Logo" height="35">
       <h5 class="font-weight-bold ml-2 mb-0">Confirm Token</h5>
@@ -14,7 +14,7 @@
     <div class="form-group">
       <label>
         <strong>
-          Please enter the confirmation token.
+          Please enter the confirmation token sent to {{ $maskedCellNumber }}.
         </strong>
       </label>
       <input class="form-control" name="confirmation_token" autocomplete="off" autofocus value="{{old('confirmation_token')}}">
@@ -25,6 +25,51 @@
       </div>
     </div>
   </form>
+  <div class="text-center mt-3">
+    <div class="d-flex align-items-center flex-wrap justify-content-center">     
+        <a href="#" class="text-underline" resend-token>
+          <u v-if="!loading">Resend token</u>
+          <u v-else><i class="fas fa-circle-notch fa-spin"></i> Resending...</u>
+        </a>
+      <span class="mx-2 font-weight-bold">OR</span>
+      <a href="{{ route('login') }}"><u>Change phone number</u></a>
+    </div>
+  </div>
+  <div v-if="response" class="text-center">
+    <small v-if="!response.success" class="text-danger"><i class="fas fa-exclamation-triangle"></i> @{{ response.message }}</small>
+    <small v-else class="text-success"><i class="fas fa-check-circle"></i> Confirmation code has been resent!</small>
+  </div>
   <p><small class="text-center d-block text-muted my-3">If you have any questions at all, please contact your Dedicated HR Representative at the phone number or email displayed inside this portal.</small></p>
 </div>
-@endsection
+
+<script>
+  var confirmAuthTokenComponent = new Vue({
+    el: '#confirmAuthTokenComponent',
+    data: {
+      loading: false,
+      response: null
+    },
+    delimiters: ['@[[', ']]'],
+    methods: {
+      initResendConfirmationToken: function() {
+        var self = this;
+        $('[resend-token]').click(function(evt) {
+          evt.preventDefault();
+          if (self.loading) return;
+          self.loading = true;
+          $.post("{{ route('resend-sms-auth-token') }}", {}, function(response) {
+            self.loading = false;
+            self.response = response;
+          }, 'json');
+        });
+      },
+      init: function() {
+        this.initResendConfirmationToken();
+      },
+    },
+    mounted: function() {
+      this.init();
+    }
+  });
+</script>
+@endsection

+ 9 - 0
resources/views/layouts/login.blade.php

@@ -20,6 +20,15 @@
   <script src="{{asset('js/jquery.mask.js')}}"></script>
   <script src="{{ asset('/js/jquery.strengthify.min.js') }}"></script>
   <script src='https://www.google.com/recaptcha/api.js'></script>
+  <script>
+    $(function() {
+      $.ajaxSetup({
+        headers: {
+          'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
+        }
+      });
+    });
+  </script>
 </head>
 
 <body>

+ 1 - 0
routes/web.php

@@ -16,6 +16,7 @@ use Illuminate\Support\Facades\Route;
 
 Route::get('/', [LoginController::class, 'login'])->name('login');
 Route::post('send-sms-auth-token', [LoginController::class, 'sendSmsAuthToken'])->name('send-sms-auth-token');
+Route::post('resend-sms-auth-token', [LoginController::class, 'resendSmsAuthToken'])->name('resend-sms-auth-token');
 
 Route::get('/confirm-auth-token', [LoginController::class, 'confirmAuthToken'])->name('confirm-auth-token');
 Route::post('/process-confirm-auth-token', [LoginController::class, 'processConfirmAuthToken'])->name('process-confirm-auth-token');