390 lines
11 KiB
HTML
Executable File
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> |