Merge branch 'develop' into ent-13146-queda-fea-eso-en-el-filtro-de-notificaciones

This commit is contained in:
Pablo Aragon 2024-03-26 13:51:16 +01:00
commit 294c7f60fa
81 changed files with 1605 additions and 431 deletions

View File

@ -1,5 +1,5 @@
package: pandorafms-agent-unix
Version: 7.0NG.776-240325
Version: 7.0NG.776-240326
Architecture: all
Priority: optional
Section: admin

View File

@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
pandora_version="7.0NG.776-240325"
pandora_version="7.0NG.776-240326"
echo "Test if you has the tools for to make the packages."
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null

View File

@ -1039,7 +1039,7 @@ my $Sem = undef;
my $ThreadSem = undef;
use constant AGENT_VERSION => '7.0NG.776';
use constant AGENT_BUILD => '240325';
use constant AGENT_BUILD => '240326';
# Agent log default file size maximum and instances
use constant DEFAULT_MAX_LOG_SIZE => 600000;

View File

@ -4,7 +4,7 @@
%global __os_install_post %{nil}
%define name pandorafms_agent_linux
%define version 7.0NG.776
%define release 240325
%define release 240326
Summary: Pandora FMS Linux agent, PERL version
Name: %{name}

View File

@ -5,7 +5,7 @@
%define name pandorafms_agent_linux_bin
%define source_name pandorafms_agent_linux
%define version 7.0NG.776
%define release 240325
%define release 240326
%define debug_package %{nil}
Summary: Pandora FMS Linux agent, binary version

View File

@ -5,7 +5,7 @@
%define name pandorafms_agent_linux_bin
%define source_name pandorafms_agent_linux
%define version 7.0NG.776
%define release 240325
%define release 240326
%define debug_package %{nil}
Summary: Pandora FMS Linux agent, binary version

View File

@ -5,7 +5,7 @@
%define name pandorafms_agent_linux_bin
%define source_name pandorafms_agent_linux
%define version 7.0NG.776
%define release 240325
%define release 240326
Summary: Pandora FMS Linux agent, binary version
Name: %{name}

View File

@ -4,7 +4,7 @@
%global __os_install_post %{nil}
%define name pandorafms_agent_linux
%define version 7.0NG.776
%define release 240325
%define release 240326
Summary: Pandora FMS Linux agent, PERL version
Name: %{name}

View File

@ -10,7 +10,7 @@
# **********************************************************************
PI_VERSION="7.0NG.776"
PI_BUILD="240325"
PI_BUILD="240326"
OS_NAME=`uname -s`
FORCE=0

View File

@ -186,7 +186,7 @@ UpgradeApplicationID
{}
Version
{240325}
{240326}
ViewReadme
{Yes}

View File

@ -30,7 +30,7 @@ using namespace Pandora;
using namespace Pandora_Strutils;
#define PATH_SIZE _MAX_PATH+1
#define PANDORA_VERSION ("7.0NG.776 Build 240325")
#define PANDORA_VERSION ("7.0NG.776 Build 240326")
string pandora_path;
string pandora_dir;

View File

@ -11,7 +11,7 @@ BEGIN
VALUE "LegalCopyright", "Pandora FMS"
VALUE "OriginalFilename", "PandoraAgent.exe"
VALUE "ProductName", "Pandora FMS Windows Agent"
VALUE "ProductVersion", "(7.0NG.776(Build 240325))"
VALUE "ProductVersion", "(7.0NG.776(Build 240326))"
VALUE "FileVersion", "1.0.0.0"
END
END

View File

@ -1,5 +1,5 @@
package: pandorafms-console
Version: 7.0NG.776-240325
Version: 7.0NG.776-240326
Architecture: all
Priority: optional
Section: admin

View File

@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
pandora_version="7.0NG.776-240325"
pandora_version="7.0NG.776-240326"
package_pear=0
package_pandora=1

View File

@ -53,7 +53,7 @@ refresh[2]="0"
source[2]="0"
source_data[2]="{\"tagente\":{\"nombre\":\"freebsd-1\"}}"
options[2]=""
style[2]="{\"shape\":\"circle\",\"image\":\"images/networkmap/freebsd@os.svg\",\"width\":null,\"height\":null,\"label\":\"freebsd-1\"}"
style[2]="{\"shape\":\"circle\",\"image\":\"images\/networkmap\/freebsd@os.svg\",\"width\":null,\"height\":null,\"label\":\"freebsd-1\"}"
id[3]="3"
id_map[3]="2"
@ -66,7 +66,7 @@ refresh[3]="0"
source[3]="0"
source_data[3]="{\"tagente\":{\"nombre\":\"macos-1\"}}"
options[3]=""
style[3]="{\"shape\":\"circle\",\"image\":\"images/networkmap/apple@os.svg\",\"width\":null,\"height\":null,\"label\":\"macos-1\"}"
style[3]="{\"shape\":\"circle\",\"image\":\"images\/networkmap\/apple@os.svg\",\"width\":null,\"height\":null,\"label\":\"macos-1\"}"
id[4]="4"
id_map[4]="2"
@ -79,7 +79,7 @@ refresh[4]="0"
source[4]="0"
source_data[4]="{\"tagente\":{\"nombre\":\"windows-1\"}}"
options[4]=""
style[4]="{\"shape\":\"circle\",\"image\":\"images/networkmap/windows@os.svg\",\"width\":null,\"height\":null,\"label\":\"windows-1\"}"
style[4]="{\"shape\":\"circle\",\"image\":\"images\/networkmap\/windows@os.svg\",\"width\":null,\"height\":null,\"label\":\"windows-1\"}"
id[5]="5"
id_map[5]="2"
@ -92,7 +92,7 @@ refresh[5]="0"
source[5]="0"
source_data[5]="{\"tagente\":{\"nombre\":\"windows-2\"}}"
options[5]=""
style[5]="{\"shape\":\"circle\",\"image\":\"images/networkmap/windows@os.svg\",\"width\":null,\"height\":null,\"label\":\"windows-2\"}"
style[5]="{\"shape\":\"circle\",\"image\":\"images\/networkmap\/windows@os.svg\",\"width\":null,\"height\":null,\"label\":\"windows-2\"}"
id[6]="6"
id_map[6]="2"
@ -105,7 +105,7 @@ refresh[6]="0"
source[6]="0"
source_data[6]="{\"tagente\":{\"nombre\":\"linux-1\"}}"
options[6]=""
style[6]="{\"shape\":\"circle\",\"image\":\"images/networkmap/linux@os.svg\",\"width\":null,\"height\":null,\"label\":\"linux-1\"}"
style[6]="{\"shape\":\"circle\",\"image\":\"images\/networkmap\/linux@os.svg\",\"width\":null,\"height\":null,\"label\":\"linux-1\"}"
id[7]="7"
id_map[7]="2"
@ -118,7 +118,7 @@ refresh[7]="0"
source[7]="0"
source_data[7]="{\"tagente\":{\"nombre\":\"linux-2\"}}"
options[7]=""
style[7]="{\"shape\":\"circle\",\"image\":\"images/networkmap/linux@os.svg\",\"width\":null,\"height\":null,\"label\":\"linux-2\"}"
style[7]="{\"shape\":\"circle\",\"image\":\"images\/networkmap\/linux@os.svg\",\"width\":null,\"height\":null,\"label\":\"linux-2\"}"
id[8]="8"
id_map[8]="2"
@ -131,7 +131,7 @@ refresh[8]="0"
source[8]="0"
source_data[8]="{\"tagente\":{\"nombre\":\"linux-3\"}}"
options[8]=""
style[8]="{\"shape\":\"circle\",\"image\":\"images/networkmap/linux@os.svg\",\"width\":null,\"height\":null,\"label\":\"linux-3\"}"
style[8]="{\"shape\":\"circle\",\"image\":\"images\/networkmap\/linux@os.svg\",\"width\":null,\"height\":null,\"label\":\"linux-3\"}"
id[9]="9"
id_map[9]="2"
@ -144,7 +144,7 @@ refresh[9]="0"
source[9]="0"
source_data[9]="{\"tagente\":{\"nombre\":\"linux-4\"}}"
options[9]=""
style[9]="{\"shape\":\"circle\",\"image\":\"images/networkmap/linux@os.svg\",\"width\":null,\"height\":null,\"label\":\"linux-4\"}"
style[9]="{\"shape\":\"circle\",\"image\":\"images\/networkmap\/linux@os.svg\",\"width\":null,\"height\":null,\"label\":\"linux-4\"}"
id[10]="10"
id_map[10]="2"
@ -157,7 +157,7 @@ refresh[10]="0"
source[10]="0"
source_data[10]="{\"tagente\":{\"nombre\":\"cisco-2\"}}"
options[10]=""
style[10]="{\"shape\":\"circle\",\"image\":\"images/networkmap/cisco@os.svg\",\"width\":null,\"height\":null,\"label\":\"cisco-2\"}"
style[10]="{\"shape\":\"circle\",\"image\":\"images\/networkmap\/cisco@os.svg\",\"width\":null,\"height\":null,\"label\":\"cisco-2\"}"
id[11]="11"
id_map[11]="2"
@ -170,7 +170,7 @@ refresh[11]="0"
source[11]="0"
source_data[11]="{\"tagente\":{\"nombre\":\"freebsd-2\"}}"
options[11]=""
style[11]="{\"shape\":\"circle\",\"image\":\"images/networkmap/freebsd@os.svg\",\"width\":null,\"height\":null,\"label\":\"freebsd-2\"}"
style[11]="{\"shape\":\"circle\",\"image\":\"images\/networkmap\/freebsd@os.svg\",\"width\":null,\"height\":null,\"label\":\"freebsd-2\"}"
id[12]="12"
id_map[12]="2"
@ -183,7 +183,7 @@ refresh[12]="0"
source[12]="0"
source_data[12]="{\"tagente\":{\"nombre\":\"macos-2\"}}"
options[12]=""
style[12]="{\"shape\":\"circle\",\"image\":\"images/networkmap/apple@os.svg\",\"width\":null,\"height\":null,\"label\":\"macos-2\"}"
style[12]="{\"shape\":\"circle\",\"image\":\"images\/networkmap\/apple@os.svg\",\"width\":null,\"height\":null,\"label\":\"macos-2\"}"
id[13]="13"
id_map[13]="2"
@ -196,7 +196,7 @@ refresh[13]="0"
source[13]="0"
source_data[13]="{\"tagente\":{\"nombre\":\"windows-3\"}}"
options[13]=""
style[13]="{\"shape\":\"circle\",\"image\":\"images/networkmap/windows@os.svg\",\"width\":null,\"height\":null,\"label\":\"windows-3\"}"
style[13]="{\"shape\":\"circle\",\"image\":\"images\/networkmap\/windows@os.svg\",\"width\":null,\"height\":null,\"label\":\"windows-3\"}"
id[14]="14"
id_map[14]="2"
@ -209,7 +209,7 @@ refresh[14]="0"
source[14]="0"
source_data[14]="{\"tagente\":{\"nombre\":\"windows-4\"}}"
options[14]=""
style[14]="{\"shape\":\"circle\",\"image\":\"images/networkmap/windows@os.svg\",\"width\":null,\"height\":null,\"label\":\"windows-4\"}"
style[14]="{\"shape\":\"circle\",\"image\":\"images\/networkmap\/windows@os.svg\",\"width\":null,\"height\":null,\"label\":\"windows-4\"}"
id[15]="15"
id_map[15]="2"
@ -222,7 +222,7 @@ refresh[15]="0"
source[15]="0"
source_data[15]="{\"tagente\":{\"nombre\":\"linux-5\"}}"
options[15]=""
style[15]="{\"shape\":\"circle\",\"image\":\"images/networkmap/linux@os.svg\",\"width\":null,\"height\":null,\"label\":\"linux-5\"}"
style[15]="{\"shape\":\"circle\",\"image\":\"images\/networkmap\/linux@os.svg\",\"width\":null,\"height\":null,\"label\":\"linux-5\"}"
id[16]="16"
id_map[16]="2"
@ -235,7 +235,7 @@ refresh[16]="0"
source[16]="0"
source_data[16]="{\"tagente\":{\"nombre\":\"linux-6\"}}"
options[16]=""
style[16]="{\"shape\":\"circle\",\"image\":\"images/networkmap/linux@os.svg\",\"width\":null,\"height\":null,\"label\":\"linux-6\"}"
style[16]="{\"shape\":\"circle\",\"image\":\"images\/networkmap\/linux@os.svg\",\"width\":null,\"height\":null,\"label\":\"linux-6\"}"
id[17]="17"
id_map[17]="2"
@ -248,7 +248,7 @@ refresh[17]="0"
source[17]="0"
source_data[17]="{\"tagente\":{\"nombre\":\"linux-7\"}}"
options[17]=""
style[17]="{\"shape\":\"circle\",\"image\":\"images/networkmap/linux@os.svg\",\"width\":null,\"height\":null,\"label\":\"linux-7\"}"
style[17]="{\"shape\":\"circle\",\"image\":\"images\/networkmap\/linux@os.svg\",\"width\":null,\"height\":null,\"label\":\"linux-7\"}"
id[18]="18"
id_map[18]="2"
@ -261,7 +261,7 @@ refresh[18]="0"
source[18]="0"
source_data[18]="{\"tagente\":{\"nombre\":\"linux-8\"}}"
options[18]=""
style[18]="{\"shape\":\"circle\",\"image\":\"images/networkmap/linux@os.svg\",\"width\":null,\"height\":null,\"label\":\"linux-8\"}"
style[18]="{\"shape\":\"circle\",\"image\":\"images\/networkmap\/linux@os.svg\",\"width\":null,\"height\":null,\"label\":\"linux-8\"}"
id[19]="19"
id_map[19]="2"
@ -274,7 +274,7 @@ refresh[19]="0"
source[19]="0"
source_data[19]="{\"tagente\":{\"nombre\":\"cisco-3\"}}"
options[19]=""
style[19]="{\"shape\":\"circle\",\"image\":\"images/networkmap/cisco@os.svg\",\"width\":null,\"height\":null,\"label\":\"cisco-3\"}"
style[19]="{\"shape\":\"circle\",\"image\":\"images\/networkmap\/cisco@os.svg\",\"width\":null,\"height\":null,\"label\":\"cisco-3\"}"
id[20]="20"
id_map[20]="2"
@ -287,7 +287,7 @@ refresh[20]="0"
source[20]="0"
source_data[20]="{\"tagente\":{\"nombre\":\"freebsd-3\"}}"
options[20]=""
style[20]="{\"shape\":\"circle\",\"image\":\"images/networkmap/freebsd@os.svg\",\"width\":null,\"height\":null,\"label\":\"freebsd-3\"}"
style[20]="{\"shape\":\"circle\",\"image\":\"images\/networkmap\/freebsd@os.svg\",\"width\":null,\"height\":null,\"label\":\"freebsd-3\"}"
id[21]="21"
id_map[21]="2"
@ -300,7 +300,7 @@ refresh[21]="0"
source[21]="0"
source_data[21]="{\"tagente\":{\"nombre\":\"macos-3\"}}"
options[21]=""
style[21]="{\"shape\":\"circle\",\"image\":\"images/networkmap/apple@os.svg\",\"width\":null,\"height\":null,\"label\":\"macos-3\"}"
style[21]="{\"shape\":\"circle\",\"image\":\"images\/networkmap\/apple@os.svg\",\"width\":null,\"height\":null,\"label\":\"macos-3\"}"
id[22]="22"
id_map[22]="2"
@ -313,7 +313,7 @@ refresh[22]="0"
source[22]="0"
source_data[22]="{\"tagente\":{\"nombre\":\"windows-5\"}}"
options[22]=""
style[22]="{\"shape\":\"circle\",\"image\":\"images/networkmap/windows@os.svg\",\"width\":null,\"height\":null,\"label\":\"windows-5\"}"
style[22]="{\"shape\":\"circle\",\"image\":\"images\/networkmap\/windows@os.svg\",\"width\":null,\"height\":null,\"label\":\"windows-5\"}"
id[23]="23"
id_map[23]="2"
@ -326,7 +326,7 @@ refresh[23]="0"
source[23]="0"
source_data[23]="{\"tagente\":{\"nombre\":\"windows-6\"}}"
options[23]=""
style[23]="{\"shape\":\"circle\",\"image\":\"images/networkmap/windows@os.svg\",\"width\":null,\"height\":null,\"label\":\"windows-6\"}"
style[23]="{\"shape\":\"circle\",\"image\":\"images\/networkmap\/windows@os.svg\",\"width\":null,\"height\":null,\"label\":\"windows-6\"}"
id[24]="24"
id_map[24]="2"
@ -339,7 +339,7 @@ refresh[24]="0"
source[24]="0"
source_data[24]="{\"tagente\":{\"nombre\":\"linux-9\"}}"
options[24]=""
style[24]="{\"shape\":\"circle\",\"image\":\"images/networkmap/linux@os.svg\",\"width\":null,\"height\":null,\"label\":\"linux-9\"}"
style[24]="{\"shape\":\"circle\",\"image\":\"images\/networkmap\/linux@os.svg\",\"width\":null,\"height\":null,\"label\":\"linux-9\"}"
id[25]="25"
id_map[25]="2"
@ -352,7 +352,7 @@ refresh[25]="0"
source[25]="0"
source_data[25]="{\"tagente\":{\"nombre\":\"linux-10\"}}"
options[25]=""
style[25]="{\"shape\":\"circle\",\"image\":\"images/networkmap/linux@os.svg\",\"width\":null,\"height\":null,\"label\":\"linux-10\"}"
style[25]="{\"shape\":\"circle\",\"image\":\"images\/networkmap\/linux@os.svg\",\"width\":null,\"height\":null,\"label\":\"linux-10\"}"
id[26]="26"
id_map[26]="2"
@ -365,7 +365,7 @@ refresh[26]="0"
source[26]="0"
source_data[26]="{\"tagente\":{\"nombre\":\"linux-11\"}}"
options[26]=""
style[26]="{\"shape\":\"circle\",\"image\":\"images/networkmap/linux@os.svg\",\"width\":null,\"height\":null,\"label\":\"linux-11\"}"
style[26]="{\"shape\":\"circle\",\"image\":\"images\/networkmap\/linux@os.svg\",\"width\":null,\"height\":null,\"label\":\"linux-11\"}"
id[27]="27"
id_map[27]="2"
@ -378,13 +378,13 @@ refresh[27]="0"
source[27]="0"
source_data[27]="{\"tagente\":{\"nombre\":\"linux-12\"}}"
options[27]=""
style[27]="{\"shape\":\"circle\",\"image\":\"images/networkmap/linux@os.svg\",\"width\":null,\"height\":null,\"label\":\"linux-12\"}"
style[27]="{\"shape\":\"circle\",\"image\":\"images\/networkmap\/linux@os.svg\",\"width\":null,\"height\":null,\"label\":\"linux-12\"}"
[trel_item]
id[1]="1"
id_parent[1]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"12\",\"x\":\"854\",\"y\":\"221\",\"z\":\"0\"}}"
id_child[1]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"11\",\"x\":\"1184\",\"y\":\"-25\",\"z\":\"0\"}}"
id_parent[1]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"cisco-1\"}},\"x\":\"854\",\"y\":\"221\",\"z\":\"0\"}}"
id_child[1]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"freebsd-1\"}},\"x\":\"1184\",\"y\":\"-25\",\"z\":\"0\"}}"
id_map[1]="2"
id_parent_source_data[1]="{\"tagente\":{\"nombre\":\"cisco-1\"}}"
id_child_source_data[1]="{\"tagente\":{\"nombre\":\"freebsd-1\"}}"
@ -394,8 +394,8 @@ id_item[1]="0"
deleted[1]="0"
id[2]="2"
id_parent[2]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"12\",\"x\":\"854\",\"y\":\"221\",\"z\":\"0\"}}"
id_child[2]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"10\",\"x\":\"1268\",\"y\":\"235\",\"z\":\"0\"}}"
id_parent[2]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"cisco-1\"}},\"x\":\"854\",\"y\":\"221\",\"z\":\"0\"}}"
id_child[2]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"macos-1\"}},\"x\":\"1268\",\"y\":\"235\",\"z\":\"0\"}}"
id_map[2]="2"
id_parent_source_data[2]="{\"tagente\":{\"nombre\":\"cisco-1\"}}"
id_child_source_data[2]="{\"tagente\":{\"nombre\":\"macos-1\"}}"
@ -405,8 +405,8 @@ id_item[2]="0"
deleted[2]="0"
id[3]="3"
id_parent[3]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"12\",\"x\":\"854\",\"y\":\"221\",\"z\":\"0\"}}"
id_child[3]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"8\",\"x\":\"528\",\"y\":\"-37\",\"z\":\"0\"}}"
id_parent[3]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"cisco-1\"}},\"x\":\"854\",\"y\":\"221\",\"z\":\"0\"}}"
id_child[3]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"windows-1\"}},\"x\":\"528\",\"y\":\"-37\",\"z\":\"0\"}}"
id_map[3]="2"
id_parent_source_data[3]="{\"tagente\":{\"nombre\":\"cisco-1\"}}"
id_child_source_data[3]="{\"tagente\":{\"nombre\":\"windows-1\"}}"
@ -416,8 +416,8 @@ id_item[3]="0"
deleted[3]="0"
id[4]="4"
id_parent[4]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"12\",\"x\":\"854\",\"y\":\"221\",\"z\":\"0\"}}"
id_child[4]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"9\",\"x\":\"514\",\"y\":\"389\",\"z\":\"0\"}}"
id_parent[4]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"cisco-1\"}},\"x\":\"854\",\"y\":\"221\",\"z\":\"0\"}}"
id_child[4]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"windows-2\"}},\"x\":\"514\",\"y\":\"389\",\"z\":\"0\"}}"
id_map[4]="2"
id_parent_source_data[4]="{\"tagente\":{\"nombre\":\"cisco-1\"}}"
id_child_source_data[4]="{\"tagente\":{\"nombre\":\"windows-2\"}}"
@ -427,8 +427,8 @@ id_item[4]="0"
deleted[4]="0"
id[5]="5"
id_parent[5]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"8\",\"x\":\"528\",\"y\":\"-37\",\"z\":\"0\"}}"
id_child[5]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"4\",\"x\":\"342\",\"y\":\"-273\",\"z\":\"0\"}}"
id_parent[5]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"windows-1\"}},\"x\":\"528\",\"y\":\"-37\",\"z\":\"0\"}}"
id_child[5]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"linux-1\"}},\"x\":\"342\",\"y\":\"-273\",\"z\":\"0\"}}"
id_map[5]="2"
id_parent_source_data[5]="{\"tagente\":{\"nombre\":\"windows-1\"}}"
id_child_source_data[5]="{\"tagente\":{\"nombre\":\"linux-1\"}}"
@ -438,8 +438,8 @@ id_item[5]="0"
deleted[5]="0"
id[6]="6"
id_parent[6]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"8\",\"x\":\"528\",\"y\":\"-37\",\"z\":\"0\"}}"
id_child[6]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"5\",\"x\":\"240\",\"y\":\"-7\",\"z\":\"0\"}}"
id_parent[6]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"windows-1\"}},\"x\":\"528\",\"y\":\"-37\",\"z\":\"0\"}}"
id_child[6]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"linux-2\"}},\"x\":\"240\",\"y\":\"-7\",\"z\":\"0\"}}"
id_map[6]="2"
id_parent_source_data[6]="{\"tagente\":{\"nombre\":\"windows-1\"}}"
id_child_source_data[6]="{\"tagente\":{\"nombre\":\"linux-2\"}}"
@ -449,8 +449,8 @@ id_item[6]="0"
deleted[6]="0"
id[7]="7"
id_parent[7]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"9\",\"x\":\"514\",\"y\":\"389\",\"z\":\"0\"}}"
id_child[7]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"6\",\"x\":\"214\",\"y\":\"275\",\"z\":\"0\"}}"
id_parent[7]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"windows-2\"}},\"x\":\"514\",\"y\":\"389\",\"z\":\"0\"}}"
id_child[7]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"linux-3\"}},\"x\":\"214\",\"y\":\"275\",\"z\":\"0\"}}"
id_map[7]="2"
id_parent_source_data[7]="{\"tagente\":{\"nombre\":\"windows-2\"}}"
id_child_source_data[7]="{\"tagente\":{\"nombre\":\"linux-3\"}}"
@ -460,8 +460,8 @@ id_item[7]="0"
deleted[7]="0"
id[8]="8"
id_parent[8]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"9\",\"x\":\"514\",\"y\":\"389\",\"z\":\"0\"}}"
id_child[8]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"7\",\"x\":\"226\",\"y\":\"595\",\"z\":\"0\"}}"
id_parent[8]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"windows-2\"}},\"x\":\"514\",\"y\":\"389\",\"z\":\"0\"}}"
id_child[8]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"linux-4\"}},\"x\":\"226\",\"y\":\"595\",\"z\":\"0\"}}"
id_map[8]="2"
id_parent_source_data[8]="{\"tagente\":{\"nombre\":\"windows-2\"}}"
id_child_source_data[8]="{\"tagente\":{\"nombre\":\"linux-4\"}}"
@ -471,8 +471,8 @@ id_item[8]="0"
deleted[8]="0"
id[9]="9"
id_parent[9]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"12\",\"x\":\"854\",\"y\":\"221\",\"z\":\"0\"}}"
id_child[9]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"22\",\"x\":\"1036\",\"y\":\"711\",\"z\":\"0\"}}"
id_parent[9]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"cisco-1\"}},\"x\":\"854\",\"y\":\"221\",\"z\":\"0\"}}"
id_child[9]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"cisco-2\"}},\"x\":\"1036\",\"y\":\"711\",\"z\":\"0\"}}"
id_map[9]="2"
id_parent_source_data[9]="{\"tagente\":{\"nombre\":\"cisco-1\"}}"
id_child_source_data[9]="{\"tagente\":{\"nombre\":\"cisco-2\"}}"
@ -482,8 +482,8 @@ id_item[9]="0"
deleted[9]="0"
id[10]="10"
id_parent[10]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"12\",\"x\":\"854\",\"y\":\"221\",\"z\":\"0\"}}"
id_child[10]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"21\",\"x\":\"892\",\"y\":\"-47\",\"z\":\"0\"}}"
id_parent[10]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"cisco-1\"}},\"x\":\"854\",\"y\":\"221\",\"z\":\"0\"}}"
id_child[10]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"freebsd-2\"}},\"x\":\"892\",\"y\":\"-47\",\"z\":\"0\"}}"
id_map[10]="2"
id_parent_source_data[10]="{\"tagente\":{\"nombre\":\"cisco-1\"}}"
id_child_source_data[10]="{\"tagente\":{\"nombre\":\"freebsd-2\"}}"
@ -493,8 +493,8 @@ id_item[10]="0"
deleted[10]="0"
id[11]="11"
id_parent[11]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"12\",\"x\":\"854\",\"y\":\"221\",\"z\":\"0\"}}"
id_child[11]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"20\",\"x\":\"1150\",\"y\":\"409\",\"z\":\"0\"}}"
id_parent[11]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"cisco-1\"}},\"x\":\"854\",\"y\":\"221\",\"z\":\"0\"}}"
id_child[11]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"macos-2\"}},\"x\":\"1150\",\"y\":\"409\",\"z\":\"0\"}}"
id_map[11]="2"
id_parent_source_data[11]="{\"tagente\":{\"nombre\":\"cisco-1\"}}"
id_child_source_data[11]="{\"tagente\":{\"nombre\":\"macos-2\"}}"
@ -504,8 +504,8 @@ id_item[11]="0"
deleted[11]="0"
id[12]="12"
id_parent[12]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"22\",\"x\":\"1036\",\"y\":\"711\",\"z\":\"0\"}}"
id_child[12]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"18\",\"x\":\"686\",\"y\":\"875\",\"z\":\"0\"}}"
id_parent[12]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"cisco-2\"}},\"x\":\"1036\",\"y\":\"711\",\"z\":\"0\"}}"
id_child[12]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"windows-3\"}},\"x\":\"686\",\"y\":\"875\",\"z\":\"0\"}}"
id_map[12]="2"
id_parent_source_data[12]="{\"tagente\":{\"nombre\":\"cisco-2\"}}"
id_child_source_data[12]="{\"tagente\":{\"nombre\":\"windows-3\"}}"
@ -515,8 +515,8 @@ id_item[12]="0"
deleted[12]="0"
id[13]="13"
id_parent[13]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"22\",\"x\":\"1036\",\"y\":\"711\",\"z\":\"0\"}}"
id_child[13]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"19\",\"x\":\"1452\",\"y\":\"847\",\"z\":\"0\"}}"
id_parent[13]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"cisco-2\"}},\"x\":\"1036\",\"y\":\"711\",\"z\":\"0\"}}"
id_child[13]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"windows-4\"}},\"x\":\"1452\",\"y\":\"847\",\"z\":\"0\"}}"
id_map[13]="2"
id_parent_source_data[13]="{\"tagente\":{\"nombre\":\"cisco-2\"}}"
id_child_source_data[13]="{\"tagente\":{\"nombre\":\"windows-4\"}}"
@ -526,8 +526,8 @@ id_item[13]="0"
deleted[13]="0"
id[14]="14"
id_parent[14]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"18\",\"x\":\"686\",\"y\":\"875\",\"z\":\"0\"}}"
id_child[14]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"14\",\"x\":\"314\",\"y\":\"845\",\"z\":\"0\"}}"
id_parent[14]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"windows-3\"}},\"x\":\"686\",\"y\":\"875\",\"z\":\"0\"}}"
id_child[14]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"linux-5\"}},\"x\":\"314\",\"y\":\"845\",\"z\":\"0\"}}"
id_map[14]="2"
id_parent_source_data[14]="{\"tagente\":{\"nombre\":\"windows-3\"}}"
id_child_source_data[14]="{\"tagente\":{\"nombre\":\"linux-5\"}}"
@ -537,8 +537,8 @@ id_item[14]="0"
deleted[14]="0"
id[15]="15"
id_parent[15]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"18\",\"x\":\"686\",\"y\":\"875\",\"z\":\"0\"}}"
id_child[15]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"15\",\"x\":\"474\",\"y\":\"1043\",\"z\":\"0\"}}"
id_parent[15]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"windows-3\"}},\"x\":\"686\",\"y\":\"875\",\"z\":\"0\"}}"
id_child[15]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"linux-6\"}},\"x\":\"474\",\"y\":\"1043\",\"z\":\"0\"}}"
id_map[15]="2"
id_parent_source_data[15]="{\"tagente\":{\"nombre\":\"windows-3\"}}"
id_child_source_data[15]="{\"tagente\":{\"nombre\":\"linux-6\"}}"
@ -548,8 +548,8 @@ id_item[15]="0"
deleted[15]="0"
id[16]="16"
id_parent[16]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"19\",\"x\":\"1452\",\"y\":\"847\",\"z\":\"0\"}}"
id_child[16]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"16\",\"x\":\"1812\",\"y\":\"1011\",\"z\":\"0\"}}"
id_parent[16]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"windows-4\"}},\"x\":\"1452\",\"y\":\"847\",\"z\":\"0\"}}"
id_child[16]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"linux-7\"}},\"x\":\"1812\",\"y\":\"1011\",\"z\":\"0\"}}"
id_map[16]="2"
id_parent_source_data[16]="{\"tagente\":{\"nombre\":\"windows-4\"}}"
id_child_source_data[16]="{\"tagente\":{\"nombre\":\"linux-7\"}}"
@ -559,8 +559,8 @@ id_item[16]="0"
deleted[16]="0"
id[17]="17"
id_parent[17]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"19\",\"x\":\"1452\",\"y\":\"847\",\"z\":\"0\"}}"
id_child[17]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"17\",\"x\":\"1828\",\"y\":\"723\",\"z\":\"0\"}}"
id_parent[17]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"windows-4\"}},\"x\":\"1452\",\"y\":\"847\",\"z\":\"0\"}}"
id_child[17]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"linux-8\"}},\"x\":\"1828\",\"y\":\"723\",\"z\":\"0\"}}"
id_map[17]="2"
id_parent_source_data[17]="{\"tagente\":{\"nombre\":\"windows-4\"}}"
id_child_source_data[17]="{\"tagente\":{\"nombre\":\"linux-8\"}}"
@ -570,8 +570,8 @@ id_item[17]="0"
deleted[17]="0"
id[18]="18"
id_parent[18]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"10\",\"x\":\"1268\",\"y\":\"235\",\"z\":\"0\"}}"
id_child[18]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"32\",\"x\":\"1824\",\"y\":\"285\",\"z\":\"0\"}}"
id_parent[18]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"macos-1\"}},\"x\":\"1268\",\"y\":\"235\",\"z\":\"0\"}}"
id_child[18]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"cisco-3\"}},\"x\":\"1824\",\"y\":\"285\",\"z\":\"0\"}}"
id_map[18]="2"
id_parent_source_data[18]="{\"tagente\":{\"nombre\":\"macos-1\"}}"
id_child_source_data[18]="{\"tagente\":{\"nombre\":\"cisco-3\"}}"
@ -581,8 +581,8 @@ id_item[18]="0"
deleted[18]="0"
id[19]="19"
id_parent[19]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"7\",\"x\":\"226\",\"y\":\"595\",\"z\":\"0\"}}"
id_child[19]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"31\",\"x\":\"-82\",\"y\":\"583\",\"z\":\"0\"}}"
id_parent[19]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"linux-4\"}},\"x\":\"226\",\"y\":\"595\",\"z\":\"0\"}}"
id_child[19]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"freebsd-3\"}},\"x\":\"-82\",\"y\":\"583\",\"z\":\"0\"}}"
id_map[19]="2"
id_parent_source_data[19]="{\"tagente\":{\"nombre\":\"linux-4\"}}"
id_child_source_data[19]="{\"tagente\":{\"nombre\":\"freebsd-3\"}}"
@ -592,8 +592,8 @@ id_item[19]="0"
deleted[19]="0"
id[20]="20"
id_parent[20]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"31\",\"x\":\"-82\",\"y\":\"583\",\"z\":\"0\"}}"
id_child[20]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"30\",\"x\":\"-140\",\"y\":\"299\",\"z\":\"0\"}}"
id_parent[20]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"freebsd-3\"}},\"x\":\"-82\",\"y\":\"583\",\"z\":\"0\"}}"
id_child[20]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"macos-3\"}},\"x\":\"-140\",\"y\":\"299\",\"z\":\"0\"}}"
id_map[20]="2"
id_parent_source_data[20]="{\"tagente\":{\"nombre\":\"freebsd-3\"}}"
id_child_source_data[20]="{\"tagente\":{\"nombre\":\"macos-3\"}}"
@ -603,8 +603,8 @@ id_item[20]="0"
deleted[20]="0"
id[21]="21"
id_parent[21]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"31\",\"x\":\"-82\",\"y\":\"583\",\"z\":\"0\"}}"
id_child[21]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"28\",\"x\":\"-390\",\"y\":\"385\",\"z\":\"0\"}}"
id_parent[21]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"freebsd-3\"}},\"x\":\"-82\",\"y\":\"583\",\"z\":\"0\"}}"
id_child[21]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"windows-5\"}},\"x\":\"-390\",\"y\":\"385\",\"z\":\"0\"}}"
id_map[21]="2"
id_parent_source_data[21]="{\"tagente\":{\"nombre\":\"freebsd-3\"}}"
id_child_source_data[21]="{\"tagente\":{\"nombre\":\"windows-5\"}}"
@ -614,8 +614,8 @@ id_item[21]="0"
deleted[21]="0"
id[22]="22"
id_parent[22]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"31\",\"x\":\"-82\",\"y\":\"583\",\"z\":\"0\"}}"
id_child[22]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"29\",\"x\":\"-470\",\"y\":\"671\",\"z\":\"0\"}}"
id_parent[22]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"freebsd-3\"}},\"x\":\"-82\",\"y\":\"583\",\"z\":\"0\"}}"
id_child[22]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"windows-6\"}},\"x\":\"-470\",\"y\":\"671\",\"z\":\"0\"}}"
id_map[22]="2"
id_parent_source_data[22]="{\"tagente\":{\"nombre\":\"freebsd-3\"}}"
id_child_source_data[22]="{\"tagente\":{\"nombre\":\"windows-6\"}}"
@ -625,8 +625,8 @@ id_item[22]="0"
deleted[22]="0"
id[23]="23"
id_parent[23]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"31\",\"x\":\"-82\",\"y\":\"583\",\"z\":\"0\"}}"
id_child[23]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"24\",\"x\":\"-296\",\"y\":\"899\",\"z\":\"0\"}}"
id_parent[23]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"freebsd-3\"}},\"x\":\"-82\",\"y\":\"583\",\"z\":\"0\"}}"
id_child[23]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"linux-9\"}},\"x\":\"-296\",\"y\":\"899\",\"z\":\"0\"}}"
id_map[23]="2"
id_parent_source_data[23]="{\"tagente\":{\"nombre\":\"freebsd-3\"}}"
id_child_source_data[23]="{\"tagente\":{\"nombre\":\"linux-9\"}}"
@ -636,8 +636,8 @@ id_item[23]="0"
deleted[23]="0"
id[24]="24"
id_parent[24]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"31\",\"x\":\"-82\",\"y\":\"583\",\"z\":\"0\"}}"
id_child[24]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"25\",\"x\":\"-25\",\"y\":\"961\",\"z\":\"0\"}}"
id_parent[24]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"freebsd-3\"}},\"x\":\"-82\",\"y\":\"583\",\"z\":\"0\"}}"
id_child[24]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"linux-10\"}},\"x\":\"-25\",\"y\":\"961\",\"z\":\"0\"}}"
id_map[24]="2"
id_parent_source_data[24]="{\"tagente\":{\"nombre\":\"freebsd-3\"}}"
id_child_source_data[24]="{\"tagente\":{\"nombre\":\"linux-10\"}}"
@ -647,8 +647,8 @@ id_item[24]="0"
deleted[24]="0"
id[25]="25"
id_parent[25]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"32\",\"x\":\"1824\",\"y\":\"285\",\"z\":\"0\"}}"
id_child[25]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"26\",\"x\":\"1683\",\"y\":\"13\",\"z\":\"0\"}}"
id_parent[25]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"cisco-3\"}},\"x\":\"1824\",\"y\":\"285\",\"z\":\"0\"}}"
id_child[25]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"linux-11\"}},\"x\":\"1683\",\"y\":\"13\",\"z\":\"0\"}}"
id_map[25]="2"
id_parent_source_data[25]="{\"tagente\":{\"nombre\":\"cisco-3\"}}"
id_child_source_data[25]="{\"tagente\":{\"nombre\":\"linux-11\"}}"
@ -658,8 +658,8 @@ id_item[25]="0"
deleted[25]="0"
id[26]="26"
id_parent[26]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"32\",\"x\":\"1824\",\"y\":\"285\",\"z\":\"0\"}}"
id_child[26]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":\"27\",\"x\":\"2135\",\"y\":\"51\",\"z\":\"0\"}}"
id_parent[26]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"cisco-3\"}},\"x\":\"1824\",\"y\":\"285\",\"z\":\"0\"}}"
id_child[26]="{\"titem\":{\"id_map\":\"2\",\"type\":\"0\",\"source_data\":{\"tagente\":{\"nombre\":\"linux-12\"}},\"x\":\"2135\",\"y\":\"51\",\"z\":\"0\"}}"
id_map[26]="2"
id_parent_source_data[26]="{\"tagente\":{\"nombre\":\"cisco-3\"}}"
id_child_source_data[26]="{\"tagente\":{\"nombre\":\"linux-12\"}}"

