GraphQl 0.2.17.2 - device tiles + filtering
Some checks are pending
docker / docker_dev (push) Waiting to run

This commit is contained in:
jokob-sk
2024-11-17 15:43:30 +11:00
parent 31121eab2a
commit 202baab409
5 changed files with 73 additions and 19 deletions

View File

@@ -286,7 +286,7 @@ function processDeviceTotals(devicesData) {
(getSetting('UI_shown_cards') == "" || getSetting('UI_shown_cards').includes(filter.status))
) {
dataArray.push({
onclickEvent: `initializeDatatable('${filter.status}')`,
onclickEvent: `forceLoadUrl('/devices.php#${filter.status}')`,
color: filter.color,
title: count,
label: filter.label,
@@ -444,6 +444,8 @@ function initializeDatatable (status) {
}
}
// todo: dynamically filter based on status
var table = $('#tableDevices').DataTable({
"serverSide": true,
@@ -514,8 +516,10 @@ function initializeDatatable (status) {
"field": mapColumnIndexToFieldName(d.order[0].column, tableColumnVisible), // Sort field from DataTable column
"order": d.order[0].dir.toUpperCase() // Sort direction (ASC/DESC)
}] : [], // Default to an empty array if no sorting is defined
"search": d.search.value // Search query
"search": d.search.value, // Search query
"status": deviceStatus
}
}
};

View File

@@ -689,6 +689,13 @@ function openUrl(urls) {
}
}
// -----------------------------------------------------------------------------
// force laod URL in current window with specific anchor
function forceLoadUrl(relativeUrl) {
window.location.replace(relativeUrl);
window.location.reload()
}
// -----------------------------------------------------------------------------
function navigateToDeviceWithIp (ip) {

View File

@@ -255,28 +255,28 @@
</a>
<ul class="treeview-menu" style="display: <?php if (in_array (basename($_SERVER['SCRIPT_NAME']), array('devices.php', 'deviceDetails.php') ) ){ echo 'block'; } else {echo 'none';} ?>;">
<li>
<a href="devices.php#my" onclick="initializeDatatable('my')" > <?= lang("Device_Shortcut_AllDevices");?> </a>
<a href="#" onclick="forceLoadUrl('/devices.php#my_devices')" > <?= lang("Device_Shortcut_AllDevices");?> </a>
</li>
<li>
<a href="devices.php#connected" onclick="initializeDatatable('connected')" > <?= lang("Device_Shortcut_Connected");?> </a>
<a href="#" onclick="forceLoadUrl('/devices.php#connected')" > <?= lang("Device_Shortcut_Connected");?> </a>
</li>
<li>
<a href="devices.php#favorites" onclick="initializeDatatable('favorites')" > <?= lang("Device_Shortcut_Favorites");?> </a>
<a href="#" onclick="forceLoadUrl('/devices.php#favorites')" > <?= lang("Device_Shortcut_Favorites");?> </a>
</li>
<li>
<a href="devices.php#new" onclick="initializeDatatable('new')" > <?= lang("Device_Shortcut_NewDevices");?> </a>
<a href="#" onclick="forceLoadUrl('/devices.php#new')" > <?= lang("Device_Shortcut_NewDevices");?> </a>
</li>
<li>
<a href="devices.php#down" onclick="initializeDatatable('down')" > <?= lang("Device_Shortcut_DownOnly");?> </a>
<a href="#" onclick="forceLoadUrl('/devices.php#down')" > <?= lang("Device_Shortcut_DownOnly");?> </a>
</li>
<li>
<a href="devices.php#offline" onclick="initializeDatatable('offline')" > <?= lang("Gen_Offline");?> </a>
<a href="#" onclick="forceLoadUrl('/devices.php#offline')" > <?= lang("Gen_Offline");?> </a>
</li>
<li>
<a href="devices.php#archived" onclick="initializeDatatable('archived')" > <?= lang("Device_Shortcut_Archived");?> </a>
<a href="#" onclick="forceLoadUrl('/devices.php#archived')" > <?= lang("Device_Shortcut_Archived");?> </a>
</li>
</ul>
</li>
<!-- Monitoring menu item -->

View File

@@ -112,7 +112,7 @@ def execute_arpscan(userSubnets):
re_ip = r'(?P<ip>((2[0-5]|1[0-9]|[0-9])?[0-9]\.){3}((2[0-5]|1[0-9]|[0-9])?[0-9]))'
re_mac = r'(?P<mac>([0-9a-fA-F]{2}[:-]){5}([0-9a-fA-F]{2}))'
re_hw = r'(?P<hw>.*)'
re_pattern = re.compile (re_ip + '\s+' + re_mac + '\s' + re_hw)
re_pattern = re.compile(rf"{re_ip}\s+{re_mac}\s{re_hw}")
devices_list_tmp = [
{**device.groupdict(), "interface": interface}