Merge pull request #1624 from netalertx/main

sync
This commit is contained in:
Jokob @NetAlertX
2026-04-24 07:38:59 +10:00
committed by GitHub
30 changed files with 450 additions and 224 deletions

View File

@@ -87,6 +87,7 @@ Frequent scans increase resource usage, network traffic, and database read/write
* **Increase scan intervals** (`<PLUGIN>_RUN_SCHD`) on busy networks or low-end hardware.
* **Increase timeouts** (`<PLUGIN>_RUN_TIMEOUT`) to avoid plugin failures.
* **Reduce subnet size** e.g., use `/24` instead of `/16` to reduce scan load.
* **Enable the deep sleep setting** (`DEEP_SLEEP`) Lowers CPU usage by extending idle wait times between processing cycles. When enabled, scans may be delayed by up to 1 minute and the UI might become less responsive.
Some plugins also include options to limit which devices are scanned. If certain plugins consistently run long, consider narrowing their scope.

View File

@@ -1413,15 +1413,48 @@ textarea[readonly],
#columnFilters {
display: flex;
flex-wrap: wrap;
gap: 10px; /* Add spacing between items */
display: grid;
grid-template-columns: repeat(auto-fit, minmax(125px, 1fr));
gap: 0.75em;
padding: 0.5em 0;
}
#columnFilters::before,
#columnFilters::after {
display: none !important;
}
.filter-group {
box-sizing: border-box; /* Ensure padding and borders are included in the width */
padding: 1em;
padding-top: 0;
box-sizing: border-box;
padding: 0.4em;
margin: 0;
border-radius: 3px;
display: flex;
flex-direction: column;
align-items: stretch;
gap: 0.15em;
white-space: normal;
}
.filter-group label {
box-sizing: border-box;
margin: 0;
border-radius: 3px;
display: flex;
flex-direction: column;
align-items: stretch;
gap: 0.15em;
white-space: normal;
padding-left: 15px;
padding-right: 0px;
}
.filter-dropdown {
width: 100%;
}
.filter-group select {
margin-left: 15px;
padding-right: 0px;
}
.filter-dropdown

View File

@@ -66,6 +66,8 @@
"CustProps_cant_remove": "لا يمكن إزالة الخاصية المخصصة",
"DAYS_TO_KEEP_EVENTS_description": "عدد الأيام للاحتفاظ بسجلات الأحداث",
"DAYS_TO_KEEP_EVENTS_name": "مدة الاحتفاظ بالأحداث",
"DEEP_SLEEP_description": "",
"DEEP_SLEEP_name": "",
"DISCOVER_PLUGINS_description": "اكتشاف المكونات الإضافية المتاحة",
"DISCOVER_PLUGINS_name": "اكتشاف المكونات الإضافية",
"DevDetail_Children_Title": "علاقات الأطفال",
@@ -806,4 +808,4 @@
"settings_system_label": "نظام",
"settings_update_item_warning": "قم بتحديث القيمة أدناه. احرص على اتباع التنسيق السابق. <b>لم يتم إجراء التحقق.</b>",
"test_event_tooltip": "احفظ التغييرات أولاً قبل اختبار الإعدادات."
}
}

View File

@@ -66,6 +66,8 @@
"CustProps_cant_remove": "No es pot eliminar, es necessita una propietat mínim.",
"DAYS_TO_KEEP_EVENTS_description": "Això és una configuració de manteniment. Especifica el nombre de dies que es conservaran els esdeveniments. Els esdeveniments antics s'esborraran periòdicament. També aplica als esdeveniments dels Connectors (Plugins).",
"DAYS_TO_KEEP_EVENTS_name": "Esborrar esdeveniments més vells de",
"DEEP_SLEEP_description": "",
"DEEP_SLEEP_name": "",
"DISCOVER_PLUGINS_description": "Desactiva aquesta opció per accelerar la inicialització i l'estalvi de configuració. Quan està desactivat, els connectors no es descobreixen, i no podeu afegir nous connectors a la configuració <code>LOADED_PLUGINS</code>.",
"DISCOVER_PLUGINS_name": "Descobreix els plugins",
"DevDetail_Children_Title": "Relacions filles",
@@ -806,4 +808,4 @@
"settings_system_label": "Sistema",
"settings_update_item_warning": "Actualitza el valor sota. Sigues curós de seguir el format anterior. <b>No hi ha validació.</b>",
"test_event_tooltip": "Deseu els canvis primer abans de comprovar la configuració."
}
}

View File

