Compare commits

...

50 Commits

Author SHA1 Message Date
jokob-sk
4ee652cfda Merge branch 'main' of https://github.com/jokob-sk/NetAlertX
Some checks failed
Code checks / check-url-paths (push) Has been cancelled
docker / docker_dev (push) Has been cancelled
Deploy MkDocs / deploy (push) Has been cancelled
2025-07-30 22:31:55 +10:00
jokob-sk
abaffa4042 better Apprise settings description 2025-07-30 22:31:38 +10:00
Hosted Weblate
ad4b5d7c64 Merge branch 'origin/main' into Weblate. 2025-07-30 13:59:20 +02:00
Максим Горпиніч
3b38476c5a Translated using Weblate (Ukrainian)
Currently translated at 100.0% (758 of 758 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/uk/
2025-07-30 13:59:17 +02:00
jokob-sk
a42f6a20e4 Merge branch 'main' of https://github.com/jokob-sk/NetAlertX 2025-07-30 21:58:37 +10:00
jokob-sk
da2afb2fb7 code refactor 2025-07-30 21:58:31 +10:00
Hosted Weblate
dda0d6a898 Merge branch 'origin/main' into Weblate.
Some checks failed
Code checks / check-url-paths (push) Has been cancelled
docker / docker_dev (push) Has been cancelled
Deploy MkDocs / deploy (push) Has been cancelled
2025-07-29 23:45:45 +00:00
jokob-sk
36068aaf77 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.8% (755 of 756 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/zh_Hans/
2025-07-29 23:45:43 +00:00
Safeguard
3cb65fa4ec Translated using Weblate (Russian)
Currently translated at 91.9% (695 of 756 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/ru/
2025-07-29 23:45:42 +00:00
jokob-sk
26cc757f75 Merge branch 'main' of https://github.com/jokob-sk/NetAlertX 2025-07-30 09:31:39 +10:00
jokob-sk
2337f96685 Available Ips in System Info #1127 2025-07-30 09:31:34 +10:00
Hosted Weblate
82ec3b239e Merge branch 'origin/main' into Weblate.
Some checks failed
Code checks / check-url-paths (push) Has been cancelled
docker / docker_dev (push) Has been cancelled
Deploy MkDocs / deploy (push) Has been cancelled
2025-07-29 12:09:14 +02:00
jokob-sk
aa72b0216d Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 92.0% (696 of 756 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/zh_Hans/
2025-07-29 12:09:13 +02:00
jokob-sk
b002bc34ac Merge branch 'main' of https://github.com/jokob-sk/NetAlertX 2025-07-29 20:01:58 +10:00
jokob-sk
a84f0d4faf cache fix on details page, small css fixes 2025-07-29 20:01:50 +10:00
Hosted Weblate
a9715cb087 Merge branch 'origin/main' into Weblate.
Some checks failed
Code checks / check-url-paths (push) Has been cancelled
docker / docker_dev (push) Has been cancelled
Deploy MkDocs / deploy (push) Has been cancelled
2025-07-28 23:27:47 +02:00
Marco Rios
827b0d15d1 Translated using Weblate (Spanish)
Currently translated at 100.0% (756 of 756 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/es/
2025-07-28 23:27:46 +02:00
jokob-sk
4b4b2f914f Merge branch 'main' of https://github.com/jokob-sk/NetAlertX 2025-07-29 07:25:26 +10:00
jokob-sk
bf679cdc5d strings cleanup, small fixes 2025-07-29 07:25:22 +10:00
Jokob @NetAlertX
4c430c6d5d Merge pull request #1123 from dougmaitelli/feat/apprise-tag
Add support for Apprise Tags
2025-07-29 07:22:24 +10:00
Максим Горпиніч
905279aabe Translated using Weblate (Ukrainian)
Some checks failed
Code checks / check-url-paths (push) Has been cancelled
docker / docker_dev (push) Has been cancelled
Deploy MkDocs / deploy (push) Has been cancelled
Currently translated at 100.0% (756 of 756 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/uk/
2025-07-28 08:02:18 +02:00
Massimo Pissarello
d92a5da029 Translated using Weblate (Italian)
Currently translated at 100.0% (756 of 756 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/it/
2025-07-28 08:02:16 +02:00
Sylvain Pichon
a3a27fc27a Translated using Weblate (French)
Currently translated at 100.0% (756 of 756 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/fr/
2025-07-28 08:02:14 +02:00
Douglas Maitelli
0d6bc71d2b Review comments 2025-07-28 00:29:14 +00:00
Douglas Maitelli
41397be1bd Review comments 2025-07-27 23:09:48 +00:00
Douglas Maitelli
8fbcb07267 Review comments 2025-07-27 23:09:20 +00:00
Douglas Maitelli
3c18540c8c Add support for Apprise Tags 2025-07-27 22:35:04 +00:00
Douglas Maitelli
ab9c940d01 Add support for Apprise Tags 2025-07-27 22:29:19 +00:00
Hosted Weblate
7e573282d0 Merge branch 'origin/main' into Weblate.
Some checks failed
Code checks / check-url-paths (push) Has been cancelled
docker / docker_dev (push) Has been cancelled
Deploy MkDocs / deploy (push) Has been cancelled
2025-07-27 01:42:30 +00:00
jokob-sk
d08368e4f5 net devices fix 2025-07-27 11:26:12 +10:00
Hosted Weblate
2c1718bb0e Merge branch 'origin/main' into Weblate. 2025-07-27 01:22:48 +00:00
Deleted User
5a0bf03b81 Translated using Weblate (Ukrainian)
Currently translated at 92.7% (701 of 756 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/uk/
2025-07-27 01:22:46 +00:00
anton garcias
6978c9446c Translated using Weblate (Catalan)
Currently translated at 90.0% (681 of 756 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/ca/
2025-07-27 01:22:45 +00:00
HAMAD ABDULLA
d3fd160cf3 Translated using Weblate (Arabic)
Currently translated at 89.9% (680 of 756 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/ar/
2025-07-27 01:22:44 +00:00
Ondřej Karaffa
c3421c8699 Translated using Weblate (Czech)
Currently translated at 7.1% (54 of 756 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/cs/
2025-07-27 01:22:43 +00:00
blomusti
0a3ebc931b Translated using Weblate (Turkish)
Currently translated at 60.4% (457 of 756 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/tr/
2025-07-27 01:22:42 +00:00
Ptsa Daniel
83c593a1e2 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 92.7% (701 of 756 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/zh_Hans/
2025-07-27 01:22:41 +00:00
Adam Stańczyk
60c812327a Translated using Weblate (Polish)
Currently translated at 91.2% (690 of 756 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/pl/
2025-07-27 01:22:40 +00:00
Cesar Osvaldo Müller
d27ba5c046 Translated using Weblate (Portuguese (Brazil))
Currently translated at 53.5% (405 of 756 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/pt_BR/
2025-07-27 01:22:39 +00:00
Massimo Pissarello
120a88d12d Translated using Weblate (Italian)
Currently translated at 92.5% (700 of 756 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/it/
2025-07-27 01:22:38 +00:00
Safeguard
054df2ed79 Translated using Weblate (Russian)
Currently translated at 91.2% (690 of 756 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/ru/
2025-07-27 01:22:37 +00:00
Marcus Isdahl
94240f61ca Translated using Weblate (Norwegian Bokmål)
Currently translated at 74.4% (563 of 756 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/nb_NO/
2025-07-27 01:22:36 +00:00
BlueTurtle
9c77a25d9a Translated using Weblate (French)
Currently translated at 92.7% (701 of 756 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/fr/
2025-07-27 01:22:35 +00:00
Anonymous
7819f2774c Translated using Weblate (Spanish)
Currently translated at 89.0% (673 of 756 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/es/
2025-07-27 01:22:34 +00:00
Ettore Atalan
a07bdd7469 Translated using Weblate (German)
Currently translated at 82.4% (623 of 756 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/de/
2025-07-27 01:22:32 +00:00
jokob-sk
68c3712539 Merge branch 'main' of https://github.com/jokob-sk/NetAlertX 2025-07-27 11:16:58 +10:00
jokob-sk
be5fc6dccb css fixes, removal of ionicons 2025-07-27 11:16:35 +10:00
Hosted Weblate
414110e575 Merge branch 'origin/main' into Weblate. 2025-07-26 23:02:37 +00:00
Sylvain Pichon
bd641273ff Translated using Weblate (French)
Currently translated at 100.0% (755 of 755 strings)

Translation: NetAlertX/core
Translate-URL: https://hosted.weblate.org/projects/pialert/core/fr/
2025-07-26 23:02:35 +00:00
jokob-sk
404a97fb89 network devices list, strings cleanup 2025-07-27 08:58:54 +10:00
48 changed files with 2648 additions and 2493 deletions

View File

@@ -2101,7 +2101,12 @@ input[readonly] {
transition: opacity 0.3s ease-in-out;
pointer-events: none;
display: block;
z-index: 999;
z-index: 800;
}
.fa-spinner
{
font-size: initial;
}
#loadingSpinner.visible {

View File

@@ -659,8 +659,14 @@ input[type="password"]::-webkit-caps-lock-indicator {
border-color: #888888;
}
.table-hover tbody tr:hover td, .table-hover tbody tr:hover th {
background-color: rgb(189,192,198);
color: #444;
background-color: var(--datatable-bgcolor);
color: var(--fbc-white);
}
table.dataTable tbody tr.selected, table.dataTable tbody tr .selected
{
background-color: var(--datatable-bgcolor);
color: var(--fbc-white);
}
.db_info_table_cell:nth-child(1) {background: #272c30}

View File

@@ -20,7 +20,7 @@
--color-yellow: #f39c12;
--color-red: #dd4b39;
--color-gray: #8c8c8c;
}
}
:root {
--datatable-bgcolor: rgba(64, 76, 88, 0.8);

View File

@@ -225,13 +225,6 @@ switch ($UI_THEME) {
var selectedTab = 'tabDetails';
var emptyArr = ['undefined', "", undefined, null];
// Call renderSmallBoxes, then main
(async () => {
await renderSmallBoxes();
main();
})();
// -----------------------------------------------------------------------------
function main () {
@@ -299,17 +292,32 @@ function recordSwitch(direction) {
function updateChevrons(currentMac) {
const devicesList = getDevicesList();
// Find the index of the device by MAC
pos = devicesList.findIndex(item => item.devMac == currentMac);
pos = devicesList.findIndex(item => item.devMac === currentMac);
// If device not found, optionally add it or handle error
if (pos === -1) {
// If you want to add a placeholder or handle missing device:
// devicesList.push({ mac: currentMac, name: 'Unknown', type: 'Unknown' });
// pos = devicesList.length - 1;
console.warn('Device not found in cache. Re-caching devices...', currentMac);
showSpinner();
cacheDevices().then(() => {
hideSpinner();
// Retry after re-caching
const refreshedList = getDevicesList();
pos = refreshedList.findIndex(item => item.devMac === currentMac);
if (pos === -1) {
console.error('Still not found after re-cache:', currentMac);
return;
}
console.log('Device found after re-cache:', refreshedList[pos]);
// Proceed with using `refreshedList[pos]`
}).catch((err) => {
hideSpinner();
console.error('Failed to cache devices:', err);
});
// Or just return early if device not found
console.warn('Device with MAC not found:', currentMac);
return;
}
@@ -345,7 +353,7 @@ function performSwitch(direction)
// Update the global position in the devices list variable 'pos'
if (direction === "next") {
console.log("direction" + direction);
console.log("direction:" + direction);
if (pos < devicesList.length) {
pos++;
@@ -485,34 +493,58 @@ async function renderSmallBoxes() {
}
function updateDevicePageName(mac) {
let name = getDevDataByMac(mac, "devName");
let owner = getDevDataByMac(mac, "devOwner");
name = getDevDataByMac(mac, "devName")
owner = getDevDataByMac(mac, "devOwner")
// If data is missing, re-cache and retry once
if (name === "Unknown" || owner === "Unknown") {
console.warn("Device not found in cache, retrying after re-cache:", mac);
showSpinner();
cacheDevices().then(() => {
hideSpinner();
// Retry after successful cache
updateDevicePageName(mac);
}).catch((err) => {
hideSpinner();
console.error("Failed to refresh devices:", err);
});
return; // Exit early to avoid showing bad data
}
// Page title - Name
if (mac == "new") {
$('#pageTitle').html(`<i title="${getString("Gen_create_new_device")}" class="fa fa-square-plus"></i> ` + getString("Gen_create_new_device"));
$('#devicePageInfoPlc .inner').html(`<i class="fa fa-circle-info"></i> ` + getString("Gen_create_new_device_info"));
$('#devicePageInfoPlc').show();
} else if (owner == null || owner == '' ||
(name.toString()).indexOf(owner) != -1) {
$('#pageTitle').html(name);
$('#devicePageInfoPlc').hide();
$('#pageTitle').html(
`<i title="${getString("Gen_create_new_device")}" class="fa fa-square-plus"></i> ` + getString("Gen_create_new_device")
);
$('#devicePageInfoPlc .inner').html(
`<i class="fa fa-circle-info"></i> ` + getString("Gen_create_new_device_info")
);
$('#devicePageInfoPlc').show();
} else if (!owner || (name.toString()).indexOf(owner) !== -1) {
$('#pageTitle').html(name);
$('#devicePageInfoPlc').hide();
} else {
$('#pageTitle').html(name + ' (' + owner + ')');
$('#devicePageInfoPlc').hide();
$('#pageTitle').html(name + ' (' + owner + ')');
$('#devicePageInfoPlc').hide();
}
}
//-----------------------------------------------------------------------------------
// Call renderSmallBoxes, then main
(async () => {
await renderSmallBoxes();
main();
})();
window.onload = function async()
{
initializeTabs();
updateChevrons(mac);
updateDevicePageName(mac);
}
</script>

View File

@@ -110,7 +110,7 @@ function initializeEventsDatatable (eventsRows) {
'processing' : true,
'language' : {
processing: '<table><td width="130px" align="middle"><?= lang("DevDetail_Loading");?></td>'+
'<td><i class="ion ion-ios-loop-strong fa-spin fa-2x fa-fw"></i></td></table>',
'<td><i class="fa-solid fa-spinner fa-spin-pulse"></i></td></table>',
emptyTable: 'No data',
"lengthMenu": "<?= lang('Events_Tablelenght');?>",
"search": "<?= lang('Events_Searchbox');?>: ",

View File

@@ -74,7 +74,7 @@ function initializeSessionsDatatable (sessionsRows) {
'processing' : true,
'language' : {
processing: '<table><td width="130px" align="middle"><?= lang("DevDetail_Loading");?></td>'+
'<td><i class="ion ion-ios-loop-strong fa-spin fa-2x fa-fw">'+
'<td><i class="fa-solid fa-spinner fa-spin-pulse"></i>'+
'</td></table>',
emptyTable: 'No data',
"lengthMenu": "<?= lang('Events_Tablelenght');?>",

View File

@@ -148,10 +148,7 @@ function main () {
//initialize the table headers in the correct order
var availableColumns = getSettingOptions("UI_device_columns").split(",");
headersDefaultOrder = availableColumns.map(val => getString(val));
console.log(headersDefaultOrder);
headersDefaultOrder = availableColumns.map(val => getString(val));
var selectedColumns = JSON.parse(getSetting("UI_device_columns").replace(/'/g, '"'));
@@ -266,14 +263,16 @@ function getDevicesTotals() {
function processDeviceTotals(devicesData) {
// Define filter conditions and corresponding objects
const filters = [
{ status: 'my_devices', color: 'bg-aqua', label: getString('Device_Shortcut_AllDevices'), icon: 'fa-laptop' },
{ status: 'all', color: 'bg-aqua', label: getString('Gen_All_Devices'), icon: 'fa-laptop' },
{ status: 'connected', color: 'bg-green', label: getString('Device_Shortcut_Connected'), icon: 'fa-plug' },
{ status: 'favorites', color: 'bg-yellow', label: getString('Device_Shortcut_Favorites'), icon: 'fa-star' },
{ status: 'new', color: 'bg-yellow', label: getString('Device_Shortcut_NewDevices'), icon: 'fa-plus' },
{ status: 'down', color: 'bg-red', label: getString('Device_Shortcut_DownOnly'), icon: 'fa-warning' },
{ status: 'archived', color: 'bg-gray', label: getString('Device_Shortcut_Archived'), icon: 'fa-eye-slash' },
{ status: 'offline', color: 'bg-gray', label: getString('Gen_Offline'), icon: 'fa-xmark' }
{ status: 'my_devices', color: 'bg-aqua', label: getString('Device_Shortcut_AllDevices'), icon: 'fa-laptop' },
{ status: 'all', color: 'bg-aqua', label: getString('Gen_All_Devices'), icon: 'fa-laptop' },
{ status: 'connected', color: 'bg-green', label: getString('Device_Shortcut_Connected'), icon: 'fa-plug' },
{ status: 'favorites', color: 'bg-yellow', label: getString('Device_Shortcut_Favorites'), icon: 'fa-star' },
{ status: 'new', color: 'bg-yellow', label: getString('Device_Shortcut_NewDevices'), icon: 'fa-plus' },
{ status: 'down', color: 'bg-red', label: getString('Device_Shortcut_DownOnly'), icon: 'fa-warning' },
{ status: 'archived', color: 'bg-gray', label: getString('Device_Shortcut_Archived'), icon: 'fa-eye-slash' },
{ status: 'offline', color: 'bg-gray', label: getString('Gen_Offline'), icon: 'fa-xmark' },
{ status: 'all_devices', color: 'bg-gray', label: getString('Gen_All_Devices'), icon: 'fa-laptop' },
{ status: 'network_devices', color: 'bg-aqua', label: getString('Network_Devices'), icon: 'fa-sitemap fa-rotate-270' }
];
// Initialize an empty array to store the final objects
@@ -299,13 +298,7 @@ function processDeviceTotals(devicesData) {
}
});
// Render info boxes/tile cards
console.log(getSetting('UI_hide_empty'));
console.log(dataArray);
console.log(devicesData);
// Render info boxes/tile cards
renderInfoboxes(dataArray);
}
@@ -357,8 +350,6 @@ function initFilters() {
// Clear any existing filters in the DOM
$('#columnFilters').empty();
console.log(displayedFilters);
// Ensure displayedFilters is an array and not empty
if (Array.isArray(displayedFilters) && displayedFilters.length > 0) {
$('#columnFiltersWrap').removeClass("hidden");
@@ -564,15 +555,17 @@ function initializeDatatable (status) {
// Define color & title for the status selected
switch (deviceStatus) {
case 'my_devices': tableTitle = getString('Device_Shortcut_AllDevices'); color = 'aqua'; break;
case 'connected': tableTitle = getString('Device_Shortcut_Connected'); color = 'green'; break;
case 'all': tableTitle = getString('Gen_All_Devices'); color = 'aqua'; break;
case 'favorites': tableTitle = getString('Device_Shortcut_Favorites'); color = 'yellow'; break;
case 'new': tableTitle = getString('Device_Shortcut_NewDevices'); color = 'yellow'; break;
case 'down': tableTitle = getString('Device_Shortcut_DownOnly'); color = 'red'; break;
case 'archived': tableTitle = getString('Device_Shortcut_Archived'); color = 'gray'; break;
case 'offline': tableTitle = getString('Gen_Offline'); color = 'gray'; break;
default: tableTitle = getString('Device_Shortcut_Devices'); color = 'gray'; break;
case 'my_devices': tableTitle = getString('Device_Shortcut_AllDevices'); color = 'aqua'; break;
case 'connected': tableTitle = getString('Device_Shortcut_Connected'); color = 'green'; break;
case 'all': tableTitle = getString('Gen_All_Devices'); color = 'aqua'; break;
case 'favorites': tableTitle = getString('Device_Shortcut_Favorites'); color = 'yellow'; break;
case 'new': tableTitle = getString('Device_Shortcut_NewDevices'); color = 'yellow'; break;
case 'down': tableTitle = getString('Device_Shortcut_DownOnly'); color = 'red'; break;
case 'archived': tableTitle = getString('Device_Shortcut_Archived'); color = 'gray'; break;
case 'offline': tableTitle = getString('Gen_Offline'); color = 'gray'; break;
case 'all_devices': tableTitle = getString('Gen_All_Devices'); color = 'gray'; break;
case 'network_devices': tableTitle = getString('Network_Devices'); color = 'aqua'; break;
default: tableTitle = getString('Device_Shortcut_Devices'); color = 'gray'; break;
}
// Set title and color
@@ -601,7 +594,6 @@ function initializeDatatable (status) {
}
}
// todo: dynamically filter based on status
var table = $('#tableDevices').DataTable({
"serverSide": true,
"processing": true,
@@ -692,8 +684,6 @@ function initializeDatatable (status) {
return JSON.stringify(query); // Send the JSON request
},
"dataSrc": function (json) {
console.log(json);
// Set the total number of records for pagination
json.recordsTotal = json.devices.count || 0;
json.recordsFiltered = json.devices.count || 0;

View File

@@ -2,6 +2,10 @@
require 'php/templates/header.php';
?>
<script>
showSpinner();
</script>
<!-- ----------------------------------------------------------------------- -->
<!-- Page ------------------------------------------------------------------ -->
@@ -67,7 +71,7 @@
<div class="inner"> <h3 id="eventsNewDevices"> -- </h3>
<p class="infobox_label"><?= lang('Events_Shortcut_NewDevices');?></p>
</div>
<div class="icon"> <i class="ion ion-plus-round text-yellow-40"></i> </div>
<div class="icon"> <i class="fa-solid fa-circle-plus text-yellow-40"></i> </div>
</div>
</a>
</div>
@@ -238,7 +242,7 @@ function initializeDatatable () {
// Processing
'processing' : true,
'language' : {
processing: '<table><td width="130px" align="middle"><?= lang("Events_Loading");?></td><td><i class="ion ion-ios-loop-strong fa-spin fa-2x fa-fw"></td></table>',
processing: '<table><td width="130px" align="middle"><?= lang("Events_Loading");?></td><td><i class="fa-solid fa-spinner fa-spin-pulse"></i></td></table>',
emptyTable: 'No data',
"lengthMenu": "<?= lang('Events_Tablelenght');?>",
"search": "<?= lang('Events_Searchbox');?>: ",
@@ -247,6 +251,9 @@ function initializeDatatable () {
"previous": "<?= lang('Events_Table_nav_prev');?>"
},
"info": "<?= lang('Events_Table_info');?>",
},
initComplete: function(settings, json) {
hideSpinner(); // Called after the DataTable is fully initialized
}
});

View File

@@ -1039,11 +1039,8 @@ function getDevDataByMac(macAddress, dbColumn) {
// Cache the devices as one JSON
function cacheDevices()
{
return new Promise((resolve, reject) => {
// if(!getCache('completedCalls').includes('cacheDevices'))
// {
$.get('php/server/query_json.php', { file: 'table_devices.json', nocache: Date.now() }, function(data) {
// console.log(data)
@@ -1067,8 +1064,7 @@ function cacheDevices()
// console.log(getCache('devicesListAll_JSON'))
}).then(() => handleSuccess('cacheDevices', resolve())).catch(() => handleFailure('cacheDevices', reject("cacheDevices already completed"))); // handle AJAX synchronization
}
// }
);
);
}
var devicesListAll_JSON = []; // this will contain a list off all devices

Binary file not shown.

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 326 KiB

After

Width:  |  Height:  |  Size: 305 KiB

Binary file not shown.

Binary file not shown.

BIN
front/lib/fonts/ionicons.woff2 Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -437,7 +437,7 @@
if(archivedCount > 0)
{
$('#showArchivedNumber').text(`(${archivedCount})`);
$('#showArchivedNumber').text(`(${archivedCount})`);
}
if(offlineCount > 0)
@@ -968,7 +968,6 @@ $(window).on('resize', function () {
// init pop up hover boxes for device details
initHoverNodeInfo();
// display toggles
$(document).ready(function () {
// Restore cached values on load
const cachedOffline = getCache('showOffline');
@@ -981,12 +980,34 @@ $(document).ready(function () {
$('input[name="showArchived"]').prop('checked', cachedArchived === 'true');
}
// Function to enable/disable showArchived based on showOffline
function updateArchivedToggle() {
const isOfflineChecked = $('input[name="showOffline"]').is(':checked');
const archivedToggle = $('input[name="showArchived"]');
if (!isOfflineChecked) {
archivedToggle.prop('checked', false);
archivedToggle.prop('disabled', true);
setCache('showArchived', false);
} else {
archivedToggle.prop('disabled', false);
}
}
// Initial state on load
updateArchivedToggle();
// Bind change event for both toggles
$('input[name="showOffline"], input[name="showArchived"]').on('change', function () {
const name = $(this).attr('name');
const value = $(this).is(':checked');
setCache(name, value);
// Update state of showArchived if showOffline changed
if (name === 'showOffline') {
updateArchivedToggle();
}
// Refresh page after a brief delay to ensure cache is written
setTimeout(() => {
location.reload();
@@ -994,6 +1015,7 @@ $(document).ready(function () {
});
});
</script>

View File

@@ -42,7 +42,6 @@
<script src="lib/datatables.net/js/jquery.dataTables.min.js"></script>
<script src="lib/datatables.net-bs/js/dataTables.bootstrap.min.js"></script>
<script src="lib/datatables.net/js/dataTables.select.min.js"></script>
<script src="lib/popper_tooltip/popper.min.js"></script>
<script src="js/common.js?v=<?php include 'php/templates/version.php'; ?>"></script>
<script src="js/modal.js?v=<?php include 'php/templates/version.php'; ?>"></script>
@@ -51,8 +50,6 @@
<script src="js/settings_utils.js?v=<?php include 'php/templates/version.php'; ?>"></script>
<script src="js/device.js?v=<?php include 'php/templates/version.php'; ?>"></script>
<!-- iCheck -->
<link rel="stylesheet" href="lib/iCheck/all.css">
@@ -146,7 +143,7 @@
<div class="panel panel-default pa_spinner">
<table>
<td id="loadingSpinnerText" width="130px" ></td>
<td><i class="ion ion-ios-loop-strong fa-spin fa-2x fa-fw"></td>
<td><i class="fa-solid fa-spinner fa-spin-pulse"></i></td>
</table>
</div>
</div>
@@ -312,7 +309,10 @@
<a href="devices.php#archived" onclick="forceLoadUrl('devices.php#archived')" > <?= lang("Device_Shortcut_Archived");?> </a>
</li>
<li>
<a href="devices.php#all" onclick="forceLoadUrl('devices.php#all_nodes')" > <?= lang("Device_Shortcut_AllNodes");?> </a>
<a href="devices.php#all_devices" onclick="forceLoadUrl('devices.php#all_devices')" > <?= lang("Gen_All_Devices");?> </a>
</li>
<li>
<a href="devices.php#network_devices" onclick="forceLoadUrl('devices.php#network_devices')" > <?= lang("Network_Devices");?> </a>
</li>
</ul>

View File

@@ -309,6 +309,7 @@
"Gen_Filter": "تصفية",
"Gen_Generate": "إنشاء",
"Gen_LockedDB": "قاعدة البيانات مقفلة",
"Gen_NetworkMask": "",
"Gen_Offline": "غير متصل",
"Gen_Okay": "موافق",
"Gen_Online": "متصل",
@@ -326,6 +327,7 @@
"Gen_SelectIcon": "اختيار أيقونة",
"Gen_SelectToPreview": "اختر للمعاينة",
"Gen_Selected_Devices": "الأجهزة المحددة",
"Gen_Subnet": "",
"Gen_Switch": "تبديل",
"Gen_Upd": "تحديث",
"Gen_Upd_Fail": "فشل التحديث",
@@ -494,6 +496,7 @@
"Network_Cant_Assign_No_Node_Selected": "",
"Network_Configuration_Error": "خطأ في التكوين",
"Network_Connected": "متصل",
"Network_Devices": "",
"Network_ManageAdd": "إضافة إدارة",
"Network_ManageAdd_Name": "اسم الإدارة",
"Network_ManageAdd_Name_text": "نص اسم الإدارة",
@@ -593,6 +596,7 @@
"Settings_device_Scanners_desync": "عدم تزامن ماسحات الأجهزة",
"Settings_device_Scanners_desync_popup": "نافذة عدم تزامن ماسحات الأجهزة",
"Speedtest_Results": "نتائج اختبار السرعة",
"Systeminfo_AvailableIps": "",
"Systeminfo_CPU": "المعالج",
"Systeminfo_CPU_Cores": "أنوية المعالج",
"Systeminfo_CPU_Name": "اسم المعالج",
@@ -754,4 +758,4 @@
"settings_system_label": "تسمية النظام",
"settings_update_item_warning": "تحذير تحديث العنصر",
"test_event_tooltip": "تلميح اختبار الحدث"
}
}

View File

@@ -309,6 +309,7 @@
"Gen_Filter": "Filtrar",
"Gen_Generate": "Generar",
"Gen_LockedDB": "ERROR - DB podria estar bloquejada - Fes servir F12 Eines desenvolupament -> Consola o provar-ho més tard.",
"Gen_NetworkMask": "",
"Gen_Offline": "Fora de línia",
"Gen_Okay": "Ok",
"Gen_Online": "En línia",
@@ -326,6 +327,7 @@
"Gen_SelectIcon": "<i class=\"fa-solid fa-chevron-down fa-fade\"></i>",
"Gen_SelectToPreview": "Seleccioneu la vista prèvia",
"Gen_Selected_Devices": "Dispositius seleccionats:",
"Gen_Subnet": "",
"Gen_Switch": "Switch",
"Gen_Upd": "Actualitzat correctament",
"Gen_Upd_Fail": "Actualització fallida",
@@ -494,6 +496,7 @@
"Network_Cant_Assign_No_Node_Selected": "",
"Network_Configuration_Error": "Error de configuració",
"Network_Connected": "Dispositius connectats",
"Network_Devices": "",
"Network_ManageAdd": "Afegir dispositiu",
"Network_ManageAdd_Name": "Nom del dispositiu",
"Network_ManageAdd_Name_text": "Nom sense caràcters especials",
@@ -593,6 +596,7 @@
"Settings_device_Scanners_desync": "⚠ Els horaris d'escàner de dispositius no estan en sincronia.",
"Settings_device_Scanners_desync_popup": "Els horaris dels escàners de dispositius (<code>*_RUN_SCHD</code>) no són iguals. Això donarà lloc a notificacions inconsistents del dispositiu en línia / fora de línia. Si no és intencionat, utilitzeu el mateix horari per a tots els <b>🔍 escàners de dispositius</b>.",
"Speedtest_Results": "Speedtest Resultats",
"Systeminfo_AvailableIps": "",
"Systeminfo_CPU": "CPU",
"Systeminfo_CPU_Cores": "Nuclis de CPU:",
"Systeminfo_CPU_Name": "Nom de CPU:",
@@ -754,4 +758,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

@@ -309,6 +309,7 @@
"Gen_Filter": "Filtr",
"Gen_Generate": "Vygenerovat",
"Gen_LockedDB": "CHYBA - Databáze je možná zamčená - Zkontrolujte F12 -> Nástroje pro vývojáře -> Konzole. nebo to zkuste později.",
"Gen_NetworkMask": "",
"Gen_Offline": "Offline",
"Gen_Okay": "Ok",
"Gen_Online": "Online",
@@ -326,6 +327,7 @@
"Gen_SelectIcon": "<i class=\"fa-solid fa-chevron-down fa-fade\"></i>",
"Gen_SelectToPreview": "Vybrat na náhled",
"Gen_Selected_Devices": "Vybraná zařízení:",
"Gen_Subnet": "",
"Gen_Switch": "Přepnout",
"Gen_Upd": "Úspěšně aktualizováno",
"Gen_Upd_Fail": "Aktualizace se nezdařila",
@@ -494,6 +496,7 @@
"Network_Cant_Assign_No_Node_Selected": "",
"Network_Configuration_Error": "",
"Network_Connected": "",
"Network_Devices": "",
"Network_ManageAdd": "",
"Network_ManageAdd_Name": "",
"Network_ManageAdd_Name_text": "",
@@ -593,6 +596,7 @@
"Settings_device_Scanners_desync": "",
"Settings_device_Scanners_desync_popup": "",
"Speedtest_Results": "",
"Systeminfo_AvailableIps": "",
"Systeminfo_CPU": "",
"Systeminfo_CPU_Cores": "",
"Systeminfo_CPU_Name": "",
@@ -754,4 +758,4 @@
"settings_system_label": "",
"settings_update_item_warning": "",
"test_event_tooltip": ""
}
}

View File

@@ -5,14 +5,6 @@
"API_TOKEN_name": "API-Schlüssel",
"API_display_name": "API",
"API_icon": "<i class=\"fa fa-arrow-down-up-across-line\"></i>",
"APPRISE_HOST_description": "Apprise host URL starting with <code>http://</code> or <code>https://</code>. (do not forget to include <code>/notify</code> at the end)",
"APPRISE_HOST_name": "Apprise host URL",
"APPRISE_PAYLOAD_description": "Select the payload type sent to Apprise. For example <code>html</code> works well with emails, <code>text</code> with chat apps, such as Telegram.",
"APPRISE_PAYLOAD_name": "Payload type",
"APPRISE_SIZE_description": "The maximum size of the apprise payload as number of characters in the passed string. If above limit, it will be truncated and a <code>(text was truncated)</code> message is appended.",
"APPRISE_SIZE_name": "Max payload size",
"APPRISE_URL_description": "Apprise notification target URL. For example for Telegram it would be <code>tgram://{bot_token}/{chat_id}</code>.",
"APPRISE_URL_name": "Apprise notification URL",
"About_Design": "Entworfen für:",
"About_Exit": "Abmelden",
"About_Title": "Netzwerksicherheitsscanner und Benachrichtigungsframework",
@@ -321,6 +313,7 @@
"Gen_Filter": "Filter",
"Gen_Generate": "Generieren",
"Gen_LockedDB": "ERROR - DB eventuell gesperrt - Nutze die Konsole in den Entwickler Werkzeugen (F12) zur Überprüfung oder probiere es später erneut.",
"Gen_NetworkMask": "",
"Gen_Offline": "Offline",
"Gen_Okay": "Ok",
"Gen_Online": "Online",
@@ -338,6 +331,7 @@
"Gen_SelectIcon": "<i class=\"fa-solid fa-chevron-down fa-fade\"></i>",
"Gen_SelectToPreview": "Zur Vorschau auswählen",
"Gen_Selected_Devices": "Ausgewählte Geräte:",
"Gen_Subnet": "",
"Gen_Switch": "Umschalten",
"Gen_Upd": "Aktualisierung erfolgreich",
"Gen_Upd_Fail": "Aktualisierung fehlgeschlagen",
@@ -531,6 +525,7 @@
"Network_Cant_Assign_No_Node_Selected": "",
"Network_Configuration_Error": "Konfigurationsfehler",
"Network_Connected": "Verbundene Geräte",
"Network_Devices": "",
"Network_ManageAdd": "Gerät hinzufügen",
"Network_ManageAdd_Name": "Name des Gerätes",
"Network_ManageAdd_Name_text": "Name ohne Sonderzeichen",
@@ -662,6 +657,7 @@
"Settings_device_Scanners_desync": "⚠ Die Zeitpläne des Gerätescanners sind nicht synchronisiert.",
"Settings_device_Scanners_desync_popup": "",
"Speedtest_Results": "Ergebnisse des Geschwindigkeitstests",
"Systeminfo_AvailableIps": "",
"Systeminfo_CPU": "CPU",
"Systeminfo_CPU_Cores": "CPU-Kerne:",
"Systeminfo_CPU_Name": "CPU-Name:",
@@ -835,4 +831,4 @@
"settings_system_label": "System",
"settings_update_item_warning": "",
"test_event_tooltip": "Speichere die Änderungen, bevor Sie die Einstellungen testen."
}
}

View File

@@ -39,8 +39,8 @@
"BackDevices_Backup_CopError": "The original database could not be saved.",
"BackDevices_Backup_Failed": "The backup executed partially successfully. The archive could not be created or is empty.",
"BackDevices_Backup_okay": "The backup executed successfully with the new archive",
"BackDevices_DBTools_DelDevError_a": "Error deleting Device",
"BackDevices_DBTools_DelDevError_b": "Error deleting Devices",
"BackDevices_DBTools_DelDevError_a": "Error deleting device",
"BackDevices_DBTools_DelDevError_b": "Error deleting devices",
"BackDevices_DBTools_DelDev_a": "Device deleted",
"BackDevices_DBTools_DelDev_b": "Devices deleted",
"BackDevices_DBTools_DelEvents": "Events deleted",
@@ -72,18 +72,18 @@
"DevDetail_CustomProperties_Title": "Custom Properties",
"DevDetail_CustomProps_reset_info": "This will remove your custom properties on this device and reset them to the default value.",
"DevDetail_DisplayFields_Title": "Display",
"DevDetail_EveandAl_AlertAllEvents": "Alert Events",
"DevDetail_EveandAl_AlertDown": "Alert Down",
"DevDetail_EveandAl_AlertAllEvents": "Alert events",
"DevDetail_EveandAl_AlertDown": "Alert down",
"DevDetail_EveandAl_Archived": "Archived",
"DevDetail_EveandAl_NewDevice": "New Device",
"DevDetail_EveandAl_NewDevice_Tooltip": "Will show the New status for the device and include it in lists when the New Devices filter is active. Doesn't affect notifications.",
"DevDetail_EveandAl_NewDevice": "New device",
"DevDetail_EveandAl_NewDevice_Tooltip": "Will show the New status for the device and include it in lists when the New devices filter is active. Doesn't affect notifications.",
"DevDetail_EveandAl_RandomMAC": "Random MAC",
"DevDetail_EveandAl_ScanCycle": "Scan device",
"DevDetail_EveandAl_ScanCycle_a": "Scan Device",
"DevDetail_EveandAl_ScanCycle_z": "Don&#39;t Scan Device",
"DevDetail_EveandAl_ScanCycle_a": "Scan device",
"DevDetail_EveandAl_ScanCycle_z": "Don&#39;t scan device",
"DevDetail_EveandAl_Skip": "Skip repeated notifications for",
"DevDetail_EveandAl_Title": "Notifications config",
"DevDetail_Events_CheckBox": "Hide Connection Events",
"DevDetail_Events_CheckBox": "Hide connection events",
"DevDetail_GoToNetworkNode": "Navigate to the Network page of the given node.",
"DevDetail_Icon": "Icon",
"DevDetail_Icon_Descr": "Enter a font awesome icon name without the fa- prefix or with complete class, e.g.: fa fa-brands fa-apple.",
@@ -201,7 +201,7 @@
"Device_MultiEdit_MassActions": "Mass actions:",
"Device_MultiEdit_Tooltip": "Careful. Clicking this will apply the value on the left to all devices selected above.",
"Device_Searchbox": "Search",
"Device_Shortcut_AllDevices": "My Devices",
"Device_Shortcut_AllDevices": "My devices",
"Device_Shortcut_AllNodes": "All Nodes",
"Device_Shortcut_Archived": "Archived",
"Device_Shortcut_Connected": "Connected",
@@ -209,7 +209,7 @@
"Device_Shortcut_DownAlerts": "Down & Offline",
"Device_Shortcut_DownOnly": "Down",
"Device_Shortcut_Favorites": "Favorites",
"Device_Shortcut_NewDevices": "New Devices",
"Device_Shortcut_NewDevices": "New devices",
"Device_Shortcut_OnlineChart": "Device presence",
"Device_TableHead_AlertDown": "Alert Down",
"Device_TableHead_Connected_Devices": "Connections",
@@ -267,7 +267,7 @@
"Events_Shortcut_DownAlerts": "Down Alerts",
"Events_Shortcut_Events": "Events",
"Events_Shortcut_MissSessions": "Missing Sessions",
"Events_Shortcut_NewDevices": "New Devices",
"Events_Shortcut_NewDevices": "New devices",
"Events_Shortcut_Sessions": "Sessions",
"Events_Shortcut_VoidSessions": "Voided Sessions",
"Events_TableHead_AdditionalInfo": "Additional Info",
@@ -293,9 +293,9 @@
"GRAPHQL_PORT_name": "GraphQL port",
"Gen_Action": "Action",
"Gen_Add": "Add",
"Gen_AddDevice": "Add Device",
"Gen_AddDevice": "Add device",
"Gen_Add_All": "Add all",
"Gen_All_Devices": "All Devices",
"Gen_All_Devices": "All devices",
"Gen_AreYouSure": "Are you sure?",
"Gen_Backup": "Run Backup",
"Gen_Cancel": "Cancel",
@@ -309,6 +309,7 @@
"Gen_Filter": "Filter",
"Gen_Generate": "Generate",
"Gen_LockedDB": "ERROR - DB might be locked - Check F12 Dev tools -> Console or try later.",
"Gen_NetworkMask": "Network mask",
"Gen_Offline": "Offline",
"Gen_Okay": "Ok",
"Gen_Online": "Online",
@@ -325,7 +326,8 @@
"Gen_Select": "Select",
"Gen_SelectIcon": "<i class=\"fa-solid fa-chevron-down fa-fade\"></i>",
"Gen_SelectToPreview": "Select to preview",
"Gen_Selected_Devices": "Selected Devices:",
"Gen_Selected_Devices": "Selected devices:",
"Gen_Subnet": "Subnet",
"Gen_Switch": "Switch",
"Gen_Upd": "Updated successfully",
"Gen_Upd_Fail": "Update failed",
@@ -338,9 +340,9 @@
"Gen_create_new_device_info": "Devices are typically discovered using <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/tree/main/docs/PLUGINS.md\">plugins</a>. However, in certain cases, you may need to add devices manually. To explore specific scenarios check the <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/REMOTE_NETWORKS.md\">Remote Networks documentation</a>.",
"General_display_name": "General",
"General_icon": "<i class=\"fa fa-gears\"></i>",
"HRS_TO_KEEP_NEWDEV_description": "This is a maintenance setting <b>DELETING devices</b>. If enabled (<code>0</code> is disabled), devices marked as <b>New Device</b> will be deleted if their <b>First Session</b> time was older than the specified hours in this setting. Use this setting if you want to auto-delete <b>New Devices</b> after <code>X</code> hours.",
"HRS_TO_KEEP_NEWDEV_description": "This is a maintenance setting <b>DELETING devices</b>. If enabled (<code>0</code> is disabled), devices marked as <b>New device</b> will be deleted if their <b>First Session</b> time was older than the specified hours in this setting. Use this setting if you want to auto-delete <b>New devices</b> after <code>X</code> hours.",
"HRS_TO_KEEP_NEWDEV_name": "Delete new devices after",
"HRS_TO_KEEP_OFFDEV_description": "This is a maintenance setting <b>DELETING devices</b>. If enabled (<code>0</code> is disabled), devices that are <b>Offline</b> and their <b>Last Connection</b> date time is older than the specified hours in this setting, will be deleted. Use this setting if you want to auto-delete <b>Offline Devices</b> after <code>X</code> hours being offline.",
"HRS_TO_KEEP_OFFDEV_description": "This is a maintenance setting <b>DELETING devices</b>. If enabled (<code>0</code> is disabled), devices that are <b>Offline</b> and their <b>Last Connection</b> date time is older than the specified hours in this setting, will be deleted. Use this setting if you want to auto-delete <b>Offline devices</b> after <code>X</code> hours being offline.",
"HRS_TO_KEEP_OFFDEV_name": "Delete offline devices after",
"LOADED_PLUGINS_description": "Which Plugins to load. Adding plugins might slow the application. Read more about which plugins need to be enabled, types, or scanning options in the <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/tree/main/docs/PLUGINS.md\">plugins docs</a>. Unloaded plugins will lose your settings. Only <code>disabled</code> plugins can be unloaded.",
"LOADED_PLUGINS_name": "Loaded plugins",
@@ -364,20 +366,20 @@
"Maint_PurgeLog": "Purge log",
"Maint_RestartServer": "Restart server",
"Maint_Restart_Server_noti_text": "Are you sure you want to restart the backend server? This may casue app inconsistency. Backup your setup first. <br/> <br/> Note: This may take a few minutes.",
"Maintenance_InitCheck": "Init Check",
"Maintenance_InitCheck": "Init check",
"Maintenance_InitCheck_Checking": "Checking…",
"Maintenance_InitCheck_QuickSetupGuide": "Make sure you followed the <a href=\"https://jokob-sk.github.io/NetAlertX/INITIAL_SETUP/\" target=\"_blank\">quick setup guide</a>.",
"Maintenance_InitCheck_Success": "Application initialized succesfully!",
"Maintenance_ReCheck": "Retry Check",
"Maintenance_ReCheck": "Retry check",
"Maintenance_Running_Version": "Installed version",
"Maintenance_Status": "Status",
"Maintenance_Title": "Maintenance tools",
"Maintenance_Tool_DownloadConfig": "Settings Export",
"Maintenance_Tool_DownloadConfig": "Settings export",
"Maintenance_Tool_DownloadConfig_text": "Download a full backup of your Settings configuration stored in the <code>app.conf</code> file.",
"Maintenance_Tool_DownloadWorkflows": "Workflows Export",
"Maintenance_Tool_DownloadWorkflows": "Workflows export",
"Maintenance_Tool_DownloadWorkflows_text": "Download a full backup of your Workflows stored in the <code>workflows.json</code> file.",
"Maintenance_Tool_ExportCSV": "Devices Export (csv)",
"Maintenance_Tool_ExportCSV_noti": "Devices Export (csv)",
"Maintenance_Tool_ExportCSV": "Devices export (csv)",
"Maintenance_Tool_ExportCSV_noti": "Devices export (csv)",
"Maintenance_Tool_ExportCSV_noti_text": "Are you sure you want to generate a CSV file?",
"Maintenance_Tool_ExportCSV_text": "Generate a CSV (comma separated value) file containing the list of Devices including the Network relationships between Network Nodes and connected devices. You can also trigger this by accessing this URL <code>your_NetAlertX_url/php/server/devices.php?action=ExportCSV</code> or by enabling the <a href=\"settings.php#CSVBCKP_header\">CSV Backup</a> plugin.",
"Maintenance_Tool_ImportCSV": "Devices Import (csv)",
@@ -408,26 +410,26 @@
"Maintenance_Tool_del_ActHistory_noti": "Delete network activity",
"Maintenance_Tool_del_ActHistory_noti_text": "Are you sure you want to reset the network activity?",
"Maintenance_Tool_del_ActHistory_text": "The network activity graph is reset. This does not affect the events.",
"Maintenance_Tool_del_alldev": "Delete all Devices",
"Maintenance_Tool_del_alldev_noti": "Delete Devices",
"Maintenance_Tool_del_alldev": "Delete all devices",
"Maintenance_Tool_del_alldev_noti": "Delete devices",
"Maintenance_Tool_del_alldev_noti_text": "Are you sure you want to delete all devices?",
"Maintenance_Tool_del_alldev_text": "Before using this function, please make a backup. The deletion cannot be undone. All devices will be deleted from the database.",
"Maintenance_Tool_del_allevents": "Delete Events (Reset Presence)",
"Maintenance_Tool_del_allevents30": "Delete all Events older than 30 days",
"Maintenance_Tool_del_allevents30_noti": "Delete Events",
"Maintenance_Tool_del_allevents30_noti_text": "Are you sure you want to delete all Events older than 30 days? This resets Presence of all Devices.",
"Maintenance_Tool_del_allevents30_noti_text": "Are you sure you want to delete all Events older than 30 days? This resets presence of all devices.",
"Maintenance_Tool_del_allevents30_text": "Before using this function, please make a backup. The deletion cannot be undone. All events older than 30 days in the database will be deleted. At that moment the presence of all devices will be reset. This can lead to invalid sessions. This means that devices are displayed as \"present\" although they are offline. A scan while the device in question is online solves the problem.",
"Maintenance_Tool_del_allevents_noti": "Delete Events",
"Maintenance_Tool_del_allevents_noti_text": "Are you sure you want to delete all Events? This resets Presence of all Devices.",
"Maintenance_Tool_del_allevents_noti_text": "Are you sure you want to delete all Events? This resets presence of all devices.",
"Maintenance_Tool_del_allevents_text": "Before using this function, please make a backup. The deletion cannot be undone. All events in the database will be deleted. At that moment the presence of all devices will be reset. This can lead to invalid sessions. This means that devices are displayed as \"present\" although they are offline. A scan while the device in question is online solves the problem.",
"Maintenance_Tool_del_empty_macs": "Delete Devices with empty MACs",
"Maintenance_Tool_del_empty_macs_noti": "Delete Devices",
"Maintenance_Tool_del_empty_macs": "Delete devices with empty MACs",
"Maintenance_Tool_del_empty_macs_noti": "Delete devices",
"Maintenance_Tool_del_empty_macs_noti_text": "Are you sure you want to delete all devices with empty MAC addresses?<br>(maybe you prefer to archive it)",
"Maintenance_Tool_del_empty_macs_text": "Before using this function, please make a backup. The deletion cannot be undone. All devices without MAC will be deleted from the database.",
"Maintenance_Tool_del_selecteddev": "Delete selected devices",
"Maintenance_Tool_del_selecteddev_text": "Before using this function, please make a backup. The deletion cannot be undone. Selected devices will be deleted from the database.",
"Maintenance_Tool_del_unknowndev": "Delete (unknown) Devices",
"Maintenance_Tool_del_unknowndev_noti": "Delete (unknown) Devices",
"Maintenance_Tool_del_unknowndev": "Delete (unknown) devices",
"Maintenance_Tool_del_unknowndev_noti": "Delete (unknown) devices",
"Maintenance_Tool_del_unknowndev_noti_text": "Are you sure you want to delete all (unknown) and (name not found) devices?",
"Maintenance_Tool_del_unknowndev_text": "Before using this function, please make a backup. The deletion cannot be undone. All devices named (unknown) will be deleted from the database.",
"Maintenance_Tool_displayed_columns_text": "Change the visibility and order of the columns in the <a href=\"devices.php\"><b> <i class=\"fa fa-laptop\"></i> Devices</b></a> page.",
@@ -471,10 +473,10 @@
"Maintenance_themeselector_lable": "Select Skin",
"Maintenance_themeselector_text": "The change takes place on the server side, so it affects all devices in use.",
"Maintenance_version": "App updates",
"NETWORK_DEVICE_TYPES_description": "Which device types are allowed to be used as network devices in the Network view. The device type has to match exactly the <code>Type</code> setting on a specific device in Device details. Add it on the Device via the <code>+</code> button. Do not remove existing types, only add new ones.",
"NETWORK_DEVICE_TYPES_description": "Which device types are allowed to be used as network devices in the Network view. The device type has to match exactly the <code>Type</code> setting on a specific device in Device details. Add it on the device via the <code>+</code> button. Do not remove existing types, only add new ones.",
"NETWORK_DEVICE_TYPES_name": "Network device types",
"Navigation_About": "About",
"Navigation_AppEvents": "App Events",
"Navigation_AppEvents": "App events",
"Navigation_Devices": "Devices",
"Navigation_Donations": "Donations",
"Navigation_Events": "Events",
@@ -485,7 +487,7 @@
"Navigation_Notifications": "Notifications",
"Navigation_Plugins": "Plugins",
"Navigation_Presence": "Presence",
"Navigation_Report": "Sent Reports",
"Navigation_Report": "Sent reports",
"Navigation_Settings": "Settings",
"Navigation_SystemInfo": "System info",
"Navigation_Workflows": "Workflows",
@@ -494,30 +496,31 @@
"Network_Cant_Assign_No_Node_Selected": "Can't assign, no parent node selected.",
"Network_Configuration_Error": "Configuration Error",
"Network_Connected": "Connected devices",
"Network_ManageAdd": "Add Device",
"Network_ManageAdd_Name": "Device Name",
"Network_Devices": "Network devices",
"Network_ManageAdd": "Add device",
"Network_ManageAdd_Name": "Device name",
"Network_ManageAdd_Name_text": "Name without special characters",
"Network_ManageAdd_Port": "Port Count",
"Network_ManageAdd_Port_text": "leave blank for wifi and powerline",
"Network_ManageAdd_Submit": "Add Device",
"Network_ManageAdd_Type": "Device Type",
"Network_ManageAdd_Submit": "Add device",
"Network_ManageAdd_Type": "Device type",
"Network_ManageAdd_Type_text": "-- Select Type --",
"Network_ManageAssign": "Assign",
"Network_ManageDel": "Delete Device",
"Network_ManageDel": "Delete device",
"Network_ManageDel_Name": "Device to delete",
"Network_ManageDel_Name_text": "-- Select Device --",
"Network_ManageDel_Name_text": "-- Select device --",
"Network_ManageDel_Submit": "Delete",
"Network_ManageDevices": "Manage Devices",
"Network_ManageEdit": "Update Device",
"Network_ManageDevices": "Manage devices",
"Network_ManageEdit": "Update device",
"Network_ManageEdit_ID": "Device to update",
"Network_ManageEdit_ID_text": "-- Select Device for editing --",
"Network_ManageEdit_Name": "New Device Name",
"Network_ManageEdit_ID_text": "-- Select device for editing --",
"Network_ManageEdit_Name": "New device name",
"Network_ManageEdit_Name_text": "Name without special characters",
"Network_ManageEdit_Port": " New Port Count",
"Network_ManageEdit_Port_text": "leave blank for wifi and powerline",
"Network_ManageEdit_Submit": "Save Changes",
"Network_ManageEdit_Type": "New Device Type",
"Network_ManageEdit_Type_text": "-- Select Type --",
"Network_ManageEdit_Type": "New device type",
"Network_ManageEdit_Type_text": "-- Select type --",
"Network_ManageLeaf": "Manage assignment",
"Network_ManageUnassign": "Unassign",
"Network_NoAssignedDevices": "This network node does not have any assigned devices (leaf nodes). Assign one from bellow or go to the <b><i class=\"fa fa-info-circle\"></i> Details</b> tab of any device in <a href=\"devices.php\"><b> <i class=\"fa fa-laptop\"></i> Devices</b></a>, and assign it to a network <b><i class=\"fa fa-server\"></i> Node (MAC)</b> and <b><i class=\"fa fa-ethernet\"></i> Port</b> there.",
@@ -528,15 +531,15 @@
"Network_Root": "Root node",
"Network_Root_Not_Configured": "Select a network device type, for example a <b>Gateway</b>, in the <b>Type</b> field of the <a href=\"deviceDetails.php?mac=Internet\">the Internet root device</a> to start configuring this screen. <br/><br/> More documentation can be found in the <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/NETWORK_TREE.md\" target=\"_blank\">How to setup your Network page</a> guide",
"Network_Root_Unconfigurable": "Unconfigurable root",
"Network_ShowArchived": "Show Archived",
"Network_ShowOffline": "Show Offline",
"Network_ShowArchived": "Show archived",
"Network_ShowOffline": "Show offline",
"Network_Table_Hostname": "Hostname",
"Network_Table_IP": "IP",
"Network_Table_State": "State",
"Network_Title": "Network overview",
"Network_UnassignedDevices": "Unassigned devices",
"Notifications_All": "All Notifications",
"Notifications_Mark_All_Read": "Mark All Read",
"Notifications_All": "All notifications",
"Notifications_Mark_All_Read": "Mark all read",
"PIALERT_WEB_PASSWORD_description": "The default password is <code>123456</code>. To change the password run <code>/app/back/pialert-cli</code> in the container or use the <a onclick=\"toggleAllSettings()\" href=\"#SETPWD_RUN\"><code>SETPWD_RUN</code> Set password plugin</a>.",
"PIALERT_WEB_PASSWORD_name": "Login password",
"PIALERT_WEB_PROTECTION_description": "When enabled a login dialog is displayed. Read below carefully if you get locked out of your instance.",
@@ -562,17 +565,17 @@
"Presence_Key_OnlineNow_desc": "Device detected in the last scan as online.",
"Presence_Key_OnlinePast": "Past online",
"Presence_Key_OnlinePastMiss": "Past online (miss-match)",
"Presence_Key_OnlinePastMiss_desc": "Device online in the past, but currently offline, but the start session might be missing or has conflicting data. (might be a bug - please submit a PR if you know how to fix it - I'm a bit lost in code here)",
"Presence_Key_OnlinePastMiss_desc": "Device online in the past, but currently offline, but the start session might be missing or has conflicting data.",
"Presence_Key_OnlinePast_desc": "Device online in the past, but currently offline.",
"Presence_Loading": "Loading…",
"Presence_Shortcut_AllDevices": "My Devices",
"Presence_Shortcut_AllDevices": "My devices",
"Presence_Shortcut_Archived": "Archived",
"Presence_Shortcut_Connected": "Connected",
"Presence_Shortcut_Devices": "Devices",
"Presence_Shortcut_DownAlerts": "Down Alerts",
"Presence_Shortcut_Favorites": "Favorites",
"Presence_Shortcut_NewDevices": "New Devices",
"Presence_Title": "Presence by Device",
"Presence_Shortcut_NewDevices": "New devices",
"Presence_Title": "Presence by device",
"REFRESH_FQDN_description": "Rescans all devices and refreshes their Fully Qualified Domain Name (FQDN). If disabled, only devices without a known name are scanned to improve performance. In this case, FQDN is updated only during initial device discovery.",
"REFRESH_FQDN_name": "Refresh FQDN",
"REPORT_DASHBOARD_URL_description": "This URL is used as the base for generating links in HTML reports (e.g.: emails). Enter full URL starting with <code>http://</code> including the port number (no trailing slash <code>/</code>).",
@@ -582,8 +585,8 @@
"REPORT_MAIL_name": "Enable email",
"REPORT_TITLE": "Report",
"RandomMAC_hover": "Autodetected - indicates if the device randomizes it's MAC address. You can exclude specific MACs with the UI_NOT_RANDOM_MAC setting. Click to find out more.",
"Reports_Sent_Log": "Sent Reports Log",
"SCAN_SUBNETS_description": "Most on-network scanners (ARP-SCAN, NMAP, NSLOOKUP, DIG) rely on scanning specific network interfaces and subnets. Check the <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/SUBNETS.md\" target=\"_blank\">subnets documentation</a> for help on this setting, especially VLANs, what VLANs are supported, or how to figure out the network mask and your interface. <br/> <br/> An alternative to on-network scanners is to enable some other Device scanners/importers that don't rely on NetAlert<sup>X</sup> having access to the network (UNIFI, dhcp.leases, PiHole, etc.). <br/> <br/> Note: The scan time itself depends on the number of IP addresses to check, so set this up carefully with the appropriate network mask and interface.",
"Reports_Sent_Log": "Sent reports log",
"SCAN_SUBNETS_description": "Most on-network scanners (ARP-SCAN, NMAP, NSLOOKUP, DIG) rely on scanning specific network interfaces and subnets. Check the <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/SUBNETS.md\" target=\"_blank\">subnets documentation</a> for help on this setting, especially VLANs, what VLANs are supported, or how to figure out the network mask and your interface. <br/> <br/> An alternative to on-network scanners is to enable some other device scanners/importers that don't rely on NetAlert<sup>X</sup> having access to the network (UNIFI, dhcp.leases, PiHole, etc.). <br/> <br/> Note: The scan time itself depends on the number of IP addresses to check, so set this up carefully with the appropriate network mask and interface.",
"SCAN_SUBNETS_name": "Networks to scan",
"SYSTEM_TITLE": "System Information",
"Setting_Override": "Override value",
@@ -591,8 +594,9 @@
"Settings_Metadata_Toggle": "Show/hide metadata for the given setting.",
"Settings_Show_Description": "Show setting description.",
"Settings_device_Scanners_desync": "⚠ Device scanner schedules are out-of-sync.",
"Settings_device_Scanners_desync_popup": "Schedules of devices scanners (<code>*_RUN_SCHD</code>) are not the same. This will result into inconsistent device online/offline notifications. Unless this is intended, please use the same schedule for all enabled <b>🔍Device scanners</b>.",
"Settings_device_Scanners_desync_popup": "Schedules of devices scanners (<code>*_RUN_SCHD</code>) are not the same. This will result into inconsistent device online/offline notifications. Unless this is intended, please use the same schedule for all enabled <b>🔍device scanners</b>.",
"Speedtest_Results": "Speedtest Results",
"Systeminfo_AvailableIps": "Available IPs",
"Systeminfo_CPU": "CPU",
"Systeminfo_CPU_Cores": "CPU Cores:",
"Systeminfo_CPU_Name": "CPU Name:",
@@ -666,18 +670,18 @@
"Systeminfo_System_Uname": "Uname:",
"Systeminfo_System_Uptime": "Uptime:",
"Systeminfo_This_Client": "This Client",
"Systeminfo_USB_Devices": "USB Devices",
"Systeminfo_USB_Devices": "USB devices",
"TICKER_MIGRATE_TO_NETALERTX": "⚠ Old mount locations detected. Follow <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/MIGRATION.md\" target=\"_blank\">this guide</a> to migrate to the new <code>/app/config</code> and <code>/app/db</code> folders and the <code>netalertx</code> container.",
"TIMEZONE_description": "Time zone to display stats correctly. Find your time zone <a target=\"_blank\" href=\"https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\" rel=\"nofollow\">here</a>.",
"TIMEZONE_name": "Time zone",
"UI_DEV_SECTIONS_description": "Select which UI elements to hide in the Devices pages.",
"UI_DEV_SECTIONS_name": "Hide Devices Sections",
"UI_DEV_SECTIONS_description": "Select which UI elements to hide in the devices pages.",
"UI_DEV_SECTIONS_name": "Hide devices sections",
"UI_ICONS_description": "A list of pre-defined icons. Proceed with caution, the preferred way to add icons is described in the <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/ICONS.md\" target=\"_blank\">Icons documentation</a>. You can add a base64-encoded SVG HTML or Font-awesome HTML tag.",
"UI_ICONS_name": "Pre-defined icons",
"UI_LANG_description": "Select the preferred UI language. Help translating or suggest languages in the online portal of <a href=\"https://hosted.weblate.org/projects/pialert/core/\" target=\"_blank\">Weblate</a>.",
"UI_LANG_name": "UI Language",
"UI_MY_DEVICES_description": "Devices of which statuses should be shown in the default <b>My Devices</b> view.",
"UI_MY_DEVICES_name": "Show in My Devices view",
"UI_MY_DEVICES_description": "Devices of which statuses should be shown in the default <b>My devices</b> view.",
"UI_MY_DEVICES_name": "Show in My devices view",
"UI_NOT_RANDOM_MAC_description": "Mac prefixes which shouldn't be marked as Random devices. Enter for example <code>52</code> to exclude devices starting with <code>52:xx:xx:xx:xx:xx</code> from being marked as devices with a random MAC address.",
"UI_NOT_RANDOM_MAC_name": "Don't mark as Random",
"UI_PRESENCE_description": "Select what statuses should be shown in the <b>Device presence</b> chart in the <a href=\"/devices.php\" target=\"_blank\">Devices</a> page.",
@@ -718,7 +722,7 @@
"devices_old": "Refreshing…",
"general_event_description": "The event you have triggered might take a while until background processes finish. The execution ended once the below execution queue empties (Check the <a href='/maintenance.php#tab_Logging'>error log</a> if you encounter issues). <br/> <br/> Execution queue:",
"general_event_title": "Executing an ad-hoc event",
"go_to_device_event_tooltip": "Navigate to the Device",
"go_to_device_event_tooltip": "Navigate to the device",
"go_to_node_event_tooltip": "Navigate to the Network page of the given node",
"new_version_available": "A new version is available.",
"report_guid": "Notification guid:",
@@ -731,7 +735,7 @@
"settings_core_label": "Core",
"settings_device_scanners": "Device scanners used to discover devices that write into the CurrentScan database table.",
"settings_device_scanners_icon": "fa-solid fa-magnifying-glass-plus",
"settings_device_scanners_info": "Load even more Device Scanners with the <a href=\"/settings.php#LOADED_PLUGINS\">LOADED_PLUGINS</a> setting",
"settings_device_scanners_info": "Load more device scanners with the <a href=\"/settings.php#LOADED_PLUGINS\">LOADED_PLUGINS</a> setting",
"settings_device_scanners_label": "Device scanners",
"settings_enabled": "Enabled settings",
"settings_enabled_icon": "fa-solid fa-toggle-on",

View File

@@ -5,14 +5,6 @@
"API_TOKEN_name": "Token de la API",
"API_display_name": "API",
"API_icon": "<i class=\"fa fa-arrow-down-up-across-line\"></i>",
"APPRISE_HOST_description": "URL del host de Apprise que comienza con <code>http://</code> o <code>https://</code>. (no olvide incluir <code>/notify</code> al final)",
"APPRISE_HOST_name": "URL del host de Apprise",
"APPRISE_PAYLOAD_description": "Seleccione el tipo de carga útil enviada a Apprise. Por ejemplo, <code>html</code> funciona bien con correos electrónicos, <code>text</code> con aplicaciones de chat, como Telegram.",
"APPRISE_PAYLOAD_name": "Tipo de carga",
"APPRISE_SIZE_description": "El tamaño máximo de la carga útil de información como número de caracteres en la cadena pasada. Si supera el límite, se truncará y se agregará un mensaje <code>(text was truncated)</code>.",
"APPRISE_SIZE_name": "Tamaño máximo de carga útil",
"APPRISE_URL_description": "Informar de la URL de destino de la notificación. Por ejemplo, para Telegram sería <code>tgram://{bot_token}/{chat_id}</code>.",
"APPRISE_URL_name": "URL de notificación de Apprise",
"About_Design": "Diseñado para:",
"About_Exit": "Salir",
"About_Title": "Escáner de seguridad de la red y marco de notificaciones",
@@ -50,7 +42,7 @@
"BackDevices_Backup_Failed": "La copia de seguridad se ejecutó parcialmente con éxito. El archivo no se puede crear o está vacío.",
"BackDevices_Backup_okay": "La copia de seguridad ejecutada con éxito con el nuevo archivo",
"BackDevices_DBTools_DelDevError_a": "Error de eliminación del dispositivo",
"BackDevices_DBTools_DelDevError_b": "Error de eliminación de dispositivos",
"BackDevices_DBTools_DelDevError_b": "Error eliminando dispositivos",
"BackDevices_DBTools_DelDev_a": "Dispositivo eliminado",
"BackDevices_DBTools_DelDev_b": "Dispositivos eliminados",
"BackDevices_DBTools_DelEvents": "Eventos eliminados",
@@ -76,7 +68,7 @@
"DAYS_TO_KEEP_EVENTS_name": "Eliminar eventos anteriores a",
"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": "",
"DevDetail_Children_Title": "Relaciones hijo",
"DevDetail_Copy_Device_Title": "Copiar detalles del dispositivo",
"DevDetail_Copy_Device_Tooltip": "Copiar detalles del dispositivo de la lista desplegable. Todo en esta página se sobrescribirá",
"DevDetail_CustomProperties_Title": "Propiedades personalizadas",
@@ -89,15 +81,15 @@
"DevDetail_EveandAl_NewDevice_Tooltip": "Mostrará el estado Nuevo para el dispositivo y lo incluirá en las listas cuando el filtro Nuevos dispositivos esté activo. No afecta a las notificaciones.",
"DevDetail_EveandAl_RandomMAC": "MAC al azar",
"DevDetail_EveandAl_ScanCycle": "Ciclo de escaneo",
"DevDetail_EveandAl_ScanCycle_a": "Escanear Dispositivo",
"DevDetail_EveandAl_ScanCycle_z": "No Escanear Dispositivo",
"DevDetail_EveandAl_ScanCycle_a": "Escanear dispositivo",
"DevDetail_EveandAl_ScanCycle_z": "No escanear dispositivo",
"DevDetail_EveandAl_Skip": "Omitir notificaciones repetidas durante",
"DevDetail_EveandAl_Title": "Configuración de eventos y alertas",
"DevDetail_Events_CheckBox": "Ocultar eventos de conexión",
"DevDetail_GoToNetworkNode": "Navegar a la página de Internet del nodo seleccionado.",
"DevDetail_Icon": "Icono",
"DevDetail_Icon_Descr": "Ingrese un nombre de icono de fuente awesome sin el prefijo fa- o con clase completa, por ejemplo: fa fa-skin fa-apple.",
"DevDetail_Loading": "Cargando ...",
"DevDetail_Loading": "Cargando",
"DevDetail_MainInfo_Comments": "Comentario",
"DevDetail_MainInfo_Favorite": "Favorito",
"DevDetail_MainInfo_Group": "Grupo",
@@ -113,11 +105,11 @@
"DevDetail_MainInfo_Type": "Tipo",
"DevDetail_MainInfo_Vendor": "Proveedor",
"DevDetail_MainInfo_mac": "MAC",
"DevDetail_NavToChildNode": "",
"DevDetail_NavToChildNode": "Abrir nodo hijo",
"DevDetail_Network_Node_hover": "Seleccione el dispositivo de red principal al que está conectado el dispositivo actual para completar el árbol de Red.",
"DevDetail_Network_Port_hover": "El puerto al que está conectado este dispositivo en el dispositivo de red principal. Si se deja vacío, se muestra un icono de wifi en el árbol de Red.",
"DevDetail_Nmap_Scans": "Escaneos de Nmap",
"DevDetail_Nmap_Scans_desc": "Aquí puede ejecutar escaneos NMAP manuales. También puede programar escaneos NMAP automáticos regulares a través del complemento Servicios y puertos (NMAP). Dirígete a <a href='/settings.php' target='_blank'>Configuración</a> para obtener más información",
"DevDetail_Nmap_Scans_desc": "Aquí puede ejecutar escaneos NMAP manuales. También puede programar escaneos NMAP automáticos regulares a través del complemento Servicios y puertos (NMAP). Dirígete a <a href=\"https://github.com/jokob-sk/NetAlertX/tree/main/front/plugins/nmap_scan\" target=\"_blank\">Documentación</a> para obtener más información",
"DevDetail_Nmap_buttonDefault": "Escaneado predeterminado",
"DevDetail_Nmap_buttonDefault_text": "Escaneo predeterminado: NMAP escanea los 1,000 puertos principales para cada protocolo de escaneo solicitado. Esto atrapa aproximadamente el 93% de los puertos TCP y el 49% de los puertos UDP. (aproximadamente 5 segundos)",
"DevDetail_Nmap_buttonDetail": "Escaneo detallado",
@@ -189,7 +181,7 @@
"DevDetail_Tools_WOL": "Enviar comando WOL a ",
"DevDetail_Tools_WOL_noti": "Wake-on-LAN",
"DevDetail_Tools_WOL_noti_text": "El comando de Wake-on-LAN en enviado a la dirección de escucha. Si el dispositivo no está en la misma subred/vlan que NetAlertX, el dispositivo no responderá.",
"DevDetail_Type_hover": "El tipo de dispositivo. Si selecciona cualquiera de los dispositivos de la red predefinidos (por ejemplo: AP, Firewall, enrutador, conmutador...), aparecerán en la configuración del árbol de redes como posibles nodos de la red principal.",
"DevDetail_Type_hover": "El tipo de dispositivo. Si selecciona cualquiera de los dispositivos de la red predefinidos (por ejemplo: AP, Firewall, enrutador, conmutador ...), aparecerán en la configuración del árbol de redes como posibles nodos de la red principal.",
"DevDetail_Vendor_hover": "El proveedor debe ser detectado automáticamente. Puede sobrescribir o agregar su valor personalizado.",
"DevDetail_WOL_Title": "<i class=\"fa fa-power-off\"></i> Wake-on-LAN",
"DevDetail_button_AddIcon": "Añadir un nuevo icono",
@@ -206,25 +198,25 @@
"DevDetail_button_Save": "Guardar",
"DeviceEdit_ValidMacIp": "Introduzca una dirección <b>Mac</b> y una dirección <b>IP</b> válidas .",
"Device_MultiEdit": "Edición múltiple",
"Device_MultiEdit_Backup": "Tenga cuidado, ingresar valores incorrectos o romperá su configuración. Por favor, haga una copia de seguridad de su base de datos o de la configuración de los dispositivos primero (<a href=\"php/server/devices.php?action=ExportCSV\">haga clic para descargar <i class=\"fa-solid fa-download fa-bounce\"></i></a>). Lea cómo recuperar dispositivos de este archivo en la documentación de <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/BACKUPS.md#scenario-2-corrupted-database\" target=\"_blank\">Copia de seguridad</a>.",
"Device_MultiEdit_Backup": "Tenga cuidado, ingresar valores incorrectos o romperá su configuración. Por favor, haga una copia de seguridad de su base de datos o de la configuración de los dispositivos primero (<a href=\"php/server/devices.php?action=ExportCSV\">haga clic para descargar <i class=\"fa-solid fa-download fa-bounce\"></i></a>). Lea cómo recuperar dispositivos de este archivo en la documentación de <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/BACKUPS.md#scenario-2-corrupted-database\" target=\"_blank\">Copia de seguridad</a>. Para aplicar sus cambios haga click en el ícono de <b>Guardar<i class=\"fa-solid fa-save\"></i></b> en cada campo que quiera actualizar.",
"Device_MultiEdit_Fields": "Editar campos:",
"Device_MultiEdit_MassActions": "Acciones masivas:",
"Device_MultiEdit_Tooltip": "Cuidado. Al hacer clic se aplicará el valor de la izquierda a todos los dispositivos seleccionados anteriormente.",
"Device_Searchbox": "Búsqueda",
"Device_Shortcut_AllDevices": "Mis dispositivos",
"Device_Shortcut_AllNodes": "",
"Device_Shortcut_AllNodes": "Todos los nodos",
"Device_Shortcut_Archived": "Archivado(s)",
"Device_Shortcut_Connected": "Conectado(s)",
"Device_Shortcut_Devices": "Dispositivos",
"Device_Shortcut_DownAlerts": "Caído y sin conexión",
"Device_Shortcut_DownOnly": "Caído",
"Device_Shortcut_Favorites": "Favorito(s)",
"Device_Shortcut_NewDevices": "Nuevo(s)",
"Device_Shortcut_NewDevices": "Nuevos dispositivos",
"Device_Shortcut_OnlineChart": "Presencia del dispositivo a lo largo del tiempo",
"Device_TableHead_AlertDown": "Alerta desactivada",
"Device_TableHead_Connected_Devices": "Conexiones",
"Device_TableHead_CustomProps": "Propiedades / Acciones",
"Device_TableHead_FQDN": "",
"Device_TableHead_FQDN": "FQDN",
"Device_TableHead_Favorite": "Favorito",
"Device_TableHead_FirstSession": "1ra. sesión",
"Device_TableHead_GUID": "GUID",
@@ -239,11 +231,11 @@
"Device_TableHead_Name": "Nombre",
"Device_TableHead_NetworkSite": "Lugar de la red",
"Device_TableHead_Owner": "Propietario",
"Device_TableHead_ParentRelType": "",
"Device_TableHead_ParentRelType": "Tipo de relación",
"Device_TableHead_Parent_MAC": "Nodo principal de la red",
"Device_TableHead_Port": "Puerto",
"Device_TableHead_PresentLastScan": "Historial",
"Device_TableHead_ReqNicsOnline": "",
"Device_TableHead_ReqNicsOnline": "Requiere que la interfaz de red (NIC) esté conectada",
"Device_TableHead_RowID": "ID de fila",
"Device_TableHead_Rowid": "ID de fila",
"Device_TableHead_SSID": "SSID",
@@ -266,7 +258,7 @@
"ENCRYPTION_KEY_name": "Llave de cifrado",
"Email_display_name": "Email",
"Email_icon": "<i class=\"fa fa-at\"></i>",
"Events_Loading": "Cargando...",
"Events_Loading": "Cargando. . .",
"Events_Periodselect_All": "Toda la información",
"Events_Periodselect_LastMonth": "El mes pasado",
"Events_Periodselect_LastWeek": "La semana pasada",
@@ -277,7 +269,7 @@
"Events_Shortcut_DownAlerts": "Alerta(s) de caída(s)",
"Events_Shortcut_Events": "Eventos",
"Events_Shortcut_MissSessions": "Sesiones faltantes",
"Events_Shortcut_NewDevices": "Nuevo(s)",
"Events_Shortcut_NewDevices": "Nuevos dispositivos",
"Events_Shortcut_Sessions": "Sesiones",
"Events_Shortcut_VoidSessions": "Sesiones anuladas",
"Events_TableHead_AdditionalInfo": "Información adicional",
@@ -305,7 +297,7 @@
"Gen_Add": "Añadir",
"Gen_AddDevice": "Añadir dispositivo",
"Gen_Add_All": "Añadir todo",
"Gen_All_Devices": "Todo los dispositivos",
"Gen_All_Devices": "Todos los dispositivos",
"Gen_AreYouSure": "¿Estás seguro?",
"Gen_Backup": "Ejecutar copia de seguridad",
"Gen_Cancel": "Cancelar",
@@ -319,6 +311,7 @@
"Gen_Filter": "Filtro",
"Gen_Generate": "Generar",
"Gen_LockedDB": "Fallo - La base de datos puede estar bloqueada - Pulsa F1 -> Ajustes de desarrolladores -> Consola o prueba más tarde.",
"Gen_NetworkMask": "",
"Gen_Offline": "Desconectado",
"Gen_Okay": "Aceptar",
"Gen_Online": "En linea",
@@ -336,6 +329,7 @@
"Gen_SelectIcon": "<i class=\"fa-solid fa-chevron-down fa-fade\"></i>",
"Gen_SelectToPreview": "Seleccionar para previsualizar",
"Gen_Selected_Devices": "Dispositivos seleccionados:",
"Gen_Subnet": "",
"Gen_Switch": "Cambiar",
"Gen_Upd": "Actualizado correctamente",
"Gen_Upd_Fail": "Fallo al actualizar",
@@ -348,15 +342,15 @@
"Gen_create_new_device_info": "Los dispositivos se suelen descubrir utilizando <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/tree/main/docs/PLUGINS.md\">plugins</a>. Sin embargo, en algunos casos, es posible que necesite agregar dispositivos manualmente. Para explorar escenarios específicos, consulte la documentación <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/REMOTE_NETWORKS.md\">Redes remotas</a>.",
"General_display_name": "General",
"General_icon": "<i class=\"fa fa-gears\"></i>",
"HRS_TO_KEEP_NEWDEV_description": "Se trata de una configuración de mantenimiento <b>BORRAR dispositivos</b>. Si está activado (<code>0</code> está desactivado), los dispositivos marcados como <b>Nuevo dispositivo</b> se eliminarán si su fecha de <b>primera sesión</b> es anterior a las horas especificadas en este ajuste. Use este ajuste si desea eliminar automáticamente <b>Nuevos dispositivos</b> después de <code>X</code> horas.",
"HRS_TO_KEEP_NEWDEV_description": "Esta es una configuración de mantenimiento <b>BORRAR dispositivos</b>. Si está activado (<code>0</code> está desactivado), los dispositivos marcados como <b>Nuevo dispositivo</b> se eliminarán si su fecha de <b>Primera Sesión</b> es anterior a las horas especificadas en este ajuste. Use este ajuste si desea eliminar automáticamente <b>Nuevos dispositivos</b> después de <code>X</code> horas.",
"HRS_TO_KEEP_NEWDEV_name": "Eliminar nuevos dispositivos después",
"HRS_TO_KEEP_OFFDEV_description": "Se trata de una configuración de mantenimiento <b>BORRAR dispositivos</b>. Si está activado (<code>0</code> está desactivado), los dispositivos que están <b>sin conexión</b> y su fecha de <b>última conexión</b> es anterior a las horas especificadas en este ajuste se eliminarán. Use este ajuste si desea eliminar automáticamente <b>los dispositivos sin conexión</b> después de que el <code>X</code> horas esté sin conexión.",
"HRS_TO_KEEP_OFFDEV_description": "Esta es una configuración de mantenimiento <b>BORRAR dispositivos</b>. Si está activado (<code>0</code> está desactivado), los dispositivos que están <b>Sin Conexión</b> y su fecha de <b>Última Conexión</b> es anterior a las horas especificadas en este ajuste se eliminarán. Use este ajuste si desea eliminar automáticamente <b>los dispositivos sin conexión</b> después de que el <code>X</code> horas esté sin conexión.",
"HRS_TO_KEEP_OFFDEV_name": "Borrar dispositivos sin conexión después de",
"LOADED_PLUGINS_description": "¿Qué plugins cargar?. Agregar plugins puede ralentizar la aplicación. Obtén más información sobre los complementos que deben habilitarse, los tipos o las opciones de escaneo en los documentos de <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/tree/main/docs/PLUGINS.md\">plugins</a>. Los plugins descargados perderán tu configuración. Solo se pueden descargar los complementos <code>deshabilitados</code>.",
"LOADED_PLUGINS_name": "Plugins cargados",
"LOG_LEVEL_description": "Esto hará que el registro tenga más información. Util para depurar que eventos se van guardando en la base de datos.",
"LOG_LEVEL_name": "Imprimir registros adicionales",
"Loading": "Cargando...",
"Loading": "Cargando . . .",
"Login_Box": "Ingrese su contraseña",
"Login_Default_PWD": "La contraseña por defecto \"123456\" sigue activa.",
"Login_Info": "Las contraseñas se establecen a través del plugin Establecer contraseña. Compruebe la <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/tree/main/front/plugins/set_password\">documentación SETPWD</a> si tiene problemas para iniciar sesión.",
@@ -388,11 +382,11 @@
"Maint_PurgeLog": "Purgar los registros",
"Maint_RestartServer": "Restablecer el servidor",
"Maint_Restart_Server_noti_text": "¿Estás seguro de que desea reiniciar el servidor backend? Esto puede causar inconsistencia en la aplicación. Primero haga una copia de seguridad de su configuración.<br/> <br/> Nota: Esto puede tardar unos minutos.",
"Maintenance_InitCheck": "",
"Maintenance_InitCheck_Checking": "",
"Maintenance_InitCheck_QuickSetupGuide": "",
"Maintenance_InitCheck_Success": "",
"Maintenance_ReCheck": "",
"Maintenance_InitCheck": "Validación inicial",
"Maintenance_InitCheck_Checking": "Validando . . .",
"Maintenance_InitCheck_QuickSetupGuide": "Asegúrece de seguir la <a href=\"https://jokob-sk.github.io/NetAlertX/INITIAL_SETUP/\" target=\"_blank\">guía de configuración rápida</a>.",
"Maintenance_InitCheck_Success": "¡Aplicación inicializada con éxito!",
"Maintenance_ReCheck": "Reintentar validación",
"Maintenance_Running_Version": "Versión instalada",
"Maintenance_Status": "Situación",
"Maintenance_Title": "Herramientas de mantenimiento",
@@ -475,7 +469,7 @@
"Maintenance_Tools_Tab_UISettings": "Ajustes de interfaz",
"Maintenance_arp_status": "Estado de la exploración",
"Maintenance_arp_status_off": "está actualmente deshabilitado",
"Maintenance_arp_status_on": "escaneo(s) actualmente en ejecución",
"Maintenance_arp_status_on": "escaneo en ejecución",
"Maintenance_built_on": "Creada",
"Maintenance_current_version": "No hay actualizaciones disponibles. Comprueba en que <a href=\"https://github.com/jokob-sk/NetAlertX/issues/138\" target=\"_blank\">se está trabajando</a>.",
"Maintenance_database_backup": "Copias de seguridad de BD",
@@ -526,9 +520,10 @@
"Navigation_Workflows": "Flujo de trabajo",
"Network_Assign": "Conectar al nodo de <i class=\"fa fa-server\"></i> red",
"Network_Cant_Assign": "No se puede asignar el nodo principal de Internet como nodo secundario.",
"Network_Cant_Assign_No_Node_Selected": "",
"Network_Cant_Assign_No_Node_Selected": "No es posible asignar, no se ha seleccionado un nodo padre.",
"Network_Configuration_Error": "Error en la configuración",
"Network_Connected": "Dispositivos conectados",
"Network_Devices": "Dispositivos de red",
"Network_ManageAdd": "Añadir dispositivo",
"Network_ManageAdd_Name": "Nombre del dispositivo",
"Network_ManageAdd_Name_text": "Nombre sin caracteres especiales",
@@ -563,8 +558,8 @@
"Network_Root": "Nodo principal",
"Network_Root_Not_Configured": "Seleccione un tipo de dispositivo de red, por ejemplo un <b>Gateway</b>, en el campo <b>Tipo</b> del <a href=\"deviceDetails.php?mac=Internet\">dispositivo principal de Internet</a> para empezar a configurar esta pantalla. <br/><br/>Puede encontrar más documentación en la guía <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/NETWORK_TREE.md\" target=\"_blank\">¿Cómo configurar su página de Red?</a>",
"Network_Root_Unconfigurable": "Root no configurable",
"Network_ShowArchived": "",
"Network_ShowOffline": "",
"Network_ShowArchived": "Mostrar archivado",
"Network_ShowOffline": "Mostrar fuera de línea",
"Network_Table_Hostname": "Nombre de host",
"Network_Table_IP": "Dirección IP",
"Network_Table_State": "Estado",
@@ -601,9 +596,9 @@
"Presence_Key_OnlineNow_desc": "Dispositivo detectado en el último escaneo como conectado.",
"Presence_Key_OnlinePast": "Anterior en línea",
"Presence_Key_OnlinePastMiss": "Anterior en línea (miss-match)",
"Presence_Key_OnlinePastMiss_desc": "Dispositivo en línea en el pasado, pero actualmente desconectado, pero la sesión de inicio podría estar faltando o tiene datos conflictivos. (Puede ser un error - por favor envíe un PR si sabe cómo solucionarlo - estoy un poco perdido en código)",
"Presence_Key_OnlinePastMiss_desc": "Dispositivo en línea en el pasado, pero actualmente desconectado, pero la sesión de inicio podría estar faltando o tiene datos conflictivos.",
"Presence_Key_OnlinePast_desc": "Dispositivo en línea en el pasado, pero actualmente no conectado.",
"Presence_Loading": "Cargando...",
"Presence_Loading": "Cargando. . .",
"Presence_Shortcut_AllDevices": "Mis dispositivos",
"Presence_Shortcut_Archived": "Archivado(s)",
"Presence_Shortcut_Connected": "Conectado(s)",
@@ -611,9 +606,9 @@
"Presence_Shortcut_DownAlerts": "Alerta(s) de caída(s)",
"Presence_Shortcut_Favorites": "Favorito(s)",
"Presence_Shortcut_NewDevices": "Nuevo(s)",
"Presence_Title": "Historial por dispositivo",
"REFRESH_FQDN_description": "",
"REFRESH_FQDN_name": "",
"Presence_Title": "Presencia por dispositivo",
"REFRESH_FQDN_description": "Vuelve a escanear todos los dispositivos y actualiza su nombre de dominio completo (FQDN). Si esta opción está deshabilitada, solo se escanean los dispositivos sin nombre conocido para mejorar el rendimiento. En este caso, el FQDN se actualiza solo durante la detección inicial de dispositivos.",
"REFRESH_FQDN_name": "Refrescar FQDN",
"REPORT_APPRISE_description": "Habilitar el envío de notificaciones a través de <a target=\"_blank\" href=\"https://hub.docker.com/r/caronc/apprise\">Apprise</a>.",
"REPORT_APPRISE_name": "Habilitar Apprise",
"REPORT_DASHBOARD_URL_description": "Esta URL se utiliza como base para generar enlaces en los correos electrónicos. Ingrese la URL completa que comienza con <code>http://</code>, incluido el número de puerto (sin barra inclinada al final <code>/</code>).",
@@ -661,6 +656,7 @@
"Settings_device_Scanners_desync": "⚠ Los horarios del escáner de los dispositivos no están sincronizados.",
"Settings_device_Scanners_desync_popup": "Los horarios de escáneres de dispositivos (<code> *_RUN_SCHD</code> ) no son lo mismo. Esto resultará en notificaciones inconsistentes del dispositivo en línea/fuera de línea. A menos que sea así, utilice el mismo horario para todos los habilitados.<b> 🔍Escáneres de dispositivos</b> .",
"Speedtest_Results": "Resultados de la prueba de velocidad",
"Systeminfo_AvailableIps": "",
"Systeminfo_CPU": "CPU",
"Systeminfo_CPU_Cores": "Núcleos de CPU:",
"Systeminfo_CPU_Name": "Nombre de la CPU:",
@@ -794,10 +790,10 @@
"add_icon_event_tooltip": "Agregar nuevo icono",
"add_option_event_tooltip": "Añadir nuevo valor",
"copy_icons_event_tooltip": "Sobrescribir los iconos de todos los dispositivos con el mismo tipo de dispositivo",
"devices_old": "Volviendo a actualizar....",
"devices_old": "Refrescando . . .",
"general_event_description": "El evento que ha activado puede tardar un poco hasta que finalicen los procesos en segundo plano. La ejecución finalizó una vez que se vacía la cola de ejecución a continuación (consulte el <a href='/maintenance.php#tab_Logging'>registro de errores</a> si encuentra problemas). <br/> <br/> Cola de ejecución:",
"general_event_title": "Ejecutar un evento ad-hoc",
"go_to_device_event_tooltip": "",
"go_to_device_event_tooltip": "Navegar al dispositivo",
"go_to_node_event_tooltip": "Vaya a la página de Red del nodo indicado",
"new_version_available": "Una nueva versión está disponible.",
"report_guid": "Guía de las notificaciones:",
@@ -805,12 +801,12 @@
"report_select_format": "Selecciona el formato:",
"report_time": "Hora de la notificación:",
"run_event_tooltip": "Activa el ajuste y guarda tus cambios antes de ejecutarlo.",
"select_icon_event_tooltip": "",
"select_icon_event_tooltip": "Seleccionar ícono",
"settings_core_icon": "fa-solid fa-gem",
"settings_core_label": "Núcleo",
"settings_device_scanners": "Los escáneres de los dispositivos se utilizan para descubrir dispositivos que escriben en la tabla de base de datos de CurrentScan.",
"settings_device_scanners_icon": "fa-solid fa-magnifying-glass-plus",
"settings_device_scanners_info": "Cargue aún más escáneres de dispositivos con el ajuste <a href=\"/settings.php#LOADED_PLUGINS\">LOADED_PLUGINS</a>",
"settings_device_scanners_info": "Cargue más escáneres de dispositivos con el ajuste <a href=\"/settings.php#LOADED_PLUGINS\">LOADED_PLUGINS</a>",
"settings_device_scanners_label": "Escáneres de dispositivos",
"settings_enabled": "Configuración activada",
"settings_enabled_icon": "fa-solid fa-toggle-on",
@@ -819,7 +815,7 @@
"settings_imported_label": "Configuración importada",
"settings_missing": "No se han cargado todos los ajustes. Carga alta en la base de datos o secuencia de inicio de la app. Haz clic en el botón 🔄 recargar en la parte superior.",
"settings_missing_block": "Error: La configuración no se ha cargado correctamente. Haga clic en el botón de recarga 🔄 en la parte superior, alternativamente, compruebe el registro del navegador para más detalles (F12).",
"settings_old": "Importar ajustes y reiniciar...",
"settings_old": "Importar ajustes y reiniciar. . .",
"settings_other_scanners": "Otros plugins de escáner no relacionados con dispositivos que están activados actualmente.",
"settings_other_scanners_icon": "fa-solid fa-recycle",
"settings_other_scanners_label": "Otros escáneres",
@@ -828,9 +824,9 @@
"settings_publishers_info": "Cargue más editor@s con el ajuste <a href=\"/settings.php#LOADED_PLUGINS\">LOADED_PLUGINS</a>",
"settings_publishers_label": "Editores",
"settings_readonly": "No se puede LEER ni ESCRIBIR <code>app.conf</code>. Intente reiniciar el contenedor y lea la <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/FILE_PERMISSIONS.md\" target=\"_blank\">documentación de permisos de archivo</a>",
"settings_saved": "<br/>Ajustes guardados. <br/> Recargando... <br/><i class=\"ion ion-ios-loop-strong fa-spin fa-2x fa-fw\"></i> <br/>",
"settings_saved": "<br/>Ajustes guardados. <br/> Recargando. . . <br/><i class=\"ion ion-ios-loop-strong fa-spin fa-2x fa-fw\"></i> <br/>",
"settings_system_icon": "fa-solid fa-gear",
"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

@@ -9,7 +9,7 @@
"About_Exit": "Se déconnecter",
"About_Title": "Analyse de la sécurité du réseau et cadre de notification",
"AppEvents_AppEventProcessed": "Traité(s)",
"AppEvents_DateTimeCreated": "Découvert le",
"AppEvents_DateTimeCreated": "Identifié",
"AppEvents_Extra": "Extra",
"AppEvents_GUID": "GUID dévénements de l'application",
"AppEvents_Helper1": "Assistant 1",
@@ -309,6 +309,7 @@
"Gen_Filter": "Filtrer",
"Gen_Generate": "Générer",
"Gen_LockedDB": "Erreur - La base de données est peut-être verrouillée - Vérifier avec les outils de dév via F12 -> Console ou essayer plus tard.",
"Gen_NetworkMask": "",
"Gen_Offline": "Hors ligne",
"Gen_Okay": "OK",
"Gen_Online": "En ligne",
@@ -325,7 +326,8 @@
"Gen_Select": "Sélectionner",
"Gen_SelectIcon": "<i class=\"fa-solid fa-chevron-down fa-fade\"></i>",
"Gen_SelectToPreview": "Sélectionnez pour prévisualiser",
"Gen_Selected_Devices": "Appareils sélectionnés:",
"Gen_Selected_Devices": "Appareils sélectionnés :",
"Gen_Subnet": "",
"Gen_Switch": "Basculer",
"Gen_Upd": "Mise à jour réussie",
"Gen_Upd_Fail": "Échec de la mise à jour",
@@ -494,6 +496,7 @@
"Network_Cant_Assign_No_Node_Selected": "Impossible d'assigner, aucun noeud parent sélectionné.",
"Network_Configuration_Error": "Erreur de configuration",
"Network_Connected": "Appareils connectés",
"Network_Devices": "Appareils réseau",
"Network_ManageAdd": "Ajouter un appareil",
"Network_ManageAdd_Name": "Nom de l'appareil",
"Network_ManageAdd_Name_text": "Nom sans caractère spécial",
@@ -562,7 +565,7 @@
"Presence_Key_OnlineNow_desc": "Appareil détecté comme étant en ligne lors de la dernière analyse.",
"Presence_Key_OnlinePast": "Passé en ligne",
"Presence_Key_OnlinePastMiss": "Passé en ligne (correspondance manquée)",
"Presence_Key_OnlinePastMiss_desc": "Appareil en ligne dans le passé, mais actuellement hors ligne, mais la session de démarrage pourrait être manquante ou avoir des données contradictoires. (il s'agit peut-être d'un bogue - veuillez soumettre un PR si vous savez comment le corriger - je suis un peu perdu dans le code ici)",
"Presence_Key_OnlinePastMiss_desc": "Appareil en ligne dans le passé, mais actuellement hors ligne, mais la session de démarrage pourrait être manquante ou avoir des données contradictoires.",
"Presence_Key_OnlinePast_desc": "Appareil en ligne dans le passé, mais actuellement hors ligne.",
"Presence_Loading": "Chargement …",
"Presence_Shortcut_AllDevices": "Mes appareils",
@@ -593,6 +596,7 @@
"Settings_device_Scanners_desync": "⚠ La planification des différents scanners d'appareils est désynchronisée.",
"Settings_device_Scanners_desync_popup": "La planification des scanners (<code>*_RUN_SCHD</code>) n'est pas identique entre scanners. Cela va entraîner des notifications en ligne/hors-ligne non cohérentes. À moins que cela soit attendu, utilisez la même planification pour tous les <b>🔍scanners d'appareils</b> activés.",
"Speedtest_Results": "Résultats du test de débit",
"Systeminfo_AvailableIps": "",
"Systeminfo_CPU": "Processeur",
"Systeminfo_CPU_Cores": "Cœurs de processeur:",
"Systeminfo_CPU_Name": "Nom du processeur:",
@@ -754,4 +758,4 @@
"settings_system_label": "Système",
"settings_update_item_warning": "Mettre à jour la valeur ci-dessous. Veillez à bien suivre le même format qu'auparavant. <b>Il n'y a pas de pas de contrôle.</b>",
"test_event_tooltip": "Enregistrer d'abord vos modifications avant de tester vôtre paramétrage."
}
}

View File

@@ -9,7 +9,7 @@
"About_Exit": "Esci",
"About_Title": "Scanner di sicurezza di rete e framework di notifica",
"AppEvents_AppEventProcessed": "Elaborato",
"AppEvents_DateTimeCreated": "Scoperto il",
"AppEvents_DateTimeCreated": "Registrato",
"AppEvents_Extra": "Extra",
"AppEvents_GUID": "GUID evento applicazione",
"AppEvents_Helper1": "Aiutante 1",
@@ -72,11 +72,11 @@
"DevDetail_CustomProperties_Title": "Proprietà personalizzate",
"DevDetail_CustomProps_reset_info": "Questa operazione rimuoverà le proprietà personalizzate su questo dispositivo e le ripristinerà al valore predefinito.",
"DevDetail_DisplayFields_Title": "Visualizza",
"DevDetail_EveandAl_AlertAllEvents": "Notifica eventi",
"DevDetail_EveandAl_AlertDown": "Avviso disconnessione",
"DevDetail_EveandAl_AlertAllEvents": "Eventi di allerta",
"DevDetail_EveandAl_AlertDown": "Avviso inattivo",
"DevDetail_EveandAl_Archived": "Archiviato",
"DevDetail_EveandAl_NewDevice": "Nuovo dispositivo",
"DevDetail_EveandAl_NewDevice_Tooltip": "Mostrerà il Nuovo stato del dispositivo e lo include negli elenchi quando il filtro Nuovi dispositivi è attivo. Non influisce sulle notifiche.",
"DevDetail_EveandAl_NewDevice_Tooltip": "Mostra lo stato Nuovo del dispositivo e lo include negli elenchi quando il filtro Nuovi dispositivi è attivo. Non influisce sulle notifiche.",
"DevDetail_EveandAl_RandomMAC": "MAC casuale",
"DevDetail_EveandAl_ScanCycle": "Scansiona dispositivo",
"DevDetail_EveandAl_ScanCycle_a": "Scansiona dispositivo",
@@ -201,7 +201,7 @@
"Device_MultiEdit_MassActions": "Azioni di massa:",
"Device_MultiEdit_Tooltip": "Attento. Facendo clic verrà applicato il valore sulla sinistra a tutti i dispositivi selezionati sopra.",
"Device_Searchbox": "Cerca",
"Device_Shortcut_AllDevices": "Miei dispositivi",
"Device_Shortcut_AllDevices": "I miei dispositivi",
"Device_Shortcut_AllNodes": "Tutti i nodi",
"Device_Shortcut_Archived": "Archiviati",
"Device_Shortcut_Connected": "Connessi",
@@ -309,6 +309,7 @@
"Gen_Filter": "Filtro",
"Gen_Generate": "Genera",
"Gen_LockedDB": "ERRORE: il DB potrebbe essere bloccato, controlla F12 Strumenti di sviluppo -> Console o riprova più tardi.",
"Gen_NetworkMask": "",
"Gen_Offline": "Offline",
"Gen_Okay": "Ok",
"Gen_Online": "Online",
@@ -326,6 +327,7 @@
"Gen_SelectIcon": "<i class=\"fa-solid fa-chevron-down fa-fade\"></i>",
"Gen_SelectToPreview": "Seleziona per anteprima",
"Gen_Selected_Devices": "Dispositivi selezionati:",
"Gen_Subnet": "",
"Gen_Switch": "Cambia",
"Gen_Upd": "Aggiornato correttamente",
"Gen_Upd_Fail": "Aggiornamento fallito",
@@ -338,9 +340,9 @@
"Gen_create_new_device_info": "I dispositivi vengono generalmente rilevati utilizzando <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/tree/main/docs/PLUGINS.md\">plugin</a>. Tuttavia, in alcuni casi, potrebbe essere necessario aggiungere manualmente i dispositivi. Per esplorare scenari specifici, consulta la <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/REMOTE_NETWORKS.md\">documentazione sulle reti remote</a>.",
"General_display_name": "Generale",
"General_icon": "<i class=\"fa fa-gears\"></i>",
"HRS_TO_KEEP_NEWDEV_description": "Questa è un'impostazione di manutenzione <b>ELIMINAZIONE dispositivi</b>. Se abilitata (<code>0</code> è disabilitata), tutti i dispositivi marcati con <b>Nuovo dispositivo</b> verranno eliminati se l'orario della <b>Prima sessione</b> è precedente all'orario di questa impostazione. Usa questa impostazione se vuoi eliminare automaticamente i <b>Nuovi dispositivi</b> dopo <code>X</code> ore.",
"HRS_TO_KEEP_NEWDEV_description": "Questa è un'impostazione di manutenzione che <b>ELIMINA dispositivi</b>. Se abilitata (<code>0</code> è disabilitata), i dispositivi contrassegnati come <b>Nuovo dispositivo</b> verranno eliminati se la loro <b>Prima sessione</b> è antecedente alle ore specificate in questa impostazione. Utilizza questa impostazione se vuoi eliminare automaticamente i <b>Nuovi dispositivi</b> dopo <code>X</code> ore.",
"HRS_TO_KEEP_NEWDEV_name": "Elimina nuovi dispositivi dopo",
"HRS_TO_KEEP_OFFDEV_description": "Questa è un'impostazione di manutenzione <b>ELIMINAZIONE dispositivi</b>. Se abilitata (<code>0</code> è disabilitata), i dispositivi che sono <b>Offline</b> e la loro data e ora <b>Ultima connessione</b> sono più vecchi delle ore specificate in questa impostazione saranno eliminati. Usa questa impostazione se vuoi eliminare automaticamente <b>Dispositivi offline</b> dopo <code>X</code> ore trascorse offline.",
"HRS_TO_KEEP_OFFDEV_description": "Questa è un'impostazione di manutenzione che <b>ELIMINA dispositivi</b>. Se abilitata (<code>0</code> è disabilitata), i dispositivi <b>Offline</b> la cui data e ora di <b>Ultima connessione</b> sono antecedenti alle ore specificate in questa impostazione, verranno eliminati. Utilizza questa impostazione se vuoi eliminare automaticamente i <b>Dispositivi offline</b> dopo <code>X</code> ore trascorse offline.",
"HRS_TO_KEEP_OFFDEV_name": "Elimina dispositivi offline dopo",
"LOADED_PLUGINS_description": "Quali Plugin caricare. L'aggiunta di plugin potrebbe rallentare l'applicazione. Leggi di più su quali plugin necessitano di essere abilitati, tipi e opzioni di scansione nella <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/tree/main/docs/PLUGINS.md\">documentazione plugin</a>. I plugin disinstallati perdono la loro configurazione. Solo i plugin <code>disabilitati</code> possono essere disinstallati.",
"LOADED_PLUGINS_name": "Plugin caricati",
@@ -372,12 +374,12 @@
"Maintenance_Running_Version": "Versione installata",
"Maintenance_Status": "Stato",
"Maintenance_Title": "Strumenti di manutenzione",
"Maintenance_Tool_DownloadConfig": "Impostazioni Esporta",
"Maintenance_Tool_DownloadConfig": "Esportazione delle impostazioni",
"Maintenance_Tool_DownloadConfig_text": "Scarica un backup completo della configurazione delle tue Impostazioni memorizzata nel file <code>app.conf</code>.",
"Maintenance_Tool_DownloadWorkflows": "Esportazione flussi di lavoro",
"Maintenance_Tool_DownloadWorkflows": "Esportazione del flusso di lavoro",
"Maintenance_Tool_DownloadWorkflows_text": "Scarica un backup completo dei tuoi flussi di lavoro archiviati nel file <code>workflows.json</code>.",
"Maintenance_Tool_ExportCSV": "Esporta dispositivi (csv)",
"Maintenance_Tool_ExportCSV_noti": "Esporta dispositivi (csv)",
"Maintenance_Tool_ExportCSV": "Esportazione dispositivi (csv)",
"Maintenance_Tool_ExportCSV_noti": "Esportazione dispositivi (csv)",
"Maintenance_Tool_ExportCSV_noti_text": "Sei sicuro di voler generare un file CSV?",
"Maintenance_Tool_ExportCSV_text": "Genera un file CSV (comma separated value) contenente la lista dei dispositivi incluse le relazioni di rete tra i nodi di rete e i dispositivi connessi. Puoi anche eseguire questa azione accedendo all'URL <code>il_tuo_NetAlertX/php/server/devices.php?action=ExportCSV</code> o abilitando il plugin <a href=\"settings.php#CSVBCKP_header\">Backup CSV</a>.",
"Maintenance_Tool_ImportCSV": "Importa dispositivi (csv)",
@@ -471,7 +473,7 @@
"Maintenance_themeselector_lable": "Seleziona skin",
"Maintenance_themeselector_text": "Questa modifica avviene lato server, quindi influenza tutti i dispositivi in uso.",
"Maintenance_version": "Aggiornamenti app",
"NETWORK_DEVICE_TYPES_description": "Quali tipi di dispositivo possono essere utilizzati come dispositivi di rete nella vista Rete. Il tipo di dispositivo deve corrispondere esattamente all'impostazione <code>Tipo</code> su un dispositivo specifico nei Dettagli dispositivo. Aggiungilo sul Dispositivo tramite il pulsante <code>+</code>. Non rimuovere i tipi esistenti, aggiungine solo di nuovi.",
"NETWORK_DEVICE_TYPES_description": "Quali tipi di dispositivo possono essere utilizzati come dispositivi di rete nella vista Rete. Il tipo di dispositivo deve corrispondere esattamente all'impostazione <code>Tipo</code> su un dispositivo specifico nei Dettagli dispositivo. Aggiungilo al dispositivo tramite il pulsante <code>+</code>. Non rimuovere i tipi esistenti, aggiungine solo di nuovi.",
"NETWORK_DEVICE_TYPES_name": "Tipi di dispositivi di rete",
"Navigation_About": "Informazioni su",
"Navigation_AppEvents": "Eventi app",
@@ -494,6 +496,7 @@
"Network_Cant_Assign_No_Node_Selected": "Impossibile assegnare, nessun nodo padre selezionato.",
"Network_Configuration_Error": "Errore di configurazione",
"Network_Connected": "Dispositivi connessi",
"Network_Devices": "Dispositivi di rete",
"Network_ManageAdd": "Aggiungi dispositivo",
"Network_ManageAdd_Name": "Nome dispositivo",
"Network_ManageAdd_Name_text": "Nome senza caratteri speciali",
@@ -562,10 +565,10 @@
"Presence_Key_OnlineNow_desc": "Dispositivo rilevato durante l'ultima scansione come online.",
"Presence_Key_OnlinePast": "Online in passato",
"Presence_Key_OnlinePastMiss": "Online in passato (non corrispondente)",
"Presence_Key_OnlinePastMiss_desc": "Dispositivo online in passato, ma attualmente offline, ma la sessione di avvio potrebbe essere mancante o presentare dati in conflitto. (potrebbe trattarsi di un bug: invia una PR se sai come risolverlo, sono un po' perso nel codice qui)",
"Presence_Key_OnlinePastMiss_desc": "Dispositivo online in passato, ma attualmente offline, ma la sessione di avvio potrebbe essere mancante o presentare dati in conflitto.",
"Presence_Key_OnlinePast_desc": "Dispositivo online in passato, ma attualmente offline.",
"Presence_Loading": "Caricamento…",
"Presence_Shortcut_AllDevices": "Miei dispositivi",
"Presence_Shortcut_AllDevices": "I miei dispositivi",
"Presence_Shortcut_Archived": "Archiviati",
"Presence_Shortcut_Connected": "Connessi",
"Presence_Shortcut_Devices": "Dispositivi",
@@ -591,8 +594,9 @@
"Settings_Metadata_Toggle": "Mostra/nascondi i metadati per l'impostazione specificata.",
"Settings_Show_Description": "Mostra descrizione dell'impostazione.",
"Settings_device_Scanners_desync": "⚠ Le pianificazioni dello scanner del dispositivo non sono sincronizzate.",
"Settings_device_Scanners_desync_popup": "Gli orari degli scanner dei dispositivi (<code>*_RUN_SCHD</code>) non sono gli stessi. Questo comporterà notifiche online/offline incoerenti del dispositivo. A meno che ciò non sia previsto, utilizza la stessa pianificazione per tutti gli <b>🔍Scanner dispositivi</b> abilitati.",
"Settings_device_Scanners_desync_popup": "Gli orari degli scanner dei dispositivi (<code>*_RUN_SCHD</code>) non sono gli stessi. Questo comporterà notifiche online/offline incoerenti del dispositivo. A meno che ciò non sia previsto, utilizza la stessa pianificazione per tutti gli <b>🔍 scanner dispositivi</b> abilitati.",
"Speedtest_Results": "Risultati test di velocità",
"Systeminfo_AvailableIps": "",
"Systeminfo_CPU": "CPU",
"Systeminfo_CPU_Cores": "Core CPU:",
"Systeminfo_CPU_Name": "Nome CPU:",
@@ -676,8 +680,8 @@
"UI_ICONS_name": "Icone predefinite",
"UI_LANG_description": "Seleziona la lingua preferita dell'interfaccia utente. Aiuta nella traduzione o suggerisci una nuova lingua sul portale online di <a href=\"https://hosted.weblate.org/projects/pialert/core/\" target=\"_blank\">Weblate</a>.",
"UI_LANG_name": "Lingua UI",
"UI_MY_DEVICES_description": "Dispositivi i cui stati devono essere visualizzati nella visualizzazione predefinita <b>Miei dispositivi</b>.",
"UI_MY_DEVICES_name": "Mostra nella vista Miei dispositivi",
"UI_MY_DEVICES_description": "Dispositivi i cui stati devono essere visualizzati nella visualizzazione predefinita <b>I miei dispositivi</b>.",
"UI_MY_DEVICES_name": "Mostra nella vista I miei dispositivi",
"UI_NOT_RANDOM_MAC_description": "Prefissi MAC che non devono essere contrassegnati come dispositivi casuali. Inserisci ad esempio <code>52</code> per escludere i dispositivi che iniziano con <code>52:xx:xx:xx:xx:xx</code> dall'essere contrassegnati come dispositivi con un indirizzo MAC casuale.",
"UI_NOT_RANDOM_MAC_name": "Non segnalare come casuale",
"UI_PRESENCE_description": "Seleziona quali stati devono essere mostrati nel grafico <b>Presenza dispositivo</b> nella pagina <a href=\"/devices.php\" target=\"_blank\">Dispositivi</a>.",
@@ -731,7 +735,7 @@
"settings_core_label": "Core",
"settings_device_scanners": "Scanner dei dispositivi utilizzati per rilevare i dispositivi che scrivono nella tabella del database CurrentScan.",
"settings_device_scanners_icon": "fa-solid fa-magnifying-glass-plus",
"settings_device_scanners_info": "Carica ancora più scanner di dispositivi con l'impostazione <a href=\"/settings.php#LOADED_PLUGINS\">LOADED_PLUGINS</a>",
"settings_device_scanners_info": "Carica più scanner di dispositivi con l'impostazione <a href=\"/settings.php#LOADED_PLUGINS\">LOADED_PLUGINS</a>",
"settings_device_scanners_label": "Scanner dispositivi",
"settings_enabled": "Impostazioni abilitate",
"settings_enabled_icon": "fa-solid fa-toggle-on",
@@ -754,4 +758,4 @@
"settings_system_label": "Sistema",
"settings_update_item_warning": "Aggiorna il valore qui sotto. Fai attenzione a seguire il formato precedente. <b>La convalida non viene eseguita.</b>",
"test_event_tooltip": "Salva le modifiche prima di provare le nuove impostazioni."
}
}

View File

@@ -309,6 +309,7 @@
"Gen_Filter": "Filter",
"Gen_Generate": "",
"Gen_LockedDB": "FEIL - DB kan være låst - Sjekk F12 Dev tools -> Konsoll eller prøv senere.",
"Gen_NetworkMask": "",
"Gen_Offline": "Frakoblet",
"Gen_Okay": "Ok",
"Gen_Online": "",
@@ -326,6 +327,7 @@
"Gen_SelectIcon": "",
"Gen_SelectToPreview": "",
"Gen_Selected_Devices": "Valgte Enheter:",
"Gen_Subnet": "",
"Gen_Switch": "Bytt",
"Gen_Upd": "Oppdatering vellykket",
"Gen_Upd_Fail": "Oppdatering feilet",
@@ -494,6 +496,7 @@
"Network_Cant_Assign_No_Node_Selected": "",
"Network_Configuration_Error": "Konfigurasjonsfeil",
"Network_Connected": "Tilkoblede enheter",
"Network_Devices": "",
"Network_ManageAdd": "Legg til enhet",
"Network_ManageAdd_Name": "Enhetsnavn",
"Network_ManageAdd_Name_text": "Navn uten spesialtegn",
@@ -593,6 +596,7 @@
"Settings_device_Scanners_desync": "⚠ Enhetsskanning tidsplan er ikke synkronisert lenger.",
"Settings_device_Scanners_desync_popup": "Tidsplanene for enhetsskanning (<code>*_RUN_SCHD</code>) er ikke de samme. Dette vil føre til inkonsekvent enhet på online/offline varsler. Med mindre dette er ment, kan du bruke den samme tidsplanen for alle aktiverte <b> 🔍Enhets-skannere</b>.",
"Speedtest_Results": "Speedtest resultater",
"Systeminfo_AvailableIps": "",
"Systeminfo_CPU": "CPU",
"Systeminfo_CPU_Cores": "CPU-kjerner:",
"Systeminfo_CPU_Name": "CPU-navn:",
@@ -754,4 +758,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

@@ -309,6 +309,7 @@
"Gen_Filter": "Filtr",
"Gen_Generate": "Wygeneruj",
"Gen_LockedDB": "Błąd - Baza danych może być zablokowana - Sprawdź narzędzia deweloperskie F12 -> Konsola lub spróbuj później.",
"Gen_NetworkMask": "",
"Gen_Offline": "Niedostępne",
"Gen_Okay": "Ok",
"Gen_Online": "Dostępne",
@@ -326,6 +327,7 @@
"Gen_SelectIcon": "<i class=\"fa-solid fa-chevron-down fa-fade\"></i>",
"Gen_SelectToPreview": "Wybierz, aby podglądnąć",
"Gen_Selected_Devices": "Wybrane urządzenia:",
"Gen_Subnet": "",
"Gen_Switch": "Switch",
"Gen_Upd": "Zaktualizowano pomyślnie",
"Gen_Upd_Fail": "Aktualizacja nie powiodła się",
@@ -494,6 +496,7 @@
"Network_Cant_Assign_No_Node_Selected": "",
"Network_Configuration_Error": "Błąd konfiguracji",
"Network_Connected": "Połączone urządzenia",
"Network_Devices": "",
"Network_ManageAdd": "Dodaj urządzenie",
"Network_ManageAdd_Name": "Nazwa urządzenia",
"Network_ManageAdd_Name_text": "Nazwa bez znaków specjalnych",
@@ -593,6 +596,7 @@
"Settings_device_Scanners_desync": "⚠ Harmonogramy skanerów urządzeń są niezsynchronizowane.",
"Settings_device_Scanners_desync_popup": "Harmonogramy skanerów urządzeń (<code>*_RUN_SCHD</code>) są różne. Może to prowadzić do niespójnych powiadomień o statusie online/offline urządzeń. Jeśli nie jest to zamierzone, proszę używać tego samego harmonogramu dla wszystkich włączonych <b>🔍 Skanerów urządzeń</b>.",
"Speedtest_Results": "Wyniki testu prędkości",
"Systeminfo_AvailableIps": "",
"Systeminfo_CPU": "Procesor CPU",
"Systeminfo_CPU_Cores": "Rdzenie CPU:",
"Systeminfo_CPU_Name": "Nazwa procesora CPU:",
@@ -754,4 +758,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

@@ -309,6 +309,7 @@
"Gen_Filter": "Filtro",
"Gen_Generate": "Gerar",
"Gen_LockedDB": "ERRO - O banco de dados pode estar bloqueado - Verifique F12 Ferramentas de desenvolvimento -> Console ou tente mais tarde.",
"Gen_NetworkMask": "",
"Gen_Offline": "Offline",
"Gen_Okay": "Ok",
"Gen_Online": "Online",
@@ -326,6 +327,7 @@
"Gen_SelectIcon": "<i class=\"fa-solid fa-chevron-down fa-fade\"></i>",
"Gen_SelectToPreview": "Selecionar para pré-visualizar",
"Gen_Selected_Devices": "Dispositivos selecionados:",
"Gen_Subnet": "",
"Gen_Switch": "Trocar",
"Gen_Upd": "Atualizado com sucesso",
"Gen_Upd_Fail": "A atualização falhou",
@@ -494,6 +496,7 @@
"Network_Cant_Assign_No_Node_Selected": "",
"Network_Configuration_Error": "",
"Network_Connected": "",
"Network_Devices": "",
"Network_ManageAdd": "",
"Network_ManageAdd_Name": "",
"Network_ManageAdd_Name_text": "",
@@ -593,6 +596,7 @@
"Settings_device_Scanners_desync": "",
"Settings_device_Scanners_desync_popup": "",
"Speedtest_Results": "",
"Systeminfo_AvailableIps": "",
"Systeminfo_CPU": "",
"Systeminfo_CPU_Cores": "",
"Systeminfo_CPU_Name": "",
@@ -754,4 +758,4 @@
"settings_system_label": "",
"settings_update_item_warning": "",
"test_event_tooltip": "Guarde as alterações antes de testar as definições."
}
}

View File

@@ -9,7 +9,7 @@
"About_Exit": "Зарегистрироваться",
"About_Title": "Сетевой сканер и система уведомлений",
"AppEvents_AppEventProcessed": "Обработанный",
"AppEvents_DateTimeCreated": "Обнаружено",
"AppEvents_DateTimeCreated": "Зарегистрировано",
"AppEvents_Extra": "Дополнительно",
"AppEvents_GUID": "GUID события приложения",
"AppEvents_Helper1": "Помощник 1",
@@ -66,7 +66,7 @@
"DAYS_TO_KEEP_EVENTS_name": "Удалить события старше",
"DISCOVER_PLUGINS_description": "Отключите эту опцию, чтобы ускорить инициализацию и сохранение настроек. При отключении этой опции плагины не обнаруживаются, и вы не можете добавлять новые плагины в параметр <code>LOADED_PLUGINS</code>.",
"DISCOVER_PLUGINS_name": "Обзор плагинов",
"DevDetail_Children_Title": "",
"DevDetail_Children_Title": "Дочерние отношения",
"DevDetail_Copy_Device_Title": "Скопировать данные с устройства",
"DevDetail_Copy_Device_Tooltip": "Скопируйте данные с устройства из раскрывающегося списка. Все на этой странице будет перезаписано",
"DevDetail_CustomProperties_Title": "Пользовательские свойства",
@@ -79,7 +79,7 @@
"DevDetail_EveandAl_NewDevice_Tooltip": "Будет показывать статус «Новое» для устройства и включать его в списки, когда фильтр «Новые устройства» активен. Не влияет на уведомления.",
"DevDetail_EveandAl_RandomMAC": "Случайный MAC-адрес",
"DevDetail_EveandAl_ScanCycle": "Сканировать устройство",
"DevDetail_EveandAl_ScanCycle_a": "Сканировать Устройство",
"DevDetail_EveandAl_ScanCycle_a": "Сканировать устройство",
"DevDetail_EveandAl_ScanCycle_z": "Не сканировать устройство",
"DevDetail_EveandAl_Skip": "Пропустить повторные уведомления",
"DevDetail_EveandAl_Title": "Конфигурация событий и оповещений",
@@ -103,7 +103,7 @@
"DevDetail_MainInfo_Type": "Тип",
"DevDetail_MainInfo_Vendor": "Поставщик",
"DevDetail_MainInfo_mac": "MAC адрес",
"DevDetail_NavToChildNode": "",
"DevDetail_NavToChildNode": "Открыть дочерний узел",
"DevDetail_Network_Node_hover": "Выберите родительское сетевое устройство, к которому подключено текущее устройство, чтобы заполнить дерево сети.",
"DevDetail_Network_Port_hover": "Порт, к которому подключено это устройство на родительском сетевом устройстве. Если оставить пустым, в дереве сети отобразится значок Wi-Fi.",
"DevDetail_Nmap_Scans": "Ручные сканеры Nmap",
@@ -202,7 +202,7 @@
"Device_MultiEdit_Tooltip": "Осторожно. При нажатии на эту кнопку значение слева будет применено ко всем устройствам, выбранным выше.",
"Device_Searchbox": "Поиск",
"Device_Shortcut_AllDevices": "Мои устройства",
"Device_Shortcut_AllNodes": "",
"Device_Shortcut_AllNodes": "Все узлы",
"Device_Shortcut_Archived": "Архив",
"Device_Shortcut_Connected": "Подключенные",
"Device_Shortcut_Devices": "Устройства",
@@ -229,11 +229,11 @@
"Device_TableHead_Name": "Имя",
"Device_TableHead_NetworkSite": "Сайт устройства",
"Device_TableHead_Owner": "Владелец",
"Device_TableHead_ParentRelType": "",
"Device_TableHead_ParentRelType": "Тип отношений",
"Device_TableHead_Parent_MAC": "Родительский узел сети",
"Device_TableHead_Port": "Порт",
"Device_TableHead_PresentLastScan": "Присутствие",
"Device_TableHead_ReqNicsOnline": "",
"Device_TableHead_ReqNicsOnline": "Требуется NIC онлайн",
"Device_TableHead_RowID": "ID строки",
"Device_TableHead_Rowid": "ID строки",
"Device_TableHead_SSID": "SSID",
@@ -309,6 +309,7 @@
"Gen_Filter": "Фильтр",
"Gen_Generate": "Генерировать",
"Gen_LockedDB": "ОШИБКА - Возможно, база данных заблокирована. Проверьте инструменты разработчика F12 -> Консоль или повторите попытку позже.",
"Gen_NetworkMask": "",
"Gen_Offline": "Оффлайн",
"Gen_Okay": "OK",
"Gen_Online": "Онлайн",
@@ -326,6 +327,7 @@
"Gen_SelectIcon": "<i class=\"fa-solid fa-chevron-down fa-fade\"></i>",
"Gen_SelectToPreview": "Выберите для предварительного просмотра",
"Gen_Selected_Devices": "Выбранные устройства:",
"Gen_Subnet": "",
"Gen_Switch": "Переключить",
"Gen_Upd": "Успешное обновление",
"Gen_Upd_Fail": "Не удалось обновить",
@@ -491,9 +493,10 @@
"Navigation_Workflows": "Рабочие процессы",
"Network_Assign": "Подключитесь к указанному выше сетевому узлу <i class=\"fa fa-server\"></i>",
"Network_Cant_Assign": "Невозможно назначить корневой узел Интернета в качестве дочернего конечного узла.",
"Network_Cant_Assign_No_Node_Selected": "",
"Network_Cant_Assign_No_Node_Selected": "Невозможно назначить, не выбран узел-родитель.",
"Network_Configuration_Error": "Ошибка конфигурации",
"Network_Connected": "Подключенные устройства",
"Network_Devices": "Сетевые устройства",
"Network_ManageAdd": "Добавить устройство",
"Network_ManageAdd_Name": "Имя устройства",
"Network_ManageAdd_Name_text": "Имя без специальных символов",
@@ -528,8 +531,8 @@
"Network_Root": "Корневой узел",
"Network_Root_Not_Configured": "Выберите тип сетевого устройства, например <b>Шлюз</b>, в поле <b>Тип</b> <a href=\"deviceDetails.php?mac=Internet\">корневого Интернет-устройства</a>, чтобы начать настройку этого экрана. <br/><br/> Дополнительную документацию можно найти в руководстве <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/NETWORK_TREE.md\" target=\"_blank \">Как настроить свою сетевую страницу</a>",
"Network_Root_Unconfigurable": "Ненастраиваемый ROOT",
"Network_ShowArchived": "",
"Network_ShowOffline": "",
"Network_ShowArchived": "Показать архивные",
"Network_ShowOffline": "Показать офлайн устройства",
"Network_Table_Hostname": "Имя хоста",
"Network_Table_IP": "IP",
"Network_Table_State": "Состояние",
@@ -593,6 +596,7 @@
"Settings_device_Scanners_desync": "⚠ Расписания сканера устройств не синхронизированы.",
"Settings_device_Scanners_desync_popup": "Расписания сканеров устройств (<code>*_RUN_SCHD</code>) не совпадают. Это приведет к несогласованным онлайн/оффлайн уведомлениям устройства. Если это не предусмотрено, используйте одно и то же расписание для всех включенных <b>🔍Сканеров устройств</b>.",
"Speedtest_Results": "Результаты теста скорости",
"Systeminfo_AvailableIps": "",
"Systeminfo_CPU": "CPU",
"Systeminfo_CPU_Cores": "Ядра CPU:",
"Systeminfo_CPU_Name": "Имя CPU:",
@@ -718,7 +722,7 @@
"devices_old": "Актуализируется…",
"general_event_description": "Событие, которое вы инициировали, может занять некоторое время, прежде чем фоновые процессы завершатся. Выполнение завершится, как только очередь выполнения, указанная ниже, опустеет (Проверьте <a href='/maintenance.php#tab_Logging'>журнал ошибок</a> при возникновении проблем). <br/> <br/>· · Очередь выполнения:",
"general_event_title": "Выполнение специального события",
"go_to_device_event_tooltip": "",
"go_to_device_event_tooltip": "Перейти к устройству",
"go_to_node_event_tooltip": "Переход на страницу \"Сеть\" данного узла",
"new_version_available": "Доступна новая версия.",
"report_guid": "Идентификатор уведомления:",
@@ -726,7 +730,7 @@
"report_select_format": "Выбрать формат:",
"report_time": "Время уведомления:",
"run_event_tooltip": "Включите настройку и сначала сохраните изменения, прежде чем запускать ее.",
"select_icon_event_tooltip": "",
"select_icon_event_tooltip": "Выбрать значок",
"settings_core_icon": "fa-solid fa-gem",
"settings_core_label": "Основные",
"settings_device_scanners": "Сканеры устройств, используемые для обнаружения устройств, записывающих данные в таблицу базы данных CurrentScan.",
@@ -754,4 +758,4 @@
"settings_system_label": "Система",
"settings_update_item_warning": "Обновить значение ниже. Будьте осторожны, следуя предыдущему формату. <b>Проверка не выполняется.</b>",
"test_event_tooltip": "Сначала сохраните изменения, прежде чем проверять настройки."
}
}

View File

@@ -309,6 +309,7 @@
"Gen_Filter": "Filtre",
"Gen_Generate": "Oluştur",
"Gen_LockedDB": "HATA - Veritabanı kilitlenmiş olabilir - F12 Geliştirici araçlarını -> Konsol kısmını kontrol edin veya daha sonra tekrar deneyin.",
"Gen_NetworkMask": "",
"Gen_Offline": "Çevrimdışı",
"Gen_Okay": "Tamam",
"Gen_Online": "Çevrimiçi",
@@ -326,6 +327,7 @@
"Gen_SelectIcon": "<i class=\"fa-solid fa-chevron-down fa-fade\"></i>",
"Gen_SelectToPreview": "Önizleme yapmak için seçin",
"Gen_Selected_Devices": "Seçilmiş Cihazlar:",
"Gen_Subnet": "",
"Gen_Switch": "Switch",
"Gen_Upd": "Başarılı bir şekilde güncellendi",
"Gen_Upd_Fail": "Güncelleme işlemi başarısız oldu",
@@ -494,6 +496,7 @@
"Network_Cant_Assign_No_Node_Selected": "",
"Network_Configuration_Error": "Kurulum Hatası",
"Network_Connected": "Bağlanmış cihazlar",
"Network_Devices": "",
"Network_ManageAdd": "Cihaz Ekle",
"Network_ManageAdd_Name": "Cihaz İsmi",
"Network_ManageAdd_Name_text": "Özel karakterler olmadan isim veriniz",
@@ -593,6 +596,7 @@
"Settings_device_Scanners_desync": "",
"Settings_device_Scanners_desync_popup": "",
"Speedtest_Results": "",
"Systeminfo_AvailableIps": "",
"Systeminfo_CPU": "",
"Systeminfo_CPU_Cores": "",
"Systeminfo_CPU_Name": "",
@@ -754,4 +758,4 @@
"settings_system_label": "Sistem",
"settings_update_item_warning": "",
"test_event_tooltip": ""
}
}

18
front/php/templates/language/uk_ua.json Executable file → Normal file
View File

@@ -73,7 +73,7 @@
"DevDetail_CustomProps_reset_info": "Це призведе до видалення настроюваних властивостей на цьому пристрої та скидання їх до значень за замовчуванням.",
"DevDetail_DisplayFields_Title": "Дисплей",
"DevDetail_EveandAl_AlertAllEvents": "Повідомлення про події",
"DevDetail_EveandAl_AlertDown": "Сповіщення вниз",
"DevDetail_EveandAl_AlertDown": "Агент вниз",
"DevDetail_EveandAl_Archived": "Архівовано",
"DevDetail_EveandAl_NewDevice": "Новий пристроїв",
"DevDetail_EveandAl_NewDevice_Tooltip": "Відображатиме новий статус для пристрою та включатиме його до списків, коли фільтр нових пристроїв активний. Не впливає на сповіщення.",
@@ -185,7 +185,7 @@
"DevDetail_button_AddIcon": "Додати новий значок",
"DevDetail_button_AddIcon_Help": "Вставте HTML-тег SVG або значок HTML-тегу Font Awesome. Щоб дізнатися більше, прочитайте <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/ICONS.md\" target=\"_blank\">документацію щодо значків</a>.",
"DevDetail_button_AddIcon_Tooltip": "Додайте нову піктограму до цього пристрою, яка ще не доступна в спадному меню.",
"DevDetail_button_Delete": "Видалити пристрій",
"DevDetail_button_Delete": "Видалити Пристрій",
"DevDetail_button_DeleteEvents": "Видалити події",
"DevDetail_button_DeleteEvents_Warning": "Ви впевнені, що бажаєте видалити всі події цього пристрою?<br><br>(це очистить <b>історію подій</b> і <b>сеанси</b> та може допомогти з постійними (постійними) ) сповіщення)",
"DevDetail_button_Delete_ask": "Ви впевнені, що хочете видалити цей пристрій? Натомість ви також можете заархівувати його.",
@@ -211,7 +211,7 @@
"Device_Shortcut_Favorites": "Вибране",
"Device_Shortcut_NewDevices": "Нові пристрої",
"Device_Shortcut_OnlineChart": "Наявність пристрою",
"Device_TableHead_AlertDown": "Сповіщення вниз",
"Device_TableHead_AlertDown": "Агент Вниз",
"Device_TableHead_Connected_Devices": "Зв'язки",
"Device_TableHead_CustomProps": "Реквізит / дії",
"Device_TableHead_FQDN": "FQDN",
@@ -309,6 +309,7 @@
"Gen_Filter": "Фільтр",
"Gen_Generate": "Генерувати",
"Gen_LockedDB": "ПОМИЛКА БД може бути заблоковано перевірте F12 Інструменти розробника -> Консоль або спробуйте пізніше.",
"Gen_NetworkMask": "",
"Gen_Offline": "Офлайн",
"Gen_Okay": "Гаразд",
"Gen_Online": "Онлайн",
@@ -326,6 +327,7 @@
"Gen_SelectIcon": "<i class=\"fa-solid fa-chevron-down fa-fade\"></i>",
"Gen_SelectToPreview": "Виберіть для попереднього перегляду",
"Gen_Selected_Devices": "Вибрані пристрої:",
"Gen_Subnet": "Підмережа",
"Gen_Switch": "Перемикач",
"Gen_Upd": "Оновлено успішно",
"Gen_Upd_Fail": "Не вдалося оновити",
@@ -494,6 +496,7 @@
"Network_Cant_Assign_No_Node_Selected": "Неможливо призначити, не вибрано батьківський вузол.",
"Network_Configuration_Error": "Помилка конфігурації",
"Network_Connected": "Підключені пристрої",
"Network_Devices": "Мережеві пристрої",
"Network_ManageAdd": "Додати пристрій",
"Network_ManageAdd_Name": "Назва пристрою",
"Network_ManageAdd_Name_text": "Назва без спеціальних символів",
@@ -501,7 +504,7 @@
"Network_ManageAdd_Port_text": "залиште порожнім для wifi та powerline",
"Network_ManageAdd_Submit": "Додати пристрій",
"Network_ManageAdd_Type": "Тип пристрою",
"Network_ManageAdd_Type_text": "-- Виберіть тип --",
"Network_ManageAdd_Type_text": "-- Виберіть Тип --",
"Network_ManageAssign": "Призначити",
"Network_ManageDel": "Видалити пристрій",
"Network_ManageDel_Name": "Пристрій для видалення",
@@ -536,7 +539,7 @@
"Network_Title": "Огляд мережі",
"Network_UnassignedDevices": "Непризначені пристрої",
"Notifications_All": "Усі сповіщення",
"Notifications_Mark_All_Read": "Позначити все як прочитане",
"Notifications_Mark_All_Read": "Позначити як прочитане",
"PIALERT_WEB_PASSWORD_description": "Пароль за умовчанням — <code>123456</code>. Щоб змінити пароль, запустіть <code>/app/back/pialert-cli</code> у контейнері або скористайтеся <a onclick=\"toggleAllSettings()\" href=\"#SETPWD_RUN\"><code>SETPWD_RUN</code> Плагін встановлення пароля</a>.",
"PIALERT_WEB_PASSWORD_name": "Пароль для входу",
"PIALERT_WEB_PROTECTION_description": "Якщо ввімкнено, відображається діалогове вікно входу. Уважно прочитайте нижче, якщо вас заблокують у вашому екземплярі.",
@@ -562,7 +565,7 @@
"Presence_Key_OnlineNow_desc": "Під час останнього сканування пристрій виявлено як онлайн.",
"Presence_Key_OnlinePast": "Минулий онлайн",
"Presence_Key_OnlinePastMiss": "Минулий онлайн (пропущений матч)",
"Presence_Key_OnlinePastMiss_desc": "Пристрій був онлайн, але зараз офлайн, але початковий сеанс може бути відсутнім або містить суперечливі дані. (може бути помилка - будь ласка, надішліть PR, якщо ви знаєте, як це виправити - я трохи загубився в коді тут)",
"Presence_Key_OnlinePastMiss_desc": "Пристрій був онлайн у минулому, але зараз офлайн, але початковий сеанс може бути відсутнім або містити суперечливі дані.",
"Presence_Key_OnlinePast_desc": "Пристрій був онлайн, але зараз офлайн.",
"Presence_Loading": "Завантаження…",
"Presence_Shortcut_AllDevices": "Мої пристрої",
@@ -593,6 +596,7 @@
"Settings_device_Scanners_desync": "⚠ Розклади сканування пристрою не синхронізовані.",
"Settings_device_Scanners_desync_popup": "Розклади сканерів пристроїв (<code>*_RUN_SCHD</code>) не однакові. Це призведе до непослідовних сповіщень пристрою онлайн/офлайн. Якщо це не передбачено, використовуйте той самий розклад для всіх увімкнених <b>🔍сканерів пристроїв</b>.",
"Speedtest_Results": "Результати Speedtest",
"Systeminfo_AvailableIps": "Доступні IP-адреси",
"Systeminfo_CPU": "CPU",
"Systeminfo_CPU_Cores": "Ядра ЦП:",
"Systeminfo_CPU_Name": "Назва ЦП:",
@@ -731,7 +735,7 @@
"settings_core_label": "Ядро",
"settings_device_scanners": "Сканери пристроїв, які використовуються для виявлення пристроїв, які записують дані в таблицю бази даних CurrentScan.",
"settings_device_scanners_icon": "fa-solid fa-збільшувальне-скло-плюс",
"settings_device_scanners_info": "Завантажте ще більше сканерів пристроїв за допомогою параметра <a href=\"/settings.php#LOADED_PLUGINS\">LOADED_PLUGINS</a>",
"settings_device_scanners_info": "Завантажте більше сканерів пристроїв за допомогою налаштування <a href=\"/settings.php#LOADED_PLUGINS\">LOADED_PLUGINS</a>",
"settings_device_scanners_label": "Сканери пристроїв",
"settings_enabled": "Увімкнені налаштування",
"settings_enabled_icon": "fa-твердий fa-перемикач",

View File

@@ -309,6 +309,7 @@
"Gen_Filter": "筛选",
"Gen_Generate": "生成",
"Gen_LockedDB": "错误 - DB 可能被锁定 - 检查 F12 开发工具 -> 控制台或稍后重试。",
"Gen_NetworkMask": "",
"Gen_Offline": "离线",
"Gen_Okay": "Ok",
"Gen_Online": "在线",
@@ -326,6 +327,7 @@
"Gen_SelectIcon": "<i class=\"fa-solid fa-chevron-down fa-fade\"></i>",
"Gen_SelectToPreview": "选择预览",
"Gen_Selected_Devices": "选定的设备:",
"Gen_Subnet": "",
"Gen_Switch": "交换",
"Gen_Upd": "已成功更新",
"Gen_Upd_Fail": "更新失败",
@@ -494,6 +496,7 @@
"Network_Cant_Assign_No_Node_Selected": "无法分配,未选择父节点。",
"Network_Configuration_Error": "配置错误",
"Network_Connected": "联网设备",
"Network_Devices": "",
"Network_ManageAdd": "添加设备",
"Network_ManageAdd_Name": "设备名称",
"Network_ManageAdd_Name_text": "名称不包含特殊字符",
@@ -562,7 +565,7 @@
"Presence_Key_OnlineNow_desc": "该设备在上次扫描中被检测为在线。",
"Presence_Key_OnlinePast": "之前在线",
"Presence_Key_OnlinePastMiss": "之前在线(不匹配)",
"Presence_Key_OnlinePastMiss_desc": "设备曾在线,但目前离线。初始会话可能缺失或存在数据冲突可能是bug - 要是你知道怎么修复请开个PR - 我不知道怎么处理)",
"Presence_Key_OnlinePastMiss_desc": "设备曾在线,但目前离线。初始会话可能缺失或存在数据冲突",
"Presence_Key_OnlinePast_desc": "设备曾在线,但目前离线。",
"Presence_Loading": "加载中…",
"Presence_Shortcut_AllDevices": "我的设备",
@@ -593,6 +596,7 @@
"Settings_device_Scanners_desync": "⚠ 设备扫描计划不同步。",
"Settings_device_Scanners_desync_popup": "设备扫描 (<code>*_RUN_SCHD</code>) 的时间表并不相同。这将导致设备在线/离线通知不一致。除非有意为之,否则请对所有启用的 <b>🔍设备扫描</b> 使用相同的时间表。",
"Speedtest_Results": "Speedtest 结果",
"Systeminfo_AvailableIps": "",
"Systeminfo_CPU": "CPU",
"Systeminfo_CPU_Cores": "CPU 核心:",
"Systeminfo_CPU_Name": "CPU 名称:",
@@ -754,4 +758,4 @@
"settings_system_label": "系统",
"settings_update_item_warning": "更新下面的值。请注意遵循先前的格式。<b>未执行验证。</b>",
"test_event_tooltip": "在测试设置之前,请先保存更改。"
}
}

View File

@@ -78,7 +78,7 @@ def main():
#-------------------------------------------------------------------------------
def check_config():
if get_setting_value('APPRISE_URL') == '' or get_setting_value('APPRISE_HOST') == '':
if get_setting_value('APPRISE_HOST') == '' or (get_setting_value('APPRISE_URL') == '' and get_setting_value('APPRISE_TAG') == ''):
return False
else:
return True
@@ -106,8 +106,11 @@ def send(html, text):
# Define Apprise compatible payload (https://github.com/caronc/apprise-api#stateless-solution)
target_key = "tag" if get_setting_value('APPRISE_TARGETTYPE') == 'tag' else "urls"
target_value = get_setting_value('APPRISE_TAG') if target_key == 'tag' else get_setting_value('APPRISE_URL')
_json_payload = {
"urls": get_setting_value('APPRISE_URL'),
target_key: target_value,
"title": "NetAlertX Notifications",
"format": get_setting_value('APPRISE_PAYLOAD'),
"body": payloadData

View File

@@ -422,6 +422,38 @@
}
]
},
{
"function": "TARGETTYPE",
"type": {
"dataType": "string",
"elements": [
{ "elementType": "select", "elementOptions": [], "transformers": [] }
]
},
"default_value": "url",
"options": ["url", "tag"],
"localized": ["name", "description"],
"name": [
{
"language_code": "en_us",
"string": "Target type"
},
{
"language_code": "es_es",
"string": "Tipo de alvo"
}
],
"description": [
{
"language_code": "en_us",
"string": "Select the target type to send to Apprise. If <code>url</code> is selected, the value of the <code>APPRISE_URL</code> setting will be used. If <code>tag</code> is selected, the <code>APPRISE_TAG</code> setting must be specified and will be used instead."
},
{
"language_code": "es_es",
"string": "Seleccione el tipo de alvo enviada a Apprise."
}
]
},
{
"function": "URL",
"type": {
@@ -454,6 +486,38 @@
}
]
},
{
"function": "TAG",
"type": {
"dataType": "string",
"elements": [
{ "elementType": "input", "elementOptions": [], "transformers": [] }
]
},
"default_value": "",
"options": [],
"localized": ["name", "description"],
"name": [
{
"language_code": "en_us",
"string": "Apprise notification tag"
},
{
"language_code": "es_es",
"string": "Tag de notificación de Apprise"
}
],
"description": [
{
"language_code": "en_us",
"string": "Apprise notification target tag."
},
{
"language_code": "es_es",
"string": "Informar de la tag de destino de la notificación."
}
]
},
{
"function": "PAYLOAD",
"type": {

View File

@@ -261,36 +261,36 @@ pluginUnprocessedEvents = []
pluginObjects = []
pluginHistory = []
function getData(){
console.log("Plugins getData called");
async function getData() {
try {
showSpinner();
console.log("Plugins getData called");
// Show the loading spinner while generating
showSpinner();
const [plugins, events, objects, history] = await Promise.all([
fetchJson('plugins.json'),
fetchJson('table_plugins_events.json'),
fetchJson('table_plugins_objects.json'),
fetchJson('table_plugins_history.json')
]);
$.get('php/server/query_json.php?file=plugins.json', function(res) {
pluginDefinitions = res["data"];
pluginDefinitions = plugins.data;
pluginUnprocessedEvents = events.data;
pluginObjects = objects.data;
pluginHistory = history.data;
$.get('php/server/query_json.php?file=table_plugins_events.json', function(res) {
pluginUnprocessedEvents = res["data"];
$.get('php/server/query_json.php?file=table_plugins_objects.json', function(res) {
pluginObjects = res["data"];
$.get('php/server/query_json.php?file=table_plugins_history.json', function(res) {
pluginHistory = res["data"];
generateTabs()
});
});
});
});
generateTabs();
} catch (err) {
console.error("Failed to load data", err);
}
}
async function fetchJson(filename) {
const response = await fetch(`php/server/query_json.php?file=${filename}`);
if (!response.ok) throw new Error(`Failed to load ${filename}`);
return await response.json();
}
function generateTabs() {
// Reset the tabs by clearing previous headers and content

View File

@@ -16,6 +16,10 @@
require 'php/templates/header.php';
?>
<script>
showSpinner();
</script>
<!-- Page ------------------------------------------------------------------ -->
<div class="content-wrapper">
@@ -67,7 +71,7 @@
<div class="inner"> <h3 id="devicesNew"> -- </h3>
<p class="infobox_label"><?= lang('Presence_Shortcut_NewDevices');?></p>
</div>
<div class="icon"> <i class="ion ion-plus-round text-yellow-40"></i> </div>
<div class="icon"> <i class="fa-solid fa-circle-plus text-yellow-40"></i> </div>
</div>
</a>
</div>

View File

@@ -5,6 +5,10 @@
?>
<script>
showSpinner();
</script>
<!-- Page ------------------------------------------------------------------ -->
<div class="content-wrapper">
@@ -119,6 +123,9 @@
})
.catch(error => {
console.error('Error:', error);
})
.finally(() => {
hideSpinner(); // always called, even if error occurred
});
}

View File

@@ -17,6 +17,12 @@
<!-- ----------------------------------------------------------------------- -->
<script>
// show spinning icon
showSpinner()
</script>
<!-- Page ------------------------------------------------------------------ -->
<div class="content-wrapper">
@@ -197,6 +203,16 @@ echo ' </tbody>
</div>
</div>';
// Available IPs ----------------------------------------------------------
echo '<div class="box box-solid">
<div class="box-header">
<h3 class="box-title availableips_headline"><i class="fa fa-list"></i> ' . lang('Systeminfo_AvailableIps') . '</h3>
</div>
<div class="box-body">
<table id="availableIpsTable" class="display" style="width:100%"></table>
</div>
</div>';
// Client ----------------------------------------------------------
echo '<div class="box box-solid">
<div class="box-header">
@@ -574,26 +590,112 @@ echo '<br>';
<!-- ----------------------------------------------------------------------- -->
<!-- DataTable initialization -->
<script>
// show spinning icon
showSpinner()
// --------------------------------------------------------
// Available free IPS functionality
function inferNetworkRange(usedIps) {
if (!usedIps || usedIps.length === 0) return [];
const subnetMap = {};
// Group IPs by /24 subnet
for (const ip of usedIps) {
const parts = ip.split('.');
if (parts.length !== 4) continue;
const subnet = `${parts[0]}.${parts[1]}.${parts[2]}`;
if (!subnetMap[subnet]) subnetMap[subnet] = [];
subnetMap[subnet].push(ip);
}
const result = [];
for (const [subnet, ips] of Object.entries(subnetMap)) {
if (ips.length > 5) {
for (let i = 2; i < 255; i++) {
const ip = `${subnet}.${i}`;
result.push({ subnet, ip });
}
}
}
return result;
}
function fetchUsedIps(callback) {
$.ajax({
url: 'php/server/query_graphql.php',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
query: `
query devices($options: PageQueryOptionsInput) {
devices(options: $options) {
devices {
devLastIP
}
}
}
`,
variables: {
options: {
status: "all_devices"
}
}
}),
success: function(response) {
console.log(response);
const usedIps = (response?.devices?.devices || [])
.map(d => d.devLastIP)
.filter(ip => ip && ip.includes('.'));
callback(usedIps);
},
error: function(err) {
console.error("Error fetching IPs:", err);
callback([]);
}
});
}
function renderAvailableIpsTable(allIps, usedIps) {
const availableIps = allIps.filter(row => !usedIps.includes(row.ip));
console.log(allIps);
console.log(usedIps);
console.log(availableIps);
$('#availableIpsTable').DataTable({
destroy: true,
data: availableIps,
columns: [
{ title: getString("Gen_Subnet"), data: "subnet" },
{ title: getString("Systeminfo_AvailableIps"), data: "ip" }
],
pageLength: 10
});
}
// INIT
$(document).ready(function() {
fetchUsedIps(usedIps => {
const allIps = inferNetworkRange(usedIps);
renderAvailableIpsTable(allIps, usedIps);
});
setTimeout(() => {
$('#networkTable').DataTable({
"searching": true,
"order": [[0, "desc"]]
});
// hide spinning icon
hideSpinner()
}, 500);
searching: true,
order: [[0, "desc"]],
initComplete: function(settings, json) {
hideSpinner(); // Called after the DataTable is fully initialized
}
});
}, 200);
});
</script>

View File

@@ -9,6 +9,9 @@ require 'php/templates/header.php';
<!-- ----------------------------------------------------------------------- -->
<script>
showSpinner();
</script>
<div id="notifications" class="content-wrapper">
<section class="content">
@@ -160,7 +163,10 @@ require 'php/templates/header.php';
],
"order": [[0, "desc"]]
});
,
initComplete: function(settings, json) {
hideSpinner(); // Called after the DataTable is fully initialized
}});
fetchData(function(data) {
table.clear().rows.add(data).draw();

View File

@@ -4,6 +4,10 @@
require_once $_SERVER['DOCUMENT_ROOT'] . '/php/templates/security.php';
?>
<script>
showSpinner();
</script>
<section class="content workflows col-sm-12 col-xs-12">
<div id="workflowContainerWrap" class="bg-grey-dark color-palette col-sm-12 col-xs-12 box-default box-info ">
@@ -83,8 +87,6 @@ let emptyWorkflow = {
// Retrieve and process the data
function getData() {
showSpinner();
getSetting()
$.get('php/server/query_json.php?file=workflows.json')

View File

@@ -135,14 +135,17 @@ class Query(ObjectType):
status = options.status
mylog('verbose', f'[graphql_schema] Applying status filter: {status}')
# Include devices matching criteria in UI_MY_DEVICES
allowed_statuses = get_setting_value("UI_MY_DEVICES")
hidden_relationships = get_setting_value("UI_hide_rel_types")
network_dev_types = get_setting_value("NETWORK_DEVICE_TYPES")
mylog('verbose', f'[graphql_schema] allowed_statuses: {allowed_statuses}')
mylog('verbose', f'[graphql_schema] hidden_relationships: {hidden_relationships}')
mylog('verbose', f'[graphql_schema] network_dev_types: {network_dev_types}')
# Filtering based on the "status"
if status == "my_devices":
# Include devices matching criteria in UI_MY_DEVICES
allowed_statuses = get_setting_value("UI_MY_DEVICES")
hidden_relationships = get_setting_value("UI_hide_rel_types") # 🆕
mylog('verbose', f'[graphql_schema] allowed_statuses: {allowed_statuses}')
mylog('verbose', f'[graphql_schema] hidden_relationships: {hidden_relationships}')
devices_data = [
device for device in devices_data
@@ -174,7 +177,9 @@ class Query(ObjectType):
devices_data = [device for device in devices_data if device["devIsArchived"] == 1]
elif status == "offline":
devices_data = [device for device in devices_data if device["devPresentLastScan"] == 0]
elif status == "all_nodes":
elif status == "network_devices":
devices_data = [device for device in devices_data if device["devType"] in network_dev_types]
elif status == "all_devices":
devices_data = devices_data # keep all
# additional filters