diff --git a/front/devices.php b/front/devices.php
index a4a06143..e50fbbfd 100755
--- a/front/devices.php
+++ b/front/devices.php
@@ -385,10 +385,12 @@ function mapColumnIndexToFieldName(index, tableColumnVisible) {
"devSyncHubNode",
"devSite",
"devSSID",
- "devSourcePlugin"
+ "devSourcePlugin",
+ "devPresentLastScan",
+ "devAlertDown"
];
- console.log("OrderBy: " + columnNames[tableColumnOrder[index]]);
+ // console.log("OrderBy: " + columnNames[tableColumnOrder[index]]);
return columnNames[tableColumnOrder[index]] || null;
}
@@ -530,6 +532,7 @@ function initializeDatatable (status) {
return json.devices.devices.map(device => {
// Convert each device record into the required DataTable row format
+ // Order has to be teh same as in the UI_device_columns setting options
const originalRow = [
device.devName || "",
device.devOwner || "",
@@ -554,7 +557,9 @@ function initializeDatatable (status) {
device.devSyncHubNode || "",
device.devSite || "",
device.devSSID || "",
- device.devSourcePlugin || ""
+ device.devSourcePlugin || "",
+ device.devPresentLastScan || "",
+ device.devAlertDown || ""
];
const newRow = [];
@@ -696,18 +701,19 @@ function initializeDatatable (status) {
// Status color
{targets: [mapIndx(10)],
'createdCell': function (td, cellData, rowData, row, col) {
+
+ tmp_devPresentLastScan = rowData[mapIndx(24)]
+ tmp_devAlertDown = rowData[mapIndx(25)]
- devData = getDeviceDataByMac(rowData[mapIndx(11)])
-
- if (devData.devPresentLastScan == 1)
+ if (tmp_devPresentLastScan == 1)
{
css = "green text-white statusOnline"
icon = ''
- } else if (devData.devPresentLastScan != 1 && devData.devAlertDown == 1)
+ } else if (tmp_devPresentLastScan != 1 && tmp_devAlertDown == 1)
{
css = "red text-white statusDown"
icon = ''
- } else if(devData.devPresentLastScan != 1)
+ } else if(tmp_devPresentLastScan != 1)
{
css = "gray text-white statusOffline"
icon = ''
diff --git a/front/php/templates/language/ar_ar.json b/front/php/templates/language/ar_ar.json
index 65e5f46c..256fb3fe 100755
--- a/front/php/templates/language/ar_ar.json
+++ b/front/php/templates/language/ar_ar.json
@@ -199,6 +199,7 @@
"Device_Shortcut_Favorites": "",
"Device_Shortcut_NewDevices": "",
"Device_Shortcut_OnlineChart": "",
+ "Device_TableHead_AlertDown": "",
"Device_TableHead_Connected_Devices": "",
"Device_TableHead_Favorite": "",
"Device_TableHead_FirstSession": "",
@@ -216,6 +217,7 @@
"Device_TableHead_Owner": "",
"Device_TableHead_Parent_MAC": "",
"Device_TableHead_Port": "",
+ "Device_TableHead_PresentLastScan": "",
"Device_TableHead_RowID": "",
"Device_TableHead_Rowid": "",
"Device_TableHead_SSID": "",
diff --git a/front/php/templates/language/ca_ca.json b/front/php/templates/language/ca_ca.json
index 1f6af4ce..e10c4e61 100755
--- a/front/php/templates/language/ca_ca.json
+++ b/front/php/templates/language/ca_ca.json
@@ -199,6 +199,7 @@
"Device_Shortcut_Favorites": "Favorits",
"Device_Shortcut_NewDevices": "Nous dispositius",
"Device_Shortcut_OnlineChart": "Presència de dispositius",
+ "Device_TableHead_AlertDown": "",
"Device_TableHead_Connected_Devices": "Connexions",
"Device_TableHead_Favorite": "Favorit",
"Device_TableHead_FirstSession": "Primera Sessió",
@@ -216,6 +217,7 @@
"Device_TableHead_Owner": "Propietari",
"Device_TableHead_Parent_MAC": "MAC del node pare",
"Device_TableHead_Port": "Port",
+ "Device_TableHead_PresentLastScan": "",
"Device_TableHead_RowID": "ID de fila",
"Device_TableHead_Rowid": "ID de fila",
"Device_TableHead_SSID": "SSID",
@@ -715,4 +717,4 @@
"settings_update_item_warning": "",
"test_event_icon": "",
"test_event_tooltip": ""
-}
+}
\ No newline at end of file
diff --git a/front/php/templates/language/cs_cz.json b/front/php/templates/language/cs_cz.json
index 65e5f46c..256fb3fe 100755
--- a/front/php/templates/language/cs_cz.json
+++ b/front/php/templates/language/cs_cz.json
@@ -199,6 +199,7 @@
"Device_Shortcut_Favorites": "",
"Device_Shortcut_NewDevices": "",
"Device_Shortcut_OnlineChart": "",
+ "Device_TableHead_AlertDown": "",
"Device_TableHead_Connected_Devices": "",
"Device_TableHead_Favorite": "",
"Device_TableHead_FirstSession": "",
@@ -216,6 +217,7 @@
"Device_TableHead_Owner": "",
"Device_TableHead_Parent_MAC": "",
"Device_TableHead_Port": "",
+ "Device_TableHead_PresentLastScan": "",
"Device_TableHead_RowID": "",
"Device_TableHead_Rowid": "",
"Device_TableHead_SSID": "",
diff --git a/front/php/templates/language/de_de.json b/front/php/templates/language/de_de.json
index f308d31e..12600cb4 100755
--- a/front/php/templates/language/de_de.json
+++ b/front/php/templates/language/de_de.json
@@ -211,6 +211,7 @@
"Device_Shortcut_Favorites": "Favoriten",
"Device_Shortcut_NewDevices": "Neue Geräte",
"Device_Shortcut_OnlineChart": "Gerätepräsenz im Laufe der Zeit",
+ "Device_TableHead_AlertDown": "",
"Device_TableHead_Connected_Devices": "Verbindungen",
"Device_TableHead_Favorite": "Favorit",
"Device_TableHead_FirstSession": "Erste Sitzung",
@@ -228,6 +229,7 @@
"Device_TableHead_Owner": "Eigentümer",
"Device_TableHead_Parent_MAC": "Übergeordnete MAC",
"Device_TableHead_Port": "Port",
+ "Device_TableHead_PresentLastScan": "",
"Device_TableHead_RowID": "Zeilen ID",
"Device_TableHead_Rowid": "Zeilennummer",
"Device_TableHead_SSID": "SSID",
diff --git a/front/php/templates/language/en_us.json b/front/php/templates/language/en_us.json
index 29dedaa6..2e2062b4 100755
--- a/front/php/templates/language/en_us.json
+++ b/front/php/templates/language/en_us.json
@@ -199,6 +199,7 @@
"Device_Shortcut_Favorites": "Favorites",
"Device_Shortcut_NewDevices": "New Devices",
"Device_Shortcut_OnlineChart": "Device presence",
+ "Device_TableHead_AlertDown": "Alert Down",
"Device_TableHead_Connected_Devices": "Connections",
"Device_TableHead_Favorite": "Favorite",
"Device_TableHead_FirstSession": "First Session",
@@ -216,6 +217,7 @@
"Device_TableHead_Owner": "Owner",
"Device_TableHead_Parent_MAC": "Parent node MAC",
"Device_TableHead_Port": "Port",
+ "Device_TableHead_PresentLastScan": "Presence",
"Device_TableHead_RowID": "Row ID",
"Device_TableHead_Rowid": "Row ID",
"Device_TableHead_SSID": "SSID",
diff --git a/front/php/templates/language/es_es.json b/front/php/templates/language/es_es.json
index 3aed8ccf..992bed24 100755
--- a/front/php/templates/language/es_es.json
+++ b/front/php/templates/language/es_es.json
@@ -209,6 +209,7 @@
"Device_Shortcut_Favorites": "Favorito(s)",
"Device_Shortcut_NewDevices": "Nuevo(s)",
"Device_Shortcut_OnlineChart": "Presencia del dispositivo a lo largo del tiempo",
+ "Device_TableHead_AlertDown": "",
"Device_TableHead_Connected_Devices": "Conexiones",
"Device_TableHead_Favorite": "Favorito",
"Device_TableHead_FirstSession": "1ra. sesión",
@@ -226,6 +227,7 @@
"Device_TableHead_Owner": "Propietario",
"Device_TableHead_Parent_MAC": "Nodo principal de la MAC",
"Device_TableHead_Port": "Puerto",
+ "Device_TableHead_PresentLastScan": "",
"Device_TableHead_RowID": "Row ID",
"Device_TableHead_Rowid": "Row ID",
"Device_TableHead_SSID": "SSID",
@@ -794,4 +796,4 @@
"settings_update_item_warning": "Actualice el valor a continuación. Tenga cuidado de seguir el formato anterior. O la validación no se realiza.",
"test_event_icon": "fa-vial-circle-check",
"test_event_tooltip": "Guarda tus cambios antes de probar nuevos ajustes."
-}
+}
\ No newline at end of file
diff --git a/front/php/templates/language/fr_fr.json b/front/php/templates/language/fr_fr.json
index 9cc17402..83e649ab 100755
--- a/front/php/templates/language/fr_fr.json
+++ b/front/php/templates/language/fr_fr.json
@@ -199,6 +199,7 @@
"Device_Shortcut_Favorites": "Favoris",
"Device_Shortcut_NewDevices": "Nouveaux appareils",
"Device_Shortcut_OnlineChart": "Présence de l'appareil",
+ "Device_TableHead_AlertDown": "",
"Device_TableHead_Connected_Devices": "Connexions",
"Device_TableHead_Favorite": "Favori",
"Device_TableHead_FirstSession": "Première session",
@@ -216,6 +217,7 @@
"Device_TableHead_Owner": "Propriétaire",
"Device_TableHead_Parent_MAC": "MAC du nœud principal",
"Device_TableHead_Port": "Port",
+ "Device_TableHead_PresentLastScan": "",
"Device_TableHead_RowID": "ID de colonne",
"Device_TableHead_Rowid": "ID de colonne",
"Device_TableHead_SSID": "SSID",
@@ -715,4 +717,4 @@
"settings_update_item_warning": "Mettre à jour la valeur ci-dessous. Veillez à bien suivre le même format qu'auparavant. Il n'y a pas de pas de contrôle.",
"test_event_icon": "fa-vial-circle-check",
"test_event_tooltip": "Enregistrer d'abord vos modifications avant de tester vôtre paramétrage."
-}
+}
\ No newline at end of file
diff --git a/front/php/templates/language/it_it.json b/front/php/templates/language/it_it.json
index 48dccc15..ab6f3cfb 100755
--- a/front/php/templates/language/it_it.json
+++ b/front/php/templates/language/it_it.json
@@ -199,6 +199,7 @@
"Device_Shortcut_Favorites": "Preferiti",
"Device_Shortcut_NewDevices": "Nuovi dispositivi",
"Device_Shortcut_OnlineChart": "Presenza dispositivo",
+ "Device_TableHead_AlertDown": "",
"Device_TableHead_Connected_Devices": "Connessioni",
"Device_TableHead_Favorite": "Preferito",
"Device_TableHead_FirstSession": "Prima sessione",
@@ -216,6 +217,7 @@
"Device_TableHead_Owner": "Proprietario",
"Device_TableHead_Parent_MAC": "MAC del nodo principale",
"Device_TableHead_Port": "Porta",
+ "Device_TableHead_PresentLastScan": "",
"Device_TableHead_RowID": "ID riga",
"Device_TableHead_Rowid": "ID riga",
"Device_TableHead_SSID": "SSID",
@@ -715,4 +717,4 @@
"settings_update_item_warning": "Aggiorna il valore qui sotto. Fai attenzione a seguire il formato precedente. La convalida non viene eseguita.",
"test_event_icon": "fa-vial-circle-check",
"test_event_tooltip": "Salva le modifiche prima di provare le nuove impostazioni."
-}
+}
\ No newline at end of file
diff --git a/front/php/templates/language/nb_no.json b/front/php/templates/language/nb_no.json
index 9dbc69a3..d2fe8fd9 100755
--- a/front/php/templates/language/nb_no.json
+++ b/front/php/templates/language/nb_no.json
@@ -199,6 +199,7 @@
"Device_Shortcut_Favorites": "Favoritter",
"Device_Shortcut_NewDevices": "Nye Enheter",
"Device_Shortcut_OnlineChart": "Enhetens tilstedeværelse",
+ "Device_TableHead_AlertDown": "",
"Device_TableHead_Connected_Devices": "Tilkoblinger",
"Device_TableHead_Favorite": "Favoritt",
"Device_TableHead_FirstSession": "Første Økt",
@@ -216,6 +217,7 @@
"Device_TableHead_Owner": "Eier",
"Device_TableHead_Parent_MAC": "Overordnet node MAC",
"Device_TableHead_Port": "Port",
+ "Device_TableHead_PresentLastScan": "",
"Device_TableHead_RowID": "Rad ID",
"Device_TableHead_Rowid": "Rad ID",
"Device_TableHead_SSID": "",
diff --git a/front/php/templates/language/pl_pl.json b/front/php/templates/language/pl_pl.json
index dda130f8..37ebbb34 100755
--- a/front/php/templates/language/pl_pl.json
+++ b/front/php/templates/language/pl_pl.json
@@ -199,6 +199,7 @@
"Device_Shortcut_Favorites": "Ulubione",
"Device_Shortcut_NewDevices": "Nowe Urządzenia",
"Device_Shortcut_OnlineChart": "Obecność urządzenia",
+ "Device_TableHead_AlertDown": "",
"Device_TableHead_Connected_Devices": "Połączenia",
"Device_TableHead_Favorite": "Ulubione",
"Device_TableHead_FirstSession": "Pierwsza Sesja",
@@ -216,6 +217,7 @@
"Device_TableHead_Owner": "Właściciel",
"Device_TableHead_Parent_MAC": "MAC rodzica węzła",
"Device_TableHead_Port": "Port",
+ "Device_TableHead_PresentLastScan": "",
"Device_TableHead_RowID": "ID wiersza",
"Device_TableHead_Rowid": "ID wiersza",
"Device_TableHead_SSID": "SSID",
diff --git a/front/php/templates/language/pt_br.json b/front/php/templates/language/pt_br.json
index fdb0ed94..7d48b1f3 100755
--- a/front/php/templates/language/pt_br.json
+++ b/front/php/templates/language/pt_br.json
@@ -199,6 +199,7 @@
"Device_Shortcut_Favorites": "Favoritos",
"Device_Shortcut_NewDevices": "Novos dispositivos",
"Device_Shortcut_OnlineChart": "Presença do dispositivo",
+ "Device_TableHead_AlertDown": "",
"Device_TableHead_Connected_Devices": "Conexões",
"Device_TableHead_Favorite": "Favorito",
"Device_TableHead_FirstSession": "Primeira sessão",
@@ -216,6 +217,7 @@
"Device_TableHead_Owner": "Proprietário",
"Device_TableHead_Parent_MAC": "Nó pai MAC",
"Device_TableHead_Port": "Porta",
+ "Device_TableHead_PresentLastScan": "",
"Device_TableHead_RowID": "ID da linha",
"Device_TableHead_Rowid": "ID da linha",
"Device_TableHead_SSID": "SSID",
diff --git a/front/php/templates/language/ru_ru.json b/front/php/templates/language/ru_ru.json
index 477f5559..28dae2b1 100755
--- a/front/php/templates/language/ru_ru.json
+++ b/front/php/templates/language/ru_ru.json
@@ -199,6 +199,7 @@
"Device_Shortcut_Favorites": "Избранные",
"Device_Shortcut_NewDevices": "Новые устройства",
"Device_Shortcut_OnlineChart": "Присутствие устройств",
+ "Device_TableHead_AlertDown": "",
"Device_TableHead_Connected_Devices": "Соединения",
"Device_TableHead_Favorite": "Избранное",
"Device_TableHead_FirstSession": "Первый сеанс",
@@ -216,6 +217,7 @@
"Device_TableHead_Owner": "Владелец",
"Device_TableHead_Parent_MAC": "MAC род. узла",
"Device_TableHead_Port": "Порт",
+ "Device_TableHead_PresentLastScan": "",
"Device_TableHead_RowID": "ID строки",
"Device_TableHead_Rowid": "ID строки",
"Device_TableHead_SSID": "SSID",
@@ -715,4 +717,4 @@
"settings_update_item_warning": "Обновить значение ниже. Будьте осторожны, следуя предыдущему формату. Проверка не выполняется.",
"test_event_icon": "fa-vial-circle-check",
"test_event_tooltip": "Сначала сохраните изменения, прежде чем проверять настройки."
-}
+}
\ No newline at end of file
diff --git a/front/php/templates/language/tr_tr.json b/front/php/templates/language/tr_tr.json
index 4bd7356d..cfcbe048 100755
--- a/front/php/templates/language/tr_tr.json
+++ b/front/php/templates/language/tr_tr.json
@@ -199,6 +199,7 @@
"Device_Shortcut_Favorites": "Favoriler",
"Device_Shortcut_NewDevices": "Yeni Cİhazlar",
"Device_Shortcut_OnlineChart": "",
+ "Device_TableHead_AlertDown": "",
"Device_TableHead_Connected_Devices": "Bağlantılar",
"Device_TableHead_Favorite": "",
"Device_TableHead_FirstSession": "İlk Oturum",
@@ -216,6 +217,7 @@
"Device_TableHead_Owner": "",
"Device_TableHead_Parent_MAC": "",
"Device_TableHead_Port": "",
+ "Device_TableHead_PresentLastScan": "",
"Device_TableHead_RowID": "",
"Device_TableHead_Rowid": "",
"Device_TableHead_SSID": "",
diff --git a/front/php/templates/language/zh_cn.json b/front/php/templates/language/zh_cn.json
index f84eeac1..7e4cd6ee 100755
--- a/front/php/templates/language/zh_cn.json
+++ b/front/php/templates/language/zh_cn.json
@@ -199,6 +199,7 @@
"Device_Shortcut_Favorites": "收藏",
"Device_Shortcut_NewDevices": "新设备",
"Device_Shortcut_OnlineChart": "设备统计",
+ "Device_TableHead_AlertDown": "",
"Device_TableHead_Connected_Devices": "链接",
"Device_TableHead_Favorite": "收藏",
"Device_TableHead_FirstSession": "加入",
@@ -216,6 +217,7 @@
"Device_TableHead_Owner": "所有者",
"Device_TableHead_Parent_MAC": "父节点",
"Device_TableHead_Port": "端口",
+ "Device_TableHead_PresentLastScan": "",
"Device_TableHead_RowID": "排行",
"Device_TableHead_Rowid": "排行",
"Device_TableHead_SSID": "SSID",
diff --git a/front/plugins/ui_settings/config.json b/front/plugins/ui_settings/config.json
index 52ed79cf..50d0f07c 100755
--- a/front/plugins/ui_settings/config.json
+++ b/front/plugins/ui_settings/config.json
@@ -373,7 +373,9 @@
"Device_TableHead_SyncHubNodeName",
"Device_TableHead_NetworkSite",
"Device_TableHead_SSID",
- "Device_TableHead_SourcePlugin"
+ "Device_TableHead_SourcePlugin",
+ "Device_TableHead_PresentLastScan",
+ "Device_TableHead_AlertDown"
],
"localized": ["name", "description"],
"name": [
diff --git a/server/graphql_server/graphql_schema.py b/server/graphql_server/graphql_schema.py
index e47cb48e..4d49b0ad 100755
--- a/server/graphql_server/graphql_schema.py
+++ b/server/graphql_server/graphql_schema.py
@@ -99,7 +99,6 @@ class Query(ObjectType):
# Apply sorting if options are provided
if options:
-
# Define status-specific filtering
if options.status:
status = options.status
@@ -142,7 +141,7 @@ class Query(ObjectType):
for sort_option in options.sort:
devices_data = sorted(
devices_data,
- key=lambda x: x.get(sort_option.field),
+ key=lambda x: mixed_type_sort_key(x.get(sort_option.field)),
reverse=(sort_option.order.lower() == "desc")
)
@@ -176,7 +175,14 @@ class Query(ObjectType):
return DeviceResult(devices=devices, count=total_count)
-
+# helps sorting inconsistent dataset mixed integers and strings
+def mixed_type_sort_key(value):
+ if value is None or value == "":
+ return (2, '') # Place None or empty strings last
+ try:
+ return (0, int(value)) # Integers get priority
+ except (ValueError, TypeError):
+ return (1, str(value)) # Strings come next
# Schema Definition
devicesSchema = graphene.Schema(query=Query)
diff --git a/server/initialise.py b/server/initialise.py
index 83367537..258b92c3 100755
--- a/server/initialise.py
+++ b/server/initialise.py
@@ -324,7 +324,7 @@ def importConfigs (db, all_plugins):
# Log the value being passed
# ccd(key, default, config_dir, name, inputtype, options, group, events=None, desc="", regex="", setJsonMetadata=None, overrideTemplate=None, forceDefault=False)
- mylog('debug', [f"[Config] Setting override {setting_name} with value: {value}"])
+ mylog('verbose', [f"[Config] Setting override {setting_name} with value: {value}"])
ccd(setting_name, value, c_d, '_KEEP_', '_KEEP_', '_KEEP_', '_KEEP_', None, "_KEEP_", "", None, None, True, 1)
except json.JSONDecodeError: