net refactor

This commit is contained in:
jokob-sk
2025-07-14 11:01:16 +10:00
parent e27af88690
commit 61de54bc34
28 changed files with 126 additions and 364 deletions

View File

@@ -23,11 +23,11 @@ services:
# - ${DEV_LOCATION}/api:/app/api
# ---------------------------------------------------------------------------
# DELETE START anyone trying to use this file: comment out / delete BELOW lines, they are only for development purposes
- ${APP_DATA_LOCATION}/netalertx/dhcp_samples/dhcp1.leases:/mnt/dhcp1.leases
- ${APP_DATA_LOCATION}/netalertx/dhcp_samples/dhcp2.leases:/mnt/dhcp2.leases
- ${APP_DATA_LOCATION}/netalertx/dhcp_samples/pihole_dhcp_full.leases:/etc/pihole/dhcp.leases
- ${APP_DATA_LOCATION}/netalertx/dhcp_samples/pihole_dhcp_2.leases:/etc/pihole/dhcp2.leases
- ${APP_DATA_LOCATION}/pihole/etc-pihole/pihole-FTL.db:/etc/pihole/pihole-FTL.db
- ${APP_DATA_LOCATION}/netalertx/dhcp_samples/dhcp1.leases:/mnt/dhcp1.leases # test data for DCPLSS plugin
- ${APP_DATA_LOCATION}/netalertx/dhcp_samples/dhcp2.leases:/mnt/dhcp2.leases # test data for DCPLSS plugin
- ${APP_DATA_LOCATION}/netalertx/dhcp_samples/pihole_dhcp_full.leases:/etc/pihole/dhcp.leases # test data for DCPLSS plugin
- ${APP_DATA_LOCATION}/netalertx/dhcp_samples/pihole_dhcp_2.leases:/etc/pihole/dhcp2.leases # test data for DCPLSS plugin
- ${APP_DATA_LOCATION}/pihole/etc-pihole/pihole-FTL.db:/etc/pihole/pihole-FTL.db # test data for PIHOLE plugin
- ${DEV_LOCATION}/mkdocs.yml:/app/mkdocs.yml
- ${DEV_LOCATION}/docs:/app/docs
- ${DEV_LOCATION}/server:/app/server

View File

@@ -10,7 +10,7 @@ Check the the HTTP response of the failing backend call by following these steps
- Copy the URL causing the error and enter it in the address bar of your browser directly and hit enter. The copied URLs could look something like this (notice the query strings at the end):
- `http://<NetAlertX URL>:20211/api/table_devices.json?nocache=1704141103121`
- `http://<NetAlertX URL>:20211/php/server/devices.php?action=getDevicesTotals`
- `http://<NetAlertX URL>:20211/php/server/devices.php?action=getDevicesList&status=all`
- Post the error response in the existing issue thread on GitHub or create a new issue and include the redacted response of the failing query.

View File

