GraphQl 0.2.17.3 - sorting, filtering fix

This commit is contained in:
jokob-sk
2024-11-17 21:29:58 +11:00
parent 202baab409
commit 410becfe21
18 changed files with 60 additions and 18 deletions

View File

@@ -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 = [];
@@ -697,17 +702,18 @@ function initializeDatatable (status) {
{targets: [mapIndx(10)],
'createdCell': function (td, cellData, rowData, row, col) {
devData = getDeviceDataByMac(rowData[mapIndx(11)])
tmp_devPresentLastScan = rowData[mapIndx(24)]
tmp_devAlertDown = rowData[mapIndx(25)]
if (devData.devPresentLastScan == 1)
if (tmp_devPresentLastScan == 1)
{
css = "green text-white statusOnline"
icon = '<i class="fa-solid fa-plug"></i>'
} else if (devData.devPresentLastScan != 1 && devData.devAlertDown == 1)
} else if (tmp_devPresentLastScan != 1 && tmp_devAlertDown == 1)
{
css = "red text-white statusDown"
icon = '<i class="fa-solid fa-triangle-exclamation"></i>'
} else if(devData.devPresentLastScan != 1)
} else if(tmp_devPresentLastScan != 1)
{
css = "gray text-white statusOffline"
icon = '<i class="fa-solid fa-xmark"></i>'

View File

@@ -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": "",

View File

@@ -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",

View File

@@ -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": "",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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": "",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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": "",

View File

@@ -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",

View File

@@ -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": [

View File

@@ -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)

View File

@@ -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: