Merge branch 'develop' of https://github.com/pandorafms/pandorafms into develop
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-agent-unix
|
||||
Version: 6.0dev-150421
|
||||
Version: 6.0dev-150506
|
||||
Architecture: all
|
||||
Priority: optional
|
||||
Section: admin
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
pandora_version="6.0dev-150421"
|
||||
pandora_version="6.0dev-150506"
|
||||
|
||||
echo "Test if you has the tools for to make the packages."
|
||||
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null
|
||||
|
|
|
@ -41,7 +41,7 @@ my $Sem = undef;
|
|||
my $ThreadSem = undef;
|
||||
|
||||
use constant AGENT_VERSION => '6.0dev';
|
||||
use constant AGENT_BUILD => '150421';
|
||||
use constant AGENT_BUILD => '150506';
|
||||
|
||||
# Commands to retrieve total memory information in kB
|
||||
use constant TOTALMEMORY_CMDS => {
|
||||
|
@ -754,8 +754,31 @@ sub read_config (;$) {
|
|||
$RemoteConfFile = "$AgentMD5.conf";
|
||||
$RemoteMD5File = "$AgentMD5.md5";
|
||||
|
||||
# Set the maximun number of threads
|
||||
$ThreadSem = Thread::Semaphore->new ($Conf{'agent_threads'}) if defined ($Sem);
|
||||
# Load thread support if agent_threads is greater than 1.
|
||||
if ($Conf{'agent_threads'} > 1) {
|
||||
eval {
|
||||
local $SIG{__DIE__};
|
||||
require threads;
|
||||
require threads::shared;
|
||||
require Thread::Semaphore;
|
||||
};
|
||||
if (!$@) {
|
||||
$Sem = Thread::Semaphore->new;
|
||||
$ThreadSem = Thread::Semaphore->new ($Conf{'agent_threads'});
|
||||
threads::shared::share (\$Xml);
|
||||
threads::shared::share (\$Sem);
|
||||
log_message ('log', 'Using thread library.');
|
||||
} else {
|
||||
log_message ('log', 'Thread library is not available. agent_threads is set to 1 (disabled).');
|
||||
$Conf{'agent_threads'} = 1;
|
||||
$Sem = undef;
|
||||
$ThreadSem = undef;
|
||||
}
|
||||
} else {
|
||||
$Sem = undef;
|
||||
$ThreadSem = undef;
|
||||
log_message ('log', 'Thread is disabled.');
|
||||
}
|
||||
|
||||
# Set tentacle client options
|
||||
if ($Conf{'transfer_mode'} eq 'tentacle') {
|
||||
|
@ -2064,27 +2087,6 @@ error ("Temporal directory '" . $Conf{'temporal'} . "' does not exist.") unless
|
|||
$Conf{'server_path'} = fix_directory ($Conf{'server_path'});
|
||||
$Conf{'secondary_server_path'} = fix_directory ($Conf{'secondary_server_path'});
|
||||
|
||||
# Load thread support if agent_threads is greater than 1.
|
||||
if ($Conf{'agent_threads'} > 1) {
|
||||
eval {
|
||||
local $SIG{__DIE__};
|
||||
require threads;
|
||||
require threads::shared;
|
||||
require Thread::Semaphore;
|
||||
};
|
||||
if (!$@) {
|
||||
$Sem = Thread::Semaphore->new;
|
||||
threads::shared::share (\$Xml);
|
||||
threads::shared::share (\$Sem);
|
||||
log_message ('log', 'Using thread library.');
|
||||
} else {
|
||||
log_message ('log', 'Thread library is not available. agent_threads is set to 1 (disabled).');
|
||||
$Conf{'agent_threads'} = 1;
|
||||
}
|
||||
} else {
|
||||
log_message ('log', 'Thread is disabled.');
|
||||
}
|
||||
|
||||
# Startup delay
|
||||
log_message ('log', 'Sleeping for ' . $Conf{'delayed_startup'} . ' seconds.') if ($Conf{'delayed_startup'} > 0);
|
||||
sleep ($Conf{'delayed_startup'});
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
%define name pandorafms_agent_unix
|
||||
%define version 6.0dev
|
||||
%define release 150421
|
||||
%define release 150506
|
||||
|
||||
Summary: Pandora FMS Linux agent, PERL version
|
||||
Name: %{name}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
%define name pandorafms_agent_unix
|
||||
%define version 6.0dev
|
||||
%define release 150421
|
||||
%define release 150506
|
||||
|
||||
Summary: Pandora FMS Linux agent, PERL version
|
||||
Name: %{name}
|
||||
|
|
|
@ -47,9 +47,9 @@ pidof_pandora () {
|
|||
fi
|
||||
if [ "$ZONE" = "global" ]
|
||||
then
|
||||
PANDORA_PID=`ps -f -z global | grep "$TRUNCATED_DAEMON" | grep -v grep | head -1 | awk '{ print $2 }'`
|
||||
PANDORA_PID=`ps -f -z global | grep "$TRUNCATED_DAEMON" | grep -v grep | awk '{ print $2 }'`
|
||||
else
|
||||
PANDORA_PID=`ps -Af | grep "$TRUNCATED_DAEMON" | grep -v grep | head -1 | awk '{ print $2 }'`
|
||||
PANDORA_PID=`ps -Af | grep "$TRUNCATED_DAEMON" | grep -v grep | awk '{ print $2 }'`
|
||||
fi
|
||||
elif [ "$OS_NAME" = "Linux" ] && [ -x /usr/sbin/vzpid ]
|
||||
then
|
||||
|
@ -66,7 +66,7 @@ pidof_pandora () {
|
|||
fi
|
||||
done
|
||||
else
|
||||
PANDORA_PID=`ps -Af | grep "$DAEMON $PANDORA_PATH" | grep -v grep | head -1 | awk '{ print $2 }'`
|
||||
PANDORA_PID=`ps -Af | grep "$DAEMON $PANDORA_PATH" | grep -v grep | awk '{ print $2 }'`
|
||||
fi
|
||||
|
||||
echo $PANDORA_PID
|
||||
|
@ -90,7 +90,14 @@ case "$1" in
|
|||
su $PANDORA_USER -c "PATH=$PATH nohup $DAEMON $PANDORA_PATH >/dev/null 2>$LOGFILE &"
|
||||
sleep 2
|
||||
PANDORA_PID=`pidof_pandora`
|
||||
echo "Pandora FMS Agent is now running with PID $PANDORA_PID"
|
||||
if [ "$PANDORA_PID" = "" ]
|
||||
then
|
||||
|
||||
echo "Pandora FMS Agent could not be started. Please check the file $LOGFILE."
|
||||
exit 1
|
||||
else
|
||||
echo "Pandora FMS Agent is now running with PID $PANDORA_PID"
|
||||
fi
|
||||
;;
|
||||
|
||||
stop)
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
server_ip $ServerIP$
|
||||
server_path /var/spool/pandora/data_in
|
||||
temporal "$AgentTemp$"
|
||||
temporal "C:\Program Files\pandora_agent\temp"
|
||||
|
||||
#include "C:\Archivos de programa\pandora_agent\pandora_agent_alt.conf"
|
||||
#broker_agent name_agent
|
||||
|
@ -47,7 +47,7 @@ address auto
|
|||
#address 192.168.36.73
|
||||
|
||||
# Group assigned for this agent (descriptive, p.e: Servers)
|
||||
group "$AgentGroup$"
|
||||
group Servers
|
||||
|
||||
# This limits operation if temporal dir has not enough free disk.
|
||||
#temporal_min_size 1024
|
||||
|
@ -191,13 +191,85 @@ module_exec dir "%ProgramFiles%\Avira\AntiVir Desktop\aevdf.dat" | grep aevdf.da
|
|||
module_description Last update for Antivirus Signature file
|
||||
module_end
|
||||
|
||||
# Windows inventory module (This information will be displayed only in enterprise version)
|
||||
# Windows inventory module (This information will be displayed only in enterprise version)^M
|
||||
module_begin
|
||||
module_name Inventory
|
||||
module_interval 7
|
||||
module_type generic_data_string
|
||||
module_inventory CPU RAM CDROM Video HD Patches Services NIC
|
||||
module_description Inventory
|
||||
module_plugin cscript.exe //B "%PROGRAMFILES%\Pandora_Agent\util\cpuinfo.vbs"
|
||||
module_crontab * 12-15 * * 1
|
||||
module_end
|
||||
|
||||
module_begin
|
||||
module_plugin cscript.exe //B "%PROGRAMFILES%\Pandora_Agent\util\moboinfo.vbs"
|
||||
module_crontab * 12-15 * * 1
|
||||
module_end
|
||||
|
||||
module_begin
|
||||
module_plugin cscript.exe //B "%PROGRAMFILES%\Pandora_Agent\util\diskdrives.vbs"
|
||||
module_crontab * 12-15 * * 1
|
||||
module_end
|
||||
|
||||
module_begin
|
||||
module_plugin cscript.exe //B "%PROGRAMFILES%\Pandora_Agent\util\cdromdrives.vbs"
|
||||
module_crontab * 12-15 * * 1
|
||||
module_end
|
||||
|
||||
module_begin
|
||||
module_plugin cscript.exe //B "%PROGRAMFILES%\Pandora_Agent\util\videocardinfo.vbs"
|
||||
module_crontab * 12-15 * * 1
|
||||
module_end
|
||||
|
||||
module_begin
|
||||
module_plugin cscript.exe //B "%PROGRAMFILES%\Pandora_Agent\util\ifaces.vbs"
|
||||
module_crontab * 12-15 * * 1
|
||||
module_end
|
||||
|
||||
module_begin
|
||||
module_plugin cscript.exe //B "%PROGRAMFILES%\Pandora_Agent\util\monitors.vbs"
|
||||
module_crontab * 12-15 * * 1
|
||||
module_end
|
||||
|
||||
module_begin
|
||||
module_plugin cscript.exe //B "%PROGRAMFILES%\Pandora_Agent\util\printers.vbs"
|
||||
module_crontab * 12-15 * * 1
|
||||
module_end
|
||||
|
||||
module_begin
|
||||
module_plugin cscript.exe //B "%PROGRAMFILES%\Pandora_Agent\util\raminfo.vbs"
|
||||
module_crontab * 12-15 * * 1
|
||||
module_end
|
||||
|
||||
module_begin
|
||||
module_plugin cscript.exe //B "%PROGRAMFILES%\Pandora_Agent\util\software_installed.vbs"
|
||||
module_crontab * 12-15 * * 1
|
||||
module_end
|
||||
|
||||
module_begin
|
||||
module_plugin cscript.exe //B "%PROGRAMFILES%\Pandora_Agent\util\userslogged.vbs"
|
||||
module_crontab * 12-15 * * 1
|
||||
module_end
|
||||
|
||||
module_begin
|
||||
module_plugin cscript.exe //B "%PROGRAMFILES%\Pandora_Agent\util\productkey.vbs"
|
||||
module_crontab * 12-15 * * 1
|
||||
module_end
|
||||
|
||||
module_begin
|
||||
module_plugin cscript.exe //B "%PROGRAMFILES%\Pandora_Agent\util\productID.vbs"
|
||||
module_crontab * 12-15 * * 1
|
||||
module_end
|
||||
|
||||
module_begin
|
||||
module_plugin cscript.exe //B "%PROGRAMFILES%\Pandora_Agent\util\architecture.vbs"
|
||||
module_crontab * 12-15 * * 1
|
||||
module_end
|
||||
|
||||
module_begin
|
||||
module_plugin cscript.exe //B "%PROGRAMFILES%\Pandora_Agent\util\domain.vbs"
|
||||
module_crontab * 12-15 * * 1
|
||||
module_end
|
||||
|
||||
module_begin
|
||||
module_plugin cscript.exe //B "%PROGRAMFILES%\Pandora_Agent\util\osversion.vbs"
|
||||
module_crontab * 12-15 * * 1
|
||||
module_end
|
||||
|
||||
# ----------------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
' Pandora FMS Agent Inventory Plugin for Microsoft Windows (All platfforms)
|
||||
' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es>
|
||||
' This plugin extends agent inventory feature. Only enterprise version
|
||||
' --------------------------------------------------------------------------
|
||||
on error resume next
|
||||
'WMI architecture
|
||||
|
||||
|
||||
Wscript.StdOut.WriteLine "<inventory>"
|
||||
Wscript.StdOut.WriteLine "<inventory_module>"
|
||||
Wscript.StdOut.WriteLine "<name>Architecture</name>"
|
||||
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
|
||||
Wscript.StdOut.WriteLine "<datalist>"
|
||||
|
||||
strComputer = "."
|
||||
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
|
||||
Set cols = objWMIService.ExecQuery("Select osarchitecture from Win32_OperatingSystem")
|
||||
|
||||
For Each data In cols
|
||||
Wscript.StdOut.WriteLine "<data><![CDATA[" & data.osarchitecture & "]]></data>"
|
||||
Next
|
||||
|
||||
Wscript.StdOut.WriteLine "</datalist>"
|
||||
Wscript.StdOut.WriteLine "</inventory_module>"
|
||||
Wscript.StdOut.WriteLine "</inventory>"
|
|
@ -0,0 +1,29 @@
|
|||
' Pandora FMS Agent Inventory Plugin for Microsoft Windows (All platfforms)
|
||||
' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es>
|
||||
' This plugin extends agent inventory feature. Only enterprise version
|
||||
' --------------------------------------------------------------------------
|
||||
on error resume next
|
||||
'WMI CD_ROM_drives_info
|
||||
|
||||
Wscript.StdOut.WriteLine "<inventory>"
|
||||
Wscript.StdOut.WriteLine "<inventory_module>"
|
||||
Wscript.StdOut.WriteLine "<name>CDROM</name>"
|
||||
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
|
||||
Wscript.StdOut.WriteLine "<datalist>"
|
||||
|
||||
strComputer = "."
|
||||
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
|
||||
Set colCDROMDrives = objWMIService.ExecQuery("Select caption,description,drive,deviceid from win32_CDROMDrive")
|
||||
|
||||
For Each cdromd In colCDROMDrives
|
||||
Wscript.StdOut.WriteLine "<data><![CDATA[" & cdromd.caption _
|
||||
& ";" & cdromd.description _
|
||||
& ";" & cdromd.drive _
|
||||
& ";" & cdromd.deviceid _
|
||||
& "]]></data>"
|
||||
Next
|
||||
|
||||
Wscript.StdOut.WriteLine "</datalist>"
|
||||
Wscript.StdOut.WriteLine "</inventory_module>"
|
||||
Wscript.StdOut.WriteLine "</inventory>"
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
' Pandora FMS Agent Inventory Plugin for Microsoft Windows (All platfforms)
|
||||
' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es>
|
||||
' This plugin extends agent inventory feature. Only enterprise version
|
||||
' --------------------------------------------------------------------------
|
||||
on error resume next
|
||||
'WMI cpuinfo
|
||||
|
||||
Wscript.StdOut.WriteLine "<inventory>"
|
||||
Wscript.StdOut.WriteLine "<inventory_module>"
|
||||
Wscript.StdOut.WriteLine "<name>CPU</name>"
|
||||
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
|
||||
Wscript.StdOut.WriteLine "<datalist>"
|
||||
|
||||
strComputer = "."
|
||||
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
|
||||
Set colCPUs = objWMIService.ExecQuery("Select name,maxclockspeed,caption from Win32_Processor")
|
||||
|
||||
For Each cpu In colCPUs
|
||||
Wscript.StdOut.WriteLine "<data><![CDATA[" & cpu.name & ";" & cpu.maxclockspeed & " MHz;" & cpu.caption & "]]></data>"
|
||||
Next
|
||||
|
||||
Wscript.StdOut.WriteLine "</datalist>"
|
||||
Wscript.StdOut.WriteLine "</inventory_module>"
|
||||
Wscript.StdOut.WriteLine "</inventory>"
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
' Pandora FMS Agent Inventory Plugin for Microsoft Windows (All platfforms)
|
||||
' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es>
|
||||
' This plugin extends agent inventory feature. Only enterprise version
|
||||
' --------------------------------------------------------------------------
|
||||
on error resume next
|
||||
'WMI disksinfo
|
||||
|
||||
Wscript.StdOut.WriteLine "<inventory>"
|
||||
Wscript.StdOut.WriteLine "<inventory_module>"
|
||||
Wscript.StdOut.WriteLine "<name>HD</name>"
|
||||
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
|
||||
Wscript.StdOut.WriteLine "<datalist>"
|
||||
|
||||
strComputer = "."
|
||||
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
|
||||
Set colHDDs = objWMIService.ExecQuery("Select * from win32_diskdrive")
|
||||
|
||||
For Each disco In colHDDs
|
||||
If ((not IsNull(disco.size)) AND (disco.size > 0)) then
|
||||
Wscript.StdOut.Write "<data><![CDATA[" & disco.caption _
|
||||
& ";" & Abs(Round((disco.size/(1024*1024*1024)),2)) & " GB"
|
||||
If (not IsNull(disco.serialnumber)) then
|
||||
Wscript.StdOut.Write ";" & disco.serialnumber
|
||||
Else
|
||||
Wscript.StdOut.Write ";" & disco.signature
|
||||
End If
|
||||
Wscript.StdOut.WriteLine "]]></data>"
|
||||
End If
|
||||
Next
|
||||
|
||||
Wscript.StdOut.WriteLine "</datalist>"
|
||||
Wscript.StdOut.WriteLine "</inventory_module>"
|
||||
Wscript.StdOut.WriteLine "</inventory>"
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
' Pandora FMS Agent Inventory Plugin for Microsoft Windows (All platfforms)
|
||||
' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es>
|
||||
' This plugin extends agent inventory feature. Only enterprise version
|
||||
' --------------------------------------------------------------------------
|
||||
on error resume next
|
||||
'WMI domain/workgroup info
|
||||
|
||||
|
||||
Wscript.StdOut.WriteLine "<inventory>"
|
||||
Wscript.StdOut.WriteLine "<inventory_module>"
|
||||
Wscript.StdOut.WriteLine "<name>Domain</name>"
|
||||
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
|
||||
Wscript.StdOut.WriteLine "<datalist>"
|
||||
|
||||
strComputer = "."
|
||||
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
|
||||
Set colItems = objWMIService.ExecQuery("SELECT Domain FROM Win32_ComputerSystem")
|
||||
For Each objItem In colItems
|
||||
WScript.StdOut.WriteLine "<data><![CDATA[" & objItem.Domain & "]]></data>"
|
||||
Next
|
||||
|
||||
|
||||
Wscript.StdOut.WriteLine "</datalist>"
|
||||
Wscript.StdOut.WriteLine "</inventory_module>"
|
||||
Wscript.StdOut.WriteLine "</inventory>"
|
|
@ -0,0 +1,42 @@
|
|||
' Pandora FMS Agent Inventory Plugin for Microsoft Windows (All platfforms)
|
||||
' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es>
|
||||
' This plugin extends agent inventory feature. Only enterprise version
|
||||
' --------------------------------------------------------------------------
|
||||
on error resume next
|
||||
'WMI real interfaces info
|
||||
' exlusions:
|
||||
' VBox network interfaces
|
||||
' VMWare network interfaces
|
||||
'
|
||||
'nic where "guid is not null and not PNPDeviceID like 'ROOT%'"
|
||||
|
||||
Wscript.StdOut.WriteLine "<inventory>"
|
||||
Wscript.StdOut.WriteLine "<inventory_module>"
|
||||
Wscript.StdOut.WriteLine "<name>NIC</name>"
|
||||
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
|
||||
Wscript.StdOut.WriteLine "<datalist>"
|
||||
|
||||
strComputer = "."
|
||||
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
|
||||
Set colAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapter " & _
|
||||
"Where not PNPDeviceID like 'ROOT%%' " & _
|
||||
"and not PNPDeviceID like 'SW%%' " & _
|
||||
"and not ServiceName is null " & _
|
||||
"and not ServiceName like 'vwifimp' ")
|
||||
|
||||
For Each iface In colAdapters
|
||||
' return model MACAddress IPAddress
|
||||
|
||||
set ifaces_cfg = objWMIService.ExecQuery("Select ipaddress from Win32_NetworkAdapterConfiguration Where Caption='" & iface.caption & "'")
|
||||
Wscript.StdOut.Write "<data><![CDATA[" & iface.ProductName & ";" & iface.MACAddress & ";"
|
||||
for each iface_cfg in ifaces_cfg
|
||||
if ( iface_cfg.IPAddress(0) <> "" ) then
|
||||
Wscript.StdOut.Write trim(iface_cfg.IPAddress(0))
|
||||
end if
|
||||
next
|
||||
wscript.stdOut.WriteLine "]]></data>"
|
||||
Next
|
||||
|
||||
Wscript.StdOut.WriteLine "</datalist>"
|
||||
Wscript.StdOut.WriteLine "</inventory_module>"
|
||||
Wscript.StdOut.WriteLine "</inventory>"
|
|
@ -0,0 +1,26 @@
|
|||
' Pandora FMS Agent Inventory Plugin for Microsoft Windows (All platfforms)
|
||||
' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es>
|
||||
' This plugin extends agent inventory feature. Only enterprise version
|
||||
' --------------------------------------------------------------------------
|
||||
on error resume next
|
||||
'WMI mobo info
|
||||
|
||||
Wscript.StdOut.WriteLine "<inventory>"
|
||||
Wscript.StdOut.WriteLine "<inventory_module>"
|
||||
Wscript.StdOut.WriteLine "<name>Motherboard</name>"
|
||||
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
|
||||
Wscript.StdOut.WriteLine "<datalist>"
|
||||
|
||||
strComputer = "."
|
||||
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
|
||||
'Set colMobos = objWMIService.ExecQuery("Select name,product,manufacturer from Win32_baseboard")
|
||||
Set colMobos2 = objWMIService.ExecQuery("Select manufacturer,model,OEMStringArray from Win32_computersystem")
|
||||
|
||||
For Each mobo In colMobos2
|
||||
Wscript.StdOut.WriteLine "<data><![CDATA[" & mobo.manufacturer & ";" & mobo.model & ";" & mobo.OEMStringArray(0) & "]]></data>"
|
||||
Next
|
||||
|
||||
Wscript.StdOut.WriteLine "</datalist>"
|
||||
Wscript.StdOut.WriteLine "</inventory_module>"
|
||||
Wscript.StdOut.WriteLine "</inventory>"
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
' Pandora FMS Agent Inventory Plugin for Microsoft Windows (All platfforms)
|
||||
' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es>
|
||||
' This plugin extends agent inventory feature. Only enterprise version
|
||||
' --------------------------------------------------------------------------
|
||||
on error resume next
|
||||
'WMI monitorsinfo
|
||||
|
||||
Wscript.StdOut.WriteLine "<inventory>"
|
||||
Wscript.StdOut.WriteLine "<inventory_module>"
|
||||
Wscript.StdOut.WriteLine "<name>Monitors</name>"
|
||||
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
|
||||
Wscript.StdOut.WriteLine "<datalist>"
|
||||
|
||||
strComputer = "."
|
||||
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
|
||||
Set colDisplays = objWMIService.ExecQuery("Select caption,pnpdeviceid from win32_desktopmonitor")
|
||||
|
||||
For Each display In colDisplays
|
||||
if (NOT isNull(display.pnpdeviceid)) then
|
||||
Wscript.StdOut.WriteLine "<data><![CDATA[" & display.caption _
|
||||
& ";" & display.pnpdeviceid _
|
||||
& "]]></data>"
|
||||
end if
|
||||
Next
|
||||
|
||||
Wscript.StdOut.WriteLine "</datalist>"
|
||||
Wscript.StdOut.WriteLine "</inventory_module>"
|
||||
Wscript.StdOut.WriteLine "</inventory>"
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
' Pandora FMS Agent Inventory Plugin for Microsoft Windows (All platfforms)
|
||||
' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es>
|
||||
' This plugin extends agent inventory feature. Only enterprise version
|
||||
' --------------------------------------------------------------------------
|
||||
on error resume next
|
||||
'WMI OS version
|
||||
|
||||
|
||||
Wscript.StdOut.WriteLine "<inventory>"
|
||||
Wscript.StdOut.WriteLine "<inventory_module>"
|
||||
Wscript.StdOut.WriteLine "<name>OSVersion</name>"
|
||||
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
|
||||
Wscript.StdOut.WriteLine "<datalist>"
|
||||
|
||||
strComputer = "."
|
||||
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
|
||||
Set cols = objWMIService.ExecQuery("SELECT version from win32_operatingsystem")
|
||||
|
||||
For Each data In cols
|
||||
Wscript.StdOut.WriteLine "<data><![CDATA[" & data.version & "]]></data>"
|
||||
Next
|
||||
|
||||
Wscript.StdOut.WriteLine "</datalist>"
|
||||
Wscript.StdOut.WriteLine "</inventory_module>"
|
||||
Wscript.StdOut.WriteLine "</inventory>"
|
|
@ -0,0 +1,59 @@
|
|||
' Pandora FMS Agent Inventory Plugin for Microsoft Windows (All platfforms)
|
||||
' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es>
|
||||
' This plugin extends agent inventory feature. Only enterprise version
|
||||
' --------------------------------------------------------------------------
|
||||
On Error Resume Next
|
||||
|
||||
'WMI printers attached
|
||||
|
||||
Wscript.StdOut.WriteLine "<inventory>"
|
||||
Wscript.StdOut.WriteLine "<inventory_module>"
|
||||
Wscript.StdOut.WriteLine "<name>Printers</name>"
|
||||
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
|
||||
Wscript.StdOut.WriteLine "<datalist>"
|
||||
|
||||
function validPort(port)
|
||||
if strComp(port,"SHRFAX:") = 0 then
|
||||
validPort = false
|
||||
elseif strComp(port,"nul:") = 0 then
|
||||
validPort = false
|
||||
elseif strComp(port,"PORTPROMPT:") = 0 then
|
||||
validPort = false
|
||||
elseif strComp(port,"XPSPort:") = 0 then
|
||||
validPort = false
|
||||
elseif strComp(port,"PDF:") = 0 then
|
||||
validPort = false
|
||||
else
|
||||
validPort = true
|
||||
end if
|
||||
end function
|
||||
|
||||
Set oWMI = GetObject("winmgmts:\\" & "." & "\root\cimv2")
|
||||
Set colPrinters = oWMI.ExecQuery("Select * from Win32_Printer",,48)
|
||||
|
||||
For Each objPrinter in colPrinters
|
||||
if validPort (objPrinter.PortName) then
|
||||
set tcp_port_exists = 0
|
||||
WScript.stdOut.Write "<data><![CDATA[" & _
|
||||
objPrinter.DeviceID & ";" & _
|
||||
objPrinter.DriverName & ";"
|
||||
If (objPrinter.Local) Then
|
||||
Set colPorts = oWMI.ExecQuery("Select HostAddress from Win32_TCPIPPrinterPort where Name like '" & objPrinter.PortName & "'",,48)
|
||||
For Each objPort in colPorts
|
||||
tcp_port_exists = 1
|
||||
Wscript.stdOut.Write objPort.HostAddress
|
||||
Next
|
||||
If (tcp_port_exists = 0) Then
|
||||
Wscript.stdOut.Write objPrinter.PortName
|
||||
End If
|
||||
Else
|
||||
Wscript.stdOut.Write objPrinter.ServerName
|
||||
End If
|
||||
wscript.stdOut.WriteLine "]]></data>"
|
||||
end if
|
||||
Next
|
||||
|
||||
|
||||
Wscript.StdOut.WriteLine "</datalist>"
|
||||
Wscript.StdOut.WriteLine "</inventory_module>"
|
||||
Wscript.StdOut.WriteLine "</inventory>"
|
|
@ -0,0 +1,24 @@
|
|||
' windows_product_key.vbs
|
||||
' Pandora FMS Agent Inventory Plugin for Microsoft Windows (All platfforms)
|
||||
' (c) 2015 Sancho Lerena <slerena@artica.es>
|
||||
' This plugin extends agent inventory feature. Only enterprise version
|
||||
' ----------------------------------------------------------------
|
||||
on error resume next
|
||||
|
||||
Wscript.StdOut.WriteLine "<inventory>"
|
||||
Wscript.StdOut.WriteLine "<inventory_module>"
|
||||
Wscript.StdOut.WriteLine "<name>product_ID</name>"
|
||||
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
|
||||
Wscript.StdOut.WriteLine "<datalist>"
|
||||
|
||||
Set oShell = WScript.CreateObject ("WScript.Shell")
|
||||
Set objExec = oShell.Exec("cmd.exe /C wmic os get ""SerialNumber"" | find /v ""SerialNumber"" ")
|
||||
Do
|
||||
line = objExec.StdOut.ReadLine()
|
||||
s = s & line
|
||||
Loop While Not objExec.Stdout.atEndOfStream
|
||||
|
||||
Wscript.StdOut.WriteLine "<data><![CDATA[" & Replace(Replace(s, chr(013), ""), chr(010), "") & "]]></data>"
|
||||
Wscript.StdOut.WriteLine "</datalist>"
|
||||
Wscript.StdOut.WriteLine "</inventory_module>"
|
||||
Wscript.StdOut.WriteLine "</inventory>"
|
|
@ -0,0 +1,25 @@
|
|||
' windows_product_key.vbs
|
||||
' Pandora FMS Agent Inventory Plugin for Microsoft Windows (All platfforms)
|
||||
' (c) 2015 Sancho Lerena <slerena@artica.es>
|
||||
' This plugin extends agent inventory feature. Only enterprise version
|
||||
' ----------------------------------------------------------------
|
||||
|
||||
on error resume next
|
||||
|
||||
Wscript.StdOut.WriteLine "<inventory>"
|
||||
Wscript.StdOut.WriteLine "<inventory_module>"
|
||||
Wscript.StdOut.WriteLine "<name>product_key</name>"
|
||||
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
|
||||
Wscript.StdOut.WriteLine "<datalist>"
|
||||
|
||||
strComputer = "."
|
||||
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
|
||||
Set colProducts = objWMIService.ExecQuery("Select OA3xOriginalProductKey from SoftwareLicensingService")
|
||||
|
||||
For Each product In colProducts
|
||||
Wscript.StdOut.WriteLine "<data><![CDATA[" & product.OA3xOriginalProductKey & "]]></data>"
|
||||
Next
|
||||
|
||||
Wscript.StdOut.WriteLine "</datalist>"
|
||||
Wscript.StdOut.WriteLine "</inventory_module>"
|
||||
Wscript.StdOut.WriteLine "</inventory>"
|
|
@ -0,0 +1,28 @@
|
|||
' Pandora FMS Agent Inventory Plugin for Microsoft Windows (All platfforms)
|
||||
' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es>
|
||||
' This plugin extends agent inventory feature. Only enterprise version
|
||||
' --------------------------------------------------------------------------
|
||||
on error resume next
|
||||
'WMI raminfo
|
||||
|
||||
Wscript.StdOut.WriteLine "<inventory>"
|
||||
Wscript.StdOut.WriteLine "<inventory_module>"
|
||||
Wscript.StdOut.WriteLine "<name>RAM</name>"
|
||||
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
|
||||
Wscript.StdOut.WriteLine "<datalist>"
|
||||
|
||||
strComputer = "."
|
||||
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
|
||||
Set colRAMs = objWMIService.ExecQuery("Select deviceLocator,capacity,speed from Win32_PhysicalMemory")
|
||||
|
||||
For Each ram In colRAMs
|
||||
Wscript.StdOut.WriteLine "<data><![CDATA[" & ram.deviceLocator _
|
||||
& ";" & Abs(Round((ram.capacity/(1024*1024)),2)) & " MB" _
|
||||
& ";" & ram.speed & " MHz"_
|
||||
& "]]></data>"
|
||||
Next
|
||||
|
||||
Wscript.StdOut.WriteLine "</datalist>"
|
||||
Wscript.StdOut.WriteLine "</inventory_module>"
|
||||
Wscript.StdOut.WriteLine "</inventory>"
|
||||
|
|
@ -1,72 +1,141 @@
|
|||
' software_inventory.vbs
|
||||
' Pandora FMS Agent Inventory Plugin for Microsoft Windows (All platfforms)
|
||||
' (c) 2014 Sancho Lerena <slerena@artica.es>
|
||||
' (c) 2015 Sancho Lerena <slerena@artica.es>
|
||||
' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es>
|
||||
' This plugin extends agent inventory feature. Only enterprise version
|
||||
' ----------------------------------------------------------------
|
||||
' usage: cscript //B software_inventory.vbs
|
||||
' --------------------------------------------------------------------------
|
||||
on error resume next
|
||||
|
||||
Class ObjectList
|
||||
Public List
|
||||
|
||||
Sub Class_Initialize()
|
||||
Set List = CreateObject("Scripting.Dictionary")
|
||||
End Sub
|
||||
|
||||
Sub Class_Terminate()
|
||||
Set List = Nothing
|
||||
End Sub
|
||||
|
||||
Function Append(Anything)
|
||||
List.Add CStr(List.Count + 1), Anything
|
||||
Set Append = Anything
|
||||
End Function
|
||||
|
||||
Function Item(id)
|
||||
If List.Exists(CStr(id)) Then
|
||||
Set Item = List(CStr(id))
|
||||
Else
|
||||
Set Item = Nothing
|
||||
End If
|
||||
End Function
|
||||
End Class
|
||||
|
||||
class AppClass
|
||||
dim InstallDate,Caption,Version,Vendor
|
||||
end class
|
||||
|
||||
' Print the XML structure
|
||||
Wscript.StdOut.WriteLine "<inventory>"
|
||||
Wscript.StdOut.WriteLine"<inventory_module>"
|
||||
Wscript.StdOut.WriteLine "<name>software</name>"
|
||||
Wscript.StdOut.WriteLine "<inventory_module>"
|
||||
Wscript.StdOut.WriteLine "<name>Software</name>"
|
||||
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
|
||||
Wscript.StdOut.WriteLine "<datalist>"
|
||||
|
||||
'------ Checks if an item exists on the main collection
|
||||
function isItemInArray(objeto,coleccion)
|
||||
for each id in coleccion.List
|
||||
if (strComp(objeto,coleccion.List(id).caption) = 0) then
|
||||
isItemInArray=true
|
||||
exit function
|
||||
end if
|
||||
next
|
||||
isItemInArray=false
|
||||
end function
|
||||
|
||||
'------ main collection definition
|
||||
dim colObjSW : set colObjSW = new ObjectList
|
||||
strComputer = "."
|
||||
|
||||
'------ Retrieve the WMI registers first
|
||||
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
|
||||
Set colSoftware = objWMIService.ExecQuery ("SELECT installstate,caption,installdate,Version,vendor FROM Win32_Product")
|
||||
|
||||
|
||||
'------ Check all
|
||||
'-- first) add all unique WMI (unique) entries to main collector
|
||||
'-- second) add all unique REGISTRY items to main collector
|
||||
|
||||
for each objSoftware in colSoftware
|
||||
if ( objSoftware.installstate = 5 ) then
|
||||
if ( isItemInArray(objSoftware.caption, colObjSW) = false ) then
|
||||
' It doesn't exists, added.
|
||||
With colObjSW.Append(New AppClass)
|
||||
.caption = objSoftware.caption
|
||||
.InstallDate = objSoftware.InstallDate
|
||||
.version = objSoftware.version
|
||||
.vendor = objSoftware.vendor
|
||||
End with
|
||||
' Add to XML the verified ones
|
||||
Wscript.StdOut.WriteLine "<data><![CDATA[" _
|
||||
& objSoftware.caption & ";" _
|
||||
& objSoftware.version _
|
||||
& "]]></data>"
|
||||
end if
|
||||
end if
|
||||
next
|
||||
|
||||
' ------ Getting the REGISTRY
|
||||
Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE
|
||||
strComputer = "."
|
||||
|
||||
strKey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
|
||||
strEntry1a = "DisplayName"
|
||||
strEntry1b = "QuietDisplayName"
|
||||
strEntry2 = "InstallDate"
|
||||
strEntry3 = "VersionMajor"
|
||||
strEntry4 = "VersionMinor"
|
||||
strEntry5 = "EstimatedSize"
|
||||
strEntry3 = "DisplayVersion"
|
||||
|
||||
Set objReg = GetObject("winmgmts://" & strComputer & _
|
||||
"/root/default:StdRegProv")
|
||||
Set objReg = GetObject("winmgmts://" & strComputer & "/root/default:StdRegProv")
|
||||
objReg.EnumKey HKLM, strKey, arrSubkeys
|
||||
|
||||
For Each strSubkey In arrSubkeys
|
||||
|
||||
appname = ""
|
||||
appsize = ""
|
||||
appversion = ""
|
||||
appdate = ""
|
||||
|
||||
intRet1 = objReg.GetStringValue(HKLM, strKey & strSubkey, _
|
||||
strEntry1a, strValue1)
|
||||
intRet1 = objReg.GetStringValue(HKLM, strKey & strSubkey, strEntry1a, strValue1)
|
||||
If intRet1 <> 0 Then
|
||||
objReg.GetStringValue HKLM, strKey & strSubkey, _
|
||||
strEntry1b, strValue1
|
||||
objReg.GetStringValue HKLM, strKey & strSubkey, strEntry1b, strValue1
|
||||
End If
|
||||
If strValue1 <> "" Then
|
||||
appname = strValue1
|
||||
End If
|
||||
objReg.GetStringValue HKLM, strKey & strSubkey, _
|
||||
strEntry2, strValue2
|
||||
objReg.GetStringValue HKLM, strKey & strSubkey, strEntry2, strValue2
|
||||
If strValue2 <> "" Then
|
||||
appdate = strValue2
|
||||
End If
|
||||
objReg.GetDWORDValue HKLM, strKey & strSubkey, _
|
||||
strEntry3, intValue3
|
||||
objReg.GetDWORDValue HKLM, strKey & strSubkey, _
|
||||
strEntry4, intValue4
|
||||
|
||||
objReg.GetStringValue HKLM, strKey & strSubkey, strEntry3, intValue3
|
||||
If intValue3 <> "" Then
|
||||
appversion = intValue3 & "." & intValue4
|
||||
appversion = intValue3
|
||||
End If
|
||||
objReg.GetDWORDValue HKLM, strKey & strSubkey, _
|
||||
strEntry5, intValue5
|
||||
If intValue5 <> "" Then
|
||||
appsize = Round(intValue5/1024, 3) & " megabytes"
|
||||
End If
|
||||
|
||||
If appname <> "" Then
|
||||
Wscript.StdOut.WriteLine "<data>" & appname & ";" & appversion & ";" & appdate & ";" & appsize & "</data>"
|
||||
' foreach registry item, check if exists in the main collector
|
||||
' it it exists, it doesn't be added.
|
||||
if ( isItemInArray(appname, colObjSW) = false ) then
|
||||
' as item doesn't exist, we add it to main collector and to XML
|
||||
With colObjSW.Append(New AppClass)
|
||||
.caption = appname
|
||||
.version = appversion
|
||||
End with
|
||||
Wscript.StdOut.WriteLine "<data><![CDATA[" & appname & ";" & appversion & "]]></data>"
|
||||
end if
|
||||
end if
|
||||
|
||||
Next
|
||||
next
|
||||
|
||||
' Closing the XML structure
|
||||
Wscript.StdOut.WriteLine "</datalist>"
|
||||
Wscript.StdOut.WriteLine "</inventory_module>"
|
||||
Wscript.StdOut.WriteLine "</inventory>"
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,74 @@
|
|||
' Pandora FMS Agent Inventory Plugin for Microsoft Windows (All platfforms)
|
||||
' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es>
|
||||
' This plugin extends agent inventory feature. Only enterprise version
|
||||
' --------------------------------------------------------------------------
|
||||
on error resume next
|
||||
' Lista todos los usuarios del equipo que han iniciado procesos
|
||||
|
||||
dim loggedUsers(),i
|
||||
i=0
|
||||
Sub insertIfNotExists(sDomain,sUser)
|
||||
For Each lUser in loggedUsers
|
||||
If StrComp(sDomain & "\" & sUser, lUser) = 0 Then
|
||||
Exit Sub
|
||||
End If
|
||||
Next
|
||||
redim preserve loggedUsers(i)
|
||||
i=i+1
|
||||
loggedUsers (i-1)=sDomain & "\" & sUser
|
||||
End Sub
|
||||
|
||||
Function CheckRealUser(sHost, sUser, sDomain)
|
||||
Dim oWMI,realUsers
|
||||
Set oWmi = GetObject("winmgmts:{impersonationLevel=impersonate,(debug)}!\\" _
|
||||
& sHost & "\root\cimv2")
|
||||
Set realUsers = oWmi.ExecQuery("SELECT * FROM Win32_UserAccount WHERE Domain='" & sDomain & "' OR Name='" & sUser & "'")
|
||||
If (realUsers.count=0) Then
|
||||
CheckRealUser = False
|
||||
Else
|
||||
CheckRealUser = True
|
||||
End If
|
||||
|
||||
End Function
|
||||
|
||||
Function ConsoleUser(sHost)
|
||||
Dim oWMI, colProc, oProcess, strUser, strDomain
|
||||
Set oWmi = GetObject("winmgmts:" _
|
||||
& "{impersonationLevel=impersonate,(debug)}!\\" _
|
||||
& sHost & "\root\cimv2")
|
||||
|
||||
Set colProc = oWmi.ExecQuery("Select sessionID from Win32_Process")
|
||||
|
||||
ConsoleUser = ""
|
||||
For Each oProcess In colProc
|
||||
lRet = oProcess.getOwner(strOwner, strDomain)
|
||||
If (lRet = 0) AND (CheckRealUser(sHost,strOwner,strDomain)) Then
|
||||
insertIfNotExists strDomain,strOwner
|
||||
ConsoleUser = sUser
|
||||
End If
|
||||
Next
|
||||
End Function
|
||||
|
||||
' MAIN
|
||||
|
||||
sUser = ConsoleUser(".") ' use "." for local computer
|
||||
|
||||
Wscript.StdOut.WriteLine "<inventory>"
|
||||
Wscript.StdOut.WriteLine "<inventory_module>"
|
||||
Wscript.StdOut.WriteLine "<name>Users</name>"
|
||||
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
|
||||
Wscript.StdOut.WriteLine "<datalist>"
|
||||
|
||||
|
||||
For Each usuario in loggedUsers
|
||||
Wscript.StdOut.WriteLine "<data><![CDATA[" & split(usuario,"\")(0) _
|
||||
& ";" & split(usuario,"\")(1) _
|
||||
& "]]></data>"
|
||||
next
|
||||
|
||||
|
||||
Wscript.StdOut.WriteLine "</datalist>"
|
||||
Wscript.StdOut.WriteLine "</inventory_module>"
|
||||
Wscript.StdOut.WriteLine "</inventory>"
|
||||
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
' Pandora FMS Agent Inventory Plugin for Microsoft Windows (All platfforms)
|
||||
' (c) 2015 Borja Sanchez <fborja.sanchez@artica.es>
|
||||
' This plugin extends agent inventory feature. Only enterprise version
|
||||
' --------------------------------------------------------------------------
|
||||
on error resume next
|
||||
'WMI video_card_info
|
||||
|
||||
Wscript.StdOut.WriteLine "<inventory>"
|
||||
Wscript.StdOut.WriteLine "<inventory_module>"
|
||||
Wscript.StdOut.WriteLine "<name>Video</name>"
|
||||
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
|
||||
Wscript.StdOut.WriteLine "<datalist>"
|
||||
|
||||
strComputer = "."
|
||||
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
|
||||
Set colVideoCards = objWMIService.ExecQuery("Select caption,AdapterRAM,PNPDeviceID from win32_videocontroller")
|
||||
|
||||
For Each vcard In colVideoCards
|
||||
Wscript.StdOut.WriteLine "<data><![CDATA[" & vcard.caption _
|
||||
& ";" & Round(Abs(vcard.AdapterRAM/(1024*1024)),2) & " MB" _
|
||||
& ";" & vcard.PNPDeviceID _
|
||||
& "]]></data>"
|
||||
Next
|
||||
|
||||
Wscript.StdOut.WriteLine "</datalist>"
|
||||
Wscript.StdOut.WriteLine "</inventory_module>"
|
||||
Wscript.StdOut.WriteLine "</inventory>"
|
||||
|
|
@ -186,7 +186,7 @@ UpgradeApplicationID
|
|||
{}
|
||||
|
||||
Version
|
||||
{150421}
|
||||
{150506}
|
||||
|
||||
ViewReadme
|
||||
{Yes}
|
||||
|
|
|
@ -30,7 +30,7 @@ using namespace Pandora;
|
|||
using namespace Pandora_Strutils;
|
||||
|
||||
#define PATH_SIZE _MAX_PATH+1
|
||||
#define PANDORA_VERSION ("6.0dev(Build 150421)")
|
||||
#define PANDORA_VERSION ("6.0dev(Build 150506)")
|
||||
|
||||
string pandora_path;
|
||||
string pandora_dir;
|
||||
|
|
|
@ -11,7 +11,7 @@ BEGIN
|
|||
VALUE "LegalCopyright", "Artica ST"
|
||||
VALUE "OriginalFilename", "PandoraAgent.exe"
|
||||
VALUE "ProductName", "Pandora FMS Windows Agent"
|
||||
VALUE "ProductVersion", "(6.0dev(Build 150421))"
|
||||
VALUE "ProductVersion", "(6.0dev(Build 150506))"
|
||||
VALUE "FileVersion", "1.0.0.0"
|
||||
END
|
||||
END
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-console
|
||||
Version: 6.0dev-150421
|
||||
Version: 6.0dev-150506
|
||||
Architecture: all
|
||||
Priority: optional
|
||||
Section: admin
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
pandora_version="6.0dev-150421"
|
||||
pandora_version="6.0dev-150506"
|
||||
|
||||
package_pear=0
|
||||
package_pandora=1
|
||||
|
|
|
@ -105,10 +105,18 @@ function mainAgentsAlerts() {
|
|||
}
|
||||
|
||||
// Header
|
||||
ui_print_page_header (__("Agents/Alerts"), "images/op_alerts.png", false, "", false, $onheader);
|
||||
ui_print_page_header (__("Agents/Alerts"), "images/op_alerts.png", false, "", false, $updated_time);
|
||||
|
||||
// Old style table, we need a lot of special formatting,don't use table function
|
||||
// Prepare old-style table
|
||||
echo '<table class="databox filters" cellpadding="0" cellspacing="0" border="0" style="width:100%;">';
|
||||
echo "<tr>";
|
||||
echo "<td>" . $filter_groups . "</td>";
|
||||
if ($config['pure'] == 1)
|
||||
echo "<td>" . $comborefr . "</td>";
|
||||
echo "<td> <strong>" . __("Full screen") . "</strong>" . $fullscreen['text'] . "</td>";
|
||||
echo "</tr>";
|
||||
echo "</table>";
|
||||
|
||||
$filter = array ('offset' => (int) $offset,
|
||||
'limit' => (int) $config['block_size']);
|
||||
|
@ -144,7 +152,7 @@ function mainAgentsAlerts() {
|
|||
$nagents = count(agents_get_agents ($filter_count));
|
||||
|
||||
if ($agents == false) {
|
||||
echo "<div class='nf'>" . __('There are no agents with alerts')."</div>";
|
||||
ui_print_info_message ( array('no_close'=>true, 'message'=> __('There are no agents with alerts') ) );
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -164,12 +172,15 @@ function mainAgentsAlerts() {
|
|||
// Prepare pagination
|
||||
ui_pagination ($nagents);
|
||||
|
||||
echo '<table cellpadding="4" cellspacing="4" border="0" width=98%>';
|
||||
echo "<th width='140px' height='25px'>".__("Agents")." / ".__("Alert templates")."</th>";
|
||||
echo '<table class="databox data" cellpadding="0" cellspacing="0" border="0" width=100%>';
|
||||
echo "<th width='140px' >".__("Agents")." / ".__("Alert templates")."</th>";
|
||||
|
||||
if ($hor_offset > 0) {
|
||||
$new_hor_offset = $hor_offset-$block;
|
||||
echo "<th width='20px' style='vertical-align:top; padding-top: 35px;' rowspan='".($nagents+1)."'><a href='index.php?sec=extensions&sec2=extensions/agents_alerts&refr=0&hor_offset=".$new_hor_offset."&offset=".$offset."&group_id=".$group_id."'>".html_print_image("images/darrowleft.png",true, array('title' => __('Previous templates')))."</a> </th>";
|
||||
echo "<th width='20px' style='' rowspan='".($nagents+1)."'>
|
||||
<a href='index.php?sec=extensions&sec2=extensions/agents_alerts&refr=0&hor_offset=".
|
||||
$new_hor_offset."&offset=".$offset."&group_id=".$group_id."'>".
|
||||
html_print_image("images/darrowleft.png",true, array('title' => __('Previous templates')))."</a> </th>";
|
||||
}
|
||||
|
||||
$templates_raw = array();
|
||||
|
@ -200,12 +211,14 @@ function mainAgentsAlerts() {
|
|||
if ($tname == '') {
|
||||
continue;
|
||||
}
|
||||
echo '<th width="20px" >'. html_print_image('images/information.png', true, array('title' => io_safe_output($tname))) ."</th>";
|
||||
echo '<th width="20px" >'. io_safe_output($tname) . html_print_image('images/information.png', true, array('title' => io_safe_output($tname))) ."</th>";
|
||||
}
|
||||
|
||||
if (($hor_offset + $block) < $ntemplates) {
|
||||
$new_hor_offset = $hor_offset+$block;
|
||||
echo "<th width='20px' style='vertical-align:top; padding-top: 35px;' rowspan='".($nagents+1)."'><a href='index.php?sec=extensions&sec2=extensions/agents_alerts&hor_offset=".$new_hor_offset."&offset=".$offset."&group_id=".$group_id."'>".html_print_image("images/darrowright.png",true, array('title' => __('More templates')))."</a> </th>";
|
||||
echo "<th width='20px' style='' rowspan='".($nagents+1)."'>
|
||||
<a href='index.php?sec=extensions&sec2=extensions/agents_alerts&hor_offset=".$new_hor_offset."&offset=".
|
||||
$offset."&group_id=".$group_id."'>".html_print_image("images/darrowright.png",true, array('title' => __('More templates')))."</a> </th>";
|
||||
}
|
||||
|
||||
foreach ($agents as $agent) {
|
||||
|
@ -231,7 +244,7 @@ function mainAgentsAlerts() {
|
|||
$cellstyle = 'background:'.COL_ALERTFIRED.';';
|
||||
}
|
||||
|
||||
echo '<td style="text-align:center;'.$cellstyle.'"> ';
|
||||
echo '<td style=";'.$cellstyle.'"> ';
|
||||
|
||||
$uniqid = uniqid();
|
||||
echo "<div>";
|
||||
|
|
|
@ -74,12 +74,12 @@ function mainAgentsModules() {
|
|||
$filter_module_groups = '<form method="post" action="' . ui_get_url_refresh (array ('offset' => $offset, 'hor_offset' => $offset,'group_id' => $group_id, 'modulegroup' => $modulegroup)).'">';
|
||||
$filter_module_groups .= '<b>'.__('Module group').'</b>';
|
||||
$filter_module_groups .= html_print_select_from_sql ("SELECT * FROM tmodule_group ORDER BY name",
|
||||
'modulegroup', $modulegroup, 'this.form.submit()',__('All'), 0, true, false, true, false, 'width: 100px; margin-right: 10px; margin-top: 5px;');
|
||||
'modulegroup', $modulegroup, 'this.form.submit()',__('All'), 0, true, false, true, false, 'width: auto;');
|
||||
$filter_module_groups .= '</form>';
|
||||
|
||||
$filter_groups = '<form method="post" action="' . ui_get_url_refresh (array ('offset' => $offset, 'hor_offset' => $offset,'group_id' => $group_id, 'modulegroup' => $modulegroup)).'">';
|
||||
$filter_groups .= '<b>'.__('Group').'</b>';
|
||||
$filter_groups .= html_print_select_groups(false, "AR", true, 'group_id', $group_id, 'this.form.submit()', '', '', true, false, true, '', false , 'width: 100px; margin-right: 10px;; margin-top: 5px;');
|
||||
$filter_groups .= html_print_select_groups(false, "AR", true, 'group_id', $group_id, 'this.form.submit()', '', '', true, false, true, '', false , 'width: auto;');
|
||||
$filter_groups .= '</form>';
|
||||
|
||||
$comborefr = '<form method="post" action="' . ui_get_url_refresh (array ('offset' => $offset, 'hor_offset' => $offset,'group_id' => $group_id, 'modulegroup' => $modulegroup)).'">';
|
||||
|
@ -116,10 +116,19 @@ function mainAgentsModules() {
|
|||
}
|
||||
|
||||
// Header
|
||||
ui_print_page_header (__("Agents/Modules"), "images/module_mc.png", false, "", false, $onheader);
|
||||
ui_print_page_header (__("Agents/Modules"), "images/module_mc.png", false, "", false, $updated_time);
|
||||
|
||||
// Old style table, we need a lot of special formatting,don't use table function
|
||||
// Prepare old-style table
|
||||
echo '<table class="databox filters" cellpadding="0" cellspacing="0" border="0" style="width:100%;">';
|
||||
echo "<tr>";
|
||||
echo "<td>" . $filter_module_groups . "</td>";
|
||||
echo "<td>" . $filter_groups . "</td>";
|
||||
if ($config['pure'] == 1)
|
||||
echo "<td>" . $comborefr . "</td>";
|
||||
echo "<td> <strong>" . __("Full screen") . "</strong>" . $fullscreen['text'] . "</td>";
|
||||
echo "</tr>";
|
||||
echo "</table>";
|
||||
|
||||
$agents = '';
|
||||
$agents = agents_get_group_agents($group_id,array('disabled' => 0));
|
||||
|
@ -138,7 +147,7 @@ function mainAgentsModules() {
|
|||
}
|
||||
$count++;
|
||||
}
|
||||
|
||||
$total_pagination = count($agents);
|
||||
$all_modules = agents_get_modules($agents, false, $filter_module_group, true, false);
|
||||
|
||||
$modules_by_name = array();
|
||||
|
@ -172,15 +181,15 @@ function mainAgentsModules() {
|
|||
$nagents = count($agents);
|
||||
|
||||
if ($all_modules == false || $agents == false) {
|
||||
echo "<div class='nf'>".__('There are no agents with modules')."</div>";
|
||||
ui_print_info_message ( array('no_close'=>true, 'message'=> __('There are no agents with modules') ) );
|
||||
return;
|
||||
}
|
||||
|
||||
echo '<table cellpadding="4" cellspacing="4" border="0" style="width:98%;" class="agents_modules_table">';
|
||||
echo '<table cellpadding="4" cellspacing="4" border="0" style="width:100%;" class="agents_modules_table">';
|
||||
|
||||
echo "<tr>";
|
||||
|
||||
echo "<th width='140px' height='25px' valign='bottom' style='text-align: right !important;'>" . __("Agents") . " / " . __("Modules") . "</th>";
|
||||
echo "<th width='140px' style='text-align: right !important;'>" . __("Agents") . " / " . __("Modules") . "</th>";
|
||||
|
||||
if ($hor_offset > 0) {
|
||||
$new_hor_offset = $hor_offset-$block;
|
||||
|
@ -242,13 +251,12 @@ function mainAgentsModules() {
|
|||
|
||||
echo "</tr>";
|
||||
|
||||
$filter_agents = array('offset' => (int) $offset,
|
||||
'limit' => (int) $config['block_size'], 'disabled' => 0);
|
||||
$filter_agents = array('offset' => (int) $offset, 'disabled' => 0);
|
||||
if ($group_id > 0) {
|
||||
$filter_agents['id_grupo'] = $group_id;
|
||||
}
|
||||
// Prepare pagination
|
||||
ui_pagination ((int)count(agents_get_agents ($filter_agents)));
|
||||
ui_pagination ($total_pagination);
|
||||
|
||||
foreach ($agents as $agent) {
|
||||
// Get stats for this group
|
||||
|
|
|
@ -167,9 +167,9 @@ function mainModuleGroups() {
|
|||
|
||||
ui_print_page_header (__("Combined table of agent group and module group"), "images/module_group.png", false, "", false, '');
|
||||
|
||||
echo "<p>" .
|
||||
__("This table shows in columns the modules group and in rows agents group. The cell shows all modules") .
|
||||
"</p>";
|
||||
ui_print_info_message ( array('no_close'=>true, 'message'=>
|
||||
__("This table shows in columns the modules group and in rows agents group. The cell shows all modules") )
|
||||
);
|
||||
|
||||
|
||||
$agentGroups = users_get_groups ($config['id_user'], "AR", false);
|
||||
|
@ -182,7 +182,7 @@ function mainModuleGroups() {
|
|||
$table->headstyle[] = "width: 20%";
|
||||
foreach ($modelGroups as $i => $n) {
|
||||
$table->headstyle[] = "width: 7%";
|
||||
$modelGroups[$i] = ui_print_truncate_text($n, GENERIC_SIZE_TEXT);
|
||||
$modelGroups[$i] = ui_print_truncate_text($n, GENERIC_SIZE_TEXT, true, true, true, '…', 'color:#FFF');
|
||||
}
|
||||
|
||||
$head = $modelGroups;
|
||||
|
@ -203,7 +203,7 @@ function mainModuleGroups() {
|
|||
$fired = false;
|
||||
$row = array();
|
||||
|
||||
array_push($row, ui_print_truncate_text($name, GENERIC_SIZE_TEXT));
|
||||
array_push($row, ui_print_truncate_text($name, GENERIC_SIZE_TEXT, true, true, true, '…', 'color:#FFF'));
|
||||
|
||||
foreach ($modelGroups as $idModelGroup => $modelGroup) {
|
||||
$fired = false;
|
||||
|
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 570 B |
|
@ -46,6 +46,8 @@ function pandora_realtime_graphs () {
|
|||
$table->id = 'table-form';
|
||||
$table->class = 'databox filters';
|
||||
$table->style = array ();
|
||||
$table->cellpadding = '0';
|
||||
$table->cellspacing = '0';
|
||||
$table->style[0] = 'font-weight: bold;';
|
||||
$table->style[1] = 'font-weight: bold;';
|
||||
$table->style[2] = 'font-weight: bold;';
|
||||
|
@ -63,7 +65,6 @@ function pandora_realtime_graphs () {
|
|||
$refresh = get_parameter('refresh', '1000');
|
||||
|
||||
$data['graph'] = __('Graph') . ' ' . html_print_select ($graph_fields, 'graph', $graph, '', '', 0, true);
|
||||
$data['reset'] = html_print_button(__('Clear graph'), 'reset', false, 'clearGraph()', 'class="sub delete"', true);
|
||||
|
||||
$refresh_fields[1000] = human_time_description_raw(1, true, 'large');
|
||||
$refresh_fields[5000] = human_time_description_raw(5, true, 'large');
|
||||
|
@ -72,7 +73,7 @@ function pandora_realtime_graphs () {
|
|||
|
||||
$data['refresh'] = __('Refresh interval') . ' ' . html_print_select ($refresh_fields, 'refresh', $refresh, '', '', 0, true);
|
||||
$data['incremental'] = __('Incremental') . ' ' . html_print_checkbox ('incremental', 1, 0, true);
|
||||
|
||||
$data['reset'] = html_print_button(__('Clear graph'), 'reset', false, 'clearGraph()', 'class="sub delete" style="margin-top:0px;"', true);
|
||||
$table->data[] = $data;
|
||||
|
||||
|
||||
|
|
|
@ -57,7 +57,7 @@ function ssh_gateway () {
|
|||
echo "<td>".__("Host address")."<td><input type=text size=25 value='$HOST' name=host>";
|
||||
//echo "<tr>";
|
||||
echo "<td>".__("User")."<td><input type=text size=25 value='$USER' name=user>" . ui_print_help_tip(__('For security reasons the following characters are not allowed: %s', '< > | ` $ ; &'), true);
|
||||
echo "<td rowspan=2 vertical_aling='middle'> <input type=submit name=connect class='sub upd' value=".__("Connect").">";
|
||||
echo "<td rowspan=2 vertical_aling='middle'> <input type=submit name=connect class='sub upd' style='margin-top:0px;' value=".__("Connect").">";
|
||||
echo "<input type=hidden name=commit value=1></td>";
|
||||
echo "<tr>";
|
||||
echo "<td>".__("Port (use 0 for default)")."<td><input type=text size=5 value='$PORT' name=port>";
|
||||
|
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 486 B |
|
@ -25,7 +25,7 @@ function vnc_view() {
|
|||
echo __("VNC Display (:0 by default)") . " ";
|
||||
echo "<input type=text name=display value=$display>";
|
||||
echo "</td><td>";
|
||||
echo "<input type=submit class='sub next' value='".__("Send")."'>";
|
||||
echo "<input type=submit class='sub next' style='margin-top:0px;' value='".__("Send")."'>";
|
||||
echo "</td>";
|
||||
echo "</tr></table>";
|
||||
$port = 5800 + $display;
|
||||
|
|
|
@ -251,7 +251,7 @@ config_check();
|
|||
$maintenance_link_open_txt = '<a href="' . $maintenance_link . '" title="' . $maintenance_title . '" class="' . $maintenance_class . '" id="show_systemalert_dialog">';
|
||||
$maintenance_link_open_img = '<a href="' . $maintenance_link . '" title="' . $maintenance_title . '" class="' . $maintenance_class . '">';
|
||||
$maintenance_link_close = '</a>';
|
||||
$maintenance_img = $maintenance_link_open_img . html_print_image ("images/header_warning.png", true, array ("title" => __('You have %d warning(s)', $config["alert_cnt"]), "id" => "yougotalert", "class" => "bot")) . $maintenance_link_close;
|
||||
$maintenance_img = $maintenance_link_open_img . html_print_image ("images/header_yellow.png", true, array ("title" => __('You have %d warning(s)', $config["alert_cnt"]), "id" => "yougotalert", "class" => "bot")) . $maintenance_link_close;
|
||||
}
|
||||
else {
|
||||
$maintenance_img = html_print_image ("images/header_ready.png", true, array ("title" => __('There are not warnings'), "id" => "yougotalert", "class" => "bot"));
|
||||
|
|
|
@ -62,44 +62,47 @@ if (!empty($config['login_background'])) {
|
|||
$login_body_style = "style=\"background-image: url('$background_url');\"";
|
||||
}
|
||||
echo '<div id="login_body" ' . $login_body_style . '></div>';
|
||||
echo '<div id="login_outer">';
|
||||
echo '<div class="login_page"><div id="login_outer">';
|
||||
echo '<div class="databox_login" id="login">';
|
||||
echo '<div id="login_inner">';
|
||||
|
||||
echo '
|
||||
<div id="login_in">
|
||||
<form method="post" action="' . ui_get_full_url('index.php'.$url) . '" >';
|
||||
echo '<div id="login_in">';
|
||||
echo '<div class="version_login"><div style="padding-top: 2px; color: #FFF;">' . $pandora_version . '</div></div>';
|
||||
echo '<form method="post" action="' . ui_get_full_url('index.php'.$url) . '" >';
|
||||
|
||||
//TODO: Put branding in variables (external file) or database
|
||||
/* CUSTOM BRANDING STARTS HERE */
|
||||
|
||||
// Replace the following with your own URL and logo.
|
||||
// A mashup of the Pandora FMS logo and your companies highly preferred
|
||||
echo '<table id="login_layout"><tr><td rowspan=2 style="width: 200px;">';
|
||||
|
||||
echo '<a href="' . $logo_link . '">';
|
||||
if (defined ('METACONSOLE')) {
|
||||
html_print_image ("enterprise/meta/images/pandora_login_enterprise.png", false, array ("class" => "login_logo", "alt" => "logo", "border" => 0, "title" => $logo_title), false, true);
|
||||
}
|
||||
else if (defined ('PANDORA_ENTERPRISE')) {
|
||||
html_print_image ($config['homeurl'] . "/images/pandora_login_enterprise.png", false, array ("class" => "login_logo", "alt" => "logo", "border" => 0, "title" => $logo_title), false, true);
|
||||
}
|
||||
else {
|
||||
html_print_image ($config['homeurl'] . "/images/pandora_login.png", false, array ("class" => "login_logo", "alt" => "logo", "border" => 0, "title" => $logo_title), false, true);
|
||||
}
|
||||
echo '</a>';
|
||||
|
||||
// This prints the current pandora console version.
|
||||
// For stable/live function it might be wise to comment it out
|
||||
|
||||
/* CUSTOM BRANDING ENDS HERE */
|
||||
echo '</td><td>';
|
||||
echo '<table id="login_layout">';
|
||||
echo'<tr style="height:15px;"><td>';
|
||||
echo '<div class="login_links">';
|
||||
echo '<a href="http://wiki.pandorafms.com/" target="_blank">' . __('Help') . '</a>';
|
||||
echo ' | ';
|
||||
echo '<a href="http://forums.pandorafms.com/" target="_blank">' . __('Support') . '</a>';
|
||||
echo '</div>';
|
||||
echo '</td></tr><tr><td>';
|
||||
echo '</td></tr>';
|
||||
echo'<tr>
|
||||
<td class="login_border" rowspan=2 style="width: 160px;">';
|
||||
|
||||
echo '<a href="' . $logo_link . '">';
|
||||
if (defined ('METACONSOLE')) {
|
||||
html_print_image ("images/logo_login.png", false, array ("class" => "login_logo", "alt" => "logo", "border" => 0, "title" => $logo_title), false, true);
|
||||
}
|
||||
else if (defined ('PANDORA_ENTERPRISE')) {
|
||||
html_print_image ("images/logo_login.png", false, array ("class" => "login_logo", "alt" => "logo", "border" => 0, "title" => $logo_title), false, true);
|
||||
}
|
||||
else {
|
||||
html_print_image ("images/logo_login.png", false, array ("class" => "login_logo", "alt" => "logo", "border" => 0, "title" => $logo_title), false, true);
|
||||
}
|
||||
echo '</a>';
|
||||
|
||||
// This prints the current pandora console version.
|
||||
// For stable/live function it might be wise to comment it out
|
||||
|
||||
/* CUSTOM BRANDING ENDS HERE */
|
||||
echo '</td><td style="padding-top: 15px;">';
|
||||
|
||||
switch ($login_screen) {
|
||||
case 'login':
|
||||
|
@ -108,20 +111,22 @@ echo '
|
|||
html_print_input_hidden ($key, $value);
|
||||
}
|
||||
}
|
||||
echo '<div class="login_nick_text">';
|
||||
echo __('User') . '<br>';
|
||||
echo '</div>';
|
||||
|
||||
echo '<div class="login_nick">';
|
||||
html_print_input_text_extended ("nick", '', "nick", '', '', '' , false, '', 'class="login login_user"');
|
||||
echo '</div>';
|
||||
echo '<div class="login_pass_text">';
|
||||
echo __('Password') . '<br>';
|
||||
echo '</div>';
|
||||
html_print_image ("/images/usuario_login.png", false);
|
||||
html_print_input_text_extended ("nick", __('User'), "nick", '', '', '' , false,
|
||||
array('onfocus' => "javascript:if ( $('.login_user').val() == 'User') $('.login_user').val('');",
|
||||
'onblur'=>"javascript: if ( $('.login_user').val() == false) $('.login_user').val('". __('User')."');"), 'class="login login_user" ');
|
||||
echo '</div><br />';
|
||||
echo '<div class="login_pass">';
|
||||
html_print_input_text_extended ("pass", '', "pass", '', '', '' ,false, '', 'class="login login_password"', false, true);
|
||||
html_print_image ("/images/candado_login.png", false);
|
||||
html_print_input_text_extended ("pass", 'pass', "pass", '', '', '' ,false,
|
||||
array('onfocus' => "javascript:if ( $('.login_password').val() == 'pass') $('.login_password').val('');",
|
||||
'onblur'=>"javascript:if ( $('.login_password').val() == false) $('.login_password').val('". __('pass')."');"),
|
||||
'class="login login_password"', false, true);
|
||||
echo '</div>';
|
||||
echo '<div class="login_button">';
|
||||
html_print_submit_button(__("Login") . ' >', "login_button", false, 'class="sub next_login"');
|
||||
html_print_submit_button(__("Login"), "login_button", false, 'class="sub next_login"');
|
||||
echo '</div>';
|
||||
break;
|
||||
case 'logout':
|
||||
|
@ -165,10 +170,11 @@ echo '</form>
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
if (defined ('METACONSOLE')) {
|
||||
echo '<div id="ver_num" style="text-align: center;">';
|
||||
echo '<div id="ver_num">';
|
||||
}
|
||||
else {
|
||||
echo '<div id="ver_num">';
|
||||
|
@ -180,7 +186,7 @@ echo $pandora_version.(($develop_bypass == 1) ? ' '.__('Build').' '.$build_versi
|
|||
if (isset ($login_failed)) {
|
||||
echo '<div id="login_failed" title="Login failed" style="">';
|
||||
|
||||
echo '<div style="position:absolute; top:0px; text-align: center; left:0%; right:0%; height:100px; width:330px; margin: 0 auto; ">';
|
||||
echo '<div style="position:absolute; top:0px; text-align: center; left:0%; right:0%; height:100px; width:400px; margin: 0 auto; ">';
|
||||
|
||||
echo '<div id="error_login" style="margin-top: 20px">';
|
||||
echo '<strong style="font-size: 10pt">' . $config["auth_error"] . '</strong>';
|
||||
|
@ -322,7 +328,7 @@ html_print_div(array('id' => 'modal_alert', 'hidden' => true));
|
|||
background: "black"
|
||||
},
|
||||
width: 500,
|
||||
height: 300
|
||||
height: 200
|
||||
})
|
||||
.show ();
|
||||
}
|
||||
|
@ -361,7 +367,7 @@ html_print_div(array('id' => 'modal_alert', 'hidden' => true));
|
|||
resizable: true,
|
||||
draggable: true,
|
||||
modal: true,
|
||||
height: 200,
|
||||
height: 160,
|
||||
width: 400,
|
||||
overlay: {
|
||||
opacity: 0.5,
|
||||
|
|
|
@ -222,9 +222,9 @@ $(document).ready( function() {
|
|||
$('div#title_menu').show();
|
||||
handsInMenu = 1;
|
||||
openTimeMenu = new Date().getTime();
|
||||
$('#menu').css('width', '130px');
|
||||
$('#menu').css('width', '145px');
|
||||
$('li.menu_icon').addClass( " no_hidden_menu" );
|
||||
$('ul.submenu').css('left', '129px');
|
||||
$('ul.submenu').css('left', '144px');
|
||||
}).mouseleave(function(){
|
||||
handsInMenu = 0;
|
||||
setTimeout(function() {
|
||||
|
|
|
@ -36,7 +36,7 @@ $agent_name = md5($agent_name);
|
|||
/* Map with the current position */
|
||||
echo "<div id=\"" . $agent_name . "_agent_map\" style=\"border:1px solid black; width:100%; height: 30em;\"></div>";
|
||||
|
||||
if (!gis_get_agent_map($id_agente, "500px", "98%", false)) {
|
||||
if (!gis_get_agent_map($id_agente, "500px", "100%", false)) {
|
||||
ui_print_error_message(__("There is no default map. Please go to the setup for to set a default map."));
|
||||
echo "<script type='text/javascript'>
|
||||
$(document).ready(function() {
|
||||
|
@ -46,10 +46,11 @@ if (!gis_get_agent_map($id_agente, "500px", "98%", false)) {
|
|||
}
|
||||
|
||||
if ($agentData === false) {
|
||||
echo "<p>" . __("There is no GIS data for this agent, so it's positioned in default position of map.") . "</p>";
|
||||
ui_print_info_message ( array ( 'no_close' => true, 'message' =>
|
||||
__("There is no GIS data for this agent, so it's positioned in default position of map.") ) );
|
||||
}
|
||||
echo "<div class='warn'>" .
|
||||
__("Warning: When you change the Agent position, the agent automatically activates the 'Ignore new GIS data' option") . "</div>";
|
||||
ui_print_warning_message (array ( 'no_close' => true, 'message' =>
|
||||
__("When you change the Agent position, the agent automatically activates the 'Ignore new GIS data' option") ) );
|
||||
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox filters';
|
||||
|
@ -59,6 +60,8 @@ $table->cellspacing = 0;
|
|||
$table->head[0] =__('Agent position');
|
||||
$table->head_colspan[0] = 4;
|
||||
$table->headstyle[0] = "text-align:center";
|
||||
$table->style[0] = 'font-weight: bold; ';
|
||||
$table->style[2] = 'font-weight: bold; ';
|
||||
|
||||
$table->data[1][0] = __('Latitude: ');
|
||||
$table->data[1][1] = html_print_input_text_extended ('latitude', $agentData['stored_latitude'], 'text-latitude', '', 20, 20, false, '',
|
||||
|
|
|
@ -119,8 +119,6 @@ if ($new_agent) {
|
|||
$server_name = reset(array_keys($servers));
|
||||
}
|
||||
|
||||
echo '<div style="height: 5px"> </div>';
|
||||
|
||||
if (!$new_agent) {
|
||||
// Agent remote configuration editor
|
||||
enterprise_include_once('include/functions_config_agents.php');
|
||||
|
@ -141,7 +139,7 @@ if ($disk_conf_delete) {
|
|||
echo '<form name="conf_agent" method="post" action="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente">';
|
||||
|
||||
$table->width = '100%';
|
||||
$table->class = "databox_color";
|
||||
$table->class = "databox filters";
|
||||
|
||||
$table->head = array ();
|
||||
$table->style = array ();
|
||||
|
@ -277,7 +275,7 @@ html_print_table ($table);
|
|||
unset($table);
|
||||
|
||||
$table->width = '100%';
|
||||
$table->class = "databox_color";
|
||||
$table->class = "databox filters";
|
||||
|
||||
$table->head = array ();
|
||||
$table->style = array ();
|
||||
|
@ -391,7 +389,7 @@ ui_toggle(html_print_table ($table, true), __('Advanced options'));
|
|||
unset($table);
|
||||
|
||||
$table->width = '100%';
|
||||
$table->class = "databox_color";
|
||||
$table->class = "databox filters";
|
||||
|
||||
$table->head = array ();
|
||||
$table->style = array ();
|
||||
|
|
|
@ -176,12 +176,12 @@ foreach ($nps as $row) {
|
|||
$select[$row["id_np"]] = $row["name"];
|
||||
}
|
||||
|
||||
echo '<table width="100%" cellpadding="2" cellspacing="2" class="databox filters" >';
|
||||
echo '<table width="100%" cellpadding="0" cellspacing="0" class="databox filters" >';
|
||||
echo "<tr><td class='datos' style='width:50%'>";
|
||||
html_print_select ($select, "template_id", '', '', '', 0, false, false, true, '', false, 'max-width: 200px !important');
|
||||
echo '</td>';
|
||||
echo '<td class="datos">';
|
||||
html_print_submit_button (__('Assign'), 'crt', false, 'class="sub next"');
|
||||
html_print_submit_button (__('Assign'), 'crt', false, 'class="sub next" style="margin-top:0px;"');
|
||||
echo '</td>';
|
||||
echo '</tr>';
|
||||
echo "</form>";
|
||||
|
@ -213,8 +213,8 @@ if ($result === false) {
|
|||
}
|
||||
|
||||
$table->width = '100%';
|
||||
$table->cellpadding = 4;
|
||||
$table->cellspacing = 4;
|
||||
$table->cellpadding = 0;
|
||||
$table->cellspacing = 0;
|
||||
$table->class = "databox data";
|
||||
$table->head = array ();
|
||||
$table->data = array ();
|
||||
|
@ -225,13 +225,16 @@ $table->head[1] = __('Type');
|
|||
$table->head[2] = __('Description');
|
||||
$table->head[3] = __('Action');
|
||||
|
||||
$table->align[1] = "center";
|
||||
$table->align[3] = "center";
|
||||
$table->align[1] = "left";
|
||||
$table->align[3] = "left";
|
||||
$table->size[0] = "30%";
|
||||
$table->size[1] = "5%";
|
||||
$table->size[3] = "8%";
|
||||
|
||||
foreach ($result as $row) {
|
||||
$data = array ();
|
||||
|
||||
$data[0] = '<span style="font-size: 7.2pt">' . $row["nombre"];
|
||||
$data[0] = '<span>' . $row["nombre"];
|
||||
if ($row["id_tipo_modulo"] > 0) {
|
||||
$data[1] = html_print_image("images/" . modules_show_icon_type ($row["id_tipo_modulo"]), true, array("border" => "0"));
|
||||
}
|
||||
|
|
|
@ -247,10 +247,10 @@ if ($create_modules) {
|
|||
echo '<span id ="none_text" style="display: none;">' . __('None') . '</span>';
|
||||
echo "<form method='post' id='wmi_form' action='index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=agent_wizard&wizard_section=wmi_explorer&id_agente=$id_agent'>";
|
||||
|
||||
$table->width = '98%';
|
||||
|
||||
$table->valign[0] = 'top';
|
||||
$table->valign[1] = 'top';
|
||||
$table->width = '100%';
|
||||
$table->cellpadding = 0;
|
||||
$table->cellspacing = 0;
|
||||
$table->class = 'databox filters';
|
||||
|
||||
$table->data[0][0] = '<b>' . __('Target IP') . '</b>';
|
||||
$table->data[0][1] = html_print_input_text ('ip_target', $ip_target, '', 15, 60, true);
|
||||
|
|
|
@ -33,7 +33,7 @@ $search_string = io_safe_output(urldecode(trim(get_parameter ("search_string", "
|
|||
//echo '<form id="create_module_type" method="post" action="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=module&id_agente='.$id_agente.'">';
|
||||
echo '<form id="create_module_type" method="post" action="'.$url.'">';
|
||||
echo '<table width="100%" cellpadding="2" cellspacing="2" class="databox filters" >';
|
||||
echo "<tr><td class='datos' style='width:20%'>";
|
||||
echo "<tr><td class='datos' style='width:20%; font-weight: bold;'>";
|
||||
echo __('Search') . ' ' .
|
||||
html_print_input_text ('search_string', $search_string, '', 15, 255, true);
|
||||
echo "</td>";
|
||||
|
@ -111,7 +111,8 @@ if (($policy_page) || (isset($agent))) {
|
|||
if ($show_creation) {
|
||||
// Create module/type combo
|
||||
//echo '<form id="create_module_type" method="post" action="'.$url.'">';
|
||||
echo '<td class="datos">';
|
||||
echo '<td class="datos" style="font-weight: bold;">';
|
||||
echo __("Type");
|
||||
html_print_select ($modules, 'moduletype', '', '', '', '', false, false, false, '', false, 'max-width:300px;' );
|
||||
html_print_input_hidden ('edit_module', 1);
|
||||
echo '</td>';
|
||||
|
@ -128,7 +129,7 @@ echo "</form>";
|
|||
|
||||
echo '<div style="text-align: right; width: 100%;padding-top:10px;padding-bottom:10px">';
|
||||
echo "<strong>";
|
||||
echo "<a style='color: #004A1B;' target='_blank' href='http://pandorafms.com/Library/Library/'>".__("Get more modules in Pandora FMS Library")."</a>";
|
||||
echo "<a style='color: #373737;' target='_blank' href='http://pandorafms.com/Library/Library/'>".__("Get more modules in Pandora FMS Library")."</a>";
|
||||
echo "</strong>";
|
||||
echo '</div>';
|
||||
|
||||
|
@ -529,7 +530,7 @@ $table->rowstyle = array();
|
|||
$table->style = array ();
|
||||
$table->style[0] = 'font-weight: bold';
|
||||
$table->size = array ();
|
||||
$table->size[2] = '55px';
|
||||
$table->size[2] = '70px';
|
||||
$table->align = array ();
|
||||
$table->align[2] = 'left';
|
||||
$table->align[8] = 'left';
|
||||
|
|
|
@ -38,10 +38,14 @@ $table->data = array ();
|
|||
$table->size = array ();
|
||||
$table->size = array ();
|
||||
$table->size[0] = '10%';
|
||||
$table->size[1] = '30%';
|
||||
$table->style[0] = 'font-weight: bold; vertical-align: top;';
|
||||
$table->align[0] = 'left';
|
||||
$table->align[1] = 'left';
|
||||
$table->size[1] = '25%';
|
||||
$table->size[2] = '10%';
|
||||
$table->size[3] = '20%';
|
||||
$table->style[0] = 'font-weight: bold; ';
|
||||
$table->style[1] = 'font-weight: bold; ';
|
||||
$table->style[2] = 'font-weight: bold; ';
|
||||
$table->style[3] = 'font-weight: bold; ';
|
||||
|
||||
// This is because if this view is reused after list alert view then
|
||||
// styles in the previous view can affect this table.
|
||||
$table->rowstyle[0] = '';
|
||||
|
|
|
@ -48,13 +48,14 @@ else {
|
|||
}
|
||||
|
||||
// Table for filter controls
|
||||
$form_filter = '<form method="post" action="index.php?sec=' . $sec . '&sec2=' . $sec2 . '&refr=' . ((int)get_parameter('refr', 0)) . '&pure='.$config["pure"].'">';
|
||||
$form_filter .= "<input type='hidden' name='search' value='1' />\n";
|
||||
$form_filter .= '<table style="width: 100%;" cellpadding="0" cellspacing="0" class="databox filters">'."\n";
|
||||
$form_filter .= "<tr>\n";
|
||||
$form_filter .= "<td>" . __('Template name') . "</td><td>";
|
||||
$form_filter = '<form method="post" action="index.php?sec=' . $sec . '&sec2=' . $sec2 . '&refr=' . ((int)get_parameter('refr', 0)) .
|
||||
'&pure='.$config["pure"].'">';
|
||||
$form_filter .= "<input type='hidden' name='search' value='1' />";
|
||||
$form_filter .= '<table style="width: 100%;" cellpadding="0" cellspacing="0" class="databox filters">';
|
||||
$form_filter .= "<tr>";
|
||||
$form_filter .= "<td style='font-weight: bold;'>" . __('Template name') . "</td><td>";
|
||||
$form_filter .= html_print_input_text ('template_name', $templateName, '', 12, 255, true);
|
||||
$form_filter .= "</td>\n";
|
||||
$form_filter .= "</td>";
|
||||
$temp = agents_get_agents();
|
||||
$arrayAgents = array();
|
||||
|
||||
|
@ -65,7 +66,7 @@ if ($temp) {
|
|||
}
|
||||
}
|
||||
|
||||
$form_filter .= "<td>".__('Agents')."</td><td>";
|
||||
$form_filter .= "<td style='font-weight: bold;'>".__('Agents')."</td><td>";
|
||||
|
||||
|
||||
$params = array();
|
||||
|
@ -79,12 +80,12 @@ $params['metaconsole_enabled'] = false;
|
|||
$form_filter .= ui_print_agent_autocomplete_input($params);
|
||||
|
||||
|
||||
$form_filter .= "</td>\n";
|
||||
$form_filter .= "</td>";
|
||||
|
||||
$form_filter .= "<td>".__('Module name')."</td><td>";
|
||||
$form_filter .= "<td style='font-weight: bold;'>".__('Module name')."</td><td>";
|
||||
$form_filter .= html_print_input_text ('module_name', $moduleName, '', 12, 255, true);
|
||||
$form_filter .= "</td>\n";
|
||||
$form_filter .= "</tr>\n";
|
||||
$form_filter .= "</td>";
|
||||
$form_filter .= "</tr>";
|
||||
|
||||
$all_groups = db_get_value('is_admin', 'tusuario', 'id_user', $config['id_user']);
|
||||
|
||||
|
@ -94,7 +95,7 @@ if ($groups_user === false) {
|
|||
}
|
||||
$groups_id = implode(',', array_keys($groups_user));
|
||||
|
||||
$form_filter .= "<tr>\n";
|
||||
$form_filter .= "<tr>";
|
||||
switch ($config["dbtype"]) {
|
||||
case "mysql":
|
||||
case "postgresql":
|
||||
|
@ -111,39 +112,47 @@ if (is_array($temp)) {
|
|||
$arrayActions[$actionElement['id']] = $actionElement['name'];
|
||||
}
|
||||
}
|
||||
$form_filter .= "<td>".__('Actions')."</td><td>";
|
||||
$form_filter .= "<td style='font-weight: bold;'>".__('Actions')."</td><td>";
|
||||
$form_filter .= html_print_select ($arrayActions, "action_id", $actionID, '', __('All'), -1, true);
|
||||
$form_filter .= "</td>\n";
|
||||
$form_filter .= "<td>".__('Field content')."</td><td>";
|
||||
$form_filter .= html_print_input_text ('field_content', $fieldContent, '', 12, 255, true);
|
||||
$form_filter .= "</td>\n";
|
||||
$form_filter .= "<td>".__('Priority')."</td><td>";
|
||||
$form_filter .= html_print_select (get_priorities (), 'priority',$priority, '', __('All'), -1, true);
|
||||
$form_filter .= "</td>";
|
||||
$form_filter .= "</tr>\n";
|
||||
$form_filter .= "<td style='font-weight: bold;'>".__('Field content')."</td><td>";
|
||||
$form_filter .= html_print_input_text ('field_content', $fieldContent, '', 12, 255, true);
|
||||
$form_filter .= "</td>";
|
||||
$form_filter .= "<td style='font-weight: bold;'>".__('Priority')."</td><td>";
|
||||
$form_filter .= html_print_select (get_priorities (), 'priority',$priority, '', __('All'), -1, true);
|
||||
$form_filter .= "</td style='font-weight: bold;'>";
|
||||
$form_filter .= "</tr>";
|
||||
|
||||
$form_filter .= "<tr>\n";
|
||||
$form_filter .= "<td>".__('Enabled / Disabled')."</td><td>";
|
||||
$form_filter .= "<tr>";
|
||||
$form_filter .= "<td style='font-weight: bold;'>".__('Enabled / Disabled')."</td><td>";
|
||||
$ed_list = array ();
|
||||
$ed_list[0] = __('Enable');
|
||||
$ed_list[1] = __('Disable');
|
||||
$form_filter .= html_print_select ($ed_list, 'enabledisable', $enabledisable, '', __('All'), -1, true);
|
||||
$form_filter .= "</td><td>".__('Standby')."</td><td>";
|
||||
$form_filter .= "</td><td style='font-weight: bold;'>".__('Standby')."</td><td>";
|
||||
$sb_list = array ();
|
||||
$sb_list[1] = __('Standby on');
|
||||
$sb_list[0] = __('Standby off');
|
||||
$form_filter .= html_print_select ($sb_list, 'standby', $standby, '', __('All'), -1, true);
|
||||
$form_filter .= "</td></tr>\n";
|
||||
$form_filter .= "</td></tr>";
|
||||
if ( defined("METACONSOLE") ) {
|
||||
$form_filter .= "<tr>";
|
||||
$form_filter .= "<td colspan='6' align='right'>";
|
||||
$form_filter .= html_print_submit_button (__('Update'), '', false, 'class="sub upd"', true);
|
||||
$form_filter .= "</td>";
|
||||
$form_filter .= "</tr>";
|
||||
$form_filter .= "</table>";
|
||||
}else{
|
||||
$form_filter .= "</table>";
|
||||
$form_filter .= "<div style='text-align:right; height:100%;'>";
|
||||
$form_filter .= html_print_submit_button (__('Update'), '', false, 'class="sub upd"', true);
|
||||
$form_filter .= "</div>";
|
||||
}
|
||||
|
||||
$form_filter .= "<tr>\n";
|
||||
$form_filter .= "<td colspan='6' align='right'>";
|
||||
$form_filter .= html_print_submit_button (__('Update'), '', false, 'class="sub upd"', true);
|
||||
$form_filter .= "</td>";
|
||||
$form_filter .= "</tr>\n";
|
||||
$form_filter .= "</table>\n";
|
||||
$form_filter .= "</form>\n";
|
||||
$form_filter .= "</form>";
|
||||
if ( defined("METACONSOLE"))
|
||||
echo "<br>";
|
||||
|
||||
echo "<br>";
|
||||
ui_toggle($form_filter, __('Alert control filter'), __('Toggle filter(s)'));
|
||||
|
||||
$simple_alerts = array();
|
||||
|
@ -323,9 +332,14 @@ if (!$id_agente) {
|
|||
else {
|
||||
$url = 'index.php?sec='.$sec.'&sec2=godmode/agentes/configurar_agente&pure='.$pure.'&tab=alert&id_agente=' . $id_agente . '&offset=' . $offset . $form_params;
|
||||
}
|
||||
|
||||
$table->class = 'alert_list databox';
|
||||
if ( defined("METACONSOLE") )
|
||||
$table->class = 'alert_list databox';
|
||||
else
|
||||
$table->class = 'databox filters';
|
||||
|
||||
$table->width = '100%';
|
||||
$table->cellpadding = 0;
|
||||
$table->cellspacing = 0;
|
||||
$table->size = array ();
|
||||
|
||||
$table->align[2] = 'left';
|
||||
|
@ -674,7 +688,7 @@ if (isset($data)) {
|
|||
html_print_table ($table);
|
||||
}
|
||||
else {
|
||||
ui_print_empty_data ( __('No alerts defined') );
|
||||
ui_print_info_message ( array('no_close' => true, 'message' => __('No alerts defined') ) );
|
||||
}
|
||||
|
||||
// Create alert button
|
||||
|
|
|
@ -302,7 +302,7 @@ $(document).ready (function () {
|
|||
|
||||
// Replace the old column with the new
|
||||
$table_macros_field.replaceWith(field_row);
|
||||
if (old_value != '' && old_recovery_value != ''){
|
||||
if (old_value != '' || old_recovery_value != ''){
|
||||
$("[name=field" + i + "_value]").val(old_value);
|
||||
$("[name=field" + i + "_recovery_value]").val(old_recovery_value);
|
||||
}
|
||||
|
|
|
@ -178,7 +178,7 @@ if ($delete_layout || $copy_layout) {
|
|||
}
|
||||
}
|
||||
|
||||
$table->width = '98%';
|
||||
$table->width = '100%';
|
||||
$table->data = array ();
|
||||
$table->head = array ();
|
||||
$table->head[0] = __('Map name');
|
||||
|
@ -194,10 +194,10 @@ if ($vconsoles_write || $vconsoles_manage) {
|
|||
|
||||
$table->align = array ();
|
||||
$table->align[0] = 'left';
|
||||
$table->align[1] = 'center';
|
||||
$table->align[2] = 'center';
|
||||
$table->align[3] = 'center';
|
||||
$table->align[4] = 'center';
|
||||
$table->align[1] = 'left';
|
||||
$table->align[2] = 'left';
|
||||
$table->align[3] = 'left';
|
||||
$table->align[4] = 'left';
|
||||
|
||||
// Only display maps of "All" group if user is administrator
|
||||
// or has "VR" privileges, otherwise show only maps of user group
|
||||
|
@ -208,7 +208,7 @@ else
|
|||
$maps = visual_map_get_user_layouts ($config['id_user'], false, false, false);
|
||||
|
||||
if (!$maps) {
|
||||
echo '<div class="nf">'.__('No maps defined').'</div>';
|
||||
ui_print_info_message ( array('no_close'=>true, 'message'=> __('No maps defined') ) );
|
||||
}
|
||||
else {
|
||||
foreach ($maps as $map) {
|
||||
|
|
|
@ -369,7 +369,10 @@ switch ($action) {
|
|||
$search_name = "%$search%' OR description LIKE '%$search%";
|
||||
}
|
||||
|
||||
$table_aux->width = '99%';
|
||||
$table_aux->width = '100%';
|
||||
$table_aux->class = 'databox filters';
|
||||
$table_aux->cellpadding = 0;
|
||||
$table_aux->cellspacing = 0;
|
||||
if(defined('METACONSOLE')){
|
||||
$table_aux->class = 'databox_filters';
|
||||
$table_aux->width = '96%';
|
||||
|
@ -456,10 +459,15 @@ switch ($action) {
|
|||
$table->width = '0px';
|
||||
if (sizeof ($reports)) {
|
||||
$table->id = 'report_list';
|
||||
$table->width = '98%';
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox data';
|
||||
$table->cellpadding = 0;
|
||||
$table->cellspacing = 0;
|
||||
if(defined('METACONSOLE')){
|
||||
$table->class = 'databox';
|
||||
$table->width = '100%';
|
||||
}
|
||||
|
||||
$table->head = array ();
|
||||
$table->align = array ();
|
||||
$table->align[2] = 'center';
|
||||
|
@ -470,6 +478,13 @@ switch ($action) {
|
|||
$table->head[1] = __('Description');
|
||||
$table->head[2] = __('HTML');
|
||||
$table->head[3] = __('XML');
|
||||
$table->size[0] = '20%';
|
||||
$table->size[1] = '30%';
|
||||
$table->size[2] = '2%';
|
||||
$table->size[3] = '2%';
|
||||
$table->size[4] = '2%';
|
||||
$table->size[5] = '2%';
|
||||
$table->size[6] = '2%';
|
||||
|
||||
$next = 4;
|
||||
//Calculate dinamically the number of the column
|
||||
|
@ -481,21 +496,22 @@ switch ($action) {
|
|||
if (check_acl ($config['id_user'], 0, "RM")) {
|
||||
|
||||
$table->head[$next] = __('Private');
|
||||
$table->size[$next] = '40px';
|
||||
$table->size[$next] = '2%';
|
||||
if(defined('METACONSOLE'))
|
||||
$table->align[$next] = '';
|
||||
else
|
||||
$table->align[$next] = 'center';
|
||||
$next++;
|
||||
$table->head[$next] = __('Group');
|
||||
$table->align[$next] = 'center';
|
||||
$table->size[$next] = '15%';
|
||||
|
||||
$next++;
|
||||
if(!defined('METACONSOLE'))
|
||||
$table->head[$next] = '<span title="Operations">' .
|
||||
__('Op.') . '</span>';
|
||||
|
||||
$table->size = array ();
|
||||
$table->size[$next] = '80px';
|
||||
//$table->size = array ();
|
||||
$table->size[$next] = '5%';
|
||||
$table->style[$next] = 'text-align:center;';
|
||||
|
||||
}
|
||||
|
@ -632,15 +648,14 @@ switch ($action) {
|
|||
html_print_table ($table);
|
||||
}
|
||||
else{
|
||||
echo "<br />";
|
||||
echo "<div class='nf'>".__('No data found.')."</div>";
|
||||
ui_print_info_message ( array ( 'no_close' => true, 'message' => __('No data found.') ) );
|
||||
}
|
||||
if (check_acl ($config['id_user'], 0, "RW")) {
|
||||
echo '<form method="post" action="index.php?sec=reporting&sec2=godmode/reporting/reporting_builder&tab=main&action=new&pure='.$pure.'">';
|
||||
if (defined("METACONSOLE"))
|
||||
echo '<div class="action-buttons" style="width: 100%; ">';
|
||||
else
|
||||
echo '<div class="action-buttons" style="width: 98%; margin-top: 5px;">';
|
||||
echo '<div class="action-buttons" style="width: 100%;">';
|
||||
html_print_submit_button (__('Create report'), 'create', false, 'class="sub next"');
|
||||
echo "</div>";
|
||||
echo "</form>";
|
||||
|
|
|
@ -84,7 +84,7 @@ switch ($action) {
|
|||
break;
|
||||
}
|
||||
|
||||
$table->width = '98%';
|
||||
$table->width = '100%';
|
||||
if (defined('METACONSOLE')) {
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox data';
|
||||
|
|
|
@ -214,6 +214,7 @@ foreach ($layoutDatas as $layoutData) {
|
|||
case STATIC_GRAPH:
|
||||
case ICON:
|
||||
case GROUP_ITEM:
|
||||
case SERVICE:
|
||||
$table->data[$i + 1][1] =
|
||||
html_print_select ($images_list,
|
||||
'image_' . $idLayoutData, $layoutData['image'], '',
|
||||
|
@ -340,11 +341,9 @@ foreach ($layoutDatas as $layoutData) {
|
|||
$params['javascript_ajax_page'] = '../../ajax.php';
|
||||
$params['disabled_javascript_on_blur_function'] = true;
|
||||
|
||||
$params['print_input_server'] = true;
|
||||
$params['input_server_id'] =
|
||||
$params['input_server_name'] = 'id_server_name_' . $idLayoutData;
|
||||
$params['input_server_value'] =
|
||||
db_get_value('server_name', 'tmetaconsole_setup', 'id', $layoutData['id_metaconsole']);
|
||||
$params['print_input_id_server'] = true;
|
||||
$params['input_id_server_id'] = $params['input_id_server_name'] = 'id_server_id_' . $idLayoutData;
|
||||
$params['input_id_server_value'] = $layoutData['id_metaconsole'];
|
||||
$params['metaconsole_enabled'] = true;
|
||||
$params['print_hidden_input_idagent'] = true;
|
||||
$params['hidden_input_idagent_name'] = 'id_agent_' . $idLayoutData;
|
||||
|
|
|
@ -281,11 +281,8 @@ switch ($activeTab) {
|
|||
}
|
||||
$agentName = get_parameter('agent_' . $id, '');
|
||||
if (defined('METACONSOLE')) {
|
||||
$values['id_metaconsole'] = db_get_value('id',
|
||||
'tmetaconsole_setup', 'server_name',
|
||||
get_parameter('id_server_name_' . $id, ''));
|
||||
$values['id_agent'] =
|
||||
(int)get_parameter('id_agent_' . $id, 0);
|
||||
$values['id_metaconsole'] = (int) get_parameter('id_server_id_' . $id, '');
|
||||
$values['id_agent'] = (int) get_parameter('id_agent_' . $id, 0);
|
||||
}
|
||||
else {
|
||||
$values['id_agent'] = agents_get_agent_id($agentName);
|
||||
|
@ -295,7 +292,7 @@ switch ($activeTab) {
|
|||
$values['id_layout_linked'] = get_parameter('map_linked_' . $id, 0);
|
||||
|
||||
if (enterprise_installed()) {
|
||||
enterprise_visual_map_update_action_from_list_elements($type, $values);
|
||||
enterprise_visual_map_update_action_from_list_elements($type, $values, $id);
|
||||
}
|
||||
|
||||
db_process_sql_update('tlayout_data', $values, array('id' => $id));
|
||||
|
|
|
@ -47,7 +47,8 @@ $table->id = 'wizard_table';
|
|||
$table->head = array ();
|
||||
if (!defined('METACONSOLE')) {
|
||||
$metaconsole_hack = '';
|
||||
$table->width = '98%';
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox filters';
|
||||
}
|
||||
else {
|
||||
$metaconsole_hack = '../../';
|
||||
|
@ -59,21 +60,17 @@ else {
|
|||
}
|
||||
|
||||
$table->style = array ();
|
||||
if (!defined('METACONSOLE')) {
|
||||
$table->style[0] = 'font-weight: bold; vertical-align: text-top;';
|
||||
$table->style[1] = 'font-weight: bold; vertical-align: middle;';
|
||||
$table->style[2] = 'font-weight: bold; vertical-align: top';
|
||||
}
|
||||
else{
|
||||
$table->style[0] = 'font-weight: bold; ';
|
||||
$table->style[1] = 'font-weight: bold; ';
|
||||
$table->style[2] = 'font-weight: bold; ';
|
||||
}
|
||||
|
||||
$table->style[0] = 'font-weight: bold; ';
|
||||
$table->style[1] = 'font-weight: bold; ';
|
||||
$table->style[2] = 'font-weight: bold; ';
|
||||
|
||||
$table->size = array ();
|
||||
$table->size[0] = "20%";
|
||||
$table->size[1] = "20%";
|
||||
$table->size[2] = "20%";
|
||||
$table->size[3] = "20%";
|
||||
$table->size[0] = "15%";
|
||||
$table->size[1] = "15%";
|
||||
$table->size[2] = "15%";
|
||||
$table->size[3] = "15%";
|
||||
|
||||
|
||||
$table->align = array();
|
||||
$table->align[0] = 'left';
|
||||
|
@ -183,7 +180,7 @@ if (defined('METACONSOLE')) {
|
|||
$table->rowstyle["all_2"] = 'display: none;';
|
||||
$table->data["all_2"][0] = __('Servers');
|
||||
$table->data["all_2"][1] = html_meta_print_select_servers(false,
|
||||
false, 'servers', '', '', '', 0, true);
|
||||
false, 'servers', '', 'metaconsole_init();', '', 0, true);
|
||||
}
|
||||
|
||||
|
||||
|
@ -210,8 +207,12 @@ $table->data["all_one_item_per_agent"][1] .= html_print_input_hidden(
|
|||
|
||||
$table->rowstyle["all_4"] = 'display: none;';
|
||||
$table->data["all_4"][0] = __('Agents');
|
||||
$table->data["all_4"][1] = html_print_select(
|
||||
agents_get_group_agents(0, false, "none", false, true),
|
||||
|
||||
$agents_list = array();
|
||||
if (!defined('METACONSOLE'))
|
||||
$agents_list = agents_get_group_agents(0, false, "none", false, true);
|
||||
|
||||
$table->data["all_4"][1] = html_print_select($agents_list,
|
||||
'id_agents[]', 0, false, '', '', true, true);
|
||||
$table->data["all_4"][2] = ' <span style="vertical-align: top;">' .
|
||||
__('Modules') . '</span>';
|
||||
|
@ -272,7 +273,7 @@ else {
|
|||
onsubmit="if (! confirm(\''.__('Are you sure to add many elements\nin visual map?').'\')) return false; else return check_fields();">';
|
||||
}
|
||||
|
||||
if(defined("METACONSOLE")){
|
||||
if (defined("METACONSOLE")) {
|
||||
echo "<div class='title_tactical' style='margin-top: 15px; '>" . __('Wizard') . "</div>";
|
||||
}
|
||||
|
||||
|
@ -296,16 +297,14 @@ echo '<span id="none_text" style="display: none;">' . __('None') . '</span>';
|
|||
echo '<span id="loading_text" style="display: none;">' . __('Loading...') . '</span>';
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
var show_only_enabled_modules = true;
|
||||
|
||||
<?php
|
||||
if (defined('METACONSOLE')) {
|
||||
echo 'var url_ajax = "../../ajax.php";';
|
||||
var metaconsole_enabled = <?php echo json_encode(defined('METACONSOLE')); ?>;
|
||||
var show_only_enabled_modules = true;
|
||||
var url_ajax = "ajax.php";
|
||||
|
||||
if (metaconsole_enabled) {
|
||||
url_ajax = "../../ajax.php";
|
||||
}
|
||||
else {
|
||||
echo 'var url_ajax = "ajax.php";';
|
||||
}
|
||||
?>
|
||||
|
||||
$(document).ready (function () {
|
||||
hidden_rows();
|
||||
|
@ -314,40 +313,42 @@ $(document).ready (function () {
|
|||
selected = $("#process_value").val();
|
||||
|
||||
if (selected == <?php echo PROCESS_VALUE_NONE; ?>) {
|
||||
$("tr", "#wizard_table").filter(function () {return /^.*modulegraph_simplevalue.*/.test(this.id); }).hide();
|
||||
$("tr", "#wizard_table").filter(function () {
|
||||
return /^.*modulegraph_simplevalue.*/.test(this.id);
|
||||
}).hide();
|
||||
}
|
||||
else {
|
||||
$("tr", "#wizard_table").filter(function () {return /^.*modulegraph_simplevalue.*/.test(this.id); }).show();
|
||||
$("tr", "#wizard_table").filter(function () {
|
||||
return /^.*modulegraph_simplevalue.*/.test(this.id);
|
||||
}).show();
|
||||
}
|
||||
});
|
||||
|
||||
$("#groups").change (function () {
|
||||
$('#id_agents').attr('disabled', true);
|
||||
$('#id_agents').empty ();
|
||||
$('#id_agents').append ($('<option></option>').html($("#loading_text").html()));
|
||||
$('#id_agents').css ("width", "auto");
|
||||
$('#id_agents').css ("max-width", "");
|
||||
$('#id_agents')
|
||||
.attr('disabled', true)
|
||||
.empty ()
|
||||
.css ("width", "auto")
|
||||
.css ("max-width", "")
|
||||
.append ($('<option></option>').html($("#loading_text").html()));
|
||||
|
||||
var data_params = {"page": "include/ajax/agent",
|
||||
"get_agents_group": 1,
|
||||
"id_group": $("#groups").val(),
|
||||
<?php
|
||||
if (defined('METACONSOLE')) {
|
||||
echo '"id_server": $("#servers").val(),' . "\n";
|
||||
}
|
||||
?>
|
||||
"mode": "json"
|
||||
};
|
||||
var data_params = {
|
||||
page: "include/ajax/agent",
|
||||
get_agents_group: 1,
|
||||
id_group: $("#groups").val(),
|
||||
mode: "json"
|
||||
};
|
||||
|
||||
if (metaconsole_enabled)
|
||||
data_params.id_server = $("#servers").val();
|
||||
|
||||
jQuery.ajax ({
|
||||
data: data_params,
|
||||
async: false,
|
||||
type: 'POST',
|
||||
url: url_ajax,
|
||||
timeout: 10000,
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
$('#id_agents').empty ();
|
||||
$('#id_agents').empty();
|
||||
|
||||
if (isEmptyObject(data)) {
|
||||
var noneText = $("#none_text").html(); //Trick for catch the translate text.
|
||||
|
@ -361,35 +362,32 @@ $(document).ready (function () {
|
|||
});
|
||||
}
|
||||
|
||||
$('#id_agents').css ("width", "auto");
|
||||
$('#id_agents').css ("max-width", "");
|
||||
|
||||
|
||||
$('#id_agents').removeAttr('disabled');
|
||||
|
||||
return;
|
||||
}
|
||||
});
|
||||
|
||||
return;
|
||||
});
|
||||
|
||||
$("#id_agents").change ( function() {
|
||||
if ($("#hidden-item_per_agent_test").val() == 0)
|
||||
agent_changed_by_multiple_agents(
|
||||
<?php
|
||||
if (defined('METACONSOLE')) {
|
||||
echo "{'data': {'id_server': 'servers', 'metaconsole': 1, 'homedir': '../../'}}";
|
||||
if ($("#hidden-item_per_agent_test").val() == 0) {
|
||||
var options = {};
|
||||
|
||||
if (metaconsole_enabled) {
|
||||
options = {
|
||||
'data': {
|
||||
'id_server': 'servers',
|
||||
'metaconsole': 1,
|
||||
'homedir': '../../'
|
||||
}
|
||||
};
|
||||
}
|
||||
?>
|
||||
);
|
||||
|
||||
agent_changed_by_multiple_agents(options);
|
||||
}
|
||||
});
|
||||
|
||||
<?php
|
||||
if (defined('METACONSOLE')) {
|
||||
echo "metaconsole_init();";
|
||||
if (metaconsole_enabled) {
|
||||
metaconsole_init();
|
||||
}
|
||||
?>
|
||||
|
||||
$("select[name='kind_relationship']").change(function() {
|
||||
|
||||
|
@ -500,7 +498,7 @@ function item_per_agent_change(itemPerAgent) {
|
|||
}
|
||||
|
||||
function metaconsole_init() {
|
||||
$("#groups").trigger('change');
|
||||
$("#groups").change();
|
||||
}
|
||||
</script>
|
||||
<style type="text/css">
|
||||
|
|
|
@ -61,7 +61,7 @@ $table->head = array ();
|
|||
$table->head[0] = __('Name');
|
||||
$table->head[1] = __('Status');
|
||||
$table->head[2] = __('Type');
|
||||
$table->head[3] = __('Load') . ui_print_help_tip (__("Modules running on this server / Total modules of this type"), true);
|
||||
$table->head[3] = __('Version');
|
||||
$table->head[4] = __('Modules');
|
||||
$table->head[5] = __('Lag') . ui_print_help_tip (__("Avg. Delay(sec)/Modules delayed"), true);
|
||||
$table->head[6] = __('T/Q') . ui_print_help_tip (__("Threads / Queued modules currently"), true);
|
||||
|
@ -93,22 +93,22 @@ foreach ($servers as $server) {
|
|||
if ($server["master"] == 1){
|
||||
$data[2] .= ui_print_help_tip (__("This is a master server"), true);
|
||||
}
|
||||
$data[2] .= '</span> <span style="font-size:8px;"> v' . $server["version"]. '</span>';
|
||||
//$data[2] .= '</span> <span style="font-size:8px;"> v' .. '</span>';
|
||||
|
||||
switch ($server['type']) {
|
||||
case "snmp":
|
||||
case "event":
|
||||
$data[3] = 'N/A';
|
||||
$data[3] = $server["version"];
|
||||
$data[4] = 'N/A';
|
||||
$data[5] = 'N/A';
|
||||
break;
|
||||
case "export":
|
||||
$data[3] = progress_bar($server["load"], 100, 10, $server["lag_txt"], 0);
|
||||
$data[3] = $server["version"];
|
||||
$data[4] = $server["modules"] . " ".__('of')." ". $server["modules_total"];
|
||||
$data[5] = 'N/A';
|
||||
break;
|
||||
default:
|
||||
$data[3] = progress_bar($server["load"], 100, 10, $server["lag_txt"], 0);
|
||||
$data[3] = $server["version"];
|
||||
$data[4] = $server["modules"] . " ".__('of')." ". $server["modules_total"];
|
||||
$data[5] = '<span style="white-space:nowrap;">' .
|
||||
$server["lag_txt"] . '</span>';
|
||||
|
|
|
@ -495,6 +495,17 @@ $table->data[$row][1] = html_print_input_text ('custom_graph_widht',
|
|||
|
||||
$row++;
|
||||
|
||||
$table->data[$row][0] = __('Render data of module type is proc.');
|
||||
$table->data[$row][1] = __('Yes') . ' ' .
|
||||
html_print_radio_button ('render_proc', 1, '',
|
||||
$config["render_proc"], true) .
|
||||
' ';
|
||||
$table->data[$row][1] .= __('No') . ' ' .
|
||||
html_print_radio_button ('render_proc', 0, '',
|
||||
$config["render_proc"], true);
|
||||
|
||||
$row++;
|
||||
|
||||
|
||||
echo '<form id="form_setup" method="post">';
|
||||
html_print_input_hidden ('update_config', 1);
|
||||
|
|
|
@ -503,7 +503,7 @@ if ($create_alert || $update_alert) {
|
|||
|
||||
/* SNMP alert filters */
|
||||
|
||||
echo '<table cellpadding="4" cellspacing="4" width="98%" class="databox" style="font-weight: bold">';
|
||||
echo '<table cellpadding="0" cellspacing="0" width="100%" class="databox filter" style="font-weight: bold">';
|
||||
|
||||
// Description
|
||||
echo '<tr><td class="datos" valign="top">'.__('Description').'</td><td class="datos">';
|
||||
|
@ -863,7 +863,8 @@ else {
|
|||
$offset = (int) get_parameter ('offset');
|
||||
|
||||
$table_filter = new stdClass();
|
||||
$table_filter->width = "98%";
|
||||
$table_filter->width = "100%";
|
||||
$table_filter->class = "databox filters";
|
||||
$table_filter->data = array();
|
||||
$table_filter->data[0][0] = __('Free search') . ui_print_help_tip(
|
||||
__('Search by these fields description, OID, Custom Value, SNMP Agent (IP), Single value, each Variable bindings/Datas.'), true);
|
||||
|
@ -884,7 +885,7 @@ else {
|
|||
$form_filter .= '</div>';
|
||||
$form_filter .= '</form>';
|
||||
|
||||
echo "<br>";
|
||||
//echo "<br>";
|
||||
ui_toggle($form_filter,__('Alert SNMP control filter'), __('Toggle filter(s)'));
|
||||
|
||||
$filter = array();
|
||||
|
@ -948,7 +949,7 @@ else {
|
|||
//Overview
|
||||
if ($count == 0) {
|
||||
$result = array ();
|
||||
echo "<div class='nf'>" . __('There are no SNMP alerts') . "</div>";
|
||||
ui_print_info_message ( array('no_close'=>true, 'message'=> __('There are no SNMP alerts') ) );
|
||||
}
|
||||
else {
|
||||
ui_pagination ($count, $url_pagination);
|
||||
|
@ -965,8 +966,8 @@ else {
|
|||
$table->size = array ();
|
||||
$table->cellpadding = 4;
|
||||
$table->cellspacing = 4;
|
||||
$table->width = "98%";
|
||||
$table->class= "databox";
|
||||
$table->width = "100%";
|
||||
$table->class= "databox data";
|
||||
$table->align = array ();
|
||||
|
||||
$table->head[0] = '<span title="' . __('Position') . '">' . __('P.') . '</span>';
|
||||
|
|
|
@ -58,30 +58,31 @@ if ($generate_trap) {
|
|||
}
|
||||
|
||||
$traps_generator = '<form method="POST" action="index.php?sec=snmpconsole&sec2=godmode/snmpconsole/snmp_trap_generator">';
|
||||
$table->width = '90%';
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox filters';
|
||||
$table->size = array ();
|
||||
$table->data = array ();
|
||||
|
||||
$table->data[0][0] = __('Host address');
|
||||
$table->data[0][1] = html_print_input_text('snmp_host_address', $snmp_host_address, '', 50, 255, true);
|
||||
|
||||
$table->data[1][0] = __('Community');
|
||||
$table->data[1][1] = html_print_input_text('snmp_community', $snmp_community, '', 50, 255, true);
|
||||
$table->data[0][2] = __('Community');
|
||||
$table->data[0][3] = html_print_input_text('snmp_community', $snmp_community, '', 50, 255, true);
|
||||
|
||||
$table->data[2][0] = __('Enterprise String');
|
||||
$table->data[2][1] = html_print_input_text('snmp_oid', $snmp_oid, '', 50, 255, true);
|
||||
|
||||
$table->data[2][2] = __('Value');
|
||||
$table->data[2][3] = html_print_input_text('snmp_value', $snmp_value, '', 50, 255, true);
|
||||
|
||||
$table->data[3][0] = __('SNMP Agent');
|
||||
$table->data[3][1] = html_print_input_text('snmp_agent', $snmp_agent, '', 50, 255, true);
|
||||
|
||||
$table->data[4][0] = __('SNMP Type').' '.ui_print_help_icon ("snmp_trap_types", true);
|
||||
$table->data[4][1] = html_print_input_text('snmp_type', $snmp_type, '', 50, 255, true);
|
||||
$table->data[3][2] = __('SNMP Type').' '.ui_print_help_icon ("snmp_trap_types", true);
|
||||
$table->data[3][3] = html_print_input_text('snmp_type', $snmp_type, '', 50, 255, true);
|
||||
|
||||
$types = array(0 => 'Cold start (0)', 1 => 'Warm start (1)', 2 => 'Link down (2)', 3 => 'Link up (3)', 4 => 'Authentication failure (4)', 5 => 'EGP neighbor loss (5)', 6 => 'Enterprise (6)');
|
||||
$table->data[4][1] = html_print_select($types, 'snmp_type', $snmp_type, '', __('Select'), -1, true, false, false);
|
||||
|
||||
$table->data[5][0] = __('Value');
|
||||
$table->data[5][1] = html_print_input_text('snmp_value', $snmp_value, '', 50, 255, true);
|
||||
$table->data[3][3] = html_print_select($types, 'snmp_type', $snmp_type, '', __('Select'), -1, true, false, false);
|
||||
|
||||
|
||||
$traps_generator .= html_print_table($table, true);
|
||||
|
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 447 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 385 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 445 B |
Before Width: | Height: | Size: 422 B After Width: | Height: | Size: 435 B |
Before Width: | Height: | Size: 443 B After Width: | Height: | Size: 445 B |
Before Width: | Height: | Size: 430 B After Width: | Height: | Size: 438 B |
Before Width: | Height: | Size: 431 B After Width: | Height: | Size: 438 B |
Before Width: | Height: | Size: 430 B After Width: | Height: | Size: 430 B |
Before Width: | Height: | Size: 414 B After Width: | Height: | Size: 433 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 446 B |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 504 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 396 B |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 514 B |
After Width: | Height: | Size: 63 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 172 KiB |
After Width: | Height: | Size: 284 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 461 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 354 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 364 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 445 B |
After Width: | Height: | Size: 359 B |
Before Width: | Height: | Size: 489 B After Width: | Height: | Size: 532 B |
Before Width: | Height: | Size: 490 B After Width: | Height: | Size: 535 B |
Before Width: | Height: | Size: 489 B After Width: | Height: | Size: 532 B |
Before Width: | Height: | Size: 472 B After Width: | Height: | Size: 505 B |
Before Width: | Height: | Size: 357 B After Width: | Height: | Size: 411 B |
Before Width: | Height: | Size: 345 B After Width: | Height: | Size: 408 B |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 411 B |
Before Width: | Height: | Size: 394 B After Width: | Height: | Size: 429 B |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 478 B |
Before Width: | Height: | Size: 408 B After Width: | Height: | Size: 478 B |
Before Width: | Height: | Size: 379 B After Width: | Height: | Size: 425 B |
Before Width: | Height: | Size: 379 B After Width: | Height: | Size: 427 B |
Before Width: | Height: | Size: 401 B After Width: | Height: | Size: 417 B |
Before Width: | Height: | Size: 401 B After Width: | Height: | Size: 420 B |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 404 B |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 404 B |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 404 B |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 402 B |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 458 B |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 479 B |