Update Auth

This commit is contained in:
Ananda Zakia S 2023-12-25 23:41:51 +07:00
parent d6253aaacf
commit 631c86d8e6
17 changed files with 1234 additions and 807 deletions

View File

@ -2,8 +2,15 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Password;
use Illuminate\Support\Facades\Cookie;
use Illuminate\Support\Facades\Session;
class AuthController extends Controller class AuthController extends Controller
{ {
@ -13,8 +20,8 @@ public function showLoginForm()
} }
public function login(Request $request) public function login(Request $request)
{ {
$credentials = $request->only(['nomorinduk', 'password']); $credentials = $request->only(['username', 'password']);
if (Auth::attempt($credentials)) { if (Auth::attempt($credentials)) {
$user = Auth::user(); $user = Auth::user();
@ -26,6 +33,145 @@ public function login(Request $request)
} }
} }
return redirect('/login')->with('error', 'Login gagal. Periksa kembali NIS/NIP dan password Anda.'); $validator = Validator::make($request->all(), [
'username' => 'required',
'password' => 'required',
], [
'required' => ':attribute harus diisi.',
]);
$userCount = User::where('username', $request->username)->count();
if ($validator->fails() || $userCount == 0) {
// Tambahkan pesan error khusus jika username tidak terdaftar
$validator->errors()->add('username', 'Akun tidak terdaftar.');
return redirect('/login')
->withErrors($validator)
->withInput();
}
$remember = true; // Sesuaikan dengan kebutuhan Anda
if (Auth::attempt(['username' => $request->username, 'password' => $request->password], $remember)) {
$user = Auth::user();
$request->session()->put('user_id', $user->id);
// Membuat dan menyimpan token "remember me"
$token = $user->createToken("auth-token")->plainTextToken;
$user->update(['remember_token' => $token]);
return redirect('/dashboard')->with('success', 'Login berhasil!');
} else {
return redirect('/login')
->withErrors(['username' => 'Username atau password salah.'])
->withInput();
}
}
public function showRegisterForm()
{
return view('auth.register');
}
public function register(Request $request)
{
$validator = Validator::make($request->all(), [
'name' => ['required', 'min:3', 'max:225'],
'username' => ['required', 'min:3', 'max:10'],
'email' => 'required|email',
'password' => 'required|min:5|max:255',
], [
'required' => ':attribute harus diisi.',
'email' => ':attribute harus berupa email yang valid.',
'min' => 'panjang :attribute minimal :min karakter.',
]);
if ($validator->fails()) {
return redirect('/register')
->withErrors($validator)
->withInput();
}
if (User::where('username', $request->username)->exists() || User::where('email', $request->email)->exists()) {
return redirect('/register')
->withErrors(['username' => 'Username atau email sudah digunakan.'])
->withInput();
}
$user = User::create([
'name' => $request->name,
'username' => $request->username,
'email' => $request->email,
'password' => bcrypt($request->password),
'role' => 'siswa',
]);
return redirect('/login')->with('success', 'Registrasi berhasil! Silakan login.');
}
public function showResetForm(Request $request, $token = null)
{
return view('auth.reset-password')->with(
['email' => $request->email, 'token' => $token]
);
}
public function showLinkRequestForm(Request $request)
{
return view('auth.forgot-password');
}
// Mengirim email tautan reset password
public function sendResetLinkEmail(Request $request)
{
$request->validate(['email' => 'required|email']);
$status = Password::sendResetLink(
$request->only('email')
);
return $status === Password::RESET_LINK_SENT
? back()->with(['status' => __($status)])
: back()->withErrors(['email' => __($status)]);
}
// Menangani proses reset password
public function resetPassword(Request $request)
{
$request->validate([
'token' => 'required',
'email' => 'required|email',
'password' => 'required|confirmed|min:6',
]);
$status = Password::reset(
$request->only('email', 'password', 'password_confirmation', 'token'),
function ($user, $password) {
$user->forceFill([
'password' => bcrypt($password),
'remember_token' => Str::random(60),
])->save();
// Hapus token "remember me" setelah reset password
$user->tokens()->delete();
}
);
return $status == Password::PASSWORD_RESET
? redirect('/login')->with(['status' => __($status)])
: back()->withErrors(['email' => [__($status)]]);
}
public function logout(Request $request)
{
$guard = 'web'; // Sesuaikan dengan guard yang digunakan
// Hapus seluruh cookie sesi
Session::flush();
// Logout pengguna
Auth::guard($guard)->logout();
return redirect('/login')->with('success', 'Terimakasih sudah logout! Silakan login kembali.');
} }
} }

View File

@ -19,7 +19,8 @@ class User extends Authenticatable
*/ */
protected $fillable = [ protected $fillable = [
'name', 'name',
'nomorinduk', // Ubah 'email' menjadi 'NIS' 'username',
'email',
'password', 'password',
'role', 'role',
]; ];

View File

@ -14,7 +14,9 @@ public function up(): void
Schema::create('users', function (Blueprint $table) { Schema::create('users', function (Blueprint $table) {
$table->id(); $table->id();
$table->string('name'); $table->string('name');
$table->string('nomorinduk')->unique(); $table->string('username');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password'); $table->string('password');
$table->string('role'); $table->string('role');
$table->rememberToken(); $table->rememberToken();

View File

@ -381,8 +381,8 @@ .highcharts-root{
.bootstrap-select .dropdown-toggle{ .bootstrap-select .dropdown-toggle{
height: 45px; height: 45px;
padding-right: 30px; padding-right: 30px;
font-size: 14px; font-size: 12px;
font-weight: 400; font-weight: 200;
} }
.bootstrap-select.form-control-sm .dropdown-toggle{ .bootstrap-select.form-control-sm .dropdown-toggle{
height: 38px; height: 38px;
@ -1131,12 +1131,12 @@ .user-info-dropdown .dropdown-toggle{
font-size: 16px; font-size: 16px;
} }
.user-info-dropdown .dropdown-toggle .user-icon{ .user-info-dropdown .dropdown-toggle .user-icon{
width: 52px; width: 20px;
height: 52px; height: 20px;
font-size: 24px; font-size: 10px;
background: #ebeff3; background: #ebeff3;
color: #1b00ff; color: #1b00ff;
line-height: 52px; line-height: 20px;
text-align: center; text-align: center;
display: inline-block; display: inline-block;
vertical-align: middle; vertical-align: middle;
@ -1468,7 +1468,7 @@ .sidebar-menu .dropdown-toggle .micon{
left: 10px; left: 10px;
width: 42px; width: 42px;
height: 42px; height: 42px;
font-size: 22px; font-size: 12px;
font-weight: 400; font-weight: 400;
display: flex; display: flex;
align-items: center; align-items: center;

View File

@ -0,0 +1,47 @@
@extends('layout.main')
<body class="forgot-password-page">
<div class="login-wrap d-flex align-items-center flex-wrap justify-content-center">
<div class="container">
<div class="row align-items-center">
<div class="col-md-6 col-lg-7">
<img src="{{ asset('vendors/images/forgot-password.png') }}" alt="">
</div>
@if(session('error'))
<div class="alert alert-danger">{{ session('error') }}</div>
@endif
<div class="col-md-6 col-lg-5">
<div class="login-box bg-white box-shadow border-radius-10">
<div class="login-title">
<h2 class="text-center text-primary">Forgot Password</h2>
</div>
<form method="POST" action="{{ route('password.email') }}">
@csrf
<div class="input-group custom mb-2">
<input id="email" type="text" class="form-control" name="email" placeholder="email" value="{{ old('email') }}">
<div class="input-group-append custom">
<span class="input-group-text"><i class="icon-copy dw dw-user1"></i></span>
</div>
</div>
@if($errors->has('email'))
<div class="alert alert-danger">{{ $errors->first('email') }}</div>
@endif
<div class="row">
<div class="col-sm-12">
<div class="input-group mb-2">
<button class="btn btn-primary btn-lg btn-block" type="submit">Send Link</button>
</div>
<div class="input-group mb-2">
<a
class="btn btn-outline-primary btn-lg btn-block"
href="/login">Back to Login</a>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</body>

View File

@ -1,59 +1,65 @@
<!DOCTYPE html> @extends('layout.main')
<html lang="en">
<head> <body class="login-page">
<meta charset="UTF-8"> <div class="login-wrap d-flex align-items-center flex-wrap justify-content-center">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Login</title>
<link rel="stylesheet" href="{{ asset('css/app.css') }}">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css">
<link rel="stylesheet" href="https://unpkg.com/bootstrap@5.3.2/dist/css/bootstrap.min.css">
</head>
<body>
<section class="bg-light p-3 p-md-4 p-xl-5">
<div class="container"> <div class="container">
<div class="row justify-content-center"> <div class="row align-items-center">
<div class="col-12 col-xxl-11"> <div class="col-md-6 col-lg-7">
<div class="card border-light-subtle shadow-sm"> <img src="{{ asset('vendors/images/login-page-img.png') }}" alt="">
<div class="row g-0">
<div class="col-12 col-md-6">
<img class="img-fluid rounded-start w-100 h-100 object-fit-cover" loading="lazy" src="{{ asset('img/login.jpeg') }}" alt="Welcome back you've been missed!">
</div> </div>
<div class="col-12 col-md-6 d-flex align-items-center justify-content-center">
<div class="col-12 col-lg-11 col-xl-10">
<div class="card-body p-3 p-md-4 p-xl-5">
@if(session('error')) @if(session('error'))
<div class="alert alert-danger">{{ session('error') }}</div> <div class="alert alert-danger">{{ session('error') }}</div>
@endif @endif
<div class="row"> <div class="col-md-6 col-lg-5">
<div class="col-12"> <div class="login-box bg-white box-shadow border-radius-10">
<div class="mb-5"> <div class="login-title">
<div class="text-center mb-4"> <h2 class="text-center text-primary">Login</h2>
<a href="#!">
<img src="{{ asset('img/logo.png') }}" alt="BootstrapBrain Logo" width="220" height="90">
</a>
</div>
<h4 class="text-center">Selamat Datang !</h4>
</div>
</div>
</div> </div>
<form method="POST" action="{{ route('login') }}"> <form method="POST" action="{{ route('login') }}">
@csrf @csrf
<div class="row gy-3 overflow-hidden"> <div class="input-group custom mb-2">
<div class="col-12"> <input id="username" type="text" class="form-control" name="username" placeholder="username" required>
<div class="form-floating mb-3"> <div class="input-group-append custom">
<input id="nomorinduk" type="text" class="form-control" name="nomorinduk" placeholder="NIP/NIS"> <span class="input-group-text"><i class="icon-copy dw dw-user1"></i></span>
<label for="nomorinduk" class="form-label">NIP/NIS</label>
</div> </div>
</div> </div>
<div class="col-12"> @if($errors->has('username'))
<div class="form-floating mb-3"> <div class="alert alert-danger">{{ $errors->first('username') }}</div>
<input type="password" class="form-control" name="password" id="password" value="" placeholder="Password" required> @endif
<label for="password" class="form-label">Password</label> <div class="input-group custom mb-2">
<input type="password" class="form-control" name="password" id="password" value="" placeholder="password" required>
<div class="input-group-append custom">
<span class="input-group-text"><i class="dw dw-padlock1"></i></span>
</div> </div>
</div> </div>
<div class="d-grid"> @if($errors->has('password'))
<button class="btn btn-dark btn-lg" type="submit">Log in now</button> <div class="alert alert-danger">{{ $errors->first('password') }}</div>
@endif
<div class="row pb-30">
<div class="col-6">
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="customCheck1"/>
<label class="custom-control-label" for="customCheck1">Remember</label>
</div>
</div>
<div class="col-6">
<div class="forgot-password">
<a href="{{ route('password.request') }}">Forgot Password?</a>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<div class="input-group mb-0">
<button class="btn btn-primary btn-lg btn-block" type="submit">Login</button>
</div>
<small class="d-block text-center my-3">Don't have an account?
</small>
<div class="input-group mb-0">
<a
class="btn btn-outline-primary btn-lg btn-block"
href="/register">Register To Create Account</a>
</div>
</div> </div>
</div> </div>
</form> </form>
@ -62,9 +68,5 @@
</div> </div>
</div> </div>
</div> </div>
</div> </body>
</div>
</div>
</section>
</body>
</html> </html>

View File

@ -0,0 +1,73 @@
@extends('layout.main')
<body class="register-page">
<div class="login-wrap d-flex align-items-center flex-wrap justify-content-center">
<div class="container">
<div class="row align-items-center">
<div class="col-md-6 col-lg-7">
<img src="{{ asset('vendors/images/register-page-img.png') }}" alt="">
</div>
@if(session('error'))
<div class="alert alert-danger">{{ session('error') }}</div>
@endif
<div class="col-md-6 col-lg-5">
<div class="login-box bg-white box-shadow border-radius-10">
<div class="login-title">
<h2 class="text-center text-primary">Register</h2>
</div>
<form method="POST" action="{{ route('register') }}">
@csrf
<div class="input-group custom mb-2">
<input id="name" type="text" class="form-control" name="name" placeholder="name" value="{{ old('name') }}">
<div class="input-group-append custom">
<span class="input-group-text"><i class="icon-copy dw dw-user1"></i></span>
</div>
</div>
@if($errors->has('name'))
<div class="alert alert-danger">{{ $errors->first('name') }}</div>
@endif
<div class="input-group custom mb-2">
<input id="username" type="text" class="form-control" name="username" placeholder="username" value="{{ old('username') }}">
<div class="input-group-append custom">
<span class="input-group-text"><i class="icon-copy dw dw-user1"></i></span>
</div>
</div>
@if($errors->has('username'))
<div class="alert alert-danger">{{ $errors->first('username') }}</div>
@endif
<div class="input-group custom mb-2">
<input id="email" type="email" class="form-control" name="email" placeholder="email" value="{{ old('email') }}">
<div class="input-group-append custom">
<span class="input-group-text"><i class="icon-copy dw dw-email"></i></span>
</div>
</div>
@if($errors->has('email'))
<div class="alert alert-danger">{{ $errors->first('email') }}</div>
@endif
<div class="input-group custom mb-2">
<input type="password" class="form-control" name="password" id="password" value="" placeholder="password" required>
<div class="input-group-append custom">
<span class="input-group-text"><i class="dw dw-padlock1"></i></span>
</div>
</div>
@if($errors->has('password'))
<div class="alert alert-danger">{{ $errors->first('password') }}</div>
@endif
<div class="row">
<div class="col-sm-12">
<div class="input-group mb-0">
<button class="btn btn-primary btn-lg btn-block" type="submit">Register</button>
</div>
<small class="d-block text-center my-3">Already have an account?</small>
<div class="input-group mb-0">
<a class="btn btn-outline-primary btn-lg btn-block" href="/login">Login</a>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</body>

View File

@ -0,0 +1,61 @@
@extends('layout.main')
<body class="reset-password-page">
<div class="login-wrap d-flex align-items-center flex-wrap justify-content-center">
<div class="container">
<div class="row align-items-center">
<div class="col-md-6 col-lg-7">
<img src="{{ asset('vendors/images/forgot-password.png') }}" alt="">
{{-- <img src="vendors/images/login-page-img.png" alt="" /> --}}
</div>
@if(session('error'))
<div class="alert alert-danger">{{ session('error') }}</div>
@endif
<div class="col-md-6 col-lg-5">
<div class="login-box bg-white box-shadow border-radius-10">
<div class="login-title">
<h2 class="text-center text-primary">Reset Password</h2>
</div>
<form method="POST" action="{{ route('password.update') }}">
@csrf
@if($errors->has('email'))
<div class="alert alert-danger">{{ $errors->first('email') }}</div>
@endif
<div class="input-group custom mb-2">
<input id="email" type="text" class="form-control" name="email" placeholder="email" value="{{ $email ?? old('email') }}">
<div class="input-group-append custom">
<span class="input-group-text"><i class="icon-copy dw dw-user1"></i></span>
</div>
</div>
@if($errors->has('password'))
<div class="alert alert-danger">{{ $errors->first('password') }}</div>
@endif
<div class="input-group custom mb-2">
<input type="password" class="form-control" name="password" id="password" value="" placeholder="password" required>
<div class="input-group-append custom">
<span class="input-group-text"><i class="dw dw-padlock1"></i></span>
</div>
</div>
@if($errors->has('password_confirmation'))
<div class="alert alert-danger">{{ $errors->first('password_confirmation') }}</div>
@endif
<div class="input-group custom mb-2">
<input type="password_confirmation" class="form-control" name="password_confirmation" id="password_confirmation" value="" placeholder="confirm password" required>
<div class="input-group-append custom">
<span class="input-group-text"><i class="dw dw-padlock1"></i></span>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<div class="input-group mb-2">
<button class="btn btn-primary btn-lg btn-block" type="submit">Reset</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</body>

View File

@ -0,0 +1 @@
ini halaman index

View File

@ -0,0 +1,91 @@
<!DOCTYPE html>
<html>
<head>
<!-- Basic Page Info -->
<meta charset="utf-8" />
<title>DeskApp</title>
<!-- Site favicon -->
<link rel="apple-touch-icon" sizes="180x180" href="{{ asset('vendors/images/apple-touch-icon.png') }}" />
<link rel="icon" type="image/png" sizes="32x32" href="{{ asset('vendors/images/favicon-32x32.png') }}" />
<link rel="icon" type="image/png" sizes="16x16" href="{{ asset('vendors/images/favicon-16x16.png') }}" />
<!-- Mobile Specific Metas -->
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<!-- Google Font -->
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"
rel="stylesheet" />
<!-- CSS -->
<link rel="stylesheet" type="text/css" href="{{ asset('vendors/styles/core.css') }}" />
<link rel="stylesheet" type="text/css" href="{{ asset('vendors/styles/icon-font.min.css') }}" />
<link rel="stylesheet" type="text/css"
href="{{ asset('src/plugins/datatables/css/dataTables.bootstrap4.min.css') }}" />
<link rel="stylesheet" type="text/css"
href="{{ asset('src/plugins/datatables/css/responsive.bootstrap4.min.css') }}" />
<link rel="stylesheet" type="text/css" href="{{ asset('vendors/styles/style.css') }}" />
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-GBZ3SGGX85"></script>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2973766580778258"
crossorigin="anonymous"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag("js", new Date());
gtag("config", "G-GBZ3SGGX85");
</script>
<!-- Google Tag Manager -->
<script>
(function(w, d, s, l, i) {
w[l] = w[l] || [];
w[l].push({
"gtm.start": new Date().getTime(),
event: "gtm.js"
});
var f = d.getElementsByTagName(s)[0],
j = d.createElement(s),
dl = l != "dataLayer" ? "&l=" + l : "";
j.async = true;
j.src = "https://www.googletagmanager.com/gtm.js?id=" + i + dl;
f.parentNode.insertBefore(j, f);
})(window, document, "script", "dataLayer", "GTM-NXZMQSS");
</script>
<!-- End Google Tag Manager -->
</head>
<body>
<div id="app">
@yield('body')
</div>
</div>
<!-- js -->
<script src="{{ asset('vendors/scripts/core.js') }}"></script>
<script src="{{ asset('vendors/scripts/script.min.js') }}"></script>
<script src="{{ asset('vendors/scripts/process.js') }}"></script>
<script src="{{ asset('vendors/scripts/layout-settings.js') }}"></script>
<script src="{{ asset('src/plugins/apexcharts/apexcharts.min.js') }}"></script>
<script src="{{ asset('src/plugins/datatables/js/jquery.dataTables.min.js') }}"></script>
<script src="{{ asset('src/plugins/datatables/js/dataTables.bootstrap4.min.js') }}"></script>
<script src="{{ asset('src/plugins/datatables/js/dataTables.responsive.min.js') }}"></script>
<script src="{{ asset('src/plugins/datatables/js/responsive.bootstrap4.min.js') }}"></script>
<script src="{{ asset('vendors/scripts/dashboard.js') }}"></script>
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NXZMQSS" height="0" width="0"
style="display: none; visibility: hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
{{-- @include('sweetalert::alert') --}}
</body>
</html>

View File

@ -1,71 +1,36 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head>
<head>
<!-- Basic Page Info --> <!-- Basic Page Info -->
<meta charset="utf-8" /> <meta charset="utf-8" />
<title>DeskApp - Bootstrap Admin Dashboard HTML Template</title> <title>DeskApp - Bootstrap Admin Dashboard HTML Template</title>
<!-- Site favicon --> <!-- Site favicon -->
<link <link rel="apple-touch-icon" sizes="180x180" href="vendors/images/apple-touch-icon.png" />
rel="apple-touch-icon" <link rel="icon" type="image/png" sizes="32x32" href="vendors/images/favicon-32x32.png" />
sizes="180x180" <link rel="icon" type="image/png" sizes="16x16" href="vendors/images/favicon-16x16.png" />
href="vendors/images/apple-touch-icon.png"
/>
<link
rel="icon"
type="image/png"
sizes="32x32"
href="vendors/images/favicon-32x32.png"
/>
<link
rel="icon"
type="image/png"
sizes="16x16"
href="vendors/images/favicon-16x16.png"
/>
<!-- Mobile Specific Metas --> <!-- Mobile Specific Metas -->
<meta <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1"
/>
<!-- Google Font --> <!-- Google Font -->
<link <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap" rel="stylesheet" />
rel="stylesheet"
/>
<!-- CSS --> <!-- CSS -->
<link rel="stylesheet" type="text/css" href="vendors/styles/core.css" /> <link rel="stylesheet" type="text/css" href="vendors/styles/core.css" />
<link <link rel="stylesheet" type="text/css" href="vendors/styles/icon-font.min.css" />
rel="stylesheet" <link rel="stylesheet" type="text/css" href="src/plugins/datatables/css/dataTables.bootstrap4.min.css" />
type="text/css" <link rel="stylesheet" type="text/css" href="src/plugins/datatables/css/responsive.bootstrap4.min.css" />
href="vendors/styles/icon-font.min.css"
/>
<link
rel="stylesheet"
type="text/css"
href="src/plugins/datatables/css/dataTables.bootstrap4.min.css"
/>
<link
rel="stylesheet"
type="text/css"
href="src/plugins/datatables/css/responsive.bootstrap4.min.css"
/>
<link rel="stylesheet" type="text/css" href="vendors/styles/style.css" /> <link rel="stylesheet" type="text/css" href="vendors/styles/style.css" />
<!-- Global site tag (gtag.js) - Google Analytics --> <!-- Global site tag (gtag.js) - Google Analytics -->
<script <script async src="https://www.googletagmanager.com/gtag/js?id=G-GBZ3SGGX85"></script>
async <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2973766580778258"
src="https://www.googletagmanager.com/gtag/js?id=G-GBZ3SGGX85" crossorigin="anonymous"></script>
></script>
<script
async
src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2973766580778258"
crossorigin="anonymous"
></script>
<script> <script>
window.dataLayer = window.dataLayer || []; window.dataLayer = window.dataLayer || [];
function gtag() { function gtag() {
dataLayer.push(arguments); dataLayer.push(arguments);
} }
@ -75,9 +40,12 @@ function gtag() {
</script> </script>
<!-- Google Tag Manager --> <!-- Google Tag Manager -->
<script> <script>
(function (w, d, s, l, i) { (function(w, d, s, l, i) {
w[l] = w[l] || []; w[l] = w[l] || [];
w[l].push({ "gtm.start": new Date().getTime(), event: "gtm.js" }); w[l].push({
"gtm.start": new Date().getTime(),
event: "gtm.js"
});
var f = d.getElementsByTagName(s)[0], var f = d.getElementsByTagName(s)[0],
j = d.createElement(s), j = d.createElement(s),
dl = l != "dataLayer" ? "&l=" + l : ""; dl = l != "dataLayer" ? "&l=" + l : "";
@ -87,76 +55,39 @@ function gtag() {
})(window, document, "script", "dataLayer", "GTM-NXZMQSS"); })(window, document, "script", "dataLayer", "GTM-NXZMQSS");
</script> </script>
<!-- End Google Tag Manager --> <!-- End Google Tag Manager -->
</head> </head>
<body>
<!-- <div class="pre-loader">
<div class="pre-loader-box">
<div class="loader-logo">
<img src="vendors/images/deskapp-logo.svg" alt="" />
</div>
<div class="loader-progress" id="progress_div">
<div class="bar" id="bar1"></div>
</div>
<div class="percent" id="percent1">0%</div>
<div class="loading-text">Loading...</div>
</div>
</div> -->
<body>
<div class="header"> <div class="header">
<div class="header-left"> <div class="header-left">
<div class="menu-icon bi bi-list"></div> <div class="menu-icon bi bi-list"></div>
<div <div class="search-toggle-icon bi bi-search" data-toggle="header_search"></div>
class="search-toggle-icon bi bi-search"
data-toggle="header_search"
></div>
<div class="header-search"> <div class="header-search">
<form> <form>
<div class="form-group mb-0"> <div class="form-group mb-0">
<i class="dw dw-search2 search-icon"></i> <i class="dw dw-search2 search-icon"></i>
<input <input type="text" class="form-control search-input" placeholder="Search Here" />
type="text"
class="form-control search-input"
placeholder="Search Here"
/>
<div class="dropdown"> <div class="dropdown">
<a <a class="dropdown-toggle no-arrow" href="#" role="button" data-toggle="dropdown">
class="dropdown-toggle no-arrow"
href="#"
role="button"
data-toggle="dropdown"
>
<i class="ion-arrow-down-c"></i> <i class="ion-arrow-down-c"></i>
</a> </a>
<div class="dropdown-menu dropdown-menu-right"> <div class="dropdown-menu dropdown-menu-right">
<div class="form-group row"> <div class="form-group row">
<label class="col-sm-12 col-md-2 col-form-label" <label class="col-sm-12 col-md-2 col-form-label">From</label>
>From</label
>
<div class="col-sm-12 col-md-10"> <div class="col-sm-12 col-md-10">
<input <input class="form-control form-control-sm form-control-line" type="text" />
class="form-control form-control-sm form-control-line"
type="text"
/>
</div> </div>
</div> </div>
<div class="form-group row"> <div class="form-group row">
<label class="col-sm-12 col-md-2 col-form-label">To</label> <label class="col-sm-12 col-md-2 col-form-label">To</label>
<div class="col-sm-12 col-md-10"> <div class="col-sm-12 col-md-10">
<input <input class="form-control form-control-sm form-control-line" type="text" />
class="form-control form-control-sm form-control-line"
type="text"
/>
</div> </div>
</div> </div>
<div class="form-group row"> <div class="form-group row">
<label class="col-sm-12 col-md-2 col-form-label" <label class="col-sm-12 col-md-2 col-form-label">Subject</label>
>Subject</label
>
<div class="col-sm-12 col-md-10"> <div class="col-sm-12 col-md-10">
<input <input class="form-control form-control-sm form-control-line" type="text" />
class="form-control form-control-sm form-control-line"
type="text"
/>
</div> </div>
</div> </div>
<div class="text-right"> <div class="text-right">
@ -171,23 +102,14 @@ class="form-control form-control-sm form-control-line"
<div class="header-right"> <div class="header-right">
<div class="dashboard-setting user-notification"> <div class="dashboard-setting user-notification">
<div class="dropdown"> <div class="dropdown">
<a <a class="dropdown-toggle no-arrow" href="javascript:;" data-toggle="right-sidebar">
class="dropdown-toggle no-arrow"
href="javascript:;"
data-toggle="right-sidebar"
>
<i class="dw dw-settings2"></i> <i class="dw dw-settings2"></i>
</a> </a>
</div> </div>
</div> </div>
<div class="user-notification"> <div class="user-notification">
<div class="dropdown"> <div class="dropdown">
<a <a class="dropdown-toggle no-arrow" href="#" role="button" data-toggle="dropdown">
class="dropdown-toggle no-arrow"
href="#"
role="button"
data-toggle="dropdown"
>
<i class="icon-copy dw dw-notification"></i> <i class="icon-copy dw dw-notification"></i>
<span class="badge notification-active"></span> <span class="badge notification-active"></span>
</a> </a>
@ -261,40 +183,20 @@ class="dropdown-toggle no-arrow"
</div> </div>
<div class="user-info-dropdown"> <div class="user-info-dropdown">
<div class="dropdown"> <div class="dropdown">
<a <a class="dropdown-toggle" href="#" role="button" data-toggle="dropdown">
class="dropdown-toggle"
href="#"
role="button"
data-toggle="dropdown"
>
<span class="user-icon"> <span class="user-icon">
<img src="vendors/images/photo1.jpg" alt="" /> <img src="vendors/images/photo1.jpg" alt="" />
</span> </span>
<span class="user-name">Ross C. Lopez</span> <span class="user-name">Ross C. Lopez</span>
</a> </a>
<div <div class="dropdown-menu dropdown-menu-right dropdown-menu-icon-list">
class="dropdown-menu dropdown-menu-right dropdown-menu-icon-list" <a class="dropdown-item" href="profile.html"><i class="dw dw-user1"></i> Profile</a>
> <a class="dropdown-item" href="profile.html"><i class="dw dw-settings2"></i> Setting</a>
<a class="dropdown-item" href="profile.html" <a class="dropdown-item" href="faq.html"><i class="dw dw-help"></i> Help</a>
><i class="dw dw-user1"></i> Profile</a <a class="dropdown-item" href="login.html"><i class="dw dw-logout"></i> Log Out</a>
>
<a class="dropdown-item" href="profile.html"
><i class="dw dw-settings2"></i> Setting</a
>
<a class="dropdown-item" href="faq.html"
><i class="dw dw-help"></i> Help</a
>
<a class="dropdown-item" href="login.html"
><i class="dw dw-logout"></i> Log Out</a
>
</div> </div>
</div> </div>
</div> </div>
<!-- <div class="github-link">
<a href="https://github.com/dropways/deskapp" target="_blank"
><img src="vendors/images/github.svg" alt=""
/></a>
</div> -->
</div> </div>
</div> </div>
@ -302,9 +204,7 @@ class="dropdown-menu dropdown-menu-right dropdown-menu-icon-list"
<div class="sidebar-title"> <div class="sidebar-title">
<h3 class="weight-600 font-16 text-blue"> <h3 class="weight-600 font-16 text-blue">
Layout Settings Layout Settings
<span class="btn-block font-weight-400 font-12" <span class="btn-block font-weight-400 font-12">User Interface Settings</span>
>User Interface Settings</span
>
</h3> </h3>
<!-- <div class="close-sidebar" data-toggle="right-sidebar-close"> <!-- <div class="close-sidebar" data-toggle="right-sidebar-close">
<i class="icon-copy ion-close-round"></i> <i class="icon-copy ion-close-round"></i>
@ -314,148 +214,75 @@ class="dropdown-menu dropdown-menu-right dropdown-menu-icon-list"
<div class="right-sidebar-body-content"> <div class="right-sidebar-body-content">
<h4 class="weight-600 font-18 pb-10">Header Background</h4> <h4 class="weight-600 font-18 pb-10">Header Background</h4>
<div class="sidebar-btn-group pb-30 mb-10"> <div class="sidebar-btn-group pb-30 mb-10">
<a <a href="javascript:void(0);" class="btn btn-outline-primary header-white active">White</a>
href="javascript:void(0);" <a href="javascript:void(0);" class="btn btn-outline-primary header-dark">Dark</a>
class="btn btn-outline-primary header-white active"
>White</a
>
<a
href="javascript:void(0);"
class="btn btn-outline-primary header-dark"
>Dark</a
>
</div> </div>
<h4 class="weight-600 font-18 pb-10">Sidebar Background</h4> <h4 class="weight-600 font-18 pb-10">Sidebar Background</h4>
<div class="sidebar-btn-group pb-30 mb-10"> <div class="sidebar-btn-group pb-30 mb-10">
<a <a href="javascript:void(0);" class="btn btn-outline-primary sidebar-light">White</a>
href="javascript:void(0);" <a href="javascript:void(0);" class="btn btn-outline-primary sidebar-dark active">Dark</a>
class="btn btn-outline-primary sidebar-light"
>White</a
>
<a
href="javascript:void(0);"
class="btn btn-outline-primary sidebar-dark active"
>Dark</a
>
</div> </div>
<h4 class="weight-600 font-18 pb-10">Menu Dropdown Icon</h4> <h4 class="weight-600 font-18 pb-10">Menu Dropdown Icon</h4>
<div class="sidebar-radio-group pb-10 mb-10"> <div class="sidebar-radio-group pb-10 mb-10">
<div class="custom-control custom-radio custom-control-inline"> <div class="custom-control custom-radio custom-control-inline">
<input <input type="radio" id="sidebaricon-1" name="menu-dropdown-icon"
type="radio" class="custom-control-input" value="icon-style-1" checked="" />
id="sidebaricon-1" <label class="custom-control-label" for="sidebaricon-1"><i
name="menu-dropdown-icon" class="fa fa-angle-down"></i></label>
class="custom-control-input"
value="icon-style-1"
checked=""
/>
<label class="custom-control-label" for="sidebaricon-1"
><i class="fa fa-angle-down"></i
></label>
</div> </div>
<div class="custom-control custom-radio custom-control-inline"> <div class="custom-control custom-radio custom-control-inline">
<input <input type="radio" id="sidebaricon-2" name="menu-dropdown-icon"
type="radio" class="custom-control-input" value="icon-style-2" />
id="sidebaricon-2" <label class="custom-control-label" for="sidebaricon-2"><i
name="menu-dropdown-icon" class="ion-plus-round"></i></label>
class="custom-control-input"
value="icon-style-2"
/>
<label class="custom-control-label" for="sidebaricon-2"
><i class="ion-plus-round"></i
></label>
</div> </div>
<div class="custom-control custom-radio custom-control-inline"> <div class="custom-control custom-radio custom-control-inline">
<input <input type="radio" id="sidebaricon-3" name="menu-dropdown-icon"
type="radio" class="custom-control-input" value="icon-style-3" />
id="sidebaricon-3" <label class="custom-control-label" for="sidebaricon-3"><i
name="menu-dropdown-icon" class="fa fa-angle-double-right"></i></label>
class="custom-control-input"
value="icon-style-3"
/>
<label class="custom-control-label" for="sidebaricon-3"
><i class="fa fa-angle-double-right"></i
></label>
</div> </div>
</div> </div>
<h4 class="weight-600 font-18 pb-10">Menu List Icon</h4> <h4 class="weight-600 font-18 pb-10">Menu List Icon</h4>
<div class="sidebar-radio-group pb-30 mb-10"> <div class="sidebar-radio-group pb-30 mb-10">
<div class="custom-control custom-radio custom-control-inline"> <div class="custom-control custom-radio custom-control-inline">
<input <input type="radio" id="sidebariconlist-1" name="menu-list-icon"
type="radio" class="custom-control-input" value="icon-list-style-1" checked="" />
id="sidebariconlist-1" <label class="custom-control-label" for="sidebariconlist-1"><i
name="menu-list-icon" class="ion-minus-round"></i></label>
class="custom-control-input"
value="icon-list-style-1"
checked=""
/>
<label class="custom-control-label" for="sidebariconlist-1"
><i class="ion-minus-round"></i
></label>
</div> </div>
<div class="custom-control custom-radio custom-control-inline"> <div class="custom-control custom-radio custom-control-inline">
<input <input type="radio" id="sidebariconlist-2" name="menu-list-icon"
type="radio" class="custom-control-input" value="icon-list-style-2" />
id="sidebariconlist-2" <label class="custom-control-label" for="sidebariconlist-2"><i class="fa fa-circle-o"
name="menu-list-icon" aria-hidden="true"></i></label>
class="custom-control-input"
value="icon-list-style-2"
/>
<label class="custom-control-label" for="sidebariconlist-2"
><i class="fa fa-circle-o" aria-hidden="true"></i
></label>
</div> </div>
<div class="custom-control custom-radio custom-control-inline"> <div class="custom-control custom-radio custom-control-inline">
<input <input type="radio" id="sidebariconlist-3" name="menu-list-icon"
type="radio" class="custom-control-input" value="icon-list-style-3" />
id="sidebariconlist-3" <label class="custom-control-label" for="sidebariconlist-3"><i
name="menu-list-icon" class="dw dw-check"></i></label>
class="custom-control-input"
value="icon-list-style-3"
/>
<label class="custom-control-label" for="sidebariconlist-3"
><i class="dw dw-check"></i
></label>
</div> </div>
<div class="custom-control custom-radio custom-control-inline"> <div class="custom-control custom-radio custom-control-inline">
<input <input type="radio" id="sidebariconlist-4" name="menu-list-icon"
type="radio" class="custom-control-input" value="icon-list-style-4" checked="" />
id="sidebariconlist-4" <label class="custom-control-label" for="sidebariconlist-4"><i
name="menu-list-icon" class="icon-copy dw dw-next-2"></i></label>
class="custom-control-input"
value="icon-list-style-4"
checked=""
/>
<label class="custom-control-label" for="sidebariconlist-4"
><i class="icon-copy dw dw-next-2"></i
></label>
</div> </div>
<div class="custom-control custom-radio custom-control-inline"> <div class="custom-control custom-radio custom-control-inline">
<input <input type="radio" id="sidebariconlist-5" name="menu-list-icon"
type="radio" class="custom-control-input" value="icon-list-style-5" />
id="sidebariconlist-5" <label class="custom-control-label" for="sidebariconlist-5"><i
name="menu-list-icon" class="dw dw-fast-forward-1"></i></label>
class="custom-control-input"
value="icon-list-style-5"
/>
<label class="custom-control-label" for="sidebariconlist-5"
><i class="dw dw-fast-forward-1"></i
></label>
</div> </div>
<div class="custom-control custom-radio custom-control-inline"> <div class="custom-control custom-radio custom-control-inline">
<input <input type="radio" id="sidebariconlist-6" name="menu-list-icon"
type="radio" class="custom-control-input" value="icon-list-style-6" />
id="sidebariconlist-6" <label class="custom-control-label" for="sidebariconlist-6"><i
name="menu-list-icon" class="dw dw-next"></i></label>
class="custom-control-input"
value="icon-list-style-6"
/>
<label class="custom-control-label" for="sidebariconlist-6"
><i class="dw dw-next"></i
></label>
</div> </div>
</div> </div>
@ -472,11 +299,7 @@ class="custom-control-input"
<div class="brand-logo"> <div class="brand-logo">
<a href="index.html"> <a href="index.html">
<img src="vendors/images/deskapp-logo.svg" alt="" class="dark-logo" /> <img src="vendors/images/deskapp-logo.svg" alt="" class="dark-logo" />
<img <img src="vendors/images/deskapp-logo-white.svg" alt="" class="light-logo" />
src="vendors/images/deskapp-logo-white.svg"
alt=""
class="light-logo"
/>
</a> </a>
<!-- <div class="close-sidebar" data-toggle="left-sidebar-close"> <!-- <div class="close-sidebar" data-toggle="left-sidebar-close">
<i class="ion-close-round"></i> <i class="ion-close-round"></i>
@ -487,8 +310,7 @@ class="light-logo"
<ul id="accordion-menu"> <ul id="accordion-menu">
<li class="dropdown"> <li class="dropdown">
<a href="javascript:;" class="dropdown-toggle"> <a href="javascript:;" class="dropdown-toggle">
<span class="micon bi bi-house"></span <span class="micon bi bi-house"></span><span class="mtext">Home</span>
><span class="mtext">Home</span>
</a> </a>
<ul class="submenu"> <ul class="submenu">
<li><a href="index.html">Dashboard style 1</a></li> <li><a href="index.html">Dashboard style 1</a></li>
@ -498,8 +320,7 @@ class="light-logo"
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="javascript:;" class="dropdown-toggle"> <a href="javascript:;" class="dropdown-toggle">
<span class="micon bi bi-textarea-resize"></span <span class="micon bi bi-textarea-resize"></span><span class="mtext">Forms</span>
><span class="mtext">Forms</span>
</a> </a>
<ul class="submenu"> <ul class="submenu">
<li><a href="form-basic.html">Form Basic</a></li> <li><a href="form-basic.html">Form Basic</a></li>
@ -515,8 +336,7 @@ class="light-logo"
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="javascript:;" class="dropdown-toggle"> <a href="javascript:;" class="dropdown-toggle">
<span class="micon bi bi-table"></span <span class="micon bi bi-table"></span><span class="mtext">Tables</span>
><span class="mtext">Tables</span>
</a> </a>
<ul class="submenu"> <ul class="submenu">
<li><a href="basic-table.html">Basic Tables</a></li> <li><a href="basic-table.html">Basic Tables</a></li>
@ -525,14 +345,12 @@ class="light-logo"
</li> </li>
<li> <li>
<a href="calendar.html" class="dropdown-toggle no-arrow"> <a href="calendar.html" class="dropdown-toggle no-arrow">
<span class="micon bi bi-calendar4-week"></span <span class="micon bi bi-calendar4-week"></span><span class="mtext">Calendar</span>
><span class="mtext">Calendar</span>
</a> </a>
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="javascript:;" class="dropdown-toggle"> <a href="javascript:;" class="dropdown-toggle">
<span class="micon bi bi-archive"></span <span class="micon bi bi-archive"></span><span class="mtext"> UI Elements </span>
><span class="mtext"> UI Elements </span>
</a> </a>
<ul class="submenu"> <ul class="submenu">
<li><a href="ui-buttons.html">Buttons</a></li> <li><a href="ui-buttons.html">Buttons</a></li>
@ -555,8 +373,7 @@ class="light-logo"
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="javascript:;" class="dropdown-toggle"> <a href="javascript:;" class="dropdown-toggle">
<span class="micon bi bi-command"></span <span class="micon bi bi-command"></span><span class="mtext">Icons</span>
><span class="mtext">Icons</span>
</a> </a>
<ul class="submenu"> <ul class="submenu">
<li><a href="bootstrap-icon.html">Bootstrap Icons</a></li> <li><a href="bootstrap-icon.html">Bootstrap Icons</a></li>
@ -569,8 +386,7 @@ class="light-logo"
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="javascript:;" class="dropdown-toggle"> <a href="javascript:;" class="dropdown-toggle">
<span class="micon bi bi-pie-chart"></span <span class="micon bi bi-pie-chart"></span><span class="mtext">Charts</span>
><span class="mtext">Charts</span>
</a> </a>
<ul class="submenu"> <ul class="submenu">
<li><a href="highchart.html">Highchart</a></li> <li><a href="highchart.html">Highchart</a></li>
@ -581,8 +397,8 @@ class="light-logo"
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="javascript:;" class="dropdown-toggle"> <a href="javascript:;" class="dropdown-toggle">
<span class="micon bi bi-file-earmark-text"></span <span class="micon bi bi-file-earmark-text"></span><span class="mtext">Additional
><span class="mtext">Additional Pages</span> Pages</span>
</a> </a>
<ul class="submenu"> <ul class="submenu">
<li><a href="video-player.html">Video Player</a></li> <li><a href="video-player.html">Video Player</a></li>
@ -593,8 +409,7 @@ class="light-logo"
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="javascript:;" class="dropdown-toggle"> <a href="javascript:;" class="dropdown-toggle">
<span class="micon bi bi-bug"></span <span class="micon bi bi-bug"></span><span class="mtext">Error Pages</span>
><span class="mtext">Error Pages</span>
</a> </a>
<ul class="submenu"> <ul class="submenu">
<li><a href="400.html">400</a></li> <li><a href="400.html">400</a></li>
@ -607,8 +422,7 @@ class="light-logo"
<li class="dropdown"> <li class="dropdown">
<a href="javascript:;" class="dropdown-toggle"> <a href="javascript:;" class="dropdown-toggle">
<span class="micon bi bi-back"></span <span class="micon bi bi-back"></span><span class="mtext">Extra Pages</span>
><span class="mtext">Extra Pages</span>
</a> </a>
<ul class="submenu"> <ul class="submenu">
<li><a href="blank.html">Blank</a></li> <li><a href="blank.html">Blank</a></li>
@ -625,8 +439,7 @@ class="light-logo"
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="javascript:;" class="dropdown-toggle"> <a href="javascript:;" class="dropdown-toggle">
<span class="micon bi bi-hdd-stack"></span <span class="micon bi bi-hdd-stack"></span><span class="mtext">Multi Level Menu</span>
><span class="mtext">Multi Level Menu</span>
</a> </a>
<ul class="submenu"> <ul class="submenu">
<li><a href="javascript:;">Level 1</a></li> <li><a href="javascript:;">Level 1</a></li>
@ -634,8 +447,7 @@ class="light-logo"
<li><a href="javascript:;">Level 1</a></li> <li><a href="javascript:;">Level 1</a></li>
<li class="dropdown"> <li class="dropdown">
<a href="javascript:;" class="dropdown-toggle"> <a href="javascript:;" class="dropdown-toggle">
<span class="micon fa fa-plug"></span <span class="micon fa fa-plug"></span><span class="mtext">Level 2</span>
><span class="mtext">Level 2</span>
</a> </a>
<ul class="submenu child"> <ul class="submenu child">
<li><a href="javascript:;">Level 2</a></li> <li><a href="javascript:;">Level 2</a></li>
@ -649,20 +461,17 @@ class="light-logo"
</li> </li>
<li> <li>
<a href="sitemap.html" class="dropdown-toggle no-arrow"> <a href="sitemap.html" class="dropdown-toggle no-arrow">
<span class="micon bi bi-diagram-3"></span <span class="micon bi bi-diagram-3"></span><span class="mtext">Sitemap</span>
><span class="mtext">Sitemap</span>
</a> </a>
</li> </li>
<li> <li>
<a href="chat.html" class="dropdown-toggle no-arrow"> <a href="chat.html" class="dropdown-toggle no-arrow">
<span class="micon bi bi-chat-right-dots"></span <span class="micon bi bi-chat-right-dots"></span><span class="mtext">Chat</span>
><span class="mtext">Chat</span>
</a> </a>
</li> </li>
<li> <li>
<a href="invoice.html" class="dropdown-toggle no-arrow"> <a href="invoice.html" class="dropdown-toggle no-arrow">
<span class="micon bi bi-receipt-cutoff"></span <span class="micon bi bi-receipt-cutoff"></span><span class="mtext">Invoice</span>
><span class="mtext">Invoice</span>
</a> </a>
</li> </li>
<li> <li>
@ -673,8 +482,7 @@ class="light-logo"
</li> </li>
<li> <li>
<a href="javascript:;" class="dropdown-toggle"> <a href="javascript:;" class="dropdown-toggle">
<span class="micon bi bi-file-pdf"></span <span class="micon bi bi-file-pdf"></span><span class="mtext">Documentation</span>
><span class="mtext">Documentation</span>
</a> </a>
<ul class="submenu"> <ul class="submenu">
<li><a href="introduction.html">Introduction</a></li> <li><a href="introduction.html">Introduction</a></li>
@ -686,16 +494,11 @@ class="light-logo"
</ul> </ul>
</li> </li>
<li> <li>
<a <a href="https://dropways.github.io/deskapp-free-single-page-website-template/"
href="https://dropways.github.io/deskapp-free-single-page-website-template/" target="_blank" class="dropdown-toggle no-arrow">
target="_blank"
class="dropdown-toggle no-arrow"
>
<span class="micon bi bi-layout-text-window-reverse"></span> <span class="micon bi bi-layout-text-window-reverse"></span>
<span class="mtext" <span class="mtext">Landing Page
>Landing Page <img src="vendors/images/coming-soon.png" alt="" width="25" /></span>
<img src="vendors/images/coming-soon.png" alt="" width="25"
/></span>
</a> </a>
</li> </li>
</ul> </ul>
@ -716,14 +519,9 @@ class="dropdown-toggle no-arrow"
<script src="src/plugins/datatables/js/responsive.bootstrap4.min.js"></script> <script src="src/plugins/datatables/js/responsive.bootstrap4.min.js"></script>
<script src="vendors/scripts/dashboard.js"></script> <script src="vendors/scripts/dashboard.js"></script>
<!-- Google Tag Manager (noscript) --> <!-- Google Tag Manager (noscript) -->
<noscript <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NXZMQSS" height="0" width="0"
><iframe style="display: none; visibility: hidden"></iframe></noscript>
src="https://www.googletagmanager.com/ns.html?id=GTM-NXZMQSS"
height="0"
width="0"
style="display: none; visibility: hidden"
></iframe
></noscript>
<!-- End Google Tag Manager (noscript) --> <!-- End Google Tag Manager (noscript) -->
</body> </body>
</html> </html>

View File

@ -0,0 +1,65 @@
@extends('layout.main')
<div class="header">
<div class="header-left">
<div class="menu-icon bi bi-list"></div>
<div class="search-toggle-icon bi bi-search" data-toggle="header_search"></div>
<div class="header-search">
<form>
<div class="form-group mb-0">
<i class="dw dw-search2 search-icon"></i>
<input type="text" class="form-control search-input" placeholder="Search Here" />
<div class="dropdown">
<div class="dropdown-menu dropdown-menu-right">
<div class="form-group row">
<label class="col-sm-12 col-md-2 col-form-label">From</label>
<div class="col-sm-12 col-md-10">
<input class="form-control form-control-sm form-control-line" type="text" />
</div>
</div>
<div class="form-group row">
<label class="col-sm-12 col-md-2 col-form-label">To</label>
<div class="col-sm-12 col-md-10">
<input class="form-control form-control-sm form-control-line" type="text" />
</div>
</div>
<div class="form-group row">
<label class="col-sm-12 col-md-2 col-form-label">Subject</label>
<div class="col-sm-12 col-md-10">
<input class="form-control form-control-sm form-control-line" type="text" />
</div>
</div>
<div class="text-right">
<button class="btn btn-primary">Search</button>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
<div class="header-right">
<div class="user-info-dropdown">
<div class="dropdown">
<a class="dropdown-toggle" href="#" role="button" data-toggle="dropdown">
<span class="user-icon">
{{ strtoupper(substr(Auth::user()->username, 0, 2)) }}
</span>
<span class="user-name"> Hi, {{ Auth::user()->username }}</span>
</a>
<div class="dropdown-menu dropdown-menu-right dropdown-menu-icon-list">
<a class="dropdown-item" href="profile.html"><i class="dw dw-user1"></i> Profile</a>
@auth
<a href="{{ route('logout') }}" class="dropdown-item has-icon text-danger"
onclick="event.preventDefault(); document.getElementById('logout-form').submit();">
<i class="dw dw-logout"></i> Logout
</a>
<form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
@csrf
</form>
@endauth
</div>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,40 @@
@extends('layout.main')
<div class="main-container">
<div class="pd-ltr-20 xs-pd-20-10">
<div class="min-height-200px">
<div class="page-header">
<div class="row">
<div class="col-md-6 col-sm-12">
<div class="title">
<h4>blank</h4>
</div>
<nav aria-label="breadcrumb" role="navigation">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="index.html">Home</a></li>
<li class="breadcrumb-item active" aria-current="page">blank</li>
</ol>
</nav>
</div>
<div class="col-md-6 col-sm-12 text-right">
<div class="dropdown">
<a class="btn btn-primary dropdown-toggle" href="#" role="button" data-toggle="dropdown">
January 2018
</a>
<div class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" href="#">Export List</a>
<a class="dropdown-item" href="#">Policies</a>
<a class="dropdown-item" href="#">View Assets</a>
</div>
</div>
</div>
</div>
</div>
<div class="pd-20 bg-white border-radius-4 box-shadow mb-30">
</div>
</div>
<div class="footer-wrap pd-20 mb-20 card-box">
DeskApp - Bootstrap 4 Admin Template By <a href="https://github.com/dropways" target="_blank">Ankit Hingarajiya</a>
</div>
</div>
</div>

View File

@ -0,0 +1,75 @@
@extends('layout.main')
<div class="left-side-bar">
<div class="brand-logo">
<a href="index.html">
<img src="{{ asset('vendors/images/deskapp-logo.svg') }}" alt="" class="dark-logo" />
<img src="{{ asset('vendors/images/deskapp-logo-white.svg') }}" alt="" class="light-logo" />
</a>
<div class="close-sidebar" data-toggle="left-sidebar-close">
<i class="ion-close-round"></i>
</div>
</div>
<div class="menu-block customscroll">
<div class="sidebar-menu">
<ul id="accordion-menu">
<li>
<div class="sidebar-small-cap">Home</div>
</li>
<li>
<a href="{{ route('siswa.dashboard') }}" class="dropdown-toggle no-arrow">
<span class="micon bi bi-house"></span><span class="mtext">Dashboard</span>
</a>
</li>
<li>
<div class="dropdown-divider"></div>
</li>
<li>
<div class="sidebar-small-cap">Master</div>
</li>
<li>
<a href="invoice.html" class="dropdown-toggle no-arrow">
<span class="micon bi bi-house"></span><span class="mtext">Data Kriteria</span>
</a>
</li>
<li>
<a href="invoice.html" class="dropdown-toggle no-arrow">
<span class="micon bi bi-house"></span><span class="mtext">Data Sub Kriteria</span>
</a>
</li>
<li>
<a href="invoice.html" class="dropdown-toggle no-arrow">
<span class="micon bi bi-house"></span><span class="mtext">Data Ekstrakurikuler</span>
</a>
</li>
<li>
<a href="invoice.html" class="dropdown-toggle no-arrow">
<span class="micon bi bi-house"></span><span class="mtext">Data User</span>
</a>
</li>
<li>
<div class="dropdown-divider"></div>
</li>
<li>
<div class="sidebar-small-cap">Perhitungan</div>
</li>
<li>
<a href="invoice.html" class="dropdown-toggle no-arrow">
<span class="micon bi bi-house"></span><span class="mtext">Hasil Hitung Kriteria</span>
</a>
</li>
<li>
<div class="dropdown-divider"></div>
</li>
<li>
<div class="sidebar-small-cap">Penilaian</div>
</li>
<li>
<a href="invoice.html" class="dropdown-toggle no-arrow">
<span class="micon bi bi-house"></span><span class="mtext">Input Penilaian</span>
</a>
</li>
</ul>
</div>
</div>
</div>

View File

@ -1,25 +1,21 @@
@extends('layouts.siswa') @extends('layout.main')
@section('body')
@include('layout.navbar')
@include('layout.sidebar')
<div class="main-container"> <div class="main-container">
<div class="pd-ltr-20"> <div class="pd-ltr-20">
<div class="card-box pd-20 height-50-p mb-30"> <div class="card-box pd-20 height-50-p mb-30">
<div class="row align-items-center"> <div class="row align-items-center">
<div class="col-md-4">
<img src="{{ asset('vendors/images/banner-img.png') }}" alt="" />
</div>
<div class="col-md-8"> <div class="col-md-8">
<h1 class="font-20 weight-500 mb-10 text-capitalize"> <h1 class="font-20 weight-500 mb-10 text-capitalize">
Selamat Datang Welcome Back!
<div class="weight-600 font-30 text-blue">Hi, {{ auth()->user()->name }}!</div> <div class="weight-600 font-30 text-blue">{{ auth()->user()->name }}!</div>
</h1> </h1>
<p class="font-18 max-width-600">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Unde
hic non repellendus debitis iure, doloremque assumenda. Autem
modi, corrupti, nobis ea iure fugiat, veniam non quaerat
mollitia animi error corporis.
</p>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
@endsection

View File

@ -4,6 +4,7 @@
use App\Http\Controllers\AuthController; use App\Http\Controllers\AuthController;
use App\Http\Controllers\WakilKepalaController; use App\Http\Controllers\WakilKepalaController;
use App\Http\Controllers\SiswaController; use App\Http\Controllers\SiswaController;
use Illuminate\Support\Facades\Auth;
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -29,10 +30,35 @@
})->name('ekstrakurikuler'); })->name('ekstrakurikuler');
// Route::get('/login', function () {
// if (Auth::check()) {
// return redirect('/dashboard');
// }
// return view('auth.login');
// })->name('login');
Route::get('/login', [AuthController::class, 'showLoginForm'])->name('login'); Route::get('/login', [AuthController::class, 'showLoginForm'])->name('login');
Route::post('/login', [AuthController::class, 'login']); Route::post('/login', [AuthController::class, 'login']);
// Route::get('/register', function () {
// if (Auth::check()) {
// return redirect('/dashboard');
// }
// return view('auth.register');
// })->name('register');
Route::get('/register', [AuthController::class, 'showRegisterForm'])->name('register');
Route::post('/register', [AuthController::class, 'register']);
Route::get('/forgot-password', function () {
if (Auth::check()) {
return redirect('/dashboard');
}
return view('auth.forgot-password');
})->name('password.request');
Route::post('/forgot-password', [AuthController::class, 'sendResetLinkEmail'])->name('password.email');
Route::get('/reset-password/{token}', [AuthController::class, 'showResetForm'])->name('password.reset');
Route::post('/reset-password', [AuthController::class, 'resetPassword'])->name('password.update');
Route::middleware(['auth', 'role:wakil_kepala'])->group(function () { Route::middleware(['auth', 'role:wakil_kepala'])->group(function () {
Route::get('/wakil_kepala/dashboard', [WakilKepalaController::class, 'dashboard'])->name('wakil_kepala.dashboard'); Route::get('/wakil_kepala/dashboard', [WakilKepalaController::class, 'dashboard'])->name('wakil_kepala.dashboard');
Route::get('/wakil_kepala/kriteria', [WakilKepalaController::class, 'kriteria'])->name('wakil_kepala.kriteria'); Route::get('/wakil_kepala/kriteria', [WakilKepalaController::class, 'kriteria'])->name('wakil_kepala.kriteria');
@ -42,3 +68,6 @@
Route::middleware(['auth', 'role:siswa'])->group(function () { Route::middleware(['auth', 'role:siswa'])->group(function () {
Route::get('/siswa/dashboard', [SiswaController::class, 'dashboard'])->name('siswa.dashboard'); Route::get('/siswa/dashboard', [SiswaController::class, 'dashboard'])->name('siswa.dashboard');
}); });
Route::get('/logout', [AuthController::class, 'logout'])->name('logout');
Route::post('/logout', [AuthController::class, 'logout'])->name('logout');