first commit

This commit is contained in:
benjibennn
2023-12-22 12:35:55 +08:00
commit 9f89a732d6
872 changed files with 156291 additions and 0 deletions

View File

@@ -0,0 +1,99 @@
@extends('theme::layouts.app')
@section('content')
<div class="flex flex-col justify-center py-20 px-2 sm:px-6 lg:px-8">
{{-- <div class="sm:mx-auto sm:w-full sm:max-w-md">
<h2 class="mt-6 text-3xl font-extrabold leading-9 text-center text-gray-900 lg:text-5xl">
Sign in Below
</h2>
<p class="mt-4 text-sm leading-5 text-center text-gray-600 max-w">
or, you can
<a href="{{ route('register') }}" class="font-medium transition duration-150 ease-in-out text-wave-600 hover:text-wave-500 focus:outline-none focus:underline">
signup here
</a>
</p>
</div>
--}}
<div class="mt-8 sm:mx-auto sm:w-full sm:max-w-lg card-shadow">
<div class="bg-white">
<form action="{{ route('login') }}" method="POST">
@csrf
<input type="hidden" name="user_type" value="admin">
<div class="login-fields">
<img class="logo" src="{{ asset('themes/tailwind/images/logo.png') }}">
<h2 class="h2-title">CMS Access</h2>
<h3 class="h2-title">Login To Your Account</h3>
@if(setting('auth.email_or_username') && setting('auth.email_or_username') == 'username')
<label for="username" class="block text-sm font-medium leading-5 text-gray-700">Username</label>
<div class="mt-1 rounded-md shadow-sm">
<input id="username" type="username" name="username" required class="w-full form-input no-radius" autofocus>
</div>
@if ($errors->has('username'))
<div class="mt-1 text-red-500">
{{ $errors->first('username') }}
</div>
@endif
@else
<label for="email" class="block text-sm font-medium leading-5 text-gray-700">Email</label>
<div class="mt-1 rounded-md shadow-sm">
<input id="email" type="email" name="email" required class="w-full form-input no-radius" autofocus>
</div>
@if ($errors->has('email'))
<div class="mt-1 text-red-500">
{{ $errors->first('email') }}
</div>
@endif
@endif
</div>
<div class="mt-6">
<label for="password" class="block text-sm font-medium leading-5 text-gray-700">
Password
</label>
<div class="mt-1 rounded-md shadow-sm">
<input id="password" type="password" name="password" required class="w-full form-input no-radius">
</div>
@if ($errors->has('password'))
<div class="mt-1 text-red-500">
{{ $errors->first('password') }}
</div>
@endif
</div>
{{-- <div class="flex items-center justify-between mt-6">
<div class="flex items-center">
<input id="remember" name="remember" type="checkbox" class="text-indigo-600 border-0 border-gray-300 rounded shadow-sm focus:border-indigo-300 focus:ring focus:ring-offset-0 focus:ring-indigo-200 focus:ring-opacity-50 rounded-xl" {{ old('remember') ? ' checked' : '' }}>
<label for="remember" class="block ml-2 text-sm leading-5 text-gray-900">
Remember me
</label>
</div>
<div class="text-sm leading-5">
<a href="{{ route('password.request') }}" class="font-medium transition duration-150 ease-in-out text-wave-600 hover:text-wave-500 focus:outline-none focus:underline">
Forgot your password?
</a>
</div>
</div> --}}
<div class="mt-6">
<span class="block w-full rounded-md shadow-sm">
<button type="submit" class="flex justify-center w-full px-4 py-3 text-sm font-medium text-black transition duration-150 ease-in-out border primary-button">
Sign in
</button>
</span>
</div>
</form>
</div>
</div>
</div>
@endsection

View File