@@ -1,7 +1,7 @@
{
"API_CUSTOM_SQL_description": "",
"API_CUSTOM_SQL_name": "",
"API_TOKEN_description": "",
"API_CUSTOM_SQL_description": "Můžete specifikovat vlastní SQL dotaz, který vygeneruje JSON soubor a následně ho vystaví přes <a href=\"/php/server/query_json.php?file=table_custom_endpoint.json\" target=\"_blank\"><code>table_custom_endpoint.json</code> souborový endpoint</a>.",
"API_CUSTOM_SQL_name": "Vlastní endpoint",
"API_TOKEN_description": "API token pro zabezpečenou komunikaci. Vygenerujte ho, nebo zadejte jakoukoliv hodnotu. Je odesílán v hlavičce requestu a použit v <code>SYNC</code> pluginu, GraphQL serveru a dalších API endpointech. Můžete použít API endpointy pro vytvoření vlastních integrací, jak je popsáno v <a href=\"https://docs.netalertx.com/API\" target=\"_blank\">API dokumentaci</a>.",
"API_TOKEN_name": "API token",
"API_display_name": "API",
"API_icon": "<i class=\"fa fa-arrow-down-up-across-line\"></i>",
@@ -9,203 +9,205 @@
"About_Exit": "Odhlásit",
"About_Title": "Scanner síťové bezpečnosti a framework pro upozornění",
"AppEvents_AppEventProcessed": "Zpracováno",
"AppEvents_DateTimeCreated": "Zaznamenáno",
"AppEvents_DateTimeCreated": "Zalogováno",
"AppEvents_Extra": "Extra",
"AppEvents_GUID": "",
"AppEvents_Helper1": "",
"AppEvents_Helper2": "",
"AppEvents_Helper3": "",
"AppEvents_GUID": "GUID aplikační události",
"AppEvents_Helper1": "Pomocník 1",
"AppEvents_Helper2": "Pomocník 2",
"AppEvents_Helper3": "Pomocník 3",
"AppEvents_ObjectForeignKey": "Cizí klíč",
"AppEvents_ObjectIndex": "Index",
"AppEvents_ObjectIsArchived": "",
"AppEvents_ObjectIsNew": "",
"AppEvents_ObjectPlugin": "",
"AppEvents_ObjectIsArchived": "Archivováno (dlouhodobě)",
"AppEvents_ObjectIsNew": "Nové (dlouhodobě)",
"AppEvents_ObjectPlugin": "Navázaný Plugin",
"AppEvents_ObjectPrimaryID": "Primární ID",
"AppEvents_ObjectSecondaryID": "Sekundární ID",
"AppEvents_ObjectStatus": "",
"AppEvents_ObjectStatusColumn": "",
"AppEvents_ObjectType": "",
"AppEvents_Plugin": "Zásuvný modul",
"AppEvents_ObjectStatus": "Logovaný stav",
"AppEvents_ObjectStatusColumn": "Stavový sloupec",
"AppEvents_ObjectType": "Typ Objektu",
"AppEvents_Plugin": "Plugin",
"AppEvents_Type": "Typ",
"BACKEND_API_URL_description": "",
"BACKEND_API_URL_name": "",
"BackDevDetail_Actions_Ask_Run": "",
"BackDevDetail_Actions_Not_Registered": "",
"BACKEND_API_URL_description": "Použito pro umožnění komunikace frontendu s backendem. Výchozí hodnota je <code>/server</code> , která by neměla být měněna.",
"BACKEND_API_URL_name": "URL API backendu",
"BackDevDetail_Actions_Ask_Run": "Chcete akci spustit?",
"BackDevDetail_Actions_Not_Registered": "Akce není zaregistrována: ",
"BackDevDetail_Actions_Title_Run": "Spustit akci",
"BackDevDetail_Copy_Ask": "",
"BackDevDetail_Copy_Title": "",
"BackDevDetail_Tools_WOL_error": "",
"BackDevDetail_Tools_WOL_okay": "",
"BackDevices_Arpscan_disabled": "",
"BackDevices_Arpscan_enabled": "",
"BackDevices_Backup_CopError": "",
"BackDevices_Backup_Failed": "",
"BackDevices_Backup_okay": "",
"BackDevices_DBTools_DelDevError_a": "",
"BackDevices_DBTools_DelDevError_b": "",
"BackDevices_DBTools_DelDev_a": "",
"BackDevices_DBTools_DelDev_b": "",
"BackDevices_DBTools_DelEvents": "",
"BackDevices_DBTools_DelEventsError": "",
"BackDevices_DBTools_ImportCSV": "",
"BackDevices_DBTools_ImportCSVError": "",
"BackDevices_DBTools_ImportCSVMissing": "",
"BackDevices_DBTools_Purge": "",
"BackDevices_DBTools_UpdDev": "",
"BackDevices_DBTools_UpdDevError": "",
"BackDevices_DBTools_Upgrade": "",
"BackDevices_DBTools_UpgradeError": "",
"BackDevices_Device_UpdDevError": "",
"BackDevices_Restore_CopError": "",
"BackDevices_Restore_Failed": "",
"BackDevices_Restore_okay": "",
"BackDevices_darkmode_disabled": "",
"BackDevices_darkmode_enabled": "",
"CLEAR_NEW_FLAG_description": "",
"CLEAR_NEW_FLAG_name": "",
"CustProps_cant_remove": "",
"DAYS_TO_KEEP_EVENTS_description": "",
"DAYS_TO_KEEP_EVENTS_name": "",
"DISCOVER_PLUGINS_description": "",
"DISCOVER_PLUGINS_name": "",
"DevDetail_Children_Title": "",
"DevDetail_Copy_Device_Title": "",
"DevDetail_Copy_Device_Tooltip": "",
"DevDetail_CustomProperties_Title": "",
"DevDetail_CustomProps_reset_info": "",
"DevDetail_DisplayFields_Title": "",
"DevDetail_EveandAl_AlertAllEvents": "",
"DevDetail_EveandAl_AlertDown": "",
"BackDevDetail_Copy_Ask": "Zkopírovat detaily zařízení z výběru (vše na této stránce bude přepsáno)?",
"BackDevDetail_Copy_Title": "Zkopírovat detaily",
"BackDevDetail_Tools_WOL_error": "Příkaz NEBYL proveden.",
"BackDevDetail_Tools_WOL_okay": "Příkaz byl proveden.",
"BackDevices_Arpscan_disabled": "ARP-Scan zakázán",
"BackDevices_Arpscan_enabled": "ARP-Scan povolen",
"BackDevices_Backup_CopError": "Původní databázi se nepodařilo uložit.",
"BackDevices_Backup_Failed": "Záloha byla privedena částečně úspěšně. Archiv nemohl být vytvořen nebo je prázdný.",
"BackDevices_Backup_okay": "Záloha byla provedena úspěšně s novým archivem",
"BackDevices_DBTools_DelDevError_a": "Chyba při odstranění zařízení",
"BackDevices_DBTools_DelDevError_b": "Chyba při odstranění zařízení",
"BackDevices_DBTools_DelDev_a": "Zařízení odstraněno",
"BackDevices_DBTools_DelDev_b": "Zařízení odstraněna",
"BackDevices_DBTools_DelEvents": "Události odstraněny",
"BackDevices_DBTools_DelEventsError": "Chyba při odstraňování událostí",
"BackDevices_DBTools_ImportCSV": "Zařízení z CSV souboru byla úspěšně importována.",
"BackDevices_DBTools_ImportCSVError": "CSV soubor nemohl být importován. Ujistěte se, že je formát správný.",
"BackDevices_DBTools_ImportCSVMissing": "CSV soubor <b>/config/devices.csv</b> nebyl nalezen.",
"BackDevices_DBTools_Purge": "Nejstarší zálohy byly odstraněny",
"BackDevices_DBTools_UpdDev": "Zařízení úspěšně aktualizováno. Hlavní seznam zařízení vyžaduje nějaký čas k obnovení, pokud probíhá scan.",
"BackDevices_DBTools_UpdDevError": "Chyba aktualizace zařízení",
"BackDevices_DBTools_Upgrade": "Databáze byla úspěšně upgradována",
"BackDevices_DBTools_UpgradeError": "Chyba při upgradu databáze",
"BackDevices_Device_UpdDevError": "Chyba při aktualizaci zařízení, zkuste to později. Databáze je pravděpodobně uzamčena z důvodu jiné probíhající úlohy.",
"BackDevices_Restore_CopError": "Původní databázi se nepodařilo uložit.",
"BackDevices_Restore_Failed": "Obnova selhala. Prosím, obnovte zálohu ručně.",
"BackDevices_Restore_okay": "Obnova úspěšně provedena.",
"BackDevices_darkmode_disabled": "Tmavý režim zakázán",
"BackDevices_darkmode_enabled": "Tmavý režim povolen",
"CLEAR_NEW_FLAG_description": "Pokud je povoleno (<code>0</code> je zakázáno), zařízením označeným jako <b>Nové Zařízení</b> bude tento příznak odebrán, pokud časový limit (udaný v hodinách) překročí jejich čas <b>První Session</b>.",
"CLEAR_NEW_FLAG_name": "Odebrat příznak nového",
"CustProps_cant_remove": "Nelze odebrat, je vyžadována alespoň jedna položka.",
"DAYS_TO_KEEP_EVENTS_description": "Toto je nastavení údržby. Určuje počet dní, po které budou záznamy události uchovávány. Všechny starší události budou periodicky odstraněny. Platí také pro Historii Událostí Pluginů.",
"DAYS_TO_KEEP_EVENTS_name": "Odstranit události starší než",
"DEEP_SLEEP_description": "",
"DEEP_SLEEP_name": "",
"DISCOVER_PLUGINS_description": "Zakažte tuto volbu pro urychlení inicializace a ukládání nastavení. Když je volba zakázána, pluginy nejsou vyhledávány a nemůžete tak přidávat nové pluginy do nastavení <code>LOADED_PLUGINS</code>.",
"DISCOVER_PLUGINS_name": "Vyhledat pluginy",
"DevDetail_Children_Title": "Podřízené vazby",
"DevDetail_Copy_Device_Title": "Zkopírovat detaily ze zařízení",
"DevDetail_Copy_Device_Tooltip": "Zkopírovat detaily z vybraného zařízení. Všechno na této stránce bude přepsáno",
"DevDetail_CustomProperties_Title": "Vlastní položky",
"DevDetail_CustomProps_reset_info": "Tímto budou odebrány vlastní položky na tomto zařízení a dojde k resetu na výchozí hodnotu.",
"DevDetail_DisplayFields_Title": "Zobrazit",
"DevDetail_EveandAl_AlertAllEvents": "Hlásit události",
"DevDetail_EveandAl_AlertDown": "Hlásit down",
"DevDetail_EveandAl_Archived": "Archivováno",
"DevDetail_EveandAl_NewDevice": "",
"DevDetail_EveandAl_NewDevice_Tooltip": "",
"DevDetail_EveandAl_RandomMAC": "",
"DevDetail_EveandAl_ScanCycle": "",
"DevDetail_EveandAl_ScanCycle_a": "",
"DevDetail_EveandAl_ScanCycle_z": "",
"DevDetail_EveandAl_Skip": "",
"DevDetail_EveandAl_Title": "",
"DevDetail_Events_CheckBox": "",
"DevDetail_GoToNetworkNode": "",
"DevDetail_EveandAl_NewDevice": "Nové zařízení",
"DevDetail_EveandAl_NewDevice_Tooltip": "Zobrazí status Nový pro nové zařízení a zahrne je do seznamu s filtrem Nová zařízení. Nemá vliv na notifikace.",
"DevDetail_EveandAl_RandomMAC": "Náhodná MAC",
"DevDetail_EveandAl_ScanCycle": "Skenovat zařízení",
"DevDetail_EveandAl_ScanCycle_a": "Skenovat zařízení",
"DevDetail_EveandAl_ScanCycle_z": "Neskenovat zařízení",
"DevDetail_EveandAl_Skip": "Vynechat opakování notifikací během",
"DevDetail_EveandAl_Title": "Konfigurace notifikací",
"DevDetail_Events_CheckBox": "Skrýt události připojení",
"DevDetail_GoToNetworkNode": "Navigovat na Síťovou stránku uvedeného node.",
"DevDetail_Icon": "Ikona",
"DevDetail_Icon_Descr": "",
"DevDetail_Icon_Descr": "Zadejte název ikony z Font Awesome bez prefixu \"fa-\", nebo s celou class, např. \"fa-brands\", \"fa-apple\", ...",
"DevDetail_Loading": "Načítání…",
"DevDetail_MainInfo_Comments": "Komentáře",
"DevDetail_MainInfo_Favorite": "",
"DevDetail_MainInfo_Group": "",
"DevDetail_MainInfo_Location": "",
"DevDetail_MainInfo_Name": "",
"DevDetail_MainInfo_Network": "",
"DevDetail_MainInfo_Network_Port": "",
"DevDetail_MainInfo_Network_Site": "",
"DevDetail_MainInfo_Network_Title": "",
"DevDetail_MainInfo_Owner": "",
"DevDetail_MainInfo_SSID": "",
"DevDetail_MainInfo_Title": "",
"DevDetail_MainInfo_Type": "",
"DevDetail_MainInfo_Vendor": "",
"DevDetail_MainInfo_mac": "",
"DevDetail_NavToChildNode": "",
"DevDetail_Network_Node_hover": "",
"DevDetail_Network_Port_hover": "",
"DevDetail_Nmap_Scans": "",
"DevDetail_Nmap_Scans_desc": "",
"DevDetail_Nmap_buttonDefault": "",
"DevDetail_Nmap_buttonDefault_text": "",
"DevDetail_Nmap_buttonDetail": "",
"DevDetail_Nmap_buttonDetail_text": "",
"DevDetail_Nmap_buttonFast": "",
"DevDetail_Nmap_buttonFast_text": "",
"DevDetail_Nmap_buttonSkipDiscovery": "",
"DevDetail_Nmap_buttonSkipDiscovery_text": "",
"DevDetail_Nmap_resultsLink": "",
"DevDetail_Owner_hover": "",
"DevDetail_Periodselect_All": "",
"DevDetail_Periodselect_LastMonth": "",
"DevDetail_Periodselect_LastWeek": "",
"DevDetail_Periodselect_LastYear": "",
"DevDetail_Periodselect_today": "",
"DevDetail_Run_Actions_Title": "",
"DevDetail_Run_Actions_Tooltip": "",
"DevDetail_SessionInfo_FirstSession": "",
"DevDetail_SessionInfo_LastIP": "",
"DevDetail_SessionInfo_LastSession": "",
"DevDetail_SessionInfo_StaticIP": "",
"DevDetail_SessionInfo_Status": "",
"DevDetail_SessionInfo_Title": "",
"DevDetail_SessionTable_Additionalinfo": "",
"DevDetail_SessionTable_Connection": "",
"DevDetail_SessionTable_Disconnection": "",
"DevDetail_SessionTable_Duration": "",
"DevDetail_SessionTable_IP": "",
"DevDetail_SessionTable_Order": "",
"DevDetail_Shortcut_CurrentStatus": "",
"DevDetail_Shortcut_DownAlerts": "",
"DevDetail_Shortcut_Presence": "",
"DevDetail_Shortcut_Sessions": "",
"DevDetail_Tab_Details": "",
"DevDetail_Tab_Events": "",
"DevDetail_Tab_EventsTableDate": "",
"DevDetail_Tab_EventsTableEvent": "",
"DevDetail_Tab_EventsTableIP": "",
"DevDetail_Tab_EventsTableInfo": "",
"DevDetail_Tab_Nmap": "",
"DevDetail_Tab_NmapEmpty": "",
"DevDetail_Tab_NmapTableExtra": "",
"DevDetail_Tab_NmapTableHeader": "",
"DevDetail_Tab_NmapTableIndex": "",
"DevDetail_Tab_NmapTablePort": "",
"DevDetail_Tab_NmapTableService": "",
"DevDetail_Tab_NmapTableState": "",
"DevDetail_Tab_NmapTableText": "",
"DevDetail_Tab_NmapTableTime": "",
"DevDetail_Tab_Plugins": "",
"DevDetail_Tab_Presence": "",
"DevDetail_Tab_Sessions": "",
"DevDetail_Tab_Tools": "",
"DevDetail_Tab_Tools_Internet_Info_Description": "",
"DevDetail_Tab_Tools_Internet_Info_Error": "",
"DevDetail_Tab_Tools_Internet_Info_Start": "",
"DevDetail_Tab_Tools_Internet_Info_Title": "",
"DevDetail_Tab_Tools_Nslookup_Description": "",
"DevDetail_Tab_Tools_Nslookup_Error": "",
"DevDetail_Tab_Tools_Nslookup_Start": "",
"DevDetail_Tab_Tools_Nslookup_Title": "",
"DevDetail_Tab_Tools_Speedtest_Description": "",
"DevDetail_Tab_Tools_Speedtest_Start": "",
"DevDetail_Tab_Tools_Speedtest_Title": "",
"DevDetail_Tab_Tools_Traceroute_Description": "",
"DevDetail_Tab_Tools_Traceroute_Error": "",
"DevDetail_Tab_Tools_Traceroute_Start": "",
"DevDetail_Tab_Tools_Traceroute_Title": "",
"DevDetail_Tools_WOL": "",
"DevDetail_Tools_WOL_noti": "",
"DevDetail_Tools_WOL_noti_text": "",
"DevDetail_Type_hover": "",
"DevDetail_Vendor_hover": "",
"DevDetail_WOL_Title": "",
"DevDetail_button_AddIcon": "",
"DevDetail_button_AddIcon_Help": "",
"DevDetail_button_AddIcon_Tooltip": "",
"DevDetail_button_Delete": "",
"DevDetail_button_DeleteEvents": "",
"DevDetail_button_DeleteEvents_Warning": "",
"DevDetail_button_Delete_ask": "",
"DevDetail_button_OverwriteIcons": "",
"DevDetail_button_OverwriteIcons_Tooltip": "",
"DevDetail_button_OverwriteIcons_Warning": "",
"DevDetail_button_Reset": "",
"DevDetail_button_Save": "",
"DeviceEdit_ValidMacIp": "",
"Device_MultiEdit": "",
"Device_MultiEdit_Backup": "",
"Device_MultiEdit_Fields": "",
"Device_MultiEdit_MassActions": "",
"Device_MultiEdit_No_Devices": "",
"Device_MultiEdit_Tooltip": "",
"Device_NextScan_Imminent": "",
"Device_NextScan_In": "",
"Device_NoData_Help": "",
"DevDetail_MainInfo_Favorite": "Oblíbené",
"DevDetail_MainInfo_Group": "Skupina",
"DevDetail_MainInfo_Location": "Umístění",
"DevDetail_MainInfo_Name": "Název",
"DevDetail_MainInfo_Network": "<i class=\"fa fa-server\"></i> Node (MAC)",
"DevDetail_MainInfo_Network_Port": "<i class=\"fa fa-ethernet\"></i> Port",
"DevDetail_MainInfo_Network_Site": "Site",
"DevDetail_MainInfo_Network_Title": "Síťové detaily",
"DevDetail_MainInfo_Owner": "Vlastník",
"DevDetail_MainInfo_SSID": "SSID",
"DevDetail_MainInfo_Title": "Informace o zařízení",
"DevDetail_MainInfo_Type": "Typ",
"DevDetail_MainInfo_Vendor": "Výrobce",
"DevDetail_MainInfo_mac": "MAC",
"DevDetail_NavToChildNode": "Otevřít podřízený node",
"DevDetail_Network_Node_hover": "Vyberte nadřazené síťové zařízení, ke kterému je toto zařízení připojeno, pro sestavení Síťového stromu.",
"DevDetail_Network_Port_hover": "Port nadřazeného síťového zařízení, ke kterému je toto zařízení připojeno. Pokud je ponechán prázdný, zobrazí se u zařízení WiFi ikona v Síťovém stromu.",
"DevDetail_Nmap_Scans": "Manuální NMAP scany",
"DevDetail_Nmap_Scans_desc": "Tady můžete spustit manuální NMAP scany. Můžete také naplánovat pravidelné automatické NMAP scany přes plugin Služby & Porty (NMAP). Podívejte se do <a href=\"https://github.com/netalertx/NetAlertX/tree/main/front/plugins/nmap_scan\" target=\"_blank\">Dokumentace</a> pro více informací",
"DevDetail_Nmap_buttonDefault": "Výchozí scan",
"DevDetail_Nmap_buttonDefault_text": "Výchozí scan: NAMP scanuje prvních 1000 portů pro každý požadovaný protokol. Toto zahrnuje 93 % TCP portů a 49 % UDP portů. (přibližně 5 sekund)",
"DevDetail_Nmap_buttonDetail": "Podrobný scan",
"DevDetail_Nmap_buttonDetail_text": "Podrobný scan: Výchozí scan s povolenou detekcí OS, detekcí verze, scanování skriptů a traceroute (až 30 sekund nebo déle)",
"DevDetail_Nmap_buttonFast": "Rychlý scan",
"DevDetail_Nmap_buttonFast_text": "Rychlý scan: Scanovat pár portů (100) oproti výchozímu scanu (pár sekund)",
"DevDetail_Nmap_buttonSkipDiscovery": "Přeskočit prohledání hostitele",
"DevDetail_Nmap_buttonSkipDiscovery_text": "Přeskočit vyhledávání hostitelů (parametr \"-Pn\"): Výchozí scan bez prohledání hostitele",
"DevDetail_Nmap_resultsLink": "Tuto stránku můžete opustit po spuštění scanu. Výsledky budou k dispozici také v souboru <code>app_front.log</code> .",
"DevDetail_Owner_hover": "Kdo vlastní toto zařízení. Nepovinná textová položka.",
"DevDetail_Periodselect_All": "Všechny informace",
"DevDetail_Periodselect_LastMonth": "Minulý měsíc",
"DevDetail_Periodselect_LastWeek": "Minulý týden",
"DevDetail_Periodselect_LastYear": "Minulý rok",
"DevDetail_Periodselect_today": "Dnes",
"DevDetail_Run_Actions_Title": "<i class=\"fa fa-play\"></i> Spustit akci na zařízení",
"DevDetail_Run_Actions_Tooltip": "Spustit akci na vybraném zařízení.",
"DevDetail_SessionInfo_FirstSession": "Prví sezení",
"DevDetail_SessionInfo_LastIP": "Poslední IP",
"DevDetail_SessionInfo_LastSession": "Naposledy offline",
"DevDetail_SessionInfo_StaticIP": "Statická IP",
"DevDetail_SessionInfo_Status": "Stav",
"DevDetail_SessionInfo_Title": "Informace o sezení",
"DevDetail_SessionTable_Additionalinfo": "Další informace",
"DevDetail_SessionTable_Connection": "Připojení",
"DevDetail_SessionTable_Disconnection": "Odpojení",
"DevDetail_SessionTable_Duration": "Trvání",
"DevDetail_SessionTable_IP": "IP",
"DevDetail_SessionTable_Order": "Pořadí",
"DevDetail_Shortcut_CurrentStatus": "Stav",
"DevDetail_Shortcut_DownAlerts": "Down alerty",
"DevDetail_Shortcut_Presence": "Výskyt",
"DevDetail_Shortcut_Sessions": "Sezení",
"DevDetail_Tab_Details": "Detaily",
"DevDetail_Tab_Events": "Události",
"DevDetail_Tab_EventsTableDate": "Datum",
"DevDetail_Tab_EventsTableEvent": "Druh události",
"DevDetail_Tab_EventsTableIP": "IP",
"DevDetail_Tab_EventsTableInfo": "Další informace",
"DevDetail_Tab_Nmap": "<i class=\"fa fa-ethernet\"></i> NMAP",
"DevDetail_Tab_NmapEmpty": "Pomocí NMAP nebyly na tomto zařízení nalezeny žádné porty.",
"DevDetail_Tab_NmapTableExtra": "Extra",
"DevDetail_Tab_NmapTableHeader": "Výsledky naplánovaných scanů",
"DevDetail_Tab_NmapTableIndex": "Index",
"DevDetail_Tab_NmapTablePort": "Port",
"DevDetail_Tab_NmapTableService": "Služba",
"DevDetail_Tab_NmapTableState": "Stav",
"DevDetail_Tab_NmapTableText": "Nastavte plán v <a href=\"/settings.php#NMAP_ACTIVE\">Nastavení</a>",
"DevDetail_Tab_NmapTableTime": "Čas",
"DevDetail_Tab_Plugins": "Pluginy",
"DevDetail_Tab_Presence": "Výskyt",
"DevDetail_Tab_Sessions": "Sezení",
"DevDetail_Tab_Tools": "Nástroje",
"DevDetail_Tab_Tools_Internet_Info_Description": "Nástroj Internetové informace zobrazuje informace o internetovém připojení jako je IP adresa, město, stát, kód oblasti a časovou zónu.",
"DevDetail_Tab_Tools_Internet_Info_Error": "Vyskytla se chyba",
"DevDetail_Tab_Tools_Internet_Info_Start": "Spustit Internetové informace",
"DevDetail_Tab_Tools_Internet_Info_Title": "Internetové informace",
"DevDetail_Tab_Tools_Nslookup_Description": "Nslookup je nástroj příkazové řádky používaný pro dotazování doménového jmenného systému (DNS). DNS je systém, který překládá doménové názvy, třeba www.google.com, na IP adresy, třeba na 172.217.0.142.",
"DevDetail_Tab_Tools_Nslookup_Error": "Chyba: IP adresa není platná",
"DevDetail_Tab_Tools_Nslookup_Start": "Spustit Nslookup",
"DevDetail_Tab_Tools_Nslookup_Title": "Nslookup",
"DevDetail_Tab_Tools_Speedtest_Description": "Nástroj Sppedtest měří rychlost stahování, rychlost nahrávání a latenci internetového připojení.",
"DevDetail_Tab_Tools_Speedtest_Start": "Spustit Speedtest",
"DevDetail_Tab_Tools_Speedtest_Title": "Online Speedtest",
"DevDetail_Tab_Tools_Traceroute_Description": "Traceroute je sířový diagnostický příklad používaný pro trasování cesty, kterou datové packety putují od jednoho hostitele k druhému.<br><br>Příkaz používá Internet Control Message Protocol (ICMP) pro posílání packetů procházejícím nodů na cestě, kde každý takový node odpovídá pomocí ICMP time-out (TTL timed out) packetu.<br><br>Výstup traceroute příkazu může být použit pro diagnostiku síťových problémů, jako třeba prodlevy, packetové ztráty a blokované trasy.<br><br>Může být také použít k identifikaci umístění procházejícího node v síti.",
"DevDetail_Tab_Tools_Traceroute_Error": "Chyba: IP adresa není platná",
"DevDetail_Tab_Tools_Traceroute_Start": "Spustit Traceroute",
"DevDetail_Tab_Tools_Traceroute_Title": "Traceroute",
"DevDetail_Tools_WOL": "Odeslat WOL příkaz na ",
"DevDetail_Tools_WOL_noti": "Wake-On-LAN",
"DevDetail_Tools_WOL_noti_text": "Příkaz Wake-On-LAN je odelsán na broadcastovou adresu. Pokud není cíl ve stejném subnetu/VLAN jako NetAlertX, cílové zařízení neodpoví.",
"DevDetail_Type_hover": "Typ zařízení. Pokud vyberete jakýkoliv typ předdefinovaných zařízení (např. AP, Firewall, Router, Switch, ...), zobrazí se v Síťovém stromu jako nadřazený síťový nod.",
"DevDetail_Vendor_hover": "Výrobce by měl být auto-detekován. Můžete ho přepsat, nebo přidat vlastní hodnotu.",
"DevDetail_WOL_Title": "<i class=\"fa fa-power-off\"></i> Wake-On-LAN",
"DevDetail_button_AddIcon": "Přidat novou ikonu",
"DevDetail_button_AddIcon_Help": "Vložte SVG HTML tag, nebo HTML tag ikony z Font Awesome. Přečtěte si <a href=\"https://docs.netalertx.com/ICONS\" target=\"_blank\">Dokumentaci k ikonám</a> pro více informací.",
"DevDetail_button_AddIcon_Tooltip": "Přidat novou ikonu k tomuto zařízení, která není mezi dostupnými ikonami ve výběru.",
"DevDetail_button_Delete": "Odstranit zařízení",
"DevDetail_button_DeleteEvents": "Odstranit události",
"DevDetail_button_DeleteEvents_Warning": "Opravdu chcete odstranit všechny události tohoto zařízení?<br><br>(toto odstraní všechno ze záložky <b>Historie událostí</b> a také ze záložky <b>Sezení</b> a může pomoci se stálými (trvalými) notifikacemi)",
"DevDetail_button_Delete_ask": "Opravdu chcete odstranit toto zařízení? Místo toho ho můžete archivovat.",
"DevDetail_button_OverwriteIcons": "Přepsat ikony",
"DevDetail_button_OverwriteIcons_Tooltip": "Přepsat ikony všech zařízení stejného typu zařízení",
"DevDetail_button_OverwriteIcons_Warning": "Opravdu chcete přepsat všechny ikony zařízení se stejným typem zařízení ikonou tohoto zařízení?",
"DevDetail_button_Reset": "Resetovat změny",
"DevDetail_button_Save": "Uložit",
"DeviceEdit_ValidMacIp": "Zadejte platnou <b>MAC</b> a <b>IP</b> adresu.",
"Device_MultiEdit": "Multi-editace",
"Device_MultiEdit_Backup": "Opatrně, zadání nesprávných hodnot níže poškodí vaše nastavení. Zálohujte si prosím nejdřív vaši databázi nebo Seznam zařízení (<a href=\"#\" onclick=\"ExportCSV()\">kliknutím stáhnout <i class=\"fa-solid fa-download fa-bounce\"></i></a>). Přečtěte si, jak obnovit Zařízení z tohoto souboru v <a href=\"https://docs.netalertx.com/BACKUPS#scenario-2-corrupted-database\" target=\"_blank\">Dokumentaci zálohování</a>. Pro pokračování uložení změn kliknéte na ikonu <b>Uložit<i class=\"fa-solid fa-save\"></i></b> u každé položky, kterou chcete aktualizovat.",
"Device_MultiEdit_Fields": "Upravit položky:",
"Device_MultiEdit_MassActions": "Hromadné akce:",
"Device_MultiEdit_No_Devices": "Zařízení nevybráno.",
"Device_MultiEdit_Tooltip": "Opatrně. Kliknutím na toto se použije hodnota vlevo všem zařízení dole.",
"Device_NextScan_Imminent": "Bezprostřední...",
"Device_NextScan_In": "Další scan za ",
"Device_NoData_Help": "Pokud se zařízení po skenování nezobrazí, zkontrolujte nastavení SCAN_SUBNETS a <a href=\"https://docs.netalertx.com/SUBNETS\" target=\"_blank\">dokumentaci</a>.",
"Device_NoData_Scanning": "",
"Device_NoData_Title": "",
"Device_NoMatch_Title": "",

View File

@@ -70,6 +70,8 @@
"CustProps_cant_remove": "Kann nicht entfernt werden, es wird mindestens eine Eigenschaft benötigt.",
"DAYS_TO_KEEP_EVENTS_description": "Dies ist eine Wartungseinstellung. Spezifiziert wie viele Tage Events gespeichert bleiben. Alle älteren Events werden periodisch gelöscht. Wird auch auf die Plugins History angewendet.",
"DAYS_TO_KEEP_EVENTS_name": "Ereignisse löschen, die älter sind als",
"DEEP_SLEEP_description": "",
"DEEP_SLEEP_name": "",
"DISCOVER_PLUGINS_description": "Deaktiviere diese Option, um Initialisierung und Speichern der Einstellungen zu beschleunigen. Wenn es deaktiviert ist, werden keine neuen Plugins gefunden und es können keine manuell hinzugefügt werden.",
"DISCOVER_PLUGINS_name": "Entdecke Erweiterungen",
"DevDetail_Children_Title": "",
@@ -879,4 +881,4 @@
"settings_system_label": "System",
"settings_update_item_warning": "",
"test_event_tooltip": "Speichere die Änderungen, bevor Sie die Einstellungen testen."
}
}

