ont-web-server/routes/ui/index.html

390 lines
11 KiB
HTML
Executable File

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<meta name="description" content="">
<meta name="author" content="">
<title>Halaman Utama</title>
<!-- Main Styles -->
<link rel="stylesheet" href="/styles/style.min.css">
<!-- mCustomScrollbar -->
<link rel="stylesheet" href="/plugin/mCustomScrollbar/jquery.mCustomScrollbar.min.css">
<!-- Waves Effect -->
<link rel="stylesheet" href="/plugin/waves/waves.min.css">
<!-- Sweet Alert -->
<link rel="stylesheet" href="/plugin/sweet-alert/sweetalert.css">
<link rel="stylesheet" href="/fonts/fontello/fontello.css">
<link rel="stylesheet" href="/fonts/material-design-iconic-font/css/material-design-iconic-font.min.css">
<link rel="stylesheet" href="/fonts/material-design/css/materialdesignicons.css">
<link rel="stylesheet" href="/plugin/datatables/media/css/dataTables.bootstrap.min.css">
</head>
<body>
<div class="main-menu">
<header class="header">
<a href="/" class="logo">ONT Checker</a>
<button type="button" class="button-close fa fa-times js__menu_close"></button>
<div class="user">
<a href="#" class="avatar"><img src="/images/visitor.png" alt=""></a>
<h5 class="name"><a href="#">Admin</a></h5>
<h5 class="position">Administrator</h5>
<!-- /.name -->
<!-- <div class="control-wrap js__drop_down">
<i class="fa fa-caret-down js__drop_down_button"></i>
<div class="control-list">
<div class="control-item"><a href="profile.html"><i class="fa fa-user"></i> Profile</a></div>
<div class="control-item"><a href="#"><i class="fa fa-gear"></i> Settings</a></div>
<div class="control-item"><a href="#"><i class="fa fa-sign-out"></i> Log out</a></div>
</div>
</div> -->
<!-- /.control-wrap -->
</div>
<!-- /.user -->
</header>
<!-- /.header -->
<div class="content">
<div class="navigation">
<h5 class="title">Navigasi</h5>
<!-- /.title -->
<ul class="menu js__accordion">
<li class="current">
<a class="waves-effect" href="/admin"><i class="menu-icon fa fa-home"></i><span>Halaman
Utama</span></a>
</li>
<li>
<a class="waves-effect" href="/admin/list"><i class="menu-icon fa fa-list"></i><span>List
ONT</span></a>
</li>
<!-- <li>
<a class="waves-effect" href="/before-login/siswa" ><i
class="menu-icon fa fa-users"></i><span>Siswa</span></a>
</li>
<li>
<a class="waves-effect" href="#" onclick="notAvailable()"><i
class="menu-icon ico mdi mdi-account-switch"></i><span>Staf</span></a>
</li>
-->
<li>
<a class="waves-effect" href="/"><i
class="menu-icon ico icon-logout"></i><span>Logout</span></a>
</li>
</ul>
</div>
<!-- /.navigation -->
</div>
<!-- /.content -->
</div>
<!-- /.main-menu -->
<div class="fixed-navbar">
<div class="pull-left">
<button type="button"
class="menu-mobile-button glyphicon glyphicon-menu-hamburger js__menu_mobile"></button>
<h1 class="page-title">Halaman Utama</h1>
<!-- /.page-title -->
</div>
<!-- /.pull-left -->
<div class="pull-right">
<a href="/before-login" class="ico-item ico icon-login"></a>
</div>
<!-- /.pull-right -->
</div>
<!-- /.fixed-navbar -->
<div id="wrapper">
<div class="main-content">
<div class="row">
<div class="col-lg-4 col-md-4 col-xs-12">
<div class="box-content">
<h4 class="box-title">Jumlah ONT</h4>
<!-- /.box-title -->
<!-- /.dropdown js__dropdown -->
<div class="content">
<div class="row small-spacing">
<div class="col-xs-6">
<img src="/images/ont.png" alt="" style="width: 83%;">
</div>
<!-- show this icon ico icon-users-1 -->
<div class="col-xs-6">
<div class="right-content">
<h2 class="all-ont-counter">-</h2>
<!-- /.counter -->
<p class="text">ONT</p>
<!-- /.text -->
</div>
</div>
<!-- /.right-content -->
</div>
</div>
<!-- /.content -->
</div>
<!-- /.box-content -->
</div>
<div class="col-lg-4 col-md-4 col-xs-12">
<div class="box-content">
<h4 class="box-title">Terhubung</h4>
<!-- /.box-title -->
<!-- /.dropdown js__dropdown -->
<div class="content">
<div class="row small-spacing">
<div class="col-xs-6">
<img src="/images/ont.png" alt="" style="width: 83%;">
</div>
<!-- show this icon ico icon-users-1 -->
<div class="col-xs-6">
<div class="right-content">
<h2 class="connected-ont-counter">-</h2>
<!-- /.counter -->
<p class="text">ONT</p>
<!-- /.text -->
</div>
</div>
<!-- /.right-content -->
</div>
</div>
<!-- /.content -->
</div>
<!-- /.box-content -->
</div>
<div class="col-lg-4 col-md-4 col-xs-12">
<div class="box-content">
<h4 class="box-title">Disconnected</h4>
<!-- /.box-title -->
<!-- /.dropdown js__dropdown -->
<div class="content">
<div class="row small-spacing">
<div class="col-xs-6">
<img src="/images/ont.png" alt="" style="width: 83%;">
</div>
<!-- show this icon ico icon-users-1 -->
<div class="col-xs-6">
<div class="right-content">
<h2 class="disconnected-ont-counter">-</h2>
<!-- /.counter -->
<p class="text">ONT</p>
<!-- /.text -->
</div>
</div>
<!-- /.right-content -->
</div>
</div>
<!-- /.content -->
</div>
<!-- /.box-content -->
</div>
<!-- <div class="col-lg-4 col-md-4 col-xs-12">
<div class="box-content">
<h4 class="box-title">Jumlah Teknisi</h4>
<div class="content">
<div class="row small-spacing">
<div class="col-xs-6">
<img src="/images/staf.png" alt="" style="width: 110%;">
</div>
<div class="col-xs-6">
<div class="right-content">
<h2 class="staf-counter">10</h2>
<p class="text">Orang</p>
</div>
</div>
</div>
</div>
</div>
</div> -->
</div>
<div class="row small-spacing">
<div class="col-xs-12">
<div class="box-content card">
<h4 class="box-title">List ONT Dengan ONT Checker</h4>
<!-- /.box-title -->
<div class="card-content">
<table id="tb-ont" class="table table-striped table-bordered display" style="width:100%; ">
</table>
</div>
</div>
<!-- /.box-content -->
</div>
</div>
<footer class="footer">
<ul class="list-inline">
<li>2024 © ONT Checker.</li>
<!-- <li><a href="#">Privacy</a></li>
<li><a href="#">Terms</a></li>
<li><a href="#">Help</a></li> -->
</ul>
</footer>
</div>
<!-- /.main-content -->
</div><!--/#wrapper -->
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="/script/html5shiv.min.js"></script>
<script src="/script/respond.min.js"></script>
<![endif]-->
<!--
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="/scripts/jquery.min.js"></script>
<script src="/scripts/modernizr.min.js"></script>
<script src="/plugin/bootstrap/js/bootstrap.min.js"></script>
<script src="/plugin/mCustomScrollbar/jquery.mCustomScrollbar.concat.min.js"></script>
<script src="/plugin/nprogress/nprogress.js"></script>
<script src="/plugin/sweet-alert/sweetalert.min.js"></script>
<script src="/plugin/waves/waves.min.js"></script>
<!-- Full Screen Plugin -->
<script src="/plugin/fullscreen/jquery.fullscreen-min.js"></script>
<script src="/scripts/main.min.js"></script>
<script src="/color-switcher/color-switcher.min.js"></script>
<script src="/plugin/datatables/media/js/jquery.dataTables.min.js"></script>
<script src="/plugin/datatables/media/js/dataTables.bootstrap.min.js"></script>
<script src="/plugin/datatables/extensions/Responsive/js/dataTables.responsive.min.js"></script>
<script src="/my-js.js"></script>
<script>
function reloadData() {
var all_count = $.ajax({
url: '/admin/count',
async: false
}).responseJSON;
console.log(all_count);
$(".all-ont-counter").html(all_count.all_count);
$(".connected-ont-counter").html(all_count.connected_count);
$(".disconnected-ont-counter").html(all_count.all_count - all_count.connected_count);
}
function reloadTable() {
// var all_count = $.ajax({
// url: '/admin/count',
// async: false
// }).responseJSON;
// console.log(all_count);
// $(".all-ont-counter").html(all_count.all_count);
// $(".connected-ont-counter").html(all_count.connected_count);
// $(".disconnected-ont-counter").html(all_count.all_count - all_count.connected_count);
// Initialize DataTable if not already initialized
var table = $('#tb-ont').DataTable({
scrollX: true,
responsive: true,
ajax: {
url: '/admin/data?status=connected',
type: 'GET',
timeout: 120000,
dataSrc: function (data) {
return data;
}
},
"sAjaxDataProp": "",
"aoColumns": [
{
"mData": "nama",
"title": "NAMA",
"render": function (data) {
return data;
}
},
{
"mData": "alamat",
"title": "Alamat",
"render": function (data) {
return data;
}
},
{
"mData": "langganan",
"title": "Langganan",
"render": function (data) {
return data;
}
},
{
"mData": null,
"title": "Status",
"render": function (data) {
return "<p id='td_status_" + data.id + "'>" + data.status + "</p>";
}
},
{
"mData": null,
"title": "Last Update",
"render": function (data) {
return "<p id='td_updated_" + data.id + "'>" + data.updated + "</p>";
}
},
]
});
return table; // Return the table instance
}
// Initialize the DataTable and store it in a variable
var table = reloadTable();
reloadData();
// Function to refresh only the td content
function refreshTdStatus() {
table.rows().every(function (rowIdx, tableLoop, rowLoop) {
var row = this.data();
var id = row.id;
var status = row.status;
var updated = row.updated;
$('#td_status_' + id).html(status);
$('#td_updated_' + id).html(updated);
});
}
// Refresh the table every 5 seconds
setInterval(() => {
table.ajax.reload(null, false); // Reload data without resetting the state
refreshTdStatus(); // Refresh the td content
reloadData()
}, 5000);
</script>
</body>
</html>