@@ -0,0 +1,58 @@
@extends('theme::layouts.app')
@section('content')
<div class="flex flex-col justify-center py-20 sm:px-6 lg:px-8">
<div class="sm:mx-auto sm:w-full sm:max-w-md">
<h2 class="mt-6 text-3xl font-extrabold leading-9 text-center text-gray-900 lg:text-5xl">
Reset Password
</h2>
<p class="mt-4 text-sm leading-5 text-center text-gray-600 max-w">
or, return back to
<a href="{{ route('login') }}" class="font-medium transition duration-150 ease-in-out text-wave-600 hover:text-wave-500 focus:outline-none focus:underline">
login
</a>
</p>
</div>
<div class="mt-8 sm:mx-auto sm:w-full sm:max-w-md">
@if (session('status'))
<div class="p-3 mb-3 text-sm text-indigo-500 bg-indigo-100">
{{ session('status') }}
</div>
@endif
<div class="px-4 py-8 bg-white border shadow border-gray-50 sm:rounded-lg sm:px-10">
<form action="{{ route('password.email') }}" method="POST">
@csrf
<div>
<label for="email" class="block text-sm font-medium leading-5 text-gray-700">
Email Address
</label>
<div class="mt-3 rounded-md shadow-sm">
<input id="email" type="email" name="email" required class="w-full form-input">
</div>
@if ($errors->has('email'))
<div class="mt-1 text-red-500">
{{ $errors->first('email') }}
</div>
@endif
</div>
<div class="mt-6">
<span class="block w-full rounded-md shadow-sm">
<button type="submit" class="flex justify-center w-full px-4 py-2 text-sm font-medium text-white transition duration-150 ease-in-out border border-transparent rounded-md bg-wave-600 hover:bg-wave-500 focus:outline-none focus:border-wave-700 focus:shadow-outline-wave active:bg-wave-700">
Send Password Reset Link
</button>
</span>
</div>
</form>
</div>
</div>
</div>
@endsection

View File

@@ -0,0 +1,83 @@
@extends('theme::layouts.app')
@section('content')
<div class="flex flex-col justify-center py-20 sm:px-6 lg:px-8">
<div class="sm:mx-auto sm:w-full sm:max-w-md">
<h2 class="mt-6 text-3xl font-extrabold leading-none text-center text-gray-900 lg:text-5xl">
Setup Your New Password
</h2>
<p class="mt-4 text-sm leading-5 text-center text-gray-600 max-w">
or, return to
<a href="{{ route('login') }}" class="font-medium transition duration-150 ease-in-out text-wave-600 hover:text-wave-500 focus:outline-none focus:underline">
login here
</a>
</p>
</div>
<div class="mt-8 sm:mx-auto sm:w-full sm:max-w-md">
@if (session('status'))
<div class="mb-3 uk-alert-primary">
{{ session('status') }}
</div>
@endif
<div class="px-4 py-8 bg-white border shadow border-gray-50 sm:rounded-lg sm:px-10">
<form action="{{ route('password.request') }}" method="POST">
@csrf
<input type="hidden" name="token" value="{{ $token }}">
<div class="mt-6">
<label for="email" class="block text-sm font-medium leading-5 text-gray-700">
Email Address
</label>
<div class="mt-1 rounded-md shadow-sm">
<input id="email" type="email" name="email" required class="w-full form-input">
</div>
@if ($errors->has('email'))
<div class="mt-1 text-red-500">
{{ $errors->first('email') }}
</div>
@endif
</div>
<div class="mt-6">
<label for="password" class="block text-sm font-medium leading-5 text-gray-700">
Password
</label>
<div class="mt-1 rounded-md shadow-sm">
<input id="password" type="password" name="password" required class="w-full form-input">
</div>
@if ($errors->has('password'))
<div class="mt-1 text-red-500">
{{ $errors->first('password') }}
</div>
@endif
</div>
<div class="mt-6">
<label for="password_confirmation" class="block text-sm font-medium leading-5 text-gray-700">
Confirm Password
</label>
<div class="mt-1 rounded-md shadow-sm">
<input id="password_confirmation" type="password" name="password_confirmation" required class="w-full form-input">
</div>
@if ($errors->has('password_confirmation'))
<div class="mt-1 text-red-500">
{{ $errors->first('password_confirmation') }}
</div>
@endif
</div>
<div class="flex flex-col items-center justify-center text-sm leading-5">
<span class="block w-full mt-5 rounded-md shadow-sm">
<button type="submit" class="flex justify-center w-full px-4 py-2 text-sm font-medium text-white transition duration-150 ease-in-out border border-transparent rounded-md bg-wave-600 hover:bg-wave-500 focus:outline-none focus:border-wave-700 focus:shadow-outline-wave active:bg-wave-700">
Reset Password
</button>
</span>
</div>
</form>
</div>
</div>
</div>
@endsection

View File