View File

@@ -66,6 +66,8 @@
"CustProps_cant_remove": "Can't remove, at least one property is needed.",
"DAYS_TO_KEEP_EVENTS_description": "This is a maintenance setting. This specifies the number of days worth of event entries that will be kept. All older events will be deleted periodically. Also applies on Plugin Events History.",
"DAYS_TO_KEEP_EVENTS_name": "Delete events older than",
"DEEP_SLEEP_description": "Lowers CPU usage by extending idle wait times between processing cycles. When enabled, scans may be delayed by up to 1 minute and the UI might become less responsive.",
"DEEP_SLEEP_name": "Deep sleep",
"DISCOVER_PLUGINS_description": "Disable this option to speed up initialization and settings saving. When disabled, plugins are not discovered, and you cannot add new plugins to the <code>LOADED_PLUGINS</code> setting.",
"DISCOVER_PLUGINS_name": "Discover plugins",
"DevDetail_Children_Title": "Children Relationships",
@@ -247,7 +249,7 @@
"Device_TableHead_Name": "Name",
"Device_TableHead_NetworkSite": "Network Site",
"Device_TableHead_Owner": "Owner",
"Device_TableHead_ParentRelType": "Relationship Type",
"Device_TableHead_ParentRelType": "Relationship",
"Device_TableHead_Parent_MAC": "Parent node",
"Device_TableHead_Port": "Port",
"Device_TableHead_PresentLastScan": "Presence",

