Merge branch 'jokob-sk:main' into main

This commit is contained in:
Ulrich Wisser
2024-04-30 14:47:01 +02:00
committed by GitHub
38 changed files with 1592 additions and 1123 deletions

View File

@@ -15,7 +15,7 @@ COPY . ${INSTALL_DIR}/
RUN pip install requests paho-mqtt scapy cron-converter pytz json2table dhcp-leases pyunifi speedtest-cli chardet dnspython\ RUN pip install requests paho-mqtt scapy cron-converter pytz json2table dhcp-leases pyunifi speedtest-cli chardet dnspython\
&& bash -c "find ${INSTALL_DIR} -type d -exec chmod 750 {} \;" \ && bash -c "find ${INSTALL_DIR} -type d -exec chmod 750 {} \;" \
&& bash -c "find ${INSTALL_DIR} -type f -exec chmod 640 {} \;" \ && bash -c "find ${INSTALL_DIR} -type f -exec chmod 640 {} \;" \
&& bash -c "find ${INSTALL_DIR} -type f \( -name '*.sh' -o -name '*.py' -o -name 'pialert-cli' -o -name 'speedtest-cli' \) -exec chmod 750 {} \;" && bash -c "find ${INSTALL_DIR} -type f \( -name '*.sh' -o -name '*.py' -o -name 'speedtest-cli' \) -exec chmod 750 {} \;"
# second stage # second stage
FROM alpine:3.19 as runner FROM alpine:3.19 as runner

View File

@@ -81,6 +81,7 @@ Thank you to all the wonderful people who are sponsoring this project.
<!-- SPONSORS-LIST DO NOT MODIFY BELOW --> <!-- SPONSORS-LIST DO NOT MODIFY BELOW -->
| All Sponsors | | All Sponsors |
|---| |---|
| [ENgraver666](https://github.com/ENgraver666) |
<!-- SPONSORS-LIST DO NOT MODIFY ABOVE --> <!-- SPONSORS-LIST DO NOT MODIFY ABOVE -->

View File

@@ -13,10 +13,8 @@ services:
volumes: volumes:
# - ${APP_DATA_LOCATION}/netalertx_dev/config:/app/config # - ${APP_DATA_LOCATION}/netalertx_dev/config:/app/config
- ${APP_DATA_LOCATION}/netalertx/config:/app/config - ${APP_DATA_LOCATION}/netalertx/config:/app/config
# - ${APP_DATA_LOCATION}/netalertx/config:/home/pi/pialert/config
# - ${APP_DATA_LOCATION}/netalertx_dev/db:/app/db # - ${APP_DATA_LOCATION}/netalertx_dev/db:/app/db
- ${APP_DATA_LOCATION}/netalertx/db:/app/db - ${APP_DATA_LOCATION}/netalertx/db:/app/db
# - ${APP_DATA_LOCATION}/netalertx/db:/home/pi/pialert/db
# (optional) useful for debugging if you have issues setting up the container # (optional) useful for debugging if you have issues setting up the container
# - ${LOGS_LOCATION}:/app/front/log # - ${LOGS_LOCATION}:/app/front/log
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------

View File

@@ -31,7 +31,7 @@ In summary:
2. Backup your current config and database (optional `devices.csv` to have a backup) 2. Backup your current config and database (optional `devices.csv` to have a backup)
3. Rename them to `app.db` `app.conf` 3. Rename them to `app.db` `app.conf`
4. Update the volume mappings in your `docker-compose.yaml` 4. Update the volume mappings in your `docker-compose.yaml`
5. Place the renamed files the above locations. 5. Place the renamed files into the above locations.
> [!TIP] > [!TIP]

53
docs/NOTIFICATIONS.md Executable file
View File

@@ -0,0 +1,53 @@
# Notifications 📧
There are 3 ways how to influence notifications:
1. On the device itself
2. On the settings of the plugin
3. Globally
4. Ignoring devices
> [!NOTE]
> It's recommended to use the same schedule interval for all plugins responsible for scanning devices, otherwise false positives might be reported if different devices are discovered by different plugins. Check the **Settings** > **Enabled settings** section for a warning:
> ![Schedules out-of-sync](/docs/img/NOTIFICATIONS/Schedules_out-of-sync.png)
## Device settings 💻
![Device notification settings](/docs/img/NOTIFICATIONS/Device-notification-settings.png)
There are 4 settings on the device for influencing notifications. You can:
1. Completely disable the scanning of the device
2. **Alert all events**, connections, disconnections, IP changes (noisy, usually not recommended)
3. **Alert down** - alerts when a device goes down. This setting overrides disabled Alert All Events, so you will get a notification of a device going down even if you don't have Alert All Events ticked.
4. **Skip repeated notifications**, if for example you know there is a temporary issue and want to pause the same notification for this device for a given time.
## Plugin settings 🔌
![Plugin notification settings](/docs/img/NOTIFICATIONS/Plugin-notification-settings.png)
On almost all plugins there are 2 core settings, `<plugin>_WATCH` and `<plugin>_REPORT_ON`.
1. `<plugin>_WATCH` specifies the columns which the app should watch. If watched columns change the device state is considered changed. This changed status is then used to decide to send out notifications based on the `<plugin>_REPORT_ON` setting.
2. `<plugin>_REPORT_ON` let's you specify on which events the app should notify you. This is related to the `<plugin>_WATCH` setting. So if you select `watched-changed` and in `<plugin>_WATCH` you only select `Watched_Value1`, then a notification is triggered if `Watched_Value1` is changed from the previous value, but no notification is send if `Watched_Value2` changes.
## Global settings ⚙
![Global notification settings](/docs/img/NOTIFICATIONS/Global-notification-settings.png)
In the Notification Processing section, you can specify blanket rules. These allow you to specify exceptions to the Plugin and Device settings and will override those.
1. Notify on (`NTFPRCS_INCLUDED_SECTIONS`) allows you to specify which events trigegr notifications. Usual setups will have `new_devices`, `down_devices`, and possibly `events` set. Setting `plugin` might be too noisy for most setups.
2. Alert down after (`NTFPRCS_alert_down_time`) is useful if you want to wait for some time before the system sends out a down notification for a device. This is related to the on-device **Alert down** setting.
3. A filter to allow you to set device-specific exceptions to New devices being added to the app.
4. A filter to allow you to set device-specific exceptions to generated Events.
## Ignoring devices 🔕
![Ignoring new devices](/docs/img/NOTIFICATIONS/NEWDEV_ignores.png)
You can completely ignore detected devices globally. This could be becasue your instance detects docker containers, you want to ignore devices from a specific manufacturer via MAC rules or you want to ignore devices on a specific IP range.
1. Ignored MACs (`NEWDEV_ignored_MACs`) - List of MACs to ignore.
2. Ignored IPs (`NEWDEV_ignored_MACs`) - List of IPs to ignore.

View File

@@ -30,6 +30,7 @@ There is also an in-app Help / FAQ section that should be answering frequently a
- [Subnets and VLANs configuration for arp-scan](/docs/SUBNETS.md) - [Subnets and VLANs configuration for arp-scan](/docs/SUBNETS.md)
- [SMTP server config](/docs/SMTP.md) - [SMTP server config](/docs/SMTP.md)
- [Custom Icon configuration and support](/docs/ICONS.md) - [Custom Icon configuration and support](/docs/ICONS.md)
- [Notifications](/docs/NOTIFICATIONS.md)
- [Better name resolution with Reverse DNS](/docs/REVERSE_DNS.md) - [Better name resolution with Reverse DNS](/docs/REVERSE_DNS.md)
- [Network treemap configuration](/docs/NETWORK_TREE.md) - [Network treemap configuration](/docs/NETWORK_TREE.md)
- [Backups](/docs/BACKUPS.md) - [Backups](/docs/BACKUPS.md)

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

View File

@@ -718,6 +718,11 @@ height: 50px;
} }
} }
.settingswrap
{
margin-bottom: 100px;
}
.settingswrap .metadata .settingswrap .metadata
{ {
display: none; display: none;
@@ -728,6 +733,11 @@ height: 50px;
float: right; float: right;
} }
.padding-bottom
{
padding-bottom: 100px;
}
.settings-group .settings-group
{ {
font-size: 20px; font-size: 20px;
@@ -875,28 +885,80 @@ input[readonly] {
cursor: not-allowed; cursor: not-allowed;
} }
.removable-option:hover::before { .interactable-option:hover::before {
opacity: 1; opacity: 1;
} }
.removable-option::before { .interactable-option::before {
content: 'Double-click to ❌'; content: '1x 📝 | 2x 🚮';
position: absolute; position: absolute;
right: 0; right: 0;
top: 0; top: 0;
color: white; color: white;
background-color: rgb(255, 87, 87); background-color: rgb(0, 0, 0);
padding: 3px; padding: 3px;
transition: opacity 0.5s; transition: opacity 0.5s;
opacity: 0; opacity: 0.1;
border-radius: 3px; border-radius: 3px;
} }
.removable-option:hover { .interactable-option:hover {
transition: background-color 2s; transition: background-color 2s;
cursor: pointer; cursor: pointer;
} }
.settingsImportedTimestamp
{
padding: 25px;
}
.settingsSearchWrap
{
padding:10px;
}
.settings-sticky-bottom-section {
position: fixed;
z-index: 999;
background-color: #5B5B66;
/* opacity: 0.8; */
bottom: 30px;
border-radius: 5px;
margin:1px;
border-width: 1px;
border-style: solid;
border-color: inherit;
width: 87%;
}
.settings-sticky-bottom-section:hover {
border-color: #258744;
}
.clear-filter
{
opacity: 0.5;
cursor: pointer;
width: 14px;
position: absolute;
right: -6px;
top: 6px;
}
.clear-filter:hover
{
opacity: 1;
}
.saveSettingsWrapper button
{
width:70%;
margin-top:20px;
margin-left:15%;
margin-bottom:20px;
}
/* ----------------------------------------------------------------- */ /* ----------------------------------------------------------------- */
/* Devices page */ /* Devices page */
/* ----------------------------------------------------------------- */ /* ----------------------------------------------------------------- */
@@ -963,11 +1025,23 @@ input[readonly] {
height: 1.5em !important; height: 1.5em !important;
} }
/* ----------------------------------------------------------------- */
/* MODAL popups */
/* ----------------------------------------------------------------- */
#modal-input-textarea #modal-input-textarea
{ {
width: 100%; width: 100%;
} }
.modal-field-input
{
margin: 4%;
width: 92%;
}
/* ----------------------------------------------------------------- */ /* ----------------------------------------------------------------- */
/* NETWORK page */ /* NETWORK page */

View File

@@ -17,9 +17,10 @@ html {
background-color: #353c42; background-color: #353c42;
} }
body { body, .bg-yellow, .callout.callout-warning, .alert-warning, .label-warning, .modal-warning .modal-body {
background-color: #353c42;
color: #bec5cb; background-color: #353c42 !important;
color: #bec5cb !important;
} }
h4 { h4 {
color: #44def1; color: #44def1;

View File

@@ -9,7 +9,7 @@
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
var timerRefreshData = '' var timerRefreshData = ''
var modalCallbackFunction = '';
var emptyArr = ['undefined', "", undefined, null, 'null']; var emptyArr = ['undefined', "", undefined, null, 'null'];
var UI_LANG = "English"; var UI_LANG = "English";
var settingsJSON = {} var settingsJSON = {}
@@ -278,162 +278,7 @@ function getString (key) {
return result; return result;
} }
// -----------------------------------------------------------------------------
// Modal dialog handling
// -----------------------------------------------------------------------------
function showModalOK (title, message, callbackFunction) {
showModalOk (title, message, callbackFunction)
}
function showModalOk (title, message, callbackFunction) {
// set captions
$('#modal-ok-title').html (title);
$('#modal-ok-message').html (message);
if(callbackFunction!= null)
{
$("#modal-ok-OK").click(function()
{
callbackFunction()
});
}
// Show modal
$('#modal-ok').modal('show');
}
// -----------------------------------------------------------------------------
function showModalDefault (title, message, btnCancel, btnOK, callbackFunction) {
// set captions
$('#modal-default-title').html (title);
$('#modal-default-message').html (message);
$('#modal-default-cancel').html (btnCancel);
$('#modal-default-OK').html (btnOK);
modalCallbackFunction = callbackFunction;
// Show modal
$('#modal-default').modal('show');
}
// -----------------------------------------------------------------------------
function showModalDefaultStrParam (title, message, btnCancel, btnOK, callbackFunction, param='') {
// set captions
$('#modal-str-title').html (title);
$('#modal-str-message').html (message);
$('#modal-str-cancel').html (btnCancel);
$('#modal-str-OK').html (btnOK);
$("#modal-str-OK").off("click"); //remove existing handlers
$('#modal-str-OK').on('click', function (){
$('#modal-str').modal('hide');
callbackFunction(param)
})
// Show modal
$('#modal-str').modal('show');
}
// -----------------------------------------------------------------------------
function showModalWarning (title, message, btnCancel=getString('Gen_Cancel'), btnOK=getString('Gen_Okay'), callbackFunction=null) {
// set captions
$('#modal-warning-title').html (title);
$('#modal-warning-message').html (message);
$('#modal-warning-cancel').html (btnCancel);
$('#modal-warning-OK').html (btnOK);
if ( callbackFunction != null)
{
modalCallbackFunction = callbackFunction;
}
// Show modal
$('#modal-warning').modal('show');
}
// -----------------------------------------------------------------------------
function showModalInput (title, message, btnCancel=getString('Gen_Cancel'), btnOK=getString('Gen_Okay'), callbackFunction=null) {
// set captions
$('#modal-input-title').html (title);
$('#modal-input-message').html (message);
$('#modal-input-cancel').html (btnCancel);
$('#modal-input-OK').html (btnOK);
if ( callbackFunction != null)
{
modalCallbackFunction = callbackFunction;
}
// Show modal
$('#modal-input').modal('show');
}
// -----------------------------------------------------------------------------
function modalDefaultOK () {
// Hide modal
$('#modal-default').modal('hide');
// timer to execute function
window.setTimeout( function() {
window[modalCallbackFunction]();
}, 100);
}
// -----------------------------------------------------------------------------
function modalDefaultInput () {
// Hide modal
$('#modal-input').modal('hide');
// timer to execute function
window.setTimeout( function() {
window[modalCallbackFunction]();
}, 100);
}
// -----------------------------------------------------------------------------
function modalWarningOK () {
// Hide modal
$('#modal-warning').modal('hide');
// timer to execute function
window.setTimeout( function() {
window[modalCallbackFunction]();
}, 100);
}
// -----------------------------------------------------------------------------
function showMessage (textMessage="") {
if (textMessage.toLowerCase().includes("error") ) {
// show error
alert (textMessage);
} else {
// show temporal notification
$("#alert-message").html (textMessage);
$("#notification").fadeIn(1, function () {
window.setTimeout( function() {
$("#notification").fadeOut(500)
}, 3000);
} );
}
}
// -----------------------------------------------------------------------------
function showTickerAnnouncement(textMessage = "") {
if (textMessage.toLowerCase().includes("error")) {
// show error
alert(textMessage);
} else {
// show permanent notification
$("#ticker-message").html(textMessage);
$("#tickerAnnouncement").removeClass("myhidden");
// Move the tickerAnnouncement element to ticker_announcement_plc
$("#tickerAnnouncement").appendTo("#ticker_announcement_plc");
// var $ticker = $('#tickerAnnouncement');
// var $tickerMessage = $('#ticker-message');
// Clone the ticker message to create continuous scrolling effect
// $tickerMessage.clone().appendTo($ticker);
}
}
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------

235
front/js/modal.js Executable file
View File

@@ -0,0 +1,235 @@
// -----------------------------------------------------------------------------
// Modal dialog handling
// -----------------------------------------------------------------------------
var modalCallbackFunction = "";
function showModalOK(title, message, callbackFunction) {
showModalOk(title, message, callbackFunction);
}
function showModalOk(title, message, callbackFunction) {
// set captions
$("#modal-ok-title").html(title);
$("#modal-ok-message").html(message);
if (callbackFunction != null) {
$("#modal-ok-OK").click(function () {
callbackFunction();
});
}
// Show modal
$("#modal-ok").modal("show");
}
// -----------------------------------------------------------------------------
function showModalDefault(title, message, btnCancel, btnOK, callbackFunction) {
// set captions
$("#modal-default-title").html(title);
$("#modal-default-message").html(message);
$("#modal-default-cancel").html(btnCancel);
$("#modal-default-OK").html(btnOK);
modalCallbackFunction = callbackFunction;
// Show modal
$("#modal-default").modal("show");
}
// -----------------------------------------------------------------------------
function showModalDefaultStrParam(
title,
message,
btnCancel,
btnOK,
callbackFunction,
param = ""
) {
// set captions
$("#modal-str-title").html(title);
$("#modal-str-message").html(message);
$("#modal-str-cancel").html(btnCancel);
$("#modal-str-OK").html(btnOK);
$("#modal-str-OK").off("click"); //remove existing handlers
$("#modal-str-OK").on("click", function () {
$("#modal-str").modal("hide");
callbackFunction(param);
});
// Show modal
$("#modal-str").modal("show");
}
// -----------------------------------------------------------------------------
function showModalWarning(
title,
message,
btnCancel = getString("Gen_Cancel"),
btnOK = getString("Gen_Okay"),
callbackFunction = null
) {
// set captions
$("#modal-warning-title").html(title);
$("#modal-warning-message").html(message);
$("#modal-warning-cancel").html(btnCancel);
$("#modal-warning-OK").html(btnOK);
if (callbackFunction != null) {
modalCallbackFunction = callbackFunction;
}
// Show modal
$("#modal-warning").modal("show");
}
// -----------------------------------------------------------------------------
function showModalInput(
title,
message,
btnCancel = getString("Gen_Cancel"),
btnOK = getString("Gen_Okay"),
callbackFunction = null
) {
prefix = "modal-input";
// set captions
$(`#${prefix}-title`).html(title);
$(`#${prefix}-message`).html(message);
$(`#${prefix}-cancel`).html(btnCancel);
$(`#${prefix}-OK`).html(btnOK);
if (callbackFunction != null) {
modalCallbackFunction = callbackFunction;
}
// Show modal
$(`#${prefix}`).modal("show");
setTimeout(function () {
$(`#${prefix}-textarea`).focus();
}, 500);
}
// -----------------------------------------------------------------------------
function showModalFieldInput(
title,
message,
btnCancel = getString("Gen_Cancel"),
btnOK = getString("Gen_Okay"),
curValue = "",
callbackFunction = null
) {
// set captions
prefix = "modal-field-input";
$(`#${prefix}-title`).html(title);
$(`#${prefix}-message`).html(message);
$(`#${prefix}-cancel`).html(btnCancel);
$(`#${prefix}-OK`).html(btnOK);
if (callbackFunction != null) {
modalCallbackFunction = callbackFunction;
}
$(`#${prefix}-field`).val(curValue);
setTimeout(function () {
$(`#${prefix}-field`).focus();
}, 500);
// Show modal
$(`#${prefix}`).modal("show");
}
// -----------------------------------------------------------------------------
function modalDefaultOK() {
// Hide modal
$("#modal-default").modal("hide");
// timer to execute function
window.setTimeout(function () {
window[modalCallbackFunction]();
}, 100);
}
// -----------------------------------------------------------------------------
function modalDefaultInput() {
// Hide modal
$("#modal-input").modal("hide");
// timer to execute function
window.setTimeout(function () {
window[modalCallbackFunction]();
}, 100);
}
// -----------------------------------------------------------------------------
function modalDefaultFieldInput() {
// Hide modal
$("#modal-field-input").modal("hide");
// timer to execute function
window.setTimeout(function () {
modalCallbackFunction();
}, 100);
}
// -----------------------------------------------------------------------------
function modalWarningOK() {
// Hide modal
$("#modal-warning").modal("hide");
// timer to execute function
window.setTimeout(function () {
window[modalCallbackFunction]();
}, 100);
}
// -----------------------------------------------------------------------------
function showMessage(textMessage = "") {
if (textMessage.toLowerCase().includes("error")) {
// show error
alert(textMessage);
} else {
// show temporal notification
$("#alert-message").html(textMessage);
$("#notification").fadeIn(1, function () {
window.setTimeout(function () {
$("#notification").fadeOut(500);
}, 3000);
});
}
}
// -----------------------------------------------------------------------------
function showTickerAnnouncement(textMessage = "") {
if (textMessage.toLowerCase().includes("error")) {
// show error
alert(textMessage);
} else {
// show permanent notification
$("#ticker-message").html(textMessage);
$("#tickerAnnouncement").removeClass("myhidden");
// Move the tickerAnnouncement element to ticker_announcement_plc
$("#tickerAnnouncement").appendTo("#ticker_announcement_plc");
}
}
// -----------------------------------------------------------------------------
// Keyboard bindings
// -----------------------------------------------------------------------------
$(document).ready(function () {
$(document).on("keydown", function (event) {
// ESC key is pressed
if (event.keyCode === 27) {
// Trigger modal dismissal
$(".modal").modal("hide");
}
// Enter key is pressed
if (event.keyCode === 13) {
$(".modal:visible").find(".btn-modal-submit").click(); // Trigger the click event of the OK button in visible modals
}
});
});

View File

@@ -124,8 +124,7 @@
if(allOpen == false || openOrClose == 'open') if(allOpen == false || openOrClose == 'open')
{ {
// open all // open all
$('div[data-myid="collapsible"]').each(function(){$(this).attr('class', 'panel-collapse collapse in')}) openAllSettings()
$('div[data-myid="collapsible"]').each(function(){$(this).attr('style', 'height:inherit')})
$('#toggleSettings').attr('class', $('#toggleSettings').attr('class').replace(openIcon, closeIcon)) $('#toggleSettings').attr('class', $('#toggleSettings').attr('class').replace(openIcon, closeIcon))
} }
@@ -137,6 +136,11 @@
} }
function openAllSettings() {
$('div[data-myid="collapsible"]').each(function(){$(this).attr('class', 'panel-collapse collapse in')})
$('div[data-myid="collapsible"]').each(function(){$(this).attr('style', 'height:inherit')})
}
// ------------------------------------------------------------------- // -------------------------------------------------------------------
// Checks if all schedules are the same // Checks if all schedules are the same
@@ -177,23 +181,134 @@
} }
} }
// -------------------------------------------------------------------
// Manipulating Editable List options
// -------------------------------------------------------------------
// ------------------------------------------------------------------- // -------------------------------------------------------------------
// Function to remove an item from the select element // Function to remove an item from the select element
function removeOptionItem(option) { function removeOptionItem(option) {
settingsChanged();
option.remove(); option.remove();
} }
// -------------------------------------------------------------------
// Update value of an item from the select element
function updateOptionItem(option, value) {
settingsChanged();
option.html(value);
}
// -------------------------------------------------------------------
// Remove all options
function removeAllOptions(element)
{
settingsChanged();
$(`#${$(element).attr('my-input')}`).empty();
}
// ------------------------------------------------------------------- // -------------------------------------------------------------------
// Function to initialize remove functionality on select options // Function to initialize remove functionality on select options
function initRemoveBtnOptn(selectorId) {
// Attach double-click event listeners to "Remove" // Counter to track number of clicks
$(`#${selectorId} option`).addClass('removable-option').on('dblclick', function() { let clickCounter = 0;
// Function to initialize list interaction options
function initListInteractionOptions(selectorId) {
// Select all options within the specified selector
const $options = $(`#${selectorId} option`);
// Add class to make options interactable
$options.addClass('interactable-option');
// Attach click event listener to options
$options.on('click', function() {
const $option = $(this); const $option = $(this);
// Increment click counter
clickCounter++;
// Delay to capture multiple clicks
setTimeout(() => {
// Perform action based on click count
if (clickCounter === 1) {
// Single-click action
showModalFieldInput(
`<i class="fa-regular fa-pen-to-square"></i> ${getString('Gen_Update_Value')}`,
getString('settings_update_item_warning'),
getString('Gen_Cancel'),
getString('Gen_Update'),
$option.html(),
function() {
updateOptionItem($option, $(`#modal-field-input-field`).val())
}
);
} else if (clickCounter === 2) {
// Double-click action
removeOptionItem($option); removeOptionItem($option);
}
// Reset click counter
clickCounter = 0;
}, 300); // Adjust delay as needed
}); });
} }
// -------------------------------------------------------------------
// Function to filter rows based on input text
function filterRows(inputText) {
if(!inputText)
{
inputText = ''
}
$('.table_row').each(function() {
// Check if the row id ends with '__metadata'
var idAttribute = $(this).attr('id');
if (idAttribute && idAttribute.endsWith('__metadata')) {
$(this).hide(); // Hide the row if it ends with '__metadata'
return; // Skip to the next iteration
}
var description = $(this).find('.setting_description').text().toLowerCase();
var codeName = $(this).find('.setting_name code').text().toLowerCase();
if (description.includes(inputText.toLowerCase()) || codeName.includes(inputText.toLowerCase())) {
$(this).show(); // Show the row if it matches the input text
} else {
$(this).hide(); // Hide the row if it doesn't match the input text
}
});
}
setTimeout(() => {
// Event listener for input change
$('#settingsSearch').on('input', function() {
var searchText = $(this).val();
// hide the setting overview dashboard
$('#settingsOverview').collapse('hide');
filterRows(searchText);
});
// Event listener for input focus
// var firstFocus = true;
$('#settingsSearch').on('focus', function() {
openAllSettings()
});
}, 1000);

View File

@@ -22,7 +22,7 @@
<!-- To the right --> <!-- To the right -->
<div class="pull-right no-hidden-xs"> <div class="pull-right no-hidden-xs">
| <a href="https://github.com/jokob-sk/NetAlertX/tree/main/docs" target="_blank">Docs <i class="fa fa-circle-question"></i></a> | <a href="https://github.com/jokob-sk/NetAlertX/tree/main/docs#documentation-overview" target="_blank">Docs <i class="fa fa-circle-question"></i></a>
| <a href="https://github.com/jokob-sk/NetAlertX/issues"><i class="fa-solid fa-bug"></i></a> | <a href="https://github.com/jokob-sk/NetAlertX/issues"><i class="fa-solid fa-bug"></i></a>
| <a href="https://github.com/jokob-sk/NetAlertX/"><i class="fa-brands fa-github"></i></a> | <a href="https://github.com/jokob-sk/NetAlertX/"><i class="fa-brands fa-github"></i></a>
| <a href="mailto:jokob@duck.com?subject=NetAlertX"><i class="fa-solid fa-envelope"></i></a> | <a href="mailto:jokob@duck.com?subject=NetAlertX"><i class="fa-solid fa-envelope"></i></a>

View File

@@ -31,6 +31,7 @@ require dirname(__FILE__).'/security.php';
<script src="lib/AdminLTE/bower_components/jquery/dist/jquery.min.js"></script> <script src="lib/AdminLTE/bower_components/jquery/dist/jquery.min.js"></script>
<script src="js/common.js"></script> <script src="js/common.js"></script>
<script src="js/modal.js"></script>
<!-- Bootstrap 3.3.7 --> <!-- Bootstrap 3.3.7 -->
<link rel="stylesheet" href="lib/AdminLTE/bower_components/bootstrap/dist/css/bootstrap.min.css"> <link rel="stylesheet" href="lib/AdminLTE/bower_components/bootstrap/dist/css/bootstrap.min.css">

View File

@@ -273,6 +273,7 @@
"Events_Tablelenght_all": "Alle", "Events_Tablelenght_all": "Alle",
"Events_Title": "Ereignisse", "Events_Title": "Ereignisse",
"Gen_Action": "Action", "Gen_Action": "Action",
"Gen_Add": "",
"Gen_Add_All": "", "Gen_Add_All": "",
"Gen_AreYouSure": "Sind Sie sich sicher?", "Gen_AreYouSure": "Sind Sie sich sicher?",
"Gen_Backup": "Sichern", "Gen_Backup": "Sichern",
@@ -282,19 +283,24 @@
"Gen_Delete": "L\u00f6schen", "Gen_Delete": "L\u00f6schen",
"Gen_DeleteAll": "Delete all", "Gen_DeleteAll": "Delete all",
"Gen_Error": "Fehler", "Gen_Error": "Fehler",
"Gen_Filter": "",
"Gen_LockedDB": "ERROR - DB eventuell gesperrt - Nutze die Konsole in den Entwickler Werkzeugen (F12) zur \u00dcberpr\u00fcfung oder probiere es sp\u00e4ter erneut.", "Gen_LockedDB": "ERROR - DB eventuell gesperrt - Nutze die Konsole in den Entwickler Werkzeugen (F12) zur \u00dcberpr\u00fcfung oder probiere es sp\u00e4ter erneut.",
"Gen_Okay": "Ok", "Gen_Okay": "Ok",
"Gen_Purge": "Aufr\u00e4umen", "Gen_Purge": "Aufr\u00e4umen",
"Gen_ReadDocs": "Mehr in der Dokumentation", "Gen_ReadDocs": "Mehr in der Dokumentation",
"Gen_Remove_All": "", "Gen_Remove_All": "",
"Gen_Remove_Last": "",
"Gen_Restore": "Wiederherstellen", "Gen_Restore": "Wiederherstellen",
"Gen_Run": "Run", "Gen_Run": "Run",
"Gen_Save": "Speichern", "Gen_Save": "Speichern",
"Gen_Saved": "Gespeichert", "Gen_Saved": "Gespeichert",
"Gen_Search": "",
"Gen_Selected_Devices": "Ausgew\u00e4hlte Ger\u00e4te:", "Gen_Selected_Devices": "Ausgew\u00e4hlte Ger\u00e4te:",
"Gen_Switch": "Umschalten", "Gen_Switch": "Umschalten",
"Gen_Upd": "Aktualisierung erfolgreich", "Gen_Upd": "Aktualisierung erfolgreich",
"Gen_Upd_Fail": "Aktualisierung fehlgeschlagen", "Gen_Upd_Fail": "Aktualisierung fehlgeschlagen",
"Gen_Update": "",
"Gen_Update_Value": "",
"Gen_Warning": "Warnung", "Gen_Warning": "Warnung",
"Gen_Work_In_Progress": "Keine Finalversion, feedback bitte unter: https://github.com/jokob-sk/NetAlertX/issues", "Gen_Work_In_Progress": "Keine Finalversion, feedback bitte unter: https://github.com/jokob-sk/NetAlertX/issues",
"General_display_name": "Allgemein", "General_display_name": "Allgemein",
@@ -739,6 +745,7 @@
"settings_saved": "<br/>Settings saved to the <code>app.conf</code> file.<br/><br/>A time-stamped backup of the previous file created. <br/><br/> Reloading...<br/>", "settings_saved": "<br/>Settings saved to the <code>app.conf</code> file.<br/><br/>A time-stamped backup of the previous file created. <br/><br/> Reloading...<br/>",
"settings_system_icon": "fa-solid fa-gear", "settings_system_icon": "fa-solid fa-gear",
"settings_system_label": "System", "settings_system_label": "System",
"settings_update_item_warning": "",
"test_event_icon": "fa-vial-circle-check", "test_event_icon": "fa-vial-circle-check",
"test_event_tooltip": "Save your changes at first before you test your settings." "test_event_tooltip": "Save your changes at first before you test your settings."
} }

View File

@@ -261,6 +261,7 @@
"Events_Tablelenght_all": "All", "Events_Tablelenght_all": "All",
"Events_Title": "Events", "Events_Title": "Events",
"Gen_Action": "Action", "Gen_Action": "Action",
"Gen_Add": "Add",
"Gen_Add_All": "Add all", "Gen_Add_All": "Add all",
"Gen_AreYouSure": "Are you sure?", "Gen_AreYouSure": "Are you sure?",
"Gen_Backup": "Run Backup", "Gen_Backup": "Run Backup",
@@ -270,19 +271,24 @@
"Gen_Delete": "Delete", "Gen_Delete": "Delete",
"Gen_DeleteAll": "Delete all", "Gen_DeleteAll": "Delete all",
"Gen_Error": "Error", "Gen_Error": "Error",
"Gen_Filter": "Filter",
"Gen_LockedDB": "ERROR - DB might be locked - Check F12 Dev tools -> Console or try later.", "Gen_LockedDB": "ERROR - DB might be locked - Check F12 Dev tools -> Console or try later.",
"Gen_Okay": "Ok", "Gen_Okay": "Ok",
"Gen_Purge": "Purge", "Gen_Purge": "Purge",
"Gen_ReadDocs": "Read more in the docs.", "Gen_ReadDocs": "Read more in the docs.",
"Gen_Remove_All": "Remove all", "Gen_Remove_All": "Remove all",
"Gen_Remove_Last": "Remove last",
"Gen_Restore": "Run Restore", "Gen_Restore": "Run Restore",
"Gen_Run": "Run", "Gen_Run": "Run",
"Gen_Save": "Save", "Gen_Save": "Save",
"Gen_Saved": "Saved", "Gen_Saved": "Saved",
"Gen_Search": "Search",
"Gen_Selected_Devices": "Selected Devices:", "Gen_Selected_Devices": "Selected Devices:",
"Gen_Switch": "Switch", "Gen_Switch": "Switch",
"Gen_Upd": "Updated successfully", "Gen_Upd": "Updated successfully",
"Gen_Upd_Fail": "Update failed", "Gen_Upd_Fail": "Update failed",
"Gen_Update": "Update",
"Gen_Update_Value": "Update Value",
"Gen_Warning": "Warning", "Gen_Warning": "Warning",
"Gen_Work_In_Progress": "Work in progress, good time to feedback on https://github.com/jokob-sk/NetAlertX/issues", "Gen_Work_In_Progress": "Work in progress, good time to feedback on https://github.com/jokob-sk/NetAlertX/issues",
"General_display_name": "General", "General_display_name": "General",
@@ -658,6 +664,7 @@
"settings_saved": "<br/>Settings saved to the <code>app.conf</code> file.<br/><br/>A time-stamped backup of the previous file created. <br/><br/> Reloading...<br/>", "settings_saved": "<br/>Settings saved to the <code>app.conf</code> file.<br/><br/>A time-stamped backup of the previous file created. <br/><br/> Reloading...<br/>",
"settings_system_icon": "fa-solid fa-gear", "settings_system_icon": "fa-solid fa-gear",
"settings_system_label": "System", "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_icon": "fa-vial-circle-check",
"test_event_tooltip": "Save your changes at first before you test your settings." "test_event_tooltip": "Save your changes at first before you test your settings."
} }

607
front/php/templates/language/es_es.json Executable file → Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -261,6 +261,7 @@
"Events_Tablelenght_all": "", "Events_Tablelenght_all": "",
"Events_Title": "\u00c9v\u00e8nements", "Events_Title": "\u00c9v\u00e8nements",
"Gen_Action": "Action", "Gen_Action": "Action",
"Gen_Add": "",
"Gen_Add_All": "", "Gen_Add_All": "",
"Gen_AreYouSure": "", "Gen_AreYouSure": "",
"Gen_Backup": "", "Gen_Backup": "",
@@ -270,19 +271,24 @@
"Gen_Delete": "Supprimer", "Gen_Delete": "Supprimer",
"Gen_DeleteAll": "", "Gen_DeleteAll": "",
"Gen_Error": "Erreur", "Gen_Error": "Erreur",
"Gen_Filter": "",
"Gen_LockedDB": "", "Gen_LockedDB": "",
"Gen_Okay": "OK", "Gen_Okay": "OK",
"Gen_Purge": "Purger", "Gen_Purge": "Purger",
"Gen_ReadDocs": "", "Gen_ReadDocs": "",
"Gen_Remove_All": "", "Gen_Remove_All": "",
"Gen_Remove_Last": "",
"Gen_Restore": "", "Gen_Restore": "",
"Gen_Run": "Lancer", "Gen_Run": "Lancer",
"Gen_Save": "Enregistrer", "Gen_Save": "Enregistrer",
"Gen_Saved": "Enregistr\u00e9", "Gen_Saved": "Enregistr\u00e9",
"Gen_Search": "",
"Gen_Selected_Devices": "", "Gen_Selected_Devices": "",
"Gen_Switch": "Basculer", "Gen_Switch": "Basculer",
"Gen_Upd": "", "Gen_Upd": "",
"Gen_Upd_Fail": "", "Gen_Upd_Fail": "",
"Gen_Update": "",
"Gen_Update_Value": "",
"Gen_Warning": "Avertissement", "Gen_Warning": "Avertissement",
"Gen_Work_In_Progress": "", "Gen_Work_In_Progress": "",
"General_display_name": "G\u00e9n\u00e9ral", "General_display_name": "G\u00e9n\u00e9ral",
@@ -658,6 +664,7 @@
"settings_saved": "", "settings_saved": "",
"settings_system_icon": "", "settings_system_icon": "",
"settings_system_label": "Syst\u00e8me", "settings_system_label": "Syst\u00e8me",
"settings_update_item_warning": "",
"test_event_icon": "", "test_event_icon": "",
"test_event_tooltip": "" "test_event_tooltip": ""
} }

397
front/php/templates/language/it_it.json Executable file → Normal file
View File

@@ -1,5 +1,5 @@
{ {
"API_CUSTOM_SQL_description": "Puoi specificare una query SQL personalizzata che generer\u00e0 un file JSON e quindi lo esporr\u00e0 tramite l'<a href=\"/api/table_custom_endpoint.json\" target=\"_blank\"><code>table_custom_endpoint.json</code>endpoint del file</a>.", "API_CUSTOM_SQL_description": "Puoi specificare una query SQL personalizzata che genererà un file JSON e quindi lo esporrà tramite l'<a href=\"/api/table_custom_endpoint.json\" target=\"_blank\"><code>table_custom_endpoint.json</code>endpoint del file</a>.",
"API_CUSTOM_SQL_name": "Endpoint personalizzato", "API_CUSTOM_SQL_name": "Endpoint personalizzato",
"API_display_name": "API", "API_display_name": "API",
"API_icon": "<i class=\"fa fa-arrow-down-up-across-line\"></i>", "API_icon": "<i class=\"fa fa-arrow-down-up-across-line\"></i>",
@@ -8,10 +8,10 @@
"About_Title": "Scanner di sicurezza di rete e framework di notifica", "About_Title": "Scanner di sicurezza di rete e framework di notifica",
"AppEvents_DateTimeCreated": "Loggato", "AppEvents_DateTimeCreated": "Loggato",
"AppEvents_Extra": "Extra", "AppEvents_Extra": "Extra",
"AppEvents_GUID": "GUID Evento Applicazione", "AppEvents_GUID": "GUID evento applicazione",
"AppEvents_Helper1": "", "AppEvents_Helper1": "Aiutante 1",
"AppEvents_Helper2": "", "AppEvents_Helper2": "Aiutante 2",
"AppEvents_Helper3": "", "AppEvents_Helper3": "Aiutante 3",
"AppEvents_ObjectForeignKey": "Chiave esterna", "AppEvents_ObjectForeignKey": "Chiave esterna",
"AppEvents_ObjectIndex": "Indice", "AppEvents_ObjectIndex": "Indice",
"AppEvents_ObjectIsArchived": "Archiviato (al momento del log)", "AppEvents_ObjectIsArchived": "Archiviato (al momento del log)",
@@ -20,22 +20,22 @@
"AppEvents_ObjectPrimaryID": "ID primario", "AppEvents_ObjectPrimaryID": "ID primario",
"AppEvents_ObjectSecondaryID": "ID secondario", "AppEvents_ObjectSecondaryID": "ID secondario",
"AppEvents_ObjectStatus": "Stato (al momento del log)", "AppEvents_ObjectStatus": "Stato (al momento del log)",
"AppEvents_ObjectStatusColumn": "", "AppEvents_ObjectStatusColumn": "Colonna di stato",
"AppEvents_ObjectType": "Tipo oggetto", "AppEvents_ObjectType": "Tipo oggetto",
"AppEvents_Plugin": "Plugin", "AppEvents_Plugin": "Plugin",
"AppEvents_Type": "Tipo", "AppEvents_Type": "Tipo",
"BackDevDetail_Actions_Ask_Run": "Vuoi eseguire questa azione?", "BackDevDetail_Actions_Ask_Run": "Vuoi eseguire questa azione?",
"BackDevDetail_Actions_Not_Registered": "Azione non registrata: ", "BackDevDetail_Actions_Not_Registered": "Azione non registrata: ",
"BackDevDetail_Actions_Title_Run": "Esegui azione", "BackDevDetail_Actions_Title_Run": "Esegui azione",
"BackDevDetail_Copy_Ask": "Copiare i dettagli dal dispositivo dall'elenco a discesa (tutto in questa pagina verr\u00e0 sovrascritto)?", "BackDevDetail_Copy_Ask": "Copiare i dettagli dal dispositivo dall'elenco a discesa (tutto in questa pagina verrà sovrascritto)?",
"BackDevDetail_Copy_Title": "Copia dettagli", "BackDevDetail_Copy_Title": "Copia dettagli",
"BackDevDetail_Tools_WOL_error": "Il comando NON \u00e8 stato eseguito.", "BackDevDetail_Tools_WOL_error": "Il comando NON è stato eseguito.",
"BackDevDetail_Tools_WOL_okay": "Il comando \u00e8 stato eseguito.", "BackDevDetail_Tools_WOL_okay": "Il comando è stato eseguito.",
"BackDevices_Arpscan_disabled": "Arp-Scan Disabilitata", "BackDevices_Arpscan_disabled": "Arp-Scan Disabilitata",
"BackDevices_Arpscan_enabled": "Arp-Scan Abilitata", "BackDevices_Arpscan_enabled": "Arp-Scan Abilitata",
"BackDevices_Backup_CopError": "Non \u00e8 stato possibile salvare il database originale.", "BackDevices_Backup_CopError": "Non è stato possibile salvare il database originale.",
"BackDevices_Backup_Failed": "Il backup \u00e8 stato eseguito parzialmente. L'archivio non \u00e8 stato creato o \u00e8 vuoto.", "BackDevices_Backup_Failed": "Il backup è stato eseguito parzialmente. L'archivio non è stato creato o è vuoto.",
"BackDevices_Backup_okay": "Il backup \u00e8 stato eseguito correttamente con il nuovo archivio", "BackDevices_Backup_okay": "Il backup è stato eseguito correttamente con il nuovo archivio",
"BackDevices_DBTools_DelDevError_a": "Errore durante l'eliminazione del Dispositivo", "BackDevices_DBTools_DelDevError_a": "Errore durante l'eliminazione del Dispositivo",
"BackDevices_DBTools_DelDevError_b": "Errore durante l'eliminazione dei Dispositivi", "BackDevices_DBTools_DelDevError_b": "Errore durante l'eliminazione dei Dispositivi",
"BackDevices_DBTools_DelDev_a": "Dispositivo eliminato", "BackDevices_DBTools_DelDev_a": "Dispositivo eliminato",
@@ -43,28 +43,28 @@
"BackDevices_DBTools_DelEvents": "Eventi eliminati", "BackDevices_DBTools_DelEvents": "Eventi eliminati",
"BackDevices_DBTools_DelEventsError": "Errore durante l'eliminazione degli Eventi", "BackDevices_DBTools_DelEventsError": "Errore durante l'eliminazione degli Eventi",
"BackDevices_DBTools_ImportCSV": "I dispositivi sono stati importati correttamente dal file CSV.", "BackDevices_DBTools_ImportCSV": "I dispositivi sono stati importati correttamente dal file CSV.",
"BackDevices_DBTools_ImportCSVError": "Non \u00e8 stato possibile importare il file CSV. Assicurati che il formato del file sia corretto.", "BackDevices_DBTools_ImportCSVError": "Non è stato possibile importare il file CSV. Assicurati che il formato del file sia corretto.",
"BackDevices_DBTools_ImportCSVMissing": "Il file CSV non \u00e8 stato trovato in <b>/config/devices.csv.</b>", "BackDevices_DBTools_ImportCSVMissing": "Il file CSV non è stato trovato in <b>/config/devices.csv.</b>",
"BackDevices_DBTools_Purge": "I backup meno recenti sono stati eliminati", "BackDevices_DBTools_Purge": "I backup meno recenti sono stati eliminati",
"BackDevices_DBTools_UpdDev": "Dispositivo aggiornato correttamente", "BackDevices_DBTools_UpdDev": "Dispositivo aggiornato correttamente",
"BackDevices_DBTools_UpdDevError": "Errore durante l'aggiornamento del Dispositivo", "BackDevices_DBTools_UpdDevError": "Errore durante l'aggiornamento del Dispositivo",
"BackDevices_DBTools_Upgrade": "Database aggiornato correttamente", "BackDevices_DBTools_Upgrade": "Database aggiornato correttamente",
"BackDevices_DBTools_UpgradeError": "Aggiornamento del Database fallito", "BackDevices_DBTools_UpgradeError": "Aggiornamento del Database fallito",
"BackDevices_Device_UpdDevError": "Errore durante l'aggiornamento dei dispositivi, riprovare pi\u00f9 tardi. Il database potrebbe essere bloccato a causa di un'operazione in esecuzione.", "BackDevices_Device_UpdDevError": "Errore durante l'aggiornamento dei dispositivi, riprovare più tardi. Il database potrebbe essere bloccato a causa di un'operazione in esecuzione.",
"BackDevices_Restore_CopError": "Non \u00e8 stato possibile salvare il database originale.", "BackDevices_Restore_CopError": "Non è stato possibile salvare il database originale.",
"BackDevices_Restore_Failed": "Ripristino fallito. Per favore effettuare il ripristino del backup manualmente.", "BackDevices_Restore_Failed": "Ripristino fallito. Per favore effettuare il ripristino del backup manualmente.",
"BackDevices_Restore_okay": "Ripristino eseguito correttamente.", "BackDevices_Restore_okay": "Ripristino eseguito correttamente.",
"BackDevices_darkmode_disabled": "Darkmode Disabilitata", "BackDevices_darkmode_disabled": "Darkmode Disabilitata",
"BackDevices_darkmode_enabled": "Darkmode Abilitata", "BackDevices_darkmode_enabled": "Darkmode Abilitata",
"DAYS_TO_KEEP_EVENTS_description": "Questa \u00e8 un'impostazione di manutenzione. Specifica il numero di giorni di cui mantenere gli eventi. Tutti gli eventi pi\u00f9 vecchi saranno eliminati periodicamente. Si applica anche allo storico eventi Plugin (Plugin Events History).", "DAYS_TO_KEEP_EVENTS_description": "Questa è un'impostazione di manutenzione. Specifica il numero di giorni di cui mantenere gli eventi. Tutti gli eventi più vecchi saranno eliminati periodicamente. Si applica anche allo storico eventi Plugin (Plugin Events History).",
"DAYS_TO_KEEP_EVENTS_name": "Elimina eventi meno recenti di", "DAYS_TO_KEEP_EVENTS_name": "Elimina eventi meno recenti di",
"DevDetail_Copy_Device_Title": "<i class=\"fa fa-copy\"></i> Copia dettagli dal dispositivo", "DevDetail_Copy_Device_Title": "<i class=\"fa fa-copy\"></i> Copia dettagli dal dispositivo",
"DevDetail_Copy_Device_Tooltip": "Copia i dettagli dal dispositivo dall'elenco a discesa. Tutto in questa pagina verr\u00e0 sovrascritto", "DevDetail_Copy_Device_Tooltip": "Copia i dettagli dal dispositivo dall'elenco a discesa. Tutto in questa pagina verrà sovrascritto",
"DevDetail_EveandAl_AlertAllEvents": "", "DevDetail_EveandAl_AlertAllEvents": "Notifica Tutti gli Eventi",
"DevDetail_EveandAl_AlertDown": "", "DevDetail_EveandAl_AlertDown": "Notifica Disconnessione",
"DevDetail_EveandAl_Archived": "Archiviato", "DevDetail_EveandAl_Archived": "Archiviato",
"DevDetail_EveandAl_NewDevice": "Nuovo Dispositivo", "DevDetail_EveandAl_NewDevice": "Nuovo Dispositivo",
"DevDetail_EveandAl_NewDevice_Tooltip": "Mostrer\u00e0 il Nuovo stato del dispositivo e lo includer\u00e0 negli elenchi quando il filtro Nuovi dispositivi \u00e8 attivo. Non influisce sulle notifiche.", "DevDetail_EveandAl_NewDevice_Tooltip": "Mostrerà il Nuovo stato del dispositivo e lo includerà negli elenchi quando il filtro Nuovi dispositivi è attivo. Non influisce sulle notifiche.",
"DevDetail_EveandAl_RandomMAC": "Indirizzo MAC casuale", "DevDetail_EveandAl_RandomMAC": "Indirizzo MAC casuale",
"DevDetail_EveandAl_ScanCycle": "Scansiona dispositivo", "DevDetail_EveandAl_ScanCycle": "Scansiona dispositivo",
"DevDetail_EveandAl_ScanCycle_a": "Scansiona dispositivo", "DevDetail_EveandAl_ScanCycle_a": "Scansiona dispositivo",
@@ -74,10 +74,10 @@
"DevDetail_Events_CheckBox": "Nascondi eventi Connessione", "DevDetail_Events_CheckBox": "Nascondi eventi Connessione",
"DevDetail_GoToNetworkNode": "Vai alla pagina di rete del nodo.", "DevDetail_GoToNetworkNode": "Vai alla pagina di rete del nodo.",
"DevDetail_Icon": "Icona", "DevDetail_Icon": "Icona",
"DevDetail_Icon_Descr": "", "DevDetail_Icon_Descr": "Inserisci il nome di un'icona Font Awesome senza il prefisso fa- o con la classe completa, es.: fa fa-brands fa-apple.",
"DevDetail_Loading": "Caricamento...", "DevDetail_Loading": "Caricamento...",
"DevDetail_MainInfo_Comments": "Commenti", "DevDetail_MainInfo_Comments": "Commenti",
"DevDetail_MainInfo_Favorite": "Preferiti", "DevDetail_MainInfo_Favorite": "Preferito",
"DevDetail_MainInfo_Group": "Gruppo", "DevDetail_MainInfo_Group": "Gruppo",
"DevDetail_MainInfo_Location": "Posizione", "DevDetail_MainInfo_Location": "Posizione",
"DevDetail_MainInfo_Name": "Nome", "DevDetail_MainInfo_Name": "Nome",
@@ -89,44 +89,44 @@
"DevDetail_MainInfo_Type": "Tipo", "DevDetail_MainInfo_Type": "Tipo",
"DevDetail_MainInfo_Vendor": "Venditore", "DevDetail_MainInfo_Vendor": "Venditore",
"DevDetail_MainInfo_mac": "MAC", "DevDetail_MainInfo_mac": "MAC",
"DevDetail_Network_Node_hover": "", "DevDetail_Network_Node_hover": "Seleziona il nodo padre a cui il dispositivo è connesso, per popolare l'Alberatura di Rete.",
"DevDetail_Network_Port_hover": "", "DevDetail_Network_Port_hover": "La porta del nodo padre a cui questo dispositivo è connesso. Se lasciato vuoto, verrà mostrata l'icona WiFi all'interno dell'Alberatura di Rete.",
"DevDetail_Nmap_Scans": "Scansione Nmap manuale", "DevDetail_Nmap_Scans": "Scansione Nmap manuale",
"DevDetail_Nmap_Scans_desc": "", "DevDetail_Nmap_Scans_desc": "Qui puoi eseguire scansioni manuali NMAP. Puoi anche pianificare scansioni automatiche NMAP attraverso il plugin Servizi e Porte (NMAP). Vai alle <a href='/settings.php' target='_blank'>Impostazioni</a> per scoprire di più",
"DevDetail_Nmap_buttonDefault": "", "DevDetail_Nmap_buttonDefault": "Scansione predefinita",
"DevDetail_Nmap_buttonDefault_text": "", "DevDetail_Nmap_buttonDefault_text": "Scansione predefinita: Nmap scansiona 1000 porte per ogni protocollo richiesto. Questo dovrebbe coprire circa il 93% delle porte TCP e il 49% delle porte UDP. (circa 5 secondi)",
"DevDetail_Nmap_buttonDetail": "", "DevDetail_Nmap_buttonDetail": "Scansione dettagliata",
"DevDetail_Nmap_buttonDetail_text": "", "DevDetail_Nmap_buttonDetail_text": "Scansione Dettagliata: Scansione predefinita con l'aggiunta di rilevazione SO, rilevazione versione, scansione script e traceroute (fino a 30 secondi o più)",
"DevDetail_Nmap_buttonFast": "", "DevDetail_Nmap_buttonFast": "Scansione Veloce",
"DevDetail_Nmap_buttonFast_text": "", "DevDetail_Nmap_buttonFast_text": "Scansione Veloce: Scansiona meno porte (100) della scansione predefinita (pochi secondi)",
"DevDetail_Nmap_buttonSkipDiscovery": "", "DevDetail_Nmap_buttonSkipDiscovery": "Salta rilevazione host",
"DevDetail_Nmap_buttonSkipDiscovery_text": "", "DevDetail_Nmap_buttonSkipDiscovery_text": "Salta rilevazione host (opzione -Pn): Scansione predefinita senza rilevazione host",
"DevDetail_Nmap_resultsLink": "", "DevDetail_Nmap_resultsLink": "Puoi lasciare questa pagina dopo aver avviato una scansione. I risultati saranno disponibili nel file <code>app_front.log</code>.",
"DevDetail_Owner_hover": "", "DevDetail_Owner_hover": "Chi è il proprietario di questo dispositivo. Campo a testo libero.",
"DevDetail_Periodselect_All": "", "DevDetail_Periodselect_All": "Tutte le info",
"DevDetail_Periodselect_LastMonth": "", "DevDetail_Periodselect_LastMonth": "Ultimo Mese",
"DevDetail_Periodselect_LastWeek": "", "DevDetail_Periodselect_LastWeek": "Ultima Settimana",
"DevDetail_Periodselect_LastYear": "", "DevDetail_Periodselect_LastYear": "Ultimo Anno",
"DevDetail_Periodselect_today": "", "DevDetail_Periodselect_today": "Oggi",
"DevDetail_Run_Actions_Title": "", "DevDetail_Run_Actions_Title": "<i class=\"fa fa-play\"></i> Esegui azione su questo dispositivo",
"DevDetail_Run_Actions_Tooltip": "", "DevDetail_Run_Actions_Tooltip": "Esegui un'azione sul dispositivo corrente dal menù a tendina.",
"DevDetail_SessionInfo_FirstSession": "", "DevDetail_SessionInfo_FirstSession": "Prima Sessione",
"DevDetail_SessionInfo_LastIP": "", "DevDetail_SessionInfo_LastIP": "Ultimo IP",
"DevDetail_SessionInfo_LastSession": "", "DevDetail_SessionInfo_LastSession": "Ultima Sessione",
"DevDetail_SessionInfo_StaticIP": "", "DevDetail_SessionInfo_StaticIP": "IP Statico",
"DevDetail_SessionInfo_Status": "", "DevDetail_SessionInfo_Status": "Stato",
"DevDetail_SessionInfo_Title": "", "DevDetail_SessionInfo_Title": "<i class=\"fa fa-calendar\"></i> Info Sessione",
"DevDetail_SessionTable_Additionalinfo": "", "DevDetail_SessionTable_Additionalinfo": "Info aggiuntive",
"DevDetail_SessionTable_Connection": "", "DevDetail_SessionTable_Connection": "Connessione",
"DevDetail_SessionTable_Disconnection": "", "DevDetail_SessionTable_Disconnection": "Disconnessione",
"DevDetail_SessionTable_Duration": "", "DevDetail_SessionTable_Duration": "Durata",
"DevDetail_SessionTable_IP": "", "DevDetail_SessionTable_IP": "IP",
"DevDetail_SessionTable_Order": "", "DevDetail_SessionTable_Order": "Ordine",
"DevDetail_Shortcut_CurrentStatus": "", "DevDetail_Shortcut_CurrentStatus": "Stato attuale",
"DevDetail_Shortcut_DownAlerts": "", "DevDetail_Shortcut_DownAlerts": "Notifiche di Disconnessione",
"DevDetail_Shortcut_Presence": "", "DevDetail_Shortcut_Presence": "Presenze",
"DevDetail_Shortcut_Sessions": "", "DevDetail_Shortcut_Sessions": "Sessioni",
"DevDetail_Tab_Details": "", "DevDetail_Tab_Details": "<i class=\"fa fa-info-circle\"></i> Dettagli",
"DevDetail_Tab_Events": "<i class=\"fa fa-bolt\"></i> Eventi", "DevDetail_Tab_Events": "<i class=\"fa fa-bolt\"></i> Eventi",
"DevDetail_Tab_EventsTableDate": "Data", "DevDetail_Tab_EventsTableDate": "Data",
"DevDetail_Tab_EventsTableEvent": "Tipo evento", "DevDetail_Tab_EventsTableEvent": "Tipo evento",
@@ -146,33 +146,33 @@
"DevDetail_Tab_Presence": "<i class=\"fa fa-calendar\"></i> Presenza", "DevDetail_Tab_Presence": "<i class=\"fa fa-calendar\"></i> Presenza",
"DevDetail_Tab_Sessions": "<i class=\"fa fa-list-ol\"></i> Sessioni", "DevDetail_Tab_Sessions": "<i class=\"fa fa-list-ol\"></i> Sessioni",
"DevDetail_Tab_Tools": "<i class=\"fa fa-screwdriver-wrench\"></i> Strumenti", "DevDetail_Tab_Tools": "<i class=\"fa fa-screwdriver-wrench\"></i> Strumenti",
"DevDetail_Tab_Tools_Internet_Info_Description": "", "DevDetail_Tab_Tools_Internet_Info_Description": "Lo strumento Internet Info mostra informazioni relative alla connessione Internet, come l'indirizzo IP, città, paese, codice area e time zone.",
"DevDetail_Tab_Tools_Internet_Info_Error": "Si \u00e8 verificato un errore", "DevDetail_Tab_Tools_Internet_Info_Error": "Si è verificato un errore",
"DevDetail_Tab_Tools_Internet_Info_Start": "Avvia Info Internet", "DevDetail_Tab_Tools_Internet_Info_Start": "Avvia Info Internet",
"DevDetail_Tab_Tools_Internet_Info_Title": "Info Internet", "DevDetail_Tab_Tools_Internet_Info_Title": "Info Internet",
"DevDetail_Tab_Tools_Nslookup_Description": "Nslookup \u00e8 uno strumento a riga di comando utilizzato per interrogare il Domain Name System (DNS). DNS \u00e8 u sistema di traduzione dei domini, come www.google.com, in indirizzi IP, come 172.217.0.142.", "DevDetail_Tab_Tools_Nslookup_Description": "Nslookup è uno strumento a riga di comando utilizzato per interrogare il Domain Name System (DNS). DNS è u sistema di traduzione dei domini, come www.google.com, in indirizzi IP, come 172.217.0.142.",
"DevDetail_Tab_Tools_Nslookup_Error": "Errore: l'indirizzo IP non \u00e8 valido", "DevDetail_Tab_Tools_Nslookup_Error": "Errore: l'indirizzo IP non è valido",
"DevDetail_Tab_Tools_Nslookup_Start": "Avvia Nslookup", "DevDetail_Tab_Tools_Nslookup_Start": "Avvia Nslookup",
"DevDetail_Tab_Tools_Nslookup_Title": "Nslookup", "DevDetail_Tab_Tools_Nslookup_Title": "Nslookup",
"DevDetail_Tab_Tools_Speedtest_Description": "The strumento Speedtest misura la velocit\u00e0 di download, la velocit\u00e0 di upload e la latenza della connessione internet.", "DevDetail_Tab_Tools_Speedtest_Description": "The strumento Speedtest misura la velocità di download, la velocità di upload e la latenza della connessione internet.",
"DevDetail_Tab_Tools_Speedtest_Start": "Avvia Speedtest", "DevDetail_Tab_Tools_Speedtest_Start": "Avvia Speedtest",
"DevDetail_Tab_Tools_Speedtest_Title": "", "DevDetail_Tab_Tools_Speedtest_Title": "Speedtest Online",
"DevDetail_Tab_Tools_Traceroute_Description": "", "DevDetail_Tab_Tools_Traceroute_Description": "",
"DevDetail_Tab_Tools_Traceroute_Error": "Errore: l'indirizzo IP non \u00e8 valido", "DevDetail_Tab_Tools_Traceroute_Error": "Errore: l'indirizzo IP non è valido",
"DevDetail_Tab_Tools_Traceroute_Start": "Avvia Traceroute", "DevDetail_Tab_Tools_Traceroute_Start": "Avvia Traceroute",
"DevDetail_Tab_Tools_Traceroute_Title": "Traceroute", "DevDetail_Tab_Tools_Traceroute_Title": "Traceroute",
"DevDetail_Tools_WOL": "Invia comando WoL (Wake-on-LAN) a ", "DevDetail_Tools_WOL": "Invia comando WoL (Wake-on-LAN) a ",
"DevDetail_Tools_WOL_noti": "Wake-on-LAN", "DevDetail_Tools_WOL_noti": "Wake-on-LAN",
"DevDetail_Tools_WOL_noti_text": "Il comando Wake-on-LAN viene inviato all'indirizzo di broadcast. Se il destinatario non \u00e8 nella subnet/VLAN di NetAlertX, egli non risponder\u00e0.", "DevDetail_Tools_WOL_noti_text": "Il comando Wake-on-LAN viene inviato all'indirizzo di broadcast. Se il destinatario non è nella subnet/VLAN di NetAlertX, egli non risponderà.",
"DevDetail_Type_hover": "Il Tipo del dispositivo. Se selezioni uno dei dispositivi di rete predefiniti (es.: AP, Firewall, Router, Switch...) verr\u00e0 mostrato nell'alberatura di Rete come un possibile nodo padre.", "DevDetail_Type_hover": "Il Tipo del dispositivo. Se selezioni uno dei dispositivi di rete predefiniti (es.: AP, Firewall, Router, Switch...) verrà mostrato nell'alberatura di Rete come un possibile nodo padre.",
"DevDetail_Vendor_hover": "Il Venditore dovrebbe essere auto-popolato. Puoi sovrascrivere o aggiungere un valore personalizzato.", "DevDetail_Vendor_hover": "Il Venditore dovrebbe essere auto-popolato. Puoi sovrascrivere o aggiungere un valore personalizzato.",
"DevDetail_WOL_Title": "<i class=\"fa fa-power-off\"></i> Wake-on-LAN", "DevDetail_WOL_Title": "<i class=\"fa fa-power-off\"></i> Wake-on-LAN",
"DevDetail_button_AddIcon": "Aggiungi nuova Icona", "DevDetail_button_AddIcon": "Aggiungi nuova Icona",
"DevDetail_button_AddIcon_Help": "Inserisci un tag html SVG o un tag html Font Awesome. Leggi <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/ICONS.md\" target=\"_blank\">Icons docs</a> per ulteriori dettagli.", "DevDetail_button_AddIcon_Help": "Inserisci un tag html SVG o un tag html Font Awesome. Leggi <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/ICONS.md\" target=\"_blank\">Icons docs</a> per ulteriori dettagli.",
"DevDetail_button_AddIcon_Tooltip": "", "DevDetail_button_AddIcon_Tooltip": "Aggiungi una nuova icona non disponibile nel menù a tendina a questo dispositivo.",
"DevDetail_button_Delete": "Elimina Dispositivo", "DevDetail_button_Delete": "Elimina Dispositivo",
"DevDetail_button_DeleteEvents": "Elimina Eventi", "DevDetail_button_DeleteEvents": "Elimina Eventi",
"DevDetail_button_DeleteEvents_Warning": "Sei sicuro di voler eliminare tutti gli Eventi di questo dispositivo?<br><br>(questa azione svuoter\u00e0 lo <b>Storico eventi</b> e le <b>Sessioni</b> e potrebbe aiutare con le notifiche persistenti)", "DevDetail_button_DeleteEvents_Warning": "Sei sicuro di voler eliminare tutti gli Eventi di questo dispositivo?<br><br>(questa azione svuoterà lo <b>Storico eventi</b> e le <b>Sessioni</b> e potrebbe aiutare con le notifiche persistenti)",
"DevDetail_button_OverwriteIcons": "Sovrascrivi Icone", "DevDetail_button_OverwriteIcons": "Sovrascrivi Icone",
"DevDetail_button_OverwriteIcons_Tooltip": "Sovrascrivi le icone di tutti i dispositivi con lo stesso Tipo Dispositivo", "DevDetail_button_OverwriteIcons_Tooltip": "Sovrascrivi le icone di tutti i dispositivi con lo stesso Tipo Dispositivo",
"DevDetail_button_OverwriteIcons_Warning": "Sei sicuro di voler sovrascrivere l'icona di tutti i dispositivi della stessa tipologia di quello selezionato?", "DevDetail_button_OverwriteIcons_Warning": "Sei sicuro di voler sovrascrivere l'icona di tutti i dispositivi della stessa tipologia di quello selezionato?",
@@ -180,55 +180,55 @@
"DevDetail_button_Save": "Salva", "DevDetail_button_Save": "Salva",
"Device_MultiEdit": "", "Device_MultiEdit": "",
"Device_MultiEdit_Backup": "", "Device_MultiEdit_Backup": "",
"Device_MultiEdit_Fields": "", "Device_MultiEdit_Fields": "Modifica campi:",
"Device_MultiEdit_MassActions": "", "Device_MultiEdit_MassActions": "Azioni di massa:",
"Device_MultiEdit_Tooltip": "", "Device_MultiEdit_Tooltip": "Attenzione. Cliccando verrà applicato il valore sulla sinistra a tutti i dispositivi selezionati.",
"Device_Searchbox": "", "Device_Searchbox": "Cerca",
"Device_Shortcut_AllDevices": "", "Device_Shortcut_AllDevices": "I Miei Dispositivi",
"Device_Shortcut_Archived": "", "Device_Shortcut_Archived": "Archiviati",
"Device_Shortcut_Connected": "", "Device_Shortcut_Connected": "Connessi",
"Device_Shortcut_Devices": "", "Device_Shortcut_Devices": "Dispositivi",
"Device_Shortcut_DownAlerts": "", "Device_Shortcut_DownAlerts": "Disconnessi & Offline",
"Device_Shortcut_DownOnly": "", "Device_Shortcut_DownOnly": "Disconnesso",
"Device_Shortcut_Favorites": "", "Device_Shortcut_Favorites": "Preferiti",
"Device_Shortcut_NewDevices": "", "Device_Shortcut_NewDevices": "Nuovi Dispositivi",
"Device_Shortcut_OnlineChart": "", "Device_Shortcut_OnlineChart": "Presenza Dispositivo",
"Device_TableHead_Connected_Devices": "", "Device_TableHead_Connected_Devices": "Connessioni",
"Device_TableHead_Favorite": "", "Device_TableHead_Favorite": "Preferito",
"Device_TableHead_FirstSession": "", "Device_TableHead_FirstSession": "Prima Sessione",
"Device_TableHead_Group": "", "Device_TableHead_Group": "Gruppo",
"Device_TableHead_Icon": "", "Device_TableHead_Icon": "Icona",
"Device_TableHead_LastIP": "", "Device_TableHead_LastIP": "Ultimo IP",
"Device_TableHead_LastIPOrder": "", "Device_TableHead_LastIPOrder": "",
"Device_TableHead_LastSession": "", "Device_TableHead_LastSession": "Ultima Sessione",
"Device_TableHead_Location": "", "Device_TableHead_Location": "Posizione",
"Device_TableHead_MAC": "", "Device_TableHead_MAC": "MAC casuale",
"Device_TableHead_MAC_full": "", "Device_TableHead_MAC_full": "MAC completo",
"Device_TableHead_Name": "", "Device_TableHead_Name": "Nome",
"Device_TableHead_Owner": "", "Device_TableHead_Owner": "Proprietario",
"Device_TableHead_Parent_MAC": "", "Device_TableHead_Parent_MAC": "MAC del nodo padre",
"Device_TableHead_Port": "", "Device_TableHead_Port": "Porta",
"Device_TableHead_RowID": "", "Device_TableHead_RowID": "ID riga",
"Device_TableHead_Rowid": "", "Device_TableHead_Rowid": "ID riga",
"Device_TableHead_Status": "", "Device_TableHead_Status": "Stato",
"Device_TableHead_Type": "", "Device_TableHead_Type": "Tipo",
"Device_TableHead_Vendor": "", "Device_TableHead_Vendor": "Produttore",
"Device_Table_Not_Network_Device": "", "Device_Table_Not_Network_Device": "Non configurato come dispositivo di rete",
"Device_Table_info": "", "Device_Table_info": "_START_ - _END_ di _TOTAL_ elementi",
"Device_Table_nav_next": "", "Device_Table_nav_next": "Prossimo",
"Device_Table_nav_prev": "", "Device_Table_nav_prev": "Precedente",
"Device_Tablelenght": "", "Device_Tablelenght": "Mostra _MENU_ elementi",
"Device_Tablelenght_all": "", "Device_Tablelenght_all": "Tutti",
"Device_Title": "", "Device_Title": "Dispositivi",
"Donations_Others": "", "Donations_Others": "Altri",
"Donations_Platforms": "", "Donations_Platforms": "Piattaforme Sponsor",
"Donations_Text": "", "Donations_Text": "",
"Donations_Title": "", "Donations_Title": "Donazioni",
"ENABLE_PLUGINS_description": "", "ENABLE_PLUGINS_description": "Abilita la funzionalità <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/tree/main/front/plugins\">plugin</a>. Utilizzare i plugin richiede più risorse hardware, potresti voler disabilitare questa opzione sui dispositivi meno performanti.",
"ENABLE_PLUGINS_name": "", "ENABLE_PLUGINS_name": "Abilita Plugin",
"Email_display_name": "", "Email_display_name": "Email",
"Email_icon": "", "Email_icon": "<i class=\"fa fa-at\"></i>",
"Events_Loading": "", "Events_Loading": "Caricamento...",
"Events_Periodselect_All": "Tutte le info", "Events_Periodselect_All": "Tutte le info",
"Events_Periodselect_LastMonth": "Ultimo mese", "Events_Periodselect_LastMonth": "Ultimo mese",
"Events_Periodselect_LastWeek": "Ultima Settimana", "Events_Periodselect_LastWeek": "Ultima Settimana",
@@ -236,12 +236,12 @@
"Events_Periodselect_today": "Oggi", "Events_Periodselect_today": "Oggi",
"Events_Searchbox": "Cerca", "Events_Searchbox": "Cerca",
"Events_Shortcut_AllEvents": "Tutti gli Eventi", "Events_Shortcut_AllEvents": "Tutti gli Eventi",
"Events_Shortcut_DownAlerts": "", "Events_Shortcut_DownAlerts": "Notifiche di Disconnessione",
"Events_Shortcut_Events": "Eventi", "Events_Shortcut_Events": "Eventi",
"Events_Shortcut_MissSessions": "Sessioni mancanti", "Events_Shortcut_MissSessions": "Sessioni mancanti",
"Events_Shortcut_NewDevices": "Nuovi Dispositivi", "Events_Shortcut_NewDevices": "Nuovi Dispositivi",
"Events_Shortcut_Sessions": "Sessioni", "Events_Shortcut_Sessions": "Sessioni",
"Events_Shortcut_VoidSessions": "", "Events_Shortcut_VoidSessions": "Sessioni Annullate",
"Events_TableHead_AdditionalInfo": "Info aggiuntive", "Events_TableHead_AdditionalInfo": "Info aggiuntive",
"Events_TableHead_Connection": "Connessione", "Events_TableHead_Connection": "Connessione",
"Events_TableHead_Date": "Data", "Events_TableHead_Date": "Data",
@@ -254,14 +254,15 @@
"Events_TableHead_IPOrder": "", "Events_TableHead_IPOrder": "",
"Events_TableHead_Order": "Ordine", "Events_TableHead_Order": "Ordine",
"Events_TableHead_Owner": "Proprietario", "Events_TableHead_Owner": "Proprietario",
"Events_Table_info": "", "Events_Table_info": "_START_ - _END_ di _TOTAL_ elementi",
"Events_Table_nav_next": "Prossimo", "Events_Table_nav_next": "Prossimo",
"Events_Table_nav_prev": "Precedente", "Events_Table_nav_prev": "Precedente",
"Events_Tablelenght": "", "Events_Tablelenght": "Mostra _MENU_ elementi",
"Events_Tablelenght_all": "Tutti", "Events_Tablelenght_all": "Tutti",
"Events_Title": "Eventi", "Events_Title": "Eventi",
"Gen_Action": "Azione", "Gen_Action": "Azione",
"Gen_Add_All": "", "Gen_Add": "",
"Gen_Add_All": "Aggiungi tutti",
"Gen_AreYouSure": "Sei sicuro?", "Gen_AreYouSure": "Sei sicuro?",
"Gen_Backup": "Esegui Backup", "Gen_Backup": "Esegui Backup",
"Gen_Cancel": "Annulla", "Gen_Cancel": "Annulla",
@@ -270,47 +271,52 @@
"Gen_Delete": "Elimina", "Gen_Delete": "Elimina",
"Gen_DeleteAll": "Elimina tutti", "Gen_DeleteAll": "Elimina tutti",
"Gen_Error": "Errore", "Gen_Error": "Errore",
"Gen_LockedDB": "", "Gen_Filter": "",
"Gen_LockedDB": "ERRORE - Il DB potrebbe essere bloccato - Controlla gli strumenti sviluppatore (F12) -> Console o riprova più tardi.",
"Gen_Okay": "Ok", "Gen_Okay": "Ok",
"Gen_Purge": "Svuota", "Gen_Purge": "Svuota",
"Gen_ReadDocs": "", "Gen_ReadDocs": "Leggi di più nella documentazione.",
"Gen_Remove_All": "", "Gen_Remove_All": "Rimuovi tutti",
"Gen_Remove_Last": "",
"Gen_Restore": "Esegui Ripristino", "Gen_Restore": "Esegui Ripristino",
"Gen_Run": "Esegui", "Gen_Run": "Esegui",
"Gen_Save": "Salva", "Gen_Save": "Salva",
"Gen_Saved": "Salvato", "Gen_Saved": "Salvato",
"Gen_Search": "",
"Gen_Selected_Devices": "Dispositivi selezionati:", "Gen_Selected_Devices": "Dispositivi selezionati:",
"Gen_Switch": "", "Gen_Switch": "",
"Gen_Upd": "Aggiornato correttamente", "Gen_Upd": "Aggiornato correttamente",
"Gen_Upd_Fail": "Aggiornamento fallito", "Gen_Upd_Fail": "Aggiornamento fallito",
"Gen_Update": "",
"Gen_Update_Value": "",
"Gen_Warning": "", "Gen_Warning": "",
"Gen_Work_In_Progress": "", "Gen_Work_In_Progress": "",
"General_display_name": "Generale", "General_display_name": "Generale",
"General_icon": "<i class=\"fa fa-gears\"></i>", "General_icon": "<i class=\"fa fa-gears\"></i>",
"HRS_TO_KEEP_NEWDEV_description": "", "HRS_TO_KEEP_NEWDEV_description": "Questa è un'opzione di manutenzione. 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_name": "Mantieni nuovi dispositivi per", "HRS_TO_KEEP_NEWDEV_name": "Mantieni nuovi dispositivi per",
"HelpFAQ_Cat_Detail": "Dettagli", "HelpFAQ_Cat_Detail": "Dettagli",
"HelpFAQ_Cat_Detail_300_head": "", "HelpFAQ_Cat_Detail_300_head": "Cosa significa ",
"HelpFAQ_Cat_Detail_300_text_a": "", "HelpFAQ_Cat_Detail_300_text_a": "significa un dispositivo di rete (un dispositivo di tipo AP, Gateway, Firewall, Hypervisor, Powerline, Switch, WLAN, PLC, Router, USB LAN Adapter, USB WIFI Adapter, o Internet). Tipi personalizzati possono essere aggiunti attraverso l'impostazione <code>NETWORK_DEVICE_TYPES</code>.",
"HelpFAQ_Cat_Detail_300_text_b": "", "HelpFAQ_Cat_Detail_300_text_b": "indica il numero di porta a cui il dispositivo corrente è connesso a questo dispositivo di rete. Leggi <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/NETWORK_TREE.md\">questa guida</a> per maggiori dettagli.",
"HelpFAQ_Cat_Detail_301_head_a": "", "HelpFAQ_Cat_Detail_301_head_a": "",
"HelpFAQ_Cat_Detail_301_head_b": "", "HelpFAQ_Cat_Detail_301_head_b": " dice 1 minuto ma il grafico mostra intervalli di 5 minuti.",
"HelpFAQ_Cat_Detail_301_text": "", "HelpFAQ_Cat_Detail_301_text": "L'intervallo di tempo tra le scansioni è definito dal \"Cronjob\", che è impostato a 5 minuti. La dicitura \"1 minuto\" si riferisci alla durata attesa di una scansione. In base alla configurazione di rete, questo valore potrebbe variare. Per modificare il \"Cronjob\", puoi usare il comando <span class=\"text-danger help_faq_code\">crontab -e</span> sul terminale/console e cambiare l'intervallo di esecuzione.",
"HelpFAQ_Cat_Detail_302_head_a": "", "HelpFAQ_Cat_Detail_302_head_a": "Cosa significa ",
"HelpFAQ_Cat_Detail_302_head_b": "", "HelpFAQ_Cat_Detail_302_head_b": "e perché non posso selezionarlo?",
"HelpFAQ_Cat_Detail_302_text": "", "HelpFAQ_Cat_Detail_302_text": "Alcuni dispositivi di recente produzione generano indirizzi MAC casuali per questioni di privacy, i quali non possono quindi essere associati ad una produttore e che cambiano ad ogni nuova connessione. NetAlertX rileva se il dispositivo utilizza un MAC casuale e abilita automaticamente questo campo. Per disabilitare questo comportamento è necessario agire direttamente sulle impostazioni di rete del dispositivo.",
"HelpFAQ_Cat_Detail_303_head": "Cosa \u00e8 Nmap e a cosa serve?", "HelpFAQ_Cat_Detail_303_head": "Cosa è Nmap e a cosa serve?",
"HelpFAQ_Cat_Detail_303_text": "Nmap \u00e8 uno scanner di rete con molteplici funzionalit\u00e0. <br>Quando un nuovo dispositivo appare nella lista, hai la possibilit\u00e0 di ottenere ulteriori dettagli sul dispositivo attraverso una scansione Nmap.", "HelpFAQ_Cat_Detail_303_text": "Nmap è uno scanner di rete con molteplici funzionalità. <br>Quando un nuovo dispositivo appare nella lista, hai la possibilità di ottenere ulteriori dettagli sul dispositivo attraverso una scansione Nmap.",
"HelpFAQ_Cat_Device_200_head": "Nella mia lista sono presenti dispositivi che non conosco. Dopo averli eliminati, riappaiono costantemente.", "HelpFAQ_Cat_Device_200_head": "Nella mia lista sono presenti dispositivi che non conosco. Dopo averli eliminati, riappaiono costantemente.",
"HelpFAQ_Cat_Device_200_text": "", "HelpFAQ_Cat_Device_200_text": "",
"HelpFAQ_Cat_General": "Generale", "HelpFAQ_Cat_General": "Generale",
"HelpFAQ_Cat_General_100_head": "L'orologio in alto a destra e l'orario degli eventi/presenze non sono corretti (orario sfasato).", "HelpFAQ_Cat_General_100_head": "L'orologio in alto a destra e l'orario degli eventi/presenze non sono corretti (orario sfasato).",
"HelpFAQ_Cat_General_100_text_a": "", "HelpFAQ_Cat_General_100_text_a": "Sul tuo PC, la seguente time zone è configurata per l'ambiente PHP:",
"HelpFAQ_Cat_General_100_text_b": "", "HelpFAQ_Cat_General_100_text_b": "Se questa time zone non è corretta, dovresti cambiarla nel file di configurazione PHP. Puoi trovarlo nella seguente directory:",
"HelpFAQ_Cat_General_100_text_c": "", "HelpFAQ_Cat_General_100_text_c": "Cerca in questo file il valore \"date.timezone\", rimuovi il \";\" ad inizio riga se presente e inserisci la time zone desiderata. Una lista con le time zone supportate è presente qui (<a href=\"https://www.php.net/manual/en/timezones.php\" target=\"blank\">Link</a>)",
"HelpFAQ_Cat_General_101_head": "", "HelpFAQ_Cat_General_101_head": "",
"HelpFAQ_Cat_General_101_text": "", "HelpFAQ_Cat_General_101_text": "",
"HelpFAQ_Cat_General_102_head": "Ottengo il messaggio che dice che il database \u00e8 in modalit\u00e0 sola lettura.", "HelpFAQ_Cat_General_102_head": "Ottengo il messaggio che dice che il database è in modalità sola lettura.",
"HelpFAQ_Cat_General_102_text": "", "HelpFAQ_Cat_General_102_text": "",
"HelpFAQ_Cat_General_102docker_head": "", "HelpFAQ_Cat_General_102docker_head": "",
"HelpFAQ_Cat_General_102docker_text": "", "HelpFAQ_Cat_General_102docker_text": "",
@@ -321,36 +327,36 @@
"HelpFAQ_Cat_Network_601_head": "Esiste ulteriore documentazione?", "HelpFAQ_Cat_Network_601_head": "Esiste ulteriore documentazione?",
"HelpFAQ_Cat_Network_601_text": "Si, esiste! Visita <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/\">tutta la documentazione</a> per ulteriori informazioni.", "HelpFAQ_Cat_Network_601_text": "Si, esiste! Visita <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/\">tutta la documentazione</a> per ulteriori informazioni.",
"HelpFAQ_Cat_Presence_400_head": "I dispositivi sono visualizzati con un simbolo giallo e la nota \"evento mancante\".", "HelpFAQ_Cat_Presence_400_head": "I dispositivi sono visualizzati con un simbolo giallo e la nota \"evento mancante\".",
"HelpFAQ_Cat_Presence_400_text": "In questo caso, hai la possibilit\u00e0 di eliminare gli eventi per il dispositivo in questione (vista dettagliata). Un'altra possibilit\u00e0 \u00e8 quella di accendere il dispositivo e aspettare che NetAlertX lo rilevi come \"online\" durante la successiva scansione, e successivamente spegnere nuovamente il dispositivo. Ora NetAlertX dovrebbe salvare correttamente lo stato del dispositivo nel database alla successiva scansione.", "HelpFAQ_Cat_Presence_400_text": "In questo caso, hai la possibilità di eliminare gli eventi per il dispositivo in questione (vista dettagliata). Un'altra possibilità è quella di accendere il dispositivo e aspettare che NetAlertX lo rilevi come \"online\" durante la successiva scansione, e successivamente spegnere nuovamente il dispositivo. Ora NetAlertX dovrebbe salvare correttamente lo stato del dispositivo nel database alla successiva scansione.",
"HelpFAQ_Cat_Presence_401_head": "Un dispositivo viene segnalato come presente anche se \u00e8 \"Offline\".", "HelpFAQ_Cat_Presence_401_head": "Un dispositivo viene segnalato come presente anche se è \"Offline\".",
"HelpFAQ_Cat_Presence_401_text": "", "HelpFAQ_Cat_Presence_401_text": "",
"HelpFAQ_Title": "", "HelpFAQ_Title": "Aiuto / FAQ",
"LOG_LEVEL_description": "", "LOG_LEVEL_description": "Questa impostazione abilita logging più verboso. Utile per il debugging del salvataggio di eventi sul database.",
"LOG_LEVEL_name": "", "LOG_LEVEL_name": "Stampa logging aggiuntivo",
"Loading": "", "Loading": "Caricamento...",
"Login_Box": "", "Login_Box": "Inserisci la tua password",
"Login_Default_PWD": "", "Login_Default_PWD": "La password predefinita \"123456\" è ancora attiva.",
"Login_Psw-box": "", "Login_Psw-box": "Password",
"Login_Psw_alert": "", "Login_Psw_alert": "",
"Login_Psw_folder": "", "Login_Psw_folder": "nella cartella di configurazione.",
"Login_Psw_new": "", "Login_Psw_new": "",
"Login_Psw_run": "", "Login_Psw_run": "Per cambiare la password esegui:",
"Login_Remember": "", "Login_Remember": "Ricordami",
"Login_Remember_small": "", "Login_Remember_small": "(valido per 7 giorni)",
"Login_Submit": "", "Login_Submit": "Accedi",
"Login_Toggle_Alert_headline": "", "Login_Toggle_Alert_headline": "",
"Login_Toggle_Info": "", "Login_Toggle_Info": "",
"Login_Toggle_Info_headline": "", "Login_Toggle_Info_headline": "",
"Maintenance_Running_Version": "", "Maintenance_Running_Version": "Versione installata",
"Maintenance_Status": "", "Maintenance_Status": "Stato",
"Maintenance_Title": "", "Maintenance_Title": "Strumenti di manutenzione",
"Maintenance_Tool_ExportCSV": "", "Maintenance_Tool_ExportCSV": "Esporta CSV",
"Maintenance_Tool_ExportCSV_noti": "", "Maintenance_Tool_ExportCSV_noti": "Esporta CSV",
"Maintenance_Tool_ExportCSV_noti_text": "", "Maintenance_Tool_ExportCSV_noti_text": "Sei sicuro di voler generare un file CSV?",
"Maintenance_Tool_ExportCSV_text": "", "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\">CSV Backup</a>.",
"Maintenance_Tool_ImportCSV": "", "Maintenance_Tool_ImportCSV": "Importa CSV",
"Maintenance_Tool_ImportCSV_noti": "", "Maintenance_Tool_ImportCSV_noti": "Importa CSV",
"Maintenance_Tool_ImportCSV_noti_text": "", "Maintenance_Tool_ImportCSV_noti_text": "Sei sicuro di voler importare il file CSV? Questa operazione sovrascriverà tutti i dispositivi presenti nel database.",
"Maintenance_Tool_ImportCSV_text": "", "Maintenance_Tool_ImportCSV_text": "",
"Maintenance_Tool_arpscansw": "", "Maintenance_Tool_arpscansw": "",
"Maintenance_Tool_arpscansw_noti": "", "Maintenance_Tool_arpscansw_noti": "",
@@ -391,47 +397,47 @@
"Maintenance_Tool_del_unknowndev_noti": "", "Maintenance_Tool_del_unknowndev_noti": "",
"Maintenance_Tool_del_unknowndev_noti_text": "", "Maintenance_Tool_del_unknowndev_noti_text": "",
"Maintenance_Tool_del_unknowndev_text": "", "Maintenance_Tool_del_unknowndev_text": "",
"Maintenance_Tool_displayed_columns_text": "", "Maintenance_Tool_displayed_columns_text": "Cambia la visibilità e l'ordine delle colonne nella pagina <a href=\"devices.php\"><b> <i class=\"fa fa-laptop\"></i> Dispositivi</b></a>.",
"Maintenance_Tool_drag_me": "", "Maintenance_Tool_drag_me": "Trascinami per riordinare le colonne.",
"Maintenance_Tool_order_columns_text": "", "Maintenance_Tool_order_columns_text": "",
"Maintenance_Tool_purgebackup": "", "Maintenance_Tool_purgebackup": "Svuota Backup",
"Maintenance_Tool_purgebackup_noti": "", "Maintenance_Tool_purgebackup_noti": "Svuota Backup",
"Maintenance_Tool_purgebackup_noti_text": "", "Maintenance_Tool_purgebackup_noti_text": "Sei sicuro di voler eliminare tutti i backup eccetto gli ultimi 3?",
"Maintenance_Tool_purgebackup_text": "", "Maintenance_Tool_purgebackup_text": "Tutti i backup verranno eliminati eccetto gli ultimi 3.",
"Maintenance_Tool_restore": "", "Maintenance_Tool_restore": "Ripristino DB",
"Maintenance_Tool_restore_noti": "", "Maintenance_Tool_restore_noti": "Ripristino DB",
"Maintenance_Tool_restore_noti_text": "", "Maintenance_Tool_restore_noti_text": "Sei sicuro di voler eseguire il ripristino del Database? Assicurati che non ci siano scansioni in esecuzione.",
"Maintenance_Tool_restore_text": "", "Maintenance_Tool_restore_text": "",
"Maintenance_Tool_upgrade_database_noti": "", "Maintenance_Tool_upgrade_database_noti": "Aggiorna database",
"Maintenance_Tool_upgrade_database_noti_text": "", "Maintenance_Tool_upgrade_database_noti_text": "Sei sicuro di voler aggiornare il database?<br>(forse preferisci archiviarlo)",
"Maintenance_Tool_upgrade_database_text": "", "Maintenance_Tool_upgrade_database_text": "",
"Maintenance_Tools_Tab_BackupRestore": "", "Maintenance_Tools_Tab_BackupRestore": "Backup / Ripristino",
"Maintenance_Tools_Tab_Logging": "", "Maintenance_Tools_Tab_Logging": "Log",
"Maintenance_Tools_Tab_Settings": "", "Maintenance_Tools_Tab_Settings": "Impostazioni",
"Maintenance_Tools_Tab_Tools": "", "Maintenance_Tools_Tab_Tools": "Strumenti",
"Maintenance_Tools_Tab_UISettings": "", "Maintenance_Tools_Tab_UISettings": "Impostazioni UI",
"Maintenance_arp_status": "", "Maintenance_arp_status": "Stato scansione",
"Maintenance_arp_status_off": "", "Maintenance_arp_status_off": "è attualmente disabilitato",
"Maintenance_arp_status_on": "", "Maintenance_arp_status_on": "scansione/i attualmente in esecuzione",
"Maintenance_built_on": "", "Maintenance_built_on": "",
"Maintenance_current_version": "", "Maintenance_current_version": "",
"Maintenance_database_backup": "", "Maintenance_database_backup": "Backup Database",
"Maintenance_database_backup_found": "", "Maintenance_database_backup_found": "",
"Maintenance_database_backup_total": "", "Maintenance_database_backup_total": "utilizzo totale disco",
"Maintenance_database_lastmod": "", "Maintenance_database_lastmod": "Ultima modifica",
"Maintenance_database_path": "", "Maintenance_database_path": "",
"Maintenance_database_rows": "", "Maintenance_database_rows": "Tabella (Righe)",
"Maintenance_database_size": "", "Maintenance_database_size": "",
"Maintenance_lang_selector_apply": "", "Maintenance_lang_selector_apply": "Applica",
"Maintenance_lang_selector_empty": "", "Maintenance_lang_selector_empty": "Scegli lingua",
"Maintenance_lang_selector_lable": "", "Maintenance_lang_selector_lable": "Seleziona lingua",
"Maintenance_lang_selector_text": "", "Maintenance_lang_selector_text": "",
"Maintenance_new_version": "", "Maintenance_new_version": "",
"Maintenance_themeselector_apply": "", "Maintenance_themeselector_apply": "Applica",
"Maintenance_themeselector_empty": "", "Maintenance_themeselector_empty": "Seleziona una Skin",
"Maintenance_themeselector_lable": "", "Maintenance_themeselector_lable": "Seleziona Skin",
"Maintenance_themeselector_text": "", "Maintenance_themeselector_text": "",
"Maintenance_version": "", "Maintenance_version": "Aggiornamenti App",
"NETWORK_DEVICE_TYPES_description": "", "NETWORK_DEVICE_TYPES_description": "",
"NETWORK_DEVICE_TYPES_name": "", "NETWORK_DEVICE_TYPES_name": "",
"Navigation_About": "", "Navigation_About": "",
@@ -658,6 +664,7 @@
"settings_saved": "", "settings_saved": "",
"settings_system_icon": "", "settings_system_icon": "",
"settings_system_label": "", "settings_system_label": "",
"settings_update_item_warning": "",
"test_event_icon": "", "test_event_icon": "",
"test_event_tooltip": "Salva i cambiamenti prima di testare le nuove impostazioni." "test_event_tooltip": "Salva i cambiamenti prima di testare le nuove impostazioni."
} }

View File

@@ -261,6 +261,7 @@
"Events_Tablelenght_all": "", "Events_Tablelenght_all": "",
"Events_Title": "", "Events_Title": "",
"Gen_Action": "", "Gen_Action": "",
"Gen_Add": "",
"Gen_Add_All": "", "Gen_Add_All": "",
"Gen_AreYouSure": "", "Gen_AreYouSure": "",
"Gen_Backup": "", "Gen_Backup": "",
@@ -270,19 +271,24 @@
"Gen_Delete": "", "Gen_Delete": "",
"Gen_DeleteAll": "", "Gen_DeleteAll": "",
"Gen_Error": "", "Gen_Error": "",
"Gen_Filter": "",
"Gen_LockedDB": "", "Gen_LockedDB": "",
"Gen_Okay": "", "Gen_Okay": "",
"Gen_Purge": "", "Gen_Purge": "",
"Gen_ReadDocs": "", "Gen_ReadDocs": "",
"Gen_Remove_All": "", "Gen_Remove_All": "",
"Gen_Remove_Last": "",
"Gen_Restore": "", "Gen_Restore": "",
"Gen_Run": "", "Gen_Run": "",
"Gen_Save": "", "Gen_Save": "",
"Gen_Saved": "", "Gen_Saved": "",
"Gen_Search": "",
"Gen_Selected_Devices": "", "Gen_Selected_Devices": "",
"Gen_Switch": "", "Gen_Switch": "",
"Gen_Upd": "", "Gen_Upd": "",
"Gen_Upd_Fail": "", "Gen_Upd_Fail": "",
"Gen_Update": "",
"Gen_Update_Value": "",
"Gen_Warning": "", "Gen_Warning": "",
"Gen_Work_In_Progress": "", "Gen_Work_In_Progress": "",
"General_display_name": "", "General_display_name": "",
@@ -658,6 +664,7 @@
"settings_saved": "", "settings_saved": "",
"settings_system_icon": "", "settings_system_icon": "",
"settings_system_label": "", "settings_system_label": "",
"settings_update_item_warning": "",
"test_event_icon": "", "test_event_icon": "",
"test_event_tooltip": "" "test_event_tooltip": ""
} }

View File

@@ -1,330 +1,336 @@
{ {
"API_CUSTOM_SQL_description": "", "API_CUSTOM_SQL_description": "Mo\u017cesz okre\u015bli\u0107 w\u0142asne zapytanie SQL kt\u00f3re b\u0119dzie generowa\u0142o plik JSON i udost\u0119pni\u0107 je poprzez <a href=\"/api/table_custom_endpoint.json\" target=\"_blank\"><code>table_custom_endpoint.json</code> file endpoint</a>.",
"API_CUSTOM_SQL_name": "", "API_CUSTOM_SQL_name": "W\u0142asny endpoint",
"API_display_name": "", "API_display_name": "API",
"API_icon": "", "API_icon": "<i class=\"fa fa-arrow-down-up-across-line\"></i>",
"About_Design": "", "About_Design": "Zaprojektowany by:",
"About_Exit": "", "About_Exit": "Wyloguj",
"About_Title": "", "About_Title": "Skaner bezpiecze\u0144stwa sieciowego i framwork powiadomie\u0144",
"AppEvents_DateTimeCreated": "", "AppEvents_DateTimeCreated": "Zalogowany",
"AppEvents_Extra": "", "AppEvents_Extra": "Ekstra",
"AppEvents_GUID": "", "AppEvents_GUID": "Aplikacja GUID wydarze\u0144",
"AppEvents_Helper1": "", "AppEvents_Helper1": "Pomocnik 1",
"AppEvents_Helper2": "", "AppEvents_Helper2": "Pomocnik 2",
"AppEvents_Helper3": "", "AppEvents_Helper3": "Pomocnik 3",
"AppEvents_ObjectForeignKey": "", "AppEvents_ObjectForeignKey": "Klucz obcy",
"AppEvents_ObjectIndex": "", "AppEvents_ObjectIndex": "Indeks",
"AppEvents_ObjectIsArchived": "", "AppEvents_ObjectIsArchived": "Zarchiwizowany (od czasu logu)",
"AppEvents_ObjectIsNew": "", "AppEvents_ObjectIsNew": "Nowy (od czasu log\u00f3w)",
"AppEvents_ObjectPlugin": "", "AppEvents_ObjectPlugin": "Po\u0142\u0105czony plugin",
"AppEvents_ObjectPrimaryID": "", "AppEvents_ObjectPrimaryID": "Podstawowe ID",
"AppEvents_ObjectSecondaryID": "", "AppEvents_ObjectSecondaryID": "Drugorz\u0119dne ID",
"AppEvents_ObjectStatus": "", "AppEvents_ObjectStatus": "Status (od czasu log\u00f3w)",
"AppEvents_ObjectStatusColumn": "", "AppEvents_ObjectStatusColumn": "Kolumna statusu",
"AppEvents_ObjectType": "", "AppEvents_ObjectType": "Typ objektu",
"AppEvents_Plugin": "", "AppEvents_Plugin": "Plugin",
"AppEvents_Type": "", "AppEvents_Type": "Typ",
"BackDevDetail_Actions_Ask_Run": "", "BackDevDetail_Actions_Ask_Run": "Czy chcesz wykona\u0107 akcj\u0119?",
"BackDevDetail_Actions_Not_Registered": "", "BackDevDetail_Actions_Not_Registered": "Akcja nie zarejestrowana: ",
"BackDevDetail_Actions_Title_Run": "", "BackDevDetail_Actions_Title_Run": "Wykonaj akcj\u0119",
"BackDevDetail_Copy_Ask": "", "BackDevDetail_Copy_Ask": "Skopiuj opis z urz\u0105dzenia z listy rozwijanej (Wszystko na tej stronie zostanie nadpisane)?",
"BackDevDetail_Copy_Title": "", "BackDevDetail_Copy_Title": "Skopiuj opis",
"BackDevDetail_Tools_WOL_error": "", "BackDevDetail_Tools_WOL_error": "Komenda NIE zosta\u0142a wykonana.",
"BackDevDetail_Tools_WOL_okay": "", "BackDevDetail_Tools_WOL_okay": "Komenda zosta\u0142a wykonana.",
"BackDevices_Arpscan_disabled": "", "BackDevices_Arpscan_disabled": "Skan Arp Wy\u0142\u0105czony",
"BackDevices_Arpscan_enabled": "", "BackDevices_Arpscan_enabled": "Skan Arp W\u0142\u0105czony",
"BackDevices_Backup_CopError": "", "BackDevices_Backup_CopError": "Oryginalna baza danych nie zosta\u0142a zapisana.",
"BackDevices_Backup_Failed": "", "BackDevices_Backup_Failed": "Cz\u0119\u015bciowo poprawnie wykonana kopia zapasowa. Archiwum nie mog\u0142o zosta\u0107 utworzone lub jest puste.",
"BackDevices_Backup_okay": "", "BackDevices_Backup_okay": "Kopia zapasowa wykonana poprawnie z nowym archiwum",
"BackDevices_DBTools_DelDevError_a": "", "BackDevices_DBTools_DelDevError_a": "B\u0142\u0105d usuwania Urz\u0105dzenia",
"BackDevices_DBTools_DelDevError_b": "", "BackDevices_DBTools_DelDevError_b": "B\u0142\u0105d usuwania Urz\u0105dze\u0144",
"BackDevices_DBTools_DelDev_a": "", "BackDevices_DBTools_DelDev_a": "Urz\u0105dzenie usuni\u0119te",
"BackDevices_DBTools_DelDev_b": "", "BackDevices_DBTools_DelDev_b": "Urz\u0105dzenia usuni\u0119te",
"BackDevices_DBTools_DelEvents": "", "BackDevices_DBTools_DelEvents": "Wydarzenie usuni\u0119te",
"BackDevices_DBTools_DelEventsError": "", "BackDevices_DBTools_DelEventsError": "B\u0142\u0105d usuwania Wydarze\u0144",
"BackDevices_DBTools_ImportCSV": "", "BackDevices_DBTools_ImportCSV": "Urz\u0105dzenia z pliku CSV zosta\u0142y zaimportowane poprawnie.",
"BackDevices_DBTools_ImportCSVError": "", "BackDevices_DBTools_ImportCSVError": "Plik CSV nie m\u00f3g\u0142 zosta\u0107 zaimportowany. Upewnij si\u0119 \u017ce format jest poprawny.",
"BackDevices_DBTools_ImportCSVMissing": "", "BackDevices_DBTools_ImportCSVMissing": "Plik CSV nie zosta\u0142 znaleziony w <b>/config/devices.csv.</b>",
"BackDevices_DBTools_Purge": "", "BackDevices_DBTools_Purge": "Najstarsza kopia zapasowa zosta\u0142a usuni\u0119ta",
"BackDevices_DBTools_UpdDev": "", "BackDevices_DBTools_UpdDev": "Urz\u0105dzenie zaktualizowane poprawnie",
"BackDevices_DBTools_UpdDevError": "", "BackDevices_DBTools_UpdDevError": "B\u0142\u0105d aktualizacji urz\u0105dzenia",
"BackDevices_DBTools_Upgrade": "", "BackDevices_DBTools_Upgrade": "Baza danych zaktualizowana",
"BackDevices_DBTools_UpgradeError": "", "BackDevices_DBTools_UpgradeError": "Aktualizacja bazy danych nie powiod\u0142a si\u0119",
"BackDevices_Device_UpdDevError": "", "BackDevices_Device_UpdDevError": "B\u0142\u0105d aktualizacji urz\u0105dze\u0144, spr\u00f3buj ponownie p\u00f3\u017aniej. Mo\u017cliwe \u017ce baza danych jest zablokowana przez trwaj\u0105ce zadania.",
"BackDevices_Restore_CopError": "", "BackDevices_Restore_CopError": "Oryginalna baza danych nie mo\u017ce zosta\u0107 zapisana.",
"BackDevices_Restore_Failed": "", "BackDevices_Restore_Failed": "Nie udane przywracanie. Przywr\u00f3\u0107 baz\u0119 danych r\u0119cznie.",
"BackDevices_Restore_okay": "", "BackDevices_Restore_okay": "Przywracanie wykonane z sukcesem.",
"BackDevices_darkmode_disabled": "", "BackDevices_darkmode_disabled": "Tryb ciemny Wy\u0142\u0105czony",
"BackDevices_darkmode_enabled": "", "BackDevices_darkmode_enabled": "Tryb ciemny W\u0142\u0105czony",
"DAYS_TO_KEEP_EVENTS_description": "", "DAYS_TO_KEEP_EVENTS_description": "To jest ustawienie konserwacji. Okre\u015bla ile dni maj\u0105 by\u0107 utrzymywane wpisy wydarze\u0144. Wszystkie starsze wpisy wydarze\u0144 zostan\u0105 usuni\u0119te okresowo. Dotyczy tak\u017ce Historii Wydarze\u0144 Plugin\u00f3w.",
"DAYS_TO_KEEP_EVENTS_name": "", "DAYS_TO_KEEP_EVENTS_name": "Usu\u0144 wydarzenia starsze ni\u017c",
"DevDetail_Copy_Device_Title": "", "DevDetail_Copy_Device_Title": "<i class=\"fa fa-copy\"></i>Kopiuj opis z urz\u0105dzenia",
"DevDetail_Copy_Device_Tooltip": "", "DevDetail_Copy_Device_Tooltip": "Kopiuj opis z urz\u0105dzenia z listy rozwijanej. Wszystko na tej stronie zostanie nadpisane",
"DevDetail_EveandAl_AlertAllEvents": "", "DevDetail_EveandAl_AlertAllEvents": "Powiadamiaj o wszystkich wydarzeniach",
"DevDetail_EveandAl_AlertDown": "", "DevDetail_EveandAl_AlertDown": "Wy\u0142\u0105cz powiadomienia",
"DevDetail_EveandAl_Archived": "", "DevDetail_EveandAl_Archived": "Zarchiwizowane",
"DevDetail_EveandAl_NewDevice": "", "DevDetail_EveandAl_NewDevice": "Nowe Urz\u0105dzenie",
"DevDetail_EveandAl_NewDevice_Tooltip": "", "DevDetail_EveandAl_NewDevice_Tooltip": "Pokarze Nowy status dla urz\u0105dzenia i doda do listy kiedy filtr Nowe Urz\u0105dzenie jest aktywne. Nie wp\u0142ywa na powiadomienia.",
"DevDetail_EveandAl_RandomMAC": "", "DevDetail_EveandAl_RandomMAC": "Losowy MAC",
"DevDetail_EveandAl_ScanCycle": "", "DevDetail_EveandAl_ScanCycle": "Skanuj urz\u0105dzenie",
"DevDetail_EveandAl_ScanCycle_a": "", "DevDetail_EveandAl_ScanCycle_a": "Skanuj Urz\u0105dzenie",
"DevDetail_EveandAl_ScanCycle_z": "", "DevDetail_EveandAl_ScanCycle_z": "Nie skanuj Urz\u0105dzenia",
"DevDetail_EveandAl_Skip": "", "DevDetail_EveandAl_Skip": "Pomi\u0144 powtarzaj\u0105ce si\u0119 powiadomienia przez",
"DevDetail_EveandAl_Title": "", "DevDetail_EveandAl_Title": "<i class=\"fa fa-bolt\"></i> Konfiguracja powiadomie\u0144 i alert\u00f3w",
"DevDetail_Events_CheckBox": "", "DevDetail_Events_CheckBox": "Ukryj wydarzenia po\u0142\u0105cze\u0144",
"DevDetail_GoToNetworkNode": "", "DevDetail_GoToNetworkNode": "Przenie\u015b do strony Sie\u0107 danego w\u0119z\u0142a.",
"DevDetail_Icon": "", "DevDetail_Icon": "Ikona",
"DevDetail_Icon_Descr": "", "DevDetail_Icon_Descr": "Wprowad\u017a nazw\u0119 ikone z font awesome bez przedroska fa- oraz pe\u0142n\u0105 klase, np fa fa-brands fa-apple.",
"DevDetail_Loading": "", "DevDetail_Loading": "Wczytywanie...",
"DevDetail_MainInfo_Comments": "", "DevDetail_MainInfo_Comments": "Komentarze",
"DevDetail_MainInfo_Favorite": "", "DevDetail_MainInfo_Favorite": "Ulubione",
"DevDetail_MainInfo_Group": "", "DevDetail_MainInfo_Group": "Grupa",
"DevDetail_MainInfo_Location": "", "DevDetail_MainInfo_Location": "Lokalizacja",
"DevDetail_MainInfo_Name": "", "DevDetail_MainInfo_Name": "Nazwa",
"DevDetail_MainInfo_Network": "", "DevDetail_MainInfo_Network": "<i class=\"fa fa-server\"></i> W\u0119ze\u0142 (MAC)",
"DevDetail_MainInfo_Network_Port": "", "DevDetail_MainInfo_Network_Port": "<i class=\"fa fa-ethernet\"></i> Port",
"DevDetail_MainInfo_Network_Title": "", "DevDetail_MainInfo_Network_Title": "<i class=\"fa fa-network-wired\"></i> Sie\u0107",
"DevDetail_MainInfo_Owner": "", "DevDetail_MainInfo_Owner": "W\u0142a\u015bciciel",
"DevDetail_MainInfo_Title": "", "DevDetail_MainInfo_Title": "<i class=\"fa fa-pencil\"></i> G\u0142\u00f3wne informacje",
"DevDetail_MainInfo_Type": "", "DevDetail_MainInfo_Type": "Typ",
"DevDetail_MainInfo_Vendor": "", "DevDetail_MainInfo_Vendor": "Dostawca",
"DevDetail_MainInfo_mac": "", "DevDetail_MainInfo_mac": "MAC",
"DevDetail_Network_Node_hover": "", "DevDetail_Network_Node_hover": "Wybierz sieciowe urz\u0105dzenie rodzica do kt\u00f3rego urz\u0105dzenia jest aktualnie pod\u0142\u0105czone by wype\u0142ni\u0107 Drzewo Sieci.",
"DevDetail_Network_Port_hover": "", "DevDetail_Network_Port_hover": "Port na kt\u00f3rym urz\u0105dzenie jest pod\u0142\u0105czone do urz\u0105dzenia sieciowego rodzica. Je\u017celi b\u0119dzie puste ikona wifi zostanie wy\u015bwietlona w Drzewku Sieci.",
"DevDetail_Nmap_Scans": "", "DevDetail_Nmap_Scans": "R\u0119czny Skan Nmap",
"DevDetail_Nmap_Scans_desc": "", "DevDetail_Nmap_Scans_desc": "Tutaj mo\u017cesz r\u0119cznie wykona\u0107 skany NMAP. Mo\u017cesz tak\u017ce zaplanowa\u0107 automatyczne regularne skanowanie NMAP poprzez plug Us\u0142ugi i Porty (NMAP). Udaj si\u0119 do <a href='/settings.php' target='_blank'>Ustawie\u0144</a> by dowiedzie\u0107 si\u0119 wi\u0119cej",
"DevDetail_Nmap_buttonDefault": "", "DevDetail_Nmap_buttonDefault": "Podstawowy Skan",
"DevDetail_Nmap_buttonDefault_text": "", "DevDetail_Nmap_buttonDefault_text": "Podstawowy Skan: Nmap skanuje 1000 pierwszych port\u00f3w z u\u017cyciem wszystkich za\u017c\u0105danych protoko\u0142\u00f3w. \u0141apie oko\u0142o 93% port\u00f3w TCP i 49% port\u00f3w UDP. (oko\u0142o 5 sekund)",
"DevDetail_Nmap_buttonDetail": "", "DevDetail_Nmap_buttonDetail": "Skan Szczeg\u00f3\u0142owy",
"DevDetail_Nmap_buttonDetail_text": "", "DevDetail_Nmap_buttonDetail_text": "Skan Szczeg\u00f3\u0142owy: Podstawowy skan z w\u0142\u0105czon\u0105 detekcj\u0105 OS, detekcj\u0105 wersji, skrypt skanuj\u0105cy oraz traceroute (do 30 sekund lub wi\u0119cej)",
"DevDetail_Nmap_buttonFast": "", "DevDetail_Nmap_buttonFast": "Szybki Skan",
"DevDetail_Nmap_buttonFast_text": "", "DevDetail_Nmap_buttonFast_text": "Szybki Skan: Skanuje mniej port\u00f3w (100) ni\u017c skan podstawowy (kilka sekund)",
"DevDetail_Nmap_buttonSkipDiscovery": "", "DevDetail_Nmap_buttonSkipDiscovery": "Pomi\u0144 wykrywanie hosta",
"DevDetail_Nmap_buttonSkipDiscovery_text": "", "DevDetail_Nmap_buttonSkipDiscovery_text": "Pomi\u0144 wykrywanie hosta (opcja -Pn): Podstawowy skan bez wykrywania hosta",
"DevDetail_Nmap_resultsLink": "", "DevDetail_Nmap_resultsLink": "Mo\u017cesz opu\u015bci\u0107 t\u0105 stron\u0119 po w\u0142\u0105czeniu skanu. Wyniki b\u0119d\u0105 dost\u0119pne w pliku <code>app_front.log</code>.",
"DevDetail_Owner_hover": "", "DevDetail_Owner_hover": "Kto jest w\u0142a\u015bcicielem urz\u0105dzenia. Dowolny tekst.",
"DevDetail_Periodselect_All": "", "DevDetail_Periodselect_All": "Wszystkie informacje",
"DevDetail_Periodselect_LastMonth": "", "DevDetail_Periodselect_LastMonth": "Ostatni Miesi\u0105c",
"DevDetail_Periodselect_LastWeek": "", "DevDetail_Periodselect_LastWeek": "Ostatni Tydzie\u0144",
"DevDetail_Periodselect_LastYear": "", "DevDetail_Periodselect_LastYear": "Ostatni Rok",
"DevDetail_Periodselect_today": "", "DevDetail_Periodselect_today": "Dzisiaj",
"DevDetail_Run_Actions_Title": "", "DevDetail_Run_Actions_Title": "<i class=\"fa fa-play\"></i>Wykonaj akcj\u0119 na urz\u0105dzeniu",
"DevDetail_Run_Actions_Tooltip": "", "DevDetail_Run_Actions_Tooltip": "Wykonaj akcje na tym urz\u0105dzeniu z listy rozwijanej.",
"DevDetail_SessionInfo_FirstSession": "", "DevDetail_SessionInfo_FirstSession": "Pierwsza Sesja",
"DevDetail_SessionInfo_LastIP": "", "DevDetail_SessionInfo_LastIP": "Ostatnie IP",
"DevDetail_SessionInfo_LastSession": "", "DevDetail_SessionInfo_LastSession": "Ostatnia Sesja",
"DevDetail_SessionInfo_StaticIP": "", "DevDetail_SessionInfo_StaticIP": "Statyczne IP",
"DevDetail_SessionInfo_Status": "", "DevDetail_SessionInfo_Status": "Status",
"DevDetail_SessionInfo_Title": "", "DevDetail_SessionInfo_Title": "<i class=\"fa fa-calendar\"></i>Informacje o Sesji",
"DevDetail_SessionTable_Additionalinfo": "", "DevDetail_SessionTable_Additionalinfo": "Dodatkowe Informacje",
"DevDetail_SessionTable_Connection": "", "DevDetail_SessionTable_Connection": "Po\u0142\u0105czenie",
"DevDetail_SessionTable_Disconnection": "", "DevDetail_SessionTable_Disconnection": "Roz\u0142\u0105czenie",
"DevDetail_SessionTable_Duration": "", "DevDetail_SessionTable_Duration": "Okres",
"DevDetail_SessionTable_IP": "", "DevDetail_SessionTable_IP": "IP",
"DevDetail_SessionTable_Order": "", "DevDetail_SessionTable_Order": "Kolejno\u015b\u0107",
"DevDetail_Shortcut_CurrentStatus": "", "DevDetail_Shortcut_CurrentStatus": "Aktualny Status",
"DevDetail_Shortcut_DownAlerts": "", "DevDetail_Shortcut_DownAlerts": "Alert roz\u0142\u0105czenia",
"DevDetail_Shortcut_Presence": "", "DevDetail_Shortcut_Presence": "Obecno\u015b\u0107",
"DevDetail_Shortcut_Sessions": "", "DevDetail_Shortcut_Sessions": "Sesje",
"DevDetail_Tab_Details": "", "DevDetail_Tab_Details": "<i class=\"fa fa-info-circle\"></i>Szczeg\u00f3\u0142y",
"DevDetail_Tab_Events": "", "DevDetail_Tab_Events": "<i class=\"fa fa-bolt\"></i>Wydarzenia",
"DevDetail_Tab_EventsTableDate": "", "DevDetail_Tab_EventsTableDate": "Data",
"DevDetail_Tab_EventsTableEvent": "", "DevDetail_Tab_EventsTableEvent": "Typ wydarzenia",
"DevDetail_Tab_EventsTableIP": "", "DevDetail_Tab_EventsTableIP": "IP",
"DevDetail_Tab_EventsTableInfo": "", "DevDetail_Tab_EventsTableInfo": "Dodatkowe info",
"DevDetail_Tab_Nmap": "", "DevDetail_Tab_Nmap": "<i class=\"fa fa-ethernet\"></i>Nmap",
"DevDetail_Tab_NmapEmpty": "", "DevDetail_Tab_NmapEmpty": "Nie wykryto port\u00f3w za pomoc\u0105 Nmap na urz\u0105dzeniu.",
"DevDetail_Tab_NmapTableExtra": "", "DevDetail_Tab_NmapTableExtra": "Ekstra",
"DevDetail_Tab_NmapTableHeader": "", "DevDetail_Tab_NmapTableHeader": "Wyniki zaplanowanego skanu",
"DevDetail_Tab_NmapTableIndex": "", "DevDetail_Tab_NmapTableIndex": "Indeks",
"DevDetail_Tab_NmapTablePort": "", "DevDetail_Tab_NmapTablePort": "Port",
"DevDetail_Tab_NmapTableService": "", "DevDetail_Tab_NmapTableService": "Us\u0142uga",
"DevDetail_Tab_NmapTableState": "", "DevDetail_Tab_NmapTableState": "Stan",
"DevDetail_Tab_NmapTableText": "", "DevDetail_Tab_NmapTableText": "Ustaw harmonogram w <a href=\"/settings.php#NMAP_ACTIVE\">Ustawieniach</a>",
"DevDetail_Tab_NmapTableTime": "", "DevDetail_Tab_NmapTableTime": "Czas",
"DevDetail_Tab_Plugins": "", "DevDetail_Tab_Plugins": "<i class=\"fa fa-plug\"></i>Pluginy",
"DevDetail_Tab_Presence": "", "DevDetail_Tab_Presence": "<i class=\"fa fa-calendar\"></i> Obecno\u015b\u0107",
"DevDetail_Tab_Sessions": "", "DevDetail_Tab_Sessions": "<i class=\"fa fa-list-ol\"></i> Sesje",
"DevDetail_Tab_Tools": "", "DevDetail_Tab_Tools": "<i class=\"fa fa-screwdriver-wrench\"></i> Narz\u0119dzia",
"DevDetail_Tab_Tools_Internet_Info_Description": "", "DevDetail_Tab_Tools_Internet_Info_Description": "Narz\u0119dzie informacji o Internecie wy\u015bwietla informacj\u0119 o po\u0142\u0105czeniu z Internetem, takie jak adres IP, miasto, pa\u0144stwo, kod pocztowy i strefa czasowa.",
"DevDetail_Tab_Tools_Internet_Info_Error": "", "DevDetail_Tab_Tools_Internet_Info_Error": "Wyst\u0105pi\u0142 b\u0142\u0105d",
"DevDetail_Tab_Tools_Internet_Info_Start": "", "DevDetail_Tab_Tools_Internet_Info_Start": "Rozpocznij Informacje o Internecie",
"DevDetail_Tab_Tools_Internet_Info_Title": "", "DevDetail_Tab_Tools_Internet_Info_Title": "Internet Info",
"DevDetail_Tab_Tools_Nslookup_Description": "", "DevDetail_Tab_Tools_Nslookup_Description": "Nslookup to narz\u0119dzie konsoli u\u017cywane do zapyta\u0144 Systemu Nazw Domenowych (DNS). DNS to system t\u0142umaczenia nazw domen, takich jak www.google.com na adres IP, taki jak 172.217.0.142.",
"DevDetail_Tab_Tools_Nslookup_Error": "", "DevDetail_Tab_Tools_Nslookup_Error": "B\u0142\u0105d: adres IP nie jest poprawny",
"DevDetail_Tab_Tools_Nslookup_Start": "", "DevDetail_Tab_Tools_Nslookup_Start": "Rozpocznij Nslookup",
"DevDetail_Tab_Tools_Nslookup_Title": "", "DevDetail_Tab_Tools_Nslookup_Title": "Nslookup",
"DevDetail_Tab_Tools_Speedtest_Description": "", "DevDetail_Tab_Tools_Speedtest_Description": "Narz\u0119dzie SpeedTest mierzy pr\u0119dko\u015b\u0107 pobierania, wysy\u0142ania oraz op\u00f3\u017anienie po\u0142\u0105czenia internetowego.",
"DevDetail_Tab_Tools_Speedtest_Start": "", "DevDetail_Tab_Tools_Speedtest_Start": "W\u0142\u0105cz SpeedTest",
"DevDetail_Tab_Tools_Speedtest_Title": "", "DevDetail_Tab_Tools_Speedtest_Title": "Online SpeedTest",
"DevDetail_Tab_Tools_Traceroute_Description": "", "DevDetail_Tab_Tools_Traceroute_Description": "Traceroute to sieciowa komenda diagnostyczna s\u0142u\u017c\u0105ca do \u015bledzenia trasy kt\u00f3r\u0105 pakiety przechodz\u0105 z jednego hosta do drugiego.<br><br>Komenda u\u017cywa internetowego protoko\u0142u komunikat\u00f3w kontrolnych (Internet Control Message Protocol - ICMP) do wys\u0142ania pakiet\u00f3w do w\u0119z\u0142\u00f3w po\u015brednich trasy, ka\u017cdy w\u0119ze\u0142 po\u015bredni odpowiada pakietem ICMP time-out (TTL timed out).<br><br>Dane wyj\u015bciowe komendy traceroute wy\u015bwietlaj\u0105 adres IP ka\u017cdego w\u0119z\u0142a po\u015bredniego trasy.<br><br>Komenda traceroute mo\u017ce s\u0142u\u017cy\u0107 do diagnostyki problem\u00f3w sieci, takich jak op\u00f3\u017anienia, utraty pakiet\u00f3w czy zablokowane trasy.<br><br>Mo\u017ce by\u0107 tak\u017ce u\u017cywany do identyfikacji lokalizacji w\u0119z\u0142a po\u015bredniego w sieci.",
"DevDetail_Tab_Tools_Traceroute_Error": "", "DevDetail_Tab_Tools_Traceroute_Error": "B\u0142\u0105d: adres IP jest niepoprawny",
"DevDetail_Tab_Tools_Traceroute_Start": "", "DevDetail_Tab_Tools_Traceroute_Start": "Rozpocznij Treceroute",
"DevDetail_Tab_Tools_Traceroute_Title": "", "DevDetail_Tab_Tools_Traceroute_Title": "Traceroute",
"DevDetail_Tools_WOL": "", "DevDetail_Tools_WOL": "Wy\u015blij komende WoL do ",
"DevDetail_Tools_WOL_noti": "", "DevDetail_Tools_WOL_noti": "Wake-on-LAN",
"DevDetail_Tools_WOL_noti_text": "", "DevDetail_Tools_WOL_noti_text": "Komenda Wake-on-LAN zostaje wys\u0142ana na adres rozg\u0142oszeniowy. Je\u017celi celem nie jest podsie\u0107/VLAN NetAlertX, urz\u0105dzenie docelowe nie odpowie.",
"DevDetail_Type_hover": "", "DevDetail_Type_hover": "Typ urz\u0105dzenia. Je\u017celi zaznaczysz dowolne predefiniowane urz\u0105dzenie sieciowe (np: AP, Zapora sieciowa, Ruter, Switch...) poka\u017c\u0105 si\u0119 w Drzewku Sieci do skonfigurowania jako rodzice w\u0119z\u0142\u00f3w sieciowych.",
"DevDetail_Vendor_hover": "", "DevDetail_Vendor_hover": "Dostawca powinien by\u0107 automatycznie wykrywany. Mo\u017cesz nadpisa\u0107 lub doda\u0107 w\u0142asn\u0105 warto\u015b\u0107.",
"DevDetail_WOL_Title": "", "DevDetail_WOL_Title": "<i class=\"fa fa-power-off\"></i>Wake-on-LAN",
"DevDetail_button_AddIcon": "", "DevDetail_button_AddIcon": "Dodaj now\u0105 Ikon\u0119",
"DevDetail_button_AddIcon_Help": "", "DevDetail_button_AddIcon_Help": "Wklej tag html SVG lub tag html ikony Font Awesome. Przeczytaj <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/ICONS.md\" target=\"_blank\">dokumentacje Ikon</a> po wi\u0119cej szczeg\u00f3\u0142\u00f3w.",
"DevDetail_button_AddIcon_Tooltip": "", "DevDetail_button_AddIcon_Tooltip": "Dodaj now\u0105 Ikon\u0119 kt\u00f3ra nie jest dost\u0119pna w menu rozwijanym do urz\u0105dzenia.",
"DevDetail_button_Delete": "", "DevDetail_button_Delete": "Usu\u0144 Urz\u0105dzenie",
"DevDetail_button_DeleteEvents": "", "DevDetail_button_DeleteEvents": "Usu\u0144 Wydarzenia",
"DevDetail_button_DeleteEvents_Warning": "", "DevDetail_button_DeleteEvents_Warning": "Jeste\u015b pewien, \u017ce chcesz usun\u0105\u0107 wszystkie Wydarzenia tego urz\u0105dzenia?<br><br>(wyczy\u015bci to <b>Histori\u0119 Wydarze\u0144</b> i <b>Sesje</b> i mo\u017ce pom\u00f3c ze sta\u0142ymi powiadomieniami)",
"DevDetail_button_OverwriteIcons": "", "DevDetail_button_OverwriteIcons": "Nadpisz Ikony",
"DevDetail_button_OverwriteIcons_Tooltip": "", "DevDetail_button_OverwriteIcons_Tooltip": "Nadpisz ikony dla urz\u0105dze\u0144 o tym samym typie",
"DevDetail_button_OverwriteIcons_Warning": "", "DevDetail_button_OverwriteIcons_Warning": "Czy na pewno chcesz nadpisa\u0107 wszystkie ikony dla urz\u0105dze\u0144 o tym samym typie co to urz\u0105dzenie?",
"DevDetail_button_Reset": "", "DevDetail_button_Reset": "Zresetuj Zmiany",
"DevDetail_button_Save": "", "DevDetail_button_Save": "Zapisz",
"Device_MultiEdit": "", "Device_MultiEdit": "Multi-edycja",
"Device_MultiEdit_Backup": "", "Device_MultiEdit_Backup": "Ostro\u017cnie, wprowadzenie b\u0142\u0119dnych warto\u015bci poni\u017cej mo\u017ce zepsu\u0107 konfiguracje. Najpierw wykonaj kopie zapasow\u0105 bazy danych lub konfiguracji Urz\u0105dze\u0144 (<a href=\"php/server/devices.php?action=ExportCSV\">kliknij aby pobra\u0107<i class=\"fa-solid fa-download fa-bounce\"></i></a>). Przeczytaj jak odzyska\u0107 Urz\u0105dzenia z tego pliku w <a href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/BACKUPS.md#scenario-2-corrupted-database\" target=\"_blank\">Dokumentacji Kopii Zapasowej</a>.",
"Device_MultiEdit_Fields": "", "Device_MultiEdit_Fields": "Edytuj pola:",
"Device_MultiEdit_MassActions": "", "Device_MultiEdit_MassActions": "Akcja masowa:",
"Device_MultiEdit_Tooltip": "", "Device_MultiEdit_Tooltip": "Ostro\u017cnie. Klikaj\u0105c to zastosuj\u0105 si\u0119 warto\u015bci po lewej stronie do wszystkich wybranych powy\u017cej urz\u0105dze\u0144.",
"Device_Searchbox": "", "Device_Searchbox": "Szukaj",
"Device_Shortcut_AllDevices": "", "Device_Shortcut_AllDevices": "Moje Urz\u0105dzenia",
"Device_Shortcut_Archived": "", "Device_Shortcut_Archived": "Zarchiwizowane",
"Device_Shortcut_Connected": "", "Device_Shortcut_Connected": "Po\u0142\u0105czone",
"Device_Shortcut_Devices": "", "Device_Shortcut_Devices": "Urz\u0105dzenia",
"Device_Shortcut_DownAlerts": "", "Device_Shortcut_DownAlerts": "Wy\u0142\u0105czone & Offline",
"Device_Shortcut_DownOnly": "", "Device_Shortcut_DownOnly": "Wy\u0142\u0105czone",
"Device_Shortcut_Favorites": "", "Device_Shortcut_Favorites": "Ulubione",
"Device_Shortcut_NewDevices": "", "Device_Shortcut_NewDevices": "Nowe Urz\u0105dzenia",
"Device_Shortcut_OnlineChart": "", "Device_Shortcut_OnlineChart": "Obecno\u015b\u0107 urz\u0105dzenia",
"Device_TableHead_Connected_Devices": "", "Device_TableHead_Connected_Devices": "Po\u0142\u0105czenia",
"Device_TableHead_Favorite": "", "Device_TableHead_Favorite": "Ulubione",
"Device_TableHead_FirstSession": "", "Device_TableHead_FirstSession": "Pierwsza Sesja",
"Device_TableHead_Group": "", "Device_TableHead_Group": "Grupa",
"Device_TableHead_Icon": "", "Device_TableHead_Icon": "Ikona",
"Device_TableHead_LastIP": "", "Device_TableHead_LastIP": "Ostatnie IP",
"Device_TableHead_LastIPOrder": "", "Device_TableHead_LastIPOrder": "Kolejno\u015b\u0107 Ostatnich IP",
"Device_TableHead_LastSession": "", "Device_TableHead_LastSession": "Ostatnia Sesja",
"Device_TableHead_Location": "", "Device_TableHead_Location": "Lokalizacja",
"Device_TableHead_MAC": "", "Device_TableHead_MAC": "Losowy MAC",
"Device_TableHead_MAC_full": "", "Device_TableHead_MAC_full": "Pe\u0142en MAC",
"Device_TableHead_Name": "", "Device_TableHead_Name": "Nazwa",
"Device_TableHead_Owner": "", "Device_TableHead_Owner": "W\u0142a\u015bciciel",
"Device_TableHead_Parent_MAC": "", "Device_TableHead_Parent_MAC": "MAC rodzica w\u0119z\u0142a",
"Device_TableHead_Port": "", "Device_TableHead_Port": "Port",
"Device_TableHead_RowID": "", "Device_TableHead_RowID": "ID wiersza",
"Device_TableHead_Rowid": "", "Device_TableHead_Rowid": "ID wiersza",
"Device_TableHead_Status": "", "Device_TableHead_Status": "Status",
"Device_TableHead_Type": "", "Device_TableHead_Type": "Typ",
"Device_TableHead_Vendor": "", "Device_TableHead_Vendor": "Dostawca",
"Device_Table_Not_Network_Device": "", "Device_Table_Not_Network_Device": "Nie skonfigurowane jako urz\u0105dzenie sieciowe",
"Device_Table_info": "", "Device_Table_info": "Pokazuje_od_POCZ\u0104TKU_do_KO\u0143CA_WSZYSKICH_wpis\u00f3w",
"Device_Table_nav_next": "", "Device_Table_nav_next": "Nast\u0119pny",
"Device_Table_nav_prev": "", "Device_Table_nav_prev": "Poprzedni",
"Device_Tablelenght": "", "Device_Tablelenght": "Poka\u017c_wpisy_MENU",
"Device_Tablelenght_all": "", "Device_Tablelenght_all": "Wszystkie",
"Device_Title": "", "Device_Title": "Urz\u0105dzenia",
"Donations_Others": "", "Donations_Others": "Reszta",
"Donations_Platforms": "", "Donations_Platforms": "Platforma Sponsora",
"Donations_Text": "", "Donations_Text": "Cze\u015b\u0107 \ud83d\udc4b! </br> Dzi\u0119kuje \u017ce klikn\u0105\u0142e\u015b w to menu \ud83d\ude05 </br> </br> Pr\u00f3buje zebra\u0107 troch\u0119 donacji by ulepszy\u0107 to oprogramowanie. Tak\u017ce pomaga mi to si\u0119 nie wypali\u0107 bym dalej m\u00f3g\u0142 wspiera\u0107 to narz\u0119dzie. Ka\u017cdy ma\u0142y (powtarzaj\u0105cy si\u0119 lub nie) sponsoring sprawia \u017ce chce wk\u0142ada\u0107 wi\u0119cej pracy w t\u0105 aplikacj\u0119. </br> Chcia\u0142bym skr\u00f3\u0107 m\u00f3j tydzie\u0144 pracy i w wolnym czasie skupi\u0107 si\u0119 nad NetAlertX. Dostawaliby\u015bcie wi\u0119cej funkcjonalno\u015bci i bardziej wypolerowane, posiadaj\u0105ce mniej b\u0142\u0119d\u00f3w wydania. </br> </br> Dzi\u0119kuj\u0119 \u017ce to przeczyta\u0142e\u015b - Jestem wdzi\u0119czny za pomoc \u2764\ud83d\ude4f</br> </br> TL;DR: Wspieraj\u0105c mnie otrzymujesz: </br> </br> <ul><li> Regularne aktualizacje by zapewni\u0107 twoim danym i rodzinie bezpiecze\u0144stwo \ud83d\udd04 </li><li>Mniej b\u0142\u0119d\u00f3w (bug\u00f3w) \ud83d\udc1b\ud83d\udd2b</li><li>Wi\u0119cej i lepsze funkcjonalno\u015bci\u2795</li><li>Ja si\u0119 nie wypale\ud83d\udd25\ud83e\udd2f</li><li>Mniej wypchane na si\u0142\u0119 wydania\ud83d\udca8</li><li>Lepsza dokumentacja\ud83d\udcda</li><li>Szybsza i lepsza pomoc w problemach\ud83c\udd98</li></ul> </br>\ud83d\udce7Napisz E-mail do mnie na<a href='mailto:jokob@duck.com?subject=NetAlertX'>jokob@duck.com</a> je\u017celi chcesz nawi\u0105za\u0107 kontakt albo czy powinien doda\u0107 kolejn\u0105 platform\u0119 z sponsoringiem.</br>",
"Donations_Title": "", "Donations_Title": "Dotacje",
"ENABLE_PLUGINS_description": "", "ENABLE_PLUGINS_description": "W\u0142\u0105cza funkcjonalno\u015b\u0107 <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/tree/main/front/plugins\">plugin\u00f3w</a>. Uruchomienie plugin\u00f3w wymaga wi\u0119cej zasob\u00f3w sprz\u0119tu wi\u0119cej mo\u017cesz chcie\u0107 to wy\u0142\u0105czy\u0107 dla systemu o niskich parametrach.",
"ENABLE_PLUGINS_name": "", "ENABLE_PLUGINS_name": "W\u0142\u0105cz Pluginy",
"Email_display_name": "", "Email_display_name": "Email",
"Email_icon": "", "Email_icon": "<i class=\"fa fa-at\"></i>",
"Events_Loading": "", "Events_Loading": "Wczytywanie...",
"Events_Periodselect_All": "", "Events_Periodselect_All": "Wszystkie Informacje",
"Events_Periodselect_LastMonth": "", "Events_Periodselect_LastMonth": "Ostatni Miesi\u0105c",
"Events_Periodselect_LastWeek": "", "Events_Periodselect_LastWeek": "Ostatni Tydzie\u0144",
"Events_Periodselect_LastYear": "", "Events_Periodselect_LastYear": "Ostatni Rok",
"Events_Periodselect_today": "", "Events_Periodselect_today": "Dzisiaj",
"Events_Searchbox": "", "Events_Searchbox": "Szukaj",
"Events_Shortcut_AllEvents": "", "Events_Shortcut_AllEvents": "Wszystkie Wydarzenia",
"Events_Shortcut_DownAlerts": "", "Events_Shortcut_DownAlerts": "Alerty o roz\u0142\u0105czeniu",
"Events_Shortcut_Events": "", "Events_Shortcut_Events": "Wydarzenia",
"Events_Shortcut_MissSessions": "", "Events_Shortcut_MissSessions": "Brakuj\u0105ce Sesje",
"Events_Shortcut_NewDevices": "", "Events_Shortcut_NewDevices": "Nowe Urz\u0105dzenia",
"Events_Shortcut_Sessions": "", "Events_Shortcut_Sessions": "Sesje",
"Events_Shortcut_VoidSessions": "", "Events_Shortcut_VoidSessions": "Uniewa\u017cnione sesje",
"Events_TableHead_AdditionalInfo": "", "Events_TableHead_AdditionalInfo": "Dodatkowe Info",
"Events_TableHead_Connection": "", "Events_TableHead_Connection": "Po\u0142\u0105czenie",
"Events_TableHead_Date": "", "Events_TableHead_Date": "Data",
"Events_TableHead_Device": "", "Events_TableHead_Device": "Urz\u0105dzenie",
"Events_TableHead_Disconnection": "", "Events_TableHead_Disconnection": "Roz\u0142\u0105czenie",
"Events_TableHead_Duration": "", "Events_TableHead_Duration": "Okres",
"Events_TableHead_DurationOrder": "", "Events_TableHead_DurationOrder": "Kolejno\u015b\u0107 Okresu",
"Events_TableHead_EventType": "", "Events_TableHead_EventType": "Typ Wydarzenia",
"Events_TableHead_IP": "", "Events_TableHead_IP": "IP",
"Events_TableHead_IPOrder": "", "Events_TableHead_IPOrder": "Kolejno\u015b\u0107 IP",
"Events_TableHead_Order": "", "Events_TableHead_Order": "Kolejno\u015b\u0107",
"Events_TableHead_Owner": "", "Events_TableHead_Owner": "W\u0142a\u015bciciel",
"Events_Table_info": "", "Events_Table_info": "",
"Events_Table_nav_next": "", "Events_Table_nav_next": "Nast\u0119pna",
"Events_Table_nav_prev": "", "Events_Table_nav_prev": "Poprzednia",
"Events_Tablelenght": "", "Events_Tablelenght": "",
"Events_Tablelenght_all": "", "Events_Tablelenght_all": "Wszystko",
"Events_Title": "", "Events_Title": "Wydarzenia",
"Gen_Action": "", "Gen_Action": "Akcja",
"Gen_Add": "",
"Gen_Add_All": "", "Gen_Add_All": "",
"Gen_AreYouSure": "", "Gen_AreYouSure": "Jeste\u015b pewien?",
"Gen_Backup": "", "Gen_Backup": "Wykonaj Kopie Zapasow\u0105",
"Gen_Cancel": "", "Gen_Cancel": "Anuluj",
"Gen_Copy": "", "Gen_Copy": "Wykonaj",
"Gen_DataUpdatedUITakesTime": "", "Gen_DataUpdatedUITakesTime": "OK - Aktualizacja UI mo\u017ce chwile potrwa\u0107 je\u017celi wykonywany jest skan.",
"Gen_Delete": "", "Gen_Delete": "Usu\u0144",
"Gen_DeleteAll": "", "Gen_DeleteAll": "Usu\u0144 wszystko",
"Gen_Error": "", "Gen_Error": "B\u0142\u0105d",
"Gen_LockedDB": "", "Gen_Filter": "",
"Gen_Okay": "", "Gen_LockedDB": "B\u0141\u0104D - BAZA DANYCH mo\u017ce by\u0107 zablokowana - Sprawd\u017a F12 narz\u0119dzia dewelopera -> Konsola lub spr\u00f3buj ponownie p\u00f3\u017aniej.",
"Gen_Purge": "", "Gen_Okay": "Ok",
"Gen_ReadDocs": "", "Gen_Purge": "Wyczy\u015b\u0107",
"Gen_ReadDocs": "Przeczytaj wi\u0119cej w dokumentacji.",
"Gen_Remove_All": "", "Gen_Remove_All": "",
"Gen_Restore": "", "Gen_Remove_Last": "",
"Gen_Run": "", "Gen_Restore": "Wykonaj Przywracanie",
"Gen_Save": "", "Gen_Run": "Wykonaj",
"Gen_Saved": "", "Gen_Save": "Zapisz",
"Gen_Selected_Devices": "", "Gen_Saved": "Zapisano",
"Gen_Switch": "", "Gen_Search": "",
"Gen_Upd": "", "Gen_Selected_Devices": "Wybierz Urz\u0105dzenia:",
"Gen_Upd_Fail": "", "Gen_Switch": "Switch",
"Gen_Warning": "", "Gen_Upd": "Zaktualizowane poprawnie",
"Gen_Work_In_Progress": "", "Gen_Upd_Fail": "Aktualizacja nie powiod\u0142a si\u0119",
"General_display_name": "", "Gen_Update": "",
"General_icon": "", "Gen_Update_Value": "",
"HRS_TO_KEEP_NEWDEV_description": "", "Gen_Warning": "Uwaga",
"HRS_TO_KEEP_NEWDEV_name": "", "Gen_Work_In_Progress": "Praca w toku, dobry czas na feedback https://github.com/jokob-sk/NetAlertX/issues",
"HelpFAQ_Cat_Detail": "", "General_display_name": "Og\u00f3lne",
"HelpFAQ_Cat_Detail_300_head": "", "General_icon": "<i class=\"fa fa-gears\"></i>",
"HelpFAQ_Cat_Detail_300_text_a": "", "HRS_TO_KEEP_NEWDEV_description": "To jest ustawienie konserwacyjne. Je\u017celi uruchomione (<code>0</code> jest wy\u0142\u0105czone), urz\u0105dzenie oznaczone jako <b>Nowe Urz\u0105dzenie</b> zostanie usuni\u0119te je\u017celi czas <b>Pierwszej Sesji</b> jest starszy ni\u017c godzina podana w tym ustawieniu. Uzyj tego ustawienia je\u017celi chcesz automatycznie usuwa\u0107 <b>Nowe Urz\u0105dzenia</b> po <code>X</code> godzinach.",
"HelpFAQ_Cat_Detail_300_text_b": "", "HRS_TO_KEEP_NEWDEV_name": "Trzymaj nowe urz\u0105dzenia przez",
"HelpFAQ_Cat_Detail_301_head_a": "", "HelpFAQ_Cat_Detail": "Szczeg\u00f3\u0142y",
"HelpFAQ_Cat_Detail_301_head_b": "", "HelpFAQ_Cat_Detail_300_head": "Co oznacza ",
"HelpFAQ_Cat_Detail_301_text": "", "HelpFAQ_Cat_Detail_300_text_a": "oznacza urz\u0105dzenie sieciowe (urz\u0105dzenie typu AP, Gateway, Zapora sieciowa, Hypervisor, Powerline, Switch, WLAN, PLC, Ruter, Adapter USB LAN, Adapter USB WIFI, oraz Internet). W\u0142asny typ mo\u017ce zosta\u0107 dodany poprzez ustawienie <code>NETWORK_DEVICE_TYPE</code>.",
"HelpFAQ_Cat_Detail_302_head_a": "", "HelpFAQ_Cat_Detail_300_text_b": "wyznacza numer portu gdzie aktualne urz\u0105dzenie jest pod\u0142\u0105czone do urz\u0105dzenia sieciowego. Przeczytaj <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/NETWORK_TREE.md\">ten przewodnik</a>po wi\u0119cej informacji.",
"HelpFAQ_Cat_Detail_302_head_b": "", "HelpFAQ_Cat_Detail_301_head_a": "Kiedy b\u0119dzie teraz skanowanie? ",
"HelpFAQ_Cat_Detail_302_text": "", "HelpFAQ_Cat_Detail_301_head_b": " m\u00f3wi \u017ce 1min ale graf pokazuje interwa\u0142 5 minutowy.",
"HelpFAQ_Cat_Detail_303_head": "", "HelpFAQ_Cat_Detail_301_text": "Interwa\u0142 czasowy mi\u0119dzy skanowanie jest okre\u015blany przez \"Cronjob\", kt\u00f3ry jest podstawowo ustawiony na 5 min. Okre\u015blenie \"1min\" odnosi si\u0119 do oczekiwanego czasu skanowania. Zale\u017cnie od konfiguracji sieci ten czas mo\u017ce si\u0119 r\u00f3\u017cni\u0107. By edytowa\u0107 cronjob, mo\u017cesz u\u017cy\u0107 nast\u0119puj\u0105cej komendy w konsoli <span class=\"text-danger help_faq_code\">crontab -e</span> i zmieni\u0107 interwa\u0142.",
"HelpFAQ_Cat_Detail_303_text": "", "HelpFAQ_Cat_Detail_302_head_a": "Co oznacza ",
"HelpFAQ_Cat_Device_200_head": "", "HelpFAQ_Cat_Detail_302_head_b": "i czemu nie mo\u017cna tego zaznaczy\u0107?",
"HelpFAQ_Cat_Device_200_text": "", "HelpFAQ_Cat_Detail_302_text": "Niekt\u00f3re nowoczesne urz\u0105dzenia generuj\u0105 losowy adres MAC z powod\u00f3w prywatno\u015bci, kt\u00f3re nie mog\u0105 by\u0107 przypisane do \u017cadnego producenta i mo\u017ce si\u0119 zmienia\u0107 co nowe po\u0142\u0105czenie. NetAlertX wykrywa czy adres MAC jest losowy i automatycznie aktywuje te \"pole\". By wy\u0142\u0105czy\u0107 takie zachowanie musisz sprawdzi\u0107 jak wy\u0142\u0105czy\u0107 w swoim urz\u0105dzeniu losowe generowanie adresu MAC.",
"HelpFAQ_Cat_General": "", "HelpFAQ_Cat_Detail_303_head": "Co to jest Nmap i do czego s\u0142u\u017cy?",
"HelpFAQ_Cat_General_100_head": "", "HelpFAQ_Cat_Detail_303_text": "Nmap jest skanerem sieci z wieloma mo\u017cliwo\u015bciami. <br> Kiedy urz\u0105dzenie pojawia si\u0119 na twojej li\u015bcie, masz mo\u017cliwo\u015b\u0107 zebra\u0107 wi\u0119cej informacji o urz\u0105dzeniu poprzez skan Nmap.",
"HelpFAQ_Cat_General_100_text_a": "", "HelpFAQ_Cat_Device_200_head": "Posiadam na swojej li\u015bcie urz\u0105dzenia o kt\u00f3rych nie wiem. Po usuni\u0119ciu ich znowu si\u0119 pojawiaj\u0105.",
"HelpFAQ_Cat_General_100_text_b": "", "HelpFAQ_Cat_Device_200_text": "Je\u017celi u\u017cywasz Pi-hole, zanotuj \u017ce NetAlertX otrzymuje informacje ze Pi-hole. Zatrzymaj NetAlertX, porzejdz do strony ustawie\u0144 Pi-Hole i usu\u0144 niepotrzebne dzier\u017cawy DHCP je\u017celi to konieczne. Nast\u0119pnie, tak\u017ce w Pi-hole, pod ustawieniami Narz\u0119dzia -> Sie\u0107 (Tools -> Network) sprawd\u017a czy widzisz powracaj\u0105ce urz\u0105dzenia. Je\u017celi tak to usu\u0144 je tak\u017ce. Teraz mo\u017cesz uruchomi\u0107 NetAlertX ponownie. Teraz urzadzenie(a) nie powinny si\u0119 ju\u017c pojawiac.",
"HelpFAQ_Cat_General_100_text_c": "", "HelpFAQ_Cat_General": "Og\u00f3lne",
"HelpFAQ_Cat_General_101_head": "", "HelpFAQ_Cat_General_100_head": "Zegar po prawej na g\u00f3rze i czas wydarze\u0144/obecno\u015bci nie jest poprawny (r\u00f3\u017cni\u0105cy si\u0119 czas).",
"HelpFAQ_Cat_General_101_text": "", "HelpFAQ_Cat_General_100_text_a": "Na twoim komputerze strefa czasowa jest ustawiona na \u015brodowisko PHP:",
"HelpFAQ_Cat_General_102_head": "", "HelpFAQ_Cat_General_100_text_b": "Je\u017celi nie jest to strefa czasowa w kt\u00f3rej jeste\u015b, powiniene\u015b zmieni\u0107 stref\u0119 czasow\u0105 w pliku konfiguracyjnym PHP. Mo\u017cesz znale\u017a\u0107 ten plik w folderze:",
"HelpFAQ_Cat_General_102_text": "", "HelpFAQ_Cat_General_100_text_c": "Przeszukaj plik w poszukiwaniu wpisu \"date.timezone\", i usu\u0144 \";\" je\u017celi jest to konieczne oraz wprowad\u017a po\u017c\u0105dan\u0105 stref\u0119 czasow\u0105. Lista wpieranych stref czasowych znajdziesz tutaj (<a href=\"https://www.php.net/manual/en/timezones.php\" target=\"blank\">Link</a>)",
"HelpFAQ_Cat_General_102docker_head": "", "HelpFAQ_Cat_General_101_head": "Moja sie\u0107 chyba zwolni\u0142a, ogl\u0105danie film\u00f3w \"zawiesza si\u0119\".",
"HelpFAQ_Cat_General_102docker_text": "", "HelpFAQ_Cat_General_101_text": "Mo\u017cliwe \u017ce wolne urz\u0105dzenia osi\u0105gn\u0119\u0142y sw\u00f3j limit wydajno\u015bci ze wzgl\u0119du na spos\u00f3b w jaki NetAlerX wykrywa nowe urz\u0105dzenia w sieci. Jest to jeszcze bardziej spot\u0119gowane, je\u017celi te urz\u0105dzenia komunikuj\u0105 si\u0119 za pomoc\u0105 sieci WLAN (bezprzewodowej). Rozwi\u0105zaniem b\u0119dzie zmiana na sie\u0107 przewodow\u0105 je\u017celi to mo\u017cliwe lub je\u017celi urz\u0105dzenie jest u\u017cywane przez kr\u00f3tki czas, to lepiej u\u017cy\u0107 skanu ARP. Zatrzymaj skan ARP w karcie Konserwacja.",
"HelpFAQ_Cat_General_103_head": "", "HelpFAQ_Cat_General_102_head": "Dostaje wiadomo\u015b\u0107 \u017ce baza danych jest tylko do odczytu.",
"HelpFAQ_Cat_General_103_text": "", "HelpFAQ_Cat_General_102_text": "Sprawd\u017a w folderze NetAlertX czy folder bazy danych (db) ma przypisany poprawne uprawnienia: <br><span class=\"text-danger help_faq_code\">drwxrwx---2 (twoja nazwa u\u017cytkownika) www-data</span><br> Je\u017celi uprawnienia s\u0105 niepoprawne mo\u017cesz ustawi\u0107 je za pomoc\u0105 komendy w konsoli lub terminalu: <br> <span class=\"text-danger help_faq_code\">sudo chgrp -R www-data /app/db<br>chmod -R 770 /app/db</span><br> Je\u017celi baza danych dalej jest tylko do odczytu spr\u00f3buj przeinstalowa\u0107 albo przywr\u00f3ci\u0107 baz\u0119 danych z kopii zapasowej w karcie Konserwacji.",
"HelpFAQ_Cat_Network_600_head": "", "HelpFAQ_Cat_General_102docker_head": "B\u0142\u0119dy bazy danych (AJAX errors, read-only, not found)",
"HelpFAQ_Cat_Network_600_text": "", "HelpFAQ_Cat_General_102docker_text": "Sprawd\u017a jeszcze raz <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/tree/main/dockerfiles\">dockerfile readme (naj\u015bwie\u017csze informacje)</a>.<br/><br/><ul data-sourcepos=\"49:4-52:146\" dir=\"auto\">Pobierz<a target=\"_blank\"href=\"https://github.com/jokob-sk/NetAlertX/blob/main/db/app.db\">oryginaln\u0105 baz\u0119 danych z GitHub</a>.</li><li data-sourcepos=\"50:4-50:195\">Zmapuj plik <code>app.db</code>(<g-emoji class=\"g-emoji\" alias=\"warning\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/26a0.png\">\u26a0</g-emoji> nie folder) z \u015bcie\u017cki do <code>/app/db/app.db</code> (sprawd\u017a<a target=\"_blank\"href=\"https://github.com/jokob-sk/NetAlertX/tree/main/dockerfiles#-examples\">Przyk\u0142ady</a> by dowiedzie\u0107 si\u0119 wi\u0119cej).</li><li data-sourcepos=\"51:4-51:161\">Je\u017celi napotka\u0142e\u015b b\u0142\u0119dy (AJAX errors, can not write to DB, itp) upewnij sie \u017ce uprawnienia s\u0105 poprawne lub sprawd\u017a plik log\u00f3w w <code>/app/front/log</code>.</li><li data-sourcepos=\"52:4-52:146\">By naprawi\u0107 problemy spr\u00f3buj wykona\u0107 kopie zapasow\u0105 bazy danych i ja przywr\u00f3\u0107 za pomoc\u0105 sekcji <strong>Konserwacja&gt; Kopia Zapasowa/Przywracanie</strong>.</li><li data-sourcepos=\"53:4-53:228\">Je\u017celi baza danych jest w trybie tylko do odczytu (read-only mode) mo\u017cesz to rozwi\u0105za\u0107 ustawiaj\u0105c w\u0142a\u015bciciela i grup\u0119 poprzez zastosowanie nast\u0119puj\u0105cej komendy w ho\u015bcie systemu: <code>docker exec netalertx chown -R www-data:www-data /app/db/app.db</code>.</li></ul>",
"HelpFAQ_Cat_Network_601_head": "", "HelpFAQ_Cat_General_103_head": "Strona logowania nie pojawia si\u0119, nawet po zmianie has\u0142a.",
"HelpFAQ_Cat_Network_601_text": "", "HelpFAQ_Cat_General_103_text": "Opr\u00f3cz zmiany has\u0142a, plik konfiguracji musi zawiera\u0107 <span class=\"text-danger help_faq_code\">/app/config/app.conf</span> oraz parametr <span class=\"text-danger help_faq_code\">PIALERT_WEB_PROTECTION</span> musi by\u0107 ustawiony na <span class=\"text-danger help_faq_code\">True</span>.",
"HelpFAQ_Cat_Presence_400_head": "", "HelpFAQ_Cat_Network_600_head": "Po co jest ta strona?",
"HelpFAQ_Cat_Presence_400_text": "", "HelpFAQ_Cat_Network_600_text": "Ta strona powinna zapewni\u0107 ci mo\u017cliwo\u015b\u0107 przypisania twoich urz\u0105dze\u0144 sieciowych. W tym celu mo\u017cesz tworzy\u0107 jeden lub wi\u0119cej switch'y, ruter\u00f3w itp, ustawi\u0107 im numery port\u00f3w je\u017celi to konieczne oraz przypisa\u0107 do nich ju\u017c wykryte urz\u0105dzenia. Przypisanie jest mo\u017cliwe w widoku szczeg\u00f3\u0142owym urz\u0105dzenia do przypisania. Dzi\u0119ki temu mo\u017cna szybko okre\u015bli\u0107, do kt\u00f3rego portu pod\u0142\u0105czony jest host i czy jest on online. Przeczytaj ten <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/NETWORK_TREE.md\">poradnik</a> po wi\u0119cej informacji.",
"HelpFAQ_Cat_Presence_401_head": "", "HelpFAQ_Cat_Network_601_head": "Czy jest te\u017c inna dokumentacja?",
"HelpFAQ_Cat_Presence_401_text": "", "HelpFAQ_Cat_Network_601_text": "Tak, istnieje! Sprawd\u017a <a target=\"_blank\" href=\"https://github.com/jokob-sk/NetAlertX/blob/main/docs/\"> wszystkie dokumentacje </a>po wi\u0119cej informacji.",
"HelpFAQ_Title": "", "HelpFAQ_Cat_Presence_400_head": "Urz\u0105dzenia s\u0105 wy\u015bwietlane z \u017c\u00f3\u0142tym oznaczeniem i notatk\u0105 \"brakuje wydarzenia\".",
"HelpFAQ_Cat_Presence_400_text": "Je\u017celi tak si\u0119 dzieje, masz mo\u017cliwo\u015b\u0107 usuni\u0119cia wydarzenia na danym urz\u0105dzenia (widok szczeg\u00f3\u0142owy). Kolejna mo\u017cliwo\u015b\u0107 to w\u0142\u0105czenie urz\u0105dzenia i oczekiwanie a\u017c NetAlertX wykryje urz\u0105dzenie jako \"online\" przy kolejnym skanowaniu, a nast\u0119pnie wy\u0142\u0105czenia ponownie urz\u0105dzenia. Teraz NetAlertX powinien poprawnie zanotowa\u0107 stan urz\u0105dzenia w bazie danych przy kolejnym skanowaniu.",
"HelpFAQ_Cat_Presence_401_head": "Urz\u0105dzenie jest wy\u015bwietlane jako dost\u0119pne imo i\u017c jest \"Offline\".",
"HelpFAQ_Cat_Presence_401_text": "Je\u017celi tak si\u0119 dzieje, to masz mo\u017cliwo\u015b\u0107 usuni\u0119cia wydarzenia na danym urz\u0105dzenia (widok szczeg\u00f3\u0142owy). Kolejna mo\u017cliwo\u015b\u0107 to w\u0142\u0105czenie urz\u0105dzenia i oczekiwanie a\u017c NetAlertX wykryje urz\u0105dzenie jako \"online\" przy kolejnym skanowaniu, a nast\u0119pnie wy\u0142\u0105czenia ponownie urz\u0105dzenia. Teraz NetAlertX powinien poprawnie zanotowa\u0107 stan urz\u0105dzenia w bazie danych przy kolejnym skanowaniu.",
"HelpFAQ_Title": "Pomoc / FAQ",
"LOG_LEVEL_description": "", "LOG_LEVEL_description": "",
"LOG_LEVEL_name": "", "LOG_LEVEL_name": "",
"Loading": "", "Loading": "",
@@ -658,6 +664,7 @@
"settings_saved": "", "settings_saved": "",
"settings_system_icon": "", "settings_system_icon": "",
"settings_system_label": "", "settings_system_label": "",
"settings_update_item_warning": "",
"test_event_icon": "", "test_event_icon": "",
"test_event_tooltip": "" "test_event_tooltip": ""
} }

View File

@@ -261,6 +261,7 @@
"Events_Tablelenght_all": "", "Events_Tablelenght_all": "",
"Events_Title": "", "Events_Title": "",
"Gen_Action": "", "Gen_Action": "",
"Gen_Add": "",
"Gen_Add_All": "", "Gen_Add_All": "",
"Gen_AreYouSure": "", "Gen_AreYouSure": "",
"Gen_Backup": "", "Gen_Backup": "",
@@ -270,19 +271,24 @@
"Gen_Delete": "", "Gen_Delete": "",
"Gen_DeleteAll": "", "Gen_DeleteAll": "",
"Gen_Error": "", "Gen_Error": "",
"Gen_Filter": "",
"Gen_LockedDB": "", "Gen_LockedDB": "",
"Gen_Okay": "", "Gen_Okay": "",
"Gen_Purge": "", "Gen_Purge": "",
"Gen_ReadDocs": "", "Gen_ReadDocs": "",
"Gen_Remove_All": "", "Gen_Remove_All": "",
"Gen_Remove_Last": "",
"Gen_Restore": "", "Gen_Restore": "",
"Gen_Run": "", "Gen_Run": "",
"Gen_Save": "", "Gen_Save": "",
"Gen_Saved": "", "Gen_Saved": "",
"Gen_Search": "",
"Gen_Selected_Devices": "", "Gen_Selected_Devices": "",
"Gen_Switch": "", "Gen_Switch": "",
"Gen_Upd": "", "Gen_Upd": "",
"Gen_Upd_Fail": "", "Gen_Upd_Fail": "",
"Gen_Update": "",
"Gen_Update_Value": "",
"Gen_Warning": "", "Gen_Warning": "",
"Gen_Work_In_Progress": "", "Gen_Work_In_Progress": "",
"General_display_name": "", "General_display_name": "",
@@ -658,6 +664,7 @@
"settings_saved": "", "settings_saved": "",
"settings_system_icon": "", "settings_system_icon": "",
"settings_system_label": "", "settings_system_label": "",
"settings_update_item_warning": "",
"test_event_icon": "", "test_event_icon": "",
"test_event_tooltip": "" "test_event_tooltip": ""
} }