@@ -1790,7 +1790,7 @@ input[readonly] {
.plugin-content #tabs-content-location
{
margin: 0px;
/* padding-top: 0; */
padding-top: 0;
}
.integrations-plugins .content

View File

@@ -722,7 +722,7 @@ input[type="password"]::-webkit-caps-lock-indicator {
margin-left: 0px;
}
.small-box:hover .icon {
font-size: 3.74em;
font-size: 3em;
}
.small-box .icon {
top: 0.01em;

View File

@@ -724,7 +724,7 @@
margin-left: 0px;
}
.small-box:hover .icon {
font-size: 3.74em;
font-size: 3em;
}
.small-box .icon {
top: 0.01em;

View File

@@ -14,7 +14,7 @@
<?= lang("DevDetail_Tab_Tools_Internet_Info_Description") ?>
</h5>
<br>
<div style="width:100%; text-align: center; margin-bottom: 50px;">
<div style="width:100%; text-align: center;">
<button type="button" id="internetinfo" class="btn btn-primary pa-btn" style="margin: auto;" onclick="internetinfo()">
<?= lang("DevDetail_Tab_Tools_Internet_Info_Start") ?></button>
<br>
@@ -33,13 +33,13 @@
<?= lang("DevDetail_Copy_Device_Tooltip") ?>
</h5>
<br>
<div style="width:100%; text-align: center; margin-bottom: 50px;">
<div style="width:100%; text-align: center;">
<select class="form-control"
title="<?= lang('DevDetail_Copy_Device_Tooltip');?>"
id="txtCopyFromDevice" >
<option value="lemp_loading" id="lemp_loading">Loading</option>
</select>
<button type="button" id="internetinfo" class="btn btn-primary pa-btn" style="margin: auto;" onclick="()">
<button type="button" id="internetinfo" class="btn btn-primary pa-btn" style="margin: auto; margin-top:10px;" onclick="copyFromDevice()">
<?= lang("BackDevDetail_Copy_Title") ?></button>
<br>
</div>
@@ -56,7 +56,7 @@
<?= lang("DevDetail_Tools_WOL_noti_text") ?>
</h5>
<br>
<div style="width:100%; text-align: center; margin-bottom: 50px;">
<div style="width:100%; text-align: center;">
<button type="button" id="internetinfo" class="btn btn-primary pa-btn" style="margin: auto;" onclick="wakeonlan()">
<?= lang("DevDetail_Tools_WOL_noti") ?></button>
<br>
@@ -74,7 +74,7 @@
<?= lang("DevDetail_button_DeleteEvents_Warning") ?>
</h5>
<br>
<div style="width:100%; text-align: center; margin-bottom: 50px;">
<div style="width:100%; text-align: center;">
<button type="button"
class="btn btn-default pa-btn pa-btn-delete"
style="margin-left:0px;"
@@ -94,7 +94,7 @@
<?= lang("DevDetail_CustomProps_reset_info") ?>
</h5>
<br>
<div style="width:100%; text-align: center; margin-bottom: 50px;">
<div style="width:100%; text-align: center;">
<button type="button"
class="btn btn-default pa-btn pa-btn-delete"
style="margin-left:0px;"
@@ -116,7 +116,7 @@
<?= lang("DevDetail_Tab_Tools_Speedtest_Description") ?>
</h5>
<br>
<div style="width:100%; text-align: center; margin-bottom: 50px;">
<div style="width:100%; text-align: center;">
<button type="button" id="speedtestcli" class="btn btn-primary pa-btn" style="margin: auto;" onclick="speedtestcli()">
<?= lang("DevDetail_Tab_Tools_Speedtest_Start") ?></button>
<br>
@@ -133,7 +133,7 @@
<h5 class="">
<?= lang("DevDetail_Tab_Tools_Traceroute_Description") ?>
</h5>
<div style="width:100%; text-align: center; margin-bottom: 50px;">
<div style="width:100%; text-align: center;">
<button type="button" id="traceroute" class="btn btn-primary pa-btn" style="margin: auto;" onclick="traceroute()">
<?= lang("DevDetail_Tab_Tools_Traceroute_Start") ?>
</button>
@@ -151,7 +151,7 @@
<h5 class="">
<?= lang("DevDetail_Tab_Tools_Nslookup_Description") ?>
</h5>
<div style="width:100%; text-align: center; margin-bottom: 50px;">
<div style="width:100%; text-align: center;">
<button type="button" id="nslookup" class="btn btn-primary pa-btn" style="margin: auto;" onclick="nslookup()">
<?= lang("DevDetail_Tab_Tools_Nslookup_Start") ?>
</button>

View File

@@ -1192,10 +1192,34 @@ function generateFormHtml(settingsData, set, overrideValue, overrideOptions, ori
const eventsList = createArray(set['setEvents']);
// inline buttons events
if (eventsList.length > 0) {
if (eventsList.length > 0) {
eventsList.forEach(event => {
let eventIcon = "fa-play";
switch (event) {
case "add_icon":
case "add_option":
eventIcon = "fa-square-plus";
break;
case "copy_icons":
eventIcon = "fa-copy";
break;
case "go_to_device":
eventIcon = "fa-square-up-right";
break;
case "go_to_node":
eventIcon = "fa-network-wired";
break;
case "run":
eventIcon = "fa-play";
break;
case "test":
eventIcon = "fa-vial-circle-check";
break;
default:
eventIcon = "fa-play";
break;
}
eventsHtml += `<span class="input-group-addon pointer"
id="${`${event}_${setKey}`}"
@@ -1204,10 +1228,10 @@ function generateFormHtml(settingsData, set, overrideValue, overrideOptions, ori
data-myparam-plugin="${setKey.split('_')[0] || ''}"
data-myevent="${event}"
onclick="execute_settingEvent(this)">
<i title="${getString(event + "_event_tooltip")}" class="fa ${getString(event + "_event_icon")}"></i>
<i title="${getString(event + "_event_tooltip")}" class="fa ${eventIcon}"></i>
</span>`;
});
}
}
// Combine and return the final HTML
return inputHtml + eventsHtml;

View File

@@ -339,6 +339,7 @@ function execute_settingEvent(element) {
feSetKey = $(element).attr('data-myparam-setkey');
feParam = $(element).attr('data-myparam');
feSourceId = $(element).attr('id');
feValue = $("#"+feSetKey).val();
if (["test", "run"].includes(feEvent)) {
// Calls a backend function to add a front-end event (specified by the attributes 'data-myevent' and 'data-myparam-plugin' on the passed element) to an execution queue
@@ -391,9 +392,12 @@ function execute_settingEvent(element) {
getString('Gen_Okay'),
'overwriteIconType'
);
} else if (["go_to_device"].includes(feEvent)) {
goToDevice(feValue);
} else if (["go_to_node"].includes(feEvent)) {
goToNetworkNode('NEWDEV_devParentMAC');
goToNetworkNode(feValue);
} else {
console.warn(`🔺Not implemented: ${feEvent}`)
@@ -405,13 +409,20 @@ function execute_settingEvent(element) {
// -----------------------------------------------------------------------------
// Go to the correct network node in the Network section
function goToNetworkNode(dropdownId)
function goToNetworkNode(mac)
{
setCache('activeNetworkTab', $('#'+dropdownId).val().replaceAll(":","_")+'_id');
setCache('activeNetworkTab', mac.replaceAll(":","_")+'_id');
window.location.href = './network.php';
}
// -----------------------------------------------------------------------------
// Go to the device
function goToDevice(mac)
{
window.location.href = './deviceDetails.php?mac=' + mac;
}
// --------------------------------------------------------
// Updating the execution queue in in modal pop-up
@@ -678,9 +689,6 @@ function initSelect2() {
$(container).addClass(badge.cssClass);
// Custom HTML
const html = $(`
<a href="${badge.url}" target="_blank">
@@ -694,7 +702,6 @@ function initSelect2() {
</a>
`);
return html;
},
escapeMarkup: function (m) {
@@ -732,7 +739,7 @@ function initSelect2() {
{
setTimeout(() => {
initSelect2()
}, 500);
}, 700);
}
}

View File

@@ -77,7 +77,7 @@
settingsData = res["data"];
excludedColumns = ["NEWDEV_devMac", "NEWDEV_devFirstConnection", "NEWDEV_devLastConnection", "NEWDEV_devLastNotification", "NEWDEV_devScan", "NEWDEV_devPresentLastScan", "NEWDEV_devCustomProps" ]
excludedColumns = ["NEWDEV_devMac", "NEWDEV_devFirstConnection", "NEWDEV_devLastConnection", "NEWDEV_devLastNotification", "NEWDEV_devScan", "NEWDEV_devPresentLastScan", "NEWDEV_devCustomProps", "NEWDEV_devChildrenNicsDynamic", "NEWDEV_devChildrenDynamic" ]
const relevantColumns = settingsData.filter(set =>
set.setGroup === "NEWDEV" &&

View File

@@ -463,12 +463,19 @@
<script src="lib/treeviz/bundle.js"></script>
<script defer>
$.get('php/server/devices.php?action=getDevicesList&status=all&forceDefaultOrder', function(data) {
const apiUrl = `php/server/dbHelper.php?action=read&rawSql=${btoa(encodeURIComponent(
`select *, CASE WHEN devAlertDown !=0 AND devPresentLastScan=0 THEN "Down"
WHEN devPresentLastScan=1 THEN "On-line"
ELSE "Off-line" END as devStatus
from Devices`))}`;
$.get(apiUrl, function (data) {
rawData = JSON.parse (data)
console.log(rawData);
if(rawData["data"] == "")
{
showModalOK (getString('Gen_Warning'), getString('Network_NoDevices'))
@@ -478,38 +485,26 @@
orderTopologyBy = createArray(getSetting("UI_TOPOLOGY_ORDER"))
devicesListnew = rawData["data"].map(item => {
return {
"name": item[0],
"type": item[2],
"icon": item[3],
"mac": item[11],
"parentMac": item[14],
"rowid": item[13],
"status": item[10],
"childrenQty": item[15],
"port": item[18]
};
}).sort((a, b) => {
devicesListnew = rawData.sort((a, b) => {
// Helper to safely parse port into an integer; invalid ports become Infinity for sorting
const parsePort = (port) => {
const parsed = parseInt(port, 10);
const parsePort = (devParentPort) => {
const parsed = parseInt(devParentPort, 10);
return isNaN(parsed) ? Infinity : parsed;
};
switch (orderTopologyBy[0]) {
case "Name":
// First sort by name alphabetically
const nameCompare = a.name.localeCompare(b.name);
const nameCompare = a.devName.localeCompare(b.devName);
if (nameCompare !== 0) {
return nameCompare;
}
// If names are the same, sort by port numerically
return parsePort(a.port) - parsePort(b.port);
return parsePort(a.devParentPort) - parsePort(b.devParentPort);
case "Port":
// Sort by port numerically
return parsePort(a.port) - parsePort(b.port);
return parsePort(a.devParentPort) - parsePort(b.devParentPort);
default:
// Default: Sort by rowid (as a fallback)
@@ -544,9 +539,6 @@ var hiddenMacs = []; // hidden children
var hiddenChildren = [];
var deviceListGlobal = null;
// ---------------------------------------------------------------------------
// Recursively get children nodes and build a tree
function getChildren(node, list, path, visited = [])
@@ -554,23 +546,23 @@ function getChildren(node, list, path, visited = [])
var children = [];
// Check for infinite recursion by seeing if the node has been visited before
if (visited.includes(node.mac.toLowerCase())) {
console.error("Infinite recursion detected at node:", node.mac);
if (visited.includes(node.devMac.toLowerCase())) {
console.error("Infinite recursion detected at node:", node.devMac);
write_notification("[ERROR] ⚠ Infinite recursion detected. You probably have assigned the Internet node to another children node or to itself. Please open a new issue on GitHub and describe how you did it.", 'interrupt')
return { error: "Infinite recursion detected", node: node.mac };
return { error: "Infinite recursion detected", node: node.devMac };
}
// Add current node to visited list
visited.push(node.mac.toLowerCase());
visited.push(node.devMac.toLowerCase());
// Loop through all items to find children of the current node
for (var i in list) {
if (list[i].parentMac.toLowerCase() == node.mac.toLowerCase() && !hiddenMacs.includes(list[i].parentMac)) {
if (list[i].devParentMAC.toLowerCase() == node.devMac.toLowerCase() && !hiddenMacs.includes(list[i].devParentMAC)) {
visibleNodesCount++;
// Process children recursively, passing a copy of the visited list
children.push(getChildren(list[i], list, path + ((path == "") ? "" : '|') + list[i].parentMac, visited));
children.push(getChildren(list[i], list, path + ((path == "") ? "" : '|') + list[i].devParentMAC, visited));
}
}
@@ -582,16 +574,17 @@ function getChildren(node, list, path, visited = [])
}
return {
name: node.name,
name: node.devName,
path: path,
mac: node.mac,
port: node.port,
id: node.mac,
parentMac: node.parentMac,
icon: node.icon,
type: node.type,
status: node.status,
mac: node.devMac,
port: node.devParentPort,
id: node.devMac,
parentMac: node.devParentMAC,
icon: node.devIcon,
type: node.devType,
status: node.devStatus,
hasChildren: children.length > 0 || hiddenMacs.includes(node.mac),
relType: node.devParentRelType,
hiddenChildren: hiddenMacs.includes(node.mac),
qty: children.length,
children: children
@@ -603,7 +596,7 @@ function getHierarchy()
{
for(i in deviceListGlobal)
{
if(deviceListGlobal[i].mac == 'Internet')
if(deviceListGlobal[i].devMac == 'Internet')
{
return (getChildren(deviceListGlobal[i], deviceListGlobal, ''))
break;
@@ -611,56 +604,6 @@ function getHierarchy()
}
}
// ---------------------------------------------------------------------------
function getFlatData() {
var result = [];
var leafNodesCount = 0;
var parentNodesCount = 0;
var visibleNodesCount = 0;
for (let node of deviceListGlobal) {
let path = "";
let childrenCount = 0;
// count children of this node
for (let nodeTmp of deviceListGlobal) {
if (nodeTmp.parentMac === node.mac) {
childrenCount++;
}
}
// store parent and leaf node count
if (childrenCount === 0) {
leafNodesCount++;
} else {
parentNodesCount++;
}
if (!hiddenMacs.includes(node.parentMac)) {
if (!((node.parentMac == "") && node.mac != "Internet")) { // skip leaf nodes without father that are not the root
visibleNodesCount++;
result.push({
name: node.name,
path: path,
mac: node.mac, // Replacing "mac" with "id"
parentMac: node.mac == "Internet" ? "" : node.parentMac, // Replacing "parentMac" with "father"
port: node.port,
icon: node.icon,
type: node.type,
status: node.status,
hasChildren: childrenCount > 0 || hiddenMacs.includes(node.mac),
hiddenChildren: hiddenMacs.includes(node.mac),
qty: childrenCount,
});
}
}
}
return result;
}
//---------------------------------------------------------------------------
function toggleSubTree(parentMac, treePath)
{
@@ -832,7 +775,21 @@ function initTree(myHierarchy)
hasFlatData: false,
relationnalField: "children",
linkWidth: (nodeData) => 3,
linkColor: (nodeData) => "#ffcc80"
linkColor: (nodeData) => {
switch (nodeData.data.relType) {
case "default":
return "#ffcc80"; // yellow
break;
case "nic":
return "#dd4b39"; // red
break;
default:
return "#ffcc80";
break;
}
}
// onNodeClick: (nodeData) => handleNodeClick(nodeData),
});

View File

@@ -63,7 +63,7 @@ require_once $_SERVER['DOCUMENT_ROOT'] . '/php/templates/security.php';
}
if (isset ($_REQUEST['rawSql'])) {
$rawSql = urldecode(base64_decode($_REQUEST['rawSql']));
$rawSql = urldecode(base64_decode($_REQUEST['rawSql'])); // base64 encoded SQL
}
if (isset ($_REQUEST['dbtable'])) {

View File

@@ -45,8 +45,7 @@
case 'ImportCSV': ImportCSV(); break;
case 'getDevicesTotals': getDevicesTotals(); break;
case 'getDevicesList': getDevicesList(); break;
case 'getDevicesListCalendar': getDevicesListCalendar(); break;
case 'getDevicesListCalendar': getDevicesListCalendar(); break; //todo: slowly deprecate this
case 'updateNetworkLeaf': updateNetworkLeaf(); break;
case 'overwriteIconType': overwriteIconType(); break;
@@ -778,143 +777,6 @@ function getDevicesTotals() {
echo ($resultJSON);
}
//------------------------------------------------------------------------------
// Query the List of devices in a determined Status
//------------------------------------------------------------------------------
function getDevicesList() {
global $db;
$forceDefaultOrder = FALSE;
if (isset ($_REQUEST['forceDefaultOrder']) )
{
$forceDefaultOrder = TRUE;
}
// This object is used to map from the old order ( second parameter, first number) to the new mapping, that is represented by the 3rd parameter (Second number)
$columnOrderMapping = array(
array("devName", 0, 0),
array("devOwner", 1, 1),
array("devType", 2, 2),
array("devIcon", 3, 3),
array("devFavorite", 4, 4),
array("devGroup", 5, 5),
array("devFirstConnection", 6, 6),
array("devLastConnection", 7, 7),
array("devLastIP", 8, 8),
array("devMac", 9, 9),
array("devStatus", 10, 10),
array("devMac_full", 11, 11),
array("devLastIP_orderable", 12, 12),
array("rowid", 13, 13),
array("devParentMAC", 14, 14),
array("connected_devices", 15, 15),
array("devLocation", 16, 16),
array("devVendor", 17, 17),
array("devParentPort", 18, 18),
array("devGUID", 19, 19),
array("devSyncHubNode", 20, 20),
array("devSite", 21, 21),
array("devSSID", 22, 22),
array("devSourcePlugin", 23, 23)
);
if($forceDefaultOrder == FALSE)
{
// get device columns order
$sql = 'SELECT par_Value FROM Parameters where par_ID = "Front_Devices_Columns_Order"';
$result = $db->query($sql);
$row = $result -> fetchArray (SQLITE3_NUM);
if($row != NULL && count($row) == 1)
{
// ordered columns setting from the maintenance page
$orderedColumns = createArray($row[0]);
// init ordered columns
for($i = 0; $i < count($orderedColumns); $i++) {
$columnOrderMapping[$i][2] = $orderedColumns[$i];
}
}
}
// SQL
$condition = getDeviceCondition ($_REQUEST['status']);
$sql = 'SELECT * FROM (
SELECT rowid, *, CASE
WHEN t1.devAlertDown !=0 AND t1.devPresentLastScan=0 THEN "Down"
WHEN t1.devIsNew=1 THEN "New"
WHEN t1.devPresentLastScan=1 THEN "On-line"
ELSE "Off-line" END AS devStatus
FROM Devices t1 '.$condition.') t3
LEFT JOIN
(
SELECT devParentMAC as devParentMAC_t2, devMac as devMac_t2,
count() as connected_devices
FROM Devices b
WHERE b.devParentMAC NOT NULL group by b.devParentMAC
) t2
ON (t3.devMac = t2.devParentMAC_t2);';
$result = $db->query($sql);
// arrays of rows
$tableData = array();
while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
$defaultOrder = array (
$row['devName'],
$row['devOwner'],
handleNull($row['devType']),
handleNull($row['devIcon'], "PGkgY2xhc3M9J2ZhIGZhLWxhcHRvcCc+PC9pPg=="), // laptop icon
$row['devFavorite'],
$row['devGroup'],
// ----
formatDate ($row['devFirstConnection']),
formatDate ($row['devLastConnection']),
$row['devLastIP'],
( isRandomMAC($row['devMac']) ),
$row['devStatus'],
$row['devMac'], // MAC (hidden)
formatIPlong ($row['devLastIP']), // IP orderable
$row['rowid'], // Rowid (hidden)
handleNull($row['devParentMAC']),
handleNull($row['connected_devices']),
handleNull($row['devLocation']),
handleNull($row['devVendor']),
handleNull($row['devParentPort']),
handleNull($row['devGUID']),
handleNull($row['devSyncHubNode']),
handleNull($row['devSite']),
handleNull($row['devSSID']),
handleNull($row['devSourcePlugin'])
);
$newOrder = array();
// reorder columns based on user settings
for($index = 0; $index < count($columnOrderMapping); $index++)
{
array_push($newOrder, $defaultOrder[$columnOrderMapping[$index][2]]);
}
$tableData['data'][] = $newOrder;
}
// Control no rows
if (empty($tableData['data'])) {
$tableData['data'] = '';
}
// Return json
echo (json_encode ($tableData));
}
//------------------------------------------------------------------------------
// Determine if Random MAC
//------------------------------------------------------------------------------

View File

@@ -709,23 +709,18 @@
"WF_Trigger": "المشغل",
"WF_Trigger_event_type": "نوع حدث المشغل",
"WF_Trigger_type": "نوع المشغل",
"add_icon_event_icon": "أيقونة إضافة أيقونة",
"add_icon_event_tooltip": "تلميح إضافة أيقونة",
"add_option_event_icon": "أيقونة إضافة خيار",
"add_option_event_tooltip": "تلميح إضافة خيار",
"copy_icons_event_icon": "أيقونة نسخ الأيقونات",
"copy_icons_event_tooltip": "تلميح نسخ الأيقونات",
"devices_old": "الأجهزة القديمة",
"general_event_description": "وصف الحدث العام",
"general_event_title": "عنوان الحدث العام",
"go_to_node_event_icon": "أيقونة الانتقال إلى العقدة",
"go_to_node_event_tooltip": "تلميح الانتقال إلى العقدة",
"new_version_available": "يتوفر إصدار جديد",
"report_guid": "معرف التقرير",
"report_guid_missing": "معرف التقرير مفقود",
"report_select_format": "اختر تنسيق التقرير",
"report_time": "وقت التقرير",
"run_event_icon": "أيقونة تشغيل الحدث",
"run_event_tooltip": "تلميح تشغيل الحدث",
"settings_core_icon": "أيقونة الإعدادات الأساسية",
"settings_core_label": "تسمية الإعدادات الأساسية",
@@ -753,6 +748,5 @@
"settings_system_icon": "أيقونة النظام",
"settings_system_label": "تسمية النظام",
"settings_update_item_warning": "تحذير تحديث العنصر",
"test_event_icon": "أيقونة اختبار الحدث",
"test_event_tooltip": "تلميح اختبار الحدث"
}

View File

@@ -709,23 +709,18 @@
"WF_Trigger": "Disparador(Trigger)",
"WF_Trigger_event_type": "Tipus d'esdeveniment",
"WF_Trigger_type": "Tipus de disparador",
"add_icon_event_icon": "fa-square-plus",
"add_icon_event_tooltip": "Afegir nova icona",
"add_option_event_icon": "fa-square-plus",
"add_option_event_tooltip": "Afegir nou valor",
"copy_icons_event_icon": "fa-copy",
"copy_icons_event_tooltip": "Sobreescriure icones de tots els dispositius amb el mateix tipus de dispositiu",
"devices_old": "Refrescant...",
"general_event_description": "L'esdeveniment que has desencadenat pot trigar un temps fins que acabin els processos de fons. L'execució acabarà una cop buida la cua d'execució (Comprova el registre d'errors <a href='/maintenance.php#tab_Logging'></a> si hi ha problemes). <br/> <br/> Cua d'execució:",
"general_event_title": "Execució d'un esdeveniment ad-hoc",
"go_to_node_event_icon": "fa-square-up-right",
"go_to_node_event_tooltip": "Navegació a la pàgina de la Xarxa del node donat",
"new_version_available": "Ja està disponible una nova versió.",
"report_guid": "Notificació guid:",
"report_guid_missing": "No s'ha trobat la notificació enllaçada. Hi ha un petit retard entre les notificacions enviades recentment i que estiguin disponibles. Refresqui la pàgina i la memòria cau d'aquí uns segons. També és possible que la notificació seleccionada s'hagi esborrat durant el manteniment tal com s'especifica a la configuració <code>DBCLNP_NOTIFI_HIST</code>. <br/> <br/>L'última notificació es mostra en el seu lloc. La notificació perduda té el següent GUID:",
"report_select_format": "Seleccioneu Format:",
"report_time": "Data de recepció:",
"run_event_icon": "fa-play",
"run_event_tooltip": "Habiliteu la configuració i deseu els canvis al principi abans d'executar-lo.",
"settings_core_icon": "fa-solid fa-gem",
"settings_core_label": "Nucli",
@@ -753,6 +748,5 @@
"settings_system_icon": "fa-solid fa-gear",
"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_icon": "fa-vial-circle-check",
"test_event_tooltip": "Deseu els canvis primer abans de comprovar la configuració."
}

View File

@@ -709,23 +709,18 @@
"WF_Trigger": "",
"WF_Trigger_event_type": "",
"WF_Trigger_type": "",
"add_icon_event_icon": "fa-square-plus",
"add_icon_event_tooltip": "Přidat novou ikonu",
"add_option_event_icon": "fa-square-plus",
"add_option_event_tooltip": "Přidat novou hodnotu",
"copy_icons_event_icon": "fa-copy",
"copy_icons_event_tooltip": "Přepiš ikony všech zařízení za stejný typ zařízení",
"devices_old": "Obnovuji…",
"general_event_description": "",
"general_event_title": "",
"go_to_node_event_icon": "",
"go_to_node_event_tooltip": "",
"new_version_available": "",
"report_guid": "",
"report_guid_missing": "",
"report_select_format": "",
"report_time": "",
"run_event_icon": "",
"run_event_tooltip": "",
"settings_core_icon": "",
"settings_core_label": "",
@@ -753,6 +748,5 @@
"settings_system_icon": "",
"settings_system_label": "",
"settings_update_item_warning": "",
"test_event_icon": "",
"test_event_tooltip": ""
}

View File

@@ -790,23 +790,18 @@
"WF_Trigger_type": "Auslösertyp",
"Webhooks_display_name": "Webhooks",
"Webhooks_icon": "<i class=\"fa fa-circle-nodes\"></i>",
"add_icon_event_icon": "",
"add_icon_event_tooltip": "Neues Symbol hinzufügen",
"add_option_event_icon": "",
"add_option_event_tooltip": "Neuen Wert hinzufügen",
"copy_icons_event_icon": "",
"copy_icons_event_tooltip": "Icons aller Geräte mit demselben Gerätetyp überschreiben",
"devices_old": "Aktualisiert...",
"general_event_description": "Das Ereignis, das Sie ausgelöst haben, könnte eine Weile dauern, bis Hintergrundprozesse abgeschlossen sind. Die Ausführung endet, wenn die unten ausgeführte Warteschlangen abgearbeitet ist. (Siehe <a href='/maintenance.php#tab_Logging'>error log</a>, wenn Probleme auftreten.)<br/> <br/> Ausführungsschlange:",
"general_event_title": "",
"go_to_node_event_icon": "",
"go_to_node_event_tooltip": "",
"new_version_available": "Es ist eine neue Version verfügbar.",
"report_guid": "",
"report_guid_missing": "",
"report_select_format": "Format auswählen:",
"report_time": "Benachrichtigungszeit:",
"run_event_icon": "",
"run_event_tooltip": "Aktiviere die Einstellung und speichere deine Änderungen, bevor du sie ausführst.",
"settings_core_icon": "",
"settings_core_label": "Kern",
@@ -834,6 +829,5 @@
"settings_system_icon": "",
"settings_system_label": "System",
"settings_update_item_warning": "",
"test_event_icon": "",
"test_event_tooltip": "Speichere die Änderungen, bevor Sie die Einstellungen testen."
}

View File

@@ -709,23 +709,19 @@
"WF_Trigger": "Trigger",
"WF_Trigger_event_type": "Event type",
"WF_Trigger_type": "Trigger type",
"add_icon_event_icon": "fa-square-plus",
"add_icon_event_tooltip": "Add new icon",
"add_option_event_icon": "fa-square-plus",
"add_option_event_tooltip": "Add new value",
"copy_icons_event_icon": "fa-copy",
"copy_icons_event_tooltip": "Overwrite icons of all devices with the same device type",
"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_node_event_icon": "fa-square-up-right",
"go_to_node_event_tooltip": "Navigate to the Network page of the given node",
"go_to_device_event_tooltip": "Navigate to the Device",
"new_version_available": "A new version is available.",
"report_guid": "Notification guid:",
"report_guid_missing": "Linked notification not found. There is a small delay between recently sent notifications and them being available. Referesh your page and cache after a few seconds. It's also possible the selected notification have been deleted during maintenance as specified in the <code>DBCLNP_NOTIFI_HIST</code> setting. <br/> <br/>The latest notification is displayed instead. The missing notification has the following GUID:",
"report_select_format": "Select Format:",
"report_time": "Notification time:",
"run_event_icon": "fa-play",
"run_event_tooltip": "Enable the setting and save your changes at first before you run it.",
"settings_core_icon": "fa-solid fa-gem",
"settings_core_label": "Core",
@@ -753,6 +749,5 @@
"settings_system_icon": "fa-solid fa-gear",
"settings_system_label": "System",
"settings_update_item_warning": "Update the value below. Be careful to follow the previous format. <b>Validation is not performed.</b>",
"test_event_icon": "fa-vial-circle-check",
"test_event_tooltip": "Save your changes at first before you test your settings."
}

View File

@@ -788,23 +788,18 @@
"Webhooks_display_name": "Webhooks",
"Webhooks_icon": "<i class=\"fa fa-circle-nodes\"></i>",
"Webhooks_settings_group": "<i class=\"fa fa-circle-nodes\"></i> Webhooks",
"add_icon_event_icon": "fa-square-plus",
"add_icon_event_tooltip": "Agregar nuevo icono",
"add_option_event_icon": "fa-square-plus",
"add_option_event_tooltip": "Añadir nuevo valor",
"copy_icons_event_icon": "fa-copy",
"copy_icons_event_tooltip": "Sobrescribir los iconos de todos los dispositivos con el mismo tipo de dispositivo",
"devices_old": "Volviendo a actualizar....",
"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_node_event_icon": "fa-square-up-right",
"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:",
"report_guid_missing": "No se ha encontrado la notificación vinculada. Hay un pequeño retraso entre las notificaciones enviadas recientemente y su disponibilidad. Actualiza tu página y la caché después de unos segundos. También es posible que la notificación seleccionada se haya eliminado durante el mantenimiento, tal y como se especifica en la configuración <code>de DBCLNP_NOTIFI_HIST</code>. <br/> <br/>En su lugar, se muestra la notificación más reciente. La notificación que falta tiene el siguiente GUID:",
"report_select_format": "Selecciona el formato:",
"report_time": "Hora de la notificación:",
"run_event_icon": "fa-play",
"run_event_tooltip": "Activa el ajuste y guarda tus cambios antes de ejecutarlo.",
"settings_core_icon": "fa-solid fa-gem",
"settings_core_label": "Núcleo",
@@ -832,6 +827,5 @@
"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_icon": "fa-vial-circle-check",
"test_event_tooltip": "Guarda tus cambios antes de probar nuevos ajustes."
}

View File

@@ -709,23 +709,18 @@
"WF_Trigger": "Déclencheur",
"WF_Trigger_event_type": "Type d'événement",
"WF_Trigger_type": "Type de déclencheur",
"add_icon_event_icon": "fa-square-plus",
"add_icon_event_tooltip": "Ajouter une nouvelle icône",
"add_option_event_icon": "fa-square-plus",
"add_option_event_tooltip": "Ajouter une nouvelle valeur",
"copy_icons_event_icon": "fa-copy",
"copy_icons_event_tooltip": "Remplace les icônes de tous les appareils du même type",
"devices_old": "Rafraichissement…",
"general_event_description": "L'événement que vous avez lancé peut prendre du temps avant que les tâches de fond ne soit terminées. La durée d'exécution finira une fois que la file d'exécution ci-dessous sera vide (consulter les <a href='/maintenance.php#tab_Logging'>journaux d'erreur</a> si vous rencontrez des erreurs). <br/> <br/> File d'exécution:",
"general_event_title": "Lancement d'un événement sur mesure",
"go_to_node_event_icon": "fa-square-up-right",
"go_to_node_event_tooltip": "Aller vers la page Réseau du nœud concerné",
"new_version_available": "Une nouvelle version est disponible.",
"report_guid": "GUID de la notification:",
"report_guid_missing": "La notification associée n'a pas été trouvée. Un petit délai existe entre l'envoi d'une notification et sa disponibilité réelle pour affichage. Rafraichissez la page et votre cache après quelques secondes. Il est aussi possible que la notification sélectionnée ait été supprimée durant une opération de maintenance, comme renseigné dans le paramètre <code>DBCLNP_NOTIFI_HIST</code>. <br/> <br/> La dernière notification est affichée à sa place. La notification manquante dispose du GUID suivant:",
"report_select_format": "Sélectionner un format:",
"report_time": "Heure de la notification:",
"run_event_icon": "fa-play",
"run_event_tooltip": "Activez le paramètre et enregistrez vos changements avant de le lancer.",
"settings_core_icon": "fa-solid fa-gem",
"settings_core_label": "Principal",
@@ -753,6 +748,5 @@
"settings_system_icon": "fa-solid fa-gear",
"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_icon": "fa-vial-circle-check",
"test_event_tooltip": "Enregistrer d'abord vos modifications avant de tester vôtre paramétrage."
}

View File

@@ -709,23 +709,18 @@
"WF_Trigger": "Trigger",
"WF_Trigger_event_type": "Tipo evento",
"WF_Trigger_type": "Tipo di trigger",
"add_icon_event_icon": "fa-square-plus",
"add_icon_event_tooltip": "Aggiungi nuova icona",
"add_option_event_icon": "fa-square-plus",
"add_option_event_tooltip": "Aggiungi nuovo valore",
"copy_icons_event_icon": "fa-copy",
"copy_icons_event_tooltip": "Sovrascrivi le icone di tutti i dispositivi con lo stesso tipo di dispositivo",
"devices_old": "Aggiornamento…",
"general_event_description": "L'evento che hai attivato potrebbe richiedere del tempo prima che i processi in background vengano completati. L'esecuzione è terminata una volta che la coda di esecuzione sottostante si è svuotata (controlla il <a href='/maintenance.php#tab_Logging'>log degli errori</a> se riscontri problemi). <br/> <br/> Coda di esecuzione:",
"general_event_title": "Esecuzione di un evento ad-hoc",
"go_to_node_event_icon": "fa-square-up-right",
"go_to_node_event_tooltip": "Passa alla pagina Rete del nodo specificato",
"new_version_available": "È disponibile una nuova versione.",
"report_guid": "GUID notifica:",
"report_guid_missing": "Notifica collegata non trovata. C'è un piccolo ritardo tra la disponibilità delle notifiche inviate di recente e la loro disponibilità. Aggiorna la pagina e la cache dopo alcuni secondi. È anche possibile che la notifica selezionata sia stata eliminata durante la manutenzione come specificato nell'impostazione <code>DBCLNP_NOTIFI_HIST</code>. <br/> <br/>Viene invece visualizzata l'ultima notifica. La notifica mancante ha il seguente GUID:",
"report_select_format": "Seleziona formato:",
"report_time": "Orario notifica:",
"run_event_icon": "fa-play",
"run_event_tooltip": "Abilita l'impostazione e salva le modifiche prima di eseguirla.",
"settings_core_icon": "fa-solid fa-gem",
"settings_core_label": "Core",
@@ -753,6 +748,5 @@
"settings_system_icon": "fa-solid fa-gear",
"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_icon": "fa-vial-circle-check",
"test_event_tooltip": "Salva le modifiche prima di provare le nuove impostazioni."
}

View File

@@ -709,23 +709,18 @@
"WF_Trigger": "",
"WF_Trigger_event_type": "",
"WF_Trigger_type": "",
"add_icon_event_icon": "",
"add_icon_event_tooltip": "",
"add_option_event_icon": "",
"add_option_event_tooltip": "",
"copy_icons_event_icon": "",
"copy_icons_event_tooltip": "",
"devices_old": "Oppdaterer...",
"general_event_description": "Hendelsen du har utløst kan ta en stund til før bakgrunnsprosesser er ferdig. Utførelsen ble avsluttet når utførelseskøen nedenfor tømmes (sjekk <a href='/maintenance.php#tab_Logging'>Feillogg</a> Hvis du møter problemer). <br/> <br/> Utførelseskø:",
"general_event_title": "Utfører en ad-hoc hendelse",
"go_to_node_event_icon": "",
"go_to_node_event_tooltip": "",
"new_version_available": "",
"report_guid": "Notifikasjons GUID:",
"report_guid_missing": "Koblet notifikasjon ikke funnet. Det er en liten forsinkelse mellom nylig sendt notifikasjoner og at de er tilgjengelige. Oppdater siden din og hurtigbufferen etter noen sekunder. Det er også mulig den valgte notifikasjonen er slettet under vedlikehold som spesifisert i <code>DBCLNP_NOTIFI_HIST</code> innstillingen. <br/> <br/> Den siste notifikasjonen vises i stedet. Den manglende notifikasjonen har følgende GUID:",
"report_select_format": "Velg format:",
"report_time": "Notifikasjonstid:",
"run_event_icon": "fa-play",
"run_event_tooltip": "Aktiver innstillingen og lagre endringene først før du kjører den.",
"settings_core_icon": "fa-solid fa-gem",
"settings_core_label": "Core",
@@ -753,6 +748,5 @@
"settings_system_icon": "fa-solid fa-gear",
"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_icon": "fa-vial-circle-check",
"test_event_tooltip": "Lagre endringene først, før du tester innstillingene dine."
}

View File

@@ -709,23 +709,18 @@
"WF_Trigger": "Wyzwalacz",
"WF_Trigger_event_type": "Typ zdarzenia",
"WF_Trigger_type": "Typ wyzwalacza",
"add_icon_event_icon": "fa-square-plus",
"add_icon_event_tooltip": "Dodaj nową ikonę",
"add_option_event_icon": "fa-square-plus",
"add_option_event_tooltip": "Dodaj nową wartość",
"copy_icons_event_icon": "fa-copy",
"copy_icons_event_tooltip": "Nadpisz ikony wszystkich urządzeń tego samego typu",
"devices_old": "Odświeżanie…",
"general_event_description": "Zdarzenie, które wywołałeś, może potrwać chwilę, zanim zakończą się procesy w tle. Wykonanie zostanie zakończone, gdy poniższa kolejka wykonania zostanie opróżniona (jeśli napotkasz problemy, sprawdź <a href='/maintenance.php#tab_Logging'>dziennik błędów</a>). <br/><br/>Kolejka wykonania:",
"general_event_title": "Wykonywanie zdarzenia ad-hoc",
"go_to_node_event_icon": "fa-square-up-right",
"go_to_node_event_tooltip": "Przejdź do strony Sieć danego węzła",
"new_version_available": "Dostępna jest nowa wersja.",
"report_guid": "GUID powiadomienia:",
"report_guid_missing": "Nie znaleziono powiązanego powiadomienia. Istnieje niewielkie opóźnienie między momentem wysłania powiadomienia a jego dostępnością. Odśwież stronę i pamięć podręczną po kilku sekundach. Możliwe również, że wybrane powiadomienie zostało usunięte podczas konserwacji, zgodnie z ustawieniem <code>DBCLNP_NOTIFI_HIST</code>. <br/><br/>Zamiast tego wyświetlane jest najnowsze powiadomienie. Brakujące powiadomienie ma następujący identyfikator GUID:",
"report_select_format": "Wybierz format:",
"report_time": "Czas powiadomienia:",
"run_event_icon": "fa-play",
"run_event_tooltip": "Najpierw włącz to ustawienie i zapisz zmiany, zanim je uruchomisz.",
"settings_core_icon": "fa-solid fa-gem",
"settings_core_label": "Główne",
@@ -753,6 +748,5 @@
"settings_system_icon": "fa-solid fa-gear",
"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_icon": "fa-vial-circle-check",
"test_event_tooltip": "Najpierw zapisz swoje zmiany, zanim przetestujesz ustawienia."
}

View File

@@ -709,23 +709,18 @@
"WF_Trigger": "",
"WF_Trigger_event_type": "",
"WF_Trigger_type": "",
"add_icon_event_icon": "",
"add_icon_event_tooltip": "",
"add_option_event_icon": "",
"add_option_event_tooltip": "",
"copy_icons_event_icon": "",
"copy_icons_event_tooltip": "",
"devices_old": "",
"general_event_description": "",
"general_event_title": "",
"go_to_node_event_icon": "",
"go_to_node_event_tooltip": "",
"new_version_available": "",
"report_guid": "",
"report_guid_missing": "",
"report_select_format": "",
"report_time": "",
"run_event_icon": "",
"run_event_tooltip": "",
"settings_core_icon": "",
"settings_core_label": "",
@@ -753,6 +748,5 @@
"settings_system_icon": "",
"settings_system_label": "",
"settings_update_item_warning": "",
"test_event_icon": "",
"test_event_tooltip": "Guarde as alterações antes de testar as definições."
}

6
front/php/templates/language/ru_ru.json Normal file → Executable file
View File

@@ -709,23 +709,18 @@
"WF_Trigger": "Триггер",
"WF_Trigger_event_type": "Тип события",
"WF_Trigger_type": "Тип триггера",
"add_icon_event_icon": "fa-square-plus",
"add_icon_event_tooltip": "Добавить новую иконку",
"add_option_event_icon": "fa-square-plus",
"add_option_event_tooltip": "Добавить новое значение",
"copy_icons_event_icon": "fa-copy",
"copy_icons_event_tooltip": "Заменить иконки всех устройств с одним и тем же типом устройства",
"devices_old": "Актуализируется…",
"general_event_description": "Событие, которое вы инициировали, может занять некоторое время, прежде чем фоновые процессы завершатся. Выполнение завершится, как только очередь выполнения, указанная ниже, опустеет (Проверьте <a href='/maintenance.php#tab_Logging'>журнал ошибок</a> при возникновении проблем). <br/> <br/>· · Очередь выполнения:",
"general_event_title": "Выполнение специального события",
"go_to_node_event_icon": "fa-square-up-right",
"go_to_node_event_tooltip": "Переход на страницу \"Сеть\" данного узла",
"new_version_available": "Доступна новая версия.",
"report_guid": "Идентификатор уведомления:",
"report_guid_missing": "Связанное уведомление не найдено. Между недавно отправленными уведомлениями и их доступностью существует небольшая задержка. Обновите страницу и кэшируйте ее через несколько секунд. Также возможно, что выбранное уведомление было удалено во время обслуживания, как указано в настройке <code>DBCLNP_NOTIFI_HIST</code>. <br/> <br/>Вместо этого отображается последнее уведомление. Отсутствующее уведомление имеет следующий GUID:",
"report_select_format": "Выбрать формат:",
"report_time": "Время уведомления:",
"run_event_icon": "fa-play",
"run_event_tooltip": "Включите настройку и сначала сохраните изменения, прежде чем запускать ее.",
"settings_core_icon": "fa-solid fa-gem",
"settings_core_label": "Основные",
@@ -753,6 +748,5 @@
"settings_system_icon": "fa-solid fa-gear",
"settings_system_label": "Система",
"settings_update_item_warning": "Обновить значение ниже. Будьте осторожны, следуя предыдущему формату. <b>Проверка не выполняется.</b>",
"test_event_icon": "fa-vial-circle-check",
"test_event_tooltip": "Сначала сохраните изменения, прежде чем проверять настройки."
}

View File

@@ -709,23 +709,18 @@
"WF_Trigger": "",
"WF_Trigger_event_type": "",
"WF_Trigger_type": "",
"add_icon_event_icon": "",
"add_icon_event_tooltip": "",
"add_option_event_icon": "",
"add_option_event_tooltip": "",
"copy_icons_event_icon": "",
"copy_icons_event_tooltip": "",
"devices_old": "Yenileniyor...",
"general_event_description": "",
"general_event_title": "",
"go_to_node_event_icon": "",
"go_to_node_event_tooltip": "",
"new_version_available": "",
"report_guid": "",
"report_guid_missing": "",
"report_select_format": "",
"report_time": "Bildirim zamanı:",
"run_event_icon": "",
"run_event_tooltip": "",
"settings_core_icon": "",
"settings_core_label": "",
@@ -753,6 +748,5 @@
"settings_system_icon": "",
"settings_system_label": "Sistem",
"settings_update_item_warning": "",
"test_event_icon": "",
"test_event_tooltip": ""
}

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

@@ -709,23 +709,18 @@
"WF_Trigger": "Тригер",
"WF_Trigger_event_type": "Тип події",
"WF_Trigger_type": "Тип тригера",
"add_icon_event_icon": "фа-квадрат-плюс",
"add_icon_event_tooltip": "додати новий значок",
"add_option_event_icon": "фа-квадрат-плюс",
"add_option_event_tooltip": "Додати нове значення",
"copy_icons_event_icon": "фа-копія",
"copy_icons_event_tooltip": "Перезаписати піктограми всіх пристроїв одним типом пристрою",
"devices_old": "Освіжає…",
"general_event_description": "Подія, яку ви ініціювали, може зайняти деякий час, поки завершаться фонові процеси. Виконання завершилося, коли наведена нижче черга виконання спорожнилася (перевірте <a href='/maintenance.php#tab_Logging'>журнал помилок</a>, якщо виникнуть проблеми). <br/> <br/> Черга виконання:",
"general_event_title": "Виконання спеціальної події",
"go_to_node_event_icon": "fa-квадрат-вгору-вправо",
"go_to_node_event_tooltip": "Перейдіть на сторінку Мережа даного вузла",
"new_version_available": "Доступна нова версія.",
"report_guid": "Довідник сповіщень:",
"report_guid_missing": "Пов’язане сповіщення не знайдено. Існує невелика затримка між нещодавно надісланими сповіщеннями та їх доступністю. Оновіть сторінку та кеш через кілька секунд. Також можливо, вибране сповіщення було видалено під час обслуговування, як зазначено в параметрі <code>DBCLNP_NOTIFI_HIST</code>. <br/> <br/>Натомість відображається останнє сповіщення. Відсутнє сповіщення має такий GUID:",
"report_select_format": "Виберіть формат:",
"report_time": "Час сповіщення:",
"run_event_icon": "fa- play",
"run_event_tooltip": "Увімкніть налаштування та збережіть зміни, перш ніж запускати його.",
"settings_core_icon": "фа-твердий фа-самоцвіт",
"settings_core_label": "Ядро",
@@ -753,6 +748,5 @@
"settings_system_icon": "фа-твердий фа-передача",
"settings_system_label": "Система",
"settings_update_item_warning": "Оновіть значення нижче. Слідкуйте за попереднім форматом. <b>Перевірка не виконана.</b>",
"test_event_icon": "fa-vial-circle- check",
"test_event_tooltip": "Перш ніж перевіряти налаштування, збережіть зміни."
}

View File

@@ -709,23 +709,18 @@
"WF_Trigger": "",
"WF_Trigger_event_type": "",
"WF_Trigger_type": "",
"add_icon_event_icon": "",
"add_icon_event_tooltip": "",
"add_option_event_icon": "",
"add_option_event_tooltip": "",
"copy_icons_event_icon": "",
"copy_icons_event_tooltip": "",
"devices_old": "刷新中...",
"general_event_description": "您触发的事件可能需要一段时间才能完成后台进程。一旦以下执行队列清空,执行就会结束(如果遇到问题,请检查<a href='/maintenance.php#tab_Logging'>错误日志</a>)。<br/> <br/> 执行队列:",
"general_event_title": "执行自组织网络事件",
"go_to_node_event_icon": "",
"go_to_node_event_tooltip": "",
"new_version_available": "",
"report_guid": "通知guid",
"report_guid_missing": "未找到链接的通知。最近发送的通知与可用通知之间存在短暂延迟。几秒钟后刷新页面并缓存。所选通知也可能已在维护期间被删除,如 <code>DBCLNP_NOTIFI_HIST</code> 设置中所述。<br/> <br/>系统将改为显示最新通知。缺失的通知具有以下 GUID",
"report_select_format": "选择格式:",
"report_time": "通知时间:",
"run_event_icon": "",
"run_event_tooltip": "在运行之前,请先启用设置并保存更改。",
"settings_core_icon": "",
"settings_core_label": "核",
@@ -753,6 +748,5 @@
"settings_system_icon": "",
"settings_system_label": "系统",
"settings_update_item_warning": "更新下面的值。请注意遵循先前的格式。<b>未执行验证。</b>",
"test_event_icon": "",
"test_event_tooltip": "在测试设置之前,请先保存更改。"
}

View File

@@ -1338,7 +1338,8 @@
{
"function": "devParentMAC",
"events": [
"go_to_node"
"go_to_node",
"go_to_device"
],
"type": {
"dataType": "string",