feat: dashboard overview

This commit is contained in:
myuqinurrohman 2025-02-25 15:47:09 +07:00
parent adb2d9dc88
commit 5f460c3b6e
16 changed files with 994 additions and 14 deletions

View File

@ -1,4 +1,6 @@
<?php
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Str;
// Template
@ -30,3 +32,35 @@ function store_file($file, $path, $disk = 'public')
}
}
}
if (!function_exists('get_role_name')) {
function get_role_name($role = null) {
if($role === null){
$role = Auth::user()->role_id;
}
switch($role) {
case '1':
return "Administrator";
case '2':
return "Admin Monitoring";
case '3':
return "Perusahaan";
case '4':
return "Admin Konten";
default:
return "Role Tidak Dikenal";
}
}
}
if (!function_exists('shorten_text')) {
function shorten_text($text, $maxLength = 100) {
if (strlen($text) > $maxLength) {
return substr($text, 0, $maxLength) . '...';
}
return $text;
}
}

View File

@ -25,8 +25,7 @@ public function loginAction(LoginRequest $request){
if(Auth::attempt($validatedData)){
$request->session()->regenerate();
// return redirect()->intended('/dashboard/overview');
return "masuk";
return redirect()->intended('/dashboard/overview');
}else{
return redirect()->back();
}

View File

@ -0,0 +1,16 @@
<?php
namespace App\Http\Controllers\Dashboard;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class OverviewController extends Controller
{
public function index(){
return view('dashboard.overview.index', [
'title' => 'Ikhtisar',
'page' => 'overview'
]);
}
}

View File

@ -0,0 +1,26 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Symfony\Component\HttpFoundation\Response;
class AuthenticatedMiddleware
{
/**
* Handle an incoming request.
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
*/
public function handle(Request $request, Closure $next): Response
{
if(Auth::check()){
return redirect()->route('dashboard.overview');
}
return $next($request);
}
}

View File

@ -0,0 +1,29 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Symfony\Component\HttpFoundation\Response;
class RoleMiddleware
{
/**
* Handle an incoming request.
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
*/
public function handle(Request $request, Closure $next, ...$roles): Response
{
if (!Auth::check()) {
return redirect()->route('login');
}
if (!in_array(Auth::user()->role_id, $roles)) {
return abort(403, 'Anda tidak memiliki akses ke halaman ini.');
}
return $next($request);
}
}

View File

@ -47,4 +47,8 @@ protected function casts(): array
'password' => 'hashed',
];
}
public function role(){
return $this->belongsTo(Role::class, 'role_id', 'id');
}
}

View File