View File

@ -2,6 +2,9 @@ START TRANSACTION;
DROP TABLE tskin;
ALTER TABLE `tusuario`
ADD COLUMN `stop_lts_modal` TINYINT NOT NULL DEFAULT 0 AFTER `session_max_time_expire`;
-- START MIGRATION MSSQL --
SET @current_app_type = 12;
SET @short_name = 'pandorafms.mssql';
@ -7673,4 +7676,35 @@ UPDATE `trecon_task`
-- END MIGRATION SAP DESET --
UPDATE `twelcome_tip` SET url = 'https://pandorafms.com/manual/!current/es/documentation/03_monitoring/06_web_monitoring' WHERE title = '¿Sabías que puedes monitorizar webs?';
UPDATE `twelcome_tip` SET url = 'https://pandorafms.com/manual/!current/es/documentation/03_monitoring/03_remote_monitoring#monitorizacion_snmp' WHERE title = 'Monitorización remota de dispositivos SNMP';
UPDATE `twelcome_tip` SET url = 'https://pandorafms.com/manual/!current/es/documentation/03_monitoring/03_remote_monitoring#monitorizacion_de_rutas' WHERE title = 'Monitorizar rutas desde una IP a otra';
UPDATE `twelcome_tip` SET url = 'https://pandorafms.com/manual/!current/es/documentation/04_using/11_managing_and_administration#paradas_de_servicio_planificadas' WHERE title = 'Paradas planificadas';
UPDATE `twelcome_tip` SET url = 'https://pandorafms.com/manual/!current/es/documentation/pandorafms/management_and_operation/01_alerts#configuracion_de_correos_para_alertas_en_pandora_fms' WHERE title = 'Personalizar los emails de alerta ';
UPDATE `twelcome_tip` SET url = 'https://pandorafms.com/manual/!current/start?id=es/documentation/04_using/05_data_presentation_visual_maps' WHERE title = 'Usando iconos personalizados en consolas visuales ';
UPDATE `twelcome_tip` SET url = 'https://pandorafms.com/manual/!current/es/documentation/04_using/05_data_presentation_visual_maps#mapa_de_calor_o_nube_de_color' WHERE title = 'Consolas visuales: mapas de calor ';
UPDATE `twelcome_tip` SET url = 'https://pandorafms.com/manual/!current/es/documentation/04_using/11_managing_and_administration#log_de_auditoria' WHERE title = 'Auditoría interna de la consola ';
UPDATE `twelcome_tip` SET url = 'https://pandorafms.com/manual/!current/start?id=es/documentation/02_installation/05_configuration_agents#configuracion_automatica_de_agentes' WHERE title = 'Sistema de provisión automática de agentes ';
UPDATE `twelcome_tip` SET url = 'https://pandorafms.com/manual/!current/es/documentation/04_using/05_data_presentation_visual_maps#enlace_de_red' WHERE title = 'Enlaces de red en la consola visual ';
UPDATE `twelcome_tip` SET url = 'https://pandorafms.com/manual/!current/es/documentation/04_using/08_data_presentation_reports#grafico_de_disponibilidad' WHERE title = 'Gráficas de disponibilidad ';
UPDATE `twelcome_tip` SET url = 'https://pandorafms.com/manual/!current/es/documentation/04_using/12_console_setup?s%5B%5D%3Dcontrase%25C3%25B1as#password_policy' WHERE title = 'Política de contraseñas';
UPDATE `twelcome_tip` SET url = 'https://pandorafms.com/manual/!current/en/documentation/04_using/12_console_setup?s%5B%5D%3Dgoogle%26s%5B%5D%3Dauth#authentication' WHERE title = 'Autenticación de doble factor ';
UPDATE `twelcome_tip` SET url = 'https://pandorafms.com/manual/!current/en/documentation/03_monitoring/06_web_monitoring' WHERE title = 'Did you know that you can monitor websites?';
UPDATE `twelcome_tip` SET url = 'https://pandorafms.com/manual/!current/en/documentation/04_using/11_managing_and_administration#log_de_auditoria' WHERE title = 'Console Internal Audit';
UPDATE `twelcome_tip` SET url = 'https://pandorafms.com/manual/!current/en/documentation/04_using/12_console_setup?s%5B%5D%3Dgoogle%26s%5B%5D%' WHERE title = 'Two-factor authentication';
UPDATE `twelcome_tip` SET url = 'https://pandorafms.com/manual/!current/en/documentation/04_using/05_data_presentation_visual_maps#mapa_de_cal' WHERE title = 'Visual consoles: heat maps';
UPDATE `twelcome_tip` SET url = 'https://pandorafms.com/manual/!current/en/documentation/04_using/05_data_presentation_visual_maps#enlace_de_red' WHERE title = 'Network links in the visual console';
UPDATE `twelcome_tip` SET url = 'https://pandorafms.com/manual/!current/en/documentation/04_using/08_data_presentation_reports#grafico_de_disp' WHERE title = 'Availability graphs';
UPDATE `twelcome_tip` SET url = 'https://pandorafms.com/manual/!current/en/documentation/03_monitoring/03_remote_monitoring#monitorizacion_snmp' WHERE title = 'Remote monitoring of SNMP devices';
UPDATE `twelcome_tip` SET url = 'https://pandorafms.com/manual/!current/en/documentation/03_monitoring/03_remote_monitoring#monitorizacion_de_rutas' WHERE title = 'Monitor routes from one IP to another';
UPDATE `twelcome_tip` SET url = 'https://pandorafms.com/manual/!current/en/documentation/04_using/11_managing_and_administration#scheduled_downtimes' WHERE title = 'Scheduled downtimes';
UPDATE `twelcome_tip` SET url = 'https://pandorafms.com/manual/!current/en/documentation/04_using/01_alerts#editing_an_action' WHERE title = 'Customize alert emails';
UPDATE `twelcome_tip` SET url = 'https://pandorafms.com/manual/!current/en/documentation/04_using/12_console_setup?s%5B%5D%3Dcontrase%25C3%25B' WHERE title = 'password policy';
UPDATE `twelcome_tip` SET url = 'https://pandorafms.com/manual/!current/start?id=en/documentation/02_installation/05_configuration_agents#conf' WHERE title = 'Automatic agent provision system';
UPDATE `twelcome_tip` SET url = 'https://pandorafms.com/manual/!current/start?id=en/documentation/02_installation/05_configuration_agents#conf' WHERE title = 'Automatic agent provision system';
UPDATE `twelcome_tip` SET url = 'https://pandorafms.com/manual/!current/start?id=en/documentation/02_installation/05_configuration_agents#conf' WHERE title = 'Automatic agent provision system';
UPDATE `twelcome_tip` SET url = 'https://pandorafms.com/manual/!current/start?id=en/documentation/04_using/05_data_presentation_visual_maps' WHERE title = 'Using custom icons in visual consoles';
COMMIT;

View File