View File

@@ -68,6 +68,8 @@
"CustProps_cant_remove": "No se puede eliminar, al menos una propiedad es requerida.",
"DAYS_TO_KEEP_EVENTS_description": "Esta es una configuración de mantenimiento. Esto especifica el número de días de entradas de eventos que se guardarán. Todos los eventos anteriores se eliminarán periódicamente.",
"DAYS_TO_KEEP_EVENTS_name": "Eliminar eventos anteriores a",
"DEEP_SLEEP_description": "",
"DEEP_SLEEP_name": "",
"DISCOVER_PLUGINS_description": "Desactive esta opción para acelerar la inicialización y el ahorro de ajustes. Cuando está desactivado, los plugins no se descubren y no puede añadir nuevos plugins a la configuración <code>LOADED_PLUGINS</code>.",
"DISCOVER_PLUGINS_name": "Descubrir plugins",
"DevDetail_Children_Title": "Relaciones hijo",
@@ -877,4 +879,4 @@
"settings_system_label": "Sistema",
"settings_update_item_warning": "Actualice el valor a continuación. Tenga cuidado de seguir el formato anterior. <b>O la validación no se realiza.</b>",
"test_event_tooltip": "Guarda tus cambios antes de probar nuevos ajustes."
}
}

View File

@@ -66,6 +66,8 @@
"CustProps_cant_remove": "",
"DAYS_TO_KEEP_EVENTS_description": "",
"DAYS_TO_KEEP_EVENTS_name": "",
"DEEP_SLEEP_description": "",
"DEEP_SLEEP_name": "",
"DISCOVER_PLUGINS_description": "",
"DISCOVER_PLUGINS_name": "",
"DevDetail_Children_Title": "",

View File

@@ -66,6 +66,8 @@
"CustProps_cant_remove": "",
"DAYS_TO_KEEP_EVENTS_description": "",
"DAYS_TO_KEEP_EVENTS_name": "",
"DEEP_SLEEP_description": "",
"DEEP_SLEEP_name": "",
"DISCOVER_PLUGINS_description": "",
"DISCOVER_PLUGINS_name": "",
"DevDetail_Children_Title": "",

View File

@@ -66,6 +66,8 @@
"CustProps_cant_remove": "Suppression impossible, au moins une donnée est requise.",
"DAYS_TO_KEEP_EVENTS_description": "Il s'agit d'un paramètre de maintenance. Il indique le nombre de jours pendant lesquels les entrées d'événements seront conservées. Tous les événements plus anciens seront supprimés périodiquement. S'applique également à l'historique des événements du plugin.",
"DAYS_TO_KEEP_EVENTS_name": "Supprimer les événements plus anciens que",
"DEEP_SLEEP_description": "Diminue l'utilisation du processeur, en augmentant les temps de repos entre les cycles de calcul. Quand activé, les scans peuvent être retardés jusqu'à 1 minute, et l'interface peut être moins réactive.",
"DEEP_SLEEP_name": "Veille profonde",
"DISCOVER_PLUGINS_description": "Désactivez cette option pour accélérer le démarrage et l'enregistrement de paramètres. Quand elle est désactivée, les plugins ne sont pas découverts, et vous ne pouvez près ajouter de nouveaux plugins au paramètre <code>LOADED_PLUGINS</code>.",
"DISCOVER_PLUGINS_name": "Découvrir des plugins",
"DevDetail_Children_Title": "Relations avec les éléments inférieurs",
@@ -117,7 +119,7 @@
"DevDetail_Nmap_buttonFast": "Scan rapide",
"DevDetail_Nmap_buttonFast_text": "Scan rapide: analyse moins de ports (100) que le scan par défaut (plusieurs secondes)",
"DevDetail_Nmap_buttonSkipDiscovery": "Passer la découverte d'hôtes",
"DevDetail_Nmap_buttonSkipDiscovery_text": "Passer la découverte d'hôtes (option -PN): scan par défaut sans découvert d'hôtes",
"DevDetail_Nmap_buttonSkipDiscovery_text": "Ignorer la découverte d'hôtes (option -PN) : scan par défaut sans découverte d'hôtes",
"DevDetail_Nmap_resultsLink": "Vous pouvez quitter cette page après lancement du scan. Les resultats seront aussi disponibles dans le fichier <code>app_front.log</code>.",
"DevDetail_Owner_hover": "Possesseur de l'appareil. Texte libre.",
"DevDetail_Periodselect_All": "Toutes les infos",
@@ -232,7 +234,7 @@
"Device_TableHead_FQDN": "Nom de domaine FQDN",
"Device_TableHead_Favorite": "Favori",
"Device_TableHead_FirstSession": "Première session",
"Device_TableHead_Flapping": "Flapping",
"Device_TableHead_Flapping": "Bagotage",
"Device_TableHead_GUID": "GUID",
"Device_TableHead_Group": "Groupe",
"Device_TableHead_IPv4": "IPv4",
@@ -247,8 +249,8 @@
"Device_TableHead_Name": "Nom",
"Device_TableHead_NetworkSite": "Site Réseau",
"Device_TableHead_Owner": "Propriétaire",
"Device_TableHead_ParentRelType": "Type de relation",
"Device_TableHead_Parent_MAC": "Nœud réseau principal",
"Device_TableHead_ParentRelType": "Relation",
"Device_TableHead_Parent_MAC": "Nœud principal",
"Device_TableHead_Port": "Port",
"Device_TableHead_PresentLastScan": "Présence",
"Device_TableHead_ReqNicsOnline": "Nécessite que l'interface réseau (NIC) soit connectée",
@@ -337,7 +339,7 @@
"Gen_Down": "En panne",
"Gen_Error": "Erreur",
"Gen_Filter": "Filtrer",
"Gen_Flapping": "Flapping",
"Gen_Flapping": "Bagotage",
"Gen_Generate": "Générer",
"Gen_InvalidMac": "Adresse MAC invalide.",
"Gen_Invalid_Value": "Une valeur invalide a été renseignée",
@@ -476,7 +478,7 @@
"Maintenance_Tool_del_unknowndev_noti_text": "Êtes-vous sûr de vouloir supprimer tous les appareils inconnus et sans nom trouvé?",
"Maintenance_Tool_del_unknowndev_text": "Avant d'utiliser cette fonction, veuillez effectuer une sauvegarde. La suppression ne peut pas être annulée. Tous les appareils nommés (inconnus) seront supprimés de la base de données.",
"Maintenance_Tool_del_unlockFields_selecteddev_text": "Cela va déverrouiller les champs verrouillés par l'utilisateur (LOCKED/USER) des appareils sélectionnés. Cette action ne peut pas être annulée.",
"Maintenance_Tool_displayed_columns_text": "Changer la visibilité et l'ordre des colonnes dans la page <a href=\"devices.php\"><b> <i class=\"fa fa-laptop\"></i>appareils</b></a> page.",
"Maintenance_Tool_displayed_columns_text": "Changer la visibilité et l'ordre des colonnes dans la page <a href=\"devices.php\"><b> <i class=\"fa fa-laptop\"></i>Appareils</b></a>.",
"Maintenance_Tool_drag_me": "Déplacez-moi pour réordonner les colonnes.",
"Maintenance_Tool_order_columns_text": "Maintenance_Tool_order_columns_text",
"Maintenance_Tool_purgebackup": "Supprimer les sauvegardes",
@@ -569,7 +571,7 @@
"Network_ManageEdit_Type_text": "-- Sélectionner le type --",
"Network_ManageLeaf": "Gérer l'assignation",
"Network_ManageUnassign": "Désassigner",
"Network_NoAssignedDevices": "Ce nœud réseau ne contient pas d'appareils assignés. Vous pouvez en assigner un ci-dessous, ou en allant dans l'onglet <b><i class=\"fa fa-info-circle\"></i> Détails</b> d'un appareil depuis le menu <a href=\"devices.php\"><b> <i class=\"fa fa-laptop\"></i> Appareils</b></a>, et assigner cet équipement à un <b><i class=\"fa fa-server\"></i> Nœud (MAC)</b> réseau et à un <b><i class=\"fa fa-ethernet\"></i>Port</b>.",
"Network_NoAssignedDevices": "Ce nœud réseau ne contient pas d'appareils assignés. Vous pouvez en assigner un ci-dessous, ou en allant dans l'onglet <b><i class=\"fa fa-info-circle\"></i>Détails</b> d'un appareil depuis le menu <a href=\"devices.php\"><b> <i class=\"fa fa-laptop\"></i>Appareils</b></a>, et assigner cet équipement à un <b><i class=\"fa fa-server\"></i>Nœud (MAC)</b> réseau et à un <b><i class=\"fa fa-ethernet\"></i>Port</b>.",
"Network_NoDevices": "Pas d'appareil à configurer",
"Network_Node": "Nœud réseau",
"Network_Node_Name": "Nom du nœud",