@ -1,5 +1,8 @@
<?php
use App\Http\Middleware\AuthenticatedMiddleware;
use App\Http\Middleware\RoleMiddleware;
use Illuminate\Auth\Middleware\Authenticate;
use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware;
@ -11,7 +14,10 @@
health: '/up',
)
->withMiddleware(function (Middleware $middleware) {
//
$middleware->alias([
'role' => RoleMiddleware::class,
'authenticated' => AuthenticatedMiddleware::class
]);
})
->withExceptions(function (Exceptions $exceptions) {
//

View File

@ -15,9 +15,9 @@ public function run(): void
{
Role::insert([
['name' => "Administrator", 'description' => null],
['name' => "Monitoring Admin", 'description' => null],
['name' => "Company", 'description' => null],
['name' => "Content Admin", 'description' => null],
['name' => "Admin Monitoring", 'description' => null],
['name' => "Perusahaan", 'description' => null],
['name' => "Admin Konten", 'description' => null],
]);
}
}

View File

@ -10,6 +10,21 @@ .required-input{
font-size: 0.8rem;
}
.active-page{
color: #3572EF !important;
background-color: #ebeef2 !important;
font-family: "DM Sans", sans-serif;
font-weight: 700;
font-size: 15px;
letter-spacing: 0.01em;
text-transform: none;
line-height: 1.25rem;
}
.active-page span{
color: #3572EF !important;
}
#password-strength-status {
margin-top: 5px;
font-size: 12px;

View File

@ -106,14 +106,14 @@
_self_link = self.attr('href');
if (fileName.match(_self_link)) {
self.closest("li").addClass('active current-page').parents().closest("li").addClass("active current-page");
self.closest("li").addClass('').parents().closest("li").addClass("");
self.closest("li").children('.nk-menu-sub').css('display', 'block');
self.parents().closest("li").children('.nk-menu-sub').css('display', 'block');
} else {
self.closest("li").removeClass('active current-page').parents().closest("li:not(.current-page)").removeClass("active");
self.closest("li").removeClass('').parents().closest("li:not(.current-page)").removeClass("active");
}
});
}; // PasswordSwitch @v1.0
};
NioApp.PassSwitch = function () {

View File

@ -0,0 +1,488 @@
@include('partials.dashboard.head')
@include('partials.dashboard.sidebar')
@include('partials.dashboard.header')
<!-- content @s -->
<div class="nk-content ">
<div class="container-fluid">
<div class="nk-content-inner">
<div class="nk-content-body">
<div class="nk-block-head nk-block-head-sm">
<div class="nk-block-between">
<div class="nk-block-head-content">
<h3 class="nk-block-title page-title">Ikhtisar</h3>
</div><!-- .nk-block-head-content -->
<div class="nk-block-head-content">
<div class="toggle-wrap nk-block-tools-toggle">
<a href="#" class="btn btn-icon btn-trigger toggle-expand me-n1" data-target="pageMenu"><em class="icon ni ni-more-v"></em></a>
<div class="toggle-expand-content" data-content="pageMenu">
<ul class="nk-block-tools g-3">
<li>
<div class="drodown">
<a href="#" class="dropdown-toggle btn btn-white btn-dim btn-outline-light" data-bs-toggle="dropdown"><em class="d-none d-sm-inline icon ni ni-calender-date"></em><span><span class="d-none d-md-inline">Last</span> 30 Days</span><em class="dd-indc icon ni ni-chevron-right"></em></a>
<div class="dropdown-menu dropdown-menu-end">
<ul class="link-list-opt no-bdr">
<li><a href="#"><span>Last 30 Days</span></a></li>
<li><a href="#"><span>Last 6 Months</span></a></li>
<li><a href="#"><span>Last 1 Years</span></a></li>
</ul>
</div>
</div>
</li>
<li class="nk-block-tools-opt"><a href="#" class="btn btn-primary"><em class="icon ni ni-reports"></em><span>Reports</span></a></li>
</ul>
</div>
</div>
</div><!-- .nk-block-head-content -->
</div><!-- .nk-block-between -->
</div><!-- .nk-block-head -->
<div class="nk-block">
<div class="row g-gs">
<div class="col-xxl-3 col-sm-6">
<div class="card">
<div class="nk-ecwg nk-ecwg6">
<div class="card-inner">
<div class="card-title-group">
<div class="card-title">
<h6 class="title">Today Orders</h6>
</div>
</div>
<div class="data">
<div class="data-group">
<div class="amount">1,945</div>
<div class="nk-ecwg6-ck">
<canvas class="ecommerce-line-chart-s3" id="todayOrders"></canvas>
</div>
</div>
<div class="info"><span class="change up text-danger"><em class="icon ni ni-arrow-long-up"></em>4.63%</span><span> vs. last week</span></div>
</div>
</div><!-- .card-inner -->
</div><!-- .nk-ecwg -->
</div><!-- .card -->
</div><!-- .col -->
<div class="col-xxl-3 col-sm-6">
<div class="card">
<div class="nk-ecwg nk-ecwg6">
<div class="card-inner">
<div class="card-title-group">
<div class="card-title">
<h6 class="title">Today Revenue</h6>
</div>
</div>
<div class="data">
<div class="data-group">
<div class="amount">$2,338</div>
<div class="nk-ecwg6-ck">
<canvas class="ecommerce-line-chart-s3" id="todayRevenue"></canvas>
</div>
</div>
<div class="info"><span class="change down text-danger"><em class="icon ni ni-arrow-long-down"></em>2.34%</span><span> vs. last week</span></div>
</div>
</div><!-- .card-inner -->
</div><!-- .nk-ecwg -->
</div><!-- .card -->
</div><!-- .col -->
<div class="col-xxl-3 col-sm-6">
<div class="card">
<div class="nk-ecwg nk-ecwg6">
<div class="card-inner">
<div class="card-title-group">
<div class="card-title">
<h6 class="title">Today Customers</h6>
</div>
</div>
<div class="data">
<div class="data-group">
<div class="amount">847</div>
<div class="nk-ecwg6-ck">
<canvas class="ecommerce-line-chart-s3" id="todayCustomers"></canvas>
</div>
</div>
<div class="info"><span class="change up text-danger"><em class="icon ni ni-arrow-long-up"></em>4.63%</span><span> vs. last week</span></div>
</div>
</div><!-- .card-inner -->
</div><!-- .nk-ecwg -->
</div><!-- .card -->
</div><!-- .col -->
<div class="col-xxl-3 col-sm-6">
<div class="card">
<div class="nk-ecwg nk-ecwg6">
<div class="card-inner">
<div class="card-title-group">
<div class="card-title">
<h6 class="title">Today Visitors</h6>
</div>
</div>
<div class="data">
<div class="data-group">
<div class="amount">23,485</div>
<div class="nk-ecwg6-ck">
<canvas class="ecommerce-line-chart-s3" id="todayVisitors"></canvas>
</div>
</div>
<div class="info"><span class="change down text-danger"><em class="icon ni ni-arrow-long-down"></em>2.34%</span><span> vs. last week</span></div>
</div>
</div><!-- .card-inner -->
</div><!-- .nk-ecwg -->
</div><!-- .card -->
</div><!-- .col -->
<div class="col-xxl-6">
<div class="card card-full">
<div class="nk-ecwg nk-ecwg8 h-100">
<div class="card-inner">
<div class="card-title-group mb-3">
<div class="card-title">
<h6 class="title">Sales Statistics</h6>
</div>
<div class="card-tools">
<div class="dropdown">
<a href="#" class="dropdown-toggle link link-light link-sm dropdown-indicator" data-bs-toggle="dropdown">Weekly</a>
<div class="dropdown-menu dropdown-menu-sm dropdown-menu-end">
<ul class="link-list-opt no-bdr">
<li><a href="#"><span>Daily</span></a></li>
<li><a href="#" class="active"><span>Weekly</span></a></li>
<li><a href="#"><span>Monthly</span></a></li>
</ul>
</div>
</div>
</div>
</div>
<ul class="nk-ecwg8-legends">
<li>
<div class="title">
<span class="dot dot-lg sq" data-bg="#6576ff"></span>
<span>Total Order</span>
</div>
</li>
<li>
<div class="title">
<span class="dot dot-lg sq" data-bg="#eb6459"></span>
<span>Cancelled Order</span>
</div>
</li>
</ul>
<div class="nk-ecwg8-ck">
<canvas class="ecommerce-line-chart-s4" id="salesStatistics"></canvas>
</div>
<div class="chart-label-group ps-5">
<div class="chart-label">01 Jul, 2020</div>
<div class="chart-label">30 Jul, 2020</div>
</div>
</div><!-- .card-inner -->
</div>
</div><!-- .card -->
</div><!-- .col -->
<div class="col-xxl-3 col-md-6">
<div class="card card-full overflow-hidden">
<div class="nk-ecwg nk-ecwg7 h-100">
<div class="card-inner flex-grow-1">
<div class="card-title-group mb-4">
<div class="card-title">
<h6 class="title">Order Statistics</h6>
</div>
</div>
<div class="nk-ecwg7-ck">
<canvas class="ecommerce-doughnut-s1" id="orderStatistics"></canvas>
</div>
<ul class="nk-ecwg7-legends">
<li>
<div class="title">
<span class="dot dot-lg sq" data-bg="#816bff"></span>
<span>Completed</span>
</div>
</li>
<li>
<div class="title">
<span class="dot dot-lg sq" data-bg="#13c9f2"></span>
<span>Processing</span>
</div>
</li>
<li>
<div class="title">
<span class="dot dot-lg sq" data-bg="#ff82b7"></span>
<span>Cancelled</span>
</div>
</li>
</ul>
</div><!-- .card-inner -->
</div>
</div><!-- .card -->
</div><!-- .col -->
<div class="col-xxl-3 col-md-6">
<div class="card h-100">
<div class="card-inner">
<div class="card-title-group mb-2">
<div class="card-title">
<h6 class="title">Store Statistics</h6>
</div>
</div>
<ul class="nk-store-statistics">
<li class="item">
<div class="info">
<div class="title">Orders</div>
<div class="count">1,795</div>
</div>
<em class="icon bg-primary-dim ni ni-bag"></em>
</li>
<li class="item">
<div class="info">
<div class="title">Customers</div>
<div class="count">2,327</div>
</div>
<em class="icon bg-info-dim ni ni-users"></em>
</li>
<li class="item">
<div class="info">
<div class="title">Products</div>
<div class="count">674</div>
</div>
<em class="icon bg-pink-dim ni ni-box"></em>
</li>
<li class="item">
<div class="info">
<div class="title">Categories</div>
<div class="count">68</div>
</div>
<em class="icon bg-purple-dim ni ni-server"></em>
</li>
</ul>
</div><!-- .card-inner -->
</div><!-- .card -->
</div><!-- .col -->
<div class="col-xxl-8">
<div class="card card-full">
<div class="card-inner">
<div class="card-title-group">
<div class="card-title">
<h6 class="title">Recent Orders</h6>
</div>
</div>
</div>
<div class="nk-tb-list mt-n2">
<div class="nk-tb-item nk-tb-head">
<div class="nk-tb-col"><span>Order No.</span></div>
<div class="nk-tb-col tb-col-sm"><span>Customer</span></div>
<div class="nk-tb-col tb-col-md"><span>Date</span></div>
<div class="nk-tb-col"><span>Amount</span></div>
<div class="nk-tb-col"><span class="d-none d-sm-inline">Status</span></div>
</div>
<div class="nk-tb-item">
<div class="nk-tb-col">
<span class="tb-lead"><a href="#">#95954</a></span>
</div>
<div class="nk-tb-col tb-col-sm">
<div class="user-card">
<div class="user-avatar sm bg-purple-dim">
<span>AB</span>
</div>
<div class="user-name">
<span class="tb-lead">Abu Bin Ishtiyak</span>
</div>
</div>
</div>
<div class="nk-tb-col tb-col-md">
<span class="tb-sub">02/11/2020</span>
</div>
<div class="nk-tb-col">
<span class="tb-sub tb-amount">4,596.75 <span>USD</span></span>
</div>
<div class="nk-tb-col">
<span class="badge badge-dot badge-dot-xs bg-success">Paid</span>
</div>
</div>
<div class="nk-tb-item">
<div class="nk-tb-col">
<span class="tb-lead"><a href="#">#95850</a></span>
</div>
<div class="nk-tb-col tb-col-sm">
<div class="user-card">
<div class="user-avatar sm bg-azure-dim">
<span>DE</span>
</div>
<div class="user-name">
<span class="tb-lead">Desiree Edwards</span>
</div>
</div>
</div>
<div class="nk-tb-col tb-col-md">
<span class="tb-sub">02/02/2020</span>
</div>
<div class="nk-tb-col">
<span class="tb-sub tb-amount">596.75 <span>USD</span></span>
</div>
<div class="nk-tb-col">
<span class="badge badge-dot badge-dot-xs bg-danger">Cancelled</span>
</div>
</div>
<div class="nk-tb-item">
<div class="nk-tb-col">
<span class="tb-lead"><a href="#">#95812</a></span>
</div>
<div class="nk-tb-col tb-col-sm">
<div class="user-card">
<div class="user-avatar sm bg-warning-dim">
<img src="./images/avatar/b-sm.jpg" alt="">
</div>
<div class="user-name">
<span class="tb-lead">Blanca Schultz</span>
</div>
</div>
</div>
<div class="nk-tb-col tb-col-md">
<span class="tb-sub">02/01/2020</span>
</div>
<div class="nk-tb-col">
<span class="tb-sub tb-amount">199.99 <span>USD</span></span>
</div>
<div class="nk-tb-col">
<span class="badge badge-dot badge-dot-xs bg-success">Paid</span>
</div>
</div>
<div class="nk-tb-item">
<div class="nk-tb-col">
<span class="tb-lead"><a href="#">#95256</a></span>
</div>
<div class="nk-tb-col tb-col-sm">
<div class="user-card">
<div class="user-avatar sm bg-purple-dim">
<span>NL</span>
</div>
<div class="user-name">
<span class="tb-lead">Naomi Lawrence</span>
</div>
</div>
</div>
<div class="nk-tb-col tb-col-md">
<span class="tb-sub">01/29/2020</span>
</div>
<div class="nk-tb-col">
<span class="tb-sub tb-amount">1099.99 <span>USD</span></span>
</div>
<div class="nk-tb-col">
<span class="badge badge-dot badge-dot-xs bg-success">Paid</span>
</div>
</div>
<div class="nk-tb-item">
<div class="nk-tb-col">
<span class="tb-lead"><a href="#">#95135</a></span>
</div>
<div class="nk-tb-col tb-col-sm">
<div class="user-card">
<div class="user-avatar sm bg-success-dim">
<span>CH</span>
</div>
<div class="user-name">
<span class="tb-lead">Cassandra Hogan</span>
</div>
</div>
</div>
<div class="nk-tb-col tb-col-md">
<span class="tb-sub">01/29/2020</span>
</div>
<div class="nk-tb-col">
<span class="tb-sub tb-amount">1099.99 <span>USD</span></span>
</div>
<div class="nk-tb-col">
<span class="badge badge-dot badge-dot-xs bg-warning">Due</span>
</div>
</div>
</div>
</div><!-- .card -->
</div>
<div class="col-xxl-4 col-md-8 col-lg-6">
<div class="card h-100">
<div class="card-inner">
<div class="card-title-group mb-2">
<div class="card-title">
<h6 class="title">Top products</h6>
</div>
<div class="card-tools">
<div class="dropdown">
<a href="#" class="dropdown-toggle link link-light link-sm dropdown-indicator" data-bs-toggle="dropdown">Weekly</a>
<div class="dropdown-menu dropdown-menu-sm dropdown-menu-end">
<ul class="link-list-opt no-bdr">
<li><a href="#"><span>Daily</span></a></li>
<li><a href="#" class="active"><span>Weekly</span></a></li>
<li><a href="#"><span>Monthly</span></a></li>
</ul>
</div>
</div>
</div>
</div>
<ul class="nk-top-products">
<li class="item">
<div class="thumb">
<img src="./images/product/a.png" alt="">
</div>
<div class="info">
<div class="title">Pink Fitness Tracker</div>
<div class="price">$99.00</div>
</div>
<div class="total">
<div class="amount">$990.00</div>
<div class="count">10 Sold</div>
</div>
</li>
<li class="item">
<div class="thumb">
<img src="./images/product/b.png" alt="">
</div>
<div class="info">
<div class="title">Purple Smartwatch</div>
<div class="price">$99.00</div>
</div>
<div class="total">
<div class="amount">$990.00</div>
<div class="count">10 Sold</div>
</div>
</li>
<li class="item">
<div class="thumb">
<img src="./images/product/c.png" alt="">
</div>
<div class="info">
<div class="title">Black Smartwatch</div>
<div class="price">$99.00</div>
</div>
<div class="total">
<div class="amount">$990.00</div>
<div class="count">10 Sold</div>
</div>
</li>
<li class="item">
<div class="thumb">
<img src="./images/product/d.png" alt="">
</div>
<div class="info">
<div class="title">Black Headphones</div>
<div class="price">$99.00</div>
</div>
<div class="total">
<div class="amount">$990.00</div>
<div class="count">10 Sold</div>
</div>
</li>
<li class="item">
<div class="thumb">
<img src="./images/product/e.png" alt="">
</div>
<div class="info">
<div class="title">iPhone 7 Headphones</div>
<div class="price">$99.00</div>
</div>
<div class="total">
<div class="amount">$990.00</div>
<div class="count">10 Sold</div>
</div>
</li>
</ul>
</div><!-- .card-inner -->
</div><!-- .card -->
</div><!-- .col -->
</div><!-- .row -->
</div><!-- .nk-block -->
</div>
</div>
</div>
</div>
<!-- content @e -->
@include('partials.dashboard.footer')

View File

@ -0,0 +1,57 @@
<!-- footer @s -->
<div class="nk-footer">
<div class="container-fluid">
<div class="nk-footer-wrap">
<div class="nk-footer-copyright"> &copy; 2022 DashLite. Template by <a href="https://softnio.com" target="_blank">Softnio</a>
</div>
<div class="nk-footer-links">
<ul class="nav nav-sm">
<li class="nav-item dropup">
<a href="#" class="dropdown-toggle dropdown-indicator has-indicator nav-link text-base" data-bs-toggle="dropdown" data-offset="0,10"><span>English</span></a>
<div class="dropdown-menu dropdown-menu-sm dropdown-menu-end">
<ul class="language-list">
<li>
<a href="#" class="language-item">
<span class="language-name">English</span>
</a>
</li>
<li>
<a href="#" class="language-item">
<span class="language-name">Español</span>
</a>
</li>
<li>
<a href="#" class="language-item">
<span class="language-name">Français</span>
</a>
</li>
<li>
<a href="#" class="language-item">
<span class="language-name">Türkçe</span>
</a>
</li>
</ul>
</div>
</li>
<li class="nav-item">
<a data-bs-toggle="modal" href="#region" class="nav-link"><em class="icon ni ni-globe"></em><span class="ms-1">Select Region</span></a>
</li>
</ul>
</div>
</div>
</div>
</div>
<!-- footer @e -->
</div>
<!-- wrap @e -->
</div>
<!-- main @e -->
</div>
<!-- app-root @e -->
<!-- JavaScript -->
<script src="{{asset('assets/dashboard/js/bundle.js?ver=3.0.3')}}"></script>
<script src="{{asset('assets/dashboard/js/scripts.js?ver=3.0.3')}}"></script>
<script src="{{asset('assets/dashboard/js/charts/chart-ecommerce.js?ver=3.0.3')}}"></script>
</body>
</html>

View File

@ -0,0 +1,18 @@
<!DOCTYPE html>
<html lang="zxx" class="js">
<head>
<base href="../">
<meta charset="utf-8">
<meta name="author" content="Softnio">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="A powerful and conceptual apps base dashboard template that especially build for developers and programmers.">
<!-- Fav Icon -->
<link rel="shortcut icon" href="{{asset('assets/defaults/simedkom-logo-circle.png')}}">
<!-- Page Title -->
<title>{{$title}} - App Name</title>
<!-- StyleSheets -->
<link rel="stylesheet" href="{{asset('assets/dashboard/css/dashlite.css?ver=3.0.3')}}">
<link rel="stylesheet" href="{{asset('assets/dashboard/css/custom.css')}}">
<link id="skin-default" rel="stylesheet" href="{{asset('assets/dashboard/css/theme.css?ver=3.0.3')}}">
</head>

View File

@ -0,0 +1,102 @@
<!-- wrap @s -->
<div class="nk-wrap ">
<!-- main header @s -->
<div class="nk-header nk-header-fixed is-light">
<div class="container-fluid">
<div class="nk-header-wrap">
<div class="nk-menu-trigger d-xl-none ms-n1">
<a href="#" class="nk-nav-toggle nk-quick-nav-icon" data-target="sidebarMenu"><em class="icon ni ni-menu"></em></a>
</div>
<div class="nk-header-brand d-xl-none">
<a href="html/index.html" class="logo-link">
<img class="logo-light logo-img" src="./images/logo.png" srcset="./images/logo2x.png 2x" alt="logo">
<img class="logo-dark logo-img" src="./images/logo-dark.png" srcset="./images/logo-dark2x.png 2x" alt="logo-dark">
</a>
</div><!-- .nk-header-brand -->
<div class="nk-header-tools">
<ul class="nk-quick-nav">
<li class="dropdown notification-dropdown">
<a href="#" class="dropdown-toggle nk-quick-nav-icon" data-bs-toggle="dropdown">
<div class="icon-status icon-status-info"><em class="icon ni ni-bell"></em></div>
</a>
<div class="dropdown-menu dropdown-menu-xl dropdown-menu-end">
<div class="dropdown-head">
<span class="sub-title nk-dropdown-title">Pemberitahuan</span>
</div>
<div class="dropdown-body">
<div class="nk-notification">
<div class="nk-notification-item dropdown-inner">
<div class="nk-notification-icon">
<em class="icon icon-circle bg-info-dim ni ni-info"></em>
</div>
<div class="nk-notification-content">
<div class="nk-notification-text">{{shorten_text('Lorem ipsum dolor sit amet consectetur sample sample', 37)}}</div>
<div class="nk-notification-time time-type-notif">
<div class="notif-time">1 Hari yang lalu (24-02-2025)</div>
<div class="notif-sender">Pengirim: Admin</div>
</div>
</div>
</div>
<div class="nk-notification-item dropdown-inner">
<div class="nk-notification-icon">
<em class="icon icon-circle bg-success-dim ni ni-mail"></em>
</div>
<div class="nk-notification-content">
<div class="nk-notification-text">{{shorten_text('Lorem ipsum dolor sit amet consectetur sample sample', 37)}}</div>
<div class="nk-notification-time time-type-notif">
<div class="notif-time">1 Hari yang lalu (24-02-2025)</div>
<div class="notif-sender">Pengirim: Admin</div>
</div>
</div>
</div>
</div><!-- .nk-notification -->
</div><!-- .nk-dropdown-body -->
<div class="dropdown-foot center">
<a href="#">View All</a>
</div>
</div>
</li>
<li class="dropdown user-dropdown">
<a href="#" class="dropdown-toggle me-n1" data-bs-toggle="dropdown">
<div class="user-toggle">
<div class="user-avatar sm">
<em class="icon ni ni-user-alt"></em>
</div>
<div class="user-info d-none d-xl-block">
<div class="user-status text-info">{{get_role_name()}}</div>
<div class="user-name dropdown-indicator">{{Auth::user()->name}}</div>
</div>
</div>
</a>
<div class="dropdown-menu dropdown-menu-md dropdown-menu-end">
<div class="dropdown-inner user-card-wrap bg-lighter d-none d-md-block">
<div class="user-card">
<div class="user-avatar">
<span>AB</span>
</div>
<div class="user-info">
<span class="lead-text">{{Auth::user()->name}}</span>
<span class="sub-text">{{Auth::user()->email}}</span>
</div>
</div>
</div>
<div class="dropdown-inner">
<ul class="link-list">
<li><a href="javascript:void(0);"><em class="icon ni ni-user-alt"></em><span>Profile</span></a></li>
<li><a href="javascript:void(0);"><em class="icon ni ni-setting-alt"></em><span>Pengaturan Akun</span></a></li>
<li><a class="dark-switch" href="#"><em class="icon ni ni-moon"></em><span>Mode Gelap</span></a></li>
</ul>
</div>
<div class="dropdown-inner">
<ul class="link-list">
<li><a href="{{route('auth.logout')}}"><em class="icon ni ni-signout"></em><span>Keluar</span></a></li>
</ul>
</div>
</div>
</li>
</ul>
</div>
</div><!-- .nk-header-wrap -->
</div><!-- .container-fliud -->
</div>
<!-- main header @e -->

View File

@ -0,0 +1,179 @@
<body class="nk-body bg-lighter npc-default has-sidebar ">
<div class="nk-app-root">
<!-- main @s -->
<div class="nk-main ">
<!-- sidebar @s -->
<div class="nk-sidebar nk-sidebar-fixed is-light " data-content="sidebarMenu">
<div class="nk-sidebar-element nk-sidebar-head">
<div class="nk-sidebar-brand">
<a href="html/index.html" class="logo-link nk-sidebar-logo">
<img class="logo-light logo-img" src="{{asset('assets/defaults/simedkom-logo-full.png')}}" srcset="{{asset('assets/defaults/simedkom-logo-full.png')}}" alt="logo">
<img class="logo-dark logo-img" src="{{asset('assets/defaults/simedkom-logo-full.png')}}" srcset="{{asset('assets/defaults/simedkom-logo-full.png')}}" alt="logo-dark">
<img class="logo-small logo-img logo-img-small" src="{{asset('assets/defaults/simedkom-logo-full.png')}}" srcset="{{asset('assets/defaults/simedkom-logo-full.png')}}" alt="logo-small">
</a>
</div>
<div class="nk-menu-trigger me-n2">
<a href="#" class="nk-nav-toggle nk-quick-nav-icon d-xl-none" data-target="sidebarMenu"><em class="icon ni ni-arrow-left"></em></a>
<a href="#" class="nk-nav-compact nk-quick-nav-icon d-none d-xl-inline-flex" data-target="sidebarMenu"><em class="icon ni ni-menu"></em></a>
</div>
</div><!-- .nk-sidebar-element -->
<div class="nk-sidebar-element">
<div class="nk-sidebar-content">
<div class="nk-sidebar-menu" data-simplebar>
<ul class="nk-menu">
<li class="nk-menu-heading">
<h6 class="overline-title text-primary-alt">Ringkasan</h6>
</li><!-- .nk-menu-item -->
<li class="nk-menu-item">
<a href="{{route('dashboard.overview')}}" class="nk-menu-link {{$page === 'overview' ? 'active-page' : ''}}">
<span class="nk-menu-icon"><em class="icon ni ni-dashboard"></em></span>
<span class="nk-menu-text">Ikhtisar</span>
</a>
</li><!-- .nk-menu-item -->
<li class="nk-menu-heading">
<h6 class="overline-title text-primary-alt">Master</h6>
</li><!-- .nk-menu-item -->
<li class="nk-menu-item">
<a href="javascript:void(0);" class="nk-menu-link">
<span class="nk-menu-icon"><em class="icon ni ni-dot-box"></em></span>
<span class="nk-menu-text">Klasifikasi</span>
</a>
</li><!-- .nk-menu-item -->
<li class="nk-menu-item">
<a href="javascript:void(0);" class="nk-menu-link">
<span class="nk-menu-icon"><em class="icon ni ni-dot-box"></em></span>
<span class="nk-menu-text">Sub Klasifikasi</span>
</a>
</li><!-- .nk-menu-item -->
<li class="nk-menu-item">
<a href="javascript:void(0);" class="nk-menu-link">
<span class="nk-menu-icon"><em class="icon ni ni-list-round"></em></span>
<span class="nk-menu-text">Lokus</span>
</a>
</li><!-- .nk-menu-item -->
<li class="nk-menu-item">
<a href="javascript:void(0);" class="nk-menu-link">
<span class="nk-menu-icon"><em class="icon ni ni-list-round"></em></span>
<span class="nk-menu-text">Sub Lokus</span>
</a>
</li><!-- .nk-menu-item -->
<li class="nk-menu-item">
<a href="javascript:void(0);" class="nk-menu-link">
<span class="nk-menu-icon"><em class="icon ni ni-building"></em></span>
<span class="nk-menu-text">OPD</span>
</a>
</li><!-- .nk-menu-item -->
<li class="nk-menu-heading">
<h6 class="overline-title text-primary-alt">Kelola</h6>
</li><!-- .nk-menu-item -->
<li class="nk-menu-item">
<a href="javascript:void(0);" class="nk-menu-link">
<span class="nk-menu-icon"><em class="icon ni ni-article"></em></span>
<span class="nk-menu-text">Berita</span>
</a>
</li><!-- .nk-menu-item -->
<li class="nk-menu-item">
<a href="javascript:void(0);" class="nk-menu-link">
<span class="nk-menu-icon"><em class="icon ni ni-info"></em></span>
<span class="nk-menu-text">Pengumuman</span>
</a>
</li><!-- .nk-menu-item -->
<li class="nk-menu-item">
<a href="javascript:void(0);" class="nk-menu-link">
<span class="nk-menu-icon"><em class="icon ni ni-puzzle"></em></span>
<span class="nk-menu-text">Tema</span>
</a>
</li><!-- .nk-menu-item -->
<li class="nk-menu-item">
<a href="javascript:void(0);" class="nk-menu-link">
<span class="nk-menu-icon"><em class="icon ni ni-setting"></em></span>
<span class="nk-menu-text">Pengaturan Aplikasi</span>
</a>
</li><!-- .nk-menu-item -->
<li class="nk-menu-heading">
<h6 class="overline-title text-primary-alt">Data</h6>
</li><!-- .nk-menu-item -->
<li class="nk-menu-item">
<a href="javascript:void(0);" class="nk-menu-link">
<span class="nk-menu-icon"><em class="icon ni ni-building-fill"></em></span>
<span class="nk-menu-text">Perusahaan</span>
</a>
</li><!-- .nk-menu-item -->
<li class="nk-menu-item">
<a href="javascript:void(0);" class="nk-menu-link">
<span class="nk-menu-icon"><em class="icon ni ni-medium"></em></span>
<span class="nk-menu-text">Media</span>
</a>
</li><!-- .nk-menu-item -->
<li class="nk-menu-item">
<a href="javascript:void(0);" class="nk-menu-link">
<span class="nk-menu-icon"><em class="icon ni ni-user-list"></em></span>
<span class="nk-menu-text">Jurnalis</span>
</a>
</li><!-- .nk-menu-item -->
<li class="nk-menu-item">
<a href="javascript:void(0);" class="nk-menu-link">
<span class="nk-menu-icon"><em class="icon ni ni-globe"></em></span>
<span class="nk-menu-text">Kerjasama Media</span>
</a>
</li><!-- .nk-menu-item -->
<li class="nk-menu-item">
<a href="javascript:void(0);" class="nk-menu-link">
<span class="nk-menu-icon"><em class="icon ni ni-briefcase"></em></span>
<span class="nk-menu-text">Media Order</span>
</a>
</li><!-- .nk-menu-item -->
<li class="nk-menu-item">
<a href="javascript:void(0);" class="nk-menu-link">
<span class="nk-menu-icon"><em class="icon ni ni-report"></em></span>
<span class="nk-menu-text">Laporan</span>
</a>
</li><!-- .nk-menu-item -->
<li class="nk-menu-item">
<a href="javascript:void(0);" class="nk-menu-link">
<span class="nk-menu-icon"><em class="icon ni ni-check-circle-cut"></em></span>
<span class="nk-menu-text">Selesai</span>
</a>
</li><!-- .nk-menu-item -->
<li class="nk-menu-heading">
<h6 class="overline-title text-primary-alt">Monitoring</h6>
</li><!-- .nk-menu-item -->
<li class="nk-menu-item">
<a href="javascript:void(0);" class="nk-menu-link">
<span class="nk-menu-icon"><em class="icon ni ni-list-check"></em></span>
<span class="nk-menu-text">Rekap Konten</span>
</a>
</li><!-- .nk-menu-item -->
<li class="nk-menu-item">
<a href="javascript:void(0);" class="nk-menu-link">
<span class="nk-menu-icon"><em class="icon ni ni-layers"></em></span>
<span class="nk-menu-text">Monitoring Media</span>
</a>
</li><!-- .nk-menu-item -->
<li class="nk-menu-item">
<a href="javascript:void(0);" class="nk-menu-link">
<span class="nk-menu-icon"><em class="icon ni ni-speed"></em></span>
<span class="nk-menu-text">Manajemen Isu</span>
</a>
</li><!-- .nk-menu-item -->
<li class="nk-menu-heading">
<h6 class="overline-title text-primary-alt">Autentikasi</h6>
</li><!-- .nk-menu-item -->
<li class="nk-menu-item">
<a href="javascript:void(0);" class="nk-menu-link">
<span class="nk-menu-icon"><em class="icon ni ni-users"></em></span>
<span class="nk-menu-text">Pengguna</span>
</a>
</li><!-- .nk-menu-item -->
<li class="nk-menu-item">
<a href="javascript:void(0);" class="nk-menu-link">
<span class="nk-menu-icon"><em class="icon ni ni-shield"></em></span>
<span class="nk-menu-text">Role</span>
</a>
</li><!-- .nk-menu-item -->
</ul><!-- .nk-menu -->
</div><!-- .nk-sidebar-menu -->
</div><!-- .nk-sidebar-content -->
</div><!-- .nk-sidebar-element -->
</div>
<!-- sidebar @e -->

View File

@ -1,6 +1,7 @@
<?php
use App\Http\Controllers\AuthController;
use App\Http\Controllers\Dashboard\OverviewController;
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
@ -9,18 +10,24 @@
Route::prefix('auth')->group(function(){
Route::controller(AuthController::class)->group(function(){
Route::get('/login', 'login')->name('login');
Route::get('/login', 'login')->name('login')->middleware('authenticated');
Route::name('auth.')->group(function(){
Route::post('/login', 'loginAction')->name('login.action');
Route::get('/register', 'register')->name('register');
Route::get('/register', 'register')->name('register')->middleware('authenticated');;
Route::post('/register', 'registerAction')->name('register.action');
Route::get('/register-success', 'registerSuccess')->name('register.success');
Route::get('/register-success', 'registerSuccess')->name('register.success')->middleware('authenticated');;
Route::get('/logout', 'logout')->name('logout');
});
});
});
Route::middleware(['auth'])->group(function(){
Route::middleware(['auth', 'role:1,2,3,4'])->group(function(){
Route::name('dashboard.')->group(function(){
Route::prefix('dashboard')->group(function(){
Route::controller(OverviewController::class)->group(function(){
Route::get('/overview', 'index')->name('overview');
});
});
});
});