476 lines
20 KiB
HTML
476 lines
20 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<!-- For RTL verison -->
|
|
<!-- <html lang="en" dir="rtl"> -->
|
|
<head>
|
|
@@include('./_head.html', {
|
|
"path": ".",
|
|
"title": "AdminLTE 4 | Dashboard"
|
|
})
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/ionicons@2.0.1/css/ionicons.min.css" integrity="sha256-kqxQgiD1u2DslOB2UFKOtmYl+CpHQK2gaM3gU2V4EoY=" crossorigin="anonymous">
|
|
</head>
|
|
<body class="layout-fixed bg-body-tertiary">
|
|
<div class="wrapper">
|
|
@@include('./dashboard/_topbar.html', {
|
|
"path": "."
|
|
})
|
|
|
|
@@include('./dashboard/_sidenav.html', {
|
|
"mainPage": "dashboard",
|
|
"page": "index",
|
|
"path": "."
|
|
})
|
|
<!-- Main content -->
|
|
<main class="content-wrapper">
|
|
<div class="content-header">
|
|
<div class="container-fluid">
|
|
<div class="row mb-2">
|
|
<div class="col-sm-6">
|
|
<h3>Dashboard</h3>
|
|
</div>
|
|
<div class="col-sm-6">
|
|
<ol class="breadcrumb float-sm-end">
|
|
<li class="breadcrumb-item"><a href="#">Home</a></li>
|
|
<li class="breadcrumb-item active" aria-current="page">Dashboard</li>
|
|
</ol>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="content">
|
|
<div class="container-fluid">
|
|
<!-- Small boxes (Stat box) -->
|
|
<div class="row">
|
|
<div class="col-lg-3 col-6">
|
|
<!-- small box -->
|
|
<div class="small-box text-bg-primary">
|
|
<div class="inner">
|
|
<h3>150</h3>
|
|
|
|
<p>New Orders</p>
|
|
</div>
|
|
<div class="icon">
|
|
<i class="inner-icon ion ion-bag"></i>
|
|
</div>
|
|
<a href="#" class="small-box-footer">More info <i class="fa-solid fa-arrow-circle-right"></i></a>
|
|
</div>
|
|
</div>
|
|
<!-- ./col -->
|
|
<div class="col-lg-3 col-6">
|
|
<!-- small box -->
|
|
<div class="small-box text-bg-success">
|
|
<div class="inner">
|
|
<h3>53<sup class="fs-5">%</sup></h3>
|
|
|
|
<p>Bounce Rate</p>
|
|
</div>
|
|
<div class="icon">
|
|
<i class="inner-icon ion ion-stats-bars"></i>
|
|
</div>
|
|
<a href="#" class="small-box-footer">More info <i class="fa-solid fa-arrow-circle-right"></i></a>
|
|
</div>
|
|
</div>
|
|
<!-- ./col -->
|
|
<div class="col-lg-3 col-6">
|
|
<!-- small box -->
|
|
<div class="small-box text-bg-warning">
|
|
<div class="inner">
|
|
<h3>44</h3>
|
|
|
|
<p>User Registrations</p>
|
|
</div>
|
|
<div class="icon">
|
|
<i class="inner-icon ion ion-person-add"></i>
|
|
</div>
|
|
<a href="#" class="small-box-footer">More info <i class="fa-solid fa-arrow-circle-right"></i></a>
|
|
</div>
|
|
</div>
|
|
<!-- ./col -->
|
|
<div class="col-lg-3 col-6">
|
|
<!-- small box -->
|
|
<div class="small-box text-bg-danger">
|
|
<div class="inner">
|
|
<h3>65</h3>
|
|
|
|
<p>Unique Visitors</p>
|
|
</div>
|
|
<div class="icon">
|
|
<i class="inner-icon ion ion-pie-graph"></i>
|
|
</div>
|
|
<a href="#" class="small-box-footer">More info <i class="fa-solid fa-arrow-circle-right"></i></a>
|
|
</div>
|
|
</div>
|
|
<!-- ./col -->
|
|
</div>
|
|
<!-- /.row -->
|
|
<!-- Main row -->
|
|
<div class="row">
|
|
<!-- Start col -->
|
|
<div class="col-lg-7">
|
|
<!-- Custom tabs (Charts with tabs)-->
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h3 class="card-title">
|
|
<i class="fa-solid fa-chart-pie me-1"></i>
|
|
Sales
|
|
</h3>
|
|
<div class="card-tools">
|
|
<ul class="nav nav-pills ms-auto">
|
|
<li class="nav-item">
|
|
<a class="nav-link active" href="#revenue-chart" data-bs-toggle="tab">Area</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="#sales-chart" data-bs-toggle="tab">Donut</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div><!-- /.card-header -->
|
|
<div class="card-body">
|
|
<div class="tab-content p-0">
|
|
<!-- Morris chart - Sales -->
|
|
<div class="chart tab-pane active" id="revenue-chart"
|
|
style="position: relative; height: 300px;">
|
|
<canvas id="revenue-chart-canvas" height="300" style="height: 300px;"></canvas>
|
|
</div>
|
|
<div class="chart tab-pane" id="sales-chart" style="position: relative; height: 300px;">
|
|
<canvas id="sales-chart-canvas" height="300" style="height: 300px;"></canvas>
|
|
</div>
|
|
</div>
|
|
</div><!-- /.card-body -->
|
|
</div>
|
|
<!-- /.card -->
|
|
|
|
<!-- DIRECT CHAT -->
|
|
<div class="card direct-chat direct-chat-primary">
|
|
<div class="card-header">
|
|
<h3 class="card-title">Direct Chat</h3>
|
|
|
|
<div class="card-tools">
|
|
<span title="3 New Messages" class="badge text-bg-primary">3</span>
|
|
<button type="button" class="btn btn-tool" data-lte-toggle="card-collapse">
|
|
<i class="fa-solid fa-minus"></i>
|
|
</button>
|
|
<button type="button" class="btn btn-tool" title="Contacts" data-lte-toggle="chat-pane">
|
|
<i class="fa-solid fa-comments"></i>
|
|
</button>
|
|
<button type="button" class="btn btn-tool" data-lte-dismiss="card-remove">
|
|
<i class="fa-solid fa-times"></i>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<!-- /.card-header -->
|
|
<div class="card-body">
|
|
<!-- Conversations are loaded here -->
|
|
<div class="direct-chat-messages">
|
|
<!-- Message. Default to the start -->
|
|
<div class="direct-chat-msg">
|
|
<div class="direct-chat-infos clearfix">
|
|
<span class="direct-chat-name float-start">Alexander Pierce</span>
|
|
<span class="direct-chat-timestamp float-end">23 Jan 2:00 pm</span>
|
|
</div>
|
|
<!-- /.direct-chat-infos -->
|
|
<img class="direct-chat-img" src="./assets/img/user1-128x128.jpg" alt="message user image">
|
|
<!-- /.direct-chat-img -->
|
|
<div class="direct-chat-text">
|
|
Is this template really for free? That's unbelievable!
|
|
</div>
|
|
<!-- /.direct-chat-text -->
|
|
</div>
|
|
<!-- /.direct-chat-msg -->
|
|
|
|
<!-- Message to the end -->
|
|
<div class="direct-chat-msg end">
|
|
<div class="direct-chat-infos clearfix">
|
|
<span class="direct-chat-name float-end">Sarah Bullock</span>
|
|
<span class="direct-chat-timestamp float-start">23 Jan 2:05 pm</span>
|
|
</div>
|
|
<!-- /.direct-chat-infos -->
|
|
<img class="direct-chat-img" src="./assets/img/user3-128x128.jpg" alt="message user image">
|
|
<!-- /.direct-chat-img -->
|
|
<div class="direct-chat-text">
|
|
You better believe it!
|
|
</div>
|
|
<!-- /.direct-chat-text -->
|
|
</div>
|
|
<!-- /.direct-chat-msg -->
|
|
|
|
<!-- Message. Default to the start -->
|
|
<div class="direct-chat-msg">
|
|
<div class="direct-chat-infos clearfix">
|
|
<span class="direct-chat-name float-start">Alexander Pierce</span>
|
|
<span class="direct-chat-timestamp float-end">23 Jan 5:37 pm</span>
|
|
</div>
|
|
<!-- /.direct-chat-infos -->
|
|
<img class="direct-chat-img" src="./assets/img/user1-128x128.jpg" alt="message user image">
|
|
<!-- /.direct-chat-img -->
|
|
<div class="direct-chat-text">
|
|
Working with AdminLTE on a great new app! Wanna join?
|
|
</div>
|
|
<!-- /.direct-chat-text -->
|
|
</div>
|
|
<!-- /.direct-chat-msg -->
|
|
|
|
<!-- Message to the end -->
|
|
<div class="direct-chat-msg end">
|
|
<div class="direct-chat-infos clearfix">
|
|
<span class="direct-chat-name float-end">Sarah Bullock</span>
|
|
<span class="direct-chat-timestamp float-start">23 Jan 6:10 pm</span>
|
|
</div>
|
|
<!-- /.direct-chat-infos -->
|
|
<img class="direct-chat-img" src="./assets/img/user3-128x128.jpg" alt="message user image">
|
|
<!-- /.direct-chat-img -->
|
|
<div class="direct-chat-text">
|
|
I would love to.
|
|
</div>
|
|
<!-- /.direct-chat-text -->
|
|
</div>
|
|
<!-- /.direct-chat-msg -->
|
|
|
|
</div>
|
|
<!--/.direct-chat-messages-->
|
|
|
|
<!-- Contacts are loaded here -->
|
|
<div class="direct-chat-contacts">
|
|
<ul class="contacts-list">
|
|
<li>
|
|
<a href="#">
|
|
<img class="contacts-list-img" src="./assets/img/user1-128x128.jpg" alt="User Avatar">
|
|
|
|
<div class="contacts-list-info">
|
|
<span class="contacts-list-name">
|
|
Count Dracula
|
|
<small class="contacts-list-date float-end">2/28/2023</small>
|
|
</span>
|
|
<span class="contacts-list-msg">How have you been? I was...</span>
|
|
</div>
|
|
<!-- /.contacts-list-info -->
|
|
</a>
|
|
</li>
|
|
<!-- End Contact Item -->
|
|
<li>
|
|
<a href="#">
|
|
<img class="contacts-list-img" src="./assets/img/user7-128x128.jpg" alt="User Avatar">
|
|
|
|
<div class="contacts-list-info">
|
|
<span class="contacts-list-name">
|
|
Sarah Doe
|
|
<small class="contacts-list-date float-end">2/23/2023</small>
|
|
</span>
|
|
<span class="contacts-list-msg">I will be waiting for...</span>
|
|
</div>
|
|
<!-- /.contacts-list-info -->
|
|
</a>
|
|
</li>
|
|
<!-- End Contact Item -->
|
|
<li>
|
|
<a href="#">
|
|
<img class="contacts-list-img" src="./assets/img/user3-128x128.jpg" alt="User Avatar">
|
|
|
|
<div class="contacts-list-info">
|
|
<span class="contacts-list-name">
|
|
Nadia Jolie
|
|
<small class="contacts-list-date float-end">2/20/2023</small>
|
|
</span>
|
|
<span class="contacts-list-msg">I'll call you back at...</span>
|
|
</div>
|
|
<!-- /.contacts-list-info -->
|
|
</a>
|
|
</li>
|
|
<!-- End Contact Item -->
|
|
<li>
|
|
<a href="#">
|
|
<img class="contacts-list-img" src="./assets/img/user5-128x128.jpg" alt="User Avatar">
|
|
|
|
<div class="contacts-list-info">
|
|
<span class="contacts-list-name">
|
|
Nora S. Vans
|
|
<small class="contacts-list-date float-end">2/10/2023</small>
|
|
</span>
|
|
<span class="contacts-list-msg">Where is your new...</span>
|
|
</div>
|
|
<!-- /.contacts-list-info -->
|
|
</a>
|
|
</li>
|
|
<!-- End Contact Item -->
|
|
<li>
|
|
<a href="#">
|
|
<img class="contacts-list-img" src="./assets/img/user6-128x128.jpg" alt="User Avatar">
|
|
|
|
<div class="contacts-list-info">
|
|
<span class="contacts-list-name">
|
|
John K.
|
|
<small class="contacts-list-date float-end">1/27/2023</small>
|
|
</span>
|
|
<span class="contacts-list-msg">Can I take a look at...</span>
|
|
</div>
|
|
<!-- /.contacts-list-info -->
|
|
</a>
|
|
</li>
|
|
<!-- End Contact Item -->
|
|
<li>
|
|
<a href="#">
|
|
<img class="contacts-list-img" src="./assets/img/user8-128x128.jpg" alt="User Avatar">
|
|
|
|
<div class="contacts-list-info">
|
|
<span class="contacts-list-name">
|
|
Kenneth M.
|
|
<small class="contacts-list-date float-end">1/4/2023</small>
|
|
</span>
|
|
<span class="contacts-list-msg">Never mind I found...</span>
|
|
</div>
|
|
<!-- /.contacts-list-info -->
|
|
</a>
|
|
</li>
|
|
<!-- End Contact Item -->
|
|
</ul>
|
|
<!-- /.contacts-list -->
|
|
</div>
|
|
<!-- /.direct-chat-pane -->
|
|
</div>
|
|
<!-- /.card-body -->
|
|
<div class="card-footer">
|
|
<form action="#" method="post">
|
|
<div class="input-group">
|
|
<input type="text" name="message" placeholder="Type Message ..." class="form-control">
|
|
<span class="input-group-append">
|
|
<button type="button" class="btn btn-primary">Send</button>
|
|
</span>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<!-- /.card-footer-->
|
|
</div>
|
|
<!--/.direct-chat -->
|
|
</div>
|
|
<!-- /.Start col -->
|
|
</div>
|
|
<!-- /.row (main row) -->
|
|
</div><!-- /.container-fluid -->
|
|
</div>
|
|
</main>
|
|
<!-- /.content-wrapper -->
|
|
|
|
@@include('./dashboard/_footer.html', {
|
|
"path": "."
|
|
})
|
|
</div>
|
|
<!-- ./wrapper -->
|
|
|
|
@@include('./_scripts.html', {
|
|
"path": "."
|
|
})
|
|
|
|
<!-- OPTIONAL SCRIPTS -->
|
|
|
|
<!-- ChartJS -->
|
|
<script src="https://cdn.jsdelivr.net/npm/chart.js@3.6.0/dist/chart.min.js" integrity="sha256-7lWo7cjrrponRJcS6bc8isfsPDwSKoaYfGIHgSheQkk=" crossorigin="anonymous"></script>
|
|
<script>
|
|
// NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT
|
|
// IT'S ALL JUST JUNK FOR DEMO
|
|
// ++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
/* Chart.js Charts */
|
|
// Sales chart
|
|
(function () {
|
|
'use strict'
|
|
|
|
var salesChartCanvas = document.querySelector('#revenue-chart-canvas').getContext('2d')
|
|
|
|
var salesChartData = {
|
|
labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
|
|
datasets: [
|
|
{
|
|
label: 'Digital Goods',
|
|
backgroundColor: 'rgba(60,141,188,0.9)',
|
|
borderColor: 'rgba(60,141,188,0.8)',
|
|
fill: true,
|
|
tension: 0.4,
|
|
pointRadius: 0,
|
|
pointColor: '#3b8bba',
|
|
pointStrokeColor: 'rgba(60,141,188,1)',
|
|
pointHighlightFill: '#fff',
|
|
pointHighlightStroke: 'rgba(60,141,188,1)',
|
|
data: [28, 48, 40, 19, 86, 27, 90]
|
|
},
|
|
{
|
|
label: 'Electronics',
|
|
backgroundColor: 'rgba(210, 214, 222, 1)',
|
|
borderColor: 'rgba(210, 214, 222, 1)',
|
|
fill: true,
|
|
tension: 0.4,
|
|
pointRadius: 0,
|
|
pointColor: 'rgba(210, 214, 222, 1)',
|
|
pointStrokeColor: '#c1c7d1',
|
|
pointHighlightFill: '#fff',
|
|
pointHighlightStroke: 'rgba(220,220,220,1)',
|
|
data: [65, 59, 80, 81, 56, 55, 40]
|
|
}
|
|
]
|
|
}
|
|
|
|
var salesChartOptions = {
|
|
maintainAspectRatio: false,
|
|
responsive: true,
|
|
plugins: {
|
|
legend: {
|
|
display: false
|
|
}
|
|
},
|
|
scales: {
|
|
xAxes: {
|
|
gridLines: {
|
|
display: false
|
|
}
|
|
},
|
|
yAxes: {
|
|
gridLines: {
|
|
display: false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// This will get the first returned node in the js collection.
|
|
var salesChart = new Chart(salesChartCanvas, { // lgtm[js/unused-local-variable]
|
|
type: 'line',
|
|
data: salesChartData,
|
|
options: salesChartOptions
|
|
})
|
|
|
|
// Donut Chart
|
|
var pieChartCanvas = document.querySelector('#sales-chart-canvas').getContext('2d')
|
|
var pieData = {
|
|
labels: [
|
|
'Instore Sales',
|
|
'Download Sales',
|
|
'Mail-Order Sales'
|
|
],
|
|
datasets: [
|
|
{
|
|
data: [30, 12, 20],
|
|
backgroundColor: ['#f56954', '#00a65a', '#f39c12']
|
|
}
|
|
]
|
|
}
|
|
var pieOptions = {
|
|
plugins: {
|
|
legend: {
|
|
display: false
|
|
}
|
|
},
|
|
maintainAspectRatio: false,
|
|
responsive: true
|
|
}
|
|
// Create pie or douhnut chart
|
|
// You can switch between pie and douhnut using the method below.
|
|
// eslint-disable-next-line no-unused-vars
|
|
var pieChart = new Chart(pieChartCanvas, { // lgtm[js/unused-local-variable]
|
|
type: 'doughnut',
|
|
data: pieData,
|
|
options: pieOptions
|
|
})
|
|
})()
|
|
</script>
|
|
</body>
|
|
</html>
|