View File

@@ -261,6 +261,7 @@
"Events_Tablelenght_all": "\u0412\u0441\u0435", "Events_Tablelenght_all": "\u0412\u0441\u0435",
"Events_Title": "\u0421\u043e\u0431\u044b\u0442\u0438\u044f", "Events_Title": "\u0421\u043e\u0431\u044b\u0442\u0438\u044f",
"Gen_Action": "\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f", "Gen_Action": "\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f",
"Gen_Add": "",
"Gen_Add_All": "", "Gen_Add_All": "",
"Gen_AreYouSure": "\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b?", "Gen_AreYouSure": "\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b?",
"Gen_Backup": "\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435", "Gen_Backup": "\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435",
@@ -270,19 +271,24 @@
"Gen_Delete": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c", "Gen_Delete": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c",
"Gen_DeleteAll": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435", "Gen_DeleteAll": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435",
"Gen_Error": "\u041e\u0448\u0438\u0431\u043a\u0430", "Gen_Error": "\u041e\u0448\u0438\u0431\u043a\u0430",
"Gen_Filter": "",
"Gen_LockedDB": "\u041e\u0428\u0418\u0411\u041a\u0410 - \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0430. \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 F12 -> \u041a\u043e\u043d\u0441\u043e\u043b\u044c \u0438\u043b\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u043f\u043e\u0437\u0436\u0435.", "Gen_LockedDB": "\u041e\u0428\u0418\u0411\u041a\u0410 - \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0430. \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 F12 -> \u041a\u043e\u043d\u0441\u043e\u043b\u044c \u0438\u043b\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u043f\u043e\u0437\u0436\u0435.",
"Gen_Okay": "OK", "Gen_Okay": "OK",
"Gen_Purge": "\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c", "Gen_Purge": "\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c",
"Gen_ReadDocs": "\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438.", "Gen_ReadDocs": "\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438.",
"Gen_Remove_All": "", "Gen_Remove_All": "",
"Gen_Remove_Last": "",
"Gen_Restore": "\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435", "Gen_Restore": "\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435",
"Gen_Run": "\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c", "Gen_Run": "\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c",
"Gen_Save": "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c", "Gen_Save": "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c",
"Gen_Saved": "\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043e", "Gen_Saved": "\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043e",
"Gen_Search": "",
"Gen_Selected_Devices": "\u0412\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430:", "Gen_Selected_Devices": "\u0412\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430:",
"Gen_Switch": "\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c", "Gen_Switch": "\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c",
"Gen_Upd": "\u0423\u0441\u043f\u0435\u0448\u043d\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435", "Gen_Upd": "\u0423\u0441\u043f\u0435\u0448\u043d\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435",
"Gen_Upd_Fail": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c", "Gen_Upd_Fail": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c",
"Gen_Update": "",
"Gen_Update_Value": "",
"Gen_Warning": "\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435", "Gen_Warning": "\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435",
"Gen_Work_In_Progress": "\u0420\u0430\u0431\u043e\u0442\u0430 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u0441\u044f, \u0441\u0430\u043c\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043e\u0442\u0437\u044b\u0432 \u043d\u0430 https://github.com/jokob-sk/NetAlertX/issues", "Gen_Work_In_Progress": "\u0420\u0430\u0431\u043e\u0442\u0430 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u0441\u044f, \u0441\u0430\u043c\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043e\u0442\u0437\u044b\u0432 \u043d\u0430 https://github.com/jokob-sk/NetAlertX/issues",
"General_display_name": "\u0413\u043b\u0430\u0432\u043d\u043e\u0435", "General_display_name": "\u0413\u043b\u0430\u0432\u043d\u043e\u0435",
@@ -658,6 +664,7 @@
"settings_saved": "<br/>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0435 <code>app.conf</code>.<br/><br/>\u0420\u0435\u0437\u0435\u0440\u0432\u043d\u0430\u044f \u043a\u043e\u043f\u0438\u044f \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0441 \u043e\u0442\u043c\u0435\u0442\u043a\u043e\u0439 \u0432\u0440\u0435\u043c\u0435\u043d\u0438. <br/><br/> \u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430...<br/>", "settings_saved": "<br/>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0435 <code>app.conf</code>.<br/><br/>\u0420\u0435\u0437\u0435\u0440\u0432\u043d\u0430\u044f \u043a\u043e\u043f\u0438\u044f \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0441 \u043e\u0442\u043c\u0435\u0442\u043a\u043e\u0439 \u0432\u0440\u0435\u043c\u0435\u043d\u0438. <br/><br/> \u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430...<br/>",
"settings_system_icon": "fa-solid fa-gear", "settings_system_icon": "fa-solid fa-gear",
"settings_system_label": "\u0421\u0438\u0441\u0442\u0435\u043c\u0430", "settings_system_label": "\u0421\u0438\u0441\u0442\u0435\u043c\u0430",
"settings_update_item_warning": "",
"test_event_icon": "fa-vial-circle-check", "test_event_icon": "fa-vial-circle-check",
"test_event_tooltip": "\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438." "test_event_tooltip": "\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438."
} }

View File

