fix forgetpass ui, register ui, add loader

This commit is contained in:
Amir Hamzan
2021-12-20 17:02:22 +08:00
parent 84b180fbcb
commit b1715f2141
10 changed files with 594 additions and 409 deletions
@@ -7,13 +7,15 @@
<h6 style="text-align: center; margin-bottom: 10%;">Lupa Kata Laluan</h6>
@if (session('status'))
{{-- <div class="alert alert-success" role="alert">
{{ session('status') }}
</div> --}}
<script>
var status = "{{ session('status') }}";
$.notify({
icon: 'far fa-check-circle fa-2x',
newest_on_top: true,
message: "<strong class='text-center' style='font-size:15px;'>" + status + "</strong>"
message: "<strong class='text-center' style='font-size:15px; color: #ffff;'>" + status + "</strong>"
}, {
type: 'success',
allow_dismiss: false,
@@ -30,6 +32,32 @@
</script>
@endif
@if (session('info'))
{{-- <div class="alert alert-info" role="alert">
{{ session('info') }}
</div> --}}
<script>
var status = "{{ session('info') }}";
$.notify({
icon: 'fas fa-info fa-2x',
newest_on_top: true,
message: "<strong style='font-size:15px;'>" + status + "</strong>"
}, {
type: 'info',
allow_dismiss: false,
placement: {
align: 'center',
from: 'bottom'
},
animate: {
enter: 'animate__animated animate__bounce',
exit: 'animate__animated animate__bounceOutDown'
}
});
</script>
@endif
<form role="form" method="POST" action="{{ route('password.email') }}">
@csrf
<p>Sila masukkan emel</p>
+67 -56
View File
@@ -1,62 +1,73 @@
@extends('layouts.app', ['class' => 'bg-default'])
@extends('includes.login.index')
@section('content')
@include('layouts.headers.guest')
<div class="container mt--8 pb-5">
<div class="row justify-content-center">
<div class="col-lg-5 col-md-7">
<div class="card bg-secondary shadow border-0">
<div class="card-body px-lg-5 py-lg-5">
<div class="text-center text-muted mb-4">
<small>{{ __('Reset Password') }}</small>
</div>
<form role="form" method="POST" action="{{ route('password.update') }}">
@csrf
<input type="hidden" name="token" value="{{ $token }}">
<h6 style="text-align: center; margin-bottom: 10%;">Tetap Semula Kata Laluan</h6>
<div class="form-group{{ $errors->has('email') ? ' has-danger' : '' }} mb-3">
<div class="input-group input-group-alternative">
<div class="input-group-prepend">
<span class="input-group-text"><i class="ni ni-email-83"></i></span>
</div>
<input class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" placeholder="{{ __('Email') }}" type="email" name="email" value="{{ $email ?? old('email') }}" required autofocus>
</div>
@if ($errors->has('email'))
<span class="invalid-feedback" role="alert">
<strong>{{ $errors->first('email') }}</strong>
</span>
@endif
</div>
<div class="form-group{{ $errors->has('password') ? ' has-danger' : '' }}">
<div class="input-group input-group-alternative">
<div class="input-group-prepend">
<span class="input-group-text"><i class="ni ni-lock-circle-open"></i></span>
</div>
<input class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" name="password" placeholder="{{ __('Password') }}" type="password" required>
</div>
@if ($errors->has('password'))
<span class="invalid-feedback" role="alert">
<strong>{{ $errors->first('password') }}</strong>
</span>
@endif
</div>
<div class="form-group">
<div class="input-group input-group-alternative">
<div class="input-group-prepend">
<span class="input-group-text"><i class="ni ni-lock-circle-open"></i></span>
</div>
<input class="form-control" placeholder="{{ __('Confirm Password') }}" type="password" name="password_confirmation" required>
</div>
</div>
<div class="text-center">
<button type="submit" class="btn btn-primary my-4">{{ __('Reset Password') }}</button>
</div>
</form>
</div>
</div>
</div>
<form role="form" method="POST" action="{{ route('password.update') }}">
@csrf
<input type="hidden" name="token" value="{{ $token }}">
<div class="input-group input-group-outline my-3 bg-light {{ $errors->has('email') ? ' has-danger' : '' }} mb-3">
<input class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" placeholder="{{ __('Email') }}" type="email" name="email" value="{{ $email ?? old('email') }}" required autofocus readonly>
</div>
@if ($errors->has('email'))
<span class="invalid-feedback" role="alert">
<strong>{{ $errors->first('email') }}</strong>
</span>
@endif
<div class="input-group input-group-outline {{ $errors->has('password') ? ' has-danger' : '' }}">
<input id="password" onKeyUp="checkPasswordStrength();" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" name="password" placeholder="{{ __('Password') }}" type="password" required>
</div>
@if ($errors->has('password'))
<span class="invalid-feedback" role="alert">
<strong>{{ $errors->first('password') }}</strong>
</span>
@endif
<div class="text-muted font-italic mb-3">
<small>{{ __('password strength') }}: <span class="text-muted font-weight-700" id="password-strength-status">none</span></small>
</div>
<div class="input-group input-group-outline my-3">
<div class="input-group input-group-alternative">
<input class="form-control" placeholder="{{ __('Confirm Password') }}" type="password" name="password_confirmation" required>
</div>
</div>
@endsection
<div class="text-center">
<button type="submit" class="btn bg-gradient-dark my-4" style="background: #4A4E59;">{{ __('Tetap Kata Laluan') }}</button>
</div>
</form>
<script>
function checkPasswordStrength() {
var number = /([0-9])/;
var alphabets = /([a-zA-Z])/;
var special_characters = /([~,!,@,#,$,%,^,&,*,-,_,+,=,?,>,<])/;
if ($('#password').val().length > 0 && $('#password').val().length < 6) {
$('#password-strength-status').removeClass();
$('#password-strength-status').addClass('text-danger font-weight-700');
$('#password-strength-status').html("Weak (should be atleast 6 characters.)");
} else if ($('#password').val().length == 0) {
$('#password-strength-status').removeClass();
$('#password-strength-status').addClass('text-muted font-weight-700');
$('#password-strength-status').html("None");
} else {
if ($('#password').val().match(number) && $('#password').val().match(alphabets) && $('#password').val().match(special_characters)) {
$('#password-strength-status').removeClass();
$('#password-strength-status').addClass('text-success font-weight-700');
$('#password-strength-status').html("Strong");
} else {
$('#password-strength-status').removeClass();
$('#password-strength-status').addClass('text-yellow font-weight-700');
$('#password-strength-status').html("Medium (should include alphabets, numbers and special characters.)");
}
}
}
</script>
@endsection
@@ -0,0 +1,62 @@
@extends('layouts.app', ['class' => 'bg-default'])
@section('content')
@include('layouts.headers.guest')
<div class="container mt--8 pb-5">
<div class="row justify-content-center">
<div class="col-lg-5 col-md-7">
<div class="card bg-secondary shadow border-0">
<div class="card-body px-lg-5 py-lg-5">
<div class="text-center text-muted mb-4">
<small>{{ __('Reset Password') }}</small>
</div>
<form role="form" method="POST" action="{{ route('password.update') }}">
@csrf
<input type="hidden" name="token" value="{{ $token }}">
<div class="form-group{{ $errors->has('email') ? ' has-danger' : '' }} mb-3">
<div class="input-group input-group-alternative">
<div class="input-group-prepend">
<span class="input-group-text"><i class="ni ni-email-83"></i></span>
</div>
<input class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" placeholder="{{ __('Email') }}" type="email" name="email" value="{{ $email ?? old('email') }}" required autofocus>
</div>
@if ($errors->has('email'))
<span class="invalid-feedback" role="alert">
<strong>{{ $errors->first('email') }}</strong>
</span>
@endif
</div>
<div class="form-group{{ $errors->has('password') ? ' has-danger' : '' }}">
<div class="input-group input-group-alternative">
<div class="input-group-prepend">
<span class="input-group-text"><i class="ni ni-lock-circle-open"></i></span>
</div>
<input class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" name="password" placeholder="{{ __('Password') }}" type="password" required>
</div>
@if ($errors->has('password'))
<span class="invalid-feedback" role="alert">
<strong>{{ $errors->first('password') }}</strong>
</span>
@endif
</div>
<div class="form-group">
<div class="input-group input-group-alternative">
<div class="input-group-prepend">
<span class="input-group-text"><i class="ni ni-lock-circle-open"></i></span>
</div>
<input class="form-control" placeholder="{{ __('Confirm Password') }}" type="password" name="password_confirmation" required>
</div>
</div>
<div class="text-center">
<button type="submit" class="btn btn-primary my-4">{{ __('Reset Password') }}</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection
@@ -14,35 +14,78 @@
.text-primary {
color: #4A4E59 !important;
}
.portalloader {
/* display: none;
position: fixed;
top: 0;
left: 0;
background: white;
height: 100%;
width: 100%;
display: flex;
justify-content: center;
align-items: center;
z-index: 100000;
opacity: 0.8; */
/* display: none; */
position: fixed;
background: white;
height: 100%;
width: 100%;
justify-content: center;
align-items: center;
z-index: 100000;
opacity: 0.8;
display: flex;
}
</style>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Fonts and icons -->
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700,900|Roboto+Slab:400,700" />
<!-- Nucleo Icons -->
<link href="{{ asset('css/nucleo-icons.css') }}" rel="stylesheet">
<link href="{{ asset('css/nucleo-svg.css') }}" rel="stylesheet">
<link href="{{ asset('argon') }}/img/brand/ARRAHN1.png" rel="icon" type="image/png">
<!-- Material Icons -->
<link href="https://fonts.googleapis.com/icon?family=Material+Icons+Round" rel="stylesheet">
<!-- CSS Files -->
<link href="{{ asset('css/material-kit-login.css') }}" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700,900|Roboto+Slab:400,700" />
<script src="{{ asset('argon') }}/vendor/jquery/dist/jquery.min.js"></script>
<link href="{{ asset('css/nucleo-icons.css') }}" rel="stylesheet">
<link href="{{ asset('css/nucleo-svg.css') }}" rel="stylesheet">
<script src="https://kit.fontawesome.com/42d5adcbca.js" crossorigin="anonymous"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.11.3/css/dataTables.bootstrap4.min.css" />
<script src="{{ asset('argon') }}/vendor/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
<script src="{{ asset('argon') }}/js/ifvisible.js"></script>
<script src="{{ asset('argon') }}/js/jquery.backDetect.js"></script>
<script src="//cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script type="text/javascript" src="{{ asset('argon') }}/js/main.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/1.11.3/js/jquery.dataTables.min.js"></script>
<script src="{{ asset('argon') }}/js/bootstrap-notify.js"></script>
<link href="{{ asset('css/material-kit-login.css') }}" rel="stylesheet">
</head>
<title>Daftar Akaun | Customer Portal</title>
<body class="sign-in-basic">
<div class="page-header align-items-start min-vh-100" style="background-image: url('/argon/login/backg4_x2.jpg');" loading="lazy">
<span class="mask bg-gradient-dark opacity-6"></span>
<div class="container my-auto mx-auto">
<div class="container my-auto">
<div class="row">
<div class="col-lg-10 col-md-12 col-12 mx-auto mt-5">
<div class="col-lg-4 col-md-8 col-12 mx-auto">
<div class="card z-index-0 fadeIn3 fadeInBottom">
<div class="card-header p-0 position-relative mt-n4 mx-3 z-index-2">
@@ -51,21 +94,20 @@
</div>
</div>
<div class="card-body">
<div class="row">
<div class="col-lg-5">
<div class="row justify-content-center">
<div class="col-lg-12">
<h3 class="mt-2 mb-4" style="text-align: center;">Daftar Akaun</h3>
<h6 class="mt-2 mb-4" style="text-align: center;">Daftar Akaun</h6>
<p>Sila isi nombor OTP yang telah di hantar ke nombor telefon bimbit anda.</p>
{{-- <form action="#" method="post" enctype="multipart/form-data" class="login-form" novalidate="novalidate"> --}}
@csrf
<div class="input-group input-group-outline my-3 {{ $errors->has('otp') ? ' has-danger' : '' }}">
<div class="input-group input-group-outline mt-3 {{ $errors->has('otp') ? ' has-danger' : '' }}">
<input placeholder="One-Time-Password" class="form-control{{ $errors->has('otp') ? ' is-invalid' : '' }}" type="text" name="otp" value="{{ old('otp') }}" id="login-otp" required autofocus aria-required="true">
</div>
<span id="spanotp" class="text-danger" role="alert">
<small><strong id="errorotp"></strong></small>
</span>
<div class="input-group input-group-outline mb-3 {{ $errors->has('icno') ? ' has-danger' : '' }}">
<div class="input-group input-group-outline mt-3 {{ $errors->has('icno') ? ' has-danger' : '' }}">
<input type="text" placeholder="Nombor Kad Pengenalan" class="form-control{{ $errors->has('icno') ? ' is-invalid' : '' }}" id="login-icno" name="icno" required aria-required="true">
</div>
@@ -75,168 +117,59 @@
<div class="row">
<div class="text-center mt-3">
<button id="seterusbtn" class="btn btn-secondary login pull-right" type="button" onclick="checkpelanggan();" style="background: #4A4E59;">Seterusnya</button>
<div class="text-center my-4">
<!-- <button type="button" class="btn bg-gradient-primary" data-toggle="modal" data-target="#exampleModal">modal</button> -->
<button id="seterusbtn" class="btn btn-secondary login pull-right" type="button" data-toggle="modal" data-target="#exampleModal" onclick="checkpelanggan();" style="background: #4A4E59;">Seterusnya</button>
</div>
</div>
<br>
<div class="row" style="text-align: center;">
<div class="col-sm-12 col-xs-12 forgetpassword">
<div class="forgot-password">
<a href="{{ route('login') }}">Log-Masuk</a>
</a> |@if (Route::has('password.request')) <a href="{{ route('password.request') }}">
Lupa Katalaluan
</a>@endif
</div>
</div>
<div class="col-xl-12 mt-xl-10 col-sm-12 mt-sm-0">
<div style="font-size: 10px; margin-top: 5%;"><br><br>Paparan terbaik menggunakan Mozilla Firefox, Google Chrome & Internet Explorer 9.0 ke atas dengan resolusi 1920 x 1080</div>
</div>
</div>
{{-- </form> --}}
<br>
<p class="mt-4 text-sm text-center">
<a href="{{ route('login') }}">Log-Masuk</a>
<a href="#" class="text-dark text-gradient font-weight-bold"> | </a>
<a href="{{ route('password.request') }}">Lupa Kata Laluan</a>
</p>
</div>
<div class="col-lg-6 mt-lg-0 mt-5 ps-lg-0 ps-0 ms-auto">
<!-- <div id="logobg" class="visible" style="text-align: center;">
<img src="{{ asset('argon') }}/login/logo_arrahn_baru.png" style="width: 100px; height: 100px;">
</div> -->
<div id="makpel" class="invisible">
<div class="my-auto mx-auto">
<h3 class="mt-2 mb-4" style="text-align: center;">Maklumat Pelanggan</h3>
</div>
@if (Session::has('custdetail'))
<?php $customerdetails = Session::get('custdetail'); ?>
@endif
<form method="GET" action="{{ route('register') }}">
{{-- @csrf --}}
<div class="card-body p-0 my-3">
<div class="row">
<div class="col-md-12">
<div class="input-group input-group-static mb-4">
<label for="name">{{ __('Nama') }}</label>
<input autocomplete="off" type="text" name="name" class="input-group-outline form-control @error('name') is-invalid @enderror" value="{{ Session::has('custdetail') ? $customerdetails[0]['nama'] : old('name') }}" readonly>
@error('name')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="col-md-6">
<div class="input-group input-group-static mb-4">
<label for="icno">{{ __('No IC') }}</label>
<input autocomplete="off" type="text" name="icno" class="input-group-outline form-control @error('icno') is-invalid @enderror" value="{{ Session::has('custdetail') ? $customerdetails[0]['kpbaru'] : old('icno') }}" readonly>
@error('icno')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="col-md-6 ps-md-2">
<div class="input-group input-group-static mb-4">
<label for="notel">{{ __('No. Tel') }}</label>
<input autocomplete="off" type="text" name="notel" class="input-group-outline form-control" value="{{ Session::has('custdetail') ? $customerdetails[0]['telefon'] : old('notel') }}" disabled>
</div>
</div>
<div class="form-group mb-0 mt-md-0">
<div class="input-group input-group-static mb-4">
<label for="alamat">{{ __('Alamat') }}</label>
@php
// $koddaerah = Http::get(config('api.url') .'/api/daerah/' .$customerdetails[0]['koddaerah'] )->json();
// $kodnegeri = Http::get(config('api.url') .'/api/negeri/' .$customerdetails[0]['kodnegeri'] )->json();
@endphp
<textarea name="alamat" class="form-control input-group-outline" rows="2" disabled>{{ Session::has('custdetail') ? $customerdetails[0]['alamat1'] . ' ' . $customerdetails[0]['alamat2'] : old('alamat') }}
</textarea>
</div>
</div>
<div class="col-md-4">
<div class="input-group input-group-static mb-4">
<label for="poskod">{{ __('Poskod') }}</label>
<input autocomplete="off" type="text" name="poskod" class="input-group-outline form-control @error('poskod') is-invalid @enderror" value="{{ Session::has('custdetail') ? $customerdetails[0]['poskod'] : old('poskod') }}" disabled>
@error('poskod')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="col-md-8">
<div class="input-group input-group-static mb-4">
<label for="namadaerah">{{ __('Daerah') }}</label>
<input autocomplete="off" type="text" name="namadaerah" class=" input-group-outline form-control" value="{{ Session::has('custdetail') ? $koddaerah['namadaerah'] : old('namadaerah') }}" disabled>
</div>
</div>
<div class="col-md-12">
<div class="input-group input-group-static mb-4">
<label for="negeri">{{ __('Negeri') }}</label>
<input autocomplete="off" type="text" name="negeri" class="input-group-outline form-control @error('negeri') is-invalid @enderror" value="{{ Session::has('custdetail') ? $kodnegeri['negeri'] : old('negeri') }}" disabled>
@error('negeri')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<span class="text-danger text-xl-center font-weight-bold"><small>*Diminta untuk semak maklumat pelanggan terlebih dahulu!</small></span><br>
<div class="row">
<div class="col-6" style="text-align: center;">
<button id="betulbtn" type="submit" class="btn btn-success mt-2">Betul</button>
</div>
<div class="col-6" style="text-align: center;">
<button type="button" class="btn btn-danger mt-2" onclick="backfunc()">Salah</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="footer bottom-0 py-2 w-100">
<div class="container">
<div class="row align-items-center">
<div class="col-12 my-auto">
<div class="text-sm text-white text-lg-start" style="text-align: center !important;">
@2021, Copyright Koperasi Permodalan Kelantan Berhad
</div>
</div>
</div>
<footer class="footer position-absolute bottom-2 py-2 w-100">
<div class="container">
<div class="row align-items-center justify-content-lg-between">
<div class="col-12 col-md-6 my-auto">
<div class="copyright text-center text-sm text-white text-lg-start">
@2021, Copyright Koperasi Permodalan Kelantan Berhad
</div>
</div>
<div class="col-12 col-md-6">
<ul class="nav nav-footer justify-content-center justify-content-lg-end">
<li class="nav-item">
<a href="#" class="nav-link text-white">About Us</a>
</li>
<li class="nav-item">
<a href="#" class="nav-link text-white">Contact Us</a>
</li>
</ul>
</div>
</div>
</footer>
</div>
</footer>
<div class="portalloader">
<img src="{{ asset('argon/img/brand/bluespinner.gif') }}" alt="loader_photo">
</div>
<div id="modal-loading" name="myModal" class="modalloading modal fade" role="dialog" style="display:none">
@@ -246,156 +179,7 @@
</div>
</div>
<script>
let api_url = "{{ config('api.url') }}";
function checkpelanggan() {
var otp_verify = $('#login-otp').val();
var otp_icno = $('#login-icno').val();
var boolotp = false;
var boolicno = false;
if (otp_verify == null || otp_verify == '') {
$('#errorotp').text('Sila Isi Nombor OTP!');
$('#spanotp').addClass('visible');
$('#spanotp').removeClass('invisible');
boolotp = true;
} else {
$('#errorotp').text('');
$('#spanotp').addClass('invisible');
$('#spanotp').removeClass('visible');
boolotp = false;
}
if (otp_icno == null || otp_icno == '') {
$('#erroricno').text('Sila Isi No Kad Pengenalan Anda!');
$('#spanic').addClass('visible');
$('#spanic').removeClass('invisible');
boolicno = true;
} else {
$('#erroricno').text('');
$('#spanic').addClass('invisible');
$('#spanic').removeClass('visible');
boolicno = false;
}
if (boolotp === false && boolicno === false) {
$.ajax({
url: api_url + '/api/otp/check/' + otp_verify,
method: 'GET',
success: function(data) {
if (data.length > 0) {
console.log(data[0].nokp);
$.ajax({
url: api_url + '/api/customers/' + data[0].nokp,
method: 'GET',
success: function(data) {
$('input[name="name"]').val(data.nama);
$('input[name="icno"]').val(data.kpbaru);
$('input[name="notel"]').val(data.telefon);
$('input[name="poskod"]').val(data.poskod);
$('textarea[name="alamat"]').val(data.alamat1);
$.ajax({
url: api_url + '/api/daerah/' + data.koddaerah,
method: 'GET',
success: function(data) {
console.log(data);
$('input[name="namadaerah"]').val(data.namadaerah);
}
});
$.ajax({
url: api_url + '/api/negeri/' + data.kodnegeri,
method: 'GET',
success: function(data) {
console.log(data);
$('input[name="negeri"]').val(data.negeri);
}
});
$('#spanic').addClass('invisible');
$('#spanic').removeClass('visible');
$('#spanic').addClass('invisible');
$('#spanic').removeClass('visible');
$("#seterusbtn").prop("disabled", true);
$('#logobg').addClass('invisible');
$('#logobg').removeClass('visible');
$('#makpel').addClass('visible');
$('#makpel').removeClass('invisible');
}
});
} else {
$.notify({
icon: 'fas fa-exclamation-triangle fa-2x',
newest_on_top: true,
message: "<strong style='font-size:15px;text-align:center;margin-left:100px;'>Pelanggan tidak membuat sebarang login!</strong>"
}, {
type: 'danger',
allow_dismiss: false,
placement: {
align: 'center',
from: 'bottom'
},
animate: {
enter: 'animate__animated animate__bounce',
exit: 'animate__animated animate__bounceOutDown'
}
});
}
}
});
}
}
function backfunc() {
$('#makpel').addClass('invisible');
$('#makpel').removeClass('visible');
$('#logobg').addClass('visible');
$('#logobg').removeClass('invisible');
$("#seterusbtn").prop("disabled", false);
}
// $('body').on('click', '.loading', function() {
// loading();
// });
$(function() {
$('.login-form').submit(function() {
if ($(this).valid()) {
//
} else {
loading_close();
}
});
});
var slideIndex = 0;
// showSlides();
// function showSlides() {
// var i;
// var slides = document.getElementsByClassName("mySlides");
// for (i = 0; i < slides.length; i++) {
// slides[i].style.display = "none";
// }
// slideIndex++;
// if (slideIndex > slides.length) {
// slideIndex = 1
// }
// slides[slideIndex - 1].style.display = "block";
// setTimeout(showSlides, 10000); // Change image every 2 seconds
// }
</script>
<!-- END : LOGIN PAGE 5-2 -->
<!--[if lt IE 9]>
<script src="assets/global/plugins/respond.min.js"></script>
@@ -403,7 +187,284 @@
<![endif]-->
</div>
<div class="modal fade" id="seterusnyaModal" tabindex="-1" aria-labelledby="seterusnyaModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content justify-content-center">
<div class="modal-header" style="text-align: center;">
<h5 class="modal-title" id="seterusnyaModalLabel">Maklumat Pelanggan</h5>
</div>
<div class="modal-body">
<p class="text-danger">*Anda diminta untuk menyemak maklumat dibawah.</p>
<div>
@if (Session::has('custdetail'))
<?php $customerdetails = Session::get('custdetail'); ?>
@endif
<form method="GET" action="{{ route('register') }}">
{{-- @csrf --}}
<div class="card-body p-0 my-3">
<div class="row">
<div class="col-md-12">
<div class="input-group input-group-static mb-4">
<label for="name">{{ __('Nama') }}</label>
<input autocomplete="off" type="text" name="name" class="input-group-outline form-control @error('name') is-invalid @enderror" value="{{ Session::has('custdetail') ? $customerdetails[0]['nama'] : old('name') }}" readonly>
@error('name')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="col-md-6">
<div class="input-group input-group-static mb-4">
<label for="icno">{{ __('No IC') }}</label>
<input autocomplete="off" type="text" name="icno" class="input-group-outline form-control @error('icno') is-invalid @enderror" value="{{ Session::has('custdetail') ? $customerdetails[0]['kpbaru'] : old('icno') }}" readonly>
@error('icno')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="col-md-6 ps-md-2">
<div class="input-group input-group-static mb-4">
<label for="notel">{{ __('No. Tel') }}</label>
<input autocomplete="off" type="text" name="notel" class="input-group-outline form-control" value="{{ Session::has('custdetail') ? $customerdetails[0]['telefon'] : old('notel') }}" disabled>
</div>
</div>
<div class="form-group mb-0 mt-md-0">
<div class="input-group input-group-static mb-4">
<label for="alamat">{{ __('Alamat') }}</label>
@php
// $koddaerah = Http::get(config('api.url') .'/api/daerah/' .$customerdetails[0]['koddaerah'] )->json();
// $kodnegeri = Http::get(config('api.url') .'/api/negeri/' .$customerdetails[0]['kodnegeri'] )->json();
@endphp
<textarea name="alamat" class="form-control input-group-outline" rows="2" disabled>{{ Session::has('custdetail') ? $customerdetails[0]['alamat1'] . ' ' . $customerdetails[0]['alamat2'] : old('alamat') }}
</textarea>
</div>
</div>
<div class="col-md-4">
<div class="input-group input-group-static mb-4">
<label for="poskod">{{ __('Poskod') }}</label>
<input autocomplete="off" type="text" name="poskod" class="input-group-outline form-control @error('poskod') is-invalid @enderror" value="{{ Session::has('custdetail') ? $customerdetails[0]['poskod'] : old('poskod') }}" disabled>
@error('poskod')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="col-md-8">
<div class="input-group input-group-static mb-4">
<label for="namadaerah">{{ __('Daerah') }}</label>
<input autocomplete="off" type="text" name="namadaerah" class=" input-group-outline form-control" value="{{ Session::has('custdetail') ? $koddaerah['namadaerah'] : old('namadaerah') }}" disabled>
</div>
</div>
<div class="col-md-12">
<div class="input-group input-group-static mb-4">
<label for="negeri">{{ __('Negeri') }}</label>
<input autocomplete="off" type="text" name="negeri" class="input-group-outline form-control @error('negeri') is-invalid @enderror" value="{{ Session::has('custdetail') ? $kodnegeri['negeri'] : old('negeri') }}" disabled>
@error('negeri')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<!-- <span class="text-danger text-xl-center font-weight-bold"><small>*Diminta untuk semak maklumat pelanggan terlebih dahulu!</small></span><br> -->
</div>
<div class="modal-footer justify-content-between">
<!-- <button type="button" class="btn bg-gradient-dark mb-0" data-dismiss="modal">Close</button> -->
<button type="button" class="btn btn-danger mb-0" onclick="backfunc()" data-dismiss="modal">Salah</button>
<!-- <button type="button" class="btn bg-gradient-primary mb-0">Save changes</button> -->
<button id="betulbtn" type="submit" class="btn btn-success mb-0">Betul</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<script>
$(function() {
setTimeout(() => {
$(".portalloader").fadeOut(300);
}, 300)
})
let api_url = "{{ config('api.url') }}";
function checkpelanggan() {
var otp_verify = $('#login-otp').val();
var otp_icno = $('#login-icno').val();
var boolotp = false;
var boolicno = false;
if (otp_verify == null || otp_verify == '') {
$('#errorotp').text('Sila Isi Nombor OTP!');
$('#spanotp').addClass('visible');
$('#spanotp').removeClass('invisible');
boolotp = true;
} else {
$('#errorotp').text('');
$('#spanotp').addClass('invisible');
$('#spanotp').removeClass('visible');
boolotp = false;
}
if (otp_icno == null || otp_icno == '') {
$('#erroricno').text('Sila Isi No Kad Pengenalan Anda!');
$('#spanic').addClass('visible');
$('#spanic').removeClass('invisible');
boolicno = true;
} else {
$('#erroricno').text('');
$('#spanic').addClass('invisible');
$('#spanic').removeClass('visible');
boolicno = false;
}
if (boolotp === false && boolicno === false) {
$.ajax({
url: api_url + '/api/otp/check/' + otp_verify,
method: 'GET',
success: function(data) {
if (data.length > 0) {
console.log(data[0].nokp);
$.ajax({
url: api_url + '/api/customers/' + data[0].nokp,
method: 'GET',
success: function(data) {
$('input[name="name"]').val(data.nama);
$('input[name="icno"]').val(data.kpbaru);
$('input[name="notel"]').val(data.telefon);
$('input[name="poskod"]').val(data.poskod);
$('textarea[name="alamat"]').val(data.alamat1);
$.ajax({
url: api_url + '/api/daerah/' + data.koddaerah,
method: 'GET',
success: function(data) {
console.log(data);
$('input[name="namadaerah"]').val(data.namadaerah);
}
});
$.ajax({
url: api_url + '/api/negeri/' + data.kodnegeri,
method: 'GET',
success: function(data) {
console.log(data);
$('input[name="negeri"]').val(data.negeri);
}
});
$('#spanic').addClass('invisible');
$('#spanic').removeClass('visible');
$('#spanic').addClass('invisible');
$('#spanic').removeClass('visible');
$("#seterusbtn").prop("disabled", true);
$('#logobg').addClass('invisible');
$('#logobg').removeClass('visible');
$('#makpel').addClass('visible');
$('#makpel').removeClass('invisible');
$('#seterusnyaModal').modal({
backdrop: 'static',
keyboard: false
})
}
});
} else {
$.notify({
icon: 'fas fa-exclamation-triangle',
newest_on_top: true,
message: "<strong style='font-size:15px;text-align:center;margin-left:100px; color: #ffff'>Pelanggan tidak membuat sebarang login!</strong>"
}, {
type: 'danger',
allow_dismiss: false,
placement: {
align: 'center',
from: 'bottom'
},
animate: {
enter: 'animate__animated animate__bounce',
exit: 'animate__animated animate__bounceOutDown'
}
});
}
}
});
}
}
function backfunc() {
$('#makpel').addClass('invisible');
$('#makpel').removeClass('visible');
$("#seterusbtn").prop("disabled", false);
}
// $('body').on('click', '.loading', function() {
// loading();
// });
$(function() {
$('.login-form').submit(function() {
if ($(this).valid()) {
//
} else {
loading_close();
}
});
});
var slideIndex = 0;
// showSlides();
// function showSlides() {
// var i;
// var slides = document.getElementsByClassName("mySlides");
// for (i = 0; i < slides.length; i++) {
// slides[i].style.display = "none";
// }
// slideIndex++;
// if (slideIndex > slides.length) {
// slideIndex = 1
// }
// slides[slideIndex - 1].style.display = "block";
// setTimeout(showSlides, 10000); // Change image every 2 seconds
// }
</script>
</body>
</html>
+14 -20
View File
@@ -113,20 +113,14 @@
<body style="background-color: #ffff; margin: 0 !important; padding: 0 !important;">
<!-- HIDDEN PREHEADER TEXT -->
<div style="display: none; font-size: 1px; color: #fefefe; line-height: 1px; font-family: 'Lato', Helvetica, Arial, sans-serif; max-height: 0px; max-width: 0px; opacity: 0; overflow: hidden;"> We're thrilled to have you here! Get ready to dive into your new account. </div>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<!-- LOGO -->
<div style="display: none; font-size: 1px; color: #fefefe; line-height: 1px; font-family: 'Lato', Helvetica, Arial, sans-serif; max-height: 0px; max-width: 0px; opacity: 0; overflow: hidden;">
We're thrilled to have you here! Get ready to dive into your new account.
</div>
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin-top: 2%;">
<tr>
<td bgcolor="#005CA7" align="center">
<table cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;">
<tr>
<td align="center" valign="top" style="padding: 40px 10px 40px 10px;"> </td>
</tr>
</table>
</td>
</tr>
<tr>
<td bgcolor="#005CA7" align="center" style="padding: 0px 10px 0px 10px;">
<td align="center" style="padding: 0px 10px 0px 10px;">
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;">
<tr>
<td bgcolor="#ffffff" align="center" valign="top" style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #111111; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; letter-spacing: 4px; line-height: 48px;">
@@ -138,13 +132,13 @@
</td>
</tr>
<tr>
<td bgcolor="#005CA7" align="center" style="padding: 0px 10px 0px 10px;">
<td align="center" style="padding: 0px 10px 0px 10px;">
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;">
<tr>
<td bgcolor="#ffffff" align="left" style="padding: 10px 30px 40px 30px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;">
<td bgcolor="#ffffff" align="left" style="padding: 10px 30px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400;">
@if (session('resent'))
<div class="alert alert-success" role="alert">
<p style="color:#27ae60;text-align: center;">Pautan pengesahan baru telah dihantar ke
<p style="text-align: center; color: #ffff !important">Pautan pengesahan baru telah dihantar ke
alamat e-mel : {{ Auth::user()->email }}</p>
</div>
@endif
@@ -153,7 +147,7 @@
<tr>
<td bgcolor="#ffffff" align="left" style="padding: 0px 30px 0px 30px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;">
<p style="margin: 0;text-align:justify;">Sebelum meneruskan, sila periksa e-mel anda untuk mendapatkan pautan pengesahan. Sekiranya anda tidak menerima sebarang
<p style="margin: 0;text-align:justify;">Sebelum meneruskan, sila periksa e-mel anda untuk membuat pengesahan. Sekiranya anda tidak menerima sebarang
e-mel,</p>
</td>
</tr> <!-- COPY -->
@@ -187,11 +181,11 @@
</td>
</tr>
<tr>
<td bgcolor="#f4f4f4" align="center" style="padding: 30px 10px 0px 10px;">
<td align="center" style="padding: 30px 10px 0px 10px;">
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;">
<tr>
<td bgcolor="#005CA7" align="center" style="padding: 30px 30px 30px 30px; border-radius: 4px 4px 4px 4px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;">
<p style="margin: 0;"><a href="{{ route('logout') }}" onclick="event.preventDefault(); document.getElementById('logout-form').submit();" class="buttonstyle btn-primary">Menu Utama</a></p>
<td bgcolor="#fff" align="center" style="padding: 30px 30px 30px 30px; border-radius: 4px 4px 4px 4px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;">
<p style="margin: 0;"><button href="{{ route('logout') }}" onclick="event.preventDefault(); document.getElementById('logout-form').submit();" class="buttonstyle btn-primary">Log Masuk</button></p>
<form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
@csrf
+2 -15
View File
@@ -33,6 +33,7 @@
<link href="{{ asset('css/material-kit-login.css') }}" rel="stylesheet">
<script src="{{ asset('argon') }}/vendor/jquery/dist/jquery.min.js"></script>
</head>
<body class="sign-in-basic">
@@ -87,21 +88,7 @@
</div>
<!-- Core JS Files -->
<script src="{{ asset('assets/js/material-kit/core/popper.min.js') }}" type="text/javascript"></script>
<script src="{{ asset('assets/js/material-kit/core/bootstrap.min.js') }}" type="text/javascript"></script>
<script src="{{ asset('assets/js/material-kit/plugins/perfect-scrollbar.min.js') }}"></script>
<!-- Plugin for Parallax, full documentation here: https://github.com/wagerfield/parallax -->
<script src="{{ asset('assets/js/material-kit/plugins/parallax.min.js') }}"></script>
<!-- Control Center for Material UI Kit: parallax effects, scripts for the example pages etc -->
<!-- Google Maps Plugin -->
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDTTfWur0PDbZWPr7Pmq8K3jiDp0_xUziI"></script>
<!-- <script src="{{ asset('assets/js/material-kit/material-kit.min.js?v=3.0.0') }}" type="text/javascript"></script> -->
</body>
@@ -4,7 +4,7 @@
<title>Log In | Customer Portal</title>
<h6 style="text-align: center; margin-bottom: 10%;">Log-Masuk ke Customer Portal</h6>
<h6 style="text-align: center; margin-bottom: 10%;">Log-Masuk</h6>
<form role="#" method="post" enctype="multipart/form-data" class="login-form" novalidate="novalidate">
@csrf
@@ -16,6 +16,7 @@
<strong>{{ $errors->first('email') }}</strong>
</span>
@endif
<div class="input-group input-group-outline mb-3">
<input placeholder="Kata Laluan" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" type="password" name="password" id="login-password">
</div>
@@ -24,6 +25,7 @@
<strong>{{ $errors->first('password') }}</strong>
</span>
@endif
<div class="form-check form-switch d-flex align-items-center mb-3">
<input class="form-check-input" type="checkbox" id="rememberMe">
<label class="form-check-label mb-0 ms-2" for="rememberMe">Remember me</label>
+42 -2
View File
@@ -27,11 +27,39 @@
<script src="{{ asset('argon') }}/js/bootstrap-notify.js"></script>
<link href="{{ asset('css/material-kit.css') }}" rel="stylesheet">
<!-- <link href="{{ asset('css/loader.css') }}" rel="stylesheet"> -->
<style>
.portalloader {
/* display: none;
position: fixed;
top: 0;
left: 0;
background: white;
height: 100%;
width: 100%;
display: flex;
justify-content: center;
align-items: center;
z-index: 100000;
opacity: 0.8; */
/* display: none; */
position: fixed;
background: white;
height: 100%;
width: 100%;
justify-content: center;
align-items: center;
z-index: 100000;
opacity: 0.8;
display: flex;
}
</style>
<script>
ifvisible.setIdleDuration(100);
ifvisible.setIdleDuration(10000000);
</script>
<script>
@@ -82,4 +110,16 @@
<form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
@csrf
</form>
@endif
@endif
<div class="portalloader">
<img src="{{ asset('argon/img/brand/bluespinner.gif') }}" alt="loader_photo">
</div>
<script>
$(function() {
setTimeout(() => {
$(".portalloader").fadeOut(300);
}, 300)
})
</script>