| Current Path : /home/emeraadmin/public_html/4d695/ |
| Current File : /home/emeraadmin/public_html/4d695/dashboard.php.tar |
home/emeraadmin/public_html/pages/emeraadmin/dashboard.php 0000644 00000037572 15167742157 0017776 0 ustar 00 <?php
include('head.php');
require_once '../../Service/ReportsAndDashboardService.php';
$reportsAndDashboardService = new ReportsAndDashboardService();
$services = $reportsAndDashboardService->getServicesCount();
$tasks = $reportsAndDashboardService->getTasksCount();
$assignedTasks = $reportsAndDashboardService->getAssignTasksCount();
$contracts = $reportsAndDashboardService->getContractorsCount();
$subtasks = $reportsAndDashboardService->getSubtasks();
// Fetch completed and incomplete subtask summary data
$subtasksSummary = $reportsAndDashboardService->getSubtasksSummaryAdmin();
$completedSubTasks = $subtasksSummary['completed'];
$incompleteSubTasks = $subtasksSummary['incomplete'];
$ongoingSubTasks = $completedSubTasks + $incompleteSubTasks; // Calculating ongoing subtasks
// Fetch total finished and not finished task summary data
$taskSummary = $reportsAndDashboardService->getTasksSummaryAdmin();
$completedTasks = $taskSummary['completed'];
$incompleteTasks = $taskSummary['incomplete'];
$ongoingTasks = $taskSummary['ongoing'];
$todaySubtasksSummary = $reportsAndDashboardService->getSubtasksSummaryForTodayAdmin(date('Y-m-d'));
$todayTotalSubTasks = $todaySubtasksSummary['total'];
$todayCompletedSubTasks = $todaySubtasksSummary['completed'];
$todayIncompleteSubTasks = $todaySubtasksSummary['incomplete'];
?>
<div class="main-content">
<div class="container-fluid">
<div class="row grid-layout">
<!-- Ongoing, Completed, Incomplete Subtasks and Chart -->
<div class="col-md-8">
<div class="card">
<div class="card-header">
<h3>Overall Subtasks Summary</h3>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-6">
<div class="widget bg-primary">
<div class="widget-body">
<div class="d-flex justify-content-between align-items-center">
<div class="state">
<h6>Ongoing Subtasks</h6>
<h2><?php echo $ongoingSubTasks; ?></h2>
</div>
<div class="icon">
<i class="ik ik-box"></i>
</div>
</div>
</div>
</div>
<div class="widget bg-success">
<div class="widget-body">
<div class="d-flex justify-content-between align-items-center">
<div class="state">
<h6>Completed Subtasks</h6>
<h2><?php echo $completedSubTasks; ?></h2>
</div>
<div class="icon">
<i class="ik ik-shopping-cart"></i>
</div>
</div>
</div>
</div>
<div class="widget bg-warning">
<div class="widget-body">
<div class="d-flex justify-content-between align-items-center">
<div class="state">
<h6>Incomplete Subtasks</h6>
<h2><?php echo $incompleteSubTasks; ?></h2>
</div>
<div class="icon">
<i class="ik ik-inbox"></i>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card-body text-center">
<canvas id="subtasksPieChart" style="height: 370px; width: 100%;"></canvas>
</div>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<h3>Today's Subtasks Summary: <?php echo date('l, F j, Y'); ?></h3>
</div>
<div class="card-block">
<div class="row">
<div class="col-md-6">
<div class="widget bg-info">
<div class="widget-body">
<div class="d-flex justify-content-between align-items-center">
<div class="state">
<h6>Total Subtasks to be Completed</h6>
<h2><?php echo $todayTotalSubTasks; ?></h2>
</div>
<div class="icon">
<i class="ik ik-calendar"></i>
</div>
</div>
</div>
</div>
<div class="widget bg-success">
<div class="widget-body">
<div class="d-flex justify-content-between align-items-center">
<div class="state">
<h6>Completed Subtasks</h6>
<h2><?php echo $todayCompletedSubTasks; ?></h2>
</div>
<div class="icon">
<i class="ik ik-check-circle"></i>
</div>
</div>
</div>
</div>
<div class="widget bg-warning">
<div class="widget-body">
<div class="d-flex justify-content-between align-items-center">
<div class="state">
<h6>Incomplete Subtasks</h6>
<h2><?php echo $todayIncompleteSubTasks; ?></h2>
</div>
<div class="icon">
<i class="ik ik-alert-circle"></i>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card-block text-center">
<canvas id="todaySubtasksDoughnutChart"
style="height: 370px; width: 100%;"></canvas>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="widget bg-danger">
<div class="widget-body">
<div class="d-flex justify-content-between align-items-center">
<div class="state">
<h6>Sub Contractors</h6>
<h2><?php echo $contracts->count; ?></h2>
</div>
<div class="icon">
<i class="ik ik-users"></i>
</div>
</div>
</div>
</div>
<div class="widget bg-success">
<div class="widget-body">
<div class="d-flex justify-content-between align-items-center">
<div class="state">
<h6>Services</h6>
<h2><?php echo $services->count; ?></h2>
</div>
<div class="icon">
<i class="ik ik-map-pin"></i>
</div>
</div>
</div>
</div>
<div class="widget bg-warning">
<div class="widget-body">
<div class="d-flex justify-content-between align-items-center">
<div class="state">
<h6>Assigned Tasks</h6>
<h2><?php echo $assignedTasks->count; ?></h2>
</div>
<div class="icon">
<i class="ik ik-check-circle"></i>
</div>
</div>
</div>
</div>
<div class="widget bg-primary">
<div class="widget-body">
<div class="d-flex justify-content-between align-items-center">
<div class="state">
<h6>Unassigned Tasks</h6>
<h2><?php echo $tasks->count; ?></h2>
</div>
<div class="icon">
<i class="ik ik-calendar"></i>
</div>
</div>
</div>
</div>
<div class="card sale-card">
<div class="card-header">
<h3>Completed Subtasks</h3>
</div>
<div class="card-block">
<div id="subtask-chart" class="chart-shadow" style="height:300px"></div>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="https://www.amcharts.com/lib/3/amcharts.js"></script>
<script src="https://www.amcharts.com/lib/3/serial.js"></script>
<script src="https://www.amcharts.com/lib/3/themes/light.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
<script>
var chartData = [
<?php foreach ($subtasks as $subtask): ?>
{
"date": "<?php echo $subtask->completed_at; ?>",
"completed_subtasks": <?php echo $subtask->completed_subtasks; ?>
},
<?php endforeach; ?>
];
var chart = AmCharts.makeChart("subtask-chart", {
"type": "serial",
"theme": "light",
"dataDateFormat": "YYYY-MM-DD",
"precision": 2,
"valueAxes": [{
"id": "v1",
"position": "left",
"autoGridCount": false,
"labelFunction": function (value) {
return value + " tasks";
}
}],
"graphs": [{
"id": "g1",
"valueAxis": "v1",
"bullet": "round",
"bulletBorderAlpha": 1,
"bulletColor": "#FFFFFF",
"bulletSize": 8,
"hideBulletsCount": 50,
"lineThickness": 3,
"lineColor": "#2ed8b6",
"title": "Completed Subtasks",
"useLineColorForBulletBorder": true,
"valueField": "completed_subtasks",
"balloonText": "[[title]]<br /><b style='font-size: 130%'>[[value]]</b>"
}],
"chartCursor": {
"pan": true,
"valueLineEnabled": true,
"valueLineBalloonEnabled": true,
"cursorAlpha": 0,
"valueLineAlpha": 0.2
},
"categoryField": "date",
"categoryAxis": {
"parseDates": true,
"dashLength": 1,
"minorGridEnabled": true
},
"legend": {
"useGraphSettings": true,
"position": "top"
},
"balloon": {
"borderThickness": 1,
"shadowAlpha": 0
},
"dataProvider": chartData
});
</script>
<script>
// Data for the doughnut chart
var completedSubTasks = <?php echo $completedSubTasks; ?>;
var incompleteSubTasks = <?php echo $incompleteSubTasks; ?>;
// Create Doughnut Chart
var ctx = document.getElementById('subtasksPieChart').getContext('2d');
var subtasksDoughnutChart = new Chart(ctx, {
type: 'doughnut', // Change type to 'doughnut'
data: {
labels: ['Completed Subtasks', 'Incomplete Subtasks'],
datasets: [{
label: 'Subtasks Status',
data: [completedSubTasks, incompleteSubTasks], // Data values for doughnut chart
backgroundColor: [
'#28a745', // Green color for 'Completed Subtasks'
'#fd7e14' // Red color for 'Incomplete Subtasks'
],
borderColor: [
'#ffffff', // White border
'#ffffff' // White border
],
borderWidth: 1
}]
},
options: {
responsive: true, // Make chart responsive
maintainAspectRatio: false,
plugins: {
legend: {
display: true, // Show legend
position: 'bottom' // Position of the legend
},
}
}
});
</script>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script>
// Data for the doughnut chart for today's subtasks
var todayCompletedSubTasks = <?php echo $todayCompletedSubTasks; ?>;
var todayIncompleteSubTasks = <?php echo $todayIncompleteSubTasks; ?>;
// Create Doughnut Chart for Today's Subtasks
var ctx = document.getElementById('todaySubtasksDoughnutChart').getContext('2d');
var todaySubtasksDoughnutChart = new Chart(ctx, {
type: 'doughnut',
data: {
labels: ['Completed Subtasks', 'Incomplete Subtasks'],
datasets: [{
label: 'Today\'s Subtasks Status',
data: [todayCompletedSubTasks, todayIncompleteSubTasks], // Data values for doughnut chart
backgroundColor: [
'#28a745', // Green for completed
'#ffc107' // Yellow for incomplete
],
borderColor: [
'#ffffff', // White border
'#ffffff' // White border
],
borderWidth: 1
}]
},
options: {
responsive: true, // Make chart responsive
maintainAspectRatio: false,
plugins: {
legend: {
display: true, // Show legend
position: 'bottom' // Position of the legend
},
}
}
});
</script>
<?php include('footer.php'); ?>
home/emeraadmin/public_html/pages/taskprovider/dashboard.php 0000644 00000036535 15167742227 0020405 0 ustar 00 <?php
//enable error reporting
error_reporting(E_ALL);
ini_set('display_errors', 1);
include('head.php');
require_once '../../Service/ReportsAndDashboardService.php';
$reportsAndDashboardService = new ReportsAndDashboardService();
//
//
//$pendingTasks = $reportsAndDashboardService->getPendingTasks($companyId);
//$completedTasks =$reportsAndDashboardService->getCompletedTasks($companyId);
//
//$ongoingSubtasks = $reportsAndDashboardService->getOngoingSubtasks($companyId);
//$unassignedSubtasks = $reportsAndDashboardService->getUnassignedSubtasks($companyId);
//
$subtasks = $reportsAndDashboardService->getSubtasks();
$taskProviderId = $_SESSION['user_id'];
//Tasks added by me
$tasksAddedByMe = $reportsAndDashboardService->getTasksAddedByMe($taskProviderId);
//Service Locations
$services = $reportsAndDashboardService->getServicesCount();
// Fetch completed and incomplete subtask summary data
$subtasksSummary = $reportsAndDashboardService->getSubtasksSummaryAdmin();
$completedSubTasks = $subtasksSummary['completed'];
$incompleteSubTasks = $subtasksSummary['incomplete'];
$ongoingSubTasks = $completedSubTasks + $incompleteSubTasks; // Calculating ongoing subtasks
// Fetch total finished and not finished task summary data
$taskSummary = $reportsAndDashboardService->getTasksSummaryAdmin();
$completedTasks = $taskSummary['completed'];
$pendingTasks = $taskSummary['pending'];
$ongoingTasks = $taskSummary['total'];
$todaySubtasksSummary = $reportsAndDashboardService->getSubtasksSummaryForTodayAdmin(date('Y-m-d'));
$todayTotalSubTasks = $todaySubtasksSummary['total'];
$todayCompletedSubTasks = $todaySubtasksSummary['completed'];
$todayIncompleteSubTasks = $todaySubtasksSummary['incomplete'];
?>
<div class="main-content">
<div class="container-fluid">
<div class="row grid-layout">
<!-- Ongoing, Completed, Incomplete Subtasks and Chart -->
<div class="col-md-8">
<div class="card">
<div class="card-header">
<h3>Overall Subtasks Summary</h3>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-6">
<div class="widget bg-primary">
<div class="widget-body">
<div class="d-flex justify-content-between align-items-center">
<div class="state">
<h6>Ongoing Subtasks</h6>
<h2><?php echo $ongoingSubTasks; ?></h2>
</div>
<div class="icon">
<i class="ik ik-box"></i>
</div>
</div>
</div>
</div>
<div class="widget bg-success">
<div class="widget-body">
<div class="d-flex justify-content-between align-items-center">
<div class="state">
<h6>Completed Subtasks</h6>
<h2><?php echo $completedSubTasks; ?></h2>
</div>
<div class="icon">
<i class="ik ik-shopping-cart"></i>
</div>
</div>
</div>
</div>
<div class="widget bg-warning">
<div class="widget-body">
<div class="d-flex justify-content-between align-items-center">
<div class="state">
<h6>Incomplete Subtasks</h6>
<h2><?php echo $incompleteSubTasks; ?></h2>
</div>
<div class="icon">
<i class="ik ik-inbox"></i>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card-body text-center">
<canvas id="subtasksPieChart" style="height: 370px; width: 100%;"></canvas>
</div>
</div>
</div>
</div>
</div>
<!-- Today's Subtasks Summary -->
<div class="card">
<div class="card-header">
<h3>Today's Subtasks Summary: <?php echo date('l, F j, Y'); ?></h3>
</div>
<div class="card-block">
<div class="row">
<div class="col-md-6">
<!-- Total Subtasks -->
<div class="widget bg-info">
<div class="widget-body">
<div class="d-flex justify-content-between align-items-center">
<div class="state">
<h6>Total Subtasks to be Completed</h6>
<h2><?php echo $todayTotalSubTasks; ?></h2>
</div>
<div class="icon">
<i class="ik ik-calendar"></i>
</div>
</div>
</div>
</div>
<!-- Today's Completed Subtasks -->
<div class="widget bg-success">
<div class="widget-body">
<div class="d-flex justify-content-between align-items-center">
<div class="state">
<h6>Completed Subtasks</h6>
<h2><?php echo $todayCompletedSubTasks; ?></h2>
</div>
<div class="icon">
<i class="ik ik-check-circle"></i>
</div>
</div>
</div>
</div>
<!-- Today's Incomplete Subtasks -->
<div class="widget bg-warning">
<div class="widget-body">
<div class="d-flex justify-content-between align-items-center">
<div class="state">
<h6>Incomplete Subtasks</h6>
<h2><?php echo $todayIncompleteSubTasks; ?></h2>
</div>
<div class="icon">
<i class="ik ik-alert-circle"></i>
</div>
</div>
</div>
</div>
</div>
<!-- Doughnut Chart for Today's Subtasks -->
<div class="col-md-6">
<div class="card-block text-center">
<canvas id="todaySubtasksDoughnutChart" style="height: 370px; width: 100%;"></canvas>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Right Column Widgets -->
<div class="col-md-4">
<!-- Sub Contractors -->
<div class="widget bg-primary">
<div class="widget-body">
<div class="d-flex justify-content-between align-items-center">
<div class="state">
<h6> Tasks Added By Me</h6>
<h2><?php echo $tasksAddedByMe; ?></h2>
</div>
<div class="icon">
<i class="ik ik-box"></i>
</div>
</div>
</div>
</div>
<!-- Services -->
<div class="widget bg-success">
<div class="widget-body">
<div class="d-flex justify-content-between align-items-center">
<div class="state">
<h6>Services</h6>
<h2><?php echo $services->count; ?></h2>
</div>
<div class="icon">
<i class="ik ik-map-pin"></i>
</div>
</div>
</div>
</div>
<!-- Completed Subtasks Chart -->
<div class="card sale-card">
<div class="card-header">
<h3>Completed Subtasks</h3>
</div>
<div class="card-block">
<div id="subtask-chart" class="chart-shadow" style="height:300px"></div>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="https://www.amcharts.com/lib/3/amcharts.js"></script>
<script src="https://www.amcharts.com/lib/3/serial.js"></script>
<script src="https://www.amcharts.com/lib/3/themes/light.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
<script>
var chartData = [
<?php foreach ($subtasks as $subtask): ?>
{
"date": "<?php echo $subtask->completed_at; ?>",
"completed_subtasks": <?php echo $subtask->completed_subtasks; ?>
},
<?php endforeach; ?>
];
var chart = AmCharts.makeChart("subtask-chart", {
"type": "serial",
"theme": "light",
"dataDateFormat": "YYYY-MM-DD",
"precision": 2,
"valueAxes": [{
"id": "v1",
"position": "left",
"autoGridCount": false,
"labelFunction": function (value) {
return value + " tasks";
}
}],
"graphs": [{
"id": "g1",
"valueAxis": "v1",
"bullet": "round",
"bulletBorderAlpha": 1,
"bulletColor": "#FFFFFF",
"bulletSize": 8,
"hideBulletsCount": 50,
"lineThickness": 3,
"lineColor": "#2ed8b6",
"title": "Completed Subtasks",
"useLineColorForBulletBorder": true,
"valueField": "completed_subtasks",
"balloonText": "[[title]]<br /><b style='font-size: 130%'>[[value]]</b>"
}],
"chartCursor": {
"pan": true,
"valueLineEnabled": true,
"valueLineBalloonEnabled": true,
"cursorAlpha": 0,
"valueLineAlpha": 0.2
},
"categoryField": "date",
"categoryAxis": {
"parseDates": true,
"dashLength": 1,
"minorGridEnabled": true
},
"legend": {
"useGraphSettings": true,
"position": "top"
},
"balloon": {
"borderThickness": 1,
"shadowAlpha": 0
},
"dataProvider": chartData
});
</script>
<script>
// Data for the doughnut chart
var completedSubTasks = <?php echo $completedSubTasks; ?>;
var incompleteSubTasks = <?php echo $incompleteSubTasks; ?>;
// Create Doughnut Chart
var ctx = document.getElementById('subtasksPieChart').getContext('2d');
var subtasksDoughnutChart = new Chart(ctx, {
type: 'doughnut', // Change type to 'doughnut'
data: {
labels: ['Completed Subtasks', 'Incomplete Subtasks'],
datasets: [{
label: 'Subtasks Status',
data: [completedSubTasks, incompleteSubTasks], // Data values for doughnut chart
backgroundColor: [
'#28a745', // Green color for 'Completed Subtasks'
'#fd7e14' // Red color for 'Incomplete Subtasks'
],
borderColor: [
'#ffffff', // White border
'#ffffff' // White border
],
borderWidth: 1
}]
},
options: {
responsive: true, // Make chart responsive
maintainAspectRatio: false,
plugins: {
legend: {
display: true, // Show legend
position: 'bottom' // Position of the legend
},
}
}
});
</script>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script>
// Data for the doughnut chart for today's subtasks
var todayCompletedSubTasks = <?php echo $todayCompletedSubTasks; ?>;
var todayIncompleteSubTasks = <?php echo $todayIncompleteSubTasks; ?>;
// Create Doughnut Chart for Today's Subtasks
var ctx = document.getElementById('todaySubtasksDoughnutChart').getContext('2d');
var todaySubtasksDoughnutChart = new Chart(ctx, {
type: 'doughnut',
data: {
labels: ['Completed Subtasks', 'Incomplete Subtasks'],
datasets: [{
label: 'Today\'s Subtasks Status',
data: [todayCompletedSubTasks, todayIncompleteSubTasks], // Data values for doughnut chart
backgroundColor: [
'#28a745', // Green for completed
'#ffc107' // Yellow for incomplete
],
borderColor: [
'#ffffff', // White border
'#ffffff' // White border
],
borderWidth: 1
}]
},
options: {
responsive: true, // Make chart responsive
maintainAspectRatio: false,
plugins: {
legend: {
display: true, // Show legend
position: 'bottom' // Position of the legend
},
}
}
});
</script>
<?php include('footer.php'); ?>
home/emeraadmin/public_html/pages/subcontractor/dashboard.php 0000644 00000030164 15170147337 0020543 0 ustar 00 <?php
include('head.php');
require_once '../../Service/ReportsAndDashboardService.php';
$reportsAndDashboardService = new ReportsAndDashboardService();
$pendingTasks = $reportsAndDashboardService->getPendingTasks($companyId);
$completedTasks = $reportsAndDashboardService->getCompletedTasks($companyId);
//$ongoingSubtasks = $reportsAndDashboardService->getOngoingSubtasks($companyId);
$unassignedSubtasks = $reportsAndDashboardService->getUnassignedSubtasks($companyId);
// Fetch completed and incomplete subtask summary data
$subtasksSummary = $reportsAndDashboardService->getSubtasksSummaryForSubContractor($companyId);
$completedSubTasks = $subtasksSummary['completed'];
$incompleteSubTasks = $subtasksSummary['incomplete'];
$ongoingSubTasks = $completedSubTasks + $incompleteSubTasks; // Calculating ongoing subtasks
// Fetch total finished and not finished task summary data
$taskSummary = $reportsAndDashboardService->getTasksSummaryForSubContractor($companyId);
$completedTasks = $taskSummary['completed'];
$pendingTasks = $taskSummary['pending'];
$ongoingTasks = $taskSummary['total'];
$todaySubtasksSummary = $reportsAndDashboardService->getSubtasksSummaryForTodaySubContractor($companyId, date('Y-m-d'));
$todayTotalSubTasks = $todaySubtasksSummary['total'];
$todayCompletedSubTasks = $todaySubtasksSummary['completed'];
$todayIncompleteSubTasks = $todaySubtasksSummary['incomplete'];
?>
<div class="main-content">
<div class="container-fluid">
<div class="row grid-layout">
<!-- Ongoing, Completed, Incomplete Subtasks and Chart -->
<div class="col-md-8">
<div class="card">
<div class="card-header">
<h3>Overall Subtasks Summary</h3>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-6">
<div class="widget bg-primary">
<div class="widget-body">
<div class="d-flex justify-content-between align-items-center">
<div class="state">
<h6>Ongoing Subtasks</h6>
<h2><?php echo $ongoingSubTasks; ?></h2>
</div>
<div class="icon">
<i class="ik ik-box"></i>
</div>
</div>
</div>
</div>
<div class="widget bg-success">
<div class="widget-body">
<div class="d-flex justify-content-between align-items-center">
<div class="state">
<h6>Completed Subtasks</h6>
<h2><?php echo $completedSubTasks; ?></h2>
</div>
<div class="icon">
<i class="ik ik-shopping-cart"></i>
</div>
</div>
</div>
</div>
<div class="widget bg-warning">
<div class="widget-body">
<div class="d-flex justify-content-between align-items-center">
<div class="state">
<h6>Incomplete Subtasks</h6>
<h2><?php echo $incompleteSubTasks; ?></h2>
</div>
<div class="icon">
<i class="ik ik-inbox"></i>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card-body text-center">
<canvas id="subtasksPieChart" style="height: 370px; width: 100%;"></canvas>
</div>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<h3>Today's Subtasks Summary: <?php echo date('l, F j, Y'); ?></h3>
</div>
<div class="card-block">
<div class="row">
<div class="col-md-6">
<div class="widget bg-info">
<div class="widget-body">
<div class="d-flex justify-content-between align-items-center">
<div class="state">
<h6>Total Subtasks to be Completed</h6>
<h2><?php echo $todayTotalSubTasks; ?></h2>
</div>
<div class="icon">
<i class="ik ik-calendar"></i>
</div>
</div>
</div>
</div>
<div class="widget bg-success">
<div class="widget-body">
<div class="d-flex justify-content-between align-items-center">
<div class="state">
<h6>Completed Subtasks</h6>
<h2><?php echo $todayCompletedSubTasks; ?></h2>
</div>
<div class="icon">
<i class="ik ik-check-circle"></i>
</div>
</div>
</div>
</div>
<div class="widget bg-warning">
<div class="widget-body">
<div class="d-flex justify-content-between align-items-center">
<div class="state">
<h6>Incomplete Subtasks</h6>
<h2><?php echo $todayIncompleteSubTasks; ?></h2>
</div>
<div class="icon">
<i class="ik ik-alert-circle"></i>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card-block text-center">
<canvas id="todaySubtasksDoughnutChart"
style="height: 370px; width: 100%;"></canvas>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="widget bg-danger">
<div class="widget-body">
<div class="d-flex justify-content-between align-items-center">
<div class="state">
<h6>Pending Tasks</h6>
<h2><?php echo $pendingTasks; ?></h2>
</div>
<div class="icon">
<i class="ik ik-alert-circle"></i>
</div>
</div>
</div>
</div>
<div class="widget bg-success">
<div class="widget-body">
<div class="d-flex justify-content-between align-items-center">
<div class="state">
<h6>Completed Tasks</h6>
<h2><?php echo $completedTasks; ?></h2>
</div>
<div class="icon">
<i class="ik ik-check-circle"></i>
</div>
</div>
</div>
</div>
<div class="widget bg-warning">
<div class="widget-body">
<div class="d-flex justify-content-between align-items-center">
<div class="state">
<h6>Unassigned Subtasks</h6>
<h2><?php echo $unassignedSubtasks; ?></h2>
</div>
<div class="icon">
<i class="ik ik-grid"></i>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Scripts for Charts -->
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script>
// Data for the doughnut chart
var completedSubTasks = <?php echo $completedSubTasks; ?>;
var incompleteSubTasks = <?php echo $incompleteSubTasks; ?>;
// Create Pie Chart for Subtasks
new Chart(document.getElementById('subtasksPieChart'), {
type: 'doughnut',
data: {
labels: ['Completed Subtasks', 'Incomplete Subtasks'],
datasets: [{
data: [completedSubTasks, incompleteSubTasks],
backgroundColor: ['#28a745', '#fd7e14'],
borderColor: ['#ffffff', '#ffffff'],
borderWidth: 1
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
plugins: {
legend: {
display: true,
position: 'bottom'
}
}
}
});
// Data for today's subtasks doughnut chart
var todayCompletedSubTasks = <?php echo $todayCompletedSubTasks; ?>;
var todayIncompleteSubTasks = <?php echo $todayIncompleteSubTasks; ?>;
// Create Doughnut Chart for Today's Subtasks
new Chart(document.getElementById('todaySubtasksDoughnutChart'), {
type: 'doughnut',
data: {
labels: ['Completed Subtasks', 'Incomplete Subtasks'],
datasets: [{
data: [todayCompletedSubTasks, todayIncompleteSubTasks],
backgroundColor: ['#28a745', '#ffc107'],
borderColor: ['#ffffff', '#ffffff'],
borderWidth: 1
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
plugins: {
legend: {
display: true,
position: 'bottom'
}
}
}
});
</script>
<?php include('footer.php'); ?>