@@ -20,7 +20,7 @@
<div id="modal-ok-message" class="modal-body"> Modal Default message </div> <div id="modal-ok-message" class="modal-body"> Modal Default message </div>
<div class="modal-footer"> <div class="modal-footer">
<button id="modal-ok-OK" type="button" class="btn btn-primary" style="min-width: 80px;" data-dismiss="modal"> OK </button> <button id="modal-ok-OK" type="button" class="btn btn-primary btn-modal-submit" style="min-width: 80px;" data-dismiss="modal"> OK </button>
</div> </div>
</div> </div>
<!-- /.modal-content --> <!-- /.modal-content -->
@@ -42,7 +42,7 @@
<div class="modal-footer"> <div class="modal-footer">
<button id="modal-default-cancel" type="button" class="btn btn-default pull-left" style="min-width: 80px;" data-dismiss="modal"> Cancel </button> <button id="modal-default-cancel" type="button" class="btn btn-default pull-left" style="min-width: 80px;" data-dismiss="modal"> Cancel </button>
<button id="modal-default-OK" type="button" class="btn btn-primary" style="min-width: 80px;" onclick="modalDefaultOK()"> OK </button> <button id="modal-default-OK" type="button" class="btn btn-primary btn-modal-submit" style="min-width: 80px;" onclick="modalDefaultOK()"> OK </button>
</div> </div>
</div> </div>
<!-- /.modal-content --> <!-- /.modal-content -->
@@ -64,7 +64,7 @@
<div class="modal-footer"> <div class="modal-footer">
<button id="modal-str-cancel" type="button" class="btn btn-default pull-left" style="min-width: 80px;" data-dismiss="modal"> Cancel </button> <button id="modal-str-cancel" type="button" class="btn btn-default pull-left" style="min-width: 80px;" data-dismiss="modal"> Cancel </button>
<button id="modal-str-OK" type="button" class="btn btn-primary" style="min-width: 80px;" > OK </button> <button id="modal-str-OK" type="button" class="btn btn-primary btn-modal-submit" style="min-width: 80px;"> OK </button>
</div> </div>
</div> </div>
<!-- /.modal-content --> <!-- /.modal-content -->
@@ -87,14 +87,14 @@
<div class="modal-footer"> <div class="modal-footer">
<button id="modal-warning-cancel" type="button" class="btn btn-outline pull-left" style="min-width: 80px;" data-dismiss="modal"> Cancel </button> <button id="modal-warning-cancel" type="button" class="btn btn-outline pull-left" style="min-width: 80px;" data-dismiss="modal"> Cancel </button>
<button id="modal-warning-OK" type="button" class="btn btn-outline" style="min-width: 80px;" onclick="modalWarningOK()"> OK </button> <button id="modal-warning-OK" type="button" class="btn btn-outline btn-modal-submit" style="min-width: 80px;" onclick="modalWarningOK()"> OK </button>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<!-- Modal input --> <!-- Modal textarea input -->
<div class="modal modal-warning fade" id="modal-input" style="display: none;"> <div class="modal modal-warning fade" id="modal-input" style="display: none;">
<div class="modal-dialog"> <div class="modal-dialog">
<div class="modal-content"> <div class="modal-content">
@@ -106,11 +106,39 @@
<div id="modal-input-message" class="modal-body"> Modal message </div> <div id="modal-input-message" class="modal-body"> Modal message </div>
<textarea id="modal-input-textarea" class="logs" cols="30" rows="3" wrap='off' ></textarea> <textarea id="modal-input-textarea" class="logs" cols="30" rows="3" wrap='off' autofocus ></textarea>
<div class="modal-footer"> <div class="modal-footer">
<button id="modal-input-cancel" type="button" class="btn btn-outline pull-left" style="min-width: 80px;" data-dismiss="modal"> Cancel </button> <button id="modal-input-cancel" type="button" class="btn btn-outline pull-left" style="min-width: 80px;" data-dismiss="modal"> Cancel </button>
<button id="modal-input-OK" type="button" class="btn btn-outline" style="min-width: 80px;" onclick="modalDefaultInput()"> OK </button> <button id="modal-input-OK" type="button" class="btn btn-outline btn-modal-submit" style="min-width: 80px;" onclick="modalDefaultInput()"> OK </button>
</div>
</div>
</div>
</div>
<!-- Modal field input -->
<div class="modal modal-warning fade" id="modal-field-input" style="display: none;">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 id="modal-field-input-title" class="modal-title"> Modal Title </h4>
</div>
<div id="modal-field-input-message" class="modal-body"> Modal message </div>
<input id="modal-field-input-field" class="modal-field-input" type="text" onfocus="this.value = this.value;" autofocus ></input>
<div class="modal-footer">
<button id="modal-field-input-cancel" type="button" class="btn btn-outline pull-left" style="min-width: 80px;" data-dismiss="modal">
Cancel
</button>
<button id="modal-field-input-OK" type="button" class="btn btn-outline btn-modal-submit" style="min-width: 80px;" onclick="modalDefaultFieldInput()">
OK
</button>
</div> </div>
</div> </div>
@@ -129,4 +157,3 @@
<div id="tickerAnnouncement" class="ticker_announcement myhidden"> <div id="tickerAnnouncement" class="ticker_announcement myhidden">
<div id="ticker-message"> Announcement message </div> <div id="ticker-message"> Announcement message </div>
</div> </div>

View File

@@ -1,5 +1,3 @@
> Community translations of this file (might be out-of-date): <a href="https://github.com/jokob-sk/NetAlertX/blob/main/front/plugins/README_ES.md">Spanish(<img src="https://github.com/lipis/flag-icons/blob/main/flags/4x3/es.svg" alt="README_ES.md" style="height: 16px !important;width: 20px !important;padding-inline:3px !important;">)</a>, <a href="https://github.com/jokob-sk/NetAlertX/blob/main/front/plugins/README_DE.md">German(<img src="https://github.com/lipis/flag-icons/blob/main/flags/4x3/de.svg" alt="README_DE.md" style="height: 16px !important;width: 20px !important;padding-inline:3px !important;">)</a>
# 📚 Docs for individual plugins # 📚 Docs for individual plugins
>[!NOTE] >[!NOTE]

View File

@@ -106,7 +106,7 @@
"description": [ "description": [
{ {
"language_code": "en_us", "language_code": "en_us",
"string": "Specify when your Network-discovery scan will run. Typical setting would be <code>schedule</code> and then you specify a cron-like schedule in the <a href=\"#ARPSCAN_RUN_SCHD\"><code>ARPSCAN_RUN_SCHD</code>setting</a>. ⚠ Use the same schedule if you have multiple <i class=\"fa-solid fa-magnifying-glass-plus\"></i> Device scanners enabled." "string": "Specify when your Network-discovery scan will run. Typical setting would be <code>schedule</code> and then you specify a cron-like schedule in the <a href=\"#ARPSCAN_RUN_SCHD\"><code>ARPSCAN_RUN_SCHD</code>setting</a>. ⚠ Use the same schedule if you have multiple <i class=\"fa-solid fa-magnifying-glass-plus\"></i> Device scanners enabled. <br/><br/> Depends on the <a onclick=\"toggleAllSettings()\" href=\"#SCAN_SUBNETS\"><code>SCAN_SUBNETS</code> setting</a>."
}, },
{ {
"language_code": "es_es", "language_code": "es_es",

View File

@@ -1,15 +1,3 @@
### Community translations of this file
<a href="https://github.com/jokob-sk/NetAlertX/blob/main/front/plugins/csv_backup/README_ES.md">
<img src="https://github.com/lipis/flag-icons/blob/main/flags/4x3/es.svg" alt="README_ES.md" style="height: 20px !important;width: 20px !important;">
Spanish (Spain)
</a>
<br>
<a href="https://github.com/jokob-sk/NetAlertX/blob/main/front/plugins/csv_backup/README_DE.md">
<img src="https://github.com/lipis/flag-icons/blob/main/flags/4x3/de.svg" alt="README_DE.md" style="height: 20px !important;width: 20px !important;">
German (Germany)
</a>
## Overview ## Overview
Plugin generating CSV backups of your Devices database table, including the network mappings. Can be used for importing your setup via the Maintenance > Backup / Restore > CSV Import feature (See also: [Devices Bulk Editing](https://github.com/jokob-sk/NetAlertX/blob/main/docs/DEVICES_BULK_EDITING.md)). Plugin generating CSV backups of your Devices database table, including the network mappings. Can be used for importing your setup via the Maintenance > Backup / Restore > CSV Import feature (See also: [Devices Bulk Editing](https://github.com/jokob-sk/NetAlertX/blob/main/docs/DEVICES_BULK_EDITING.md)).

View File

@@ -82,7 +82,7 @@
"description": [ "description": [
{ {
"language_code": "en_us", "language_code": "en_us",
"string": "Specify when your Network-discovery scan will run. Typical setting would be <code>schedule</code> and then you specify a cron-like schedule in the <a href=\"#NMAPDEV_RUN_SCHD\"><code>NMAPDEV_RUN_SCHD</code>setting</a>. ⚠ Use the same schedule if you have multiple <i class=\"fa-solid fa-magnifying-glass-plus\"></i> Device scanners enabled." "string": "Specify when your Network-discovery scan will run. Typical setting would be <code>schedule</code> and then you specify a cron-like schedule in the <a href=\"#NMAPDEV_RUN_SCHD\"><code>NMAPDEV_RUN_SCHD</code>setting</a>. ⚠ Use the same schedule if you have multiple <i class=\"fa-solid fa-magnifying-glass-plus\"></i> Device scanners enabled.<br/><br/> Depends on the <a onclick=\"toggleAllSettings()\" href=\"#SCAN_SUBNETS\"><code>SCAN_SUBNETS</code> setting</a>."
}, },
{ {
"language_code": "es_es", "language_code": "es_es",
@@ -300,7 +300,7 @@
{ {
"function": "ARGS", "function": "ARGS",
"type": "text", "type": "text",
"default_value": "sudo nmap -sn ", "default_value": "sudo nmap -sn -PR -n ",
"options": [], "options": [],
"localized": [ "localized": [
"name", "name",
@@ -315,7 +315,7 @@
"description": [ "description": [
{ {
"language_code": "en_us", "language_code": "en_us",
"string": "Arguments to run nmap-scan with. Recommended and tested only with the setting: <br/> <code>sudo nmap -sn </code>." "string": "Arguments to run nmap-scan with. Recommended and tested only with the setting: <br/> <code>sudo nmap -sn -PR -n </code>. <br/><br/> Note: The plugin attaches the interface and network mask, for example <code> -e eth1 192.168.1.0/24</code> and performs a separate scan for each interface specified in the <a onclick=\"toggleAllSettings()\" href=\"#SCAN_SUBNETS\"><code>SCAN_SUBNETS</code> setting</a>."
} }
] ]
} }

View File

@@ -20,7 +20,7 @@ sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"])
from plugin_helper import Plugin_Object, Plugin_Objects, decodeBase64 from plugin_helper import Plugin_Object, Plugin_Objects, decodeBase64
from logger import mylog, append_line_to_file from logger import mylog, append_line_to_file
from helper import timeNowTZ, get_setting_value from helper import timeNowTZ, get_setting_value, extract_between_strings, extract_ip_addresses, extract_mac_addresses
from const import logPath, applicationPath, fullDbPath from const import logPath, applicationPath, fullDbPath
from database import DB from database import DB
from device import Device_obj from device import Device_obj
@@ -52,20 +52,20 @@ def main():
unique_devices = execute_scan(subnets, timeout) unique_devices = execute_scan(subnets, timeout)
mylog('verbose', [f'[{pluginName}] Unknown devices count: {len(unique_devices)}']) mylog('verbose', [f'[{pluginName}] Devices found: {len(unique_devices)}'])
for device in unique_devices: for device in unique_devices:
plugin_objects.add_object( plugin_objects.add_object(
# "MAC", "IP", "Name", "Vendor", "Interface" # "MAC", "IP", "Name", "Vendor", "Interface"
primaryId = device[0], primaryId = device['mac'].lower(),
secondaryId = device[1], secondaryId = device['ip'],
watched1 = device[2], watched1 = device['name'],
watched2 = device[3], watched2 = device['vendor'],
watched3 = device[4], watched3 = device['interface'],
watched4 = '', watched4 = '',
extra = '', extra = '',
foreignKey = device[0]) foreignKey = device['mac'])
plugin_objects.write_result_file() plugin_objects.write_result_file()
@@ -83,35 +83,41 @@ def execute_scan (subnets_list, timeout):
devices_list = [] devices_list = []
# scan each interface # scan each interface
for interface in subnets_list: for interface in subnets_list:
scan_output = execute_scan_on_interface (interface, timeout) nmap_output = execute_scan_on_interface(interface, timeout)
mylog('verbose', [f'[{pluginName}] scan_output: ', scan_output]) mylog('verbose', [f'[{pluginName}] nmap_output: ', nmap_output])
if nmap_output is not None:
nmap_output_ent = nmap_output.split('Nmap scan report for')
# loop thru entries for individual devices
for ent in nmap_output_ent:
# Regular expression patterns lines = ent.split('\n')
entry_pattern = r'Nmap scan report for (.*?) \((\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\)'
mac_pattern = r'MAC Address: ([0-9A-Fa-f:]+)'
vendor_pattern = r'\((.*?)\)'
# Compile regular expression patterns if len(lines) >= 3:
entry_regex = re.compile(entry_pattern) # lines[0] can be DESKTOP-DIHOG0E.localdomain (192.168.1.121) or 192.168.1.255
mac_regex = re.compile(mac_pattern) # lines[1] can be Host is up (0.21s latency).
vendor_regex = re.compile(vendor_pattern) # lines[2] can be MAC Address: 6C:4A:4A:7B:4A:43 (Motorola Mobility, a Lenovo Company)
# Find all matches ip_addresses = extract_ip_addresses(lines[0])
entries = entry_regex.findall(scan_output) host_name = extract_between_strings(lines[0], ' ', ' ')
mac_addresses = mac_regex.findall(scan_output) vendor = extract_between_strings(lines[2], '(', ')')
vendors = vendor_regex.findall(scan_output) mac_addresses = extract_mac_addresses(lines[2])
for i in range(len(entries)): # only include results with a MAC address and IPs as it's used as a unique ID
name, ip_address = entries[i] if len(mac_addresses) == 1 and len(ip_addresses) == 1:
devices_list.append([mac_addresses[i], ip_address, name, vendors[i], interface])
devices_list.append({'name' : host_name,
'ip' : ip_addresses[0],
'mac' : mac_addresses[0],
'vendor' : vendor,
'interface': interface})
else:
mylog('verbose', [f"[{pluginName}] Skipped (Couldn't parse MAC or IP): ", lines])
else:
mylog('verbose', [f"[{pluginName}] Skipped (Not enough info in output): ", lines])
return devices_list return devices_list
@@ -119,7 +125,7 @@ def execute_scan (subnets_list, timeout):
def execute_scan_on_interface (interface, timeout): def execute_scan_on_interface (interface, timeout):
# Prepare command arguments # Prepare command arguments
scan_args = get_setting_value('NMAPDEV_ARGS').split() + [interface.split()[0]] scan_args = get_setting_value('NMAPDEV_ARGS').split() + interface.replace('--interface=','-e ').split()
mylog('verbose', [f'[{pluginName}] scan_args: ', scan_args]) mylog('verbose', [f'[{pluginName}] scan_args: ', scan_args])

View File

@@ -54,7 +54,7 @@
}], }],
"description": [{ "description": [{
"language_code":"en_us", "language_code":"en_us",
"string" : "When the plugin should be executed. If enabled this will execute the scan until there are no <code>(unknown)</code> or <code>(name not found)</code> devices. Setting this to <code>on_new_device</code> or a daily <code>schedule</code> is recommended." "string" : "When the plugin should be executed. If enabled this will execute the scan until there are no <code>(unknown)</code> or <code>(name not found)</code> devices. Setting this to <code>on_new_device</code> or a daily <code>schedule</code> is recommended.<br/><br/> Depends on the <a onclick=\"toggleAllSettings()\" href=\"#SCAN_SUBNETS\"><code>SCAN_SUBNETS</code> setting</a>."
}] }]
}, },
{ {

View File

@@ -38,14 +38,16 @@ timeZoneSetting = configFile['TIMEZONE']
timeZone = pytz.timezone(timeZoneSetting) timeZone = pytz.timezone(timeZoneSetting)
# ------------------------------------------------------------------- # -------------------------------------------------------------------
# Sanitizes plugin output
def handleEmpty(input): def handleEmpty(input):
if input == '' or None: if not input:
return 'null' return 'null'
else: else:
# Validate and sanitize message content # Validate and sanitize message content
# Remove potentially problematic characters if string # Remove potentially problematic characters if string
if isinstance(input, str): if isinstance(input, str):
input = re.sub(r'[^\x00-\x7F]+', ' ', input) input = re.sub(r'[^\x00-\x7F]+', ' ', input)
input = input.replace('\n', '') # Removing new lines
return input return input
# ------------------------------------------------------------------- # -------------------------------------------------------------------

View File

@@ -64,7 +64,10 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
<!-- Content header--------------------------------------------------------- --> <!-- Content header--------------------------------------------------------- -->
<section class="content-header"> <section class="content-header">
<?php require 'php/templates/notification.php'; ?> <?php require 'php/templates/notification.php'; ?>
<h1 id="pageTitle">
<div class="col-sm-5">
<h1 id="pageTitle col-sm-3">
<i class="fa fa-cog"></i> <i class="fa fa-cog"></i>
<?= lang('Navigation_Settings');?> <?= lang('Navigation_Settings');?>
<a style="cursor:pointer"> <a style="cursor:pointer">
@@ -73,31 +76,40 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
</span> </span>
</a> </a>
</h1> </h1>
</div>
<div class="col-sm-2 " title="<?= lang("settings_imported");?> ">
<div class="col-sm-7 settingsImportedTimestamp" title="<?= lang("settings_imported");?> ">
<div class="settingsImported "> <div class="settingsImported ">
<?= lang("settings_imported_label");?> <?= lang("settings_imported_label");?>:
</div>
</div>
<div class="col-sm-10">
<span id="lastImportedTime"></span> <span id="lastImportedTime"></span>
</div> </div>
</div>
</section> </section>
<section class="content-header"> <section class="content-header">
<div id="settingsOverview" class ="bg-white color-palette box panel panel-default col-sm-12 box-default box-info" > <div class ="bg-white color-palette box box-solid box-primary col-sm-12 panel panel-default panel-title" >
<!-- Settings imported time --> <!-- Settings imported time -->
<div class ="settings-group col-sm-12">
<a data-toggle="collapse" href="#settingsOverview">
<div class ="settings-group col-sm-12 panel-heading panel-title">
<i class="<?= lang("settings_enabled_icon");?>"></i> <?= lang("settings_enabled");?> <i class="<?= lang("settings_enabled_icon");?>"></i> <?= lang("settings_enabled");?>
</div> </div>
</a>
<div id="settingsOverview" class="panel-collapse collapse in">
<div class="panel-body"></div>
<div class =" col-sm-12" id=""></div> <div class =" col-sm-12" id=""></div>
</div>
</section> </section>
<div class="content settingswrap " id="accordion_gen"> <div class="content settingswrap " id="accordion_gen">
<div class ="bg-grey-dark color-palette box panel panel-default col-sm-12 box-default box-info" id="core_content_header" > <div class ="bg-grey-dark color-palette box panel panel-default col-sm-12 box-default box-info" id="core_content_header" >
@@ -138,13 +150,37 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
</div> </div>
<!-- /.content --> <!-- /.content -->
<div class="row" >
<div class="row"> <section class=" padding-bottom col-sm-12">
<button type="button" class="center top-margin btn btn-primary btn-default pa-btn bg-green dbtools-button" id="save" onclick="saveSettings()"><?= lang('DevDetail_button_Save');?></button> <!-- needed so the filter & save button don't hide the settings -->
</section>
<section class=" settings-sticky-bottom-section col-sm-10">
<div class="col-sm-8 settingsSearchWrap form-group has-success bg-white color-palette ">
<div class ="col-sm-8">
<i class="fa-solid fa-filter"></i> <?= lang("Gen_Filter");?>
</div>
<div class ="col-sm-12">
<input type="text" id="settingsSearch" class="form-control input-sm col-sm-12" placeholder="Filter Settings...">
<div class="clear-filter ">
<i class="fa-solid fa-circle-xmark" onclick="$('#settingsSearch').val('');filterRows();$('#settingsSearch').focus()"></i>
</div>
</div>
</div>
<div class="col-sm-4 saveSettingsWrapper">
<button type="button" class=" btn btn-primary btn-default pa-btn bg-green" id="save" onclick="saveSettings()"><?= lang('DevDetail_button_Save');?></button>
</div> </div>
<div id="result"></div> <div id="result"></div>
</section>
</div> </div>
</div>
<!-- /.content-wrapper --> <!-- /.content-wrapper -->
@@ -234,7 +270,7 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
index++; index++;
}); });
$('#settingsOverview').append(overviewSections_html); $('#settingsOverview .panel-body').append(overviewSections_html);
// Display warning // Display warning
if(schedulesAreSynchronized(enabledDeviceScanners, pluginsData) == false) if(schedulesAreSynchronized(enabledDeviceScanners, pluginsData) == false)
@@ -441,11 +477,11 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
<input class="form-control" id="ipInterface" type="text" placeholder="eth0" /> <input class="form-control" id="ipInterface" type="text" placeholder="eth0" />
</div> </div>
<div class="col-xs-3"> <div class="col-xs-3">
<button class="btn btn-primary" onclick="addInterface();initRemoveBtnOptn('${codeName}')">Add</button> <button class="btn btn-primary" onclick="addInterface();initListInteractionOptions('${codeName}')">${getString("Gen_Add")}</button>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<select class="form-control" my-data-type="${setType}" name="${codeName}" id="${codeName}" onchange="initRemoveBtnOptn(${codeName})" multiple readonly>`; <select class="form-control" my-data-type="${setType}" name="${codeName}" id="${codeName}" onchange="initListInteractionOptions(${codeName})" multiple readonly>`;
options = createArray(val); options = createArray(val);
@@ -458,8 +494,13 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
inputHtml += `</select> inputHtml += `</select>
</div> </div>
<div class="col-xs-6"> <div class="col-xs-12">
<button class="btn btn-primary" onclick="removeInterfaces()">Remove all</button> <button class="btn btn-primary" my-input="${codeName}" onclick="removeFromList(this)">
${getString("Gen_Remove_Last")}
</button>
<button class="btn btn-primary" my-input="${codeName}" onclick="removeAllOptions(this)">
${getString("Gen_Remove_All")}
</button>
</div>`; </div>`;
} else if (setType === 'list' || setType === 'list.readonly') { } else if (setType === 'list' || setType === 'list.readonly') {
@@ -471,7 +512,7 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
<input class="form-control" type="text" id="${codeName}_input" placeholder="Enter value"/> <input class="form-control" type="text" id="${codeName}_input" placeholder="Enter value"/>
</div> </div>
<div class="col-xs-3"> <div class="col-xs-3">
<button class="btn btn-primary" my-input-from="${codeName}_input" my-input-to="${codeName}" onclick="addList(this);initRemoveBtnOptn('${codeName}')">Add</button> <button class="btn btn-primary" my-input-from="${codeName}_input" my-input-to="${codeName}" onclick="addList(this);initListInteractionOptions('${codeName}')">${getString("Gen_Add")}</button>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
@@ -485,7 +526,14 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
}); });
inputHtml += '</select></div>' + inputHtml += '</select></div>' +
`<div><button class="btn btn-primary" my-input="${codeName}" onclick="removeFromList(this)">Remove last</button></div>`; `<div>
<button class="btn btn-primary" my-input="${codeName}" onclick="removeFromList(this)">
${getString("Gen_Remove_Last")}
</button>
<button class="btn btn-primary" my-input="${codeName}" onclick="removeAllOptions(this)">
${getString("Gen_Remove_All")}
</button>
</div>`;
} else if (setType === 'json') { } else if (setType === 'json') {
inputHtml = `<textarea class="form-control input" my-data-type="${setType}" id="${codeName}" readonly>${JSON.stringify(val, null, 2)}</textarea>`; inputHtml = `<textarea class="form-control input" my-data-type="${setType}" id="${codeName}" readonly>${JSON.stringify(val, null, 2)}</textarea>`;
} }
@@ -523,7 +571,7 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
// init remove list item buttons // init remove list item buttons
if(['subnets', 'list' ].includes(setType)) if(['subnets', 'list' ].includes(setType))
{ {
initRemoveBtnOptn(codeName) initListInteractionOptions(codeName)
} }
} }
@@ -652,14 +700,6 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
} }
} }
// ---------------------------------------------------------
function removeInterfaces()
{
settingsChanged();
$('#SCAN_SUBNETS').empty();
}
// --------------------------------------------------------- // ---------------------------------------------------------
function saveSettings() { function saveSettings() {
if(<?php echo count($settings)?> != settingsNumber) if(<?php echo count($settings)?> != settingsNumber)

View File

@@ -700,6 +700,27 @@ def generate_mac_links (html, deviceUrl):
return html return html
#-------------------------------------------------------------------------------
def extract_between_strings(text, start, end):
start_index = text.find(start)
end_index = text.find(end, start_index + len(start))
if start_index != -1 and end_index != -1:
return text[start_index + len(start):end_index]
else:
return ""
#-------------------------------------------------------------------------------
def extract_mac_addresses(text):
mac_pattern = r"([0-9A-Fa-f]{2}(?:[:-][0-9A-Fa-f]{2}){5})"
mac_addresses = re.findall(mac_pattern, text)
return mac_addresses
#-------------------------------------------------------------------------------
def extract_ip_addresses(text):
ip_pattern = r"\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b"
ip_addresses = re.findall(ip_pattern, text)
return ip_addresses
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# JSON methods # JSON methods
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------