mirror of
https://github.com/jokob-sk/NetAlertX.git
synced 2026-06-20 22:30:11 -04:00
@@ -14,9 +14,9 @@ If a device is missing from the **My Devices** list, work through these checks.
|
||||
|
||||
The most common cause is that a filter is hiding the device.
|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||
Review any active:
|
||||
|
||||
@@ -32,6 +32,8 @@ Clear filters first, then reload the page and check again.
|
||||
|
||||
You can select devices of what statuses should be displayed in the My Devices view. This can be adjusted in the _Settings_ section - search for the `UI_MY_DEVICES` setting and verify that the statuses you want to show are selected.
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
### Check Whether the Device Is Hidden
|
||||
|
||||
BIN
docs/img/DEVICE_MANAGEMENT/device_filter_settings.png
Normal file
BIN
docs/img/DEVICE_MANAGEMENT/device_filter_settings.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 144 KiB |
@@ -2647,13 +2647,13 @@ table.dataTable tbody > tr.selected
|
||||
.skel-tab-pane { z-index: 10; min-height: 400px; }
|
||||
#settings-skeleton { padding-top: 50px; padding-left: 20px; padding-right: 20px; min-height: 500px; }
|
||||
#devices-skeleton { top: 50px; min-height: 500px; }
|
||||
#device-details-skeleton { min-height: 600px; }
|
||||
#device-details-skeleton { top: 45px; min-height: 100px; }
|
||||
#events-skeleton { top: 50px; min-height: 500px; }
|
||||
#presence-skeleton { top: 50px; min-height: 500px; }
|
||||
#report-skeleton { min-height: 400px; }
|
||||
#notifications-skeleton { min-height: 400px; }
|
||||
#notifications-skeleton { top: 50px; min-height: 400px; }
|
||||
#workflows-skeleton { top: 50px; width: 770px; margin: 0 auto; min-height: 300px; }
|
||||
#plugins-skeleton { padding: 0; min-height: 400px; }
|
||||
#plugins-skeleton { top: 50px; padding: 0; min-height: 400px; }
|
||||
|
||||
/* Bordered containers */
|
||||
.skel-overview-panel, .skel-section, .skel-plugin-block,
|
||||
@@ -2728,6 +2728,7 @@ table.dataTable tbody > tr.selected
|
||||
|
||||
/* ----- Devices ---------------------------------------------------------- */
|
||||
.skel-tile { display: flex; height: 80px; }
|
||||
#device-details-skeleton .skel-tile { display: flex; height: 45px; }
|
||||
.skel-tile-inner { display: flex; flex-direction: column; padding: 12px 15px; justify-content: center; gap: 10px; }
|
||||
.skel-tile-num { height: 26px; width: 55%; }
|
||||
.skel-tile-label { height: 13px; width: 75%; }
|
||||
@@ -2740,8 +2741,8 @@ table.dataTable tbody > tr.selected
|
||||
.skel-td { height: 13px; }
|
||||
|
||||
/* ----- Device Details --------------------------------------------------- */
|
||||
.skel-detail-header { margin-bottom: 15px; }
|
||||
.skel-detail-title { height: 26px; width: 42%; margin-bottom: 14px; }
|
||||
.skel-detail-header { margin-bottom: 0px; }
|
||||
.skel-detail-title { height: 26px; width: 42%; margin-bottom: 0px; }
|
||||
.skel-detail-info-panel { display: flex; gap: 0; padding: 14px; border-radius: 4px; margin-bottom: 15px; max-width: 400px; }
|
||||
.skel-tabs-bar { display: flex; gap: 4px; padding: 8px 10px 0; border-radius: 4px 4px 0 0; border-bottom: none; }
|
||||
.skel-tab { height: 34px; width: 100px; border-radius: 4px 4px 0 0; flex-shrink: 0; }
|
||||
@@ -2758,7 +2759,7 @@ table.dataTable tbody > tr.selected
|
||||
|
||||
/* ----- Plugins ---------------------------------------------------------- */
|
||||
.skel-plugins-wrap { display: flex; gap: 0; min-height: 400px; }
|
||||
.skel-plugins-nav { width: 165px; flex-shrink: 0; border-right: 1px solid var(--skel-border); padding: 8px 0; }
|
||||
.skel-plugins-nav { flex-shrink: 0; border-right: 1px solid var(--skel-border); padding: 8px 0; }
|
||||
.skel-plugins-nav-item { display: flex; align-items: center; padding: 9px 15px; border-bottom: 1px solid var(--skel-border); }
|
||||
.skel-plugins-nav-item:last-child { border-bottom: none; }
|
||||
.skel-plugins-body { flex: 1; padding: 0; }
|
||||
|
||||
@@ -766,5 +766,5 @@ table.dataTable tbody tr.selected, table.dataTable tbody tr .selected
|
||||
--skel-section: #252c38;
|
||||
--skel-panel-bg: #1e242e;
|
||||
--skel-border: #2a323e;
|
||||
--skel-bg: #353c42;
|
||||
--skel-bg: #292e33;
|
||||
}
|
||||
@@ -743,5 +743,5 @@
|
||||
--skel-section: #252c38;
|
||||
--skel-panel-bg: #1e242e;
|
||||
--skel-border: #2a323e;
|
||||
--skel-bg: #353c42;
|
||||
--skel-bg: #292e33;
|
||||
}
|
||||
@@ -4,56 +4,43 @@
|
||||
<!-- Content header area -------------------------------------------------- -->
|
||||
<div class="skel-detail-header">
|
||||
<div class="skel-detail-title skel-shimmer"></div>
|
||||
<div class="skel-detail-info-panel">
|
||||
<div class="skel-shimmer" style="width:76px; height:76px; border-radius:4px; flex-shrink:0;"></div>
|
||||
<div style="flex:1; display:flex; flex-direction:column; gap:9px; padding:10px 0 10px 10px;">
|
||||
<span class="skel-line skel-shimmer" style="width:55%"></span>
|
||||
<span class="skel-line skel-shimmer" style="width:38%"></span>
|
||||
<span class="skel-line skel-shimmer" style="width:45%"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Top stat tiles -------------------------------------------------------- -->
|
||||
<div class="row">
|
||||
<div class="col-lg-3 col-sm-6 col-xs-6 padding-5px">
|
||||
<div class="col-lg-3 col-sm-6 col-xs-6 ">
|
||||
<div class="skel-tile">
|
||||
<div class="skel-tile-inner">
|
||||
<div class="skel-tile-num skel-shimmer"></div>
|
||||
<div class="skel-tile-label skel-shimmer"></div>
|
||||
</div>
|
||||
<div class="skel-tile-icon-area">
|
||||
<div class="skel-tile-icon-shape skel-shimmer"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-sm-6 col-xs-6 padding-5px">
|
||||
<div class="col-lg-3 col-sm-6 col-xs-6 ">
|
||||
<div class="skel-tile">
|
||||
<div class="skel-tile-inner">
|
||||
<div class="skel-tile-num skel-shimmer"></div>
|
||||
<div class="skel-tile-label skel-shimmer"></div>
|
||||
</div>
|
||||
<div class="skel-tile-icon-area">
|
||||
<div class="skel-tile-icon-shape skel-shimmer"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-sm-6 col-xs-6 padding-5px">
|
||||
<div class="col-lg-3 col-sm-6 col-xs-6 ">
|
||||
<div class="skel-tile">
|
||||
<div class="skel-tile-inner">
|
||||
<div class="skel-tile-num skel-shimmer"></div>
|
||||
<div class="skel-tile-label skel-shimmer"></div>
|
||||
</div>
|
||||
<div class="skel-tile-icon-area">
|
||||
<div class="skel-tile-icon-shape skel-shimmer"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-sm-6 col-xs-6 padding-5px">
|
||||
<div class="col-lg-3 col-sm-6 col-xs-6 ">
|
||||
<div class="skel-tile">
|
||||
<div class="skel-tile-inner">
|
||||
<div class="skel-tile-num skel-shimmer"></div>
|
||||
<div class="skel-tile-label skel-shimmer"></div>
|
||||
</div>
|
||||
<div class="skel-tile-icon-area">
|
||||
<div class="skel-tile-icon-shape skel-shimmer"></div>
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
<span class="skel-th skel-shimmer"></span>
|
||||
<?php endfor; ?>
|
||||
</div>
|
||||
<?php for ($i = 0; $i < 8; $i++): ?>
|
||||
<?php for ($i = 0; $i < 20; $i++): ?>
|
||||
<div class="skel-tr">
|
||||
<?php for ($j = 0; $j < 6; $j++): ?>
|
||||
<span class="skel-td skel-shimmer"></span>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<span class="skel-th skel-shimmer"></span>
|
||||
<?php endfor; ?>
|
||||
</div>
|
||||
<?php for ($i = 0; $i < 8; $i++): ?>
|
||||
<?php for ($i = 0; $i < 25; $i++): ?>
|
||||
<div class="skel-tr">
|
||||
<?php for ($j = 0; $j < 4; $j++): ?>
|
||||
<span class="skel-td skel-shimmer"></span>
|
||||
@@ -16,4 +16,8 @@
|
||||
</div>
|
||||
<?php endfor; ?>
|
||||
</div>
|
||||
<div class="skel-form-footer">
|
||||
<span class="skel-form-btn skel-shimmer"></span>
|
||||
<span class="skel-form-btn skel-shimmer"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<div id="plugins-skeleton">
|
||||
<div class="skel-plugins-wrap">
|
||||
<div class="skel-plugins-wrap col-sm-12">
|
||||
|
||||
<!-- Left nav sidebar -->
|
||||
<div class="skel-plugins-nav">
|
||||
<div class="skel-plugins-nav col-sm-2">
|
||||
<?php
|
||||
$widths = [72, 60, 80, 55, 68, 75];
|
||||
for ($i = 0; $i < 6; $i++):
|
||||
@@ -14,7 +14,7 @@
|
||||
</div>
|
||||
|
||||
<!-- Right content area -->
|
||||
<div class="skel-plugins-body">
|
||||
<div class="skel-plugins-body col-sm-10">
|
||||
<!-- Sub-tab bar -->
|
||||
<div class="skel-tabs-bar" style="border-radius: 0 4px 0 0; margin-bottom: 0;">
|
||||
<span class="skel-tab skel-shimmer"></span>
|
||||
@@ -28,7 +28,7 @@
|
||||
<span class="skel-th skel-shimmer"></span>
|
||||
<?php endfor; ?>
|
||||
</div>
|
||||
<?php for ($i = 0; $i < 8; $i++): ?>
|
||||
<?php for ($i = 0; $i < 25; $i++): ?>
|
||||
<div class="skel-tr">
|
||||
<?php for ($j = 0; $j < 5; $j++): ?>
|
||||
<span class="skel-td skel-shimmer"></span>
|
||||
@@ -37,6 +37,9 @@
|
||||
<?php endfor; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="skel-form-footer col-sm-12 padding-5px">
|
||||
<span class="skel-form-btn skel-shimmer"></span>
|
||||
<span class="skel-form-btn skel-shimmer"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,37 +1,155 @@
|
||||
<!-- Details Tab Skeleton ================================================== -->
|
||||
<div id="skel-tab-details" class="skel-tab-pane">
|
||||
<div class="skel-detail-form">
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:340px"></span>
|
||||
<div class="skel-detail-form col-lg-12 col-sm-12 col-xs-12">
|
||||
<div class="col-lg-4 col-sm-6 col-xs-12">
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:380px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:280px"></span><span class="skel-form-input skel-shimmer" style="max-width:40px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:320px"></span><span class="skel-form-input skel-shimmer" style="max-width:40px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:340px"></span><span class="skel-form-input skel-shimmer" style="max-width:40px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:380px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:280px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:320px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:260px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:400px;height:50px"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:260px"></span>
|
||||
<div class="col-lg-4 col-sm-6 col-xs-12">
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:340px"></span><span class="skel-form-input skel-shimmer" style="max-width:40px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span><span class="skel-form-input skel-shimmer" style="max-width:40px"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:380px"></span><span class="skel-form-input skel-shimmer" style="max-width:40px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:280px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:320px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:260px"></span><span class="skel-form-input skel-shimmer" style="max-width:40px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:400px"></span><span class="skel-form-input skel-shimmer" style="max-width:40px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:300px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:220px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:380px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:280px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:320px"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:400px"></span>
|
||||
<div class="col-lg-4 col-sm-6 col-xs-12">
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:340px"></span><span class="skel-form-input skel-shimmer" style="max-width:40px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:260px"></span><span class="skel-form-input skel-shimmer" style="max-width:40px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:280px"></span><span class="skel-form-input skel-shimmer" style="max-width:40px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:320px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:400px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:300px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:220px"></span><span class="skel-form-input skel-shimmer" style="max-width:40px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:380px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:280px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:320px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:380px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:220px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:380px"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:300px"></span>
|
||||
<div class="col-lg-6 col-sm-12 col-xs-12">
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:340px"></span><span class="skel-form-input skel-shimmer" style="max-width:40px"></span><span class="skel-form-input skel-shimmer" style="max-width:40px"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:220px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:380px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:280px"></span>
|
||||
</div>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:320px"></span>
|
||||
<div class="col-lg-6 col-sm-12 col-xs-12">
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer" style="max-width:340px"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="skel-form-footer">
|
||||
<span class="skel-form-btn skel-shimmer"></span>
|
||||
|
||||
22
front/php/templates/skel_tab_plugins_table.php
Normal file
22
front/php/templates/skel_tab_plugins_table.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<!-- Plugins Sub-Tab Table Skeleton (shared: Objects / Events / History) === -->
|
||||
<div class="skel-table-box">
|
||||
<div class="skel-table-header-row">
|
||||
<?php for ($j = 0; $j < 5; $j++): ?>
|
||||
<span class="skel-th skel-shimmer"></span>
|
||||
<?php endfor; ?>
|
||||
</div>
|
||||
<?php
|
||||
$rowWidths = array_fill(0, 20, [15, 14, 18, 12, 20]);
|
||||
foreach ($rowWidths as $widths):
|
||||
?>
|
||||
<div class="skel-tr">
|
||||
<?php foreach ($widths as $w): ?>
|
||||
<span class="skel-td skel-shimmer" style="flex:1; max-width:<?= $w ?>%"></span>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<div class="skel-form-footer" style="padding:8px 0;">
|
||||
<span class="skel-form-btn skel-shimmer"></span>
|
||||
<span class="skel-form-btn skel-shimmer"></span>
|
||||
</div>
|
||||
@@ -1,5 +1,5 @@
|
||||
<div class="skel-info-tab">
|
||||
<?php for ($i = 0; $i < 10; $i++): ?>
|
||||
<?php for ($i = 0; $i < 20; $i++): ?>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer"></span>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<div class="skel-info-tab">
|
||||
<?php for ($i = 0; $i < 14; $i++): ?>
|
||||
<?php for ($i = 0; $i < 20; $i++): ?>
|
||||
<div class="skel-form-row">
|
||||
<span class="skel-form-label skel-shimmer"></span>
|
||||
<span class="skel-form-input skel-shimmer"></span>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<span class="skel-th skel-shimmer"></span>
|
||||
<?php endfor; ?>
|
||||
</div>
|
||||
<?php for ($i = 0; $i < 6; $i++): ?>
|
||||
<?php for ($i = 0; $i < 25; $i++): ?>
|
||||
<div class="skel-tr">
|
||||
<?php for ($j = 0; $j < 5; $j++): ?>
|
||||
<span class="skel-td skel-shimmer"></span>
|
||||
|
||||
@@ -2,6 +2,9 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// check if authenticated
|
||||
require_once $_SERVER['DOCUMENT_ROOT'] . '/php/templates/security.php';
|
||||
|
||||
// Capture shared sub-tab skeleton template for JS injection
|
||||
ob_start(); require $_SERVER['DOCUMENT_ROOT'] . '/php/templates/skel_tab_plugins_table.php'; $skelPluginsTable = ob_get_clean();
|
||||
?>
|
||||
|
||||
<!-- Main content ---------------------------------------------------------- -->
|
||||
@@ -27,6 +30,9 @@
|
||||
|
||||
<script>
|
||||
|
||||
// Sub-tab skeleton HTML (server-rendered, shared across Objects / Events / History panes)
|
||||
const skelPluginsTable = <?= json_encode($skelPluginsTable) ?>;
|
||||
|
||||
// Global variable to track the last MAC we initialized with
|
||||
let lastMac = null;
|
||||
let keepUpdating = true;
|
||||
@@ -620,8 +626,11 @@ function generateDataTable(prefix, tableType, colDefinitions) {
|
||||
// Generate HTML for a DataTable and associated buttons for a given table type
|
||||
const headersHtml = colDefinitions.map(colDef => `<th class="${colDef.css_classes}">${getString(`${prefix}_${colDef.column}_name`)}</th>`).join('');
|
||||
|
||||
const skelHtml = skelPluginsTable;
|
||||
|
||||
return `
|
||||
<div id="${tableType.toLowerCase()}Target_${prefix}" class="tab-pane ${tableType == "Objects" ? "active":""}">
|
||||
<div id="${tableType.toLowerCase()}Target_${prefix}" class="tab-pane ${tableType == "Objects" ? "active":""}" style="position:relative;">
|
||||
<div id="skel-${tableType.toLowerCase()}Target_${prefix}" class="skel-plugins-tab-pane" style="position:absolute;top:0;left:0;right:0;z-index:1;background:inherit;">${skelHtml}</div>
|
||||
<table id="${tableType.toLowerCase()}Table_${prefix}" class="display table table-striped table-stretched" data-my-dbtable="Plugins_${tableType}">
|
||||
<thead><tr>${headersHtml}</tr></thead>
|
||||
</table>
|
||||
@@ -647,6 +656,7 @@ function initializeDataTables(prefix, colDefinitions, pluginObj) {
|
||||
if ($.fn.DataTable.isDataTable(`#${tableId}`)) {
|
||||
return; // already initialized
|
||||
}
|
||||
const skelId = `#skel-${tableId.replace('Table_', 'Target_')}`;
|
||||
$(`#${tableId}`).DataTable({
|
||||
processing: true,
|
||||
serverSide: true,
|
||||
@@ -655,6 +665,11 @@ function initializeDataTables(prefix, colDefinitions, pluginObj) {
|
||||
ordering: false,
|
||||
pageLength: 25,
|
||||
lengthMenu: [[10, 25, 50, 100], [10, 25, 50, 100]],
|
||||
// Fade out the skeleton only after the first draw so there is no gap
|
||||
// between the skeleton disappearing and the table rows appearing.
|
||||
initComplete: function() {
|
||||
$(skelId).fadeOut(250, function() { $(this).remove(); });
|
||||
},
|
||||
createdRow: function(row, data) {
|
||||
$(row).attr('data-my-index', data.index);
|
||||
},
|
||||
|
||||
@@ -335,6 +335,18 @@ function loadInterfaces() {
|
||||
</tr>
|
||||
`);
|
||||
});
|
||||
|
||||
if ($.fn.DataTable.isDataTable('#networkTable')) {
|
||||
$('#networkTable').DataTable().destroy();
|
||||
}
|
||||
|
||||
$('#networkTable').DataTable({
|
||||
searching: true,
|
||||
order: [[0, "desc"]],
|
||||
initComplete: function() {
|
||||
hideSpinner();
|
||||
}
|
||||
});
|
||||
},
|
||||
error: function(xhr) {
|
||||
const tbody = $("#networkTable tbody");
|
||||
@@ -355,17 +367,6 @@ $(document).ready(function() {
|
||||
});
|
||||
|
||||
loadInterfaces();
|
||||
|
||||
setTimeout(() => {
|
||||
// Available IPs datatable
|
||||
$('#networkTable').DataTable({
|
||||
searching: true,
|
||||
order: [[0, "desc"]],
|
||||
initComplete: function(settings, json) {
|
||||
hideSpinner(); // Called after the DataTable is fully initialized
|
||||
}
|
||||
});
|
||||
}, 200);
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user