@ -1049,8 +1049,10 @@ echo sprintf('<div id="header_table" class="header_table_%s">', $menuTypeClass);
})
}
},
closeOnEscape: true,
onload: () => {
$(document).ready(function () {
$(".ui-dialog-titlebar-close").hide();
var buttonpane = $("div[aria-describedby='welcome_modal_window'] .ui-dialog-buttonpane.ui-widget-content.ui-helper-clearfix");
$(buttonpane).append(`
<div class="welcome-wizard-buttons">

View File

@ -662,6 +662,7 @@ if ($modules !== false) {
$table->width = '100%';
$table->class = 'tactical_table info_table';
$table->head = [];
if (check_acl_one_of_groups($config['id_user'], $all_groups, 'AW') === true) {
$table->head['checkbox'] = html_print_checkbox(
'all_delete',
0,
@ -669,6 +670,8 @@ if ($modules !== false) {
true,
false
);
}
$table->head[0] = '<span>'.__('Name').'</span>'.ui_get_sorting_arrows(
$url_name.'up',
$url_name.'down',
@ -1262,23 +1265,11 @@ html_print_div(
$('#modal').dialog("close");
});
$('[id^=checkbox-id_delete]').change(function(){
if($(this).parent().parent().hasClass('checkselected')){
$(this).parent().parent().removeClass('checkselected');
}
else{
$(this).parent().parent().addClass('checkselected');
}
});
$('[id^=checkbox-all_delete]').change(function(){
if ($("#checkbox-all_delete").prop("checked")) {
$('[id^=checkbox-id_delete]').parent().parent().addClass('checkselected');
$("[name^=id_delete").prop("checked", true);
}
else{
$('[id^=checkbox-id_delete]').parent().parent().removeClass('checkselected');
$("[name^=id_delete").prop("checked", false);
}
});

View File

@ -259,12 +259,12 @@ $table->data[3][1] = html_print_label_input_block(
$table->data[4][0] = html_print_label_input_block(
__('Contact').ui_print_help_tip(__('Contact information accessible through the _groupcontact_ macro'), true),
html_print_textarea('contact', 4, 40, $contact, "class='min-height-0px'", true)
html_print_input_text('contact', $contact, '', false, '', true)
);
$table->data[4][1] = html_print_label_input_block(
__('Other').ui_print_help_tip(__('Information accessible through the _group_other_ macro'), true),
html_print_textarea('other', 4, 40, $other, "class='min-height-0px'", true)
html_print_input_text('other', $other, '', false, '', true)
);
$table->data[5][0] = html_print_label_input_block(

View File

@ -804,8 +804,10 @@ $("#conf_wizard").click(function() {
})
}
},
closeOnEscape: true,
onload: () => {
$(document).ready(function () {
$(".ui-dialog-titlebar-close").hide();
var buttonpane = $("div[aria-describedby='welcome_modal_window'] .ui-dialog-buttonpane.ui-widget-content.ui-helper-clearfix");
$(buttonpane).append(`
<div class="welcome-wizard-buttons">

View File

@ -319,7 +319,7 @@ $ActionButtons[] = html_print_button(
__('Go back'),
'back',
false,
"window.location.href = 'index.php?sec=reporting&sec2=godmode/reporting/graphs'",
'history.go(-1)',
[
'class' => 'sub ok submitButton',
'icon' => 'back',

View File

@ -553,6 +553,10 @@ if (!$maps && is_metaconsole() === false) {
['class' => 'main_menu_icon invert_filter']
).'</a>';
} else {
$table->cellclass[] = [
3 => 'table_action_buttons',
4 => 'table_action_buttons',
];
$data[3] = '<a class="copy_visualmap" href="index.php?sec=screen&sec2=screens/screens&action=visualmap&pure='.$pure.'&id_layout='.$map['id'].'&amp;copy_layout=1">'.html_print_image(
'images/copy.svg',
true,

View File

@ -2860,20 +2860,32 @@ if (is_metaconsole() === true) {
if (!empty($style_button_create_custom_graph)) {
$style_create = [
'mode' => 'link',
'mode' => 'mini',
'icon' => 'next',
'class' => 'mrgn_lft_10px',
'style' => 'display:none',
];
} else {
$style_create = [ 'mode' => 'link' ];
$style_create = [
'mode' => 'mini',
'icon' => 'next',
'class' => 'mrgn_lft_10px',
];
}
if (!empty($style_button_edit_custom_graph)) {
$style_edit = [
'mode' => 'link',
'mode' => 'mini',
'icon' => 'update',
'class' => 'mrgn_lft_10px',
'style' => 'display:none',
];
} else {
$style_edit = [ 'mode' => 'link' ];
$style_edit = [
'mode' => 'mini',
'icon' => 'update',
'class' => 'mrgn_lft_10px',
];
}
html_print_button(

View File

@ -157,7 +157,7 @@ if ((bool) users_is_admin() === false) {
$where = sprintf(' AND id_usuario = "%s"', $config['id_user']);
}
$sql = 'SELECT * FROM tuser_task_scheduled WHERE id_user_task IN (1,2,3,4) '.$where;
$sql = 'SELECT * FROM tuser_task_scheduled WHERE id_user_task IN (1,2,3) '.$where;
$reports = db_get_all_rows_sql($sql);
if ($reports !== false) {
$table = new stdClass();

View File

@ -145,6 +145,11 @@ $table->data['all_0'][0] = html_print_label_input_block(
$table->rowstyle['staticgraph'] = 'display: none;';
$table->colspan['staticgraph'][0] = 2;
$src = $config['homeurl'].'/images/console/icons/appliance_ok.png';
if (is_metaconsole() === true) {
$src = $config['homeurl'].'../../images/console/icons/appliance_ok.png';
}
$table->data['staticgraph'][0] = html_print_label_input_block(
__('Image'),
'<div class="flex">'.html_print_select(
@ -160,7 +165,7 @@ $table->data['staticgraph'][0] = html_print_label_input_block(
'',
false,
'width: 49%'
).'<span id="image_prev" class="mrgn_lft_10px mrgn_top-10px"><img src="'.$config['homeurl'].'/images/console/icons/appliance_ok.png"></span></div>'
).'<span id="image_prev" class="mrgn_lft_10px mrgn_top-10px"><img src="'.$src.'"></span></div>'
);
$table->rowstyle['all_1'] = 'display: none;';
@ -902,10 +907,15 @@ function findInSelect(selectid, find){
})
}
$('#image').on('change', function(){
$('#image').on('change', function() {
var img = $(this).val();
$('#image_prev').html('<img src="<?php echo $config['homeurl']; ?>/images/console/icons/'+img+'.png">');
})
var src = "<?php echo $config['homeurl']; ?>"+`/images/console/icons/${img}.png`;
if (metaconsole_enabled) {
src = "<?php echo $config['homeurl']; ?>"+`../../images/console/icons/${img}.png`;
}
$('#image_prev').html(`<img src="${src}">`);
});
</script>
<style type="text/css">

View File

@ -180,7 +180,7 @@ $button_test .= html_print_image(
'images/status_sets/default/severity_normal.png',
true
);
$button_test .= '&nbsp;'.__('Connection its OK').'</span>';
$button_test .= '&nbsp;'.__('Connection is OK').'</span>';
$button_test .= '<span id="ITSM-failure" class="invisible">&nbsp;';
$button_test .= html_print_image(
'images/status_sets/default/severity_critical.png',
@ -190,7 +190,7 @@ $button_test .= '&nbsp;'.__('Connection failed').'</span>';
$button_test .= '&nbsp;<span id="ITSM-message" class="invisible"></span>';
$row['control'] = html_print_label_input_block(
__('Test connection pandora to ITSM'),
__('Test connection PFMS to Pandora ITSM'),
$button_test,
['div_class' => 'ITSM-remote-setup-ITSM_token']
);
@ -206,8 +206,8 @@ if (empty($itsm_public_url) === true) {
}
$row['publicUrl'] = html_print_label_input_block(
__('URL conect to API %s', get_product_name()).ui_print_help_tip(
__('Full URL to your Pandora (e.g., http://192.168.1.20).'),
__('URL connect to API %s', get_product_name()).ui_print_help_tip(
__('Full URL to your Pandora FMS (e.g., http://192.168.1.20).'),
true
),
html_print_input_text(
@ -221,7 +221,7 @@ $row['publicUrl'] = html_print_label_input_block(
);
$row['agentsSync'] = html_print_label_input_block(
__('Number Agents to synchronize').ui_print_help_tip(
__('Number of Agents to synchronize').ui_print_help_tip(
__('Number of agents that will synchronize at the same time, minimum 10 max 1000'),
true
),
@ -261,7 +261,7 @@ $button_test_pandora .= html_print_image(
'images/status_sets/default/severity_normal.png',
true
);
$button_test_pandora .= '&nbsp;'.__('Connection its OK').'</span>';
$button_test_pandora .= '&nbsp;'.__('Connection is OK').'</span>';
$button_test_pandora .= '<span id="ITSM-failure-pandora" class="invisible">&nbsp;';
$button_test_pandora .= html_print_image(
'images/status_sets/default/severity_critical.png',
@ -300,7 +300,7 @@ if (empty($node) === false) {
// $progressbar .= (empty($node['dateStart']) === false) ? human_time_comparation($node['dateStart']) : __('Never');
$row['control-test-pandora'] = html_print_label_input_block(
__('Progress agents to synch'),
__('Progress on agents to be synchronized'),
$progressbar
);
}

View File

@ -569,7 +569,7 @@ $table->data[$i][] = html_print_label_input_block(
)
);
$table->data[$i++][] = html_print_label_input_block(
__('Referer security').ui_print_help_tip(__('When it is active, the source of the requests is checked. If the user comes from a URL external to Pandora FMS, the source of the activity will be considered suspicious.'), true),
__('Referrer security').ui_print_help_tip(__('When it is active, the source of the requests is checked. If the user comes from a URL external to Pandora FMS, the source of the activity will be considered suspicious.'), true),
html_print_checkbox_switch(
'referer_security',
1,

View File

@ -42,7 +42,7 @@ $table->border = 0;
$table->data = [];
$table->data[0][] = html_print_label_input_block(
__('Data storage path'),
__('Data storage path').ui_print_help_tip(__('The Netflow data will be saved in the directory specified here, which will be located in the path defined by the "General Network path" parameter (this parameter is found in the General Settings).'), true),
html_print_input_text('netflow_name_dir', $config['netflow_name_dir'], false, 50, 200, true)
);

View File

@ -40,6 +40,19 @@ if (! check_acl($config['id_user'], 0, 'PM') && ! is_user_admin($config['id_user
return;
}
if (is_ajax()) {
$stopShowingModal = get_parameter('stopShowingModal', 0);
if ($stopShowingModal === '1') {
db_process_sql_update(
'tusuario',
['stop_lts_modal' => '1'],
['id_user' => $config['id_user']],
);
}
return;
}
require_once $config['homedir'].'/vendor/autoload.php';
$php_version = phpversion();
@ -83,7 +96,10 @@ if ($php_version_array[0] < 7) {
</div>
</div>
</div>
<?php
$stop_lts_modal = db_get_value('stop_lts_modal', 'tusuario', 'id_user', $config['id_user']);
if ($stop_lts_modal === '0') {
?>
<script type="text/javascript">
$(document).ready(function() {
// Lts Updates.
@ -100,12 +116,36 @@ if ($php_version_array[0] < 7) {
buttons: [{
text: "OK",
click: function() {
var no_show_more = $('#checkbox-no_show_more').is(':checked');
if (no_show_more === true){
$.ajax({
url: 'ajax.php',
data: {
page: 'godmode/update_manager/modal_lts_update',
stopShowingModal: 1,
},
type: 'POST',
async: false,
dataType: 'json'
});
}
$(this).dialog("close");
}
}],
open: function(event, ui) {
$(".ui-dialog-titlebar-close").hide();
$("div.ui-dialog-buttonset").addClass('flex-rr-sb-important');
$("div.ui-dialog-buttonset").append(`
<div class="welcome-wizard-buttons">
<label class="flex-row-center">
<input type="checkbox" id="checkbox-no_show_more" class="welcome-wizard-do-not-show"/>
<?php echo __('Do not show anymore'); ?>
</label>
</div>
`);
}
});
});
</script>
<?php
}

View File

@ -242,6 +242,14 @@ if (!$action_update_url_update_manager) {
$result = config_update_value('identification_reminder', $identification_reminder);
}
if ($result && $lts_updates === 1) {
db_process_sql_update(
'tusuario',
['stop_lts_modal' => '0'],
['id_user' => $config['id_user']],
);
}
ui_print_result_message(
$result,
__('Succesful Update the url config vars.'),

View File

@ -124,6 +124,14 @@ class DiscoveryTaskList extends HTML
$this->printHeader(true)
);
// Div neccesary for modal map task.
echo '<div id="map_task" class="invisible"></div>';
echo '<div id="task_review" class="invisible"></div>';
echo '<div id="msg" class="invisible"></div>';
echo '<input type="hidden" id="ajax-url" value="'.ui_get_full_url('ajax.php').'"/>';
echo '<input type="hidden" id="success-str" value="'.__('Success').'"/>';
echo '<input type="hidden" id="failed-str" value="'.__('Failed').'"/>';
// Show redirected messages from discovery.php.
if ($status === 0) {
ui_print_success_message($message);
@ -1145,14 +1153,6 @@ class DiscoveryTaskList extends HTML
ui_toggle($content, $titleTable, '', '', false);
// Div neccesary for modal map task.
echo '<div id="map_task" class="invisible"></div>';
echo '<div id="task_review" class="invisible"></div>';
echo '<div id="msg" class="invisible"></div>';
echo '<input type="hidden" id="ajax-url" value="'.ui_get_full_url('ajax.php').'"/>';
echo '<input type="hidden" id="success-str" value="'.__('Success').'"/>';
echo '<input type="hidden" id="failed-str" value="'.__('Failed').'"/>';
unset($table);
ui_require_javascript_file('pandora_ui');

View File

@ -789,7 +789,6 @@ if ($action === 'create_demo_data') {
}
// Get last trap in database.
/*
$id_trap_begin = db_get_value(
'MAX(id_trap)',
@ -1068,37 +1067,37 @@ if ($action === 'cleanup_demo_data') {
$demo_items = db_get_all_rows_in_table('tdemo_data');
$module_items = array_filter(
$module_items = array_map(
function ($item) {
$json_data = json_decode($item['item_id'], true);
return $json_data['id_agente_modulo'];
},
array_filter(
$demo_items,
function ($item) {
return ($item['table_name'] === 'tagente_modulo');
}
)
);
$inventory_module_items = array_filter(
$inventory_module_items = array_map(
function ($item) {
$json_data = json_decode($item['item_id'], true);
return $json_data['id_agent_module_inventory'];
},
array_filter(
$demo_items,
function ($item) {
return ($item['table_name'] === 'tagent_module_inventory');
}
)
);
$items_delete_id_bfr = [];
foreach ($inventory_module_items as $item) {
$items_delete_id_bfr[] = $item['item_id'];
}
$in_clause = implode(',', $items_delete_id_bfr);
$in_clause = implode(',', $inventory_module_items);
// Delete data from tagente_datos_inventory given inventory module id.
db_process_sql('DELETE FROM tagente_datos_inventory where id_agent_module_inventory IN ('.$in_clause.')');
$items_delete_id_bfr = [];
foreach ($module_items as $item) {
$items_delete_id_bfr[] = $item['item_id'];
}
$in_clause = implode(',', $items_delete_id_bfr);
$in_clause = implode(',', $module_items);
// Delete data from tagente_datos give agent module id.
db_process_sql('DELETE FROM tagente_datos where id_agente_modulo IN ('.$in_clause.')');

View File

@ -1196,7 +1196,7 @@ if (check_login()) {
$data[2] .= ui_print_truncate_text($module['nombre'], 'module_medium', false, true, true, '&hellip;', 'font-size: 9pt;');
$data[2] .= '</a>';
if (empty($module['extended_info']) === false) {
$data[2] .= ui_print_help_tip($module['extended_info'], true, '/images/default_list.png');
$data[2] .= ui_print_help_tip(io_safe_output($module['extended_info']), true, '/images/default_list.png');
}
// Adds tag context information.

View File

@ -1358,9 +1358,12 @@ class AgentWizard extends HTML
$table->rowstyle[$i] = 'color:#ccc;';
$data[0] .= ' ';
$data[0] .= html_print_image(
'images/alert-warning@svg.svg',
'images/info-warning.svg',
true,
['title' => $msgError]
[
'title' => $msgError,
'class' => 'main_menu_icon',
]
);
}

View File

@ -262,6 +262,7 @@ class AgentsAlerts extends HTML
$data[0] = io_safe_output($agent_module['alias']);
$data[1] = io_safe_output($agent_module['nombre']);
$uniqid = $agent_module['id_agente_modulo'];
if (check_acl($this->idUser, 0, 'LM')) {
$data[2] = html_print_anchor(
[
'href' => sprintf(
@ -276,6 +277,9 @@ class AgentsAlerts extends HTML
],
true
);
} else {
$data[2] = '';
}
array_push($table->data, $data);

View File

@ -280,6 +280,13 @@ class Prd
*/
private $itemsReferences;
/**
* Current prdData.
*
* @var array
*/
private $currentPrdData;
/**
* Constructor.
@ -2282,12 +2289,37 @@ class Prd
$value = implode($csv_separator, $ref_arr);
} else {
$columns_ref = $this->getOneColumnRefs($ref['table']);
$value = $this->searchValue(
$ref['columns'],
$ref['table'],
$ref['id'],
$value
);
// Get reference in value
if ($columns_ref !== false) {
foreach ($columns_ref as $col => $col_ref) {
if (array_key_exists($col, $value[$ref['table']])) {
$sql = sprintf(
'SELECT * FROM %s WHERE %s = "%s"',
$ref['table'],
$col,
$value[$ref['table']][$col],
);
$row = db_get_row_sql($sql);
$this->getReferenceFromValue(
$ref['table'],
$col,
$col_ref,
$row,
$value[$ref['table']][$col]
);
}
}
}
}
}
@ -2413,12 +2445,37 @@ class Prd
$value = implode($csv_separator, $ref_arr);
} else {
$columns_ref = $this->getOneColumnRefs($ref['table']);
$value = $this->searchValue(
$ref['columns'],
$ref['table'],
$ref['id'],
$value
);
// Get reference in value
if ($columns_ref !== false) {
foreach ($columns_ref as $col => $col_ref) {
if (array_key_exists($col, $value[$ref['table']])) {
$sql = sprintf(
'SELECT * FROM %s WHERE %s = "%s"',
$ref['table'],
$col,
$value[$ref['table']][$col],
);
$row = db_get_row_sql($sql);
$this->getReferenceFromValue(
$ref['table'],
$col,
$col_ref,
$row,
$value[$ref['table']][$col]
);
}
}
}
}
}
}
@ -2435,7 +2492,7 @@ class Prd
*
* @return boolean
*/
private function getValueFromReference($table, $column, $reference, &$value)
private function getValueFromReference($table, $column, $reference, $item, &$value)
{
if (isset($reference['conditional_refs']) === true) {
// Conditional refs.
@ -2445,8 +2502,8 @@ class Prd
if (isset($condition['when']) === true
&& isset($condition['ref']) === true
) {
if (isset($this->currentItem['parsed'][array_key_first($condition['when'])]) === true) {
$compare_value = $this->currentItem['parsed'][array_key_first($condition['when'])];
if (isset($item[array_key_first($condition['when'])]) === true) {
$compare_value = $item[array_key_first($condition['when'])];
if ($this->evalConditionalRef($compare_value, $condition['when']) === true
&& empty($value) === false
@ -2656,6 +2713,7 @@ class Prd
$result = '';
$prd_data = $this->getOnePrdData($type);
$this->currentPrdData = $prd_data;
if (empty($prd_data) === false) {
$result .= '[prd_data]'.LINE_BREAK.LINE_BREAK;
$result .= 'type="'.$type.'"'.LINE_BREAK;
@ -2903,6 +2961,7 @@ class Prd
unset($data_file['prd_data']);
$prd_data = $this->getOnePrdData($type);
$this->currentPrdData = $prd_data;
if ($prd_data !== false) {
// Begin transaction.
$db = $config['dbconnection'];
@ -2941,6 +3000,7 @@ class Prd
$table,
$column,
$column_refs[$column],
$this->currentItem['parsed'],
$value
);
@ -2968,6 +3028,7 @@ class Prd
$table,
$column,
$json_refs[$column][$json_key],
$this->currentItem['parsed'],
$json_value
) === true
) {
@ -3064,8 +3125,42 @@ class Prd
&& empty($array_value[$ref['table']]) === false
) {
$where = '';
$columns_ref = $this->getOneColumnRefs($ref['table']);
foreach ($ref['columns'] as $column_name) {
if (isset($array_value[$ref['table']][$column_name])) {
// Get value from crossed reference in current value
if (isset($this->crossed_refs[$ref['table']]) === true
&& empty($this->crossed_refs[$ref['table']]['ref']) === false
&& in_array($column_name, $this->crossed_refs[$ref['table']]['ref'])
) {
$parent_table = $this->crossed_refs[$ref['table']]['parent_table'];
foreach ($this->crossed_refs[$ref['table']]['ref'] as $k => $f) {
$itemReference = $this->getItemReference(
$parent_table,
$this->crossed_refs[$parent_table]['value'][$k],
$array_value[$ref['table']][$f]
);
if ($itemReference !== false) {
$array_value[$ref['table']][$column_name] = $itemReference;
}
}
}
if ($columns_ref !== false) {
if (array_key_exists($column_name, $columns_ref)) {
$temp_value = $array_value[$ref['table']][$column_name];
$temp_value = (is_array($temp_value) ? json_encode($temp_value) : $temp_value);
// Get value from reference in current value
$ref_value = $this->getValueFromReference($ref['table'], $column_name, $columns_ref[$column_name], $array_value[$ref['table']], $temp_value);
if ($ref_value === true) {
$array_value[$ref['table']][$column_name] = $temp_value;
}
}
}
$where .= sprintf(
"%s = '%s' AND ",
$column_name,

View File

@ -182,8 +182,10 @@ class WelcomeWindow extends Wizard
})
}
},
closeOnEscape: true,
onload: () => {
$(document).ready(function () {
$(".ui-dialog-titlebar-close").hide();
var buttonpane = $("div[aria-describedby='welcome_modal_window'] .ui-dialog-buttonpane.ui-widget-content.ui-helper-clearfix");
$(buttonpane).append(`
<div class="welcome-wizard-buttons">

View File

@ -22,7 +22,7 @@ use DI\ContainerBuilder;
/*
* Pandora build version and version
*/
$build_version = 'PC240325';
$build_version = 'PC240326';
$pandora_version = 'v7.0NG.776';
// Do not overwrite default timezone set if defined.

View File

@ -1006,13 +1006,14 @@ function get_parameter($name, $default='')
function get_parameter_date($name, $default='', $date_format='Y/m/d')
{
// TODO: Configure default value.
$date_end = get_parameter('date_end', 0);
$time_end = get_parameter('time_end');
$datetime_end = strtotime($date_end.' '.$time_end);
$custom_date = get_parameter('custom_date', 0);
$range = get_parameter('range', SECONDS_1DAY);
$date_text = get_parameter('range_text', SECONDS_1DAY);
$range = get_parameter($name, SECONDS_1DAY);
$date_text = get_parameter($name.'_text', SECONDS_1DAY);
$date_init_less = (strtotime(date('Y/m/d')) - SECONDS_1DAY);
$date_init = get_parameter('date_init', date(DATE_FORMAT, $date_init_less));
$time_init = get_parameter('time_init', date(TIME_FORMAT, $date_init_less));
@ -1026,7 +1027,7 @@ function get_parameter_date($name, $default='', $date_format='Y/m/d')
$date_end = date('Y/m/d H:i:s', $datetime_end);
$period = ($datetime_end - $datetime_init);
} else if ($custom_date === '2') {
$date_units = get_parameter('range_units');
$date_units = get_parameter($name.'_units');
$date_end = date('Y/m/d H:i:s');
$date_init = date('Y/m/d H:i:s', (strtotime($date_end) - ((int) $date_text * (int) $date_units)));
$period = (strtotime($date_end) - strtotime($date_init));
@ -2427,11 +2428,6 @@ function check_login($output=true)
return false;
}
db_pandora_audit(
AUDIT_LOG_HACK_ATTEMPT,
'Trying to access without a valid session',
'N/A'
);
include $config['homedir'].'/general/noaccess.php';
exit;
}

View File

@ -2312,26 +2312,35 @@ function agents_get_agent_with_ip($ip_address)
* Get all IP addresses of an agent
*
* @param int Agent id
* @param bool Order by id
*
* @return array Array with the IP address of the given agent or an empty array.
*/
function agents_get_addresses($id_agent)
{
function agents_get_addresses(
$id_agent,
$order_by_id=false
) {
$order_clause = ($order_by_id === true) ? 'ORDER BY taddress.id_a DESC' : '';
if (is_array($id_agent)) {
$sql = sprintf(
'SELECT ip
FROM taddress_agent, taddress
WHERE taddress_agent.id_a = taddress.id_a
AND id_agent IN (%s)',
implode(',', $id_agent)
AND id_agent IN (%s)
%s',
implode(',', $id_agent),
$order_clause
);
} else {
$sql = sprintf(
'SELECT ip
FROM taddress_agent, taddress
WHERE taddress_agent.id_a = taddress.id_a
AND id_agent = %d',
$id_agent
AND id_agent = %d
%s',
$id_agent,
$order_clause
);
}

View File

@ -805,7 +805,7 @@ function filemanager_file_explorer(
// Actions buttons
// Delete button.
$data[4] = '<div class="table_action_buttons flex">';
$data[4] = '<div class="table_action_buttons flex flex-end">';
$typefile = array_pop(explode('.', $fileinfo['name']));
if (is_writable($fileinfo['realpath']) === true
&& (is_dir($fileinfo['realpath']) === false || count(scandir($fileinfo['realpath'])) < 3)
@ -1069,7 +1069,7 @@ function filemanager_file_explorer(
);
// Show Modal Real Path
$modal_real_path = "<div><b>Real path to plugin execution is:</b></div>
$modal_real_path = "<div><b>Real path is:</b></div>
<div id='real_path'></div>";
if (isset($_SERVER['HTTPS']) === true) {

View File

@ -3398,8 +3398,10 @@ function graph_custom_sql_graph(
if ($count <= $max_num_elements) {
$label = __('Data');
$full_label = __('Data');
if (empty($data_item['label']) === false) {
$label = io_safe_output($data_item['label']);
$full_label = io_safe_output($data_item['label']);
if (strlen($label) > $SQL_GRAPH_MAX_LABEL_SIZE) {
$first_label = $label;
$label = substr(
@ -3413,11 +3415,13 @@ function graph_custom_sql_graph(
$labels_bar[] = $label;
if ($type === 'sql_graph_hbar') {
$data_bar[] = [
'full_title' => $full_label,
'y' => $label,
'x' => $value,
];
} else {
$data_bar[] = [
'full_title' => $full_label,
'x' => $label,
'y' => $value,
];
@ -3493,6 +3497,9 @@ function graph_custom_sql_graph(
'grid' => ['display' => false],
],
],
'tooltip' => [
'title' => ['fullTitle' => true],
],
'labels' => $labels_bar,
];

View File

@ -2946,7 +2946,7 @@ function ui_print_help_tip(
$id = random_int(1, 99999);
$output = '<div id="div_tip_'.$id.'" class="tip" style="'.$style.'" >';
$output .= '<div id="tip_dialog_'.$id.'" class="invisible margin-15" data-title="'.__('Help').'"><span class="font_13px">'.$text.'</span></div>';
$output .= '<div id="tip_dialog_'.$id.'" class="invisible margin-15" data-title="'.__('Help').'"><span class="font_13px">'.io_safe_output($text).'</span></div>';
$output .= html_print_image(
$img,
true,

View File

@ -1272,6 +1272,28 @@ function get_build_setup_charts($type, $options, $data)
$chart->labels()->exchangeArray($options['labels']);
}
// Edit tooltip.
if (isset($options['tooltip']) === true && empty($options['tooltip']) === false) {
$tooltip_callback_value = 'item.formattedValue';
if (isset($options['tooltip']['value']) === true && empty($options['tooltip']['value']) === false) {
$tooltip_callback_value = ''.$options['tooltip']['value'].'';
}
$tooltip_callback_unit = '';
if (isset($options['tooltip']['unit']) === true && empty($options['tooltip']['unit']) === false) {
$tooltip_callback_unit = '"'.$options['tooltip']['unit'].'"';
}
$tooltip_callback = '(item) => " " + '.$tooltip_callback_value.' + "'.$tooltip_callback_unit.'"';
$chart->options()->getPlugins()->getTooltip()->callbacks()->setLabel($tooltip_callback);
if (isset($options['tooltip']['title']) === true && empty($options['tooltip']['title']) === false) {
if (isset($options['tooltip']['title']['fullTitle']) === true && $options['tooltip']['title']['fullTitle'] === true) {
$chart->options()->getPlugins()->getTooltip()->callbacks()->setTitle('(item) => item[0].dataset.data[item[0].dataIndex].full_title');
}
}
}
// Add Datasets.
$setData = $chart->createDataSet();
switch ($type) {

View File

@ -1553,9 +1553,11 @@ function changePlugin() {
var moduleProtocol = $("#module_protocol").val();
var executionType = $("#execution_type").val();
var pluginSelected = $("#server_plugin_" + moduleProtocol).val();
var pluginAllData = JSON.parse(
$("#hidden-server_plugin_data_" + pluginSelected).val()
);
var pluginAllDataSafe = $("#hidden-server_plugin_data_" + pluginSelected)
.val()
.replace(/(?:\r\n|\r|\n)/g, "<br>");
var pluginAllData = JSON.parse(pluginAllDataSafe);
var pluginDescription = pluginAllData.description;
var pluginMacros = pluginAllData.macros;
@ -1586,11 +1588,15 @@ function changePlugin() {
let macro = this.macro;
let value = this.value;
if (pluginMacrosElement !== null) {
if (pluginMacrosElement["server_plugin"] == pluginSelected) {
if (pluginMacrosElement[macro + "_" + moduleProtocol + "_field"]) {
value = pluginMacrosElement[macro + "_" + moduleProtocol + "_field"];
}
}
} else {
value = "";
}
if (
typeof description == "undefined" ||

View File

@ -449,6 +449,10 @@ function load_modal(settings) {
}
};
if (settings.closeOnEscape == undefined) {
settings.closeOnEscape = true;
}
required_buttons.push({
class:
"ui-widget ui-state-default ui-corner-all ui-button-text-only sub ok submit-next",
@ -518,7 +522,7 @@ function load_modal(settings) {
collision: "fit"
},
buttons: required_buttons,
closeOnEscape: true,
closeOnEscape: settings.closeOnEscape,
open: function() {
//$(".ui-dialog-titlebar-close").hide();
},

View File

@ -172,18 +172,21 @@ class Overview extends Element
$used = 0;
}
$data = [
'agents_used' => [
if ($used > 0) {
$data['agents_used'] = [
'label' => __('% Agents used'),
'perc' => $used,
'color' => '#1C4E6B',
],
'free_agents' => [
];
}
if ($free > 0) {
$data['free_agents'] = [
'label' => __('% Free agents'),
'perc' => $free,
'color' => '#5C63A2',
],
];
}
} else {
$agents = agents_get_agents();
$enabled_agents = agents_get_agents(
@ -207,23 +210,26 @@ class Overview extends Element
$total_disabled_agents = round((($total - count($enabled_agents)) * 100) / $total);
$total_enabled_agents = round((count($enabled_agents) * 100) / $total);
} else {
$total_disabled_agents = 0;
$total_enabled_agents = 100;
$total_disabled_agents = 100;
$total_enabled_agents = 0;
}
$data = [
'agents_enabled' => [
if ($total_enabled_agents > 0) {
$data['agents_enabled'] = [
'label' => __('% Agents enabled'),
'perc' => $total_enabled_agents,
'color' => '#1C4E6B',
],
'agents_disabled' => [
];
}
if ($total_disabled_agents > 0) {
$data['agents_disabled'] = [
'label' => __('% Agents disabled'),
'perc' => $total_disabled_agents,
'color' => '#5C63A2',
],
];
}
}
$bar = $this->printHorizontalBar($data);
$output = html_print_div(

View File

@ -1859,6 +1859,30 @@ class Item extends CachedModel
$save = array_merge($dataModelEncode, $dataEncode);
if (!empty($save['label'])) {
// Multi-span problem with TinyMCE. Do not delete.
$dom = new \DOMDocument();
$dom->loadHTML(io_safe_output($save['label']));
// XPath object.
$xpath = new \DOMXPath($dom);
// Find all span tags with style attribute.
$span_nodes = $xpath->query('//span[@style]');
if ($span_nodes->length > 1) {
$style = '';
foreach ($span_nodes as $span) {
$style .= $span->getAttribute('style');
}
$last_span = $span_nodes[($span_nodes->length - 1)];
// Set style.
$last_span->setAttribute('style', $style);
$save['label'] = io_safe_input($dom->saveHTML());
}
$save['label'] = io_safe_output(io_safe_input(str_replace("'", "\'", $save['label'])));
}
@ -2416,10 +2440,10 @@ class Item extends CachedModel
foreach ($fields as $k => $v) {
if (isset($v['id']) === true && isset($v['name']) === true) {
// Modern environments use id-name format.
$rs[$v['id']] = $v;
$rs[$v['id']] = io_safe_output($v);
} else {
// In MC environments is key-value.
$rs[$k] = $v;
$rs[$k] = io_safe_output($v);
}
}

View File

@ -225,6 +225,7 @@ div.graphs-div-main {
/* height: 20px; */
margin-bottom: 5px;
display: flex;
z-index: 0;
}
#droppable-graphs .droppable-zone {

View File

@ -265,7 +265,6 @@ div#welcome_modal_window .wizard #li-div_wizard_agent > div {
}
div#welcome_modal_window .wizard #li-div_wizard_agent .select2-selection {
background-color: #f6f7fb !important;
border: 1px solid #c0ccdc !important;
border-radius: 6px !important;
width: 290px;

View File

@ -676,6 +676,10 @@ select:-internal-list-box {
align-items: center;
}
.align-center-important {
align-items: center !important;
}
.relative {
position: relative;
}
@ -943,6 +947,18 @@ select:-internal-list-box {
align-items: center;
}
.flex-rr-sb {
display: flex;
flex-direction: row-reverse;
justify-content: space-between;
}
.flex-rr-sb-important {
display: flex !important;
flex-direction: row-reverse !important;
justify-content: space-between !important;
}
.flex-row-vcenter {
display: flex;
flex-direction: row;
@ -1956,7 +1972,7 @@ div.title_line {
#menu_tab_frame_view_bc {
position: sticky;
top: 61px;
z-index: 3;
z-index: 2;
display: flex;
align-items: flex-end;
justify-content: space-between;
@ -13862,6 +13878,10 @@ button.disabled {
display: list-item;
}
.white_table_graph > div {
background-color: transparent;
}
.link-bold {
color: var(--primary-color);
text-decoration: none;

View File

@ -38,7 +38,8 @@ ul.subsubmenu li,
input.search_input,
.filters input,
input#text-id_parent.ac_input,
input:not(div.login_pass > input):not(div.login_nick > input),
input:not(div.login_pass > input):not(div.login_nick
> input):not([src$=".svg"]),
textarea,
select,
.edit_user_comments #textarea_comments,

View File

@ -24,7 +24,7 @@
color: white !important;
text-align: left;
}
.select2-container--default>.selection>.select2-selection--single {
.select2-container--default > .selection > .select2-selection--single {
border-color: #707070 !important;
}
.select2-container .select2-selection--single .select2-selection__clear {
@ -76,7 +76,7 @@
position: absolute;
left: -100000px;
width: 100%;
z-index: 1051;
z-index: 1118;
}
.select2-results {
display: block;

View File

@ -131,7 +131,7 @@
<div style='padding-bottom: 50px'>
<?php
$version = '7.0NG.776';
$build = '240325';
$build = '240326';
$banner = "v$version Build $build";
error_reporting(0);

View File

@ -493,6 +493,11 @@ if (is_metaconsole() === false) {
['type' => 'form_action']
);
}
} else {
html_print_action_buttons(
'',
['type' => 'form_action']
);
}
} else {
echo "<form method='post' action='index.php?sec=galertas&sec2=godmode/alerts/alert_list&tab=builder&pure=0'>";

View File

@ -430,7 +430,8 @@ if (function_exists('policies_get_policies') === true) {
}
}
$table->data[2][1] = html_print_label_input_block(
if (enterprise_installed() === true) {
$table->data[2][1] = html_print_label_input_block(
__('Policies'),
html_print_select(
$fields,
@ -446,7 +447,8 @@ $table->data[2][1] = html_print_label_input_block(
false,
'width: 100%'
)
);
);
}
$custom_fields = db_get_all_fields_in_table('tagent_custom_fields');
if ($custom_fields === false) {

View File

@ -142,7 +142,7 @@ if (empty($agent['os_version']) !== true) {
$table_status->data['agent_os_version'][1] = $os_agent_text;
}
$addresses = agents_get_addresses($id_agente);
$addresses = agents_get_addresses($id_agente, true);
$address = agents_get_address($id_agente);
foreach ($addresses as $k => $add) {
@ -154,8 +154,30 @@ foreach ($addresses as $k => $add) {
if (empty($address) === false) {
$address_text = '<span class="bolder" >'.$address.'</span>';
if (!empty($addresses) === true) {
foreach ($addresses as $sec_address) {
$address_text .= '<br/><span class="italic">'.$sec_address.'</span>';
if (count($addresses) > 3) {
$address_text .= '&nbsp&nbsp<span id="deploy_sec_ips_down">'.html_print_image(
'images/sort_down_black.png',
true,
['alt' => 'down']
).'</span><span id="deploy_sec_ips_up" style="display: none;">'.html_print_image(
'images/sort_up_black.png',
true,
['alt' => 'up']
).'</span>';
$address_text .= '<div id="secondary_ips" class="invisible">';
}
$first_key = key($addresses);
foreach ($addresses as $key => $sec_address) {
if ($first_key !== $key || count($addresses) <= 3) {
$address_text .= '<br/>';
}
$address_text .= '<span class="italic">'.$sec_address.'</span>';
}
if (count($addresses) > 3) {
$address_text .= '</div>';
}
}
@ -638,3 +660,23 @@ if (isset($table_interface) === true) {
true
);
}
?>
<script type="text/javascript">
$(document).ready (function () {
$('#deploy_sec_ips_up').on('click', function() {
$('#secondary_ips').hide();
// Avoid setting display block property with show/hide methods.
$('#deploy_sec_ips_up').css('display', 'none');
$('#deploy_sec_ips_down').css('display', '');
});
$('#deploy_sec_ips_down').on('click', function() {
$('#secondary_ips').show();
// Avoid setting display block property with show/hide methods.
$('#deploy_sec_ips_down').css('display', 'none');
$('#deploy_sec_ips_up').css('display', '');
});
});
</script>

View File

@ -597,6 +597,7 @@ function print_table(
} else {
foreach ($all_interfaces as $key => $value) {
// Filter interfaces array.
if (empty($selected_interfaces) === false && in_array('', $selected_interfaces) === false) {
$filtered_interfaces[$key] = array_filter(
$value,
function ($interface) use ($selected_interfaces) {
@ -606,6 +607,9 @@ function print_table(
);
}
);
} else {
$filtered_interfaces = $all_interfaces;
}
}
}

View File

@ -265,13 +265,16 @@ function load_agent_interfaces_selector(selected_agents) {
},
function (data, status) {
$("#module").html('');
var option = $("<option></option>")
.attr ("value", "")
.html ("Any");
$("#selected_interfaces").append(option);
if (data) {
Object.values(data).forEach(function(obj) {
for (const [key, value] of Object.entries(obj.interfaces)) {
option = $("<option></option>")
.attr ("value", value.status_module_id)
.html (key + ' (' + obj.agent_alias + ')');
.html ('(' + obj.agent_alias + ') ' + key);
$("#selected_interfaces").append(option);
}
});

View File

@ -481,6 +481,7 @@ else if ($update_networkmap || $copy_networkmap || $delete) {
[
'name' => $name,
'id_group_map' => $id_group_map,
'!id' => $id,
],
);

View File

@ -1613,7 +1613,7 @@ if (empty($result) === false) {
$table->align[11] = 'left';
}
if (check_acl($config['id_user'], 0, 'AR')) {
if (check_acl($config['id_user'], 0, 'AW')) {
$actions_list = true;
$table->head[12] = __('Actions');
$table->align[12] = 'left';
@ -2263,7 +2263,7 @@ if (empty($result) === false) {
}
if (check_acl_one_of_groups($config['id_user'], $agent_groups, 'AW')) {
$table->cellclass[][2] = 'action_buttons';
$table->cellclass[][12] = 'table_action_buttons';
if (is_metaconsole() === true) {
echo "<form id='agent-edit-redirection-".$inc_id."' target='_blank' method='POST' action='".$row['server_url']."index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=module&edit_module=1'>";

View File

@ -169,6 +169,8 @@ if (is_ajax()) {
},
[]
);
} else {
echo json_encode([]);
}
}

View File

@ -43,82 +43,20 @@ if (!reporting_user_can_see_report($id_report)) {
exit;
}
// Calculations in order to modify init date of the report.
$date_init_less = (strtotime(date('Y-m-j')) - SECONDS_1DAY);
$date_init = get_parameter('date_init', date(DATE_FORMAT, $date_init_less));
$time_init = get_parameter('time_init', date(TIME_FORMAT, $date_init_less));
$datetime_init = strtotime($date_init.' '.$time_init);
$pure = (int) get_parameter('pure', 0);
$date_params = get_parameter_date('date', '', 'U');
$date_end = date('Y/m/d', $date_params['date_end']);
$time_end = date('H:i:s', $date_params['date_end']);
$period = null;
// Get different date to search the report.
$date_end = (string) get_parameter('date_end', date(DATE_FORMAT));
$time_end = (string) get_parameter('time_end', date(TIME_FORMAT));
$datetime_end = strtotime($date_end.' '.$time_end);
$date_start = date('Y/m/d', $date_params['date_init']);
$time_start = date('H:i:s', $date_params['date_init']);
// Calculate new inteval for all reports.
$custom_date = get_parameter('custom_date', 0);
$date = get_parameter('date', 'none');
$date_text = get_parameter('date_text', SECONDS_1DAY);
$date_init = date('Y/m/d', $date_params['date_init']);
$time_init = date('H:i:s', $date_params['date_init']);
$custom_date_end = '';
$filter_type = '';
$custom_period = false;
if ($custom_date === '1') {
if ($date === 'chose_range') {
$date_init = get_parameter('date_init', 0);
$date_init = explode(' ', $date_init);
$date_init = $date_init[0];
$date_init .= ' '.get_parameter('time_init', '00:00:00');
$custom_date_end = get_parameter('date_end', 0);
$custom_date_end .= ' '.get_parameter('time_end', '00:00:00');
$date_end = date('Y/m/d H:i:s');
$period = (strtotime($date_end) - strtotime($date_init));
$custom_period = (strtotime($custom_date_end) - strtotime($date_init));
$filter_type = 'chose_range';
} else {
if ($datetime_init >= $datetime_end) {
$datetime_init = $date_init_less;
}
$custom_date_end = date('Y/m/d H:i:s', $date_params['date_end']);
$period = ($datetime_end - $datetime_init);
}
} else if ($custom_date === '2') {
$date_units = get_parameter('date_units');
$date_end = date('Y/m/d H:i:s');
$date_start = date('Y/m/d H:i:s', (strtotime($date_end) - ($date_text * $date_units)));
$period = (strtotime($date_end) - strtotime($date_start));
} else if (in_array($date, ['this_week', 'this_month', 'past_week', 'past_month'])) {
if ($date === 'this_week') {
// Last monday.
$date_init = date('Y/m/d H:i:s', strtotime('last monday'));
// $date_end = date('Y/m/d H:i:s', strtotime($date_init.' +6 days'));
$date_end = date('Y/m/d H:i:s');
$period = (strtotime($date_end) - strtotime($date_init));
$filter_type = 'this_week';
} else if ($date === 'this_month') {
// $date_end = date('Y/m/d', strtotime('last day of this month'));
$date_end = date('Y/m/d H:i:s');
$first_of_month = date('Y/m/d', strtotime('first day of this month'));
$period = (strtotime($date_end) - strtotime($first_of_month));
$filter_type = 'this_month';
} else if ($date === 'past_month') {
$date_end = date('Y/m/d', strtotime('last day of previous month'));
$first_of_month = date('Y/m/d', strtotime('first day of previous month'));
$period = (strtotime($date_end) - strtotime($first_of_month));
} else if ($date === 'past_week') {
$date_end = date('Y-m-d', strtotime('sunday', strtotime('last week')));
$first_of_week = date('Y-m-d', strtotime('monday', strtotime('last week')));
$period = (strtotime($date_end) - strtotime($first_of_week));
}
} else if ($date === 'none') {
// Prioritize the report item period based on the current local date/time.
$date_end = date('Y/m/d H:i:s');
} else {
$date_end = date('Y/m/d H:i:s');
$date_start = date('Y/m/d H:i:s', (strtotime($date_end) - $date));
$period = (strtotime($date_end) - strtotime($date_start));
}
$period = $date_params['period'];
$custom_period = $date_params['period'];
// Shchedule report email.
$schedule_report = get_parameter('schbutton', '');
@ -318,12 +256,12 @@ if ($html_menu_export === ENTERPRISE_NOT_HOOK) {
if ((bool) is_metaconsole() === true) {
$table2->data[0][2] = html_print_label_input_block(
__('Date').' ',
html_print_select_date_range('date', true, get_parameter('date', 'none'), $date_init, $time_init, date('Y/m/d'), date('H:i:s'), $date_text),
html_print_select_date_range('date', true, get_parameter('date', 'none'), $date_init, $time_init, $date_end, $time_end, $date_text),
);
} else {
$table2->data[0][2] = html_print_label_input_block(
__('Date').' ',
html_print_select_date_range('date', true, get_parameter('date', 'none'), $date_init, $time_init, date('Y/m/d'), date('H:i:s'), $date_text),
html_print_select_date_range('date', true, get_parameter('date', 'none'), $date_init, $time_init, $date_end, $time_end, $date_text),
['label_class' => 'filter_label_position_before']
);
}

View File

@ -6,7 +6,7 @@
%define debug_package %{nil}
%define name pandorafms_console
%define version 7.0NG.776
%define release 240325
%define release 240326
# User and Group under which Apache is running
%define httpd_name httpd

View File

@ -6,7 +6,7 @@
%define debug_package %{nil}
%define name pandorafms_console
%define version 7.0NG.776
%define release 240325
%define release 240326
# User and Group under which Apache is running
%define httpd_name httpd

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_console
%define version 7.0NG.776
%define release 240325
%define release 240326
%define httpd_name httpd
# User and Group under which Apache is running
%define httpd_name apache2

View File

@ -1326,6 +1326,7 @@ CREATE TABLE IF NOT EXISTS `tusuario` (
`allowed_ip_list` TEXT,
`auth_token_secret` VARCHAR(45) DEFAULT NULL,
`session_max_time_expire` INT NOT NULL DEFAULT 0,
`stop_lts_modal` TINYINT NOT NULL DEFAULT 0,
CONSTRAINT `fk_filter_id` FOREIGN KEY (`id_filter`) REFERENCES tevent_filter (`id_filter`) ON DELETE SET NULL,
UNIQUE KEY `id_user` (`id_user`)
) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4;

View File

@ -2673,30 +2673,29 @@ INSERT INTO `tncm_agent_data_template_scripts`(`id_agent_data_template`, `id_scr
INSERT INTO `talert_calendar` VALUES (1, 'Default', 0, 'Default calendar');
INSERT INTO `twelcome_tip` VALUES
(1,'es',0,'¿Sab&iacute;as&#x20;que&#x20;puedes&#x20;monitorizar&#x20;webs?','De&#x20;manera&#x20;sencilla&#x20;a&#x20;trav&eacute;s&#x20;de&#x20;chequeos&#x20;HTTP&#x20;est&aacute;ndar&#x20;o&#x20;transaccional&#x20;mediante&#x20;transacciones&#x20;centralizadas&#x20;WUX,&#x20;o&#x20;descentralizadas&#x20;con&#x20;el&#x20;plugin&#x20;UX&#x20;de&#x20;agente.','https://pandorafms.com/manual/es/documentation/03_monitoring/06_web_monitoring','1'),
(2,'es',0,'Monitorizaci&oacute;n&#x20;remota&#x20;de&#x20;dispositivos&#x20;SNMP','Los&#x20;dispositivos&#x20;de&#x20;red&#x20;como&#x20;switches,&#x20;AP,&#x20;routers&#x20;y&#x20;firewalls&#x20;se&#x20;pueden&#x20;monitorizar&#x20;remotamente&#x20;usando&#x20;el&#x20;protocolo&#x20;SNMP.&#x20;Basta&#x20;con&#x20;saber&#x20;su&#x20;IP,&#x20;la&#x20;comunidad&#x20;SNMP&#x20;y&#x20;lanzar&#x20;un&#x20;wizard&#x20;SNMP&#x20;desde&#x20;la&#x20;consola.','https://pandorafms.com/manual/es/documentation/03_monitoring/03_remote_monitoring#monitorizacion_snmp','1'),
(3,'es',0,'Monitorizar&#x20;rutas&#x20;desde&#x20;una&#x20;IP&#x20;a&#x20;otra','Existe&#x20;un&#x20;plugin&#x20;especial&#x20;que&#x20;sirve&#x20;para&#x20;monitorizar&#x20;visualmente&#x20;las&#x20;rutas&#x20;desde&#x20;una&#x20;IP&#x20;a&#x20;otra&#x20;de&#x20;manera&#x20;visual&#x20;y&#x20;din&aacute;mica,&#x20;seg&uacute;n&#x20;va&#x20;cambiando&#x20;con&#x20;el&#x20;tiempo.','https://pandorafms.com/manual/es/documentation/03_monitoring/03_remote_monitoring#monitorizacion_de_rutas','1'),
(1,'es',0,'¿Sab&iacute;as&#x20;que&#x20;puedes&#x20;monitorizar&#x20;webs?','De&#x20;manera&#x20;sencilla&#x20;a&#x20;trav&eacute;s&#x20;de&#x20;chequeos&#x20;HTTP&#x20;est&aacute;ndar&#x20;o&#x20;transaccional&#x20;mediante&#x20;transacciones&#x20;centralizadas&#x20;WUX,&#x20;o&#x20;descentralizadas&#x20;con&#x20;el&#x20;plugin&#x20;UX&#x20;de&#x20;agente.','https://pandorafms.com/manual/!current/es/documentation/03_monitoring/06_web_monitoring','1'),
(2,'es',0,'Monitorizaci&oacute;n&#x20;remota&#x20;de&#x20;dispositivos&#x20;SNMP','Los&#x20;dispositivos&#x20;de&#x20;red&#x20;como&#x20;switches,&#x20;AP,&#x20;routers&#x20;y&#x20;firewalls&#x20;se&#x20;pueden&#x20;monitorizar&#x20;remotamente&#x20;usando&#x20;el&#x20;protocolo&#x20;SNMP.&#x20;Basta&#x20;con&#x20;saber&#x20;su&#x20;IP,&#x20;la&#x20;comunidad&#x20;SNMP&#x20;y&#x20;lanzar&#x20;un&#x20;wizard&#x20;SNMP&#x20;desde&#x20;la&#x20;consola.','https://pandorafms.com/manual/!current/es/documentation/03_monitoring/03_remote_monitoring#monitorizacion_snmp','1'),
(3,'es',0,'Monitorizar&#x20;rutas&#x20;desde&#x20;una&#x20;IP&#x20;a&#x20;otra','Existe&#x20;un&#x20;plugin&#x20;especial&#x20;que&#x20;sirve&#x20;para&#x20;monitorizar&#x20;visualmente&#x20;las&#x20;rutas&#x20;desde&#x20;una&#x20;IP&#x20;a&#x20;otra&#x20;de&#x20;manera&#x20;visual&#x20;y&#x20;din&aacute;mica,&#x20;seg&uacute;n&#x20;va&#x20;cambiando&#x20;con&#x20;el&#x20;tiempo.','https://pandorafms.com/manual/!current/es/documentation/03_monitoring/03_remote_monitoring#monitorizacion_de_rutas','1'),
(4,'es',0,'¿Tu&#x20;red&#x20;pierde&#x20;paquetes?','Se&#x20;puede&#x20;medir&#x20;la&#x20;p&eacute;rdida&#x20;de&#x20;paquetes&#x20;en&#x20;tu&#x20;red&#x20;usando&#x20;un&#x20;agente&#x20;y&#x20;un&#x20;plugin&#x20;libre&#x20;llamado&#x20;&ldquo;Packet&#x20;Loss&rdquo;.&#x20;Esto&#x20;es&#x20;especialmente&#x20;&uacute;til&#x20;en&#x20;redes&#x20;Wifi&#x20;o&#x20;redes&#x20;compartidas&#x20;con&#x20;muchos&#x20;usuarios.&#x20;Escribimos&#x20;un&#x20;art&iacute;culo&#x20;en&#x20;nuestro&#x20;blog&#x20;hablando&#x20;de&#x20;ello,&#x20;echale&#x20;un&#x20;vistazo','https://pandorafms.com/blog/es/perdida-de-paquetes/','1'),
(5,'es',0,'Usar&#x20;Telegram&#x20;con&#x20;Pandora&#x20;FMS','Perfecto&#x20;para&#x20;recibir&#x20;alertas&#x20;con&#x20;gr&aacute;ficas&#x20;empotradas&#x20;y&#x20;personalizar&#x20;as&iacute;&#x20;la&#x20;recepci&oacute;n&#x20;de&#x20;avisos&#x20;de&#x20;manera&#x20;individual&#x20;o&#x20;en&#x20;un&#x20;canal&#x20;com&uacute;n&#x20;con&#x20;mas&#x20;personas.&#x20;','https://pandorafms.com/library/telegram-bot-cli/','1'),
(6,'es',0,'Monitorizar&#x20;JMX&#x20;&#40;Tomcat,&#x20;Websphere,&#x20;Weblogic,&#x20;Jboss,&#x20;Apache&#x20;Kafka,&#x20;Jetty,&#x20;GlassFish&hellip;&#41;','Existe&#x20;un&#x20;plugin&#x20;Enterprise&#x20;que&#x20;sirve&#x20;para&#x20;monitorizar&#x20;cualquier&#x20;tecnolog&iacute;a&#x20;JMX.&#x20;Se&#x20;puede&#x20;usar&#x20;de&#x20;manera&#x20;local&#x20;&#40;como&#x20;plugin&#x20;local&#41;&#x20;o&#x20;de&#x20;manera&#x20;remota&#x20;con&#x20;el&#x20;plugin&#x20;server.','https://pandorafms.com/library/jmx-monitoring/','1'),
(7,'es',0,'¿Sabes&#x20;que&#x20;cada&#x20;usuario&#x20;puede&#x20;tener&#x20;su&#x20;propia&#x20;Zona&#x20;Horaria?','Se&#x20;puede&#x20;establecer&#x20;zonas&#x20;horarias&#x20;diferentes&#x20;para&#x20;cada&#x20;usuario,&#x20;de&#x20;manera&#x20;que&#x20;interprete&#x20;los&#x20;datos&#x20;teniendo&#x20;en&#x20;cuenta&#x20;la&#x20;diferencia&#x20;horaria.&#x20;Pandora&#x20;FMS&#x20;tambi&eacute;n&#x20;puede&#x20;tener&#x20;servidores&#x20;y&#x20;agentes&#x20;en&#x20;diferentes&#x20;zonas&#x20;horarias.&#x20;¡Por&#x20;todo&#x20;el&#x20;mundo!','','1'),
(8,'es',0,'Paradas&#x20;planificadas','Se&#x20;puede&#x20;definir,&#x20;a&#x20;nivel&#x20;de&#x20;agente&#x20;y&#x20;a&#x20;nivel&#x20;de&#x20;m&oacute;dulo,&#x20;per&iacute;odos&#x20;en&#x20;los&#x20;cuales&#x20;se&#x20;ignoren&#x20;las&#x20;alertas&#x20;y/o&#x20;los&#x20;datos&#x20;recogidos.&#x20;Es&#x20;perfecto&#x20;para&#x20;planificar&#x20;paradas&#x20;de&#x20;servicio&#x20;o&#x20;desconexi&oacute;n&#x20;de&#x20;los&#x20;sistemas&#x20;monitorizados.&#x20;Tambi&eacute;n&#x20;afecta&#x20;a&#x20;los&#x20;informes&#x20;SLA,&#x20;evitando&#x20;que&#x20;se&#x20;tengan&#x20;en&#x20;cuenta&#x20;esos&#x20;intervalos&#x20;de&#x20;tiempo.&#x20;&#x20;&#x20;&#x20;','https://pandorafms.com/manual/es/documentation/04_using/11_managing_and_administration#paradas_de_servicio_planificadas','1'),
(9,'es',0,'Personalizar&#x20;los&#x20;emails&#x20;de&#x20;alerta&#x20;','¿Sab&iacute;as&#x20;que&#x20;se&#x20;pueden&#x20;personalizar&#x20;los&#x20;mails&#x20;de&#x20;alertas&#x20;de&#x20;Pandora?&#x20;Solo&#x20;tienes&#x20;que&#x20;editar&#x20;el&#x20;c&oacute;digo&#x20;HTML&#x20;por&#x20;defecto&#x20;de&#x20;las&#x20;acciones&#x20;de&#x20;alerta&#x20;de&#x20;tipo&#x20;email.&#x20;&#x20;','https://pandorafms.com/manual/en/documentation/04_using/01_alerts#editing_an_action','1'),
(10,'es',0,'Usando&#x20;iconos&#x20;personalizados&#x20;en&#x20;consolas&#x20;visuales&#x20;','Gracias&#x20;a&#x20;los&#x20;iconos&#x20;personalizados&#x20;se&#x20;pueden&#x20;crear&#x20;vistas&#x20;muy&#x20;personalizadas,&#x20;como&#x20;la&#x20;de&#x20;la&#x20;imagen,&#x20;que&#x20;representa&#x20;racks&#x20;con&#x20;los&#x20;tipos&#x20;de&#x20;servidores&#x20;en&#x20;el&#x20;orden&#x20;que&#x20;est&aacute;n&#x20;colocados&#x20;dentro&#x20;del&#x20;rack.&#x20;Perfecto&#x20;para&#x20;que&#x20;un&#x20;t&eacute;cnico&#x20;sepa&#x20;exactamente&#x20;qu&eacute;&#x20;m&aacute;quina&#x20;esta&#x20;fallando.&#x20;M&aacute;s&#x20;visual&#x20;no&#x20;puede&#x20;ser,&#x20;de&#x20;ahi&#x20;el&#x20;nombre.&#x20;&#x20;','https://pandorafms.com/manual/start?id=es/documentation/04_using/05_data_presentation_visual_maps','1'),
(11,'es',0,'Consolas&#x20;visuales:&#x20;mapas&#x20;de&#x20;calor&#x20;','La&#x20;consola&#x20;permite&#x20;integrar&#x20;en&#x20;un&#x20;fondo&#x20;personalizado&#x20;una&#x20;serie&#x20;de&#x20;datos,&#x20;que&#x20;en&#x20;funci&oacute;n&#x20;de&#x20;su&#x20;valor&#x20;se&#x20;representen&#x20;con&#x20;unos&#x20;colores&#x20;u&#x20;otros,&#x20;en&#x20;tiempo&#x20;real.&#x20;Las&#x20;aplicaciones&#x20;son&#x20;infinitas,&#x20;solo&#x20;depende&#x20;de&#x20;tu&#x20;imaginaci&oacute;n.&#x20;&#x20;&#x20;','https://pandorafms.com/manual/es/documentation/04_using/05_data_presentation_visual_maps#mapa_de_calor_o_nube_de_color','1'),
(12,'es',0,'Auditor&iacute;a&#x20;interna&#x20;de&#x20;la&#x20;consola&#x20;','La&#x20;consola&#x20;registra&#x20;todas&#x20;las&#x20;actividades&#x20;relevantes&#x20;de&#x20;cada&#x20;usuario&#x20;conectado&#x20;a&#x20;la&#x20;consola.&#x20;Esto&#x20;incluye&#x20;la&#x20;aplicaci&oacute;n&#x20;de&#x20;configuraciones,&#x20;validaciones&#x20;de&#x20;eventos&#x20;y&#x20;alertas,&#x20;conexi&oacute;n&#x20;y&#x20;desconexi&oacute;n&#x20;y&#x20;cientos&#x20;de&#x20;otras&#x20;operaciones.&#x20;La&#x20;seguridad&#x20;en&#x20;Pandora&#x20;FMS&#x20;ha&#x20;sido&#x20;siempre&#x20;una&#x20;de&#x20;las&#x20;caracter&iacute;sticas&#x20;del&#x20;dise&ntilde;o&#x20;de&#x20;su&#x20;arquitectura.&#x20;&#x20;','https://pandorafms.com/manual/es/documentation/04_using/11_managing_and_administration#log_de_auditoria','1'),
(13,'es',0,'Sistema&#x20;de&#x20;provisi&oacute;n&#x20;autom&aacute;tica&#x20;de&#x20;agentes&#x20;','El&#x20;sistema&#x20;de&#x20;autoprovisi&oacute;n&#x20;de&#x20;agentes,&#x20;permite&#x20;que&#x20;un&#x20;agente&#x20;reci&eacute;n&#x20;ingresado&#x20;en&#x20;el&#x20;sistema&#x20;aplique&#x20;autom&aacute;ticamente&#x20;cambios&#x20;en&#x20;su&#x20;configuraci&oacute;n&#x20;&#40;como&#x20;moverlo&#x20;de&#x20;grupo,&#x20;asignarle&#x20;ciertos&#x20;valores&#x20;en&#x20;campos&#x20;personalizados&#41;&#x20;y&#x20;por&#x20;supuesto&#x20;aplicarle&#x20;determinadas&#x20;politicas&#x20;de&#x20;monitorizaci&oacute;n.&#x20;Es&#x20;una&#x20;de&#x20;las&#x20;funcionalidades&#x20;m&aacute;s&#x20;potentes,&#x20;orientadas&#x20;a&#x20;gestionar&#x20;parques&#x20;de&#x20;sistemas&#x20;muy&#x20;extensos.&#x20;&#x20;','https://pandorafms.com/manual/start?id=es/documentation/02_installation/05_configuration_agents#configuracion_automatica_de_agentes','1'),
(8,'es',0,'Paradas&#x20;planificadas','Se&#x20;puede&#x20;definir,&#x20;a&#x20;nivel&#x20;de&#x20;agente&#x20;y&#x20;a&#x20;nivel&#x20;de&#x20;m&oacute;dulo,&#x20;per&iacute;odos&#x20;en&#x20;los&#x20;cuales&#x20;se&#x20;ignoren&#x20;las&#x20;alertas&#x20;y/o&#x20;los&#x20;datos&#x20;recogidos.&#x20;Es&#x20;perfecto&#x20;para&#x20;planificar&#x20;paradas&#x20;de&#x20;servicio&#x20;o&#x20;desconexi&oacute;n&#x20;de&#x20;los&#x20;sistemas&#x20;monitorizados.&#x20;Tambi&eacute;n&#x20;afecta&#x20;a&#x20;los&#x20;informes&#x20;SLA,&#x20;evitando&#x20;que&#x20;se&#x20;tengan&#x20;en&#x20;cuenta&#x20;esos&#x20;intervalos&#x20;de&#x20;tiempo.&#x20;&#x20;&#x20;&#x20;','https://pandorafms.com/manual/!current/es/documentation/04_using/11_managing_and_administration#paradas_de_servicio_planificadas','1'),
(9,'es',0,'Personalizar&#x20;los&#x20;emails&#x20;de&#x20;alerta&#x20;','¿Sab&iacute;as&#x20;que&#x20;se&#x20;pueden&#x20;personalizar&#x20;los&#x20;mails&#x20;de&#x20;alertas&#x20;de&#x20;Pandora?&#x20;Solo&#x20;tienes&#x20;que&#x20;editar&#x20;el&#x20;c&oacute;digo&#x20;HTML&#x20;por&#x20;defecto&#x20;de&#x20;las&#x20;acciones&#x20;de&#x20;alerta&#x20;de&#x20;tipo&#x20;email.&#x20;&#x20;','https://pandorafms.com/manual/!current/es/documentation/pandorafms/management_and_operation/01_alerts#configuracion_de_correos_para_alertas_en_pandora_fms','1'),
(10,'es',0,'Usando&#x20;iconos&#x20;personalizados&#x20;en&#x20;consolas&#x20;visuales&#x20;','Gracias&#x20;a&#x20;los&#x20;iconos&#x20;personalizados&#x20;se&#x20;pueden&#x20;crear&#x20;vistas&#x20;muy&#x20;personalizadas,&#x20;como&#x20;la&#x20;de&#x20;la&#x20;imagen,&#x20;que&#x20;representa&#x20;racks&#x20;con&#x20;los&#x20;tipos&#x20;de&#x20;servidores&#x20;en&#x20;el&#x20;orden&#x20;que&#x20;est&aacute;n&#x20;colocados&#x20;dentro&#x20;del&#x20;rack.&#x20;Perfecto&#x20;para&#x20;que&#x20;un&#x20;t&eacute;cnico&#x20;sepa&#x20;exactamente&#x20;qu&eacute;&#x20;m&aacute;quina&#x20;esta&#x20;fallando.&#x20;M&aacute;s&#x20;visual&#x20;no&#x20;puede&#x20;ser,&#x20;de&#x20;ahi&#x20;el&#x20;nombre.&#x20;&#x20;','https://pandorafms.com/manual/!current/start?id=es/documentation/04_using/05_data_presentation_visual_maps','1'),
(11,'es',0,'Consolas&#x20;visuales:&#x20;mapas&#x20;de&#x20;calor&#x20;','La&#x20;consola&#x20;permite&#x20;integrar&#x20;en&#x20;un&#x20;fondo&#x20;personalizado&#x20;una&#x20;serie&#x20;de&#x20;datos,&#x20;que&#x20;en&#x20;funci&oacute;n&#x20;de&#x20;su&#x20;valor&#x20;se&#x20;representen&#x20;con&#x20;unos&#x20;colores&#x20;u&#x20;otros,&#x20;en&#x20;tiempo&#x20;real.&#x20;Las&#x20;aplicaciones&#x20;son&#x20;infinitas,&#x20;solo&#x20;depende&#x20;de&#x20;tu&#x20;imaginaci&oacute;n.&#x20;&#x20;&#x20;','https://pandorafms.com/manual/!current/es/documentation/04_using/05_data_presentation_visual_maps#mapa_de_calor_o_nube_de_color','1'),
(12,'es',0,'Auditor&iacute;a&#x20;interna&#x20;de&#x20;la&#x20;consola&#x20;','La&#x20;consola&#x20;registra&#x20;todas&#x20;las&#x20;actividades&#x20;relevantes&#x20;de&#x20;cada&#x20;usuario&#x20;conectado&#x20;a&#x20;la&#x20;consola.&#x20;Esto&#x20;incluye&#x20;la&#x20;aplicaci&oacute;n&#x20;de&#x20;configuraciones,&#x20;validaciones&#x20;de&#x20;eventos&#x20;y&#x20;alertas,&#x20;conexi&oacute;n&#x20;y&#x20;desconexi&oacute;n&#x20;y&#x20;cientos&#x20;de&#x20;otras&#x20;operaciones.&#x20;La&#x20;seguridad&#x20;en&#x20;Pandora&#x20;FMS&#x20;ha&#x20;sido&#x20;siempre&#x20;una&#x20;de&#x20;las&#x20;caracter&iacute;sticas&#x20;del&#x20;dise&ntilde;o&#x20;de&#x20;su&#x20;arquitectura.&#x20;&#x20;','https://pandorafms.com/manual/!current/es/documentation/04_using/11_managing_and_administration#log_de_auditoria','1'),
(13,'es',0,'Sistema&#x20;de&#x20;provisi&oacute;n&#x20;autom&aacute;tica&#x20;de&#x20;agentes&#x20;','El&#x20;sistema&#x20;de&#x20;autoprovisi&oacute;n&#x20;de&#x20;agentes,&#x20;permite&#x20;que&#x20;un&#x20;agente&#x20;reci&eacute;n&#x20;ingresado&#x20;en&#x20;el&#x20;sistema&#x20;aplique&#x20;autom&aacute;ticamente&#x20;cambios&#x20;en&#x20;su&#x20;configuraci&oacute;n&#x20;&#40;como&#x20;moverlo&#x20;de&#x20;grupo,&#x20;asignarle&#x20;ciertos&#x20;valores&#x20;en&#x20;campos&#x20;personalizados&#41;&#x20;y&#x20;por&#x20;supuesto&#x20;aplicarle&#x20;determinadas&#x20;politicas&#x20;de&#x20;monitorizaci&oacute;n.&#x20;Es&#x20;una&#x20;de&#x20;las&#x20;funcionalidades&#x20;m&aacute;s&#x20;potentes,&#x20;orientadas&#x20;a&#x20;gestionar&#x20;parques&#x20;de&#x20;sistemas&#x20;muy&#x20;extensos.&#x20;&#x20;','https://pandorafms.com/manual/!current/start?id=es/documentation/02_installation/05_configuration_agents#configuracion_automatica_de_agentes','1'),
(14,'es',0,'Modo&#x20;oscuro&#x20;','¿Sabes&#x20;que&#x20;existe&#x20;un&#x20;modo&#x20;oscuro&#x20;en&#x20;Pandora&#x20;FMS?&#x20;Un&#x20;administrador&#x20;lo&#x20;puede&#x20;activar&#x20;a&#x20;nivel&#x20;global&#x20;desde&#x20;las&#x20;opciones&#x20;de&#x20;configuraci&oacute;n&#x20;visuales&#x20;o&#x20;cualquier&#x20;usuario&#x20;a&#x20;nivel&#x20;individual,&#x20;en&#x20;las&#x20;opciones&#x20;de&#x20;usuario.&#x20;','','1'),
(15,'es',0,'Google&#x20;Sheet&#x20;','¿Sabes&#x20;que&#x20;se&#x20;puede&#x20;coger&#x20;el&#x20;valor&#x20;de&#x20;una&#x20;celda&#x20;de&#x20;una&#x20;hoja&#x20;de&#x20;c&aacute;lculo&#x20;de&#x20;Google&#x20;Sheet?,&#x20;utilizamos&#x20;la&#x20;API&#x20;para&#x20;pedir&#x20;el&#x20;dato&#x20;a&#x20;trav&eacute;s&#x20;de&#x20;un&#x20;plugin&#x20;remoto.&#x20;Es&#x20;perfecto&#x20;para&#x20;construir&#x20;cuadros&#x20;de&#x20;mando&#x20;de&#x20;negocio,&#x20;obtener&#x20;alertas&#x20;en&#x20;tiempo&#x20;real&#x20;y&#x20;crear&#x20;tus&#x20;propios&#x20;informes&#x20;a&#x20;medida.&#x20;&#x20;','https://pandorafms.com/library/google-sheets-plugin/','1'),
(16,'es',0,'Tablas&#x20;de&#x20;ARP','¿Sabes&#x20;que&#x20;existe&#x20;un&#x20;m&oacute;dulo&#x20;de&#x20;inventario&#x20;para&#x20;sacar&#x20;las&#x20;tablas&#x20;ARP&#x20;de&#x20;tus&#x20;servidores&#x20;windows?&#x20;Es&#x20;f&aacute;cil&#x20;de&#x20;instalar&#x20;y&#x20;puede&#x20;darte&#x20;informaci&oacute;n&#x20;muy&#x20;detallada&#x20;de&#x20;tus&#x20;equipos.','https://pandorafms.com/library/arp-table-windows-local/','1'),
(17,'es',0,'Enlaces&#x20;de&#x20;red&#x20;en&#x20;la&#x20;consola&#x20;visual&#x20;','Existe&#x20;un&#x20;elemento&#x20;de&#x20;consola&#x20;visual&#x20;llamado&#x20;&ldquo;Network&#x20;link&rdquo;&#x20;que&#x20;permite&#x20;mostrar&#x20;visualmente&#x20;la&#x20;uni&oacute;n&#x20;de&#x20;dos&#x20;interfaces&#x20;de&#x20;red,&#x20;su&#x20;estado&#x20;y&#x20;el&#x20;tr&aacute;fico&#x20;de&#x20;subida/bajada,&#x20;de&#x20;una&#x20;manera&#x20;muy&#x20;visual.&#x20;&#x20;','https://pandorafms.com/manual/es/documentation/04_using/05_data_presentation_visual_maps#enlace_de_red','1'),
(17,'es',0,'Enlaces&#x20;de&#x20;red&#x20;en&#x20;la&#x20;consola&#x20;visual&#x20;','Existe&#x20;un&#x20;elemento&#x20;de&#x20;consola&#x20;visual&#x20;llamado&#x20;&ldquo;Network&#x20;link&rdquo;&#x20;que&#x20;permite&#x20;mostrar&#x20;visualmente&#x20;la&#x20;uni&oacute;n&#x20;de&#x20;dos&#x20;interfaces&#x20;de&#x20;red,&#x20;su&#x20;estado&#x20;y&#x20;el&#x20;tr&aacute;fico&#x20;de&#x20;subida/bajada,&#x20;de&#x20;una&#x20;manera&#x20;muy&#x20;visual.&#x20;&#x20;','https://pandorafms.com/manual/!current/es/documentation/04_using/05_data_presentation_visual_maps#enlace_de_red','1'),
(18,'es',0,'¿Conoces&#x20;los&#x20;informes&#x20;de&#x20;disponibilidad?&#x20;','Son&#x20;muy&#x20;&uacute;tiles&#x20;ya&#x20;que&#x20;te&#x20;dicen&#x20;el&#x20;tiempo&#x20;&#40;%&#41;&#x20;que&#x20;un&#x20;chequeo&#x20;ha&#x20;estado&#x20;en&#x20;diferentes&#x20;estados&#x20;a&#x20;lo&#x20;largo&#x20;de&#x20;un&#x20;lapso&#x20;de&#x20;tiempo,&#x20;por&#x20;ejemplo,&#x20;una&#x20;semana.&#x20;Ofrece&#x20;datos&#x20;crudos&#x20;completos&#x20;de&#x20;lo&#x20;que&#x20;se&#x20;ha&#x20;hecho&#x20;con&#x20;el&#x20;detalle&#x20;suficiente&#x20;para&#x20;convencer&#x20;a&#x20;un&#x20;proveedor&#x20;o&#x20;un&#x20;cliente.&#x20;&#x20;','','1'),
(19,'es',0,'Gr&aacute;ficas&#x20;de&#x20;disponibilidad&#x20;','Parecidos&#x20;a&#x20;los&#x20;informes&#x20;de&#x20;disponibilidad,&#x20;pero&#x20;mucho&#x20;mas&#x20;visuales,&#x20;ofrecen&#x20;el&#x20;detalle&#x20;de&#x20;estado&#x20;de&#x20;un&#x20;monitor&#x20;a&#x20;lo&#x20;largo&#x20;del&#x20;tiempo.&#x20;Se&#x20;pueden&#x20;agrupar&#x20;con&#x20;otro&#x20;m&oacute;dulo&#x20;para&#x20;ofrecer&#x20;datos&#x20;finales&#x20;teniendo&#x20;en&#x20;cuenta&#x20;la&#x20;alta&#x20;disponibilidad&#x20;de&#x20;un&#x20;servicio.&#x20;Son&#x20;perfectos&#x20;para&#x20;su&#x20;uso&#x20;en&#x20;informes&#x20;a&#x20;proveedores&#x20;y/o&#x20;clientes.&#x20;&#x20;','https://pandorafms.com/manual/es/documentation/04_using/08_data_presentation_reports#grafico_de_disponibilidad','1'),
(19,'es',0,'Gr&aacute;ficas&#x20;de&#x20;disponibilidad&#x20;','Parecidos&#x20;a&#x20;los&#x20;informes&#x20;de&#x20;disponibilidad,&#x20;pero&#x20;mucho&#x20;mas&#x20;visuales,&#x20;ofrecen&#x20;el&#x20;detalle&#x20;de&#x20;estado&#x20;de&#x20;un&#x20;monitor&#x20;a&#x20;lo&#x20;largo&#x20;del&#x20;tiempo.&#x20;Se&#x20;pueden&#x20;agrupar&#x20;con&#x20;otro&#x20;m&oacute;dulo&#x20;para&#x20;ofrecer&#x20;datos&#x20;finales&#x20;teniendo&#x20;en&#x20;cuenta&#x20;la&#x20;alta&#x20;disponibilidad&#x20;de&#x20;un&#x20;servicio.&#x20;Son&#x20;perfectos&#x20;para&#x20;su&#x20;uso&#x20;en&#x20;informes&#x20;a&#x20;proveedores&#x20;y/o&#x20;clientes.&#x20;&#x20;','https://pandorafms.com/manual/!current/es/documentation/04_using/08_data_presentation_reports#grafico_de_disponibilidad','1'),
(20,'es',0,'Zoom&#x20;en&#x20;gr&aacute;ficas&#x20;de&#x20;datos&#x20;','¿Sabes&#x20;que&#x20;Pandora&#x20;FMS&#x20;permite&#x20;hacer&#x20;zoom&#x20;en&#x20;una&#x20;parte&#x20;de&#x20;la&#x20;gr&aacute;fica.&#x20;Con&#x20;eso&#x20;ampliar&aacute;s&#x20;la&#x20;informaci&oacute;n&#x20;de&#x20;la&#x20;gr&aacute;fica.&#x20;Si&#x20;est&aacute;s&#x20;viendo&#x20;una&#x20;gr&aacute;fica&#x20;de&#x20;un&#x20;mes&#x20;y&#x20;ampl&iacute;as,&#x20;podr&aacute;s&#x20;ver&#x20;los&#x20;datos&#x20;de&#x20;ese&#x20;intervalo.&#x20;Si&#x20;utilizas&#x20;una&#x20;gr&aacute;fica&#x20;con&#x20;datos&#x20;de&#x20;resoluci&oacute;n&#x20;completa&#x20;&#40;los&#x20;llamamos&#x20;gr&aacute;ficas&#x20;TIP&#41;&#x20;podr&aacute;s&#x20;ver&#x20;el&#x20;detalle&#x20;de&#x20;cada&#x20;dato,&#x20;aunque&#x20;tu&#x20;gr&aacute;fica&#x20;tenga&#x20;miles&#x20;de&#x20;muestras.&#x20;&#x20;','','1'),
(21,'es',0,'Gr&aacute;ficas&#x20;de&#x20;resoluci&oacute;n&#x20;completa&#x20;','Pandora&#x20;FMS&#x20;y&#x20;otras&#x20;herramientas&#x20;cuando&#x20;tienen&#x20;que&#x20;mostrar&#x20;una&#x20;gr&aacute;fica&#x20;obtienen&#x20;los&#x20;datos&#x20;de&#x20;la&#x20;fuente&#x20;de&#x20;datos&#x20;y&#x20;luego&#x20;&ldquo;simplifican&rdquo;&#x20;la&#x20;gr&aacute;fica,&#x20;ya&#x20;que&#x20;si&#x20;la&#x20;serie&#x20;de&#x20;datos&#x20;tiene&#x20;10,000&#x20;elementos&#x20;y&#x20;la&#x20;gr&aacute;fica&#x20;solo&#x20;tiene&#x20;300&#x20;pixeles&#x20;de&#x20;ancho&#x20;no&#x20;pueden&#x20;caber&#x20;todos,&#x20;asi&#x20;que&#x20;se&#x20;&ldquo;simplifican&rdquo;&#x20;esos&#x20;10,000&#x20;puntos&#x20;en&#x20;solo&#x20;300.&#x20;&#x20;&#x20;Sin&#x20;embargo&#x20;al&#x20;simplificar&#x20;se&#x20;pierde&#x20;&ldquo;detalle&rdquo;&#x20;en&#x20;la&#x20;gr&aacute;fica,&#x20;y&#x20;por&#x20;supuesto&#x20;no&#x20;podemos&#x20;&ldquo;hacer&#x20;zoom&rdquo;.&#x20;Las&#x20;gr&aacute;ficas&#x20;de&#x20;Pandora&#x20;FMS&#x20;permiten&#x20;mostrar&#x20;y&#x20;usar&#x20;todos&#x20;los&#x20;datos&#x20;en&#x20;una&#x20;gr&aacute;fica,&#x20;que&#x20;llamamos&#x20;&ldquo;TIP&rdquo;&#x20;que&#x20;muestra&#x20;todos&#x20;los&#x20;puntos&#x20;superpuestos&#x20;y&#x20;adem&aacute;s&#x20;permite&#x20;que&#x20;al&#x20;hacer&#x20;zoom&#x20;no&#x20;se&#x20;pierda&#x20;resoluci&oacute;n.&#x20;&#x20;&#x20;','','1'),
(22,'es',0,'Pol&iacute;tica&#x20;de&#x20;contrase&ntilde;as','La&#x20;consola&#x20;de&#x20;Pandora&#x20;FMS&#x20;tiene&#x20;un&#x20;sistema&#x20;de&#x20;gesti&oacute;n&#x20;de&#x20;pol&iacute;tica&#x20;de&#x20;credenciales,&#x20;para&#x20;reforzar&#x20;la&#x20;seguridad&#x20;local&#x20;&#40;adem&aacute;s&#x20;de&#x20;permitir&#x20;la&#x20;autenticaci&oacute;n&#x20;externa&#x20;contra&#x20;un&#x20;LDAP,&#x20;Active&#x20;Directory&#x20;o&#x20;SAML&#41;.&#x20;A&#x20;trav&eacute;s&#x20;de&#x20;este&#x20;sistema&#x20;podemos&#x20;forzar&#x20;cambios&#x20;de&#x20;password&#x20;cada&#x20;X&#x20;d&iacute;as,&#x20;guardar&#x20;un&#x20;hist&oacute;rico&#x20;de&#x20;passwords&#x20;usadas&#x20;o&#x20;evitar&#x20;el&#x20;uso&#x20;de&#x20;ciertas&#x20;contrase&ntilde;as&#x20;entre&#x20;otras&#x20;acciones.&#x20;&#x20;','https://pandorafms.com/manual/es/documentation/04_using/12_console_setup?s%5B%5D%3Dcontrase%25C3%25B1as#password_policy','1'),
(23,'es',0,'Autenticaci&oacute;n&#x20;de&#x20;doble&#x20;factor&#x20;','Es&#x20;posible&#x20;activar&#x20;&#40;y&#x20;forzar&#x20;su&#x20;uso&#x20;a&#x20;todos&#x20;los&#x20;usuarios&#41;&#x20;un&#x20;sistema&#x20;de&#x20;doble&#x20;autenticaci&oacute;n&#x20;&#40;usando&#x20;Google&#x20;Auth&#41;&#x20;para&#x20;que&#x20;cualquier&#x20;usuario&#x20;se&#x20;autentique&#x20;adem&aacute;s&#x20;de&#x20;con&#x20;una&#x20;contrase&ntilde;a,&#x20;con&#x20;un&#x20;sistema&#x20;de&#x20;token&#x20;de&#x20;un&#x20;solo&#x20;uso,&#x20;dando&#x20;al&#x20;sistema&#x20;mucha&#x20;m&aacute;s&#x20;seguridad.&#x20;&#x20;','https://pandorafms.com/manual/en/documentation/04_using/12_console_setup?s%5B%5D%3Dgoogle%26s%5B%5D%3Dauth#authentication','1');
(22,'es',0,'Pol&iacute;tica&#x20;de&#x20;contrase&ntilde;as','La&#x20;consola&#x20;de&#x20;Pandora&#x20;FMS&#x20;tiene&#x20;un&#x20;sistema&#x20;de&#x20;gesti&oacute;n&#x20;de&#x20;pol&iacute;tica&#x20;de&#x20;credenciales,&#x20;para&#x20;reforzar&#x20;la&#x20;seguridad&#x20;local&#x20;&#40;adem&aacute;s&#x20;de&#x20;permitir&#x20;la&#x20;autenticaci&oacute;n&#x20;externa&#x20;contra&#x20;un&#x20;LDAP,&#x20;Active&#x20;Directory&#x20;o&#x20;SAML&#41;.&#x20;A&#x20;trav&eacute;s&#x20;de&#x20;este&#x20;sistema&#x20;podemos&#x20;forzar&#x20;cambios&#x20;de&#x20;password&#x20;cada&#x20;X&#x20;d&iacute;as,&#x20;guardar&#x20;un&#x20;hist&oacute;rico&#x20;de&#x20;passwords&#x20;usadas&#x20;o&#x20;evitar&#x20;el&#x20;uso&#x20;de&#x20;ciertas&#x20;contrase&ntilde;as&#x20;entre&#x20;otras&#x20;acciones.&#x20;&#x20;','https://pandorafms.com/manual/!current/es/documentation/04_using/12_console_setup?s%5B%5D%3Dcontrase%25C3%25B1as#password_policy','1'),
(23,'es',0,'Autenticaci&oacute;n&#x20;de&#x20;doble&#x20;factor&#x20;','Es&#x20;posible&#x20;activar&#x20;&#40;y&#x20;forzar&#x20;su&#x20;uso&#x20;a&#x20;todos&#x20;los&#x20;usuarios&#41;&#x20;un&#x20;sistema&#x20;de&#x20;doble&#x20;autenticaci&oacute;n&#x20;&#40;usando&#x20;Google&#x20;Auth&#41;&#x20;para&#x20;que&#x20;cualquier&#x20;usuario&#x20;se&#x20;autentique&#x20;adem&aacute;s&#x20;de&#x20;con&#x20;una&#x20;contrase&ntilde;a,&#x20;con&#x20;un&#x20;sistema&#x20;de&#x20;token&#x20;de&#x20;un&#x20;solo&#x20;uso,&#x20;dando&#x20;al&#x20;sistema&#x20;mucha&#x20;m&aacute;s&#x20;seguridad.&#x20;&#x20;','https://pandorafms.com/manual/!current/en/documentation/04_using/12_console_setup?s%5B%5D%3Dgoogle%26s%5B%5D%3Dauth#authentication','1');
INSERT INTO `twelcome_tip_file` (`twelcome_tip_file`, `filename`, `path`) VALUES
(1, 'monitorizar_web.png', 'images/tips/'),
(2, 'monitorizar_snmp.png', 'images/tips/'),
@ -2720,7 +2719,7 @@ INSERT INTO `twelcome_tip_file` (`twelcome_tip_file`, `filename`, `path`) VALUES
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'You&#x20;know&#x20;reports&#x20;of&#x20;Availability?','They&#x20;are&#x20;very&#x20;useful&#x20;as&#x20;they&#x20;tell&#x20;you&#x20;how&#x20;long&#x20;&#40;%&#41;&#x20;a&#x20;check&#x20;has&#x20;been&#x20;in&#x20;different&#x20;states&#x20;over&#x20;a&#x20;period&#x20;of&#x20;time,&#x20;say&#x20;a&#x20;week.&#x20;It&#x20;offers&#x20;complete&#x20;raw&#x20;data&#x20;of&#x20;what&#x20;has&#x20;been&#x20;done&#x20;in&#x20;enough&#x20;detail&#x20;to&#x20;convince&#x20;a&#x20;vendor&#x20;or&#x20;customer.','',1);
SELECT @last_id := LAST_INSERT_ID();
INSERT INTO `twelcome_tip_file` (`twelcome_tip_file`,`filename`,`path`) VALUES (@last_id,'informe_disponibiliad.png','images/tips/');
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Did&#x20;you&#x20;know&#x20;that&#x20;you&#x20;can&#x20;monitor&#x20;websites?','In&#x20;a&#x20;simple&#x20;way&#x20;through&#x20;standard&#x20;or&#x20;transactional&#x20;HTTP&#x20;checks&#x20;through&#x20;centralized&#x20;WUX&#x20;transactions,&#x20;or&#x20;decentralized&#x20;with&#x20;the&#x20;UX&#x20;agent&#x20;plugin.','https://pandorafms.com/manual/en/documentation/03_monitoring/06_web_monitoring',1);
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Did&#x20;you&#x20;know&#x20;that&#x20;you&#x20;can&#x20;monitor&#x20;websites?','In&#x20;a&#x20;simple&#x20;way&#x20;through&#x20;standard&#x20;or&#x20;transactional&#x20;HTTP&#x20;checks&#x20;through&#x20;centralized&#x20;WUX&#x20;transactions,&#x20;or&#x20;decentralized&#x20;with&#x20;the&#x20;UX&#x20;agent&#x20;plugin.','https://pandorafms.com/manual/!current/en/documentation/03_monitoring/06_web_monitoring',1);
SELECT @last_id := LAST_INSERT_ID();
INSERT INTO `twelcome_tip_file` (`twelcome_tip_file`,`filename`,`path`) VALUES (@last_id,'monitorizar_web.png','images/tips/');
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Did&#x20;you&#x20;know&#x20;that&#x20;each&#x20;user&#x20;can&#x20;have&#x20;their&#x20;own&#x20;Time&#x20;Zone?','Different&#x20;time&#x20;zones&#x20;can&#x20;be&#x20;established&#x20;for&#x20;each&#x20;user,&#x20;so&#x20;that&#x20;it&#x20;interprets&#x20;the&#x20;data&#x20;taking&#x20;into&#x20;account&#x20;the&#x20;time&#x20;difference.&#x20;Pandora&#x20;FMS&#x20;can&#x20;also&#x20;have&#x20;servers&#x20;and&#x20;agents&#x20;in&#x20;different&#x20;time&#x20;zones.&#x20;All&#x20;over&#x20;the&#x20;world!','',1);
@ -2729,47 +2728,47 @@ INSERT INTO `twelcome_tip_file` (`twelcome_tip_file`,`filename`,`path`) VALUES (
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Does&#x20;your&#x20;network&#x20;lose&#x20;packets?','You&#x20;can&#x20;measure&#x20;the&#x20;packet&#x20;loss&#x20;in&#x20;your&#x20;network&#x20;using&#x20;an&#x20;agent&#x20;and&#x20;a&#x20;free&#x20;plugin&#x20;called&#x20;&ldquo;Packet&#x20;Loss&rdquo;.&#x20;This&#x20;is&#x20;especially&#x20;useful&#x20;on&#x20;Wi-Fi&#x20;networks&#x20;or&#x20;networks&#x20;shared&#x20;with&#x20;many&#x20;users.&#x20;We&#x20;wrote&#x20;an&#x20;article&#x20;on&#x20;our&#x20;blog&#x20;talking&#x20;about&#x20;it,&#x20;check&#x20;it&#x20;out','https://pandorafms.com/blog/packet-loss/',1);
SELECT @last_id := LAST_INSERT_ID();
INSERT INTO `twelcome_tip_file` (`twelcome_tip_file`,`filename`,`path`) VALUES (@last_id,'tu_red_pierde_paquetes.png','images/tips/');
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Console&#x20;Internal&#x20;Audit','The&#x20;console&#x20;logs&#x20;all&#x20;relevant&#x20;activities&#x20;of&#x20;each&#x20;user&#x20;connected&#x20;to&#x20;the&#x20;console.&#x20;This&#x20;includes&#x20;the&#x20;application&#x20;of&#x20;configurations,&#x20;validation&#x20;of&#x20;events&#x20;and&#x20;alerts,&#x20;connection&#x20;and&#x20;disconnection,&#x20;and&#x20;hundreds&#x20;of&#x20;other&#x20;operations.&#x20;Security&#x20;in&#x20;Pandora&#x20;FMS&#x20;has&#x20;always&#x20;been&#x20;one&#x20;of&#x20;the&#x20;design&#x20;characteristics&#x20;of&#x20;its&#x20;architecture.','https://pandorafms.com/manual/en/documentation/04_using/11_managing_and_administration#log_de_auditoria',1);
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Console&#x20;Internal&#x20;Audit','The&#x20;console&#x20;logs&#x20;all&#x20;relevant&#x20;activities&#x20;of&#x20;each&#x20;user&#x20;connected&#x20;to&#x20;the&#x20;console.&#x20;This&#x20;includes&#x20;the&#x20;application&#x20;of&#x20;configurations,&#x20;validation&#x20;of&#x20;events&#x20;and&#x20;alerts,&#x20;connection&#x20;and&#x20;disconnection,&#x20;and&#x20;hundreds&#x20;of&#x20;other&#x20;operations.&#x20;Security&#x20;in&#x20;Pandora&#x20;FMS&#x20;has&#x20;always&#x20;been&#x20;one&#x20;of&#x20;the&#x20;design&#x20;characteristics&#x20;of&#x20;its&#x20;architecture.','https://pandorafms.com/manual/!current/en/documentation/04_using/11_managing_and_administration#log_de_auditoria',1);
SELECT @last_id := LAST_INSERT_ID();
INSERT INTO `twelcome_tip_file` (`twelcome_tip_file`,`filename`,`path`) VALUES (@last_id,'auditoria.png','images/tips/');
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Two-factor&#x20;authentication','It&#x20;is&#x20;possible&#x20;to&#x20;activate&#x20;&#40;and&#x20;force&#x20;its&#x20;use&#x20;to&#x20;all&#x20;users&#41;&#x20;a&#x20;double&#x20;authentication&#x20;system&#x20;&#40;using&#x20;Google&#x20;Auth&#41;&#x20;so&#x20;that&#x20;any&#x20;user&#x20;authenticates&#x20;in&#x20;addition&#x20;to&#x20;a&#x20;password,&#x20;with&#x20;a&#x20;single-use&#x20;token&#x20;system,&#x20;giving&#x20;the&#x20;system&#x20;much&#x20;more&#x20;security.','https://pandorafms.com/manual/en/documentation/04_using/12_console_setup?s%5B%5D%3Dgoogle%26s%5B%5D%',1);
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Two-factor&#x20;authentication','It&#x20;is&#x20;possible&#x20;to&#x20;activate&#x20;&#40;and&#x20;force&#x20;its&#x20;use&#x20;to&#x20;all&#x20;users&#41;&#x20;a&#x20;double&#x20;authentication&#x20;system&#x20;&#40;using&#x20;Google&#x20;Auth&#41;&#x20;so&#x20;that&#x20;any&#x20;user&#x20;authenticates&#x20;in&#x20;addition&#x20;to&#x20;a&#x20;password,&#x20;with&#x20;a&#x20;single-use&#x20;token&#x20;system,&#x20;giving&#x20;the&#x20;system&#x20;much&#x20;more&#x20;security.','https://pandorafms.com/manual/!current/en/documentation/04_using/12_console_setup?s%5B%5D%3Dgoogle%26s%5B%5D%',1);
SELECT @last_id := LAST_INSERT_ID();
INSERT INTO `twelcome_tip_file` (`twelcome_tip_file`,`filename`,`path`) VALUES (@last_id,'politica_de_pass.png','images/tips/');
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Visual&#x20;consoles:&#x20;heat&#x20;maps','The&#x20;console&#x20;allows&#x20;a&#x20;series&#x20;of&#x20;data&#x20;to&#x20;be&#x20;integrated&#x20;into&#x20;a&#x20;personalized&#x20;background,&#x20;which,&#x20;depending&#x20;on&#x20;their&#x20;value,&#x20;is&#x20;represented&#x20;with&#x20;one&#x20;color&#x20;or&#x20;another,&#x20;in&#x20;real&#x20;time.&#x20;The&#x20;applications&#x20;are&#x20;endless,&#x20;it&#x20;just&#x20;depends&#x20;on&#x20;your&#x20;imagination.','https://pandorafms.com/manual/en/documentation/04_using/05_data_presentation_visual_maps#mapa_de_cal',1);
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Visual&#x20;consoles:&#x20;heat&#x20;maps','The&#x20;console&#x20;allows&#x20;a&#x20;series&#x20;of&#x20;data&#x20;to&#x20;be&#x20;integrated&#x20;into&#x20;a&#x20;personalized&#x20;background,&#x20;which,&#x20;depending&#x20;on&#x20;their&#x20;value,&#x20;is&#x20;represented&#x20;with&#x20;one&#x20;color&#x20;or&#x20;another,&#x20;in&#x20;real&#x20;time.&#x20;The&#x20;applications&#x20;are&#x20;endless,&#x20;it&#x20;just&#x20;depends&#x20;on&#x20;your&#x20;imagination.','https://pandorafms.com/manual/!current/en/documentation/04_using/05_data_presentation_visual_maps#mapa_de_cal',1);
SELECT @last_id := LAST_INSERT_ID();
INSERT INTO `twelcome_tip_file` (`twelcome_tip_file`,`filename`,`path`) VALUES (@last_id,'mapa_de_calor.png','images/tips/');
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Network&#x20;links&#x20;in&#x20;the&#x20;visual&#x20;console','There&#x20;is&#x20;a&#x20;visual&#x20;console&#x20;element&#x20;called&#x20;&ldquo;Network&#x20;link&rdquo;&#x20;that&#x20;allows&#x20;to&#x20;visually&#x20;show&#x20;the&#x20;union&#x20;of&#x20;two&#x20;network&#x20;interfaces,&#x20;their&#x20;status&#x20;and&#x20;the&#x20;upload/download&#x20;traffic,&#x20;in&#x20;a&#x20;very&#x20;visual&#x20;way.','https://pandorafms.com/manual/en/documentation/04_using/05_data_presentation_visual_maps#enlace_de_red',1);
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Network&#x20;links&#x20;in&#x20;the&#x20;visual&#x20;console','There&#x20;is&#x20;a&#x20;visual&#x20;console&#x20;element&#x20;called&#x20;&ldquo;Network&#x20;link&rdquo;&#x20;that&#x20;allows&#x20;to&#x20;visually&#x20;show&#x20;the&#x20;union&#x20;of&#x20;two&#x20;network&#x20;interfaces,&#x20;their&#x20;status&#x20;and&#x20;the&#x20;upload/download&#x20;traffic,&#x20;in&#x20;a&#x20;very&#x20;visual&#x20;way.','https://pandorafms.com/manual/!current/en/documentation/04_using/05_data_presentation_visual_maps#enlace_de_red',1);
SELECT @last_id := LAST_INSERT_ID();
INSERT INTO `twelcome_tip_file` (`twelcome_tip_file`,`filename`,`path`) VALUES (@last_id,'enlaces_consola_visual.png','images/tips/');
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Google&#x20;Sheet&#x20;','Do&#x20;you&#x20;know&#x20;that&#x20;you&#x20;can&#x20;get&#x20;the&#x20;value&#x20;of&#x20;a&#x20;cell&#x20;from&#x20;a&#x20;Google&#x20;Sheet&#x20;spreadsheet?&#x20;We&#x20;use&#x20;the&#x20;API&#x20;to&#x20;request&#x20;the&#x20;data&#x20;through&#x20;a&#x20;remote&#x20;plugin.&#x20;It&#039;s&#x20;perfect&#x20;for&#x20;building&#x20;business&#x20;dashboards,&#x20;getting&#x20;real-time&#x20;alerts,&#x20;and&#x20;creating&#x20;your&#x20;own&#x20;custom&#x20;reports.','https://pandorafms.com/library/google-sheets-plugin/',1);
SELECT @last_id := LAST_INSERT_ID();
INSERT INTO `twelcome_tip_file` (`twelcome_tip_file`,`filename`,`path`) VALUES (@last_id,'google_sheets.png','images/tips/');
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Availability&#x20;graphs','Similar&#x20;to&#x20;availability&#x20;reports,&#x20;but&#x20;much&#x20;more&#x20;visual,&#x20;they&#x20;offer&#x20;detailed&#x20;status&#x20;of&#x20;a&#x20;monitor&#x20;over&#x20;time.&#x20;They&#x20;can&#x20;be&#x20;grouped&#x20;with&#x20;another&#x20;module&#x20;to&#x20;offer&#x20;final&#x20;data&#x20;taking&#x20;into&#x20;account&#x20;the&#x20;high&#x20;availability&#x20;of&#x20;a&#x20;service.&#x20;They&#x20;are&#x20;perfect&#x20;for&#x20;use&#x20;in&#x20;reports&#x20;to&#x20;suppliers&#x20;and/or&#x20;customers.','https://pandorafms.com/manual/en/documentation/04_using/08_data_presentation_reports#grafico_de_disp',1);
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Availability&#x20;graphs','Similar&#x20;to&#x20;availability&#x20;reports,&#x20;but&#x20;much&#x20;more&#x20;visual,&#x20;they&#x20;offer&#x20;detailed&#x20;status&#x20;of&#x20;a&#x20;monitor&#x20;over&#x20;time.&#x20;They&#x20;can&#x20;be&#x20;grouped&#x20;with&#x20;another&#x20;module&#x20;to&#x20;offer&#x20;final&#x20;data&#x20;taking&#x20;into&#x20;account&#x20;the&#x20;high&#x20;availability&#x20;of&#x20;a&#x20;service.&#x20;They&#x20;are&#x20;perfect&#x20;for&#x20;use&#x20;in&#x20;reports&#x20;to&#x20;suppliers&#x20;and/or&#x20;customers.','https://pandorafms.com/manual/!current/en/documentation/04_using/08_data_presentation_reports#grafico_de_disp',1);
SELECT @last_id := LAST_INSERT_ID();
INSERT INTO `twelcome_tip_file` (`twelcome_tip_file`,`filename`,`path`) VALUES (@last_id,'graficas_disponibilidad.png','images/tips/');
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Full&#x20;resolution&#x20;graphics','Pandora&#x20;FMS&#x20;and&#x20;other&#x20;tools,&#x20;when&#x20;they&#x20;have&#x20;to&#x20;display&#x20;a&#x20;graph,&#x20;obtain&#x20;the&#x20;data&#x20;from&#x20;the&#x20;data&#x20;source&#x20;and&#x20;then&#x20;&ldquo;simplify&rdquo;&#x20;the&#x20;graph,&#x20;since&#x20;if&#x20;the&#x20;data&#x20;series&#x20;has&#x20;10,000&#x20;elements&#x20;and&#x20;the&#x20;graph&#x20;is&#x20;only&#x20;300&#x20;pixels&#x20;wide,&#x20;they&#x20;cannot&#x20;fit&#x20;all&#x20;of&#x20;them.&#x20;,&#x20;so&#x20;those&#x20;10,000&#x20;points&#x20;are&#x20;&ldquo;simplified&rdquo;&#x20;into&#x20;only&#x20;300.&#x20;However,&#x20;when&#x20;simplifying,&#x20;&ldquo;detail&rdquo;&#x20;is&#x20;lost&#x20;in&#x20;the&#x20;graph,&#x20;and&#x20;of&#x20;course&#x20;we&#x20;cannot&#x20;&ldquo;zoom&#x20;in&rdquo;.&#x20;Pandora&#x20;FMS&#x20;graphs&#x20;allow&#x20;you&#x20;to&#x20;display&#x20;and&#x20;use&#x20;all&#x20;the&#x20;data&#x20;in&#x20;a&#x20;graph,&#x20;which&#x20;we&#x20;call&#x20;&quot;TIP&quot;&#x20;that&#x20;shows&#x20;all&#x20;the&#x20;overlapping&#x20;points&#x20;and&#x20;also&#x20;allows&#x20;you&#x20;not&#x20;to&#x20;lose&#x20;resolution&#x20;when&#x20;zooming.','',1);
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'dark&#x20;mode','Do&#x20;you&#x20;know&#x20;that&#x20;there&#x20;is&#x20;a&#x20;dark&#x20;mode&#x20;in&#x20;Pandora&#x20;FMS?&#x20;An&#x20;administrator&#x20;can&#x20;activate&#x20;it&#x20;at&#x20;a&#x20;global&#x20;level&#x20;from&#x20;the&#x20;visual&#x20;configuration&#x20;options&#x20;or&#x20;any&#x20;user&#x20;at&#x20;an&#x20;individual&#x20;level,&#x20;in&#x20;the&#x20;user&#x20;options.','',1);
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Remote&#x20;monitoring&#x20;of&#x20;SNMP&#x20;devices','Network&#x20;devices&#x20;such&#x20;as&#x20;switches,&#x20;APs,&#x20;routers,&#x20;and&#x20;firewalls&#x20;can&#x20;be&#x20;remotely&#x20;monitored&#x20;using&#x20;the&#x20;SNMP&#x20;protocol.&#x20;It&#x20;is&#x20;enough&#x20;to&#x20;know&#x20;your&#x20;IP,&#x20;the&#x20;SNMP&#x20;community&#x20;and&#x20;launch&#x20;an&#x20;SNMP&#x20;wizard&#x20;from&#x20;the&#x20;console.','https://pandorafms.com/manual/en/documentation/03_monitoring/03_remote_monitoring#monitorizacion_snmp',1);
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Remote&#x20;monitoring&#x20;of&#x20;SNMP&#x20;devices','Network&#x20;devices&#x20;such&#x20;as&#x20;switches,&#x20;APs,&#x20;routers,&#x20;and&#x20;firewalls&#x20;can&#x20;be&#x20;remotely&#x20;monitored&#x20;using&#x20;the&#x20;SNMP&#x20;protocol.&#x20;It&#x20;is&#x20;enough&#x20;to&#x20;know&#x20;your&#x20;IP,&#x20;the&#x20;SNMP&#x20;community&#x20;and&#x20;launch&#x20;an&#x20;SNMP&#x20;wizard&#x20;from&#x20;the&#x20;console.','https://pandorafms.com/manual/!current/en/documentation/03_monitoring/03_remote_monitoring#monitorizacion_snmp',1);
SELECT @last_id := LAST_INSERT_ID();
INSERT INTO `twelcome_tip_file` (`twelcome_tip_file`,`filename`,`path`) VALUES (@last_id,'monitorizar_snmp.png','images/tips/');
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Monitoring&#x20;JMX&#x20;&#40;Tomcat,&#x20;Websphere,&#x20;Weblogic,&#x20;Jboss,&#x20;Apache&#x20;Kafka,&#x20;Jetty,&#x20;GlassFish&hellip;&#41;','There&#x20;is&#x20;an&#x20;Enterprise&#x20;plugin&#x20;that&#x20;is&#x20;used&#x20;to&#x20;monitor&#x20;any&#x20;JMX&#x20;technology.&#x20;It&#x20;can&#x20;be&#x20;used&#x20;locally&#x20;&#40;as&#x20;a&#x20;local&#x20;plugin&#41;&#x20;or&#x20;remotely&#x20;with&#x20;the&#x20;plugin&#x20;server.','https://pandorafms.com/library/jmx-monitoring/',1);
SELECT @last_id := LAST_INSERT_ID();
INSERT INTO `twelcome_tip_file` (`twelcome_tip_file`,`filename`,`path`) VALUES (@last_id,'monitorizar_con_jmx.png','images/tips/');
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Monitor&#x20;routes&#x20;from&#x20;one&#x20;IP&#x20;to&#x20;another','There&#x20;is&#x20;a&#x20;special&#x20;plugin&#x20;that&#x20;is&#x20;used&#x20;to&#x20;visually&#x20;monitor&#x20;the&#x20;routes&#x20;from&#x20;one&#x20;IP&#x20;to&#x20;another&#x20;in&#x20;a&#x20;visual&#x20;and&#x20;dynamic&#x20;way,&#x20;as&#x20;it&#x20;changes&#x20;over&#x20;time.','https://pandorafms.com/manual/en/documentation/03_monitoring/03_remote_monitoring#monitorizacion_de_rutas',1);
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Monitor&#x20;routes&#x20;from&#x20;one&#x20;IP&#x20;to&#x20;another','There&#x20;is&#x20;a&#x20;special&#x20;plugin&#x20;that&#x20;is&#x20;used&#x20;to&#x20;visually&#x20;monitor&#x20;the&#x20;routes&#x20;from&#x20;one&#x20;IP&#x20;to&#x20;another&#x20;in&#x20;a&#x20;visual&#x20;and&#x20;dynamic&#x20;way,&#x20;as&#x20;it&#x20;changes&#x20;over&#x20;time.','https://pandorafms.com/manual/!current/en/documentation/03_monitoring/03_remote_monitoring#monitorizacion_de_rutas',1);
SELECT @last_id := LAST_INSERT_ID();
INSERT INTO `twelcome_tip_file` (`twelcome_tip_file`,`filename`,`path`) VALUES (@last_id,'monitorizar_desde_ip.png','images/tips/');
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Scheduled&#x20;downtimes','It&#x20;is&#x20;possible&#x20;to&#x20;define,&#x20;at&#x20;the&#x20;agent&#x20;level&#x20;and&#x20;at&#x20;the&#x20;module&#x20;level,&#x20;periods&#x20;in&#x20;which&#x20;the&#x20;alerts&#x20;and/or&#x20;the&#x20;collected&#x20;data&#x20;are&#x20;ignored.&#x20;It&#x20;is&#x20;perfect&#x20;for&#x20;planning&#x20;service&#x20;stops&#x20;or&#x20;disconnection&#x20;of&#x20;monitored&#x20;systems.&#x20;It&#x20;also&#x20;affects&#x20;SLA&#x20;reporting,&#x20;preventing&#x20;those&#x20;time&#x20;intervals&#x20;from&#x20;being&#x20;taken&#x20;into&#x20;account.','https://pandorafms.com/manual/en/documentation/04_using/11_managing_and_administration#scheduled_downtimes',1);
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Scheduled&#x20;downtimes','It&#x20;is&#x20;possible&#x20;to&#x20;define,&#x20;at&#x20;the&#x20;agent&#x20;level&#x20;and&#x20;at&#x20;the&#x20;module&#x20;level,&#x20;periods&#x20;in&#x20;which&#x20;the&#x20;alerts&#x20;and/or&#x20;the&#x20;collected&#x20;data&#x20;are&#x20;ignored.&#x20;It&#x20;is&#x20;perfect&#x20;for&#x20;planning&#x20;service&#x20;stops&#x20;or&#x20;disconnection&#x20;of&#x20;monitored&#x20;systems.&#x20;It&#x20;also&#x20;affects&#x20;SLA&#x20;reporting,&#x20;preventing&#x20;those&#x20;time&#x20;intervals&#x20;from&#x20;being&#x20;taken&#x20;into&#x20;account.','https://pandorafms.com/manual/!current/en/documentation/04_using/11_managing_and_administration#scheduled_downtimes',1);
SELECT @last_id := LAST_INSERT_ID();
INSERT INTO `twelcome_tip_file` (`twelcome_tip_file`,`filename`,`path`) VALUES (@last_id,'paradas_planificadas.png','images/tips/');
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Customize&#x20;alert&#x20;emails','Did&#x20;you&#x20;know&#x20;that&#x20;Pandora&#x20;alert&#x20;emails&#x20;can&#x20;be&#x20;customized?&#x20;You&#x20;only&#x20;have&#x20;to&#x20;edit&#x20;the&#x20;default&#x20;HTML&#x20;code&#x20;of&#x20;the&#x20;email&#x20;type&#x20;alert&#x20;actions.','https://pandorafms.com/manual/en/documentation/04_using/01_alerts#editing_an_action',1);
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Customize&#x20;alert&#x20;emails','Did&#x20;you&#x20;know&#x20;that&#x20;Pandora&#x20;alert&#x20;emails&#x20;can&#x20;be&#x20;customized?&#x20;You&#x20;only&#x20;have&#x20;to&#x20;edit&#x20;the&#x20;default&#x20;HTML&#x20;code&#x20;of&#x20;the&#x20;email&#x20;type&#x20;alert&#x20;actions.','https://pandorafms.com/manual/!current/en/documentation/04_using/01_alerts#editing_an_action',1);
SELECT @last_id := LAST_INSERT_ID();
INSERT INTO `twelcome_tip_file` (`twelcome_tip_file`,`filename`,`path`) VALUES (@last_id,'personalizar_los_emails.png','images/tips/');
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'password&#x20;policy','The&#x20;Pandora&#x20;FMS&#x20;console&#x20;has&#x20;a&#x20;credential&#x20;policy&#x20;management&#x20;system,&#x20;to&#x20;reinforce&#x20;local&#x20;security&#x20;&#40;in&#x20;addition&#x20;to&#x20;allowing&#x20;external&#x20;authentication&#x20;against&#x20;LDAP,&#x20;Active&#x20;Directory&#x20;or&#x20;SAML&#41;.&#x20;Through&#x20;this&#x20;system&#x20;we&#x20;can&#x20;force&#x20;password&#x20;changes&#x20;every&#x20;X&#x20;days,&#x20;save&#x20;a&#x20;history&#x20;of&#x20;passwords&#x20;used&#x20;or&#x20;prevent&#x20;the&#x20;use&#x20;of&#x20;certain&#x20;passwords,&#x20;among&#x20;other&#x20;actions.','https://pandorafms.com/manual/en/documentation/04_using/12_console_setup?s%5B%5D%3Dcontrase%25C3%25B',1);
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Automatic&#x20;agent&#x20;provision&#x20;system','The&#x20;agent&#x20;self-provisioning&#x20;system&#x20;allows&#x20;an&#x20;agent&#x20;recently&#x20;entered&#x20;into&#x20;the&#x20;system&#x20;to&#x20;automatically&#x20;apply&#x20;changes&#x20;to&#x20;their&#x20;configuration&#x20;&#40;such&#x20;as&#x20;moving&#x20;them&#x20;from&#x20;group,&#x20;assigning&#x20;them&#x20;certain&#x20;values&#x20;in&#x20;custom&#x20;fields&#41;&#x20;and&#x20;of&#x20;course&#x20;applying&#x20;certain&#x20;monitoring&#x20;policies.&#x20;It&#x20;is&#x20;one&#x20;of&#x20;the&#x20;most&#x20;powerful&#x20;functionalities,&#x20;aimed&#x20;at&#x20;managing&#x20;very&#x20;large&#x20;system&#x20;parks.','https://pandorafms.com/manual/start?id=en/documentation/02_installation/05_configuration_agents#conf',1);
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Automatic&#x20;agent&#x20;provision&#x20;system','The&#x20;agent&#x20;self-provisioning&#x20;system&#x20;allows&#x20;an&#x20;agent&#x20;recently&#x20;entered&#x20;into&#x20;the&#x20;system&#x20;to&#x20;automatically&#x20;apply&#x20;changes&#x20;to&#x20;their&#x20;configuration&#x20;&#40;such&#x20;as&#x20;moving&#x20;them&#x20;from&#x20;group,&#x20;assigning&#x20;them&#x20;certain&#x20;values&#x20;in&#x20;custom&#x20;fields&#41;&#x20;and&#x20;of&#x20;course&#x20;applying&#x20;certain&#x20;monitoring&#x20;policies.&#x20;It&#x20;is&#x20;one&#x20;of&#x20;the&#x20;most&#x20;powerful&#x20;functionalities,&#x20;aimed&#x20;at&#x20;managing&#x20;very&#x20;large&#x20;system&#x20;parks.','https://pandorafms.com/manual/start?id=en/documentation/02_installation/05_configuration_agents#conf',1);
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Automatic&#x20;agent&#x20;provision&#x20;system','The&#x20;agent&#x20;self-provisioning&#x20;system&#x20;allows&#x20;an&#x20;agent&#x20;recently&#x20;entered&#x20;into&#x20;the&#x20;system&#x20;to&#x20;automatically&#x20;apply&#x20;changes&#x20;to&#x20;their&#x20;configuration&#x20;&#40;such&#x20;as&#x20;moving&#x20;them&#x20;from&#x20;group,&#x20;assigning&#x20;them&#x20;certain&#x20;values&#x20;in&#x20;custom&#x20;fields&#41;&#x20;and&#x20;of&#x20;course&#x20;applying&#x20;certain&#x20;monitoring&#x20;policies.&#x20;It&#x20;is&#x20;one&#x20;of&#x20;the&#x20;most&#x20;powerful&#x20;functionalities,&#x20;aimed&#x20;at&#x20;managing&#x20;very&#x20;large&#x20;system&#x20;parks.','https://pandorafms.com/manual/start?id=en/documentation/02_installation/05_configuration_agents#conf',1);
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'password&#x20;policy','The&#x20;Pandora&#x20;FMS&#x20;console&#x20;has&#x20;a&#x20;credential&#x20;policy&#x20;management&#x20;system,&#x20;to&#x20;reinforce&#x20;local&#x20;security&#x20;&#40;in&#x20;addition&#x20;to&#x20;allowing&#x20;external&#x20;authentication&#x20;against&#x20;LDAP,&#x20;Active&#x20;Directory&#x20;or&#x20;SAML&#41;.&#x20;Through&#x20;this&#x20;system&#x20;we&#x20;can&#x20;force&#x20;password&#x20;changes&#x20;every&#x20;X&#x20;days,&#x20;save&#x20;a&#x20;history&#x20;of&#x20;passwords&#x20;used&#x20;or&#x20;prevent&#x20;the&#x20;use&#x20;of&#x20;certain&#x20;passwords,&#x20;among&#x20;other&#x20;actions.','https://pandorafms.com/manual/!current/en/documentation/04_using/12_console_setup?s%5B%5D%3Dcontrase%25C3%25B',1);
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Automatic&#x20;agent&#x20;provision&#x20;system','The&#x20;agent&#x20;self-provisioning&#x20;system&#x20;allows&#x20;an&#x20;agent&#x20;recently&#x20;entered&#x20;into&#x20;the&#x20;system&#x20;to&#x20;automatically&#x20;apply&#x20;changes&#x20;to&#x20;their&#x20;configuration&#x20;&#40;such&#x20;as&#x20;moving&#x20;them&#x20;from&#x20;group,&#x20;assigning&#x20;them&#x20;certain&#x20;values&#x20;in&#x20;custom&#x20;fields&#41;&#x20;and&#x20;of&#x20;course&#x20;applying&#x20;certain&#x20;monitoring&#x20;policies.&#x20;It&#x20;is&#x20;one&#x20;of&#x20;the&#x20;most&#x20;powerful&#x20;functionalities,&#x20;aimed&#x20;at&#x20;managing&#x20;very&#x20;large&#x20;system&#x20;parks.','https://pandorafms.com/manual/!current/start?id=en/documentation/02_installation/05_configuration_agents#conf',1);
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Automatic&#x20;agent&#x20;provision&#x20;system','The&#x20;agent&#x20;self-provisioning&#x20;system&#x20;allows&#x20;an&#x20;agent&#x20;recently&#x20;entered&#x20;into&#x20;the&#x20;system&#x20;to&#x20;automatically&#x20;apply&#x20;changes&#x20;to&#x20;their&#x20;configuration&#x20;&#40;such&#x20;as&#x20;moving&#x20;them&#x20;from&#x20;group,&#x20;assigning&#x20;them&#x20;certain&#x20;values&#x20;in&#x20;custom&#x20;fields&#41;&#x20;and&#x20;of&#x20;course&#x20;applying&#x20;certain&#x20;monitoring&#x20;policies.&#x20;It&#x20;is&#x20;one&#x20;of&#x20;the&#x20;most&#x20;powerful&#x20;functionalities,&#x20;aimed&#x20;at&#x20;managing&#x20;very&#x20;large&#x20;system&#x20;parks.','https://pandorafms.com/manual/!current/start?id=en/documentation/02_installation/05_configuration_agents#conf',1);
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Automatic&#x20;agent&#x20;provision&#x20;system','The&#x20;agent&#x20;self-provisioning&#x20;system&#x20;allows&#x20;an&#x20;agent&#x20;recently&#x20;entered&#x20;into&#x20;the&#x20;system&#x20;to&#x20;automatically&#x20;apply&#x20;changes&#x20;to&#x20;their&#x20;configuration&#x20;&#40;such&#x20;as&#x20;moving&#x20;them&#x20;from&#x20;group,&#x20;assigning&#x20;them&#x20;certain&#x20;values&#x20;in&#x20;custom&#x20;fields&#41;&#x20;and&#x20;of&#x20;course&#x20;applying&#x20;certain&#x20;monitoring&#x20;policies.&#x20;It&#x20;is&#x20;one&#x20;of&#x20;the&#x20;most&#x20;powerful&#x20;functionalities,&#x20;aimed&#x20;at&#x20;managing&#x20;very&#x20;large&#x20;system&#x20;parks.','https://pandorafms.com/manual/!current/start?id=en/documentation/02_installation/05_configuration_agents#conf',1);
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'ARP&#x20;tables','Do&#x20;you&#x20;know&#x20;that&#x20;there&#x20;is&#x20;an&#x20;inventory&#x20;module&#x20;to&#x20;get&#x20;the&#x20;ARP&#x20;tables&#x20;from&#x20;your&#x20;windows&#x20;servers?&#x20;It&#x20;is&#x20;easy&#x20;to&#x20;install&#x20;and&#x20;can&#x20;give&#x20;you&#x20;very&#x20;detailed&#x20;information&#x20;about&#x20;your&#x20;equipment.','https://pandorafms.com/library/arp-table-windows-local/',1);
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Using&#x20;custom&#x20;icons&#x20;in&#x20;visual&#x20;consoles','Thanks&#x20;to&#x20;the&#x20;custom&#x20;icons,&#x20;you&#x20;can&#x20;create&#x20;highly&#x20;customized&#x20;views,&#x20;such&#x20;as&#x20;the&#x20;one&#x20;in&#x20;the&#x20;image,&#x20;which&#x20;represents&#x20;racks&#x20;with&#x20;the&#x20;types&#x20;of&#x20;servers&#x20;in&#x20;the&#x20;order&#x20;they&#x20;are&#x20;placed&#x20;within&#x20;the&#x20;rack.&#x20;Perfect&#x20;for&#x20;a&#x20;technician&#x20;to&#x20;know&#x20;exactly&#x20;what&#x20;machine&#x20;is&#x20;failing.&#x20;It&#x20;couldn&#039;t&#x20;be&#x20;more&#x20;visual,&#x20;hence&#x20;the&#x20;name.','https://pandorafms.com/manual/start?id=en/documentation/04_using/05_data_presentation_visual_maps',1);
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Using&#x20;custom&#x20;icons&#x20;in&#x20;visual&#x20;consoles','Thanks&#x20;to&#x20;the&#x20;custom&#x20;icons,&#x20;you&#x20;can&#x20;create&#x20;highly&#x20;customized&#x20;views,&#x20;such&#x20;as&#x20;the&#x20;one&#x20;in&#x20;the&#x20;image,&#x20;which&#x20;represents&#x20;racks&#x20;with&#x20;the&#x20;types&#x20;of&#x20;servers&#x20;in&#x20;the&#x20;order&#x20;they&#x20;are&#x20;placed&#x20;within&#x20;the&#x20;rack.&#x20;Perfect&#x20;for&#x20;a&#x20;technician&#x20;to&#x20;know&#x20;exactly&#x20;what&#x20;machine&#x20;is&#x20;failing.&#x20;It&#x20;couldn&#039;t&#x20;be&#x20;more&#x20;visual,&#x20;hence&#x20;the&#x20;name.','https://pandorafms.com/manual/!current/start?id=en/documentation/04_using/05_data_presentation_visual_maps',1);
SELECT @last_id := LAST_INSERT_ID();
INSERT INTO `twelcome_tip_file` (`twelcome_tip_file`,`filename`,`path`) VALUES (@last_id,'iconos_personalizados.png','images/tips/');
INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`) VALUES ('en_GB',0,'Use&#x20;Telegram&#x20;with&#x20;Pandora&#x20;FMS','Perfect&#x20;to&#x20;receive&#x20;alerts&#x20;with&#x20;embedded&#x20;graphics&#x20;and&#x20;thus&#x20;customize&#x20;the&#x20;reception&#x20;of&#x20;notices&#x20;individually&#x20;or&#x20;in&#x20;a&#x20;common&#x20;channel&#x20;with&#x20;more&#x20;people.','https://pandorafms.com/library/telegram-bot-cli/',1);
@ -2779,6 +2778,7 @@ INSERT INTO `twelcome_tip` (`id_lang`,`id_profile`,`title`,`text`,`url`,`enable`
SELECT @last_id := LAST_INSERT_ID();
INSERT INTO `twelcome_tip_file` (`twelcome_tip_file`,`filename`,`path`) VALUES (@last_id,'zoom_en_graficas.png','images/tips/');
INSERT INTO `twidget` (`id`,`class_name`,`unique_name`,`description`,`options`,`page`) VALUES
(1,'AgentHive','AgentHive','Agents hive','','AgentHive.php'),
(2,'AvgSumMaxMinModule','AvgSumMaxMinModule','Avg|Sum|Max|Min Module Data','','AvgSumMaxMinModule.php'),

View File

@ -14,11 +14,60 @@ class Plugins implements ArraySerializableInterface, JsonSerializable
{
use ArraySerializable;
protected $legend;
/**
* @var string
*/
private $legend;
protected $title;
protected $datalabels;
/**
* @var string
*/
private $title;
/**
* @var string
*/
private $datalabels;
/**
* @var string
*/
private $tooltips;
/**
* @var string
*/
private $tooltip;
/**
* @return Tooltips
*/
public function getTooltips()
{
if (is_null($this->tooltips)) {
$this->tooltips = new Tooltips();
}
return $this->tooltips;
}
/**
* @return Tooltip
*/
public function getTooltip()
{
if (is_null($this->tooltip)) {
$this->tooltip = new Tooltip();
}
return $this->tooltip;
}
/**

View File

@ -0,0 +1,819 @@
<?php
namespace Artica\PHPChartJS\Options;
use Artica\PHPChartJS\ArraySerializableInterface;
use Artica\PHPChartJS\Delegate\ArraySerializable;
use Artica\PHPChartJS\Options\Tooltips\Callbacks;
use JsonSerializable;
use Laminas\Json\Expr;
/**
* Class Tooltip
*
* @package Artica\PHPChartJS\Options
*/
class Tooltip implements ArraySerializableInterface, JsonSerializable
{
use ArraySerializable;
/**
* @var bool
*/
private $enabled;
/**
* @var Expr
*/
private $custom;
/**
* @var string
*/
private $mode;
/**
* @var bool
*/
private $intersect;
/**
* @var string
*/
private $position;
/**
* @var Expr
*/
private $itemSort;
/**
* @var Expr
*/
private $filter;
/**
* @var string
*/
private $backgroundColor;
/**
* @var string
*/
private $titleFontFamily;
/**
* @var int
*/
private $titleFontSize;
/**
* @var string
*/
private $titleFontStyle;
/**
* @var string
*/
private $titleFontColor;
/**
* @var int
*/
private $titleSpacing;
/**
* @var int
*/
private $titleMarginBottom;
/**
* @var string
*/
private $bodyFontFamily;
/**
* @var int
*/
private $bodyFontSize;
/**
* @var string
*/
private $bodyFontStyle;
/**
* @var string
*/
private $bodyFontColor;
/**
* @var int
*/
private $bodySpacing;
/**
* @var string
*/
private $footerFontFamily;
/**
* @var int
*/
private $footerFontSize;
/**
* @var string
*/
private $footerFontStyle;
/**
* @var string
*/
private $footerFontColor;
/**
* @var int
*/
private $footerSpacing;
/**
* @var int
*/
private $footerMarginTop;
/**
* @var int
*/
private $xPadding;
/**
* @var int
*/
private $yPadding;
/**
* @var int
*/
private $caretSize;
/**
* @var int
*/
private $cornerRadius;
/**
* @var string
*/
private $multiKeyBackground;
/**
* @var bool
*/
private $displayColors;
/**
* @var Callbacks
*/
private $callbacks;
/**
* @return bool
*/
public function isEnabled()
{
return $this->enabled;
}
/**
* @param bool $enabled
*
* @return $this
*/
public function setEnabled($enabled)
{
$this->enabled = boolval($enabled);
return $this;
}
/**
* @return \Laminas\Json\Expr
*/
public function getCustom()
{
return $this->custom;
}
/**
* @param \Laminas\Json\Expr $custom
*
* @return $this
*/
public function setCustom($custom)
{
$this->custom = $custom;
return $this;
}
/**
* @return string
*/
public function getMode()
{
return $this->mode;
}
/**
* @param string $mode
*
* @return $this
*/
public function setMode($mode)
{
$this->mode = strval($mode);
return $this;
}
/**
* @return bool
*/
public function isIntersect()
{
return $this->intersect;
}
/**
* @param bool $intersect
*
* @return $this
*/
public function setIntersect($intersect)
{
$this->intersect = boolval($intersect);
return $this;
}
/**
* @return string
*/
public function getPosition()
{
return $this->position;
}
/**
* @param string $position
*
* @return $this
*/
public function setPosition($position)
{
$this->position = strval($position);
return $this;
}
/**
* @return Expr
*/
public function getItemSort()
{
return $this->itemSort;
}
/**
* @param Expr $itemSort
*
* @return $this
*/
public function setItemSort($itemSort)
{
$this->itemSort = new Expr(strval($itemSort));
return $this;
}
/**
* @return Expr
*/
public function getFilter()
{
return $this->filter;
}
/**
* @param Expr $filter
*
* @return $this
*/
public function setFilter($filter)
{
$this->filter = new Expr(strval($filter));
return $this;
}
/**
* @return string
*/
public function getBackgroundColor()
{
return $this->backgroundColor;
}
/**
* @param string $backgroundColor
*
* @return $this
*/
public function setBackgroundColor($backgroundColor)
{
$this->backgroundColor = strval($backgroundColor);
return $this;
}
/**
* @return string
*/
public function getTitleFontFamily()
{
return $this->titleFontFamily;
}
/**
* @param string $titleFontFamily
*
* @return $this
*/
public function setTitleFontFamily($titleFontFamily)
{
$this->titleFontFamily = strval($titleFontFamily);
return $this;
}
/**
* @return int
*/
public function getTitleFontSize()
{
return $this->titleFontSize;
}
/**
* @param int $titleFontSize
*
* @return $this
*/
public function setTitleFontSize($titleFontSize)
{
$this->titleFontSize = intval($titleFontSize);
return $this;
}
/**
* @return string
*/
public function getTitleFontStyle()
{
return $this->titleFontStyle;
}
/**
* @param string $titleFontStyle
*
* @return $this
*/
public function setTitleFontStyle($titleFontStyle)
{
$this->titleFontStyle = strval($titleFontStyle);
return $this;
}
/**
* @return string
*/
public function getTitleFontColor()
{
return $this->titleFontColor;
}
/**
* @param string $titleFontColor
*
* @return $this
*/
public function setTitleFontColor($titleFontColor)
{
$this->titleFontColor = strval($titleFontColor);
return $this;
}
/**
* @return int
*/
public function getTitleSpacing()
{
return $this->titleSpacing;
}
/**
* @param int $titleSpacing
*
* @return $this
*/
public function setTitleSpacing($titleSpacing)
{
$this->titleSpacing = intval($titleSpacing);
return $this;
}
/**
* @return int
*/
public function getTitleMarginBottom()
{
return $this->titleMarginBottom;
}
/**
* @param int $titleMarginBottom
*
* @return $this
*/
public function setTitleMarginBottom($titleMarginBottom)
{
$this->titleMarginBottom = intval($titleMarginBottom);
return $this;
}
/**
* @return string
*/
public function getBodyFontFamily()
{
return $this->bodyFontFamily;
}
/**
* @param string $bodyFontFamily
*
* @return $this
*/
public function setBodyFontFamily($bodyFontFamily)
{
$this->bodyFontFamily = strval($bodyFontFamily);
return $this;
}
/**
* @return int
*/
public function getBodyFontSize()
{
return $this->bodyFontSize;
}
/**
* @param int $bodyFontSize
*
* @return $this
*/
public function setBodyFontSize($bodyFontSize)
{
$this->bodyFontSize = intval($bodyFontSize);
return $this;
}
/**
* @return string
*/
public function getBodyFontStyle()
{
return $this->bodyFontStyle;
}
/**
* @param string $bodyFontStyle
*
* @return $this
*/
public function setBodyFontStyle($bodyFontStyle)
{
$this->bodyFontStyle = strval($bodyFontStyle);
return $this;
}
/**
* @return string
*/
public function getBodyFontColor()
{
return $this->bodyFontColor;
}
/**
* @param string $bodyFontColor
*
* @return $this
*/
public function setBodyFontColor($bodyFontColor)
{
$this->bodyFontColor = strval($bodyFontColor);
return $this;
}
/**
* @return int
*/
public function getBodySpacing()
{
return $this->bodySpacing;
}
/**
* @param int $bodySpacing
*
* @return $this
*/
public function setBodySpacing($bodySpacing)
{
$this->bodySpacing = intval($bodySpacing);
return $this;
}
/**
* @return string
*/
public function getFooterFontFamily()
{
return $this->footerFontFamily;
}
/**
* @param string $footerFontFamily
*
* @return $this
*/
public function setFooterFontFamily($footerFontFamily)
{
$this->footerFontFamily = strval($footerFontFamily);
return $this;
}
/**
* @return int
*/
public function getFooterFontSize()
{
return $this->footerFontSize;
}
/**
* @param int $footerFontSize
*
* @return $this
*/
public function setFooterFontSize($footerFontSize)
{
$this->footerFontSize = intval($footerFontSize);
return $this;
}
/**
* @return string
*/
public function getFooterFontStyle()
{
return $this->footerFontStyle;
}
/**
* @param string $footerFontStyle
*
* @return $this
*/
public function setFooterFontStyle($footerFontStyle)
{
$this->footerFontStyle = strval($footerFontStyle);
return $this;
}
/**
* @return string
*/
public function getFooterFontColor()
{
return $this->footerFontColor;
}
/**
* @param string $footerFontColor
*
* @return $this
*/
public function setFooterFontColor($footerFontColor)
{
$this->footerFontColor = strval($footerFontColor);
return $this;
}
/**
* @return int
*/
public function getFooterSpacing()
{
return $this->footerSpacing;
}
/**
* @param int $footerSpacing
*
* @return $this
*/
public function setFooterSpacing($footerSpacing)
{
$this->footerSpacing = intval($footerSpacing);
return $this;
}
/**
* @return int
*/
public function getFooterMarginTop()
{
return $this->footerMarginTop;
}
/**
* @param int $footerMarginTop
*
* @return $this
*/
public function setFooterMarginTop($footerMarginTop)
{
$this->footerMarginTop = intval($footerMarginTop);
return $this;
}
/**
* @return int
*/
public function getXPadding()
{
return $this->xPadding;
}
/**
* @param int $xPadding
*
* @return $this
*/
public function setXPadding($xPadding)
{
$this->xPadding = intval($xPadding);
return $this;
}
/**
* @return int
*/
public function getYPadding()
{
return $this->yPadding;
}
/**
* @param int $yPadding
*
* @return $this
*/
public function setYPadding($yPadding)
{
$this->yPadding = intval($yPadding);
return $this;
}
/**
* @return int
*/
public function getCaretSize()
{
return $this->caretSize;
}
/**
* @param int $caretSize
*
* @return $this
*/
public function setCaretSize($caretSize)
{
$this->caretSize = intval($caretSize);
return $this;
}
/**
* @return int
*/
public function getCornerRadius()
{
return $this->cornerRadius;
}
/**
* @param int $cornerRadius
*
* @return $this
*/
public function setCornerRadius($cornerRadius)
{
$this->cornerRadius = intval($cornerRadius);
return $this;
}
/**
* @return string
*/
public function getMultiKeyBackground()
{
return $this->multiKeyBackground;
}
/**
* @param string $multiKeyBackground
*
* @return $this
*/
public function setMultiKeyBackground($multiKeyBackground)
{
$this->multiKeyBackground = strval($multiKeyBackground);
return $this;
}
/**
* @return bool
*/
public function isDisplayColors()
{
return $this->displayColors;
}
/**
* @param bool $displayColors
*
* @return $this
*/
public function setDisplayColors($displayColors)
{
$this->displayColors = boolval($displayColors);
return $this;
}
/**
* @return Callbacks
*/
public function callbacks()
{
if (is_null($this->callbacks)) {
$this->callbacks = new Callbacks();
}
return $this->callbacks;
}
/**
* @return array
*/
public function jsonSerialize()
{
return $this->getArrayCopy();
}
}

View File

@ -1,5 +1,5 @@
package: pandorafms-server
Version: 7.0NG.776-240325
Version: 7.0NG.776-240326
Architecture: all
Priority: optional
Section: admin

View File

@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
pandora_version="7.0NG.776-240325"
pandora_version="7.0NG.776-240326"
package_cpan=0
package_pandora=1

View File

@ -381,7 +381,8 @@ sub pandora_agent_autoconfiguration_scheduled($) {
$pa_config{'dbuser'}, $pa_config{'dbpass'});
while ($THRRUN == 1) {
eval {{
eval {
if (pandora_is_master($pa_config) == 1) {
local $SIG{__DIE__};
my @autoconfig = get_db_rows (
@ -425,7 +426,8 @@ sub pandora_agent_autoconfiguration_scheduled($) {
}
}
}
}};
}
};
sleep ($pa_config->{'autoconfigure_agents_threshold'});
}

View File

@ -46,7 +46,7 @@ our @EXPORT = qw(
# version: Defines actual version of Pandora Server for this module only
my $pandora_version = "7.0NG.776";
my $pandora_build = "240325";
my $pandora_build = "240326";
our $VERSION = $pandora_version." ".$pandora_build;
# Setup hash

View File

@ -34,7 +34,7 @@ our @ISA = qw(Exporter);
# version: Defines actual version of Pandora Server for this module only
my $pandora_version = "7.0NG.776";
my $pandora_build = "240325";
my $pandora_build = "240326";
our $VERSION = $pandora_version." ".$pandora_build;
our %EXPORT_TAGS = ( 'all' => [ qw() ] );

View File

@ -24,6 +24,7 @@ use POSIX qw(setsid strftime);
use POSIX;
use HTML::Entities;
use Encode;
use Encode::MIME::Header;
use Socket qw(inet_ntoa inet_aton);
use Sys::Syslog;
use Scalar::Util qw(looks_like_number);

View File

@ -7,7 +7,7 @@
%define debug_package %{nil}
%define name pandorafms_server
%define version 7.0NG.776
%define release 240325
%define release 240326
Summary: Pandora FMS Server
Name: %{name}

View File

@ -4,7 +4,7 @@
%global __os_install_post %{nil}
%define name pandorafms_server
%define version 7.0NG.776
%define release 240325
%define release 240326
Summary: Pandora FMS Server
Name: %{name}

View File

@ -9,7 +9,7 @@
# **********************************************************************
PI_VERSION="7.0NG.776"
PI_BUILD="240325"
PI_BUILD="240326"
MODE=$1
if [ $# -gt 1 ]; then

View File

@ -38,7 +38,7 @@ use PandoraFMS::Config;
use PandoraFMS::DB;
# version: define current version
my $version = "7.0NG.776 Build 240325";
my $version = "7.0NG.776 Build 240326";
# Pandora server configuration
my %conf;

View File

@ -36,7 +36,7 @@ use Encode::Locale;
Encode::Locale::decode_argv;
# version: define current version
my $version = "7.0NG.776 Build 240325";
my $version = "7.0NG.776 Build 240326";
# save program name for logging
my $progname = basename($0);
@ -1228,11 +1228,11 @@ sub param_error ($$) {
}
###############################################################################
# Print a 'not exists' error and exit the program.
# Print a 'does not exist' error and exit the program.
###############################################################################
sub notexists_error ($$) {
print (STDERR "[ERROR] Error: The $_[0] '$_[1]' not exists.\n\n");
logger( $conf, "($progname) [ERROR] Error: The $_[0] '$_[1]' not exists.", 10);
print (STDERR "[ERROR] Error: The $_[0] '$_[1]' does not exist.\n\n");
logger( $conf, "($progname) [ERROR] Error: The $_[0] '$_[1]' does not exist.", 10);
exit 1;
}
@ -3459,6 +3459,10 @@ sub cli_agent_update() {
$new_value = $id_parent;
}
elsif($field eq 'agent_name') {
if (!$new_value) {
print_log "[ERROR] Agent name cannot be empty\n\n";
exit;
}
my $agent_exists = get_agent_id($dbh,$new_value);
non_exist_check($agent_exists,'agent',$new_value);
$field = 'nombre';
@ -4104,7 +4108,7 @@ sub cli_exec_from_file() {
elsif($c == 3) {
$file = $opt;
if(!(-e $file)) {
print_log "[ERROR] File '$file' not exists or cannot be opened\n\n";
print_log "[ERROR] File '$file' does not exist or cannot be opened\n\n";
exit;
}
}
@ -4952,7 +4956,7 @@ sub cli_validate_alert() {
if (defined $use_alias and $use_alias eq 'use_alias') {
my @id_agents = get_agent_ids_from_alias($dbh,$agent_id);
if(!@id_agents) {
print (STDERR "[ERROR] Error: The agent '$agent_id' not exists.\n\n");
print (STDERR "[ERROR] Error: The agent '$agent_id' does not exist.\n\n");
}
foreach my $id (@id_agents) {
@ -5946,7 +5950,7 @@ sub cli_get_bad_conf_files() {
$missings++;
}
elsif ($result == -1) {
print_log "[WARN] File not exists /conf/".$file."\n\n";
print_log "[WARN] File does not exist /conf/".$file."\n\n";
$bad_files++;
last;
}