ishingiro / tests /test_professional_dashboard.html
IZERE HIRWA Roger
ishingiro
c024705
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AIMHSA Professional Dashboard - Test</title>
<!-- AdminLTE 4 CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/admin-lte@3.2/dist/css/adminlte.min.css">
<!-- Font Awesome -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
<!-- Google Font: Source Sans Pro -->
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback">
<!-- Chart.js -->
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<!-- DataTables CSS -->
<link rel="stylesheet" href="https://cdn.datatables.net/1.13.7/css/dataTables.bootstrap4.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/responsive/2.5.0/css/responsive.bootstrap4.min.css">
<!-- Select2 CSS -->
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
<!-- SweetAlert2 CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/sweetalert2@11/dist/sweetalert2.min.css">
<!-- FullCalendar CSS -->
<link href="https://cdn.jsdelivr.net/npm/fullcalendar@6.1.10/index.global.min.css" rel="stylesheet">
</head>
<body class="hold-transition sidebar-mini layout-fixed">
<div class="wrapper">
<!-- Navbar -->
<nav class="main-header navbar navbar-expand navbar-dark navbar-success">
<!-- Left navbar links -->
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" data-widget="pushmenu" href="#" role="button">
<i class="fas fa-bars"></i>
</a>
</li>
<li class="nav-item d-none d-sm-inline-block">
<a href="#" class="nav-link">Dashboard</a>
</li>
<li class="nav-item d-none d-sm-inline-block">
<a href="#" class="nav-link">Sessions</a>
</li>
</ul>
<!-- Right navbar links -->
<ul class="navbar-nav ml-auto">
<!-- Notifications Dropdown Menu -->
<li class="nav-item dropdown">
<a class="nav-link" data-toggle="dropdown" href="#">
<i class="far fa-bell"></i>
<span class="badge badge-warning navbar-badge">8</span>
</a>
<div class="dropdown-menu dropdown-menu-lg dropdown-menu-right">
<span class="dropdown-item dropdown-header">8 Notifications</span>
<div class="dropdown-divider"></div>
<a href="#" class="dropdown-item">
<i class="fas fa-calendar mr-2"></i> New session booking
<span class="float-right text-muted text-sm">3 mins</span>
</a>
<div class="dropdown-divider"></div>
<a href="#" class="dropdown-item">
<i class="fas fa-exclamation-triangle mr-2"></i> High risk assessment
<span class="float-right text-muted text-sm">12 hours</span>
</a>
<div class="dropdown-divider"></div>
<a href="#" class="dropdown-item">
<i class="fas fa-user mr-2"></i> New patient assigned
<span class="float-right text-muted text-sm">2 days</span>
</a>
<div class="dropdown-divider"></div>
<a href="#" class="dropdown-item dropdown-footer">See All Notifications</a>
</div>
</li>
<!-- User Account Dropdown -->
<li class="nav-item dropdown">
<a class="nav-link" data-toggle="dropdown" href="#">
<i class="far fa-user"></i>
<span class="ml-2">Dr. John Doe</span>
</a>
<div class="dropdown-menu dropdown-menu-lg dropdown-menu-right">
<a href="#" class="dropdown-item">
<i class="fas fa-user mr-2"></i> Profile
</a>
<a href="#" class="dropdown-item">
<i class="fas fa-cog mr-2"></i> Settings
</a>
<div class="dropdown-divider"></div>
<a href="#" class="dropdown-item" onclick="testLogout()">
<i class="fas fa-sign-out-alt mr-2"></i> Logout
</a>
</div>
</li>
</ul>
</nav>
<!-- Main Sidebar Container -->
<aside class="main-sidebar sidebar-dark-success elevation-4">
<!-- Brand Logo -->
<a href="#" class="brand-link">
<img src="https://via.placeholder.com/33x33/28a745/ffffff?text=MD" alt="AIMHSA Logo" class="brand-image img-circle elevation-3" style="opacity: .8">
<span class="brand-text font-weight-light">AIMHSA Professional</span>
</a>
<!-- Sidebar -->
<div class="sidebar">
<!-- Sidebar user panel -->
<div class="user-panel mt-3 pb-3 mb-3 d-flex">
<div class="image">
<img src="https://via.placeholder.com/160x160/28a745/ffffff?text=JD" class="img-circle elevation-2" alt="User Image">
</div>
<div class="info">
<a href="#" class="d-block">Dr. John Doe</a>
<small class="text-muted">Psychiatrist</small>
</div>
</div>
<!-- Sidebar Menu -->
<nav class="mt-2">
<ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="false">
<li class="nav-item">
<a href="#dashboard" class="nav-link active" data-section="dashboard">
<i class="nav-icon fas fa-tachometer-alt"></i>
<p>Dashboard</p>
</a>
</li>
<li class="nav-item">
<a href="#sessions" class="nav-link" data-section="sessions">
<i class="nav-icon fas fa-calendar-check"></i>
<p>My Sessions</p>
</a>
</li>
<li class="nav-item">
<a href="#patients" class="nav-link" data-section="patients">
<i class="nav-icon fas fa-users"></i>
<p>My Patients</p>
</a>
</li>
<li class="nav-item">
<a href="#notifications" class="nav-link" data-section="notifications">
<i class="nav-icon fas fa-bell"></i>
<p>Notifications</p>
<span class="badge badge-warning right">8</span>
</a>
</li>
<li class="nav-item">
<a href="#reports" class="nav-link" data-section="reports">
<i class="nav-icon fas fa-chart-bar"></i>
<p>Reports</p>
</a>
</li>
<li class="nav-item">
<a href="#profile" class="nav-link" data-section="profile">
<i class="nav-icon fas fa-user"></i>
<p>Profile</p>
</a>
</li>
<li class="nav-item">
<a href="#settings" class="nav-link" data-section="settings">
<i class="nav-icon fas fa-cog"></i>
<p>Settings</p>
</a>
</li>
</ul>
</nav>
</div>
</aside>
<!-- Content Wrapper -->
<div class="content-wrapper">
<!-- Content Header -->
<div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1 class="m-0" id="pageTitle">Dashboard</h1>
</div>
<div class="col-sm-6">
<ol class="breadcrumb float-sm-right">
<li class="breadcrumb-item"><a href="#">Home</a></li>
<li class="breadcrumb-item active" id="breadcrumbActive">Dashboard</li>
</ol>
</div>
</div>
</div>
</div>
<!-- Main content -->
<section class="content">
<div class="container-fluid">
<!-- Dashboard Section -->
<div id="dashboard-section" class="content-section">
<!-- Info boxes -->
<div class="row">
<div class="col-lg-3 col-6">
<div class="small-box bg-info">
<div class="inner">
<h3>15</h3>
<p>Total Sessions</p>
</div>
<div class="icon">
<i class="fas fa-calendar-check"></i>
</div>
<a href="#sessions" class="small-box-footer">More info <i class="fas fa-arrow-circle-right"></i></a>
</div>
</div>
<div class="col-lg-3 col-6">
<div class="small-box bg-warning">
<div class="inner">
<h3>8</h3>
<p>Unread Notifications</p>
</div>
<div class="icon">
<i class="fas fa-bell"></i>
</div>
<a href="#notifications" class="small-box-footer">More info <i class="fas fa-arrow-circle-right"></i></a>
</div>
</div>
<div class="col-lg-3 col-6">
<div class="small-box bg-success">
<div class="inner">
<h3>3</h3>
<p>Today's Sessions</p>
</div>
<div class="icon">
<i class="fas fa-clock"></i>
</div>
<a href="#sessions" class="small-box-footer">More info <i class="fas fa-arrow-circle-right"></i></a>
</div>
</div>
<div class="col-lg-3 col-6">
<div class="small-box bg-danger">
<div class="inner">
<h3>2</h3>
<p>High Risk Cases</p>
</div>
<div class="icon">
<i class="fas fa-exclamation-triangle"></i>
</div>
<a href="#patients" class="small-box-footer">More info <i class="fas fa-arrow-circle-right"></i></a>
</div>
</div>
</div>
<!-- Charts Row -->
<div class="row">
<div class="col-lg-8">
<div class="card">
<div class="card-header">
<h3 class="card-title">Session Trends</h3>
<div class="card-tools">
<button type="button" class="btn btn-tool" data-card-widget="collapse">
<i class="fas fa-minus"></i>
</button>
<button type="button" class="btn btn-tool" data-card-widget="remove">
<i class="fas fa-times"></i>
</button>
</div>
</div>
<div class="card-body">
<canvas id="sessionTrendChart" style="height: 300px;"></canvas>
</div>
</div>
</div>
<div class="col-lg-4">
<div class="card">
<div class="card-header">
<h3 class="card-title">Patient Risk Distribution</h3>
</div>
<div class="card-body">
<canvas id="riskDistributionChart" style="height: 300px;"></canvas>
</div>
</div>
</div>
</div>
<!-- Test Features Section -->
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-header">
<h3 class="card-title">Professional Dashboard Features Test</h3>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-3">
<button class="btn btn-primary btn-block" onclick="testToast()">
<i class="fas fa-bell"></i> Test Toast
</button>
</div>
<div class="col-md-3">
<button class="btn btn-success btn-block" onclick="testModal()">
<i class="fas fa-window-maximize"></i> Test Modal
</button>
</div>
<div class="col-md-3">
<button class="btn btn-warning btn-block" onclick="testDataTable()">
<i class="fas fa-table"></i> Test DataTable
</button>
</div>
<div class="col-md-3">
<button class="btn btn-info btn-block" onclick="testCharts()">
<i class="fas fa-chart-pie"></i> Test Charts
</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Test Features Section -->
<div id="test-features" class="content-section" style="display: none;">
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-header">
<h3 class="card-title">Advanced Features Test</h3>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-3">
<button class="btn btn-primary btn-block" onclick="testToast()">
<i class="fas fa-bell"></i> Test Toast
</button>
</div>
<div class="col-md-3">
<button class="btn btn-success btn-block" onclick="testModal()">
<i class="fas fa-window-maximize"></i> Test Modal
</button>
</div>
<div class="col-md-3">
<button class="btn btn-warning btn-block" onclick="testDataTable()">
<i class="fas fa-table"></i> Test DataTable
</button>
</div>
<div class="col-md-3">
<button class="btn btn-info btn-block" onclick="testCharts()">
<i class="fas fa-chart-pie"></i> Test Charts
</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
</div>
<!-- Test Modal -->
<div class="modal fade" id="testModal" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Test Modal</h5>
<button type="button" class="close" data-dismiss="modal">
<span>&times;</span>
</button>
</div>
<div class="modal-body">
<p>Advanced AdminLTE 4 professional modal is working correctly!</p>
<div class="form-group">
<label for="testInput">Test Input:</label>
<input type="text" class="form-control" id="testInput" placeholder="Enter something...">
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
<!-- jQuery -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<!-- Bootstrap 4 -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"></script>
<!-- AdminLTE 4 -->
<script src="https://cdn.jsdelivr.net/npm/admin-lte@3.2/dist/js/adminlte.min.js"></script>
<!-- DataTables -->
<script src="https://cdn.datatables.net/1.13.7/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/1.13.7/js/dataTables.bootstrap4.min.js"></script>
<script src="https://cdn.datatables.net/responsive/2.5.0/js/dataTables.responsive.min.js"></script>
<script src="https://cdn.datatables.net/responsive/2.5.0/js/responsive.bootstrap4.min.js"></script>
<!-- Select2 -->
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
<!-- SweetAlert2 -->
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<!-- FullCalendar -->
<script src="https://cdn.jsdelivr.net/npm/fullcalendar@6.1.10/index.global.min.js"></script>
<script>
// Initialize charts
$(document).ready(function() {
// Session trend chart
const sessionTrendCtx = document.getElementById('sessionTrendChart').getContext('2d');
new Chart(sessionTrendCtx, {
type: 'line',
data: {
labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'],
datasets: [{
label: 'Completed Sessions',
data: [12, 15, 18, 14, 16, 19],
borderColor: '#28a745',
backgroundColor: 'rgba(40, 167, 69, 0.1)',
tension: 0.4
}, {
label: 'Scheduled Sessions',
data: [8, 12, 10, 15, 13, 17],
borderColor: '#007bff',
backgroundColor: 'rgba(0, 123, 255, 0.1)',
tension: 0.4
}, {
label: 'Cancelled Sessions',
data: [2, 3, 1, 4, 2, 3],
borderColor: '#dc3545',
backgroundColor: 'rgba(220, 53, 69, 0.1)',
tension: 0.4
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
scales: {
y: {
beginAtZero: true
}
}
}
});
// Risk distribution chart
const riskDistCtx = document.getElementById('riskDistributionChart').getContext('2d');
new Chart(riskDistCtx, {
type: 'doughnut',
data: {
labels: ['Low Risk', 'Medium Risk', 'High Risk', 'Critical'],
datasets: [{
data: [45, 35, 15, 5],
backgroundColor: ['#28a745', '#17a2b8', '#ffc107', '#dc3545'],
borderWidth: 2
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
plugins: {
legend: {
position: 'bottom'
}
}
}
});
// Initialize navigation
$('.nav-sidebar .nav-link').on('click', function(e) {
e.preventDefault();
const section = $(this).data('section');
if (section) {
showSection(section);
updateActiveNavItem($(this));
}
});
// Initialize tooltips
$('[data-toggle="tooltip"]').tooltip();
});
function showSection(sectionName) {
$('.content-section').hide();
if (sectionName === 'dashboard') {
$('#dashboard-section').show();
} else {
$('#test-features').show();
}
}
function updateActiveNavItem(activeItem) {
$('.nav-sidebar .nav-link').removeClass('active');
activeItem.addClass('active');
}
function testToast() {
Swal.fire({
title: 'Success!',
text: 'Advanced AdminLTE 4 professional toast notification is working!',
icon: 'success',
timer: 3000
});
}
function testModal() {
$('#testModal').modal('show');
}
function testDataTable() {
Swal.fire('DataTable', 'DataTable functionality is working!', 'info');
}
function testCharts() {
Swal.fire('Charts', 'Chart.js integration is working!', 'info');
}
function testLogout() {
Swal.fire({
title: 'Logout?',
text: 'Are you sure you want to logout?',
icon: 'question',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes, logout!'
}).then((result) => {
if (result.isConfirmed) {
Swal.fire('Logged out!', 'You have been logged out.', 'success');
}
});
}
</script>
</body>
</html>