@@ -0,0 +1,254 @@
@extends('theme::layouts.app')
@section('content')
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<div class="flex flex-col justify-center py-20 px-2 sm:px-6 lg:px-8 min-h-screen main-wrapper login-signup-page" style="background-image: url({{ asset('themes/tailwind/images/login-bg.png') }})">
<div class="form-steps" data-step="1">
<div class="mx-auto login-signup-card">
<form action="{{ route('forgot-password.send-otp') }}" method="POST" id="sendOtpFrm">
@csrf
<img class="logo mb-6 mx-auto" src="{{ asset('themes/tailwind/images/Lock.png') }}">
<h3 class="form-title mb-6">Recover Your Password</h3>
<div class="form-group mb-6">
<label for="email">Email</label>
<input id="email" type="email" name="email" required class="w-full form-input no-radius" autofocus>
@if ($errors->has('email'))
<div class="mt-1 text-red-500">
{{ $errors->first('email') }}
</div>
@endif
</div>
<div class="mb-6">
<span class="block w-full rounded-md shadow-sm">
<button type="submit" class="flex justify-center w-full px-4 py-3 text-sm font-medium text-black transition duration-150 ease-in-out border primary-button change-form-step submit-btn" data-target="2">
Recover Password
</button>
</span>
</div>
<p class="bottom-desc">
Go back to <a href="{{ route('login') }}" class="blue-link d-inline-block">Sign in</a>
</p>
<div class="mx-auto bottom-links-wrapper pb-0" style="bottom: 30px;">
<a href="{{ route('user-terms-and-conditions') }}" class="link">Terms and Conditions</a>
<a href="{{ route('user-privacy-policy') }}" class="link">Privacy Policy</a>
</div>
</form>
</div>
</div>
<div class="form-steps" data-step="2" style="display: none;">
<div class="mx-auto login-signup-card">
<form action="{{ route('forgot-password.submit-otp') }}" method="POST" id="submitOtpFrm">
@csrf
<img class="logo mb-6 mx-auto" src="{{ asset('themes/tailwind/images/Lock.png') }}">
<h3 class="form-title mb-6">OTP sent to your email</h3>
<div class="form-group mb-6">
<label for="otp">OTP</label>
<input id="otp" type="password" name="otp" required class="w-full form-input no-radius" autofocus>
@if ($errors->has('otp'))
<div class="mt-1 text-red-500">
{{ $errors->first('otp') }}
</div>
@endif
</div>
<div class="mb-6">
<span class="block w-full rounded-md shadow-sm">
<button type="submit" class="flex justify-center w-full px-4 py-3 text-sm font-medium text-black transition duration-150 ease-in-out border primary-button change-form-step submit-btn" data-target="3">
Recover Password
</button>
</span>
</div>
<p class="bottom-desc">
Go back to <a href="{{ route('login') }}" class="blue-link d-inline-block">Sign in</a>
</p>
</form>
</div>
<div class="mx-auto bottom-links-wrapper">
<a href="{{ route('user-terms-and-conditions') }}" class="link">Terms and Conditions</a>
<a href="{{ route('user-privacy-policy') }}" class="link">Privacy Policy</a>
</div>
</div>
<div class="form-steps" data-step="3" style="display: none;">
<div class="mx-auto login-signup-card">
<form action="{{ route('forgot-password.reset-password') }}" method="POST" id="submitResetPasswordFrm">
@csrf
<input type="hidden" name="user_id" id="user_id">
<img class="logo mb-6 mx-auto" src="{{ asset('themes/tailwind/images/Lock.png') }}">
<h3 class="form-title mb-6">Reset Your Password</h3>
<div class="form-group mb-6">
<label for="password">
New Password
</label>
<div class="password-wrapper">
<input id="password" type="password" name="password" required class="w-full form-input no-radius">
<img class="mx-auto password-hide-show" src="{{ asset('themes/tailwind/images/password-hide-show.png') }}">
</div>
@if ($errors->has('password'))
<div class="mt-1 text-red-500">
{{ $errors->first('password') }}
</div>
@endif
</div>
<div class="form-group mb-6">
<label for="password_confirmation">
Confirm Password
</label>
<div class="password-wrapper">
<input id="password_confirmation" type="password" name="password_confirmation" required class="w-full form-input no-radius">
<img class="mx-auto password-hide-show" src="{{ asset('themes/tailwind/images/password-hide-show.png') }}">
</div>
@if ($errors->has('password_confirmation'))
<div class="mt-1 text-red-500">
{{ $errors->first('password_confirmation') }}
</div>
@endif
</div>
<div class="mb-6">
<span class="block w-full rounded-md shadow-sm">
<button type="submit" class="flex justify-center w-full px-4 py-3 text-sm font-medium text-black transition duration-150 ease-in-out border primary-button submit-btn">
Reset Password
</button>
</span>
</div>
<p class="bottom-desc">
Go back to <a href="{{ route('login') }}" class="blue-link d-inline-block">Sign in</a>
</p>
</form>
</div>
<div class="mx-auto bottom-links-wrapper">
<a href="{{ route('user-terms-and-conditions') }}" class="link">Terms and Conditions</a>
<a href="{{ route('user-privacy-policy') }}" class="link">Privacy Policy</a>
</div>
</div>
</div>
{{-- Validation Modal --}}
<div class="modal fade validation-modal style2" id="validationModal" tabindex="-1" aria-labelledby="validationModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content mx-auto w-100">
<div class="modal-body p-0">
<p class="text-center error-message">Account Not Excise</p>
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">OK</button>
</div>
</div>
</div>
</div>
{{-- Success Modal --}}
<div class="modal fade validation-modal style1" id="successModal" tabindex="-1" aria-labelledby="successModalLabel" aria-hidden="true" data-backdrop="static" data-keyboard="false">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content mx-auto w-100">
<div class="modal-body p-0">
<p class="text-center error-message">Password has successfully reset</p>
<a href="{{ route('login') }}" class="btn btn-secondary">Sign in</a>
</div>
</div>
</div>
</div>
@endsection
@section('script')
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
<script>
$(function() {
$('.password-hide-show').click(function() {
var type = $(this).parent().find('input').attr('type');
if (type == 'password') {
$(this).parent().find('input').attr('type', 'text');
}
else {
$(this).parent().find('input').attr('type', 'password');
}
});
$('form').submit(function(e) {
e.preventDefault();
var button = $(this).find('button[type="submit"]');
var buttonHtml = button.html();
var action = $(this).attr('action');
var frmId = $(this).attr('id');
if (!button.is(':disabled') && action) {
button.attr('disabled', 'disabled');
button.html('<i class="fa fa-spinner fa-spin" style="font-size:24px"></i>');
$.ajax({
url: action,
type:"post",
data:$(this).serialize(),
dataType:'json',
success:function(data) {
button.removeAttr('disabled');
button.html(buttonHtml);
if (data.success) {
if (frmId == 'submitOtpFrm') {
$('#submitResetPasswordFrm #user_id').val(data.user_id);
}
var target = button.attr('data-target');
if (target) {
$('.form-steps').hide();
$('.form-steps[data-step="' + target + '"]').show();
}
else {
$('#successModal .error-message').html(data.message);
$('#successModal').modal('show');
}
}
else {
$('#validationModal .error-message').html(data.message);
$('#validationModal').modal('show');
}
},
error: function(data) {
var errors = data.responseJSON.errors;
var errorMessage = '<ul>';
$.each(errors, function(index, error) {
console.log(error);
errorMessage += '<li>' + error[0] + '</li>';
});
errorMessage += '</ul>';
$('#validationModal .error-message').html(errorMessage);
$('#validationModal').modal('show');
button.removeAttr('disabled');
button.html(buttonHtml);
}
});
}
});
// $('.change-form-step').click(function() {
// var target = $(this).attr('data-target');
// if (target) {
// $('.form-steps').hide();
// $('.form-steps[data-step="' + target + '"]').show();
// }
// });
});
</script>
@endsection

View File

@@ -0,0 +1,18 @@
@extends('theme::layouts.app')
@section('content')
<div class="flex flex-col justify-center py-20 px-10 sm:px-6 lg:px-8 min-h-screen main-wrapper terms-and-condition-page" style="background-image: url({{ asset('themes/tailwind/images/login-bg.png') }})">
<div class="mx-auto page-title-wrapper">
<h3 class="page-title">Privacy Policy</h3>
<a href="{{ route('login') }}">Leave</a>
</div>
<div class="mx-auto box-wrapper">
{!! $siteSetting ? $siteSetting->privacy_policy : '' !!}
</div>
<div class="mx-auto bottom-links-wrapper">
<a href="{{ route('user-terms-and-conditions') }}" class="link">Terms And Conditions</a>
</div>
</div>
@endsection

View File

@@ -0,0 +1,124 @@
@extends('theme::layouts.app')
@section('content')
<div class="sm:mx-auto sm:w-full sm:max-w-md sm:pt-10">
<h2 class="text-3xl font-extrabold leading-9 text-center text-gray-900 sm:mt-6 lg:text-5xl">
Sign up Below
</h2>
<p class="mt-4 text-sm leading-5 text-center text-gray-600 max-w">
or, you can
<a href="{{ route('login') }}" class="font-medium transition duration-150 ease-in-out text-wave-600 hover:text-wave-500 focus:outline-none focus:underline">
login here
</a>
</p>
</div>
<div class="flex flex-col justify-center pb-10 sm:pb-20 sm:px-6 lg:px-8">
<div class="mt-8 sm:mx-auto sm:w-full sm:max-w-md">
<div class="px-4 py-8 bg-white border shadow border-gray-50 sm:rounded-lg sm:px-10">
<form role="form" method="POST" action="@if(setting('billing.card_upfront')){{ route('wave.register-subscribe') }}@else{{ route('register') }}@endif">
@csrf
<!-- If we want the user to purchase before they can create an account -->
<div class="pb-3 sm:border-b sm:border-gray-200">
<h3 class="text-lg font-medium leading-6 text-gray-900">
Profile
</h3>
<p class="max-w-2xl mt-1 text-sm leading-5 text-gray-500">
Information about your account.
</p>
</div>
@csrf
<div class="mt-6">
<label for="name" class="block text-sm font-medium leading-5 text-gray-700">
Name
</label>
<div class="mt-1 rounded-md shadow-sm">
<input id="name" type="text" name="name" required class="w-full form-input" value="{{ old('name') }}" @if(!setting('billing.card_upfront')){{ 'autofocus' }}@endif>
</div>
@if ($errors->has('name'))
<div class="mt-1 text-red-500">
{{ $errors->first('name') }}
</div>
@endif
</div>
@if(setting('auth.username_in_registration') && setting('auth.username_in_registration') == 'yes')
<div class="mt-6">
<label for="username" class="block text-sm font-medium leading-5 text-gray-700">
Username
</label>
<div class="mt-1 rounded-md shadow-sm">
<input id="username" type="text" name="username" value="{{ old('username') }}" required class="w-full form-input">
</div>
@if ($errors->has('username'))
<div class="mt-1 text-red-500">
{{ $errors->first('username') }}
</div>
@endif
</div>
@endif
<div class="mt-6">
<label for="email" class="block text-sm font-medium leading-5 text-gray-700">
Email Address
</label>
<div class="mt-1 rounded-md shadow-sm">
<input id="email" type="email" name="email" value="{{ old('email') }}" required class="w-full form-input">
</div>
@if ($errors->has('email'))
<div class="mt-1 text-red-500">
{{ $errors->first('email') }}
</div>
@endif
</div>
<div class="mt-6">
<label for="password" class="block text-sm font-medium leading-5 text-gray-700">
Password
</label>
<div class="mt-1 rounded-md shadow-sm">
<input id="password" type="password" name="password" required class="w-full form-input">
</div>
@if ($errors->has('password'))
<div class="mt-1 text-red-500">
{{ $errors->first('password') }}
</div>
@endif
</div>
<div class="mt-6">
<label for="password_confirmation" class="block text-sm font-medium leading-5 text-gray-700">
Confirm Password
</label>
<div class="mt-1 rounded-md shadow-sm">
<input id="password_confirmation" type="password" name="password_confirmation" required class="w-full form-input">
</div>
@if ($errors->has('password_confirmation'))
<div class="mt-1 text-red-500">
{{ $errors->first('password_confirmation') }}
</div>
@endif
</div>
<div class="flex flex-col items-center justify-center text-sm leading-5">
<span class="block w-full mt-5 rounded-md shadow-sm">
<button type="submit" class="flex justify-center w-full px-4 py-2 text-sm font-medium text-white transition duration-150 ease-in-out border border-transparent rounded-md bg-wave-600 hover:bg-wave-500 focus:outline-none focus:border-wave-700 focus:shadow-outline-wave active:bg-wave-700">
Register
</button>
</span>
<a href="{{ route('login') }}" class="mt-3 font-medium transition duration-150 ease-in-out text-wave-600 hover:text-wave-500 focus:outline-none focus:underline">
Already have an account? Login here
</a>
</div>
</form>
</div>
</div>
</div>
@endsection

View File

@@ -0,0 +1,18 @@
@extends('theme::layouts.app')
@section('content')
<div class="flex flex-col justify-center py-20 px-10 sm:px-6 lg:px-8 min-h-screen main-wrapper terms-and-condition-page" style="background-image: url({{ asset('themes/tailwind/images/login-bg.png') }})">
<div class="mx-auto page-title-wrapper">
<h3 class="page-title">Terms and Conditions</h3>
<a href="{{ route('login') }}">Leave</a>
</div>
<div class="mx-auto box-wrapper">
{!! $siteSetting ? $siteSetting->terms_and_conditions : '' !!}
</div>
<div class="mx-auto bottom-links-wrapper">
<a href="{{ route('user-privacy-policy') }}" class="link">Privacy Policy</a>
</div>
</div>
@endsection

View File

@@ -0,0 +1,111 @@
@extends('theme::layouts.app')
@section('content')
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<div class="flex flex-col justify-center py-20 px-2 sm:px-6 lg:px-8 min-h-screen main-wrapper login-signup-page" style="background-image: url({{ asset('themes/tailwind/images/login-bg.png') }})">
<div class="mx-auto login-signup-card">
<form action="{{ route('login') }}" method="POST">
@csrf
<input type="hidden" name="user_type" value="user">
<img class="logo mb-6 mx-auto" src="{{ asset('themes/tailwind/images/logo.png') }}" height="90">
<h3 class="form-title mb-6">Login To Your Account</h3>
<div class="form-group mb-6">
<label for="email">Email</label>
<input id="email" type="email" name="email" required class="w-full form-input no-radius" autofocus>
@if ($errors->has('email'))
<div class="mt-1 text-red-500">
{{ $errors->first('email') }}
</div>
@endif
</div>
<div class="form-group mb-6">
<label for="password">
Password
</label>
<div class="password-wrapper">
<input id="password" type="password" name="password" required class="w-full form-input no-radius">
<img class="mx-auto password-hide-show" src="{{ asset('themes/tailwind/images/password-hide-show.png') }}">
</div>
@if ($errors->has('password'))
<div class="mt-1 text-red-500">
{{ $errors->first('password') }}
</div>
@endif
</div>
<div class="mb-6">
<a href="{{ route('forgot-password') }}" class="blue-link ">Forgot Password?</a>
</div>
<div class="mb-6">
<div class="custom-radio-checkbox">
<input type="checkbox" class="remember" name="remember" id="remember" value="1">
<label class="remember_label" for="remember">
Remember Me
</label>
</div>
</div>
<div class="mb-6">
<span class="block w-full rounded-md shadow-sm">
<button type="submit" class="flex justify-center w-full px-4 py-3 text-sm font-medium text-black transition duration-150 ease-in-out border primary-button submit-btn">
Sign in
</button>
</span>
</div>
<p class="bottom-desc">
Don't have an account? <a href="{{ route('register') }}" class="link">Sign Up</a>
</p>
</form>
</div>
<div class="mx-auto bottom-links-wrapper">
<a href="{{ route('user-terms-and-conditions') }}" class="link">Terms and Conditions</a>
<a href="{{ route('user-privacy-policy') }}" class="link">Privacy Policy</a>
</div>
</div>
@if(Session::has('message'))
<div class="modal fade validation-modal style1" id="validationModal" tabindex="-1" aria-labelledby="validationModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content mx-auto w-100">
<div class="modal-body p-0">
<p class="text-center error-message">{{ Session::get('message') }}</p>
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">OK</button>
</div>
</div>
</div>
</div>
@endif
@endsection
@section('script')
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
<script>
$(function() {
if ($('#validationModal').length) {
$('#validationModal').modal('show');
}
$('.password-hide-show').click(function() {
var type = $(this).parent().find('input').attr('type');
if (type == 'password') {
$(this).parent().find('input').attr('type', 'text');
}
else {
$(this).parent().find('input').attr('type', 'password');
}
});
});
</script>
@endsection