View File

@@ -66,6 +66,8 @@
"CustProps_cant_remove": "",
"DAYS_TO_KEEP_EVENTS_description": "",
"DAYS_TO_KEEP_EVENTS_name": "",
"DEEP_SLEEP_description": "",
"DEEP_SLEEP_name": "",
"DISCOVER_PLUGINS_description": "",
"DISCOVER_PLUGINS_name": "",
"DevDetail_Children_Title": "",

View File

@@ -66,6 +66,8 @@
"CustProps_cant_remove": "",
"DAYS_TO_KEEP_EVENTS_description": "",
"DAYS_TO_KEEP_EVENTS_name": "",
"DEEP_SLEEP_description": "",
"DEEP_SLEEP_name": "",
"DISCOVER_PLUGINS_description": "",
"DISCOVER_PLUGINS_name": "",
"DevDetail_Children_Title": "",

View File

@@ -66,6 +66,8 @@
"CustProps_cant_remove": "Impossibile rimuovere, è necessaria almeno una proprietà.",
"DAYS_TO_KEEP_EVENTS_description": "Questa è un'impostazione di manutenzione. Specifica il numero di giorni delle voci degli eventi che verranno conservati. Tutti gli eventi più vecchi verranno eliminati periodicamente. Si applica anche alla cronologia degli eventi del plugin (Plugin Events History).",
"DAYS_TO_KEEP_EVENTS_name": "Elimina eventi più vecchi di",
"DEEP_SLEEP_description": "Riduce l'utilizzo della CPU estendendo i tempi di attesa tra i cicli di elaborazione. Quando questa opzione è abilitata, le scansioni potrebbero subire ritardi fino a 1 minuto e l'interfaccia utente potrebbe risultare meno reattiva.",
"DEEP_SLEEP_name": "Sonno profondo",
"DISCOVER_PLUGINS_description": "Disattiva questa opzione per velocizzare l'inizializzazione e il salvataggio delle impostazioni. Quando è disattivata, i plugin non vengono scoperti e non puoi aggiungere nuovi plugin all'impostazione <code>LOADED_PLUGINS</code>.",
"DISCOVER_PLUGINS_name": "Scopri i plugin",
"DevDetail_Children_Title": "Relazioni tra figli",
@@ -247,7 +249,7 @@
"Device_TableHead_Name": "Nome",
"Device_TableHead_NetworkSite": "Sito di rete",
"Device_TableHead_Owner": "Proprietario",
"Device_TableHead_ParentRelType": "Tipo di relazione",
"Device_TableHead_ParentRelType": "Relazione",
"Device_TableHead_Parent_MAC": "Nodo principale",
"Device_TableHead_Port": "Porta",
"Device_TableHead_PresentLastScan": "Presenza",

View File

@@ -66,6 +66,8 @@
"CustProps_cant_remove": "削除できません。少なくとも1つのプロパティが必要です。",
"DAYS_TO_KEEP_EVENTS_description": "これはメンテナンス設定です。イベントエントリを保持する日数を指定します。それより古いイベントは定期的に削除されます。プラグインイベント履歴にも適用されます。",
"DAYS_TO_KEEP_EVENTS_name": "古いイベントの削除",
"DEEP_SLEEP_description": "",
"DEEP_SLEEP_name": "",
"DISCOVER_PLUGINS_description": "このオプションを無効にすると、初期化と設定の保存が高速化されます。無効にした場合、プラグインは検出されず、<code>LOADED_PLUGINS</code> 設定に新しいプラグインを追加することはできません。",
"DISCOVER_PLUGINS_name": "プラグインの検出",
"DevDetail_Children_Title": "親子関係",
@@ -806,4 +808,4 @@
"settings_system_label": "システム",
"settings_update_item_warning": "以下の値を更新してください。以前のフォーマットに従うよう注意してください。<b>検証は行われません。</b>",
"test_event_tooltip": "設定をテストする前に、まず変更を保存してください。"
}
}

View File

@@ -66,6 +66,8 @@
"CustProps_cant_remove": "",
"DAYS_TO_KEEP_EVENTS_description": "Dette er en vedlikeholdsinnstilling. Dette spesifiserer antall dager verdt med hendelsesoppføringer som vil beholdes. Alle eldre hendelser vil bli slettet med jevne mellomrom. Gjelder også for plugin-hendelseshistorikk.",
"DAYS_TO_KEEP_EVENTS_name": "Slett hendelser eldre enn",
"DEEP_SLEEP_description": "",
"DEEP_SLEEP_name": "",
"DISCOVER_PLUGINS_description": "",
"DISCOVER_PLUGINS_name": "",
"DevDetail_Children_Title": "",
@@ -806,4 +808,4 @@
"settings_system_label": "System",
"settings_update_item_warning": "Oppdater verdien nedenfor. Pass på å følge forrige format. <b>Validering etterpå utføres ikke.</b>",
"test_event_tooltip": "Lagre endringene først, før du tester innstillingene dine."
}
}

View File

@@ -66,6 +66,8 @@
"CustProps_cant_remove": "Nie można usunąć wymagana jest przynajmniej jedna właściwość.",
"DAYS_TO_KEEP_EVENTS_description": "To jest ustawienie konserwacyjne. Określa liczbę dni, przez które będą przechowywane wpisy zdarzeń. Wszystkie starsze zdarzenia będą okresowo usuwane. Dotyczy również Historii Zdarzeń Wtyczek.",
"DAYS_TO_KEEP_EVENTS_name": "Usuń zdarzenia starsze niż",
"DEEP_SLEEP_description": "",
"DEEP_SLEEP_name": "",
"DISCOVER_PLUGINS_description": "Wyłącz tę opcję, aby przyspieszyć inicjalizację i zapisywanie ustawień. Po wyłączeniu wtyczki nie są wykrywane i nie można dodawać nowych wtyczek do ustawienia <code>LOADED_PLUGINS</code>.",
"DISCOVER_PLUGINS_name": "Wykryj wtyczki",
"DevDetail_Children_Title": "",
@@ -806,4 +808,4 @@
"settings_system_label": "System",
"settings_update_item_warning": "Zaktualizuj wartość poniżej. Uważaj, aby zachować poprzedni format. <b>Walidacja nie jest wykonywana.</b>",
"test_event_tooltip": "Najpierw zapisz swoje zmiany, zanim przetestujesz ustawienia."
}
}

View File

@@ -66,6 +66,8 @@
"CustProps_cant_remove": "Não é possível remover, é necessária pelo menos uma propriedade.",
"DAYS_TO_KEEP_EVENTS_description": "Esta é uma definição de manutenção. Especifica o número de dias de entradas de eventos que serão mantidas. Todos os eventos mais antigos serão eliminados periodicamente. Também se aplica ao Histórico de eventos do plug-in.",
"DAYS_TO_KEEP_EVENTS_name": "Excluir eventos mais antigos que",
"DEEP_SLEEP_description": "",
"DEEP_SLEEP_name": "",
"DISCOVER_PLUGINS_description": "Desative esta opção para acelerar a inicialização e a gravação de definições. Quando desativada, os plug-ins não são descobertos e não é possível adicionar novos plug-ins à definição<code>LOADED_PLUGINS</code>.",
"DISCOVER_PLUGINS_name": "Descobrir plugins",
"DevDetail_Children_Title": "",
@@ -806,4 +808,4 @@
"settings_system_label": "",
"settings_update_item_warning": "",
"test_event_tooltip": "Guarde as alterações antes de testar as definições."
}
}

View File

@@ -66,6 +66,8 @@
"CustProps_cant_remove": "Não é possível remover, é necessária pelo menos uma propriedade.",
"DAYS_TO_KEEP_EVENTS_description": "Esta é uma definição de manutenção. Especifica o número de dias de entradas de eventos que serão mantidas. Todos os eventos mais antigos serão apagados periodicamente. Também se aplica ao Histórico de eventos do plug-in.",
"DAYS_TO_KEEP_EVENTS_name": "Apagar eventos mais antigos que",
"DEEP_SLEEP_description": "",
"DEEP_SLEEP_name": "",
"DISCOVER_PLUGINS_description": "Desative esta opção para acelerar a inicialização e a gravação de definições. Quando desativada, os plug-ins não são descobertos e não é possível adicionar novos plug-ins à definição<code>LOADED_PLUGINS</code>.",
"DISCOVER_PLUGINS_name": "Descobrir plugins",
"DevDetail_Children_Title": "Relacionamentos de crianças",
@@ -806,4 +808,4 @@
"settings_system_label": "",
"settings_update_item_warning": "",
"test_event_tooltip": "Guarde as alterações antes de testar as definições."
}
}

View File

@@ -66,6 +66,8 @@
"CustProps_cant_remove": "Невозможно удалить, необходимо хотя бы одно свойство.",
"DAYS_TO_KEEP_EVENTS_description": "Это настройка обслуживания. Здесь указывается количество дней, в течение которых будут храниться записи о событиях. Все старые события будут периодически удаляться. Также применимо к истории событий плагина.",
"DAYS_TO_KEEP_EVENTS_name": "Удалить события старше",
"DEEP_SLEEP_description": "Снижает нагрузку на процессор за счет увеличения времени ожидания между циклами обработки. При включении, сканирование может быть отложено до 1 минуты, а пользовательский интерфейс может стать менее отзывчивым.",
"DEEP_SLEEP_name": "Глубокий сон",
"DISCOVER_PLUGINS_description": "Отключите эту опцию, чтобы ускорить инициализацию и сохранение настроек. При отключении этой опции плагины не обнаруживаются, и вы не можете добавлять новые плагины в параметр <code>LOADED_PLUGINS</code>.",
"DISCOVER_PLUGINS_name": "Обзор плагинов",
"DevDetail_Children_Title": "Дочерние отношения",
@@ -247,8 +249,8 @@
"Device_TableHead_Name": "Имя",
"Device_TableHead_NetworkSite": "Сайт устройства",
"Device_TableHead_Owner": "Владелец",
"Device_TableHead_ParentRelType": "Тип отношений",
"Device_TableHead_Parent_MAC": "Родительский узел сети",
"Device_TableHead_ParentRelType": "Отношения",
"Device_TableHead_Parent_MAC": "Родительский узел",
"Device_TableHead_Port": "Порт",
"Device_TableHead_PresentLastScan": "Присутствие",
"Device_TableHead_ReqNicsOnline": "Требуется NIC онлайн",

View File

@@ -66,6 +66,8 @@
"CustProps_cant_remove": "",
"DAYS_TO_KEEP_EVENTS_description": "",
"DAYS_TO_KEEP_EVENTS_name": "",
"DEEP_SLEEP_description": "",
"DEEP_SLEEP_name": "",
"DISCOVER_PLUGINS_description": "",
"DISCOVER_PLUGINS_name": "",
"DevDetail_Children_Title": "",

View File

@@ -66,6 +66,8 @@
"CustProps_cant_remove": "Kaldırılamaz, en az bir özellik gereklidir.",
"DAYS_TO_KEEP_EVENTS_description": "Bu bir bakım ayarıdır. Bu, saklanacak olay girişlerinin gün cinsinden sayısını belirtir. Daha eski tüm olaylar periyodik olarak silinecektir. Ayrıca Eklenti Olay Geçmişi üzerinde de geçerlidir.",
"DAYS_TO_KEEP_EVENTS_name": "Şu tarihten eski olayları sil",
"DEEP_SLEEP_description": "",
"DEEP_SLEEP_name": "",
"DISCOVER_PLUGINS_description": "Bu seçeneği devre dışı bırakmak, başlatma süresini ve ayarların kaydedilmesini hızlandırır. Devre dışı bırakıldığında, eklentiler keşfedilmez ve <code>LOADED_PLUGINS</code> ayarına yeni eklentiler eklenemez.",
"DISCOVER_PLUGINS_name": "Eklentileri keşfet",
"DevDetail_Children_Title": "",
@@ -806,4 +808,4 @@
"settings_system_label": "Sistem",
"settings_update_item_warning": "",
"test_event_tooltip": ""
}
}

View File

@@ -66,6 +66,8 @@
"CustProps_cant_remove": "Неможливо видалити, потрібна принаймні одна властивість.",
"DAYS_TO_KEEP_EVENTS_description": "Це налаштування обслуговування. Це визначає кількість днів записів про події, які зберігатимуться. Усі старіші події періодично видалятимуться. Також застосовується до історії подій плагінів.",
"DAYS_TO_KEEP_EVENTS_name": "Видалити події, старші за",
"DEEP_SLEEP_description": "",
"DEEP_SLEEP_name": "",
"DISCOVER_PLUGINS_description": "Вимкніть цю опцію, щоб прискорити ініціалізацію та збереження налаштувань. Якщо вимкнено, плагіни не виявляються, і ви не можете додавати нові плагіни до параметра <code>LOADED_PLUGINS</code>.",
"DISCOVER_PLUGINS_name": "Відкрийте для себе плагіни",
"DevDetail_Children_Title": "Стосунки з дітьми",
@@ -806,4 +808,4 @@
"settings_system_label": "Система",
"settings_update_item_warning": "Оновіть значення нижче. Слідкуйте за попереднім форматом. <b>Перевірка не виконана.</b>",
"test_event_tooltip": "Перш ніж перевіряти налаштування, збережіть зміни."
}
}

View File

@@ -66,6 +66,8 @@
"CustProps_cant_remove": "",
"DAYS_TO_KEEP_EVENTS_description": "",
"DAYS_TO_KEEP_EVENTS_name": "",
"DEEP_SLEEP_description": "",
"DEEP_SLEEP_name": "",
"DISCOVER_PLUGINS_description": "",
"DISCOVER_PLUGINS_name": "",
"DevDetail_Children_Title": "",

View File

