5 changed files with 1378 additions and 104 deletions
-
18src/main/java/com/gcc/commissionerreview/controller/CoworkspaceApicontroller.java
-
5src/main/java/com/gcc/commissionerreview/controller/MainController.java
-
569src/main/java/com/gcc/commissionerreview/service/CoworkspaceService.java
-
407src/main/resources/templates/modules/communityreport.html
-
483src/main/resources/templates/modules/coworkspace.html
@ -0,0 +1,407 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="en" xmlns:th="http://www.thymeleaf.org"> |
|||
|
|||
<head> |
|||
<title>Coworkspace Report</title> |
|||
|
|||
<!-- Bootstrap 5 CSS --> |
|||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"> |
|||
<!-- FontAwesome CSS for icons --> |
|||
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet"> |
|||
<!-- DataTables CSS --> |
|||
<link href="https://cdn.datatables.net/1.13.4/css/jquery.dataTables.min.css" rel="stylesheet" /> |
|||
<link href="https://cdn.datatables.net/buttons/2.3.6/css/buttons.dataTables.min.css" rel="stylesheet" /> |
|||
<link href="https://cdn.datatables.net/fixedcolumns/4.2.2/css/fixedColumns.dataTables.min.css" rel="stylesheet" /> |
|||
|
|||
|
|||
<style> |
|||
body { |
|||
background-color: #f8f9fa; |
|||
} |
|||
|
|||
.report-container { |
|||
overflow-x: auto; |
|||
} |
|||
|
|||
/*#hallBookingTable { |
|||
width: 100% !important; |
|||
}*/ |
|||
|
|||
.page-header-title h4 { |
|||
margin: 20px 0; |
|||
text-align: center; |
|||
font-weight: bold; |
|||
color: #003366; |
|||
text-transform: uppercase; |
|||
} |
|||
|
|||
.filter-section { |
|||
background: #fff; |
|||
padding: 15px; |
|||
border-radius: 8px; |
|||
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05); |
|||
margin-bottom: 20px; |
|||
} |
|||
|
|||
.report-container { |
|||
background: #fff; |
|||
padding: 15px; |
|||
border-radius: 8px; |
|||
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05); |
|||
} |
|||
|
|||
|
|||
|
|||
/* table.dataTable th, |
|||
table.dataTable td { |
|||
text-align: center; |
|||
vertical-align: middle; |
|||
border: 1px solid #dee2e6 !important; |
|||
white-space: nowrap; |
|||
}*/ |
|||
.dashboard-card { |
|||
height: 180px; |
|||
} |
|||
|
|||
.dashboard-card .card-body { |
|||
display: flex; |
|||
flex-direction: column; |
|||
justify-content: center; |
|||
} |
|||
|
|||
.category-card .card-body { |
|||
display: block; |
|||
overflow-y: auto; |
|||
height: 120px; |
|||
} |
|||
|
|||
thead th { |
|||
background-color: #003366 !important; |
|||
color: white !important; |
|||
} |
|||
|
|||
/* Horizontal Scroll */ |
|||
.dataTables_scrollBody { |
|||
overflow-x: auto !important; |
|||
overflow-y: auto !important; |
|||
} |
|||
|
|||
/* Fixed Column Background */ |
|||
table.dataTable tbody tr td.dtfc-fixed-left { |
|||
background-color: #fff !important; |
|||
} |
|||
|
|||
table.dataTable.table-striped tbody tr:nth-of-type(odd) td.dtfc-fixed-left { |
|||
background-color: #f9f9f9 !important; |
|||
} |
|||
|
|||
.dataTables_scrollBody { |
|||
overflow-x: auto !important; |
|||
overflow-y: auto !important; |
|||
} |
|||
|
|||
.select2-container { |
|||
width: 100% !important; |
|||
} |
|||
|
|||
.select2-results__options { |
|||
max-height: 400px !important; |
|||
/* increase height */ |
|||
} |
|||
|
|||
.select2-dropdown { |
|||
z-index: 9999 !important; |
|||
} |
|||
|
|||
/*.dataTables_scrollHeadInner, |
|||
#hallBookingTable { |
|||
width: max-content !important; |
|||
}*/ |
|||
|
|||
/* table.dataTable th, |
|||
table.dataTable td { |
|||
white-space: nowrap; |
|||
}*/ |
|||
/* table.dataTable th, |
|||
table.dataTable td { |
|||
text-align: center; |
|||
vertical-align: middle; |
|||
border: 1px solid #dee2e6 !important; |
|||
} |
|||
|
|||
#hallBookingTable th:nth-child(8), |
|||
#hallBookingTable td:nth-child(8) { |
|||
white-space: nowrap !important; |
|||
min-width: 180px; |
|||
} |
|||
|
|||
|
|||
|
|||
#hallBookingTable th:nth-child(5), |
|||
#hallBookingTable td:nth-child(5) { |
|||
|
|||
min-width: 220px; |
|||
max-width: 220px; |
|||
|
|||
white-space: normal !important; |
|||
word-wrap: break-word; |
|||
word-break: break-word; |
|||
} |
|||
|
|||
#hallBookingTable th:nth-child(20), |
|||
#hallBookingTable td:nth-child(20) { |
|||
width: 80px !important; |
|||
max-width: 80px !important; |
|||
min-width: 80px !important; |
|||
|
|||
white-space: normal !important; |
|||
word-break: break-word !important; |
|||
}*/ |
|||
.hall-name-wrap { |
|||
min-width: 220px !important; |
|||
max-width: 220px !important; |
|||
white-space: normal !important; |
|||
word-break: break-word; |
|||
} |
|||
|
|||
.dashboard-card { |
|||
border: none; |
|||
border-radius: 12px; |
|||
min-height: 110px; |
|||
} |
|||
|
|||
/* Total Buildings */ |
|||
.building-card { |
|||
background: #E3F2FD; |
|||
color: #1565C0; |
|||
} |
|||
|
|||
/* Total Bookings */ |
|||
.booking-card { |
|||
background: #E8F5E9; |
|||
color: #2E7D32; |
|||
} |
|||
|
|||
/* Total Revenue */ |
|||
.revenue-card { |
|||
background: #FFF8E1; |
|||
color: #EF6C00; |
|||
} |
|||
|
|||
.dashboard-card h6 { |
|||
font-size: 18px; |
|||
font-weight: 600; |
|||
margin-bottom: 15px; |
|||
} |
|||
|
|||
.dashboard-card h3 { |
|||
font-size: 42px; |
|||
font-weight: 700; |
|||
margin: 0; |
|||
} |
|||
|
|||
#bookingTable th:nth-child(8), |
|||
#bookingTable td:nth-child(8) { |
|||
width: 50px !important; |
|||
min-width: 50px !important; |
|||
max-width: 50px !important; |
|||
text-align: center; |
|||
} |
|||
|
|||
#bookingTable th:nth-child(9), |
|||
#bookingTable td:nth-child(9) { |
|||
width: 50px !important; |
|||
min-width: 50px !important; |
|||
max-width: 50px !important; |
|||
text-align: center; |
|||
} |
|||
|
|||
|
|||
|
|||
/* #hallBookingTable th:not(:nth-child(4)), |
|||
#hallBookingTable td:not(:nth-child(4)) { |
|||
white-space: nowrap; |
|||
}*/ |
|||
|
|||
/* Wrap selected columns */ |
|||
|
|||
|
|||
|
|||
.wrap { |
|||
white-space: normal !important; |
|||
word-break: break-word; |
|||
line-height: 1.2; |
|||
text-align: center; |
|||
vertical-align: middle; |
|||
min-width: 110px; |
|||
} |
|||
|
|||
#performanceTable thead tr:first-child th { |
|||
text-align: center; |
|||
vertical-align: middle; |
|||
background: #003366; |
|||
color: #fff; |
|||
} |
|||
|
|||
#performanceTable thead tr:nth-child(2) th { |
|||
text-align: center; |
|||
vertical-align: middle; |
|||
background: #0d6efd; |
|||
color: #fff; |
|||
} |
|||
|
|||
#performanceTable td { |
|||
text-align: center; |
|||
} |
|||
|
|||
#performanceTable td:nth-child(2) { |
|||
text-align: left; |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
/* Scrollbar */ |
|||
.dataTables_scrollBody::-webkit-scrollbar { |
|||
height: 8px; |
|||
} |
|||
|
|||
.dataTables_scrollBody::-webkit-scrollbar-thumb { |
|||
background: #c1c1c1; |
|||
border-radius: 4px; |
|||
} |
|||
|
|||
.dataTables_scrollBody::-webkit-scrollbar-track { |
|||
background: #f1f1f1; |
|||
} |
|||
</style> |
|||
</head> |
|||
|
|||
<body> |
|||
|
|||
<div class="container-fluid py-4"> |
|||
<div class="page-header-title"> |
|||
<h4> community Hall report</h4> |
|||
</div> |
|||
<div class="row mb-4"> |
|||
|
|||
<!-- Card 1 --> |
|||
<div class="col-md-4"> |
|||
<div class="card dashboard-card building-card shadow" style="cursor:pointer;" |
|||
onclick="window.open('https://gccservices.in/commissionerreview/communityhallcaretaker', '_blank');"> |
|||
<div class="card-body text-center"> |
|||
<h6>Community Hall CareTaker Performance Report</h6> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<!-- Card 2 --> |
|||
<div class="col-md-4"> |
|||
<div class="card dashboard-card booking-card shadow" style="cursor:pointer;" |
|||
onclick="window.open('https://gccservices.in/commissionerreview/communityhallreport', '_blank');"> |
|||
<div class="card-body text-center"> |
|||
<h6>Community Hall Popularity Report</h6> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<!-- Card 3 --> |
|||
<div class="col-md-4"> |
|||
<div class="card dashboard-card revenue-card shadow" style="cursor:pointer;" |
|||
onclick="window.open('https://gccservices.in/commissionerreview/communityhallrefund', '_blank');"> |
|||
<div class="card-body text-center"> |
|||
<h6>Community Hall Refund Review Report</h6> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
</div> |
|||
|
|||
<!--<div class="col-md-3"> |
|||
<div class="card bg-primary text-white shadow dashboard-card"> |
|||
<div class="card-body text-center"> |
|||
<h6>Total Buildings</h6> |
|||
<h3 id="totalBuildings">0</h3> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="col-md-3"> |
|||
<div class="card bg-success text-white shadow dashboard-card"> |
|||
<div class="card-body text-center"> |
|||
<h6>Total Bookings</h6> |
|||
<h3 id="totalBookings">0</h3> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="col-md-3"> |
|||
<div class="card bg-warning text-dark shadow dashboard-card"> |
|||
<div class="card-body text-center"> |
|||
<h6>Total Revenue</h6> |
|||
<h3 id="totalRevenue">0</h3> |
|||
</div> |
|||
</div> |
|||
</div>--> |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
<!-- Media Modal --> |
|||
<div class="modal fade" id="mediaModal" tabindex="-1" aria-labelledby="mediaModalLabel" aria-hidden="true" |
|||
style="z-index: 1060;"> |
|||
<div class="modal-dialog modal-lg modal-dialog-centered"> |
|||
<div class="modal-content"> |
|||
<div class="modal-header"> |
|||
<h5 class="modal-title" id="mediaModalLabel">Media Viewer</h5> |
|||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> |
|||
</div> |
|||
<div class="modal-body text-center" id="mediaModalBody"> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div id="pageLoader" |
|||
style="display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(255, 255, 255, 0.8); z-index: 9999; text-align: center;"> |
|||
<div style="position: relative; top: 50%; transform: translateY(-50%);"> |
|||
<div class="spinner-border text-primary" role="status" style="width: 3rem; height: 3rem;"> |
|||
<span class="sr-only"></span> |
|||
</div> |
|||
<!-- Add the 'Please wait' text below the spinner --> |
|||
<p style="margin-top: 1rem; font-size: 1.2rem; color: #007bff;">Please wait...</p> |
|||
</div> |
|||
</div> |
|||
|
|||
<!-- Scripts --> |
|||
|
|||
<script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script> |
|||
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" /> |
|||
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script> |
|||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js"></script> |
|||
|
|||
|
|||
<!-- DataTables JS --> |
|||
<script src="https://cdn.datatables.net/1.13.4/js/jquery.dataTables.min.js"></script> |
|||
<script src="https://cdn.datatables.net/buttons/2.3.6/js/dataTables.buttons.min.js"></script> |
|||
<script src="https://cdn.datatables.net/buttons/2.3.6/js/buttons.html5.min.js"></script> |
|||
<script src="https://cdn.datatables.net/buttons/2.3.6/js/buttons.print.min.js"></script> |
|||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script> |
|||
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/pdfmake.min.js"></script> |
|||
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/vfs_fonts.js"></script> |
|||
<script src="https://cdn.jsdelivr.net/npm/xlsx@0.18.5/dist/xlsx.full.min.js"></script> |
|||
<script src="https://cdn.datatables.net/fixedcolumns/4.2.2/js/dataTables.fixedColumns.min.js"></script> |
|||
|
|||
<!-- SweetAlert --> |
|||
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script> |
|||
|
|||
<script th:inline="none"> |
|||
|
|||
</script> |
|||
|
|||
</body> |
|||
|
|||
</html> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue