Merge branch 'develop' of https://github.com/pandorafms/pandorafms into develop

This commit is contained in:
mdtrooper 2015-05-06 16:39:37 +02:00
commit 174726e253
310 changed files with 2422 additions and 1230 deletions

View File

@ -1,5 +1,5 @@
package: pandorafms-agent-unix package: pandorafms-agent-unix
Version: 6.0dev-150421 Version: 6.0dev-150506
Architecture: all Architecture: all
Priority: optional Priority: optional
Section: admin Section: admin

View File

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

View File

@ -41,7 +41,7 @@ my $Sem = undef;
my $ThreadSem = undef; my $ThreadSem = undef;
use constant AGENT_VERSION => '6.0dev'; use constant AGENT_VERSION => '6.0dev';
use constant AGENT_BUILD => '150421'; use constant AGENT_BUILD => '150506';
# Commands to retrieve total memory information in kB # Commands to retrieve total memory information in kB
use constant TOTALMEMORY_CMDS => { use constant TOTALMEMORY_CMDS => {
@ -754,8 +754,31 @@ sub read_config (;$) {
$RemoteConfFile = "$AgentMD5.conf"; $RemoteConfFile = "$AgentMD5.conf";
$RemoteMD5File = "$AgentMD5.md5"; $RemoteMD5File = "$AgentMD5.md5";
# Set the maximun number of threads # Load thread support if agent_threads is greater than 1.
$ThreadSem = Thread::Semaphore->new ($Conf{'agent_threads'}) if defined ($Sem); 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 # Set tentacle client options
if ($Conf{'transfer_mode'} eq 'tentacle') { 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{'server_path'} = fix_directory ($Conf{'server_path'});
$Conf{'secondary_server_path'} = fix_directory ($Conf{'secondary_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 # Startup delay
log_message ('log', 'Sleeping for ' . $Conf{'delayed_startup'} . ' seconds.') if ($Conf{'delayed_startup'} > 0); log_message ('log', 'Sleeping for ' . $Conf{'delayed_startup'} . ' seconds.') if ($Conf{'delayed_startup'} > 0);
sleep ($Conf{'delayed_startup'}); sleep ($Conf{'delayed_startup'});

View File

@ -3,7 +3,7 @@
# #
%define name pandorafms_agent_unix %define name pandorafms_agent_unix
%define version 6.0dev %define version 6.0dev
%define release 150421 %define release 150506
Summary: Pandora FMS Linux agent, PERL version Summary: Pandora FMS Linux agent, PERL version
Name: %{name} Name: %{name}

View File

@ -3,7 +3,7 @@
# #
%define name pandorafms_agent_unix %define name pandorafms_agent_unix
%define version 6.0dev %define version 6.0dev
%define release 150421 %define release 150506
Summary: Pandora FMS Linux agent, PERL version Summary: Pandora FMS Linux agent, PERL version
Name: %{name} Name: %{name}

View File

@ -47,9 +47,9 @@ pidof_pandora () {
fi fi
if [ "$ZONE" = "global" ] if [ "$ZONE" = "global" ]
then 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 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 fi
elif [ "$OS_NAME" = "Linux" ] && [ -x /usr/sbin/vzpid ] elif [ "$OS_NAME" = "Linux" ] && [ -x /usr/sbin/vzpid ]
then then
@ -66,7 +66,7 @@ pidof_pandora () {
fi fi
done done
else 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 fi
echo $PANDORA_PID echo $PANDORA_PID
@ -90,7 +90,14 @@ case "$1" in
su $PANDORA_USER -c "PATH=$PATH nohup $DAEMON $PANDORA_PATH >/dev/null 2>$LOGFILE &" su $PANDORA_USER -c "PATH=$PATH nohup $DAEMON $PANDORA_PATH >/dev/null 2>$LOGFILE &"
sleep 2 sleep 2
PANDORA_PID=`pidof_pandora` 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) stop)

View File

@ -19,7 +19,7 @@
server_ip $ServerIP$ server_ip $ServerIP$
server_path /var/spool/pandora/data_in 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" #include "C:\Archivos de programa\pandora_agent\pandora_agent_alt.conf"
#broker_agent name_agent #broker_agent name_agent
@ -47,7 +47,7 @@ address auto
#address 192.168.36.73 #address 192.168.36.73
# Group assigned for this agent (descriptive, p.e: Servers) # Group assigned for this agent (descriptive, p.e: Servers)
group "$AgentGroup$" group Servers
# This limits operation if temporal dir has not enough free disk. # This limits operation if temporal dir has not enough free disk.
#temporal_min_size 1024 #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_description Last update for Antivirus Signature file
module_end 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_begin
module_name Inventory module_plugin cscript.exe //B "%PROGRAMFILES%\Pandora_Agent\util\cpuinfo.vbs"
module_interval 7 module_crontab * 12-15 * * 1
module_type generic_data_string module_end
module_inventory CPU RAM CDROM Video HD Patches Services NIC
module_description Inventory 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 module_end
# ---------------------------------------------------------------------------------------------------- # ----------------------------------------------------------------------------------------------------

View File

@ -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>"

View File

@ -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>"

View File

@ -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>"

View File

@ -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>"

View File

@ -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>"

View File

@ -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>"

View File

@ -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>"

View File

@ -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>"

View File

@ -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>"

View File

@ -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>"

View File

@ -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>"

View File

@ -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>"

View File

@ -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>"

View File

@ -1,72 +1,141 @@
' software_inventory.vbs
' Pandora FMS Agent Inventory Plugin for Microsoft Windows (All platfforms) ' 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 ' 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>"
Wscript.StdOut.WriteLine"<inventory_module>" Wscript.StdOut.WriteLine "<inventory_module>"
Wscript.StdOut.WriteLine "<name>software</name>" Wscript.StdOut.WriteLine "<name>Software</name>"
Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>" Wscript.StdOut.WriteLine "<type><![CDATA[generic_data_string]]></type>"
Wscript.StdOut.WriteLine "<datalist>" Wscript.StdOut.WriteLine "<datalist>"
Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE '------ 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 = "." 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
strKey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" strKey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
strEntry1a = "DisplayName" strEntry1a = "DisplayName"
strEntry1b = "QuietDisplayName" strEntry1b = "QuietDisplayName"
strEntry2 = "InstallDate" strEntry2 = "InstallDate"
strEntry3 = "VersionMajor" strEntry3 = "DisplayVersion"
strEntry4 = "VersionMinor"
strEntry5 = "EstimatedSize"
Set objReg = GetObject("winmgmts://" & strComputer & _ Set objReg = GetObject("winmgmts://" & strComputer & "/root/default:StdRegProv")
"/root/default:StdRegProv")
objReg.EnumKey HKLM, strKey, arrSubkeys objReg.EnumKey HKLM, strKey, arrSubkeys
For Each strSubkey In arrSubkeys For Each strSubkey In arrSubkeys
appname = "" appname = ""
appsize = "" appsize = ""
appversion = "" appversion = ""
appdate = "" appdate = ""
intRet1 = objReg.GetStringValue(HKLM, strKey & strSubkey, _ intRet1 = objReg.GetStringValue(HKLM, strKey & strSubkey, strEntry1a, strValue1)
strEntry1a, strValue1)
If intRet1 <> 0 Then If intRet1 <> 0 Then
objReg.GetStringValue HKLM, strKey & strSubkey, _ objReg.GetStringValue HKLM, strKey & strSubkey, strEntry1b, strValue1
strEntry1b, strValue1
End If End If
If strValue1 <> "" Then If strValue1 <> "" Then
appname = strValue1 appname = strValue1
End If End If
objReg.GetStringValue HKLM, strKey & strSubkey, _ objReg.GetStringValue HKLM, strKey & strSubkey, strEntry2, strValue2
strEntry2, strValue2
If strValue2 <> "" Then If strValue2 <> "" Then
appdate = strValue2 appdate = strValue2
End If End If
objReg.GetDWORDValue HKLM, strKey & strSubkey, _
strEntry3, intValue3 objReg.GetStringValue HKLM, strKey & strSubkey, strEntry3, intValue3
objReg.GetDWORDValue HKLM, strKey & strSubkey, _
strEntry4, intValue4
If intValue3 <> "" Then 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 End If
If appname <> "" Then 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 end if
next
Next ' Closing the XML structure
Wscript.StdOut.WriteLine "</datalist>" Wscript.StdOut.WriteLine "</datalist>"
Wscript.StdOut.WriteLine "</inventory_module>" Wscript.StdOut.WriteLine "</inventory_module>"
Wscript.StdOut.WriteLine "</inventory>" Wscript.StdOut.WriteLine "</inventory>"

View File

@ -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>"

View File

@ -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>"

View File

@ -186,7 +186,7 @@ UpgradeApplicationID
{} {}
Version Version
{150421} {150506}
ViewReadme ViewReadme
{Yes} {Yes}

View File

@ -30,7 +30,7 @@ using namespace Pandora;
using namespace Pandora_Strutils; using namespace Pandora_Strutils;
#define PATH_SIZE _MAX_PATH+1 #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_path;
string pandora_dir; string pandora_dir;

View File

@ -11,7 +11,7 @@ BEGIN
VALUE "LegalCopyright", "Artica ST" VALUE "LegalCopyright", "Artica ST"
VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "OriginalFilename", "PandoraAgent.exe"
VALUE "ProductName", "Pandora FMS Windows Agent" VALUE "ProductName", "Pandora FMS Windows Agent"
VALUE "ProductVersion", "(6.0dev(Build 150421))" VALUE "ProductVersion", "(6.0dev(Build 150506))"
VALUE "FileVersion", "1.0.0.0" VALUE "FileVersion", "1.0.0.0"
END END
END END

View File

@ -1,5 +1,5 @@
package: pandorafms-console package: pandorafms-console
Version: 6.0dev-150421 Version: 6.0dev-150506
Architecture: all Architecture: all
Priority: optional Priority: optional
Section: admin Section: admin

View File

@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
pandora_version="6.0dev-150421" pandora_version="6.0dev-150506"
package_pear=0 package_pear=0
package_pandora=1 package_pandora=1

View File

@ -105,10 +105,18 @@ function mainAgentsAlerts() {
} }
// Header // 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 // Old style table, we need a lot of special formatting,don't use table function
// Prepare old-style table // 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, $filter = array ('offset' => (int) $offset,
'limit' => (int) $config['block_size']); 'limit' => (int) $config['block_size']);
@ -144,7 +152,7 @@ function mainAgentsAlerts() {
$nagents = count(agents_get_agents ($filter_count)); $nagents = count(agents_get_agents ($filter_count));
if ($agents == false) { 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; return;
} }
@ -164,12 +172,15 @@ function mainAgentsAlerts() {
// Prepare pagination // Prepare pagination
ui_pagination ($nagents); ui_pagination ($nagents);
echo '<table cellpadding="4" cellspacing="4" border="0" width=98%>'; echo '<table class="databox data" cellpadding="0" cellspacing="0" border="0" width=100%>';
echo "<th width='140px' height='25px'>".__("Agents")." / ".__("Alert templates")."</th>"; echo "<th width='140px' >".__("Agents")." / ".__("Alert templates")."</th>";
if ($hor_offset > 0) { if ($hor_offset > 0) {
$new_hor_offset = $hor_offset-$block; $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(); $templates_raw = array();
@ -200,12 +211,14 @@ function mainAgentsAlerts() {
if ($tname == '') { if ($tname == '') {
continue; 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) { if (($hor_offset + $block) < $ntemplates) {
$new_hor_offset = $hor_offset+$block; $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) { foreach ($agents as $agent) {
@ -231,7 +244,7 @@ function mainAgentsAlerts() {
$cellstyle = 'background:'.COL_ALERTFIRED.';'; $cellstyle = 'background:'.COL_ALERTFIRED.';';
} }
echo '<td style="text-align:center;'.$cellstyle.'"> '; echo '<td style=";'.$cellstyle.'"> ';
$uniqid = uniqid(); $uniqid = uniqid();
echo "<div>"; echo "<div>";

View File

@ -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 = '<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 .= '<b>'.__('Module group').'</b>';
$filter_module_groups .= html_print_select_from_sql ("SELECT * FROM tmodule_group ORDER BY name", $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_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 = '<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 .= '<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>'; $filter_groups .= '</form>';
$comborefr = '<form method="post" action="' . ui_get_url_refresh (array ('offset' => $offset, 'hor_offset' => $offset,'group_id' => $group_id, 'modulegroup' => $modulegroup)).'">'; $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 // 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 // Old style table, we need a lot of special formatting,don't use table function
// Prepare old-style table // 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 = agents_get_group_agents($group_id,array('disabled' => 0)); $agents = agents_get_group_agents($group_id,array('disabled' => 0));
@ -138,7 +147,7 @@ function mainAgentsModules() {
} }
$count++; $count++;
} }
$total_pagination = count($agents);
$all_modules = agents_get_modules($agents, false, $filter_module_group, true, false); $all_modules = agents_get_modules($agents, false, $filter_module_group, true, false);
$modules_by_name = array(); $modules_by_name = array();
@ -172,15 +181,15 @@ function mainAgentsModules() {
$nagents = count($agents); $nagents = count($agents);
if ($all_modules == false || $agents == false) { 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; 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 "<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) { if ($hor_offset > 0) {
$new_hor_offset = $hor_offset-$block; $new_hor_offset = $hor_offset-$block;
@ -242,13 +251,12 @@ function mainAgentsModules() {
echo "</tr>"; echo "</tr>";
$filter_agents = array('offset' => (int) $offset, $filter_agents = array('offset' => (int) $offset, 'disabled' => 0);
'limit' => (int) $config['block_size'], 'disabled' => 0);
if ($group_id > 0) { if ($group_id > 0) {
$filter_agents['id_grupo'] = $group_id; $filter_agents['id_grupo'] = $group_id;
} }
// Prepare pagination // Prepare pagination
ui_pagination ((int)count(agents_get_agents ($filter_agents))); ui_pagination ($total_pagination);
foreach ($agents as $agent) { foreach ($agents as $agent) {
// Get stats for this group // Get stats for this group

View File

@ -167,9 +167,9 @@ function mainModuleGroups() {
ui_print_page_header (__("Combined table of agent group and module group"), "images/module_group.png", false, "", false, ''); ui_print_page_header (__("Combined table of agent group and module group"), "images/module_group.png", false, "", false, '');
echo "<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") . __("This table shows in columns the modules group and in rows agents group. The cell shows all modules") )
"</p>"; );
$agentGroups = users_get_groups ($config['id_user'], "AR", false); $agentGroups = users_get_groups ($config['id_user'], "AR", false);
@ -182,7 +182,7 @@ function mainModuleGroups() {
$table->headstyle[] = "width: 20%"; $table->headstyle[] = "width: 20%";
foreach ($modelGroups as $i => $n) { foreach ($modelGroups as $i => $n) {
$table->headstyle[] = "width: 7%"; $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, '&hellip;', 'color:#FFF');
} }
$head = $modelGroups; $head = $modelGroups;
@ -203,7 +203,7 @@ function mainModuleGroups() {
$fired = false; $fired = false;
$row = array(); $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, '&hellip;', 'color:#FFF'));
foreach ($modelGroups as $idModelGroup => $modelGroup) { foreach ($modelGroups as $idModelGroup => $modelGroup) {
$fired = false; $fired = false;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 570 B

View File

@ -46,6 +46,8 @@ function pandora_realtime_graphs () {
$table->id = 'table-form'; $table->id = 'table-form';
$table->class = 'databox filters'; $table->class = 'databox filters';
$table->style = array (); $table->style = array ();
$table->cellpadding = '0';
$table->cellspacing = '0';
$table->style[0] = 'font-weight: bold;'; $table->style[0] = 'font-weight: bold;';
$table->style[1] = 'font-weight: bold;'; $table->style[1] = 'font-weight: bold;';
$table->style[2] = 'font-weight: bold;'; $table->style[2] = 'font-weight: bold;';
@ -63,7 +65,6 @@ function pandora_realtime_graphs () {
$refresh = get_parameter('refresh', '1000'); $refresh = get_parameter('refresh', '1000');
$data['graph'] = __('Graph') . '&nbsp;&nbsp;' . html_print_select ($graph_fields, 'graph', $graph, '', '', 0, true); $data['graph'] = __('Graph') . '&nbsp;&nbsp;' . 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[1000] = human_time_description_raw(1, true, 'large');
$refresh_fields[5000] = human_time_description_raw(5, true, 'large'); $refresh_fields[5000] = human_time_description_raw(5, true, 'large');
@ -72,7 +73,7 @@ function pandora_realtime_graphs () {
$data['refresh'] = __('Refresh interval') . '&nbsp;&nbsp;' . html_print_select ($refresh_fields, 'refresh', $refresh, '', '', 0, true); $data['refresh'] = __('Refresh interval') . '&nbsp;&nbsp;' . html_print_select ($refresh_fields, 'refresh', $refresh, '', '', 0, true);
$data['incremental'] = __('Incremental') . '&nbsp;&nbsp;' . html_print_checkbox ('incremental', 1, 0, true); $data['incremental'] = __('Incremental') . '&nbsp;&nbsp;' . 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; $table->data[] = $data;

View File

@ -57,7 +57,7 @@ function ssh_gateway () {
echo "<td>".__("Host address")."<td><input type=text size=25 value='$HOST' name=host>"; echo "<td>".__("Host address")."<td><input type=text size=25 value='$HOST' name=host>";
//echo "<tr>"; //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>".__("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'>&nbsp;&nbsp;&nbsp;<input type=submit name=connect class='sub upd' value=".__("Connect").">"; echo "<td rowspan=2 vertical_aling='middle'>&nbsp;&nbsp;&nbsp;<input type=submit name=connect class='sub upd' style='margin-top:0px;' value=".__("Connect").">";
echo "<input type=hidden name=commit value=1></td>"; echo "<input type=hidden name=commit value=1></td>";
echo "<tr>"; echo "<tr>";
echo "<td>".__("Port (use 0 for default)")."<td><input type=text size=5 value='$PORT' name=port>"; echo "<td>".__("Port (use 0 for default)")."<td><input type=text size=5 value='$PORT' name=port>";

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 486 B

View File

@ -25,7 +25,7 @@ function vnc_view() {
echo __("VNC Display (:0 by default)") . "&nbsp;"; echo __("VNC Display (:0 by default)") . "&nbsp;";
echo "<input type=text name=display value=$display>"; echo "<input type=text name=display value=$display>";
echo "</td><td>"; 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 "</td>";
echo "</tr></table>"; echo "</tr></table>";
$port = 5800 + $display; $port = 5800 + $display;

File diff suppressed because one or more lines are too long

View File

@ -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_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_open_img = '<a href="' . $maintenance_link . '" title="' . $maintenance_title . '" class="' . $maintenance_class . '">';
$maintenance_link_close = '</a>'; $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 { else {
$maintenance_img = html_print_image ("images/header_ready.png", true, array ("title" => __('There are not warnings'), "id" => "yougotalert", "class" => "bot")); $maintenance_img = html_print_image ("images/header_ready.png", true, array ("title" => __('There are not warnings'), "id" => "yougotalert", "class" => "bot"));

View File

@ -62,44 +62,47 @@ if (!empty($config['login_background'])) {
$login_body_style = "style=\"background-image: url('$background_url');\""; $login_body_style = "style=\"background-image: url('$background_url');\"";
} }
echo '<div id="login_body" ' . $login_body_style . '></div>'; 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 class="databox_login" id="login">';
echo '<div id="login_inner">'; echo '<div id="login_inner">';
echo ' echo '<div id="login_in">';
<div id="login_in"> echo '<div class="version_login"><div style="padding-top: 2px; color: #FFF;">' . $pandora_version . '</div></div>';
<form method="post" action="' . ui_get_full_url('index.php'.$url) . '" >'; echo '<form method="post" action="' . ui_get_full_url('index.php'.$url) . '" >';
//TODO: Put branding in variables (external file) or database //TODO: Put branding in variables (external file) or database
/* CUSTOM BRANDING STARTS HERE */ /* CUSTOM BRANDING STARTS HERE */
// Replace the following with your own URL and logo. // Replace the following with your own URL and logo.
// A mashup of the Pandora FMS logo and your companies highly preferred // 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 '<table id="login_layout">';
echo'<tr style="height:15px;"><td>';
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 '<div class="login_links">'; echo '<div class="login_links">';
echo '<a href="http://wiki.pandorafms.com/" target="_blank">' . __('Help') . '</a>'; echo '<a href="http://wiki.pandorafms.com/" target="_blank">' . __('Help') . '</a>';
echo ' | '; echo ' | ';
echo '<a href="http://forums.pandorafms.com/" target="_blank">' . __('Support') . '</a>'; echo '<a href="http://forums.pandorafms.com/" target="_blank">' . __('Support') . '</a>';
echo '</div>'; 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) { switch ($login_screen) {
case 'login': case 'login':
@ -108,20 +111,22 @@ echo '
html_print_input_hidden ($key, $value); html_print_input_hidden ($key, $value);
} }
} }
echo '<div class="login_nick_text">';
echo __('User') . '<br>';
echo '</div>';
echo '<div class="login_nick">'; echo '<div class="login_nick">';
html_print_input_text_extended ("nick", '', "nick", '', '', '' , false, '', 'class="login login_user"'); html_print_image ("/images/usuario_login.png", false);
echo '</div>'; html_print_input_text_extended ("nick", __('User'), "nick", '', '', '' , false,
echo '<div class="login_pass_text">'; array('onfocus' => "javascript:if ( $('.login_user').val() == 'User') $('.login_user').val('');",
echo __('Password') . '<br>'; 'onblur'=>"javascript: if ( $('.login_user').val() == false) $('.login_user').val('". __('User')."');"), 'class="login login_user" ');
echo '</div>'; echo '</div><br />';
echo '<div class="login_pass">'; 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>';
echo '<div class="login_button">'; echo '<div class="login_button">';
html_print_submit_button(__("Login") . '&nbsp;&nbsp;>', "login_button", false, 'class="sub next_login"'); html_print_submit_button(__("Login"), "login_button", false, 'class="sub next_login"');
echo '</div>'; echo '</div>';
break; break;
case 'logout': case 'logout':
@ -165,10 +170,11 @@ echo '</form>
</div> </div>
</div> </div>
</div> </div>
</div>
</div>'; </div>';
if (defined ('METACONSOLE')) { if (defined ('METACONSOLE')) {
echo '<div id="ver_num" style="text-align: center;">'; echo '<div id="ver_num">';
} }
else { else {
echo '<div id="ver_num">'; echo '<div id="ver_num">';
@ -180,7 +186,7 @@ echo $pandora_version.(($develop_bypass == 1) ? ' '.__('Build').' '.$build_versi
if (isset ($login_failed)) { if (isset ($login_failed)) {
echo '<div id="login_failed" title="Login failed" style="">'; 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 '<div id="error_login" style="margin-top: 20px">';
echo '<strong style="font-size: 10pt">' . $config["auth_error"] . '</strong>'; 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" background: "black"
}, },
width: 500, width: 500,
height: 300 height: 200
}) })
.show (); .show ();
} }
@ -361,7 +367,7 @@ html_print_div(array('id' => 'modal_alert', 'hidden' => true));
resizable: true, resizable: true,
draggable: true, draggable: true,
modal: true, modal: true,
height: 200, height: 160,
width: 400, width: 400,
overlay: { overlay: {
opacity: 0.5, opacity: 0.5,

View File

@ -222,9 +222,9 @@ $(document).ready( function() {
$('div#title_menu').show(); $('div#title_menu').show();
handsInMenu = 1; handsInMenu = 1;
openTimeMenu = new Date().getTime(); openTimeMenu = new Date().getTime();
$('#menu').css('width', '130px'); $('#menu').css('width', '145px');
$('li.menu_icon').addClass( " no_hidden_menu" ); $('li.menu_icon').addClass( " no_hidden_menu" );
$('ul.submenu').css('left', '129px'); $('ul.submenu').css('left', '144px');
}).mouseleave(function(){ }).mouseleave(function(){
handsInMenu = 0; handsInMenu = 0;
setTimeout(function() { setTimeout(function() {

View File

@ -36,7 +36,7 @@ $agent_name = md5($agent_name);
/* Map with the current position */ /* Map with the current position */
echo "<div id=\"" . $agent_name . "_agent_map\" style=\"border:1px solid black; width:100%; height: 30em;\"></div>"; 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.")); 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'> echo "<script type='text/javascript'>
$(document).ready(function() { $(document).ready(function() {
@ -46,10 +46,11 @@ if (!gis_get_agent_map($id_agente, "500px", "98%", false)) {
} }
if ($agentData === 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'>" . ui_print_warning_message (array ( 'no_close' => true, 'message' =>
__("Warning: When you change the Agent position, the agent automatically activates the 'Ignore new GIS data' option") . "</div>"; __("When you change the Agent position, the agent automatically activates the 'Ignore new GIS data' option") ) );
$table->width = '100%'; $table->width = '100%';
$table->class = 'databox filters'; $table->class = 'databox filters';
@ -59,6 +60,8 @@ $table->cellspacing = 0;
$table->head[0] =__('Agent position'); $table->head[0] =__('Agent position');
$table->head_colspan[0] = 4; $table->head_colspan[0] = 4;
$table->headstyle[0] = "text-align:center"; $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][0] = __('Latitude: ');
$table->data[1][1] = html_print_input_text_extended ('latitude', $agentData['stored_latitude'], 'text-latitude', '', 20, 20, false, '', $table->data[1][1] = html_print_input_text_extended ('latitude', $agentData['stored_latitude'], 'text-latitude', '', 20, 20, false, '',

View File

@ -119,8 +119,6 @@ if ($new_agent) {
$server_name = reset(array_keys($servers)); $server_name = reset(array_keys($servers));
} }
echo '<div style="height: 5px">&nbsp;</div>';
if (!$new_agent) { if (!$new_agent) {
// Agent remote configuration editor // Agent remote configuration editor
enterprise_include_once('include/functions_config_agents.php'); 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&amp;sec2=godmode/agentes/configurar_agente">'; echo '<form name="conf_agent" method="post" action="index.php?sec=gagente&amp;sec2=godmode/agentes/configurar_agente">';
$table->width = '100%'; $table->width = '100%';
$table->class = "databox_color"; $table->class = "databox filters";
$table->head = array (); $table->head = array ();
$table->style = array (); $table->style = array ();
@ -277,7 +275,7 @@ html_print_table ($table);
unset($table); unset($table);
$table->width = '100%'; $table->width = '100%';
$table->class = "databox_color"; $table->class = "databox filters";
$table->head = array (); $table->head = array ();
$table->style = array (); $table->style = array ();
@ -391,7 +389,7 @@ ui_toggle(html_print_table ($table, true), __('Advanced options'));
unset($table); unset($table);
$table->width = '100%'; $table->width = '100%';
$table->class = "databox_color"; $table->class = "databox filters";
$table->head = array (); $table->head = array ();
$table->style = array (); $table->style = array ();

View File

@ -176,12 +176,12 @@ foreach ($nps as $row) {
$select[$row["id_np"]] = $row["name"]; $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%'>"; echo "<tr><td class='datos' style='width:50%'>";
html_print_select ($select, "template_id", '', '', '', 0, false, false, true, '', false, 'max-width: 200px !important'); html_print_select ($select, "template_id", '', '', '', 0, false, false, true, '', false, 'max-width: 200px !important');
echo '</td>'; echo '</td>';
echo '<td class="datos">'; 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 '</td>';
echo '</tr>'; echo '</tr>';
echo "</form>"; echo "</form>";
@ -213,8 +213,8 @@ if ($result === false) {
} }
$table->width = '100%'; $table->width = '100%';
$table->cellpadding = 4; $table->cellpadding = 0;
$table->cellspacing = 4; $table->cellspacing = 0;
$table->class = "databox data"; $table->class = "databox data";
$table->head = array (); $table->head = array ();
$table->data = array (); $table->data = array ();
@ -225,13 +225,16 @@ $table->head[1] = __('Type');
$table->head[2] = __('Description'); $table->head[2] = __('Description');
$table->head[3] = __('Action'); $table->head[3] = __('Action');
$table->align[1] = "center"; $table->align[1] = "left";
$table->align[3] = "center"; $table->align[3] = "left";
$table->size[0] = "30%";
$table->size[1] = "5%";
$table->size[3] = "8%";
foreach ($result as $row) { foreach ($result as $row) {
$data = array (); $data = array ();
$data[0] = '<span style="font-size: 7.2pt">' . $row["nombre"]; $data[0] = '<span>' . $row["nombre"];
if ($row["id_tipo_modulo"] > 0) { if ($row["id_tipo_modulo"] > 0) {
$data[1] = html_print_image("images/" . modules_show_icon_type ($row["id_tipo_modulo"]), true, array("border" => "0")); $data[1] = html_print_image("images/" . modules_show_icon_type ($row["id_tipo_modulo"]), true, array("border" => "0"));
} }

View File

@ -247,10 +247,10 @@ if ($create_modules) {
echo '<span id ="none_text" style="display: none;">' . __('None') . '</span>'; 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'>"; 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->width = '100%';
$table->cellpadding = 0;
$table->valign[0] = 'top'; $table->cellspacing = 0;
$table->valign[1] = 'top'; $table->class = 'databox filters';
$table->data[0][0] = '<b>' . __('Target IP') . '</b>'; $table->data[0][0] = '<b>' . __('Target IP') . '</b>';
$table->data[0][1] = html_print_input_text ('ip_target', $ip_target, '', 15, 60, true); $table->data[0][1] = html_print_input_text ('ip_target', $ip_target, '', 15, 60, true);

View File

@ -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="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 '<form id="create_module_type" method="post" action="'.$url.'">';
echo '<table width="100%" cellpadding="2" cellspacing="2" class="databox filters" >'; 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') . ' ' . echo __('Search') . ' ' .
html_print_input_text ('search_string', $search_string, '', 15, 255, true); html_print_input_text ('search_string', $search_string, '', 15, 255, true);
echo "</td>"; echo "</td>";
@ -111,7 +111,8 @@ if (($policy_page) || (isset($agent))) {
if ($show_creation) { if ($show_creation) {
// Create module/type combo // Create module/type combo
//echo '<form id="create_module_type" method="post" action="'.$url.'">'; //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_select ($modules, 'moduletype', '', '', '', '', false, false, false, '', false, 'max-width:300px;' );
html_print_input_hidden ('edit_module', 1); html_print_input_hidden ('edit_module', 1);
echo '</td>'; echo '</td>';
@ -128,7 +129,7 @@ echo "</form>";
echo '<div style="text-align: right; width: 100%;padding-top:10px;padding-bottom:10px">'; echo '<div style="text-align: right; width: 100%;padding-top:10px;padding-bottom:10px">';
echo "<strong>"; 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 "</strong>";
echo '</div>'; echo '</div>';
@ -529,7 +530,7 @@ $table->rowstyle = array();
$table->style = array (); $table->style = array ();
$table->style[0] = 'font-weight: bold'; $table->style[0] = 'font-weight: bold';
$table->size = array (); $table->size = array ();
$table->size[2] = '55px'; $table->size[2] = '70px';
$table->align = array (); $table->align = array ();
$table->align[2] = 'left'; $table->align[2] = 'left';
$table->align[8] = 'left'; $table->align[8] = 'left';

View File

@ -38,10 +38,14 @@ $table->data = array ();
$table->size = array (); $table->size = array ();
$table->size = array (); $table->size = array ();
$table->size[0] = '10%'; $table->size[0] = '10%';
$table->size[1] = '30%'; $table->size[1] = '25%';
$table->style[0] = 'font-weight: bold; vertical-align: top;'; $table->size[2] = '10%';
$table->align[0] = 'left'; $table->size[3] = '20%';
$table->align[1] = 'left'; $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 // This is because if this view is reused after list alert view then
// styles in the previous view can affect this table. // styles in the previous view can affect this table.
$table->rowstyle[0] = ''; $table->rowstyle[0] = '';

View File

@ -48,13 +48,14 @@ else {
} }
// Table for filter controls // Table for filter controls
$form_filter = '<form method="post" action="index.php?sec=' . $sec . '&amp;sec2=' . $sec2 . '&amp;refr=' . ((int)get_parameter('refr', 0)) . '&amp;pure='.$config["pure"].'">'; $form_filter = '<form method="post" action="index.php?sec=' . $sec . '&amp;sec2=' . $sec2 . '&amp;refr=' . ((int)get_parameter('refr', 0)) .
$form_filter .= "<input type='hidden' name='search' value='1' />\n"; '&amp;pure='.$config["pure"].'">';
$form_filter .= '<table style="width: 100%;" cellpadding="0" cellspacing="0" class="databox filters">'."\n"; $form_filter .= "<input type='hidden' name='search' value='1' />";
$form_filter .= "<tr>\n"; $form_filter .= '<table style="width: 100%;" cellpadding="0" cellspacing="0" class="databox filters">';
$form_filter .= "<td>" . __('Template name') . "</td><td>"; $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 .= html_print_input_text ('template_name', $templateName, '', 12, 255, true);
$form_filter .= "</td>\n"; $form_filter .= "</td>";
$temp = agents_get_agents(); $temp = agents_get_agents();
$arrayAgents = array(); $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(); $params = array();
@ -79,12 +80,12 @@ $params['metaconsole_enabled'] = false;
$form_filter .= ui_print_agent_autocomplete_input($params); $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 .= html_print_input_text ('module_name', $moduleName, '', 12, 255, true);
$form_filter .= "</td>\n"; $form_filter .= "</td>";
$form_filter .= "</tr>\n"; $form_filter .= "</tr>";
$all_groups = db_get_value('is_admin', 'tusuario', 'id_user', $config['id_user']); $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)); $groups_id = implode(',', array_keys($groups_user));
$form_filter .= "<tr>\n"; $form_filter .= "<tr>";
switch ($config["dbtype"]) { switch ($config["dbtype"]) {
case "mysql": case "mysql":
case "postgresql": case "postgresql":
@ -111,39 +112,47 @@ if (is_array($temp)) {
$arrayActions[$actionElement['id']] = $actionElement['name']; $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 .= 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 .= "</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 .= "<tr>";
$form_filter .= "<td>".__('Enabled / Disabled')."</td><td>"; $form_filter .= "<td style='font-weight: bold;'>".__('Enabled / Disabled')."</td><td>";
$ed_list = array (); $ed_list = array ();
$ed_list[0] = __('Enable'); $ed_list[0] = __('Enable');
$ed_list[1] = __('Disable'); $ed_list[1] = __('Disable');
$form_filter .= html_print_select ($ed_list, 'enabledisable', $enabledisable, '', __('All'), -1, true); $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 = array ();
$sb_list[1] = __('Standby on'); $sb_list[1] = __('Standby on');
$sb_list[0] = __('Standby off'); $sb_list[0] = __('Standby off');
$form_filter .= html_print_select ($sb_list, 'standby', $standby, '', __('All'), -1, true); $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 .= "</form>";
$form_filter .= "<td colspan='6' align='right'>"; if ( defined("METACONSOLE"))
$form_filter .= html_print_submit_button (__('Update'), '', false, 'class="sub upd"', true); echo "<br>";
$form_filter .= "</td>";
$form_filter .= "</tr>\n";
$form_filter .= "</table>\n";
$form_filter .= "</form>\n";
echo "<br>";
ui_toggle($form_filter, __('Alert control filter'), __('Toggle filter(s)')); ui_toggle($form_filter, __('Alert control filter'), __('Toggle filter(s)'));
$simple_alerts = array(); $simple_alerts = array();
@ -323,9 +332,14 @@ if (!$id_agente) {
else { else {
$url = 'index.php?sec='.$sec.'&sec2=godmode/agentes/configurar_agente&pure='.$pure.'&tab=alert&id_agente=' . $id_agente . '&offset=' . $offset . $form_params; $url = 'index.php?sec='.$sec.'&sec2=godmode/agentes/configurar_agente&pure='.$pure.'&tab=alert&id_agente=' . $id_agente . '&offset=' . $offset . $form_params;
} }
if ( defined("METACONSOLE") )
$table->class = 'alert_list databox';
else
$table->class = 'databox filters';
$table->class = 'alert_list databox';
$table->width = '100%'; $table->width = '100%';
$table->cellpadding = 0;
$table->cellspacing = 0;
$table->size = array (); $table->size = array ();
$table->align[2] = 'left'; $table->align[2] = 'left';
@ -674,7 +688,7 @@ if (isset($data)) {
html_print_table ($table); html_print_table ($table);
} }
else { else {
ui_print_empty_data ( __('No alerts defined') ); ui_print_info_message ( array('no_close' => true, 'message' => __('No alerts defined') ) );
} }
// Create alert button // Create alert button

View File

@ -302,7 +302,7 @@ $(document).ready (function () {
// Replace the old column with the new // Replace the old column with the new
$table_macros_field.replaceWith(field_row); $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 + "_value]").val(old_value);
$("[name=field" + i + "_recovery_value]").val(old_recovery_value); $("[name=field" + i + "_recovery_value]").val(old_recovery_value);
} }

View File

@ -178,7 +178,7 @@ if ($delete_layout || $copy_layout) {
} }
} }
$table->width = '98%'; $table->width = '100%';
$table->data = array (); $table->data = array ();
$table->head = array (); $table->head = array ();
$table->head[0] = __('Map name'); $table->head[0] = __('Map name');
@ -194,10 +194,10 @@ if ($vconsoles_write || $vconsoles_manage) {
$table->align = array (); $table->align = array ();
$table->align[0] = 'left'; $table->align[0] = 'left';
$table->align[1] = 'center'; $table->align[1] = 'left';
$table->align[2] = 'center'; $table->align[2] = 'left';
$table->align[3] = 'center'; $table->align[3] = 'left';
$table->align[4] = 'center'; $table->align[4] = 'left';
// Only display maps of "All" group if user is administrator // Only display maps of "All" group if user is administrator
// or has "VR" privileges, otherwise show only maps of user group // 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); $maps = visual_map_get_user_layouts ($config['id_user'], false, false, false);
if (!$maps) { if (!$maps) {
echo '<div class="nf">'.__('No maps defined').'</div>'; ui_print_info_message ( array('no_close'=>true, 'message'=> __('No maps defined') ) );
} }
else { else {
foreach ($maps as $map) { foreach ($maps as $map) {

View File

@ -369,7 +369,10 @@ switch ($action) {
$search_name = "%$search%' OR description LIKE '%$search%"; $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')){ if(defined('METACONSOLE')){
$table_aux->class = 'databox_filters'; $table_aux->class = 'databox_filters';
$table_aux->width = '96%'; $table_aux->width = '96%';
@ -456,10 +459,15 @@ switch ($action) {
$table->width = '0px'; $table->width = '0px';
if (sizeof ($reports)) { if (sizeof ($reports)) {
$table->id = 'report_list'; $table->id = 'report_list';
$table->width = '98%'; $table->width = '100%';
$table->class = 'databox data';
$table->cellpadding = 0;
$table->cellspacing = 0;
if(defined('METACONSOLE')){ if(defined('METACONSOLE')){
$table->class = 'databox';
$table->width = '100%'; $table->width = '100%';
} }
$table->head = array (); $table->head = array ();
$table->align = array (); $table->align = array ();
$table->align[2] = 'center'; $table->align[2] = 'center';
@ -470,6 +478,13 @@ switch ($action) {
$table->head[1] = __('Description'); $table->head[1] = __('Description');
$table->head[2] = __('HTML'); $table->head[2] = __('HTML');
$table->head[3] = __('XML'); $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; $next = 4;
//Calculate dinamically the number of the column //Calculate dinamically the number of the column
@ -481,21 +496,22 @@ switch ($action) {
if (check_acl ($config['id_user'], 0, "RM")) { if (check_acl ($config['id_user'], 0, "RM")) {
$table->head[$next] = __('Private'); $table->head[$next] = __('Private');
$table->size[$next] = '40px'; $table->size[$next] = '2%';
if(defined('METACONSOLE')) if(defined('METACONSOLE'))
$table->align[$next] = ''; $table->align[$next] = '';
else else
$table->align[$next] = 'center'; $table->align[$next] = 'center';
$next++; $next++;
$table->head[$next] = __('Group'); $table->head[$next] = __('Group');
$table->align[$next] = 'center'; $table->size[$next] = '15%';
$next++; $next++;
if(!defined('METACONSOLE')) if(!defined('METACONSOLE'))
$table->head[$next] = '<span title="Operations">' . $table->head[$next] = '<span title="Operations">' .
__('Op.') . '</span>'; __('Op.') . '</span>';
$table->size = array (); //$table->size = array ();
$table->size[$next] = '80px'; $table->size[$next] = '5%';
$table->style[$next] = 'text-align:center;'; $table->style[$next] = 'text-align:center;';
} }
@ -632,15 +648,14 @@ switch ($action) {
html_print_table ($table); html_print_table ($table);
} }
else{ else{
echo "<br />"; ui_print_info_message ( array ( 'no_close' => true, 'message' => __('No data found.') ) );
echo "<div class='nf'>".__('No data found.')."</div>";
} }
if (check_acl ($config['id_user'], 0, "RW")) { 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.'">'; echo '<form method="post" action="index.php?sec=reporting&sec2=godmode/reporting/reporting_builder&tab=main&action=new&pure='.$pure.'">';
if (defined("METACONSOLE")) if (defined("METACONSOLE"))
echo '<div class="action-buttons" style="width: 100%; ">'; echo '<div class="action-buttons" style="width: 100%; ">';
else 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"'); html_print_submit_button (__('Create report'), 'create', false, 'class="sub next"');
echo "</div>"; echo "</div>";
echo "</form>"; echo "</form>";

View File

@ -84,7 +84,7 @@ switch ($action) {
break; break;
} }
$table->width = '98%'; $table->width = '100%';
if (defined('METACONSOLE')) { if (defined('METACONSOLE')) {
$table->width = '100%'; $table->width = '100%';
$table->class = 'databox data'; $table->class = 'databox data';

View File

@ -214,6 +214,7 @@ foreach ($layoutDatas as $layoutData) {
case STATIC_GRAPH: case STATIC_GRAPH:
case ICON: case ICON:
case GROUP_ITEM: case GROUP_ITEM:
case SERVICE:
$table->data[$i + 1][1] = $table->data[$i + 1][1] =
html_print_select ($images_list, html_print_select ($images_list,
'image_' . $idLayoutData, $layoutData['image'], '', 'image_' . $idLayoutData, $layoutData['image'], '',
@ -340,11 +341,9 @@ foreach ($layoutDatas as $layoutData) {
$params['javascript_ajax_page'] = '../../ajax.php'; $params['javascript_ajax_page'] = '../../ajax.php';
$params['disabled_javascript_on_blur_function'] = true; $params['disabled_javascript_on_blur_function'] = true;
$params['print_input_server'] = true; $params['print_input_id_server'] = true;
$params['input_server_id'] = $params['input_id_server_id'] = $params['input_id_server_name'] = 'id_server_id_' . $idLayoutData;
$params['input_server_name'] = 'id_server_name_' . $idLayoutData; $params['input_id_server_value'] = $layoutData['id_metaconsole'];
$params['input_server_value'] =
db_get_value('server_name', 'tmetaconsole_setup', 'id', $layoutData['id_metaconsole']);
$params['metaconsole_enabled'] = true; $params['metaconsole_enabled'] = true;
$params['print_hidden_input_idagent'] = true; $params['print_hidden_input_idagent'] = true;
$params['hidden_input_idagent_name'] = 'id_agent_' . $idLayoutData; $params['hidden_input_idagent_name'] = 'id_agent_' . $idLayoutData;

View File

@ -281,11 +281,8 @@ switch ($activeTab) {
} }
$agentName = get_parameter('agent_' . $id, ''); $agentName = get_parameter('agent_' . $id, '');
if (defined('METACONSOLE')) { if (defined('METACONSOLE')) {
$values['id_metaconsole'] = db_get_value('id', $values['id_metaconsole'] = (int) get_parameter('id_server_id_' . $id, '');
'tmetaconsole_setup', 'server_name', $values['id_agent'] = (int) get_parameter('id_agent_' . $id, 0);
get_parameter('id_server_name_' . $id, ''));
$values['id_agent'] =
(int)get_parameter('id_agent_' . $id, 0);
} }
else { else {
$values['id_agent'] = agents_get_agent_id($agentName); $values['id_agent'] = agents_get_agent_id($agentName);
@ -295,7 +292,7 @@ switch ($activeTab) {
$values['id_layout_linked'] = get_parameter('map_linked_' . $id, 0); $values['id_layout_linked'] = get_parameter('map_linked_' . $id, 0);
if (enterprise_installed()) { 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)); db_process_sql_update('tlayout_data', $values, array('id' => $id));

View File

@ -47,7 +47,8 @@ $table->id = 'wizard_table';
$table->head = array (); $table->head = array ();
if (!defined('METACONSOLE')) { if (!defined('METACONSOLE')) {
$metaconsole_hack = ''; $metaconsole_hack = '';
$table->width = '98%'; $table->width = '100%';
$table->class = 'databox filters';
} }
else { else {
$metaconsole_hack = '../../'; $metaconsole_hack = '../../';
@ -59,21 +60,17 @@ else {
} }
$table->style = array (); $table->style = array ();
if (!defined('METACONSOLE')) {
$table->style[0] = 'font-weight: bold; vertical-align: text-top;'; $table->style[0] = 'font-weight: bold; ';
$table->style[1] = 'font-weight: bold; vertical-align: middle;'; $table->style[1] = 'font-weight: bold; ';
$table->style[2] = 'font-weight: bold; vertical-align: top'; $table->style[2] = 'font-weight: bold; ';
}
else{
$table->style[0] = 'font-weight: bold; ';
$table->style[1] = 'font-weight: bold; ';
$table->style[2] = 'font-weight: bold; ';
}
$table->size = array (); $table->size = array ();
$table->size[0] = "20%"; $table->size[0] = "15%";
$table->size[1] = "20%"; $table->size[1] = "15%";
$table->size[2] = "20%"; $table->size[2] = "15%";
$table->size[3] = "20%"; $table->size[3] = "15%";
$table->align = array(); $table->align = array();
$table->align[0] = 'left'; $table->align[0] = 'left';
@ -183,7 +180,7 @@ if (defined('METACONSOLE')) {
$table->rowstyle["all_2"] = 'display: none;'; $table->rowstyle["all_2"] = 'display: none;';
$table->data["all_2"][0] = __('Servers'); $table->data["all_2"][0] = __('Servers');
$table->data["all_2"][1] = html_meta_print_select_servers(false, $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->rowstyle["all_4"] = 'display: none;';
$table->data["all_4"][0] = __('Agents'); $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); 'id_agents[]', 0, false, '', '', true, true);
$table->data["all_4"][2] = ' <span style="vertical-align: top;">' . $table->data["all_4"][2] = ' <span style="vertical-align: top;">' .
__('Modules') . '</span>'; __('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();">'; 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>"; 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>'; echo '<span id="loading_text" style="display: none;">' . __('Loading...') . '</span>';
?> ?>
<script type="text/javascript"> <script type="text/javascript">
var show_only_enabled_modules = true;
<?php var metaconsole_enabled = <?php echo json_encode(defined('METACONSOLE')); ?>;
if (defined('METACONSOLE')) { var show_only_enabled_modules = true;
echo 'var url_ajax = "../../ajax.php";'; var url_ajax = "ajax.php";
if (metaconsole_enabled) {
url_ajax = "../../ajax.php";
} }
else {
echo 'var url_ajax = "ajax.php";';
}
?>
$(document).ready (function () { $(document).ready (function () {
hidden_rows(); hidden_rows();
@ -314,40 +313,42 @@ $(document).ready (function () {
selected = $("#process_value").val(); selected = $("#process_value").val();
if (selected == <?php echo PROCESS_VALUE_NONE; ?>) { 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 { 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 () { $("#groups").change (function () {
$('#id_agents').attr('disabled', true); $('#id_agents')
$('#id_agents').empty (); .attr('disabled', true)
$('#id_agents').append ($('<option></option>').html($("#loading_text").html())); .empty ()
$('#id_agents').css ("width", "auto"); .css ("width", "auto")
$('#id_agents').css ("max-width", ""); .css ("max-width", "")
.append ($('<option></option>').html($("#loading_text").html()));
var data_params = {"page": "include/ajax/agent", var data_params = {
"get_agents_group": 1, page: "include/ajax/agent",
"id_group": $("#groups").val(), get_agents_group: 1,
<?php id_group: $("#groups").val(),
if (defined('METACONSOLE')) { mode: "json"
echo '"id_server": $("#servers").val(),' . "\n"; };
}
?> if (metaconsole_enabled)
"mode": "json" data_params.id_server = $("#servers").val();
};
jQuery.ajax ({ jQuery.ajax ({
data: data_params, data: data_params,
async: false,
type: 'POST', type: 'POST',
url: url_ajax, url: url_ajax,
timeout: 10000,
dataType: 'json', dataType: 'json',
success: function (data) { success: function (data) {
$('#id_agents').empty (); $('#id_agents').empty();
if (isEmptyObject(data)) { if (isEmptyObject(data)) {
var noneText = $("#none_text").html(); //Trick for catch the translate text. 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'); $('#id_agents').removeAttr('disabled');
return;
} }
}); });
return;
}); });
$("#id_agents").change ( function() { $("#id_agents").change ( function() {
if ($("#hidden-item_per_agent_test").val() == 0) if ($("#hidden-item_per_agent_test").val() == 0) {
agent_changed_by_multiple_agents( var options = {};
<?php
if (defined('METACONSOLE')) { if (metaconsole_enabled) {
echo "{'data': {'id_server': 'servers', 'metaconsole': 1, 'homedir': '../../'}}"; options = {
'data': {
'id_server': 'servers',
'metaconsole': 1,
'homedir': '../../'
}
};
} }
?>
); agent_changed_by_multiple_agents(options);
}
}); });
<?php if (metaconsole_enabled) {
if (defined('METACONSOLE')) { metaconsole_init();
echo "metaconsole_init();";
} }
?>
$("select[name='kind_relationship']").change(function() { $("select[name='kind_relationship']").change(function() {
@ -500,7 +498,7 @@ function item_per_agent_change(itemPerAgent) {
} }
function metaconsole_init() { function metaconsole_init() {
$("#groups").trigger('change'); $("#groups").change();
} }
</script> </script>
<style type="text/css"> <style type="text/css">

View File

@ -61,7 +61,7 @@ $table->head = array ();
$table->head[0] = __('Name'); $table->head[0] = __('Name');
$table->head[1] = __('Status'); $table->head[1] = __('Status');
$table->head[2] = __('Type'); $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[4] = __('Modules');
$table->head[5] = __('Lag') . ui_print_help_tip (__("Avg. Delay(sec)/Modules delayed"), true); $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); $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){ if ($server["master"] == 1){
$data[2] .= ui_print_help_tip (__("This is a master server"), true); $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']) { switch ($server['type']) {
case "snmp": case "snmp":
case "event": case "event":
$data[3] = 'N/A'; $data[3] = $server["version"];
$data[4] = 'N/A'; $data[4] = 'N/A';
$data[5] = 'N/A'; $data[5] = 'N/A';
break; break;
case "export": 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[4] = $server["modules"] . " ".__('of')." ". $server["modules_total"];
$data[5] = 'N/A'; $data[5] = 'N/A';
break; break;
default: 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[4] = $server["modules"] . " ".__('of')." ". $server["modules_total"];
$data[5] = '<span style="white-space:nowrap;">' . $data[5] = '<span style="white-space:nowrap;">' .
$server["lag_txt"] . '</span>'; $server["lag_txt"] . '</span>';

View File

@ -495,6 +495,17 @@ $table->data[$row][1] = html_print_input_text ('custom_graph_widht',
$row++; $row++;
$table->data[$row][0] = __('Render data of module type is proc.');
$table->data[$row][1] = __('Yes') . '&nbsp;' .
html_print_radio_button ('render_proc', 1, '',
$config["render_proc"], true) .
'&nbsp;&nbsp;';
$table->data[$row][1] .= __('No') . '&nbsp;' .
html_print_radio_button ('render_proc', 0, '',
$config["render_proc"], true);
$row++;
echo '<form id="form_setup" method="post">'; echo '<form id="form_setup" method="post">';
html_print_input_hidden ('update_config', 1); html_print_input_hidden ('update_config', 1);

View File

@ -503,7 +503,7 @@ if ($create_alert || $update_alert) {
/* SNMP alert filters */ /* 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 // Description
echo '<tr><td class="datos" valign="top">'.__('Description').'</td><td class="datos">'; echo '<tr><td class="datos" valign="top">'.__('Description').'</td><td class="datos">';
@ -863,7 +863,8 @@ else {
$offset = (int) get_parameter ('offset'); $offset = (int) get_parameter ('offset');
$table_filter = new stdClass(); $table_filter = new stdClass();
$table_filter->width = "98%"; $table_filter->width = "100%";
$table_filter->class = "databox filters";
$table_filter->data = array(); $table_filter->data = array();
$table_filter->data[0][0] = __('Free search') . ui_print_help_tip( $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); __('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 .= '</div>';
$form_filter .= '</form>'; $form_filter .= '</form>';
echo "<br>"; //echo "<br>";
ui_toggle($form_filter,__('Alert SNMP control filter'), __('Toggle filter(s)')); ui_toggle($form_filter,__('Alert SNMP control filter'), __('Toggle filter(s)'));
$filter = array(); $filter = array();
@ -948,7 +949,7 @@ else {
//Overview //Overview
if ($count == 0) { if ($count == 0) {
$result = array (); $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 { else {
ui_pagination ($count, $url_pagination); ui_pagination ($count, $url_pagination);
@ -965,8 +966,8 @@ else {
$table->size = array (); $table->size = array ();
$table->cellpadding = 4; $table->cellpadding = 4;
$table->cellspacing = 4; $table->cellspacing = 4;
$table->width = "98%"; $table->width = "100%";
$table->class= "databox"; $table->class= "databox data";
$table->align = array (); $table->align = array ();
$table->head[0] = '<span title="' . __('Position') . '">' . __('P.') . '</span>'; $table->head[0] = '<span title="' . __('Position') . '">' . __('P.') . '</span>';

View File

@ -58,30 +58,31 @@ if ($generate_trap) {
} }
$traps_generator = '<form method="POST" action="index.php?sec=snmpconsole&sec2=godmode/snmpconsole/snmp_trap_generator">'; $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->size = array ();
$table->data = array (); $table->data = array ();
$table->data[0][0] = __('Host address'); $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[0][1] = html_print_input_text('snmp_host_address', $snmp_host_address, '', 50, 255, true);
$table->data[1][0] = __('Community'); $table->data[0][2] = __('Community');
$table->data[1][1] = html_print_input_text('snmp_community', $snmp_community, '', 50, 255, true); $table->data[0][3] = html_print_input_text('snmp_community', $snmp_community, '', 50, 255, true);
$table->data[2][0] = __('Enterprise String'); $table->data[2][0] = __('Enterprise String');
$table->data[2][1] = html_print_input_text('snmp_oid', $snmp_oid, '', 50, 255, true); $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][0] = __('SNMP Agent');
$table->data[3][1] = html_print_input_text('snmp_agent', $snmp_agent, '', 50, 255, true); $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[3][2] = __('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][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)'); $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[3][3] = 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);
$traps_generator .= html_print_table($table, true); $traps_generator .= html_print_table($table, true);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 447 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 385 B

BIN
pandora_console/images/agent.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 445 B

BIN
pandora_console/images/agent_critical.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 422 B

After

Width:  |  Height:  |  Size: 435 B

BIN
pandora_console/images/agent_mc.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 443 B

After

Width:  |  Height:  |  Size: 445 B

BIN
pandora_console/images/agent_notinit.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 430 B

After

Width:  |  Height:  |  Size: 438 B

BIN
pandora_console/images/agent_ok.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 431 B

After

Width:  |  Height:  |  Size: 438 B

BIN
pandora_console/images/agent_unknown.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 430 B

After

Width:  |  Height:  |  Size: 430 B

BIN
pandora_console/images/agent_warning.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 414 B

After

Width:  |  Height:  |  Size: 433 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 446 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 504 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 396 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 514 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 461 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 354 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 364 B

BIN
pandora_console/images/bricks.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 445 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 B

BIN
pandora_console/images/chart.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 489 B

After

Width:  |  Height:  |  Size: 532 B

BIN
pandora_console/images/chart_curve.disabled.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 490 B

After

Width:  |  Height:  |  Size: 535 B

BIN
pandora_console/images/chart_curve.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 489 B

After

Width:  |  Height:  |  Size: 532 B

BIN
pandora_console/images/collapse.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 472 B

After

Width:  |  Height:  |  Size: 505 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 357 B

After

Width:  |  Height:  |  Size: 411 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 345 B

After

Width:  |  Height:  |  Size: 408 B

BIN
pandora_console/images/copy_visualmap.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 411 B

BIN
pandora_console/images/create_file.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 394 B

After

Width:  |  Height:  |  Size: 429 B

BIN
pandora_console/images/csv.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 478 B

BIN
pandora_console/images/csv_mc.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 408 B

After

Width:  |  Height:  |  Size: 478 B

BIN
pandora_console/images/custom_field.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 379 B

After

Width:  |  Height:  |  Size: 425 B

BIN
pandora_console/images/custom_field_col.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 379 B

After

Width:  |  Height:  |  Size: 427 B

BIN
pandora_console/images/dashboard.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 401 B

After

Width:  |  Height:  |  Size: 417 B

BIN
pandora_console/images/dashboard_col.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 401 B

After

Width:  |  Height:  |  Size: 420 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 404 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 404 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 404 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 402 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 458 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 479 B

Some files were not shown because too many files have changed in this diff Show More