View File

@@ -0,0 +1,355 @@
@extends('theme::layouts.app')
@section('content')
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<div class="flex flex-col justify-center py-20 px-2 sm:px-6 lg:px-8 min-h-screen main-wrapper login-signup-page" style="background-image: url({{ asset('themes/tailwind/images/login-bg.png') }})">
<form action="{{ route('register') }}" method="POST" id="registerFrm">
@csrf
<input id="invite_token" type="hidden" name="invite_token" value="{{ $invite_token }}">
<div class="form-steps" data-step="1" id="formStep1">
<div class="mx-auto login-signup-card">
<h3 class="form-title mb-6">Create Account</h3>
<div class="form-group mb-6">
<label for="first_name">
First Name
</label>
<input id="first_name" type="text" name="first_name" required class="w-full form-input no-radius" value="{{ old('first_name') }}" autofocus>
@if ($errors->has('first_name'))
<div class="mt-1 text-red-500">
{{ $errors->first('first_name') }}
</div>
@endif
</div>
<div class="form-group mb-6">
<label for="last_name">
Last Name
</label>
<input id="last_name" type="text" name="last_name" required class="w-full form-input no-radius" value="{{ old('last_name') }}" autofocus>
@if ($errors->has('last_name'))
<div class="mt-1 text-red-500">
{{ $errors->first('last_name') }}
</div>
@endif
</div>
<div class="form-group mb-6">
<label for="email">Email</label>
<input id="email" type="email" name="email" value="{{ $invite_email ? $invite_email : old('email') }}" required class="w-full form-input no-radius" autofocus {{ $invite_email ? 'disabled' : '' }}>
@if ($errors->has('email'))
<div class="mt-1 text-red-500">
{{ $errors->first('email') }}
</div>
@endif
</div>
<div class="form-group mb-6">
<label for="phone">
Phone Number
</label>
<input id="phone" type="text" name="phone" name="phone" value="{{ old('phone') }}" required class="w-full form-input no-radius">
@if ($errors->has('phone'))
<div class="mt-1 text-red-500">
{{ $errors->first('phone') }}
</div>
@endif
</div>
<div class="form-group mb-6">
<label for="password">
Password
</label>
<div class="password-wrapper">
<input id="password" type="password" name="password" required class="w-full form-input no-radius">
<img class="mx-auto password-hide-show" src="{{ asset('themes/tailwind/images/password-hide-show.png') }}">
</div>
@if ($errors->has('password'))
<div class="mt-1 text-red-500">
{{ $errors->first('password') }}
</div>
@endif
</div>
<div class="form-group mb-6">
<label for="password_confirmation">
Confirm Password
</label>
<div class="password-wrapper">
<input id="password_confirmation" type="password" name="password_confirmation" required class="w-full form-input no-radius">
<img class="mx-auto password-hide-show" src="{{ asset('themes/tailwind/images/password-hide-show.png') }}">
</div>
@if ($errors->has('password_confirmation'))
<div class="mt-1 text-red-500">
{{ $errors->first('password_confirmation') }}
</div>
@endif
</div>
<div class="form-group mb-6 ">
<div class="row align-items-center">
<div class="col-md-2 mt-0">
<label for="role_id" class="mb-0">
Role
</label>
</div>
<div class="col-md-10 mt-0">
<select id="role_id" name="role_id" required class="w-full form-input no-radius">
@foreach ($roles as $role)
<option value="{{ $role->id }}" {{ old('role_id') == $role->id ? 'selected' : '' }}>{{ $role->display_name }}</option>
@endforeach
</select>
</div>
</div>
@if ($errors->has('phone_number'))
<div class="mt-1 text-red-500">
{{ $errors->first('phone_number') }}
</div>
@endif
</div>
<div class="mb-6">
<div class="custom-radio-checkbox">
<input type="checkbox" class="remember" name="terms_and_conditions" id="terms_and_conditions" value="1">
<label class="remember_label" for="terms_and_conditions">
I accept <a href="{{ route('user-terms-and-conditions') }}" class="blue-link d-inline-block text-decoration-none">Terms and Conditions</a>
</label>
</div>
</div>
<div class="mb-6">
<span class="block w-full rounded-md shadow-sm">
<button type="button" class="flex justify-center w-full px-4 py-3 text-sm font-medium text-black transition duration-150 ease-in-out border primary-button change-form-step submit-btn {{ $invite_token ? 'send-btn' : '' }}" data-target="{{ $invite_token ? '3' : '2' }}">
Create Account
</button>
</span>
</div>
<p class="bottom-desc">
Already have an account? <a href="{{ route('login') }}" class="blue-link d-inline-block">Sign in</a>
</p>
</div>
</div>
@if (!$invite_token)
<div class="form-steps" data-step="2" id="formStep2" style="display: none;">
<div class="mx-auto login-signup-card">
<img class="logo mb-6 mx-auto" src="{{ asset('themes/tailwind/images/email.png') }}">
<h3 class="form-title mb-6">Your Company Owner Email</h3>
<div class="form-group mb-6">
<label for="company_email">Email</label>
<input id="company_email" type="email" name="company_email" required class="w-full form-input no-radius" autofocus>
@if ($errors->has('company_email'))
<div class="mt-1 text-red-500">
{{ $errors->first('company_email') }}
</div>
@endif
</div>
<div class="mb-6">
<span class="block w-full rounded-md shadow-sm">
<button type="button" class="flex justify-center w-full px-4 py-3 text-sm font-medium text-black transition duration-150 ease-in-out border primary-button change-form-step submit-btn send-btn" data-target="3">
Send
</button>
</span>
</div>
<p class="bottom-desc">
Go back to <a href="{{ route('login') }}" class="blue-link d-inline-block">Sign in</a>
</p>
</div>
</div>
@endif
<div class="form-steps" data-step="3" style="display: none;">
<div class="mx-auto login-signup-card">
<h3 class="form-title mb-6">Your account is now activated!</h3>
<div class="mb-6">
<span class="block w-full rounded-md shadow-sm">
<a href="{{ route('login') }}" class="flex justify-center w-full px-4 py-3 text-sm font-medium text-black transition duration-150 ease-in-out border primary-button submit-btn">
Sign in
</a>
</span>
</div>
</div>
</div>
<button type="submit" id="submitBtn" class="d-none"></button>
</form>
<div class="mx-auto bottom-links-wrapper">
<a href="{{ route('user-terms-and-conditions') }}" class="link">Terms and Conditions</a>
<a href="{{ route('user-privacy-policy') }}" class="link">Privacy Policy</a>
</div>
</div>
{{-- Didn't accept T&C Modal --}}
<div class="modal fade validation-modal style1" id="validationModal1" tabindex="-1" aria-labelledby="validationModal1Label" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content mx-auto w-100">
<div class="modal-body p-0">
<p class="text-center error-message">You are not accept Terms & Conditions</p>
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">OK</button>
</div>
</div>
</div>
</div>
{{-- Error Modal --}}
<div class="modal fade validation-modal style2" id="validationModal2" tabindex="-1" aria-labelledby="validationModal2Label" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content mx-auto w-100">
<div class="modal-body p-0">
<p class="text-center error-message">Wrong Password</p>
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">OK</button>
</div>
</div>
</div>
</div>
{{-- Sent Success Modal --}}
<div class="modal fade validation-modal style2" id="validationModal3" tabindex="-1" aria-labelledby="validationModal3Label" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content mx-auto w-100">
<div class="modal-body p-0">
<p class="text-center error-message">
@if ($invite_token)
Register successfully
@else
Sent successfully
@endif
</p>
<a href="{{ route('login') }}" class="btn btn-secondary">Back</a>
</div>
</div>
</div>
</div>
@endsection
@section('script')
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
<script>
$(function() {
$('.password-hide-show').click(function() {
var type = $(this).parent().find('input').attr('type');
if (type == 'password') {
$(this).parent().find('input').attr('type', 'text');
}
else {
$(this).parent().find('input').attr('type', 'password');
}
});
$('.change-form-step').click(function() {
var target = $(this).attr('data-target');
var validForm = true;
var form = $(this).parents('form').first();
var currentStep = $('.form-steps:visible').first().attr('id');
form.find('input[type="text"][required]:visible').each(function() {
if (!$(this).val()) {
validForm = false;
return false;
}
});
form.find('input[type="email"][required]:visible').each(function() {
if (!$(this).val()) {
validForm = false;
return false;
}
});
form.find('input[type="checkbox"][required]:visible').each(function() {
if (!$(this).is(':checked')) {
validForm = false;
return false;
}
});
if (currentStep == 'formStep1' && validForm) {
if (!form.find('#terms_and_conditions').is(':checked')) {
$('#validationModal1').modal('show');
return;
}
else if (form.find('#password').val() != form.find('#password_confirmation').val()) {
$('#validationModal2 .error-message').html('Wrong Password');
$('#validationModal2').modal('show');
return;
}
}
if (validForm) {
if (target == '3') {
form.find('button[type="submit"]').click();
}
else {
$('.form-steps').hide();
$('.form-steps[data-step="' + target + '"]').show();
}
}
else {
form.find('button[type="submit"]').click();
}
});
$('#registerFrm').submit(function(e) {
e.preventDefault();
var button = $(this).find('.send-btn');
var buttonHtml = button.html();
if (!button.is(':disabled')) {
button.attr('disabled', 'disabled');
button.html('<i class="fa fa-spinner fa-spin" style="font-size:24px"></i>');
$(this).find('#email').removeAttr('disabled');
var data = $(this).serialize();
$(this).find('#email').attr('disabled', 'disabled');
$.ajax({
url: '{{ route("wave.register-ajax") }}',
type: "post",
data: data,
dataType:'json',
success:function(data) {
button.removeAttr('disabled');
button.html(buttonHtml);
if (data.success) {
$('#validationModal3').modal('show');
}
},
error: function(data) {
var errors = data.responseJSON.errors;
var errorMessage = '<ul>';
$.each(errors, function(index, error) {
console.log(error);
errorMessage += '<li>' + error[0] + '</li>';
});
errorMessage += '</ul>';
$('#validationModal2 .error-message').html(errorMessage);
$('#validationModal2').modal('show');
button.removeAttr('disabled');
button.html(buttonHtml);
}
});
}
});
});
</script>
@endsection

View File

@@ -0,0 +1,24 @@
@extends('theme::layouts.app')
@section('content')
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<div class="flex flex-col justify-center py-20 px-2 sm:px-6 lg:px-8 min-h-screen main-wrapper login-signup-page" style="background-image: url({{ asset('themes/tailwind/images/login-bg.png') }})">
<div class="mx-auto login-signup-card">
<h3 class="form-title mb-6">Your account is now activated!</h3>
<div class="mb-6">
<span class="block w-full rounded-md shadow-sm">
<a href="{{ route('login') }}" class="flex justify-center w-full px-4 py-3 text-sm font-medium text-black transition duration-150 ease-in-out border primary-button submit-btn">
Sign in
</a>
</span>
</div>
</div>
<div class="mx-auto bottom-links-wrapper">
<a href="{{ route('user-terms-and-conditions') }}" class="link">Terms and Conditions</a>
<a href="{{ route('user-privacy-policy') }}" class="link">Privacy Policy</a>
</div>
</div>
@endsection