@@ -66,6 +66,8 @@
"CustProps_cant_remove": "无法移除,至少需要保留一个属性。",
"DAYS_TO_KEEP_EVENTS_description": "这是维护设置。它指定将保留的事件条目的天数。所有较旧的事件将被定期删除。也适用于插件事件历史记录。",
"DAYS_TO_KEEP_EVENTS_name": "删除早于",
"DEEP_SLEEP_description": "",
"DEEP_SLEEP_name": "",
"DISCOVER_PLUGINS_description": "禁用此选项可加快初始化和设置保存的速度。当禁用时,插件不会被发现,并且您无法将新插件添加到 <code>LOADED_PLUGINS</code>设置中。",
"DISCOVER_PLUGINS_name": "发现插件",
"DevDetail_Children_Title": "子代关系",
@@ -806,4 +808,4 @@
"settings_system_label": "系统",
"settings_update_item_warning": "更新下面的值。请注意遵循先前的格式。<b>未执行验证。</b>",
"test_event_tooltip": "在测试设置之前,请先保存更改。"
}
}

View File

@@ -19,6 +19,7 @@ __author__ = "xfilo"
__version__ = 0.1 # Initial version
__version__ = 0.2 # Rephrased error messages, improved logging and code logic
__version__ = 0.3 # Refactored data collection into a class, improved code clarity with comments
__version__ = 0.4 # Fix for https://github.com/netalertx/NetAlertX/issues/1595 - Omada Controller versions >= 6.2.0.0 removed the v1 clients endpoint
import os
import sys
@@ -26,9 +27,11 @@ import urllib3
import requests
import time
import pytz
import operator
from datetime import datetime
from typing import Literal, Any, Dict
from packaging.version import Version, InvalidVersion
# Define the installation path and extend the system path for plugin imports
INSTALL_PATH = os.getenv('NETALERTX_APP', '/app')
@@ -220,6 +223,40 @@ class OmadaHelper:
msg = f"Failed normalizing {input_type}(s) from site '{site_name}' - error: {str(ex)}"
OmadaHelper.verbose(msg)
return OmadaHelper.response("error", msg)
@staticmethod
def version_check(version, base: str, op: str = ">=") -> bool:
"""
Compare versions using PEP 440 semantics.
Supports int and str inputs.
"""
ops = {
"==": operator.eq,
"!=": operator.ne,
">": operator.gt,
">=": operator.ge,
"<": operator.lt,
"<=": operator.le,
}
if op not in ops:
raise ValueError("Unsupported operator")
def to_version(v):
if isinstance(v, int):
return Version(str(v))
if isinstance(v, str):
try:
return Version(v)
except InvalidVersion:
# fallback: treat invalid versions as 0
return Version("0")
raise TypeError("version/base must be int or str")
v = to_version(version)
b = to_version(base)
return ops[op](v, b)
class OmadaAPI:
@@ -259,6 +296,7 @@ class OmadaAPI:
self.active_sites_dict = {}
self.access_token = None
self.refresh_token = None
self.controller_version = None
OmadaHelper.verbose("OmadaAPI initialized")
@@ -328,11 +366,57 @@ class OmadaAPI:
OmadaHelper.debug(f"Authentication response: {response}")
return OmadaHelper.response("error", f"Authentication failed - error: {response.get('response_message', 'Not provided')}")
def get_controller_status(self) -> Dict[str, Any]:
"""Make an endpoint request to get controller status."""
OmadaHelper.verbose(f"Retrieving controller status for CID: {getattr(self, 'omada_id')}")
endpoint = f"/openapi/v1/{getattr(self, 'omada_id')}/system/setting/controller-status"
response = self._make_request("GET", endpoint)
if response.get("response_type") == "success":
response_result = response.get("response_result") or {}
result = response_result.get("result") or {}
self.controller_version = result.get("controllerVersion")
if not self.controller_version:
self.controller_version = None
OmadaHelper.debug(f"Controller status: {response}")
return OmadaHelper.response("error", "Controller status response did not include controllerVersion")
else:
return OmadaHelper.response("success", "Successfully retrieved controller status")
OmadaHelper.debug(f"Controller status: {response}")
return OmadaHelper.response("error", "Failed to call controller status endpoint")
def get_clients(self, site_id: str) -> Dict[str, Any]:
"""Make an endpoint request to get all online clients on a site."""
OmadaHelper.verbose(f"Retrieving clients for site: {site_id}")
endpoint = f"/openapi/v1/{getattr(self, 'omada_id')}/sites/{site_id}/clients?page=1&pageSize={getattr(self, 'page_size')}"
return self._make_request("GET", endpoint)
page_size = getattr(self, 'page_size')
omada_id = getattr(self, 'omada_id')
def call_v2():
endpoint = f"/openapi/v2/{omada_id}/sites/{site_id}/clients"
payload = {
"page": 1,
"pageSize": page_size,
"scope": 1
}
return self._make_request("POST", endpoint, json=payload)
def call_v1():
endpoint = f"/openapi/v1/{omada_id}/sites/{site_id}/clients?page=1&pageSize={page_size}"
return self._make_request("GET", endpoint)
if self.controller_version is None:
OmadaHelper.verbose("Controller version unknown, trying v2 then v1")
resp = call_v2()
if resp and resp.get("response_type") == "success":
return resp
return call_v1()
if OmadaHelper.version_check(self.controller_version, "6.2.0.0", ">="):
return call_v2()
return call_v1()
def get_devices(self, site_id: str) -> Dict[str, Any]:
"""Make an endpoint request to get all online devices on a site."""
@@ -454,6 +538,13 @@ class OmadaData:
OmadaHelper.minimal("Authentication failed, aborting data collection")
OmadaHelper.debug(f"{auth_result['response_message']}")
return plugin_objects
# Controller status
status_result = omada_api.get_controller_status()
if status_result["response_type"] == "error":
OmadaHelper.verbose(f"Controller version lookup failed: {status_result['response_message']}")
else:
OmadaHelper.verbose(f"Controller version: {omada_api.controller_version}")
# Populate sites
sites_result = omada_api.populate_sites()

View File

@@ -456,7 +456,7 @@
"description": [
{
"language_code": "en_us",
"string": "Columns and their order that are shown on the Devices page. Drag and drop the order of columns, click <code>x</code> to remove columns. You can also click into the field to selectivelly add fields. The <code>Name</code> and <code>Status</code> fields are required."
"string": "Columns and their order that are shown on the Devices page. Drag and drop to order the columns, click <code>x</code> to remove columns. You can also click into the field to selectivelly add fields. The <code>Name</code> and <code>Status</code> fields are required."
}
]
},
@@ -535,7 +535,7 @@
"description": [
{
"language_code": "en_us",
"string": "Which column filters should be displayed in the main Devices screen. Remove all to hide the Filters section."
"string": "Column filters that should be displayed in the main Devices screen. Drag and drop to change the order. Remove all to hide the Filters section."
}
]
},

View File

@@ -27,7 +27,7 @@ from logger import mylog
from helper import filePermissions
from utils.datetime_utils import timeNowUTC
from app_state import updateState
from api import update_api
from api import update_api, check_activity
from scan.session_events import process_scan
from initialise import importConfigs, renameSettings
from database import DB
@@ -262,7 +262,25 @@ def main():
update_api(db, all_plugins, True, ["devices"], userUpdatedDevices)
# loop
time.sleep(5) # wait for N seconds
# ------------------------------------------------------------------
# Dynamic sleep (energy saving)
# ------------------------------------------------------------------
if conf.DEEP_SLEEP:
is_active = check_activity()
if is_active:
mylog("debug", ["[DEEP_SLEEP] Active Cycle"])
time.sleep(5)
else:
mylog("debug", ["[DEEP_SLEEP] Passive Cycle"])
for _ in range(3):
if check_activity():
break
time.sleep(20)
else:
time.sleep(5)
# ===============================================================================

View File

@@ -251,3 +251,31 @@ def stop_periodic_write():
periodic_write_thread.join()
periodic_write_running = False
mylog("trace", ["[API] periodic_write thread stopped."])
def check_activity():
"""
Check for active TCP connections on the host.
Reads `/proc/net/tcp` and looks for entries in the ESTABLISHED state
(state code `01`). If any are found, the system is considered "active",
typically indicating interaction via the web UI or API.
Returns:
bool: True if at least one established TCP connection exists,
False otherwise or if the check fails.
Notes:
- Linux-only: relies on `/proc/net/tcp`.
- Lightweight heuristic; does not distinguish connection origin
(e.g., UI vs other services).
- Fail-safe: returns False on any read/parse error.
"""
try:
with open("/proc/net/tcp", "r") as f:
for line in f:
if " 01 " in line: # ESTABLISHED
return True
except:
pass
return False

View File

@@ -246,6 +246,15 @@ def importConfigs(pm, db, all_plugins):
"[]",
"General",
)
conf.DEEP_SLEEP = ccd(
"DEEP_SLEEP",
False,
c_d,
"Deep Sleep",
"""{"dataType": "boolean","elements": [{"elementType": "input","elementOptions": [{ "type": "checkbox" }],"transformers": []}]}""",
"[]",
"General",
)
conf.DISCOVER_PLUGINS = ccd(
"DISCOVER_PLUGINS",
True,