Merge branch 'develop' into ent-13035-cambiar-comportamiento-del-mecanismo-de-loginhash-meta
@ -528,23 +528,6 @@ ServerTokens Prod
|
|||||||
|
|
||||||
EO_CONFIG_F
|
EO_CONFIG_F
|
||||||
|
|
||||||
# Add ws proxy options to apache.
|
|
||||||
cat >> /etc/httpd/conf.modules.d/00-proxy.conf << 'EO_HTTPD_MOD'
|
|
||||||
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
|
|
||||||
|
|
||||||
EO_HTTPD_MOD
|
|
||||||
|
|
||||||
cat >> /etc/httpd/conf.d/wstunnel.conf << 'EO_HTTPD_WSTUNNEL'
|
|
||||||
ProxyRequests Off
|
|
||||||
<Proxy *>
|
|
||||||
Require all granted
|
|
||||||
</Proxy>
|
|
||||||
|
|
||||||
ProxyPass /ws ws://127.0.0.1:8080
|
|
||||||
ProxyPassReverse /ws ws://127.0.0.1:8080
|
|
||||||
|
|
||||||
EO_HTTPD_WSTUNNEL
|
|
||||||
|
|
||||||
# Temporal quitar htaccess
|
# Temporal quitar htaccess
|
||||||
sed -i -e "s/php_flag engine off//g" $PANDORA_CONSOLE/images/.htaccess
|
sed -i -e "s/php_flag engine off//g" $PANDORA_CONSOLE/images/.htaccess
|
||||||
sed -i -e "s/php_flag engine off//g" $PANDORA_CONSOLE/attachment/.htaccess
|
sed -i -e "s/php_flag engine off//g" $PANDORA_CONSOLE/attachment/.htaccess
|
||||||
@ -691,16 +674,6 @@ EO_LRA
|
|||||||
chmod 0644 /etc/logrotate.d/pandora_server
|
chmod 0644 /etc/logrotate.d/pandora_server
|
||||||
chmod 0644 /etc/logrotate.d/pandora_agent
|
chmod 0644 /etc/logrotate.d/pandora_agent
|
||||||
|
|
||||||
# Add websocket engine start script.
|
|
||||||
mv /var/www/html/pandora_console/pandora_websocket_engine /etc/init.d/
|
|
||||||
chmod +x /etc/init.d/pandora_websocket_engine
|
|
||||||
|
|
||||||
# Start Websocket engine
|
|
||||||
/etc/init.d/pandora_websocket_engine start &>> $LOGFILE
|
|
||||||
|
|
||||||
# Configure websocket to be started at start.
|
|
||||||
systemctl enable pandora_websocket_engine &>> $LOGFILE
|
|
||||||
|
|
||||||
# Enable pandora ha service
|
# Enable pandora ha service
|
||||||
systemctl enable pandora_server --now &>> $LOGFILE
|
systemctl enable pandora_server --now &>> $LOGFILE
|
||||||
execute_cmd "systemctl start pandora_server" "Starting Pandora FMS Server"
|
execute_cmd "systemctl start pandora_server" "Starting Pandora FMS Server"
|
||||||
|
@ -394,8 +394,8 @@ console_dependencies=" \
|
|||||||
mod_ssl \
|
mod_ssl \
|
||||||
libzstd \
|
libzstd \
|
||||||
openldap-clients \
|
openldap-clients \
|
||||||
https://firefly.pandorafms.com/centos8/chromium-110.0.5481.177-1.el7.x86_64.rpm \
|
https://firefly.pandorafms.com/centos8/chromium-122.0.6261.128-1.el8.x86_64.rpm \
|
||||||
https://firefly.pandorafms.com/centos8/chromium-common-110.0.5481.177-1.el7.x86_64.rpm \
|
https://firefly.pandorafms.com/centos8/chromium-common-122.0.6261.128-1.el8.x86_64.rpm \
|
||||||
https://firefly.pandorafms.com/centos8/perl-Net-Telnet-3.04-1.el8.noarch.rpm \
|
https://firefly.pandorafms.com/centos8/perl-Net-Telnet-3.04-1.el8.noarch.rpm \
|
||||||
https://firefly.pandorafms.com/centos8/pandora_gotty-1.0-1.el8.x86_64.rpm \
|
https://firefly.pandorafms.com/centos8/pandora_gotty-1.0-1.el8.x86_64.rpm \
|
||||||
https://firefly.pandorafms.com/centos8/pandorafms_made-0.1.0-1.el8.x86_64.rpm \
|
https://firefly.pandorafms.com/centos8/pandorafms_made-0.1.0-1.el8.x86_64.rpm \
|
||||||
@ -639,23 +639,6 @@ ServerTokens Prod
|
|||||||
|
|
||||||
EO_CONFIG_F
|
EO_CONFIG_F
|
||||||
|
|
||||||
# Add ws proxy options to apache.
|
|
||||||
cat >> /etc/httpd/conf.modules.d/00-proxy.conf << 'EO_HTTPD_MOD'
|
|
||||||
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
|
|
||||||
|
|
||||||
EO_HTTPD_MOD
|
|
||||||
|
|
||||||
cat >> /etc/httpd/conf.d/wstunnel.conf << 'EO_HTTPD_WSTUNNEL'
|
|
||||||
ProxyRequests Off
|
|
||||||
<Proxy *>
|
|
||||||
Require all granted
|
|
||||||
</Proxy>
|
|
||||||
|
|
||||||
ProxyPass /ws ws://127.0.0.1:8080
|
|
||||||
ProxyPassReverse /ws ws://127.0.0.1:8080
|
|
||||||
|
|
||||||
EO_HTTPD_WSTUNNEL
|
|
||||||
|
|
||||||
# Temporal quitar htaccess
|
# Temporal quitar htaccess
|
||||||
sed -i -e "s/php_flag engine off//g" $PANDORA_CONSOLE/images/.htaccess
|
sed -i -e "s/php_flag engine off//g" $PANDORA_CONSOLE/images/.htaccess
|
||||||
sed -i -e "s/php_flag engine off//g" $PANDORA_CONSOLE/attachment/.htaccess
|
sed -i -e "s/php_flag engine off//g" $PANDORA_CONSOLE/attachment/.htaccess
|
||||||
@ -813,16 +796,6 @@ EO_LRA
|
|||||||
chmod 0644 /etc/logrotate.d/pandora_server
|
chmod 0644 /etc/logrotate.d/pandora_server
|
||||||
chmod 0644 /etc/logrotate.d/pandora_agent
|
chmod 0644 /etc/logrotate.d/pandora_agent
|
||||||
|
|
||||||
# Add websocket engine start script.
|
|
||||||
mv /var/www/html/pandora_console/pandora_websocket_engine /etc/init.d/ &>> "$LOGFILE"
|
|
||||||
chmod +x /etc/init.d/pandora_websocket_engine &>> "$LOGFILE"
|
|
||||||
|
|
||||||
# Start Websocket engine
|
|
||||||
/etc/init.d/pandora_websocket_engine start &>> "$LOGFILE"
|
|
||||||
|
|
||||||
# Configure websocket to be started at start.
|
|
||||||
systemctl enable pandora_websocket_engine &>> "$LOGFILE"
|
|
||||||
|
|
||||||
# Enable pandora ha service
|
# Enable pandora ha service
|
||||||
systemctl enable pandora_server --now &>> "$LOGFILE"
|
systemctl enable pandora_server --now &>> "$LOGFILE"
|
||||||
execute_cmd "/etc/init.d/pandora_server start" "Starting Pandora FMS Server"
|
execute_cmd "/etc/init.d/pandora_server start" "Starting Pandora FMS Server"
|
||||||
|
@ -386,8 +386,8 @@ console_dependencies=" \
|
|||||||
mod_ssl \
|
mod_ssl \
|
||||||
libzstd \
|
libzstd \
|
||||||
openldap-clients \
|
openldap-clients \
|
||||||
https://firefly.pandorafms.com/centos8/chromium-110.0.5481.177-1.el7.x86_64.rpm \
|
https://firefly.pandorafms.com/centos8/chromium-122.0.6261.128-1.el8.x86_64.rpm \
|
||||||
https://firefly.pandorafms.com/centos8/chromium-common-110.0.5481.177-1.el7.x86_64.rpm \
|
https://firefly.pandorafms.com/centos8/chromium-common-122.0.6261.128-1.el8.x86_64.rpm \
|
||||||
https://firefly.pandorafms.com/centos8/pandora_gotty-1.0-1.el8.x86_64.rpm \
|
https://firefly.pandorafms.com/centos8/pandora_gotty-1.0-1.el8.x86_64.rpm \
|
||||||
https://firefly.pandorafms.com/centos8/pandorafms_made-0.1.0-1.el8.x86_64.rpm "
|
https://firefly.pandorafms.com/centos8/pandorafms_made-0.1.0-1.el8.x86_64.rpm "
|
||||||
execute_cmd "dnf install -y $console_dependencies" "Installing Pandora FMS Console dependencies"
|
execute_cmd "dnf install -y $console_dependencies" "Installing Pandora FMS Console dependencies"
|
||||||
|
@ -371,7 +371,7 @@ ln -s /usr/bin/fping /usr/sbin/fping &>> "$LOGFILE"
|
|||||||
|
|
||||||
# Chrome
|
# Chrome
|
||||||
rm -f /usr/bin/chromium-browser &>> "$LOGFILE"
|
rm -f /usr/bin/chromium-browser &>> "$LOGFILE"
|
||||||
CHROME_VERSION=google-chrome-stable_110.0.5481.177-1_amd64.deb
|
CHROME_VERSION=google-chrome-stable_122.0.6261.128-1_amd64.deb
|
||||||
execute_cmd "wget https://dl.google.com/linux/deb/pool/main/g/google-chrome-stable/${CHROME_VERSION}" "Downloading google chrome"
|
execute_cmd "wget https://dl.google.com/linux/deb/pool/main/g/google-chrome-stable/${CHROME_VERSION}" "Downloading google chrome"
|
||||||
execute_cmd "apt install -y ./${CHROME_VERSION}" "Intalling google chrome"
|
execute_cmd "apt install -y ./${CHROME_VERSION}" "Intalling google chrome"
|
||||||
execute_cmd "ln -s /usr/bin/google-chrome /usr/bin/chromium-browser" "Creating /usr/bin/chromium-browser Symlink"
|
execute_cmd "ln -s /usr/bin/google-chrome /usr/bin/chromium-browser" "Creating /usr/bin/chromium-browser Symlink"
|
||||||
@ -601,6 +601,7 @@ EOF_PARAM
|
|||||||
|
|
||||||
a2enmod ssl &>> "$LOGFILE"
|
a2enmod ssl &>> "$LOGFILE"
|
||||||
a2enmod headers &>> "$LOGFILE"
|
a2enmod headers &>> "$LOGFILE"
|
||||||
|
a2enmod rewrite &>> "$LOGFILE"
|
||||||
a2enconf ssl-params &>> "$LOGFILE"
|
a2enconf ssl-params &>> "$LOGFILE"
|
||||||
a2ensite default-ssl &>> "$LOGFILE"
|
a2ensite default-ssl &>> "$LOGFILE"
|
||||||
a2enconf ssl-params &>> "$LOGFILE"
|
a2enconf ssl-params &>> "$LOGFILE"
|
||||||
@ -648,17 +649,6 @@ ServerTokens Prod
|
|||||||
</Directory>
|
</Directory>
|
||||||
EO_CONFIG_F
|
EO_CONFIG_F
|
||||||
|
|
||||||
#Enable quickshell proxy
|
|
||||||
cat >> /etc/apache2/mods-enabled/00-proxy.conf << 'EO_HTTPD_WSTUNNEL'
|
|
||||||
ProxyRequests Off
|
|
||||||
<Proxy *>
|
|
||||||
Require all granted
|
|
||||||
</Proxy>
|
|
||||||
|
|
||||||
ProxyPass /ws ws://127.0.0.1:8080
|
|
||||||
ProxyPassReverse /ws ws://127.0.0.1:8080
|
|
||||||
EO_HTTPD_WSTUNNEL
|
|
||||||
|
|
||||||
# Fixing console permissions
|
# Fixing console permissions
|
||||||
chmod 600 $PANDORA_CONSOLE/include/config.php &>> "$LOGFILE"
|
chmod 600 $PANDORA_CONSOLE/include/config.php &>> "$LOGFILE"
|
||||||
chown -R www-data:www-data $PANDORA_CONSOLE &>> "$LOGFILE"
|
chown -R www-data:www-data $PANDORA_CONSOLE &>> "$LOGFILE"
|
||||||
@ -813,16 +803,6 @@ EO_LRA
|
|||||||
chmod 0644 /etc/logrotate.d/pandora_server
|
chmod 0644 /etc/logrotate.d/pandora_server
|
||||||
chmod 0644 /etc/logrotate.d/pandora_agent
|
chmod 0644 /etc/logrotate.d/pandora_agent
|
||||||
|
|
||||||
# Add websocket engine start script.
|
|
||||||
mv /var/www/html/pandora_console/pandora_websocket_engine /etc/init.d/ &>> "$LOGFILE"
|
|
||||||
chmod +x /etc/init.d/pandora_websocket_engine &>> "$LOGFILE"
|
|
||||||
|
|
||||||
# Start Websocket engine
|
|
||||||
/etc/init.d/pandora_websocket_engine start &>> "$LOGFILE"
|
|
||||||
|
|
||||||
# Configure websocket to be started at start.
|
|
||||||
systemctl enable pandora_websocket_engine &>> "$LOGFILE"
|
|
||||||
|
|
||||||
# Enable pandora ha service
|
# Enable pandora ha service
|
||||||
execute_cmd "/etc/init.d/pandora_server start" "Starting Pandora FMS Server"
|
execute_cmd "/etc/init.d/pandora_server start" "Starting Pandora FMS Server"
|
||||||
systemctl enable pandora_server &>> "$LOGFILE"
|
systemctl enable pandora_server &>> "$LOGFILE"
|
||||||
|
@ -234,16 +234,6 @@ module_description Number of cron task files
|
|||||||
module_unit files
|
module_unit files
|
||||||
module_end
|
module_end
|
||||||
|
|
||||||
# This module /var/log/syslog file, under the module name "syslog"
|
|
||||||
# And search for "ssh" string into it, sending only that information.
|
|
||||||
module_begin
|
|
||||||
module_name Syslog
|
|
||||||
module_description Search for ssh string into /var/log/syslog file
|
|
||||||
module_type log
|
|
||||||
module_regexp /var/log/syslog
|
|
||||||
module_pattern ssh
|
|
||||||
module_end
|
|
||||||
|
|
||||||
#Hardening plugin for security compliance analysis. Enable to use it.
|
#Hardening plugin for security compliance analysis. Enable to use it.
|
||||||
#module_begin
|
#module_begin
|
||||||
#module_plugin /usr/share/pandora_agent/plugins/pandora_hardening -t 150
|
#module_plugin /usr/share/pandora_agent/plugins/pandora_hardening -t 150
|
||||||
@ -316,9 +306,9 @@ module_plugin pandora_df
|
|||||||
|
|
||||||
# Extraction module example
|
# Extraction module example
|
||||||
#module_begin
|
#module_begin
|
||||||
#module_name Collector
|
#module_name Syslog
|
||||||
#module_description Logs extraction module
|
#module_description Gets all logs from system messages
|
||||||
#module_type log
|
#module_type log
|
||||||
#module_regexp /var/log/logfile.log
|
#module_regexp /var/log/messages
|
||||||
#module_pattern .*
|
#module_pattern .*
|
||||||
#module_end
|
#module_end
|
@ -354,11 +354,11 @@ module_plugin cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\df.vbs"
|
|||||||
#module_description Postcondition test module
|
#module_description Postcondition test module
|
||||||
#module_end
|
#module_end
|
||||||
|
|
||||||
# Example of collector module
|
# Logs extraction
|
||||||
#module_begin
|
#module_begin
|
||||||
#module_name Collector
|
#module_name Syslog
|
||||||
#module_description Logs extraction module
|
#module_description Gets all logs from system messages
|
||||||
#module_type log
|
#module_type log
|
||||||
#module_regexp /var/log/logfile.log
|
#module_regexp C:\server\logs\messages
|
||||||
#module_pattern .*
|
#module_pattern .*
|
||||||
#module_end
|
#module_end
|
@ -1,6 +1,9 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
import wmi, sys, winreg, os, subprocess, json, re
|
import wmi, sys, winreg, os, subprocess, json, re
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
|
import argparse
|
||||||
|
import configparser
|
||||||
|
|
||||||
## Define modules
|
## Define modules
|
||||||
modules=[]
|
modules=[]
|
||||||
@ -333,22 +336,19 @@ def check_password_enforcement():
|
|||||||
print("Failed to check password enforcement for users.", file=sys.stderr)
|
print("Failed to check password enforcement for users.", file=sys.stderr)
|
||||||
|
|
||||||
|
|
||||||
def check_login_audit_policy():
|
def check_login_audit_policy(auditpol_logon_category, auditpol_logon_success_conf, auditpol_logon_noaudit_conf):
|
||||||
try:
|
try:
|
||||||
# Run the auditpol command to check the audit policy for Logon/Logoff
|
# Run the auditpol command to check the audit policy for Logon/Logoff
|
||||||
cmd_command = "auditpol /get /subcategory:Logon"
|
cmd_command = f'auditpol /get /subcategory:"{auditpol_logon_category}"'
|
||||||
result = subprocess.run(cmd_command, shell=True, capture_output=True, text=True, check=True)
|
result = subprocess.run(cmd_command, shell=True, capture_output=True, text=False, check=True)
|
||||||
last_line = result.stdout.strip().split('\n')[-1]
|
stdout = result.stdout.decode('cp850', errors='replace')
|
||||||
|
last_line = stdout.strip().split('\n')[-1]
|
||||||
cleaned_line = re.sub(' +', ' ', last_line)
|
cleaned_line = re.sub(' +', ' ', last_line)
|
||||||
|
|
||||||
# Interpret the result
|
# Interpret the result
|
||||||
if "Success and Failure" in result.stdout:
|
if auditpol_logon_success_conf in stdout:
|
||||||
result = 1
|
result = 1
|
||||||
elif "Aciertos y errores" in result.stdout:
|
elif auditpol_logon_noaudit_conf in stdout:
|
||||||
result = 1
|
|
||||||
elif "No Auditing" in result.stdout:
|
|
||||||
result = 0
|
|
||||||
elif "Sin auditoría" in result.stdout:
|
|
||||||
result = 0
|
result = 0
|
||||||
else:
|
else:
|
||||||
print("Unable to determine audit policy for Logon/Logoff events.", file=sys.stderr)
|
print("Unable to determine audit policy for Logon/Logoff events.", file=sys.stderr)
|
||||||
@ -366,14 +366,38 @@ def check_login_audit_policy():
|
|||||||
print("Failed to check audit policy using auditpol command.", file=sys.stderr)
|
print("Failed to check audit policy using auditpol command.", file=sys.stderr)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
def parse_parameter(config=None, key="", default=""):
|
||||||
|
try:
|
||||||
|
return config.get("CONF", key)
|
||||||
|
except Exception as e:
|
||||||
|
return default
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
||||||
|
# Parse arguments
|
||||||
|
parser = argparse.ArgumentParser(description= "", formatter_class=argparse.RawTextHelpFormatter)
|
||||||
|
parser.add_argument('--conf', help='Path to configuration file', metavar='<conf_file>', required=False)
|
||||||
|
args = parser.parse_args()
|
||||||
|
config = configparser.ConfigParser()
|
||||||
|
|
||||||
|
if(args.conf):
|
||||||
|
try:
|
||||||
|
with open(args.conf, 'r', encoding='utf-8') as f:
|
||||||
|
content = f.read()
|
||||||
|
config.read_string('[CONF]\n' + content)
|
||||||
|
except Exception as e:
|
||||||
|
print("Error while reading configuration file, using default values: "+str(e), file=sys.stderr)
|
||||||
|
|
||||||
|
auditpol_logon_category = parse_parameter(config, "auditpol_logon_category", "Logon")
|
||||||
|
auditpol_logon_success_conf = parse_parameter(config, "auditpol_logon_success_conf", "Success and Failure")
|
||||||
|
auditpol_logon_noaudit_conf = parse_parameter(config, "auditpol_logon_noaudit_conf", "No Auditing")
|
||||||
|
|
||||||
check_antivirus_status()
|
check_antivirus_status()
|
||||||
check_locksreen_enables()
|
check_locksreen_enables()
|
||||||
get_windows_update_info()
|
get_windows_update_info()
|
||||||
is_firewall_enabled()
|
is_firewall_enabled()
|
||||||
check_password_enforcement()
|
check_password_enforcement()
|
||||||
check_login_audit_policy()
|
check_login_audit_policy(auditpol_logon_category, auditpol_logon_success_conf, auditpol_logon_noaudit_conf)
|
||||||
|
|
||||||
for module in modules:
|
for module in modules:
|
||||||
print_module(module, True)
|
print_module(module, True)
|
||||||
|
@ -163,26 +163,16 @@ module_end
|
|||||||
#module_absoluteinterval 7d
|
#module_absoluteinterval 7d
|
||||||
#module_end
|
#module_end
|
||||||
|
|
||||||
# This module parses /var/log/syslog file, under the module name "syslog"
|
|
||||||
# And search for "ssh" string into it, sending only that information.
|
|
||||||
module_begin
|
|
||||||
module_name Syslog
|
|
||||||
module_description Search for ssh string into /var/log/syslog file
|
|
||||||
module_type log
|
|
||||||
module_regexp /var/log/syslog
|
|
||||||
module_pattern ssh
|
|
||||||
module_end
|
|
||||||
|
|
||||||
# Plugin example
|
# Plugin example
|
||||||
|
|
||||||
# Plugin for inventory on the agent.
|
# Plugin for inventory on the agent.
|
||||||
# module_plugin inventory 1 cpu ram video nic hd cdrom software
|
# module_plugin inventory 1 cpu ram video nic hd cdrom software
|
||||||
|
|
||||||
# Extraction module example
|
# Logs extraction
|
||||||
#module_begin
|
#module_begin
|
||||||
#module_name Collector
|
#module_name Syslog
|
||||||
#module_description Logs extraction module
|
#module_description Gets all logs from system messages
|
||||||
#module_type log
|
#module_type log
|
||||||
#module_regexp /var/log/logfile.log
|
#module_regexp /var/log/messages
|
||||||
#module_pattern .*
|
#module_pattern .*
|
||||||
#module_end
|
#module_end
|
@ -378,26 +378,16 @@ module_end
|
|||||||
#module_absoluteinterval 7d
|
#module_absoluteinterval 7d
|
||||||
#module_end
|
#module_end
|
||||||
|
|
||||||
# This module parses /var/log/syslog file, under the module name "syslog"
|
|
||||||
# And search for "ssh" string into it, sending only that information.
|
|
||||||
module_begin
|
|
||||||
module_name Syslog
|
|
||||||
module_description Log collection modules
|
|
||||||
module_type log
|
|
||||||
module_regexp /var/log/syslog
|
|
||||||
module_pattern ssh
|
|
||||||
module_end
|
|
||||||
|
|
||||||
# Plugin example
|
# Plugin example
|
||||||
|
|
||||||
# Plugin for inventory on the agent.
|
# Plugin for inventory on the agent.
|
||||||
# module_plugin inventory 1 cpu ram video nic hd cdrom software
|
# module_plugin inventory 1 cpu ram video nic hd cdrom software
|
||||||
|
|
||||||
# Extraction module example
|
# Logs extraction
|
||||||
#module_begin
|
#module_begin
|
||||||
#module_name Collector
|
#module_name Syslog
|
||||||
#module_description Logs extraction module
|
#module_description Gets all logs from system messages
|
||||||
#module_type log
|
#module_type log
|
||||||
#module_regexp /var/log/logfile.log
|
#module_regexp /var/log/messages
|
||||||
#module_pattern .*
|
#module_pattern .*
|
||||||
#module_end
|
#module_end
|
@ -1,5 +1,5 @@
|
|||||||
package: pandorafms-agent-unix
|
package: pandorafms-agent-unix
|
||||||
Version: 7.0NG.776-240402
|
Version: 7.0NG.776-240415
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Section: admin
|
Section: admin
|
||||||
|
@ -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="7.0NG.776-240402"
|
pandora_version="7.0NG.776-240415"
|
||||||
|
|
||||||
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
|
||||||
|
@ -277,4 +277,10 @@ module_plugin grep_log /var/log/auth.log Syslog sshd
|
|||||||
|
|
||||||
# Log collection modules. Only for enterprise version, this will collect log files for forensic analysis.
|
# Log collection modules. Only for enterprise version, this will collect log files for forensic analysis.
|
||||||
# This is for LOG monitoring, only on enterprise version
|
# This is for LOG monitoring, only on enterprise version
|
||||||
#module_plugin grep_log_module /var/log/messages Syslog \.\*
|
#module_begin
|
||||||
|
#module_name Syslog
|
||||||
|
#module_description Gets all logs from system messages
|
||||||
|
#module_type log
|
||||||
|
#module_regexp /var/log/messages
|
||||||
|
#module_pattern .*
|
||||||
|
#module_end
|
||||||
|
@ -270,6 +270,9 @@ module_plugin pandora_netusage
|
|||||||
# Service autodiscovery plugin
|
# Service autodiscovery plugin
|
||||||
module_plugin autodiscover --default
|
module_plugin autodiscover --default
|
||||||
|
|
||||||
|
# This plugin runs several security checks in a Linux system
|
||||||
|
# module_plugin perl /usr/share/pandora_agent/plugins/pandora_security_check --conf /usr/share/pandora_agent/plugins/pandora_security_check.conf
|
||||||
|
|
||||||
# Plugin for inventory on the agent.
|
# Plugin for inventory on the agent.
|
||||||
# module_plugin inventory 1 cpu ram video nic hd cdrom software init_services filesystem users route
|
# module_plugin inventory 1 cpu ram video nic hd cdrom software init_services filesystem users route
|
||||||
|
|
||||||
@ -322,12 +325,3 @@ module_end
|
|||||||
#module_plugin /usr/share/pandora_agent/plugins/pandora_hardening -t 150
|
#module_plugin /usr/share/pandora_agent/plugins/pandora_hardening -t 150
|
||||||
#module_absoluteinterval 7d
|
#module_absoluteinterval 7d
|
||||||
#module_end
|
#module_end
|
||||||
|
|
||||||
# Extraction module example
|
|
||||||
#module_begin
|
|
||||||
#module_name Collector
|
|
||||||
#module_description Logs extraction module
|
|
||||||
#module_type log
|
|
||||||
#module_regexp /var/log/logfile.log
|
|
||||||
#module_pattern .*
|
|
||||||
#module_end
|
|
@ -1039,7 +1039,7 @@ my $Sem = undef;
|
|||||||
my $ThreadSem = undef;
|
my $ThreadSem = undef;
|
||||||
|
|
||||||
use constant AGENT_VERSION => '7.0NG.776';
|
use constant AGENT_VERSION => '7.0NG.776';
|
||||||
use constant AGENT_BUILD => '240402';
|
use constant AGENT_BUILD => '240415';
|
||||||
|
|
||||||
# Agent log default file size maximum and instances
|
# Agent log default file size maximum and instances
|
||||||
use constant DEFAULT_MAX_LOG_SIZE => 600000;
|
use constant DEFAULT_MAX_LOG_SIZE => 600000;
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
%global __os_install_post %{nil}
|
%global __os_install_post %{nil}
|
||||||
%define name pandorafms_agent_linux
|
%define name pandorafms_agent_linux
|
||||||
%define version 7.0NG.776
|
%define version 7.0NG.776
|
||||||
%define release 240402
|
%define release 240415
|
||||||
|
|
||||||
Summary: Pandora FMS Linux agent, PERL version
|
Summary: Pandora FMS Linux agent, PERL version
|
||||||
Name: %{name}
|
Name: %{name}
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
%define name pandorafms_agent_linux_bin
|
%define name pandorafms_agent_linux_bin
|
||||||
%define source_name pandorafms_agent_linux
|
%define source_name pandorafms_agent_linux
|
||||||
%define version 7.0NG.776
|
%define version 7.0NG.776
|
||||||
%define release 240402
|
%define release 240415
|
||||||
%define debug_package %{nil}
|
%define debug_package %{nil}
|
||||||
|
|
||||||
Summary: Pandora FMS Linux agent, binary version
|
Summary: Pandora FMS Linux agent, binary version
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
%define name pandorafms_agent_linux_bin
|
%define name pandorafms_agent_linux_bin
|
||||||
%define source_name pandorafms_agent_linux
|
%define source_name pandorafms_agent_linux
|
||||||
%define version 7.0NG.776
|
%define version 7.0NG.776
|
||||||
%define release 240402
|
%define release 240415
|
||||||
%define debug_package %{nil}
|
%define debug_package %{nil}
|
||||||
|
|
||||||
Summary: Pandora FMS Linux agent, binary version
|
Summary: Pandora FMS Linux agent, binary version
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
%define name pandorafms_agent_linux_bin
|
%define name pandorafms_agent_linux_bin
|
||||||
%define source_name pandorafms_agent_linux
|
%define source_name pandorafms_agent_linux
|
||||||
%define version 7.0NG.776
|
%define version 7.0NG.776
|
||||||
%define release 240402
|
%define release 240415
|
||||||
|
|
||||||
Summary: Pandora FMS Linux agent, binary version
|
Summary: Pandora FMS Linux agent, binary version
|
||||||
Name: %{name}
|
Name: %{name}
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
%global __os_install_post %{nil}
|
%global __os_install_post %{nil}
|
||||||
%define name pandorafms_agent_linux
|
%define name pandorafms_agent_linux
|
||||||
%define version 7.0NG.776
|
%define version 7.0NG.776
|
||||||
%define release 240402
|
%define release 240415
|
||||||
|
|
||||||
Summary: Pandora FMS Linux agent, PERL version
|
Summary: Pandora FMS Linux agent, PERL version
|
||||||
Name: %{name}
|
Name: %{name}
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
# **********************************************************************
|
# **********************************************************************
|
||||||
|
|
||||||
PI_VERSION="7.0NG.776"
|
PI_VERSION="7.0NG.776"
|
||||||
PI_BUILD="240402"
|
PI_BUILD="240415"
|
||||||
OS_NAME=`uname -s`
|
OS_NAME=`uname -s`
|
||||||
|
|
||||||
FORCE=0
|
FORCE=0
|
||||||
|
@ -297,6 +297,10 @@ sub parse_configuration {
|
|||||||
$line =~ s/^\s+//;
|
$line =~ s/^\s+//;
|
||||||
$line =~ s/\s+$//;
|
$line =~ s/\s+$//;
|
||||||
|
|
||||||
|
if($line =~ /^$/) {
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
if ($line =~ /^\[($b_ports|$b_files|$b_passwords)\]$/) {
|
if ($line =~ /^\[($b_ports|$b_files|$b_passwords)\]$/) {
|
||||||
$configuration_block = $1;
|
$configuration_block = $1;
|
||||||
}
|
}
|
||||||
@ -537,7 +541,6 @@ if ($check_files) {
|
|||||||
|
|
||||||
if ($can_check_files) {
|
if ($can_check_files) {
|
||||||
# Check each file integrity
|
# Check each file integrity
|
||||||
my @errored_files;
|
|
||||||
my @no_integrity_files;
|
my @no_integrity_files;
|
||||||
|
|
||||||
# Create unique check files list
|
# Create unique check files list
|
||||||
@ -556,8 +559,6 @@ if ($check_files) {
|
|||||||
push @no_integrity_files, $file;
|
push @no_integrity_files, $file;
|
||||||
}
|
}
|
||||||
$integrity{$file_key} = $file_md5;
|
$integrity{$file_key} = $file_md5;
|
||||||
} else {
|
|
||||||
push @errored_files, $file;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -571,11 +572,6 @@ if ($check_files) {
|
|||||||
$value = 0;
|
$value = 0;
|
||||||
$desc = "Changed files found:\n" . join("\n", @no_integrity_files);
|
$desc = "Changed files found:\n" . join("\n", @no_integrity_files);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (@errored_files) {
|
|
||||||
$value = 0;
|
|
||||||
$desc .= "\nUnable to check integrity of some files:\n" . join("\n", @errored_files);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
print_xml_module('Files check status', 'generic_proc', $desc, $value);
|
print_xml_module('Files check status', 'generic_proc', $desc, $value);
|
||||||
@ -596,10 +592,15 @@ if ($check_passwords) {
|
|||||||
open my $shadow_fh, '<', $shadow_file;
|
open my $shadow_fh, '<', $shadow_file;
|
||||||
while (my $line = <$shadow_fh>) {
|
while (my $line = <$shadow_fh>) {
|
||||||
chomp $line;
|
chomp $line;
|
||||||
|
|
||||||
|
if($line =~ /^$/) {
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
my ($username, $password_hash, @rest) = split /:/, $line;
|
my ($username, $password_hash, @rest) = split /:/, $line;
|
||||||
|
|
||||||
# Skip users with no password hash
|
# Skip users with no password hash
|
||||||
if ($password_hash ne "*" && $password_hash ne "!!" && $password_hash ne "!locked") {
|
if ($password_hash ne "*" && $password_hash ne "!!" && $password_hash ne "!locked" && $password_hash ne "!*") {
|
||||||
my $salt = substr($password_hash, 0, rindex($password_hash, '$') + 1);
|
my $salt = substr($password_hash, 0, rindex($password_hash, '$') + 1);
|
||||||
my $user_hash = crypt($username, $salt);
|
my $user_hash = crypt($username, $salt);
|
||||||
if ($user_hash eq $password_hash) {
|
if ($user_hash eq $password_hash) {
|
||||||
|
22
pandora_agents/unix/plugins/pandora_security_check.conf
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
[PORTS]
|
||||||
|
22
|
||||||
|
80
|
||||||
|
443
|
||||||
|
41121
|
||||||
|
8080
|
||||||
|
|
||||||
|
[FILES]
|
||||||
|
/etc/httpd/httpd.conf
|
||||||
|
/etc/my.cnf
|
||||||
|
/etc/sudoers
|
||||||
|
/etc/passwd
|
||||||
|
/etc/hosts
|
||||||
|
|
||||||
|
[PASSWORDS]
|
||||||
|
pandora
|
||||||
|
PANDORA
|
||||||
|
P4nd0r4
|
||||||
|
password
|
||||||
|
root
|
||||||
|
linux
|
||||||
|
admin
|
@ -289,14 +289,6 @@ module_plugin "%PROGRAMFILES%\Pandora_Agent\util\autodiscover.exe" --default
|
|||||||
#module_type generic_data_string
|
#module_type generic_data_string
|
||||||
#module_end
|
#module_end
|
||||||
|
|
||||||
# Get logs from Application source. Need enterprise version.
|
|
||||||
#module_begin
|
|
||||||
#module_name Eventlog_Application
|
|
||||||
#module_type log
|
|
||||||
#module_logevent
|
|
||||||
#module_source Application
|
|
||||||
#module_end
|
|
||||||
|
|
||||||
# Example: get Network information using Agent plugin
|
# Example: get Network information using Agent plugin
|
||||||
#module_plugin cscript //B "%ProgramFiles%\Pandora_Agent\util\nettraffic.vbs"
|
#module_plugin cscript //B "%ProgramFiles%\Pandora_Agent\util\nettraffic.vbs"
|
||||||
|
|
||||||
@ -533,10 +525,10 @@ module_plugin "%PROGRAMFILES%\Pandora_Agent\util\autodiscover.exe" --default
|
|||||||
|
|
||||||
# Logs extraction
|
# Logs extraction
|
||||||
#module_begin
|
#module_begin
|
||||||
#module_name X_Server_log
|
#module_name Syslog
|
||||||
#module_description Logs extraction module
|
#module_description Gets all logs from system messages
|
||||||
#module_type log
|
#module_type log
|
||||||
#module_regexp C:\server\logs\xserver.log
|
#module_regexp C:\server\logs\messages
|
||||||
#module_pattern .*
|
#module_pattern .*
|
||||||
#module_end
|
#module_end
|
||||||
|
|
||||||
|
8
pandora_agents/win32/bin/util/pandora_security_win.conf
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
auditpol_logon_category = Logon
|
||||||
|
#auditpol_logon_category = Inicio de sesión
|
||||||
|
|
||||||
|
auditpol_logon_success_conf = Success and Failure
|
||||||
|
#auditpol_logon_success_conf = Aciertos y errores
|
||||||
|
|
||||||
|
auditpol_logon_noaudit_conf = No Auditing
|
||||||
|
#auditpol_logon_noaudit_conf = Sin auditoría
|
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:c58891fbd16bf80f288e0ff4751801aa02dbf4e6c914625b4d49a364c7e0b511
|
oid sha256:293dc77d39c303793a73bf83a2698c5886331f24b8abed4a40566474a64e3f60
|
||||||
size 7829249
|
size 7735667
|
||||||
|
@ -186,7 +186,7 @@ UpgradeApplicationID
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
Version
|
Version
|
||||||
{240402}
|
{240415}
|
||||||
|
|
||||||
ViewReadme
|
ViewReadme
|
||||||
{Yes}
|
{Yes}
|
||||||
|
@ -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 ("7.0NG.776 Build 240402")
|
#define PANDORA_VERSION ("7.0NG.776 Build 240415")
|
||||||
|
|
||||||
string pandora_path;
|
string pandora_path;
|
||||||
string pandora_dir;
|
string pandora_dir;
|
||||||
@ -53,6 +53,9 @@ Key_Value::parseLine (string str) {
|
|||||||
string trimmedstr;
|
string trimmedstr;
|
||||||
|
|
||||||
trimmedstr = trim (str);
|
trimmedstr = trim (str);
|
||||||
|
if (trimmedstr == "") {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/* Check if the string has " */
|
/* Check if the string has " */
|
||||||
pos = trimmedstr.find ("\"");
|
pos = trimmedstr.find ("\"");
|
||||||
|
@ -11,7 +11,7 @@ BEGIN
|
|||||||
VALUE "LegalCopyright", "Pandora FMS"
|
VALUE "LegalCopyright", "Pandora FMS"
|
||||||
VALUE "OriginalFilename", "PandoraAgent.exe"
|
VALUE "OriginalFilename", "PandoraAgent.exe"
|
||||||
VALUE "ProductName", "Pandora FMS Windows Agent"
|
VALUE "ProductName", "Pandora FMS Windows Agent"
|
||||||
VALUE "ProductVersion", "(7.0NG.776(Build 240402))"
|
VALUE "ProductVersion", "(7.0NG.776(Build 240415))"
|
||||||
VALUE "FileVersion", "1.0.0.0"
|
VALUE "FileVersion", "1.0.0.0"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
package: pandorafms-console
|
package: pandorafms-console
|
||||||
Version: 7.0NG.776-240402
|
Version: 7.0NG.776-240415
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Section: admin
|
Section: admin
|
||||||
|
@ -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="7.0NG.776-240402"
|
pandora_version="7.0NG.776-240415"
|
||||||
|
|
||||||
package_pear=0
|
package_pear=0
|
||||||
package_pandora=1
|
package_pandora=1
|
||||||
|
@ -75,23 +75,19 @@ if (empty($_REQUEST) === true) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Hash login process.
|
// Hash login process.
|
||||||
if (isset($_GET['loginhash']) === true) {
|
if (isset($_POST['auth_token']) === true && (bool) $config['JWT_signature'] !== false) {
|
||||||
$loginhash_data = get_parameter('loginhash_data', '');
|
include_once $config['homedir'].'/include/class/JWTRepository.class.php';
|
||||||
$loginhash_user = str_rot13(get_parameter('loginhash_user', ''));
|
$jwt = new JWTRepository($config['JWT_signature']);
|
||||||
|
if ($jwt->setToken($_POST['auth_token']) && $jwt->validate()) {
|
||||||
if ($config['loginhash_pwd'] != ''
|
$id_user = $jwt->payload()->get('id_user');
|
||||||
&& $loginhash_data == md5(
|
db_logon($id_user, $_SERVER['REMOTE_ADDR']);
|
||||||
$loginhash_user.io_output_password($config['loginhash_pwd'])
|
$_SESSION['id_usuario'] = $id_user;
|
||||||
)
|
$config['id_user'] = $id_user;
|
||||||
) {
|
|
||||||
db_logon($loginhash_user, $_SERVER['REMOTE_ADDR']);
|
|
||||||
$_SESSION['id_usuario'] = $loginhash_user;
|
|
||||||
$config['id_user'] = $loginhash_user;
|
|
||||||
} else {
|
} else {
|
||||||
include_once 'general/login_page.php';
|
include_once 'general/login_page.php';
|
||||||
db_pandora_audit(
|
db_pandora_audit(
|
||||||
AUDIT_LOG_USER_REGISTRATION,
|
AUDIT_LOG_USER_REGISTRATION,
|
||||||
'Loginhash failed',
|
'Login token failed',
|
||||||
'system'
|
'system'
|
||||||
);
|
);
|
||||||
while (ob_get_length() > 0) {
|
while (ob_get_length() > 0) {
|
||||||
|
@ -4676,7 +4676,8 @@
|
|||||||
"function" == typeof _ &&
|
"function" == typeof _ &&
|
||||||
"function" == typeof Symbol &&
|
"function" == typeof Symbol &&
|
||||||
"symbol" == typeof _("foo") &&
|
"symbol" == typeof _("foo") &&
|
||||||
"symbol" == typeof Symbol("bar") && w()
|
"symbol" == typeof Symbol("bar") &&
|
||||||
|
w()
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
@ -13386,7 +13387,9 @@
|
|||||||
null != s &&
|
null != s &&
|
||||||
!w(s)
|
!w(s)
|
||||||
) ||
|
) ||
|
||||||
j.test(s) || !x.test(s) || (null != i && s in Object(i))
|
j.test(s) ||
|
||||||
|
!x.test(s) ||
|
||||||
|
(null != i && s in Object(i))
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
@ -20230,7 +20233,8 @@
|
|||||||
var i = s.memoizedState;
|
var i = s.memoizedState;
|
||||||
if (
|
if (
|
||||||
(null === i &&
|
(null === i &&
|
||||||
null !== (s = s.alternate) && (i = s.memoizedState),
|
null !== (s = s.alternate) &&
|
||||||
|
(i = s.memoizedState),
|
||||||
null !== i)
|
null !== i)
|
||||||
)
|
)
|
||||||
return i.dehydrated;
|
return i.dehydrated;
|
||||||
@ -21697,7 +21701,8 @@
|
|||||||
null !== ae &&
|
null !== ae &&
|
||||||
((Z = ae),
|
((Z = ae),
|
||||||
null !== X &&
|
null !== X &&
|
||||||
null != (ae = Kb(ee, X)) && U.push(tf(ee, ae, Z))),
|
null != (ae = Kb(ee, X)) &&
|
||||||
|
U.push(tf(ee, ae, Z))),
|
||||||
Y)
|
Y)
|
||||||
)
|
)
|
||||||
break;
|
break;
|
||||||
@ -22675,7 +22680,8 @@
|
|||||||
? s.shouldComponentUpdate(_, x, j)
|
? s.shouldComponentUpdate(_, x, j)
|
||||||
: !i.prototype ||
|
: !i.prototype ||
|
||||||
!i.prototype.isPureReactComponent ||
|
!i.prototype.isPureReactComponent ||
|
||||||
!Ie(u, _) || !Ie(w, x);
|
!Ie(u, _) ||
|
||||||
|
!Ie(w, x);
|
||||||
}
|
}
|
||||||
function ph(s, i, u) {
|
function ph(s, i, u) {
|
||||||
var _ = !1,
|
var _ = !1,
|
||||||
@ -25282,7 +25288,8 @@
|
|||||||
case 15:
|
case 15:
|
||||||
if (
|
if (
|
||||||
!Po &&
|
!Po &&
|
||||||
null !== (_ = u.updateQueue) && null !== (_ = _.lastEffect)
|
null !== (_ = u.updateQueue) &&
|
||||||
|
null !== (_ = _.lastEffect)
|
||||||
) {
|
) {
|
||||||
w = _ = _.next;
|
w = _ = _.next;
|
||||||
do {
|
do {
|
||||||
@ -26026,7 +26033,8 @@
|
|||||||
return !0;
|
return !0;
|
||||||
})(w) &&
|
})(w) &&
|
||||||
(2 === (i = Jk(s, _)) &&
|
(2 === (i = Jk(s, _)) &&
|
||||||
0 !== (x = xc(s)) && ((_ = x), (i = Ok(s, x))),
|
0 !== (x = xc(s)) &&
|
||||||
|
((_ = x), (i = Ok(s, x))),
|
||||||
1 === i))
|
1 === i))
|
||||||
)
|
)
|
||||||
throw ((u = Go), Lk(s, 0), Dk(s, _), Ek(s, yt()), u);
|
throw ((u = Go), Lk(s, 0), Dk(s, _), Ek(s, yt()), u);
|
||||||
@ -28469,7 +28477,8 @@
|
|||||||
return (
|
return (
|
||||||
void 0 !== this._readableState &&
|
void 0 !== this._readableState &&
|
||||||
void 0 !== this._writableState &&
|
void 0 !== this._writableState &&
|
||||||
this._readableState.destroyed && this._writableState.destroyed
|
this._readableState.destroyed &&
|
||||||
|
this._writableState.destroyed
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
set: function set(s) {
|
set: function set(s) {
|
||||||
@ -29506,7 +29515,8 @@
|
|||||||
return (
|
return (
|
||||||
!!$.call(this, s) ||
|
!!$.call(this, s) ||
|
||||||
(this === Writable &&
|
(this === Writable &&
|
||||||
s && s._writableState instanceof WritableState)
|
s &&
|
||||||
|
s._writableState instanceof WritableState)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
@ -33989,7 +33999,8 @@
|
|||||||
j = s;
|
j = s;
|
||||||
if (
|
if (
|
||||||
"object" == typeof s &&
|
"object" == typeof s &&
|
||||||
(j = s[(_ = Object.keys(s)[0])]) && j._elem
|
(j = s[(_ = Object.keys(s)[0])]) &&
|
||||||
|
j._elem
|
||||||
)
|
)
|
||||||
return (
|
return (
|
||||||
(j._elem.name = _),
|
(j._elem.name = _),
|
||||||
@ -46940,7 +46951,8 @@
|
|||||||
!_isString(s) &&
|
!_isString(s) &&
|
||||||
(0 === s.length ||
|
(0 === s.length ||
|
||||||
(s.length > 0 &&
|
(s.length > 0 &&
|
||||||
s.hasOwnProperty(0) && s.hasOwnProperty(s.length - 1))))
|
s.hasOwnProperty(0) &&
|
||||||
|
s.hasOwnProperty(s.length - 1))))
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
var sc = "undefined" != typeof Symbol ? Symbol.iterator : "@@iterator";
|
var sc = "undefined" != typeof Symbol ? Symbol.iterator : "@@iterator";
|
||||||
@ -49050,7 +49062,8 @@
|
|||||||
"object" == typeof i &&
|
"object" == typeof i &&
|
||||||
null !== i &&
|
null !== i &&
|
||||||
"primitive" in i &&
|
"primitive" in i &&
|
||||||
"function" == typeof i.primitive && i.primitive() === s,
|
"function" == typeof i.primitive &&
|
||||||
|
i.primitive() === s,
|
||||||
hasClass = (s, i) =>
|
hasClass = (s, i) =>
|
||||||
"object" == typeof i &&
|
"object" == typeof i &&
|
||||||
null !== i &&
|
null !== i &&
|
||||||
@ -58903,8 +58916,7 @@
|
|||||||
!!s.isStringElement(i.in) &&
|
!!s.isStringElement(i.in) &&
|
||||||
!!s.isStringElement(u.name) &&
|
!!s.isStringElement(u.name) &&
|
||||||
!!s.isStringElement(u.in) &&
|
!!s.isStringElement(u.in) &&
|
||||||
serializers_value(i.name) ===
|
serializers_value(i.name) === serializers_value(u.name) &&
|
||||||
serializers_value(u.name) &&
|
|
||||||
serializers_value(i.in) === serializers_value(u.in),
|
serializers_value(i.in) === serializers_value(u.in),
|
||||||
i = [];
|
i = [];
|
||||||
return {
|
return {
|
||||||
@ -62689,9 +62701,7 @@
|
|||||||
He.createElement(
|
He.createElement(
|
||||||
"div",
|
"div",
|
||||||
{ className: "modal-ux-content" },
|
{ className: "modal-ux-content" },
|
||||||
j
|
j.valueSeq().map((j, B) =>
|
||||||
.valueSeq()
|
|
||||||
.map((j, B) =>
|
|
||||||
He.createElement(P, {
|
He.createElement(P, {
|
||||||
key: B,
|
key: B,
|
||||||
AST: x,
|
AST: x,
|
||||||
@ -65124,9 +65134,7 @@
|
|||||||
He.createElement(
|
He.createElement(
|
||||||
"tbody",
|
"tbody",
|
||||||
null,
|
null,
|
||||||
s
|
s.entrySeq().map(([s, i]) =>
|
||||||
.entrySeq()
|
|
||||||
.map(([s, i]) =>
|
|
||||||
He.createElement(u, {
|
He.createElement(u, {
|
||||||
key: `${s}-${i}`,
|
key: `${s}-${i}`,
|
||||||
xKey: s,
|
xKey: s,
|
||||||
@ -65560,9 +65568,7 @@
|
|||||||
He.createElement(_e, { source: _.get("description") })
|
He.createElement(_e, { source: _.get("description") })
|
||||||
),
|
),
|
||||||
ie && le.size
|
ie && le.size
|
||||||
? le
|
? le.entrySeq().map(([s, i]) =>
|
||||||
.entrySeq()
|
|
||||||
.map(([s, i]) =>
|
|
||||||
He.createElement(de, {
|
He.createElement(de, {
|
||||||
key: `${s}-${i}`,
|
key: `${s}-${i}`,
|
||||||
xKey: s,
|
xKey: s,
|
||||||
@ -66472,9 +66478,7 @@
|
|||||||
")"
|
")"
|
||||||
),
|
),
|
||||||
Z && et.size
|
Z && et.size
|
||||||
? et
|
? et.entrySeq().map(([s, i]) =>
|
||||||
.entrySeq()
|
|
||||||
.map(([s, i]) =>
|
|
||||||
He.createElement(de, {
|
He.createElement(de, {
|
||||||
key: `${s}-${i}`,
|
key: `${s}-${i}`,
|
||||||
xKey: s,
|
xKey: s,
|
||||||
@ -66483,9 +66487,7 @@
|
|||||||
)
|
)
|
||||||
: null,
|
: null,
|
||||||
X && tt.size
|
X && tt.size
|
||||||
? tt
|
? tt.entrySeq().map(([s, i]) =>
|
||||||
.entrySeq()
|
|
||||||
.map(([s, i]) =>
|
|
||||||
He.createElement(de, {
|
He.createElement(de, {
|
||||||
key: `${s}-${i}`,
|
key: `${s}-${i}`,
|
||||||
xKey: s,
|
xKey: s,
|
||||||
@ -68903,9 +68905,7 @@
|
|||||||
He.createElement("span", { className: "brace-close" }, "}")
|
He.createElement("span", { className: "brace-close" }, "}")
|
||||||
),
|
),
|
||||||
ye.size
|
ye.size
|
||||||
? ye
|
? ye.entrySeq().map(([s, i]) =>
|
||||||
.entrySeq()
|
|
||||||
.map(([s, i]) =>
|
|
||||||
He.createElement(Re, {
|
He.createElement(Re, {
|
||||||
key: `${s}-${i}`,
|
key: `${s}-${i}`,
|
||||||
propKey: s,
|
propKey: s,
|
||||||
@ -69093,9 +69093,7 @@
|
|||||||
")"
|
")"
|
||||||
),
|
),
|
||||||
ae.size
|
ae.size
|
||||||
? ae
|
? ae.entrySeq().map(([s, i]) =>
|
||||||
.entrySeq()
|
|
||||||
.map(([s, i]) =>
|
|
||||||
He.createElement(de, {
|
He.createElement(de, {
|
||||||
key: `${s}-${i}`,
|
key: `${s}-${i}`,
|
||||||
propKey: s,
|
propKey: s,
|
||||||
@ -69105,9 +69103,7 @@
|
|||||||
)
|
)
|
||||||
: null,
|
: null,
|
||||||
P && ee.size
|
P && ee.size
|
||||||
? ee
|
? ee.entrySeq().map(([s, i]) =>
|
||||||
.entrySeq()
|
|
||||||
.map(([s, i]) =>
|
|
||||||
He.createElement(de, {
|
He.createElement(de, {
|
||||||
key: `${s}-${i}`,
|
key: `${s}-${i}`,
|
||||||
propKey: s,
|
propKey: s,
|
||||||
@ -69453,7 +69449,8 @@
|
|||||||
!(s >= 0 && s <= 8) &&
|
!(s >= 0 && s <= 8) &&
|
||||||
11 !== s &&
|
11 !== s &&
|
||||||
!(s >= 14 && s <= 31) &&
|
!(s >= 14 && s <= 31) &&
|
||||||
!(s >= 127 && s <= 159) && !(s > 1114111)
|
!(s >= 127 && s <= 159) &&
|
||||||
|
!(s > 1114111)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
function fromCodePoint(s) {
|
function fromCodePoint(s) {
|
||||||
@ -75977,9 +75974,7 @@
|
|||||||
? He.createElement(
|
? He.createElement(
|
||||||
"select",
|
"select",
|
||||||
{ "data-variable": s, onChange: $ },
|
{ "data-variable": s, onChange: $ },
|
||||||
u
|
u.get("enum").map(u =>
|
||||||
.get("enum")
|
|
||||||
.map(u =>
|
|
||||||
He.createElement(
|
He.createElement(
|
||||||
"option",
|
"option",
|
||||||
{
|
{
|
||||||
@ -80766,7 +80761,8 @@
|
|||||||
const { examples: i, example: u, default: _ } = s;
|
const { examples: i, example: u, default: _ } = s;
|
||||||
return (
|
return (
|
||||||
!!(Array.isArray(i) && i.length >= 1) ||
|
!!(Array.isArray(i) && i.length >= 1) ||
|
||||||
void 0 !== _ || void 0 !== u
|
void 0 !== _ ||
|
||||||
|
void 0 !== u
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
extractExample = s => {
|
extractExample = s => {
|
||||||
|
@ -2323,7 +2323,8 @@ var ve = {
|
|||||||
return (
|
return (
|
||||||
void 0 !== this._readableState &&
|
void 0 !== this._readableState &&
|
||||||
void 0 !== this._writableState &&
|
void 0 !== this._writableState &&
|
||||||
this._readableState.destroyed && this._writableState.destroyed
|
this._readableState.destroyed &&
|
||||||
|
this._writableState.destroyed
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
set: function set(e) {
|
set: function set(e) {
|
||||||
@ -3336,7 +3337,8 @@ var ve = {
|
|||||||
return (
|
return (
|
||||||
!!c.call(this, e) ||
|
!!c.call(this, e) ||
|
||||||
(this === Writable &&
|
(this === Writable &&
|
||||||
e && e._writableState instanceof WritableState)
|
e &&
|
||||||
|
e._writableState instanceof WritableState)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
@ -10833,9 +10835,7 @@ var we = {};
|
|||||||
Ke.default.createElement(
|
Ke.default.createElement(
|
||||||
"div",
|
"div",
|
||||||
{ className: "modal-ux-content" },
|
{ className: "modal-ux-content" },
|
||||||
s
|
s.valueSeq().map((s, i) =>
|
||||||
.valueSeq()
|
|
||||||
.map((s, i) =>
|
|
||||||
Ke.default.createElement(l, {
|
Ke.default.createElement(l, {
|
||||||
key: i,
|
key: i,
|
||||||
AST: o,
|
AST: o,
|
||||||
@ -13194,9 +13194,7 @@ var we = {};
|
|||||||
Ke.default.createElement(
|
Ke.default.createElement(
|
||||||
"tbody",
|
"tbody",
|
||||||
null,
|
null,
|
||||||
e
|
e.entrySeq().map(([e, t]) =>
|
||||||
.entrySeq()
|
|
||||||
.map(([e, t]) =>
|
|
||||||
Ke.default.createElement(r, {
|
Ke.default.createElement(r, {
|
||||||
key: `${e}-${t}`,
|
key: `${e}-${t}`,
|
||||||
xKey: e,
|
xKey: e,
|
||||||
@ -13627,9 +13625,7 @@ var we = {};
|
|||||||
Ke.default.createElement(x, { source: n.get("description") })
|
Ke.default.createElement(x, { source: n.get("description") })
|
||||||
),
|
),
|
||||||
g && y.size
|
g && y.size
|
||||||
? y
|
? y.entrySeq().map(([e, t]) =>
|
||||||
.entrySeq()
|
|
||||||
.map(([e, t]) =>
|
|
||||||
Ke.default.createElement(v, {
|
Ke.default.createElement(v, {
|
||||||
key: `${e}-${t}`,
|
key: `${e}-${t}`,
|
||||||
xKey: e,
|
xKey: e,
|
||||||
@ -16688,9 +16684,7 @@ var we = {};
|
|||||||
Ke.default.createElement("span", { className: "brace-close" }, "}")
|
Ke.default.createElement("span", { className: "brace-close" }, "}")
|
||||||
),
|
),
|
||||||
w.size
|
w.size
|
||||||
? w
|
? w.entrySeq().map(([e, t]) =>
|
||||||
.entrySeq()
|
|
||||||
.map(([e, t]) =>
|
|
||||||
Ke.default.createElement(R, {
|
Ke.default.createElement(R, {
|
||||||
key: `${e}-${t}`,
|
key: `${e}-${t}`,
|
||||||
propKey: e,
|
propKey: e,
|
||||||
@ -16748,9 +16742,7 @@ var we = {};
|
|||||||
{ title: _, expanded: n <= a, collapsedContent: "[...]" },
|
{ title: _, expanded: n <= a, collapsedContent: "[...]" },
|
||||||
"[",
|
"[",
|
||||||
d.size
|
d.size
|
||||||
? d
|
? d.entrySeq().map(([e, t]) =>
|
||||||
.entrySeq()
|
|
||||||
.map(([e, t]) =>
|
|
||||||
Ke.default.createElement(y, {
|
Ke.default.createElement(y, {
|
||||||
key: `${e}-${t}`,
|
key: `${e}-${t}`,
|
||||||
propKey: e,
|
propKey: e,
|
||||||
@ -16874,9 +16866,7 @@ var we = {};
|
|||||||
")"
|
")"
|
||||||
),
|
),
|
||||||
h.size
|
h.size
|
||||||
? h
|
? h.entrySeq().map(([e, t]) =>
|
||||||
.entrySeq()
|
|
||||||
.map(([e, t]) =>
|
|
||||||
Ke.default.createElement(v, {
|
Ke.default.createElement(v, {
|
||||||
key: `${e}-${t}`,
|
key: `${e}-${t}`,
|
||||||
propKey: e,
|
propKey: e,
|
||||||
@ -16886,9 +16876,7 @@ var we = {};
|
|||||||
)
|
)
|
||||||
: null,
|
: null,
|
||||||
l && f.size
|
l && f.size
|
||||||
? f
|
? f.entrySeq().map(([e, t]) =>
|
||||||
.entrySeq()
|
|
||||||
.map(([e, t]) =>
|
|
||||||
Ke.default.createElement(v, {
|
Ke.default.createElement(v, {
|
||||||
key: `${e}-${t}`,
|
key: `${e}-${t}`,
|
||||||
propKey: e,
|
propKey: e,
|
||||||
@ -18263,9 +18251,7 @@ var we = {};
|
|||||||
")"
|
")"
|
||||||
),
|
),
|
||||||
x && c.size
|
x && c.size
|
||||||
? c
|
? c.entrySeq().map(([e, r]) =>
|
||||||
.entrySeq()
|
|
||||||
.map(([e, r]) =>
|
|
||||||
Ke.default.createElement(t, {
|
Ke.default.createElement(t, {
|
||||||
key: `${e}-${r}`,
|
key: `${e}-${r}`,
|
||||||
xKey: e,
|
xKey: e,
|
||||||
@ -20384,10 +20370,12 @@ var we = {};
|
|||||||
Ke.default.createElement(
|
Ke.default.createElement(
|
||||||
"ul",
|
"ul",
|
||||||
{
|
{
|
||||||
className: (0,
|
className: (0, ha.default)(
|
||||||
ha.default)("json-schema-2020-12-keyword__children", {
|
"json-schema-2020-12-keyword__children",
|
||||||
|
{
|
||||||
"json-schema-2020-12-keyword__children--collapsed": !c
|
"json-schema-2020-12-keyword__children--collapsed": !c
|
||||||
})
|
}
|
||||||
|
)
|
||||||
},
|
},
|
||||||
c &&
|
c &&
|
||||||
Ke.default.createElement(
|
Ke.default.createElement(
|
||||||
@ -20577,10 +20565,12 @@ var we = {};
|
|||||||
Ke.default.createElement(
|
Ke.default.createElement(
|
||||||
"ul",
|
"ul",
|
||||||
{
|
{
|
||||||
className: (0,
|
className: (0, ha.default)(
|
||||||
ha.default)("json-schema-2020-12-keyword__children", {
|
"json-schema-2020-12-keyword__children",
|
||||||
|
{
|
||||||
"json-schema-2020-12-keyword__children--collapsed": !c
|
"json-schema-2020-12-keyword__children--collapsed": !c
|
||||||
})
|
}
|
||||||
|
)
|
||||||
},
|
},
|
||||||
c &&
|
c &&
|
||||||
Ke.default.createElement(
|
Ke.default.createElement(
|
||||||
@ -20661,10 +20651,12 @@ var we = {};
|
|||||||
Ke.default.createElement(
|
Ke.default.createElement(
|
||||||
"ul",
|
"ul",
|
||||||
{
|
{
|
||||||
className: (0,
|
className: (0, ha.default)(
|
||||||
ha.default)("json-schema-2020-12-keyword__children", {
|
"json-schema-2020-12-keyword__children",
|
||||||
|
{
|
||||||
"json-schema-2020-12-keyword__children--collapsed": !c
|
"json-schema-2020-12-keyword__children--collapsed": !c
|
||||||
})
|
}
|
||||||
|
)
|
||||||
},
|
},
|
||||||
c &&
|
c &&
|
||||||
Ke.default.createElement(
|
Ke.default.createElement(
|
||||||
@ -21224,10 +21216,12 @@ var we = {};
|
|||||||
"li",
|
"li",
|
||||||
{
|
{
|
||||||
key: e,
|
key: e,
|
||||||
className: (0,
|
className: (0, ha.default)(
|
||||||
ha.default)("json-schema-2020-12-$vocabulary-uri", {
|
"json-schema-2020-12-$vocabulary-uri",
|
||||||
|
{
|
||||||
"json-schema-2020-12-$vocabulary-uri--disabled": !t
|
"json-schema-2020-12-$vocabulary-uri--disabled": !t
|
||||||
})
|
}
|
||||||
|
)
|
||||||
},
|
},
|
||||||
Ke.default.createElement(
|
Ke.default.createElement(
|
||||||
"span",
|
"span",
|
||||||
@ -21422,10 +21416,12 @@ var we = {};
|
|||||||
Ke.default.createElement(
|
Ke.default.createElement(
|
||||||
"ul",
|
"ul",
|
||||||
{
|
{
|
||||||
className: (0,
|
className: (0, ha.default)(
|
||||||
ha.default)("json-schema-2020-12-keyword__children", {
|
"json-schema-2020-12-keyword__children",
|
||||||
|
{
|
||||||
"json-schema-2020-12-keyword__children--collapsed": !n
|
"json-schema-2020-12-keyword__children--collapsed": !n
|
||||||
})
|
}
|
||||||
|
)
|
||||||
},
|
},
|
||||||
n &&
|
n &&
|
||||||
Ke.default.createElement(
|
Ke.default.createElement(
|
||||||
@ -21512,10 +21508,12 @@ var we = {};
|
|||||||
Ke.default.createElement(
|
Ke.default.createElement(
|
||||||
"ul",
|
"ul",
|
||||||
{
|
{
|
||||||
className: (0,
|
className: (0, ha.default)(
|
||||||
ha.default)("json-schema-2020-12-keyword__children", {
|
"json-schema-2020-12-keyword__children",
|
||||||
|
{
|
||||||
"json-schema-2020-12-keyword__children--collapsed": !a
|
"json-schema-2020-12-keyword__children--collapsed": !a
|
||||||
})
|
}
|
||||||
|
)
|
||||||
},
|
},
|
||||||
a &&
|
a &&
|
||||||
Ke.default.createElement(
|
Ke.default.createElement(
|
||||||
@ -21583,10 +21581,12 @@ var we = {};
|
|||||||
Ke.default.createElement(
|
Ke.default.createElement(
|
||||||
"ul",
|
"ul",
|
||||||
{
|
{
|
||||||
className: (0,
|
className: (0, ha.default)(
|
||||||
ha.default)("json-schema-2020-12-keyword__children", {
|
"json-schema-2020-12-keyword__children",
|
||||||
|
{
|
||||||
"json-schema-2020-12-keyword__children--collapsed": !a
|
"json-schema-2020-12-keyword__children--collapsed": !a
|
||||||
})
|
}
|
||||||
|
)
|
||||||
},
|
},
|
||||||
a &&
|
a &&
|
||||||
Ke.default.createElement(
|
Ke.default.createElement(
|
||||||
@ -21654,10 +21654,12 @@ var we = {};
|
|||||||
Ke.default.createElement(
|
Ke.default.createElement(
|
||||||
"ul",
|
"ul",
|
||||||
{
|
{
|
||||||
className: (0,
|
className: (0, ha.default)(
|
||||||
ha.default)("json-schema-2020-12-keyword__children", {
|
"json-schema-2020-12-keyword__children",
|
||||||
|
{
|
||||||
"json-schema-2020-12-keyword__children--collapsed": !a
|
"json-schema-2020-12-keyword__children--collapsed": !a
|
||||||
})
|
}
|
||||||
|
)
|
||||||
},
|
},
|
||||||
a &&
|
a &&
|
||||||
Ke.default.createElement(
|
Ke.default.createElement(
|
||||||
@ -21813,10 +21815,12 @@ var we = {};
|
|||||||
Ke.default.createElement(
|
Ke.default.createElement(
|
||||||
"ul",
|
"ul",
|
||||||
{
|
{
|
||||||
className: (0,
|
className: (0, ha.default)(
|
||||||
ha.default)("json-schema-2020-12-keyword__children", {
|
"json-schema-2020-12-keyword__children",
|
||||||
|
{
|
||||||
"json-schema-2020-12-keyword__children--collapsed": !n
|
"json-schema-2020-12-keyword__children--collapsed": !n
|
||||||
})
|
}
|
||||||
|
)
|
||||||
},
|
},
|
||||||
n &&
|
n &&
|
||||||
Ke.default.createElement(
|
Ke.default.createElement(
|
||||||
@ -21877,10 +21881,12 @@ var we = {};
|
|||||||
Ke.default.createElement(
|
Ke.default.createElement(
|
||||||
"ul",
|
"ul",
|
||||||
{
|
{
|
||||||
className: (0,
|
className: (0, ha.default)(
|
||||||
ha.default)("json-schema-2020-12-keyword__children", {
|
"json-schema-2020-12-keyword__children",
|
||||||
|
{
|
||||||
"json-schema-2020-12-keyword__children--collapsed": !a
|
"json-schema-2020-12-keyword__children--collapsed": !a
|
||||||
})
|
}
|
||||||
|
)
|
||||||
},
|
},
|
||||||
a &&
|
a &&
|
||||||
Ke.default.createElement(
|
Ke.default.createElement(
|
||||||
|
@ -4588,7 +4588,8 @@
|
|||||||
"function" == typeof _ &&
|
"function" == typeof _ &&
|
||||||
"function" == typeof Symbol &&
|
"function" == typeof Symbol &&
|
||||||
"symbol" == typeof _("foo") &&
|
"symbol" == typeof _("foo") &&
|
||||||
"symbol" == typeof Symbol("bar") && w()
|
"symbol" == typeof Symbol("bar") &&
|
||||||
|
w()
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
@ -13205,7 +13206,9 @@
|
|||||||
null != s &&
|
null != s &&
|
||||||
!w(s)
|
!w(s)
|
||||||
) ||
|
) ||
|
||||||
j.test(s) || !x.test(s) || (null != i && s in Object(i))
|
j.test(s) ||
|
||||||
|
!x.test(s) ||
|
||||||
|
(null != i && s in Object(i))
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
@ -19958,7 +19961,8 @@
|
|||||||
var i = s.memoizedState;
|
var i = s.memoizedState;
|
||||||
if (
|
if (
|
||||||
(null === i &&
|
(null === i &&
|
||||||
null !== (s = s.alternate) && (i = s.memoizedState),
|
null !== (s = s.alternate) &&
|
||||||
|
(i = s.memoizedState),
|
||||||
null !== i)
|
null !== i)
|
||||||
)
|
)
|
||||||
return i.dehydrated;
|
return i.dehydrated;
|
||||||
@ -21407,7 +21411,8 @@
|
|||||||
null !== ae &&
|
null !== ae &&
|
||||||
((Z = ae),
|
((Z = ae),
|
||||||
null !== X &&
|
null !== X &&
|
||||||
null != (ae = Kb(ee, X)) && U.push(tf(ee, ae, Z))),
|
null != (ae = Kb(ee, X)) &&
|
||||||
|
U.push(tf(ee, ae, Z))),
|
||||||
Y)
|
Y)
|
||||||
)
|
)
|
||||||
break;
|
break;
|
||||||
@ -22372,7 +22377,8 @@
|
|||||||
? s.shouldComponentUpdate(_, x, j)
|
? s.shouldComponentUpdate(_, x, j)
|
||||||
: !i.prototype ||
|
: !i.prototype ||
|
||||||
!i.prototype.isPureReactComponent ||
|
!i.prototype.isPureReactComponent ||
|
||||||
!Ie(u, _) || !Ie(w, x);
|
!Ie(u, _) ||
|
||||||
|
!Ie(w, x);
|
||||||
}
|
}
|
||||||
function ph(s, i, u) {
|
function ph(s, i, u) {
|
||||||
var _ = !1,
|
var _ = !1,
|
||||||
@ -24957,7 +24963,8 @@
|
|||||||
case 15:
|
case 15:
|
||||||
if (
|
if (
|
||||||
!Po &&
|
!Po &&
|
||||||
null !== (_ = u.updateQueue) && null !== (_ = _.lastEffect)
|
null !== (_ = u.updateQueue) &&
|
||||||
|
null !== (_ = _.lastEffect)
|
||||||
) {
|
) {
|
||||||
w = _ = _.next;
|
w = _ = _.next;
|
||||||
do {
|
do {
|
||||||
@ -25693,7 +25700,8 @@
|
|||||||
return !0;
|
return !0;
|
||||||
})(w) &&
|
})(w) &&
|
||||||
(2 === (i = Jk(s, _)) &&
|
(2 === (i = Jk(s, _)) &&
|
||||||
0 !== (x = xc(s)) && ((_ = x), (i = Ok(s, x))),
|
0 !== (x = xc(s)) &&
|
||||||
|
((_ = x), (i = Ok(s, x))),
|
||||||
1 === i))
|
1 === i))
|
||||||
)
|
)
|
||||||
throw ((u = Go), Lk(s, 0), Dk(s, _), Ek(s, yt()), u);
|
throw ((u = Go), Lk(s, 0), Dk(s, _), Ek(s, yt()), u);
|
||||||
@ -28109,7 +28117,8 @@
|
|||||||
return (
|
return (
|
||||||
void 0 !== this._readableState &&
|
void 0 !== this._readableState &&
|
||||||
void 0 !== this._writableState &&
|
void 0 !== this._writableState &&
|
||||||
this._readableState.destroyed && this._writableState.destroyed
|
this._readableState.destroyed &&
|
||||||
|
this._writableState.destroyed
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
set: function set(s) {
|
set: function set(s) {
|
||||||
@ -29135,7 +29144,8 @@
|
|||||||
return (
|
return (
|
||||||
!!$.call(this, s) ||
|
!!$.call(this, s) ||
|
||||||
(this === Writable &&
|
(this === Writable &&
|
||||||
s && s._writableState instanceof WritableState)
|
s &&
|
||||||
|
s._writableState instanceof WritableState)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
@ -33559,7 +33569,8 @@
|
|||||||
j = s;
|
j = s;
|
||||||
if (
|
if (
|
||||||
"object" == typeof s &&
|
"object" == typeof s &&
|
||||||
(j = s[(_ = Object.keys(s)[0])]) && j._elem
|
(j = s[(_ = Object.keys(s)[0])]) &&
|
||||||
|
j._elem
|
||||||
)
|
)
|
||||||
return (
|
return (
|
||||||
(j._elem.name = _),
|
(j._elem.name = _),
|
||||||
@ -46146,7 +46157,8 @@
|
|||||||
!_isString(s) &&
|
!_isString(s) &&
|
||||||
(0 === s.length ||
|
(0 === s.length ||
|
||||||
(s.length > 0 &&
|
(s.length > 0 &&
|
||||||
s.hasOwnProperty(0) && s.hasOwnProperty(s.length - 1))))
|
s.hasOwnProperty(0) &&
|
||||||
|
s.hasOwnProperty(s.length - 1))))
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
var sc = "undefined" != typeof Symbol ? Symbol.iterator : "@@iterator";
|
var sc = "undefined" != typeof Symbol ? Symbol.iterator : "@@iterator";
|
||||||
@ -47696,9 +47708,7 @@
|
|||||||
: ("undefined" != typeof File && s instanceof File) ||
|
: ("undefined" != typeof File && s instanceof File) ||
|
||||||
("undefined" != typeof Blob && s instanceof Blob) ||
|
("undefined" != typeof Blob && s instanceof Blob) ||
|
||||||
!!ArrayBuffer.isView(s) ||
|
!!ArrayBuffer.isView(s) ||
|
||||||
(null !== s &&
|
(null !== s && "object" == typeof s && "function" == typeof s.pipe)
|
||||||
"object" == typeof s &&
|
|
||||||
"function" == typeof s.pipe)
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
function isArrayOfFile(s, i) {
|
function isArrayOfFile(s, i) {
|
||||||
@ -48197,7 +48207,8 @@
|
|||||||
"object" == typeof i &&
|
"object" == typeof i &&
|
||||||
null !== i &&
|
null !== i &&
|
||||||
"primitive" in i &&
|
"primitive" in i &&
|
||||||
"function" == typeof i.primitive && i.primitive() === s,
|
"function" == typeof i.primitive &&
|
||||||
|
i.primitive() === s,
|
||||||
hasClass = (s, i) =>
|
hasClass = (s, i) =>
|
||||||
"object" == typeof i &&
|
"object" == typeof i &&
|
||||||
null !== i &&
|
null !== i &&
|
||||||
@ -61244,9 +61255,7 @@
|
|||||||
He.createElement(
|
He.createElement(
|
||||||
"div",
|
"div",
|
||||||
{ className: "modal-ux-content" },
|
{ className: "modal-ux-content" },
|
||||||
j
|
j.valueSeq().map((j, B) =>
|
||||||
.valueSeq()
|
|
||||||
.map((j, B) =>
|
|
||||||
He.createElement(P, {
|
He.createElement(P, {
|
||||||
key: B,
|
key: B,
|
||||||
AST: x,
|
AST: x,
|
||||||
@ -64919,9 +64928,7 @@
|
|||||||
")"
|
")"
|
||||||
),
|
),
|
||||||
Z && et.size
|
Z && et.size
|
||||||
? et
|
? et.entrySeq().map(([s, i]) =>
|
||||||
.entrySeq()
|
|
||||||
.map(([s, i]) =>
|
|
||||||
He.createElement(de, {
|
He.createElement(de, {
|
||||||
key: `${s}-${i}`,
|
key: `${s}-${i}`,
|
||||||
xKey: s,
|
xKey: s,
|
||||||
@ -64930,9 +64937,7 @@
|
|||||||
)
|
)
|
||||||
: null,
|
: null,
|
||||||
X && tt.size
|
X && tt.size
|
||||||
? tt
|
? tt.entrySeq().map(([s, i]) =>
|
||||||
.entrySeq()
|
|
||||||
.map(([s, i]) =>
|
|
||||||
He.createElement(de, {
|
He.createElement(de, {
|
||||||
key: `${s}-${i}`,
|
key: `${s}-${i}`,
|
||||||
xKey: s,
|
xKey: s,
|
||||||
@ -67252,9 +67257,7 @@
|
|||||||
He.createElement("span", { className: "brace-close" }, "}")
|
He.createElement("span", { className: "brace-close" }, "}")
|
||||||
),
|
),
|
||||||
ye.size
|
ye.size
|
||||||
? ye
|
? ye.entrySeq().map(([s, i]) =>
|
||||||
.entrySeq()
|
|
||||||
.map(([s, i]) =>
|
|
||||||
He.createElement(Re, {
|
He.createElement(Re, {
|
||||||
key: `${s}-${i}`,
|
key: `${s}-${i}`,
|
||||||
propKey: s,
|
propKey: s,
|
||||||
@ -67430,9 +67433,7 @@
|
|||||||
")"
|
")"
|
||||||
),
|
),
|
||||||
ae.size
|
ae.size
|
||||||
? ae
|
? ae.entrySeq().map(([s, i]) =>
|
||||||
.entrySeq()
|
|
||||||
.map(([s, i]) =>
|
|
||||||
He.createElement(de, {
|
He.createElement(de, {
|
||||||
key: `${s}-${i}`,
|
key: `${s}-${i}`,
|
||||||
propKey: s,
|
propKey: s,
|
||||||
@ -67442,9 +67443,7 @@
|
|||||||
)
|
)
|
||||||
: null,
|
: null,
|
||||||
P && ee.size
|
P && ee.size
|
||||||
? ee
|
? ee.entrySeq().map(([s, i]) =>
|
||||||
.entrySeq()
|
|
||||||
.map(([s, i]) =>
|
|
||||||
He.createElement(de, {
|
He.createElement(de, {
|
||||||
key: `${s}-${i}`,
|
key: `${s}-${i}`,
|
||||||
propKey: s,
|
propKey: s,
|
||||||
@ -67784,7 +67783,8 @@
|
|||||||
!(s >= 0 && s <= 8) &&
|
!(s >= 0 && s <= 8) &&
|
||||||
11 !== s &&
|
11 !== s &&
|
||||||
!(s >= 14 && s <= 31) &&
|
!(s >= 14 && s <= 31) &&
|
||||||
!(s >= 127 && s <= 159) && !(s > 1114111)
|
!(s >= 127 && s <= 159) &&
|
||||||
|
!(s > 1114111)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
function fromCodePoint(s) {
|
function fromCodePoint(s) {
|
||||||
@ -74095,9 +74095,7 @@
|
|||||||
? He.createElement(
|
? He.createElement(
|
||||||
"select",
|
"select",
|
||||||
{ "data-variable": s, onChange: $ },
|
{ "data-variable": s, onChange: $ },
|
||||||
u
|
u.get("enum").map(u =>
|
||||||
.get("enum")
|
|
||||||
.map(u =>
|
|
||||||
He.createElement(
|
He.createElement(
|
||||||
"option",
|
"option",
|
||||||
{
|
{
|
||||||
|
@ -6859,7 +6859,9 @@
|
|||||||
null != e &&
|
null != e &&
|
||||||
!i(e)
|
!i(e)
|
||||||
) ||
|
) ||
|
||||||
a.test(e) || !o.test(e) || (null != t && e in Object(t))
|
a.test(e) ||
|
||||||
|
!o.test(e) ||
|
||||||
|
(null != t && e in Object(t))
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
@ -4819,9 +4819,7 @@
|
|||||||
k().createElement(
|
k().createElement(
|
||||||
"div",
|
"div",
|
||||||
{ className: "modal-ux-content" },
|
{ className: "modal-ux-content" },
|
||||||
o
|
o.valueSeq().map((o, c) =>
|
||||||
.valueSeq()
|
|
||||||
.map((o, c) =>
|
|
||||||
k().createElement(l, {
|
k().createElement(l, {
|
||||||
key: c,
|
key: c,
|
||||||
AST: s,
|
AST: s,
|
||||||
@ -7258,9 +7256,7 @@
|
|||||||
k().createElement(
|
k().createElement(
|
||||||
"tbody",
|
"tbody",
|
||||||
null,
|
null,
|
||||||
e
|
e.entrySeq().map(([e, t]) =>
|
||||||
.entrySeq()
|
|
||||||
.map(([e, t]) =>
|
|
||||||
k().createElement(r, {
|
k().createElement(r, {
|
||||||
key: `${e}-${t}`,
|
key: `${e}-${t}`,
|
||||||
xKey: e,
|
xKey: e,
|
||||||
@ -7698,9 +7694,7 @@
|
|||||||
k().createElement(C, { source: a.get("description") })
|
k().createElement(C, { source: a.get("description") })
|
||||||
),
|
),
|
||||||
y && f.size
|
y && f.size
|
||||||
? f
|
? f.entrySeq().map(([e, t]) =>
|
||||||
.entrySeq()
|
|
||||||
.map(([e, t]) =>
|
|
||||||
k().createElement(_, {
|
k().createElement(_, {
|
||||||
key: `${e}-${t}`,
|
key: `${e}-${t}`,
|
||||||
xKey: e,
|
xKey: e,
|
||||||
@ -10816,9 +10810,7 @@
|
|||||||
k().createElement("span", { className: "brace-close" }, "}")
|
k().createElement("span", { className: "brace-close" }, "}")
|
||||||
),
|
),
|
||||||
w.size
|
w.size
|
||||||
? w
|
? w.entrySeq().map(([e, t]) =>
|
||||||
.entrySeq()
|
|
||||||
.map(([e, t]) =>
|
|
||||||
k().createElement(j, {
|
k().createElement(j, {
|
||||||
key: `${e}-${t}`,
|
key: `${e}-${t}`,
|
||||||
propKey: e,
|
propKey: e,
|
||||||
@ -10882,9 +10874,7 @@
|
|||||||
{ title: E, expanded: a <= n, collapsedContent: "[...]" },
|
{ title: E, expanded: a <= n, collapsedContent: "[...]" },
|
||||||
"[",
|
"[",
|
||||||
m.size
|
m.size
|
||||||
? m
|
? m.entrySeq().map(([e, t]) =>
|
||||||
.entrySeq()
|
|
||||||
.map(([e, t]) =>
|
|
||||||
k().createElement(f, {
|
k().createElement(f, {
|
||||||
key: `${e}-${t}`,
|
key: `${e}-${t}`,
|
||||||
propKey: e,
|
propKey: e,
|
||||||
@ -11008,9 +10998,7 @@
|
|||||||
")"
|
")"
|
||||||
),
|
),
|
||||||
g.size
|
g.size
|
||||||
? g
|
? g.entrySeq().map(([e, t]) =>
|
||||||
.entrySeq()
|
|
||||||
.map(([e, t]) =>
|
|
||||||
k().createElement(_, {
|
k().createElement(_, {
|
||||||
key: `${e}-${t}`,
|
key: `${e}-${t}`,
|
||||||
propKey: e,
|
propKey: e,
|
||||||
@ -11020,9 +11008,7 @@
|
|||||||
)
|
)
|
||||||
: null,
|
: null,
|
||||||
l && h.size
|
l && h.size
|
||||||
? h
|
? h.entrySeq().map(([e, t]) =>
|
||||||
.entrySeq()
|
|
||||||
.map(([e, t]) =>
|
|
||||||
k().createElement(_, {
|
k().createElement(_, {
|
||||||
key: `${e}-${t}`,
|
key: `${e}-${t}`,
|
||||||
propKey: e,
|
propKey: e,
|
||||||
@ -12452,9 +12438,7 @@
|
|||||||
")"
|
")"
|
||||||
),
|
),
|
||||||
C && i.size
|
C && i.size
|
||||||
? i
|
? i.entrySeq().map(([e, r]) =>
|
||||||
.entrySeq()
|
|
||||||
.map(([e, r]) =>
|
|
||||||
k().createElement(t, {
|
k().createElement(t, {
|
||||||
key: `${e}-${r}`,
|
key: `${e}-${r}`,
|
||||||
xKey: e,
|
xKey: e,
|
||||||
@ -12703,9 +12687,7 @@
|
|||||||
? k().createElement(
|
? k().createElement(
|
||||||
"select",
|
"select",
|
||||||
{ "data-variable": e, onChange: i },
|
{ "data-variable": e, onChange: i },
|
||||||
r
|
r.get("enum").map(r =>
|
||||||
.get("enum")
|
|
||||||
.map(r =>
|
|
||||||
k().createElement(
|
k().createElement(
|
||||||
"option",
|
"option",
|
||||||
{
|
{
|
||||||
@ -17499,7 +17481,8 @@
|
|||||||
const { examples: t, example: r, default: a } = e;
|
const { examples: t, example: r, default: a } = e;
|
||||||
return (
|
return (
|
||||||
!!(Array.isArray(t) && t.length >= 1) ||
|
!!(Array.isArray(t) && t.length >= 1) ||
|
||||||
void 0 !== a || void 0 !== r
|
void 0 !== a ||
|
||||||
|
void 0 !== r
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
extractExample = e => {
|
extractExample = e => {
|
||||||
|
189
pandora_console/composer.lock
generated
@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "0d777bd9c0ca68c9ec0fe911e71b1b2a",
|
"content-hash": "c7549451bb31a635714731144a995123",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "amphp/amp",
|
"name": "amphp/amp",
|
||||||
@ -1553,6 +1553,143 @@
|
|||||||
},
|
},
|
||||||
"time": "2023-11-08T14:08:06+00:00"
|
"time": "2023-11-08T14:08:06+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "lcobucci/clock",
|
||||||
|
"version": "3.2.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/lcobucci/clock.git",
|
||||||
|
"reference": "6f28b826ea01306b07980cb8320ab30b966cd715"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/lcobucci/clock/zipball/6f28b826ea01306b07980cb8320ab30b966cd715",
|
||||||
|
"reference": "6f28b826ea01306b07980cb8320ab30b966cd715",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "~8.2.0 || ~8.3.0",
|
||||||
|
"psr/clock": "^1.0"
|
||||||
|
},
|
||||||
|
"provide": {
|
||||||
|
"psr/clock-implementation": "1.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"infection/infection": "^0.27",
|
||||||
|
"lcobucci/coding-standard": "^11.0.0",
|
||||||
|
"phpstan/extension-installer": "^1.3.1",
|
||||||
|
"phpstan/phpstan": "^1.10.25",
|
||||||
|
"phpstan/phpstan-deprecation-rules": "^1.1.3",
|
||||||
|
"phpstan/phpstan-phpunit": "^1.3.13",
|
||||||
|
"phpstan/phpstan-strict-rules": "^1.5.1",
|
||||||
|
"phpunit/phpunit": "^10.2.3"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Lcobucci\\Clock\\": "src"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Luís Cobucci",
|
||||||
|
"email": "lcobucci@gmail.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Yet another clock abstraction",
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/lcobucci/clock/issues",
|
||||||
|
"source": "https://github.com/lcobucci/clock/tree/3.2.0"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://github.com/lcobucci",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://www.patreon.com/lcobucci",
|
||||||
|
"type": "patreon"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2023-11-17T17:00:27+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "lcobucci/jwt",
|
||||||
|
"version": "5.2.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/lcobucci/jwt.git",
|
||||||
|
"reference": "0ba88aed12c04bd2ed9924f500673f32b67a6211"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/lcobucci/jwt/zipball/0ba88aed12c04bd2ed9924f500673f32b67a6211",
|
||||||
|
"reference": "0ba88aed12c04bd2ed9924f500673f32b67a6211",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-openssl": "*",
|
||||||
|
"ext-sodium": "*",
|
||||||
|
"php": "~8.1.0 || ~8.2.0 || ~8.3.0",
|
||||||
|
"psr/clock": "^1.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"infection/infection": "^0.27.0",
|
||||||
|
"lcobucci/clock": "^3.0",
|
||||||
|
"lcobucci/coding-standard": "^11.0",
|
||||||
|
"phpbench/phpbench": "^1.2.9",
|
||||||
|
"phpstan/extension-installer": "^1.2",
|
||||||
|
"phpstan/phpstan": "^1.10.7",
|
||||||
|
"phpstan/phpstan-deprecation-rules": "^1.1.3",
|
||||||
|
"phpstan/phpstan-phpunit": "^1.3.10",
|
||||||
|
"phpstan/phpstan-strict-rules": "^1.5.0",
|
||||||
|
"phpunit/phpunit": "^10.2.6"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"lcobucci/clock": ">= 3.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Lcobucci\\JWT\\": "src"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-3-Clause"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Luís Cobucci",
|
||||||
|
"email": "lcobucci@gmail.com",
|
||||||
|
"role": "Developer"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "A simple library to work with JSON Web Token and JSON Web Signature",
|
||||||
|
"keywords": [
|
||||||
|
"JWS",
|
||||||
|
"jwt"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/lcobucci/jwt/issues",
|
||||||
|
"source": "https://github.com/lcobucci/jwt/tree/5.2.0"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://github.com/lcobucci",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://www.patreon.com/lcobucci",
|
||||||
|
"type": "patreon"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2023-11-20T21:17:42+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "monolog/monolog",
|
"name": "monolog/monolog",
|
||||||
"version": "3.5.0",
|
"version": "3.5.0",
|
||||||
@ -2307,6 +2444,54 @@
|
|||||||
},
|
},
|
||||||
"time": "2021-02-03T23:26:27+00:00"
|
"time": "2021-02-03T23:26:27+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "psr/clock",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/php-fig/clock.git",
|
||||||
|
"reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d",
|
||||||
|
"reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^7.0 || ^8.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Psr\\Clock\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "PHP-FIG",
|
||||||
|
"homepage": "https://www.php-fig.org/"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Common interface for reading the clock.",
|
||||||
|
"homepage": "https://github.com/php-fig/clock",
|
||||||
|
"keywords": [
|
||||||
|
"clock",
|
||||||
|
"now",
|
||||||
|
"psr",
|
||||||
|
"psr-20",
|
||||||
|
"time"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/php-fig/clock/issues",
|
||||||
|
"source": "https://github.com/php-fig/clock/tree/1.0.0"
|
||||||
|
},
|
||||||
|
"time": "2022-11-25T14:36:26+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "psr/container",
|
"name": "psr/container",
|
||||||
"version": "2.0.2",
|
"version": "2.0.2",
|
||||||
@ -4338,5 +4523,5 @@
|
|||||||
"platform-overrides": {
|
"platform-overrides": {
|
||||||
"php": "8.2"
|
"php": "8.2"
|
||||||
},
|
},
|
||||||
"plugin-api-version": "2.3.0"
|
"plugin-api-version": "2.2.0"
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,10 @@ START TRANSACTION;
|
|||||||
|
|
||||||
DROP TABLE tskin;
|
DROP TABLE tskin;
|
||||||
|
|
||||||
|
ALTER TABLE tfavmenu_user CONVERT TO CHARACTER SET UTF8MB4;
|
||||||
|
ALTER TABLE tfiles_repo CONVERT TO CHARACTER SET UTF8MB4;
|
||||||
|
ALTER TABLE tfiles_repo_group CONVERT TO CHARACTER SET UTF8MB4;
|
||||||
|
|
||||||
ALTER TABLE `tusuario`
|
ALTER TABLE `tusuario`
|
||||||
ADD COLUMN `stop_lts_modal` TINYINT NOT NULL DEFAULT 0 AFTER `session_max_time_expire`;
|
ADD COLUMN `stop_lts_modal` TINYINT NOT NULL DEFAULT 0 AFTER `session_max_time_expire`;
|
||||||
|
|
||||||
@ -7708,6 +7712,40 @@ UPDATE `twelcome_tip` SET url = 'https://pandorafms.com/manual/!current/start?id
|
|||||||
|
|
||||||
DELETE FROM tconfig WHERE `token` = 'legacy_database_ha';
|
DELETE FROM tconfig WHERE `token` = 'legacy_database_ha';
|
||||||
|
|
||||||
|
-- Add new columns in tdeployment_hosts
|
||||||
|
ALTER TABLE `tdeployment_hosts` ADD COLUMN `deploy_method` ENUM('SSH', 'HTTP', 'HTTPS') DEFAULT 'SSH';
|
||||||
|
ALTER TABLE `tdeployment_hosts` ADD COLUMN `deploy_port` INT UNSIGNED NOT NULL DEFAULT 22;
|
||||||
|
ALTER TABLE `tdeployment_hosts` ADD COLUMN `server_port` INT UNSIGNED NOT NULL DEFAULT 41121;
|
||||||
|
ALTER TABLE `tdeployment_hosts` ADD COLUMN `temp_folder` VARCHAR(500) DEFAULT '/tmp';
|
||||||
|
|
||||||
|
UPDATE
|
||||||
|
`tdeployment_hosts`, `tconfig_os`
|
||||||
|
SET
|
||||||
|
`tdeployment_hosts`.`deploy_method` = 'HTTP',
|
||||||
|
`tdeployment_hosts`.`deploy_port` = 5985,
|
||||||
|
`tdeployment_hosts`.`temp_folder` = 'C:\Widnows\Temp'
|
||||||
|
WHERE
|
||||||
|
`tdeployment_hosts`.`id_os` = `tconfig_os`.`id_os` AND `tconfig_os`.`name` = 'Windows' AND `tdeployment_hosts`.`deployed` = 0;
|
||||||
|
|
||||||
|
-- Find the name of the foreign key constraint
|
||||||
|
SELECT @constraint_name := `constraint_name`
|
||||||
|
FROM `information_schema`.`key_column_usage`
|
||||||
|
WHERE `table_name` = 'tdeployment_hosts' AND `column_name` = 'id_os';
|
||||||
|
|
||||||
|
-- Drop the foreign key constraint using dynamic SQL
|
||||||
|
SET @drop_fk_query = CONCAT('ALTER TABLE `tdeployment_hosts` DROP FOREIGN KEY ', @constraint_name);
|
||||||
|
PREPARE stmt FROM @drop_fk_query;
|
||||||
|
EXECUTE stmt;
|
||||||
|
DEALLOCATE PREPARE stmt;
|
||||||
|
|
||||||
|
-- Drop unused columns in tdeployment_hosts
|
||||||
|
ALTER TABLE `tdeployment_hosts` DROP COLUMN `id_os`;
|
||||||
|
ALTER TABLE `tdeployment_hosts` DROP COLUMN `os_version`;
|
||||||
|
ALTER TABLE `tdeployment_hosts` DROP COLUMN `arch`;
|
||||||
|
|
||||||
|
-- Update all deployment recon tasks port
|
||||||
|
UPDATE `trecon_task` SET `field4` = 41121 WHERE `type` = 9;
|
||||||
|
|
||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('JWT_signature', 1);
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('JWT_signature', 1);
|
||||||
DELETE FROM tconfig WHERE `token` = 'loginhash_pwd';
|
DELETE FROM tconfig WHERE `token` = 'loginhash_pwd';
|
||||||
|
|
||||||
|
@ -41,39 +41,28 @@ ui_print_standard_header(
|
|||||||
);
|
);
|
||||||
|
|
||||||
ui_require_css_file('first_task');
|
ui_require_css_file('first_task');
|
||||||
?>
|
|
||||||
<?php
|
|
||||||
ui_print_info_message(['no_close' => true, 'message' => __('There are no clusters defined yet.') ]);
|
|
||||||
?>
|
|
||||||
|
|
||||||
<div class="new_task">
|
$msg = __('A cluster is a group of devices that provide the same service in high availability.').'<br>';
|
||||||
<div class="image_task">
|
|
||||||
<?php echo html_print_image('images/first_task/icono-cluster-activo.png', true, ['title' => __('Clusters')]); ?>
|
|
||||||
</div>
|
|
||||||
<div class="text_task">
|
|
||||||
<h3> <?php echo __('Create Cluster'); ?></h3>
|
|
||||||
<p id="description_task">
|
|
||||||
<?php
|
|
||||||
echo __('A cluster is a group of devices that provide the same service in high availability.').'<br><br>';
|
|
||||||
|
|
||||||
echo __('Depending on how they provide that service, we can find two types:').'<br><br>';
|
$msg .= __('Depending on how they provide that service, we can find two types:').'<br><br>';
|
||||||
|
|
||||||
echo __('<b>Clusters to balance the service load</b>: these are active - active (A/A) mode clusters. It means that all the nodes (or machines that compose it) are working. They must be working because if one stops working, it will overload the others.').'<br><br>';
|
$msg .= __('Clusters to balance the service load: these are active - active (A/A) mode clusters. It means that all the nodes (or machines that compose it) are working. They must be working because if one stops working, it will overload the others.').'<br><br>';
|
||||||
|
|
||||||
echo __('<b>Clusters to guarantee service</b>: these are active - passive (A/P) mode clusters. It means that one of the nodes (or machines that make up the cluster) will be running (primary) and another won\'t (secondary). When the primary goes down, the secondary must take over and give the service instead. Although many of the elements of this cluster are active-passive, it will also have active elements in both of them that indicate that the passive node is "online", so that in the case of a service failure in the master, the active node collects this information.');
|
$msg .= __('Clusters to guarantee service: these are active - passive (A/P) mode clusters. It means that one of the nodes (or machines that make up the cluster) will be running (primary) and another will not (secondary). When the primary goes down, the secondary must take over and give the service instead. Although many of the elements of this cluster are active-passive, it will also have active elements in both of them that indicate that the passive node is "online", so that in the case of a service failure in the master, the active node collects this information.');
|
||||||
?>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<?php
|
|
||||||
if (check_acl($config['id_user'], 0, 'AW')) {
|
|
||||||
?>
|
|
||||||
|
|
||||||
<form action='index.php?sec=estado&sec2=operation/cluster/cluster&op=new' method="post">
|
|
||||||
<input type="submit" class="button_task ui_toggle" value="<?php echo __('Create Cluster'); ?>" />
|
|
||||||
</form>
|
|
||||||
|
|
||||||
<?php
|
$button = false;
|
||||||
}
|
if (check_acl($config['id_user'], 0, 'AW')) {
|
||||||
?>
|
$button = "
|
||||||
</div>
|
<form action='index.php?sec=estado&sec2=operation/cluster/cluster&op=new' method='post'>
|
||||||
</div>
|
<input type='submit' class='button_task button_task_mini mrgn_0px_imp' value='".__('Create cluster')."' />
|
||||||
|
</form>";
|
||||||
|
}
|
||||||
|
|
||||||
|
echo ui_print_empty_view(
|
||||||
|
__('There are no defined clusters'),
|
||||||
|
$msg,
|
||||||
|
'clusters.svg',
|
||||||
|
$button
|
||||||
|
);
|
||||||
|
@ -14,36 +14,22 @@
|
|||||||
global $config;
|
global $config;
|
||||||
check_login();
|
check_login();
|
||||||
ui_require_css_file('first_task');
|
ui_require_css_file('first_task');
|
||||||
?>
|
$msg = __(
|
||||||
|
'Graphs are designed to show the data collected by %s in a temporary scale defined by the user. %s Graphs display data in real time. They are generated every time the operator requires any of them and display the up-to-date state.',
|
||||||
<div class="new_task">
|
|
||||||
<div class="image_task">
|
|
||||||
<?php echo html_print_image('images/first_task/icono_grande_custom_reporting.png', true, ['title' => __('Custom Graphs')]); ?>
|
|
||||||
</div>
|
|
||||||
<div class="text_task">
|
|
||||||
<h3> <?php echo __('Create Custom Graph'); ?></h3><p id="description_task">
|
|
||||||
<?php
|
|
||||||
echo __(
|
|
||||||
"Graphs are designed to show the data collected by %s in a temporary scale defined by the user.
|
|
||||||
%s Graphs display data in real time. They are generated every time the operator requires any of them and display the up-to-date state.
|
|
||||||
There are two types of graphs: The agent's automated graphs and the graphs the user customizes by using one or more modules to do so.",
|
|
||||||
get_product_name(),
|
get_product_name(),
|
||||||
get_product_name()
|
get_product_name()
|
||||||
|
);
|
||||||
|
|
||||||
|
$msg .= '<br><br>'.__("There are two types of graphs: The agent's automated graphs and the graphs the user customizes by using one or more modules to do so.");
|
||||||
|
|
||||||
|
$url_new = 'index.php?sec=reporting&sec2=godmode/reporting/graph_builder';
|
||||||
|
$button = '<form action="'.$url_new.'" method="post">
|
||||||
|
<input type="submit" class="button_task button_task_mini mrgn_0px_imp" value="'.__('Create custom graph').'" />
|
||||||
|
</form>';
|
||||||
|
|
||||||
|
echo ui_print_empty_view(
|
||||||
|
__('Create custom graph'),
|
||||||
|
$msg,
|
||||||
|
'custom-graph.svg',
|
||||||
|
$button
|
||||||
);
|
);
|
||||||
?>
|
|
||||||
</p>
|
|
||||||
<form action="index.php?sec=reporting&sec2=godmode/reporting/graph_builder" method="post">
|
|
||||||
<?php
|
|
||||||
html_print_action_buttons(
|
|
||||||
html_print_submit_button(
|
|
||||||
__('Create Custom Graph'),
|
|
||||||
'button_task',
|
|
||||||
false,
|
|
||||||
['icon' => 'wand'],
|
|
||||||
true
|
|
||||||
)
|
|
||||||
);
|
|
||||||
?>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
@ -34,37 +34,30 @@ check_login();
|
|||||||
ui_require_css_file('first_task');
|
ui_require_css_file('first_task');
|
||||||
|
|
||||||
if ($vconsoles_write || $vconsoles_manage) {
|
if ($vconsoles_write || $vconsoles_manage) {
|
||||||
?>
|
$msg = __(
|
||||||
|
'%s allows users to create visual maps on which each user is able to create his or her own monitoring map. The new visual console editor is much more practical, although the prior visual console editor had its advantages.',
|
||||||
<div class="new_task">
|
|
||||||
<div class="image_task">
|
|
||||||
<?php echo html_print_image('images/first_task/icono_grande_visualconsole.png', true, ['title' => __('Visual Console')]); ?>
|
|
||||||
</div>
|
|
||||||
<div class="text_task">
|
|
||||||
<h3> <?php echo __('Visual Consoles'); ?></h3><p id="description_task">
|
|
||||||
<?php
|
|
||||||
echo __(
|
|
||||||
'%s allows users to create visual maps on which each user is able to create his or her '.'own monitoring map. The new visual console editor is much more practical, although the prior '."visual console editor had its advantages. On the new visual console, we've been successful in "."imitating the sensation and touch of a drawing application like GIMP. We've also simplified the "."editor by dividing it into several subject-divided tabs named 'Data', 'Preview', 'Wizard', 'List of "."Elements' and 'Editor'. The items the %s Visual Map was designed to handle are "."'static images', 'percentage bars', 'module graphs' and 'simple values'.",
|
|
||||||
get_product_name(),
|
|
||||||
get_product_name()
|
get_product_name()
|
||||||
);
|
);
|
||||||
?>
|
|
||||||
</p>
|
$msg .= '<br><br>'.__(
|
||||||
<form action="index.php?sec=network&sec2=godmode/reporting/visual_console_builder" method="post">
|
"On the new visual console, we have been successful in imitating the sensation and touch of a drawing application like GIMP. We have also simplified the editor by dividing it into several subject-divided tabs named 'Data', 'Preview', 'Wizard', 'List of Elements' and 'Editor'."
|
||||||
<?php
|
);
|
||||||
html_print_input_hidden('edit_layout', 1);
|
|
||||||
html_print_action_buttons(
|
$msg .= '<br><br>'.__(
|
||||||
html_print_submit_button(
|
" The items the %s Visual Map was designed to handle are 'static images', 'percentage bars', 'module graphs' and 'simple values'",
|
||||||
__('Create a Visual Console'),
|
get_product_name()
|
||||||
'button_task',
|
);
|
||||||
false,
|
|
||||||
['icon' => 'wand'],
|
$url_new = 'index.php?sec=network&sec2=godmode/reporting/visual_console_builder';
|
||||||
true
|
$button = '<form action="'.$url_new.'" method="post">';
|
||||||
)
|
$button .= html_print_input_hidden('edit_layout', 1);
|
||||||
|
$button .= '<input type="submit" class="button_task button_task_mini mrgn_0px_imp" value="'.__('Create visual console').'" />';
|
||||||
|
$button .= '</form>';
|
||||||
|
|
||||||
|
echo ui_print_empty_view(
|
||||||
|
__('There are no customized visual consoles'),
|
||||||
|
$msg,
|
||||||
|
'visual-console.svg',
|
||||||
|
$button
|
||||||
);
|
);
|
||||||
?>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<?php
|
|
||||||
}
|
}
|
||||||
|
@ -31,40 +31,25 @@ global $config;
|
|||||||
|
|
||||||
check_login();
|
check_login();
|
||||||
ui_require_css_file('first_task');
|
ui_require_css_file('first_task');
|
||||||
?>
|
if ((bool) $agent_w === true) {
|
||||||
<?php if ((bool) $agent_w === true) { ?>
|
$msg = __(
|
||||||
<div class="new_task">
|
'A service is a way to group your IT resources based on their functionalities.
|
||||||
<div class="image_task">
|
|
||||||
<?php echo html_print_image('images/item-service.svg', true, ['title' => __('Services'), 'class' => 'w120px']); ?>
|
|
||||||
</div>
|
|
||||||
<div class="text_task">
|
|
||||||
<h3> <?php echo __('Services'); ?></h3>
|
|
||||||
<p id="description_task">
|
|
||||||
<?php
|
|
||||||
echo __(
|
|
||||||
"A service is a way to group your IT resources based on their functionalities.
|
|
||||||
A service could be e.g. your official website, your CRM system, your support application, or even your printers.
|
A service could be e.g. your official website, your CRM system, your support application, or even your printers.
|
||||||
Services are logical groups which can include hosts, routers, switches, firewalls, CRMs, ERPs, websites and numerous other services.
|
Services are logical groups which can include hosts, routers, switches, firewalls, CRMs, ERPs, websites and numerous other services.
|
||||||
By the following example, you're able to see more clearly what a service is:
|
By the following example, you are able to see more clearly what a service is:
|
||||||
A chip manufacturer sells computers by its website all around the world.
|
A chip manufacturer sells computers by its website all around the world.
|
||||||
His company consists of three big departments: A management, an on-line shop and support."
|
His company consists of three big departments: A management, an on-line shop and support.'
|
||||||
);
|
);
|
||||||
?>
|
|
||||||
</p>
|
$url_new = 'index.php?sec=estado&sec2=enterprise/godmode/services/services.service&action=new_service';
|
||||||
<form action="index.php?sec=estado&sec2=enterprise/godmode/services/services.service&action=new_service" method="post">
|
$button = '<form action="'.$url_new.'" method="post">
|
||||||
<?php
|
<input type="submit" class="button_task button_task_mini mrgn_0px_imp" value="'.__('Configure services').'" />
|
||||||
html_print_action_buttons(
|
</form>';
|
||||||
html_print_submit_button(
|
|
||||||
__('Create a service'),
|
echo ui_print_empty_view(
|
||||||
'button_task',
|
__('No services found'),
|
||||||
false,
|
$msg,
|
||||||
['icon' => 'wand'],
|
'services.svg',
|
||||||
true
|
$button
|
||||||
)
|
|
||||||
);
|
);
|
||||||
?>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<?php
|
|
||||||
}
|
}
|
||||||
|
@ -140,7 +140,6 @@ echo sprintf('<div id="header_table" class="header_table_%s">', $menuTypeClass);
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$search_bar .= '<div id="result_order" class="result_order"></div>';
|
|
||||||
$search_bar .= '<input id="keywords" name="keywords"';
|
$search_bar .= '<input id="keywords" name="keywords"';
|
||||||
if (!isset($config['search_keywords'])) {
|
if (!isset($config['search_keywords'])) {
|
||||||
$search_bar .= "value='".__('Enter keywords to search')."'";
|
$search_bar .= "value='".__('Enter keywords to search')."'";
|
||||||
@ -408,6 +407,27 @@ echo sprintf('<div id="header_table" class="header_table_%s">', $menuTypeClass);
|
|||||||
$modal_box .= '<a href="https://discord.com/invite/xVt2ruSxmr" target="_blank">'.__('Join discord community').'</a>';
|
$modal_box .= '<a href="https://discord.com/invite/xVt2ruSxmr" target="_blank">'.__('Join discord community').'</a>';
|
||||||
$modal_box .= '</div>';
|
$modal_box .= '</div>';
|
||||||
|
|
||||||
|
// Move help modal (header) fix z-index.
|
||||||
|
$modal_box .= '
|
||||||
|
<script>
|
||||||
|
$(document).ready(function() {
|
||||||
|
let helpModalIcon = $("#modal-help-content > img");
|
||||||
|
let helpModal = $("#modal_help");
|
||||||
|
|
||||||
|
if (helpModalIcon.length > 0) {
|
||||||
|
let distanceRight =
|
||||||
|
$(window).width() - (helpModalIcon.offset().left + helpModalIcon.width());
|
||||||
|
|
||||||
|
helpModal.css("z-index", "3");
|
||||||
|
helpModal.css("position", "fixed");
|
||||||
|
helpModal.css("top", "16px");
|
||||||
|
helpModal.css("right", `${Math.floor(distanceRight) + 34}px`);
|
||||||
|
helpModal.appendTo(document.body);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
';
|
||||||
|
|
||||||
if ($config['activate_feedback'] === '1') {
|
if ($config['activate_feedback'] === '1') {
|
||||||
$modal_help = html_print_div(
|
$modal_help = html_print_div(
|
||||||
[
|
[
|
||||||
@ -884,6 +904,7 @@ echo sprintf('<div id="header_table" class="header_table_%s">', $menuTypeClass);
|
|||||||
},
|
},
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
$('#result_order').html(data);
|
$('#result_order').html(data);
|
||||||
|
resizeSearchHeader()
|
||||||
},
|
},
|
||||||
error: function (data) {
|
error: function (data) {
|
||||||
console.error("Fatal error in AJAX call to interpreter order", data)
|
console.error("Fatal error in AJAX call to interpreter order", data)
|
||||||
@ -1208,4 +1229,8 @@ echo sprintf('<div id="header_table" class="header_table_%s">', $menuTypeClass);
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
/* ]]> */
|
/* ]]> */
|
||||||
|
|
||||||
|
$(window).resize(function () {
|
||||||
|
resizeSearchHeader()
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -558,7 +558,7 @@ if ($broker === false) {
|
|||||||
$tableAgent->data['caption_interval'][0] = __('Interval').ui_print_help_tip(__('Time that elapses when updating data in the agent. Remote modules have their own interval, but this time is used to find out if an agent stopped responding (unknown state). When twice the time interval defined in an agent goes by, it is considered to be in unknown state (or also if all its remote modules are in unknown state). An agent may be in unknown state if all of its local (software agent-based) modules have a last contact time longer than twice the agent interval, even if it has updated remote modules.'), true);
|
$tableAgent->data['caption_interval'][0] = __('Interval').ui_print_help_tip(__('Time that elapses when updating data in the agent. Remote modules have their own interval, but this time is used to find out if an agent stopped responding (unknown state). When twice the time interval defined in an agent goes by, it is considered to be in unknown state (or also if all its remote modules are in unknown state). An agent may be in unknown state if all of its local (software agent-based) modules have a last contact time longer than twice the agent interval, even if it has updated remote modules.'), true);
|
||||||
// $tableAgent->rowstyle['interval'] = 'width: 260px';
|
// $tableAgent->rowstyle['interval'] = 'width: 260px';
|
||||||
$tableAgent->rowclass['interval'] = 'w540px';
|
$tableAgent->rowclass['interval'] = 'w540px';
|
||||||
$tableAgent->data['interval'][0] = html_print_extended_select_for_time(
|
$tableAgent->data['interval'][0] = html_print_select_agentmodule_interval(
|
||||||
'intervalo',
|
'intervalo',
|
||||||
$intervalo,
|
$intervalo,
|
||||||
'',
|
'',
|
||||||
@ -936,7 +936,7 @@ $switchButtons[] = html_print_radio_button_extended(
|
|||||||
);
|
);
|
||||||
|
|
||||||
$tableAdvancedAgent->data['module_definition'][] = html_print_label_input_block(
|
$tableAdvancedAgent->data['module_definition'][] = html_print_label_input_block(
|
||||||
__('Module definition').ui_print_help_tip(__('Three working modes can be selected for module definition. Learning mode: Default mode, if an XML arrives with new modules, they will be created automatically; it is a learning behavior. Normal mode: If an XML arrives with new modules, they will only be created if they are previously declared in the Console. Autodisable mode: It is the same as learning mode, but if all modules go into unknown, the agent will be disabled until information arrives again.'), true),
|
__('Module definition').ui_print_help_tip(__('Three working modes can be selected for module definition. Learning mode: Default mode, if an XML arrives with new modules, they will be created automatically; it is a learning behavior. Normal mode: If an XML arrives with new modules, they will only be created if they are previously declared in the Console. Autodisable mode: It is the same as learning mode, but if all modules go into unknown, the agent will be disabled until information arrives again.'), true).clippy_context_help('modules_not_learning_mode'),
|
||||||
html_print_div(
|
html_print_div(
|
||||||
[
|
[
|
||||||
'class' => 'switch_radio_button',
|
'class' => 'switch_radio_button',
|
||||||
@ -1297,7 +1297,6 @@ if ($modo == 0) {
|
|||||||
echo "<span id='modules_not_learning_mode_context_help' class='invisible'>";
|
echo "<span id='modules_not_learning_mode_context_help' class='invisible'>";
|
||||||
}
|
}
|
||||||
|
|
||||||
echo clippy_context_help('modules_not_learning_mode');
|
|
||||||
echo '</span>';
|
echo '</span>';
|
||||||
|
|
||||||
if ($new_agent === false) {
|
if ($new_agent === false) {
|
||||||
@ -1434,15 +1433,15 @@ ui_require_jquery_file('bgiframe');
|
|||||||
|
|
||||||
function show_modules_not_learning_mode_context_help() {
|
function show_modules_not_learning_mode_context_help() {
|
||||||
if ($("input[name='modo'][value=0]").is(':checked')) {
|
if ($("input[name='modo'][value=0]").is(':checked')) {
|
||||||
$("#modules_not_learning_mode_context_help").show().css('padding-right','8px');
|
$(".div-modules_not_learning_mode").show();
|
||||||
}
|
} else {
|
||||||
else {
|
$(".div-modules_not_learning_mode").hide();
|
||||||
$("#modules_not_learning_mode_context_help").hide();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$(document).ready (function() {
|
$(document).ready (function() {
|
||||||
|
show_modules_not_learning_mode_context_help();
|
||||||
|
|
||||||
var $id_agent = '<?php echo $id_agente; ?>';
|
var $id_agent = '<?php echo $id_agente; ?>';
|
||||||
var previous_primary_group_select;
|
var previous_primary_group_select;
|
||||||
|
@ -1501,6 +1501,11 @@ if ($update_module === true || $create_module === true) {
|
|||||||
$min = (int) get_parameter('min');
|
$min = (int) get_parameter('min');
|
||||||
$max = (int) get_parameter('max');
|
$max = (int) get_parameter('max');
|
||||||
$interval = (int) get_parameter('module_interval', $intervalo);
|
$interval = (int) get_parameter('module_interval', $intervalo);
|
||||||
|
// Limit module interval to at least 60 secs.
|
||||||
|
if ($interval > 0) {
|
||||||
|
$interval = max($interval, 60);
|
||||||
|
}
|
||||||
|
|
||||||
$ff_interval = (int) get_parameter('module_ff_interval');
|
$ff_interval = (int) get_parameter('module_ff_interval');
|
||||||
$quiet_module = (int) get_parameter('quiet_module');
|
$quiet_module = (int) get_parameter('quiet_module');
|
||||||
$cps_module = (int) get_parameter('cps_module');
|
$cps_module = (int) get_parameter('cps_module');
|
||||||
@ -2425,10 +2430,7 @@ if ($delete_module) {
|
|||||||
if ($error != 0) {
|
if ($error != 0) {
|
||||||
ui_print_error_message(__('There was a problem deleting the module'));
|
ui_print_error_message(__('There was a problem deleting the module'));
|
||||||
} else {
|
} else {
|
||||||
echo '<script type="text/javascript">
|
ui_print_success_message(__('Module deleted succesfully'));
|
||||||
location="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=module&id_agente='.$id_agente.'";
|
|
||||||
alert("'.__('Module deleted succesfully').'");
|
|
||||||
</script>';
|
|
||||||
|
|
||||||
$agent = db_get_row('tagente', 'id_agente', $id_agente);
|
$agent = db_get_row('tagente', 'id_agente', $id_agente);
|
||||||
db_pandora_audit(
|
db_pandora_audit(
|
||||||
|
@ -1208,7 +1208,7 @@ $createModuleTable->data[1][] = html_print_label_input_block(
|
|||||||
html_print_anchor(
|
html_print_anchor(
|
||||||
[
|
[
|
||||||
'href' => 'https://pandorafms.com/Library/Library/',
|
'href' => 'https://pandorafms.com/Library/Library/',
|
||||||
'class' => 'color-black-grey invert_filter',
|
'class' => 'color-black-grey',
|
||||||
'content' => __('Get more modules on Monitoring Library'),
|
'content' => __('Get more modules on Monitoring Library'),
|
||||||
],
|
],
|
||||||
true
|
true
|
||||||
@ -1365,4 +1365,9 @@ html_print_div(
|
|||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$(document).ready(function () {
|
||||||
|
$('#module_action').select2('open');
|
||||||
|
$('#module_action').select2('close');
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -442,7 +442,7 @@ $tableBasicThresholds->rowclass = [];
|
|||||||
$tableBasicThresholds->data = [];
|
$tableBasicThresholds->data = [];
|
||||||
|
|
||||||
// WARNING THRESHOLD.
|
// WARNING THRESHOLD.
|
||||||
$tableBasicThresholds->rowclass['caption_warning_threshold'] = 'field_half_width pdd_t_10px';
|
$tableBasicThresholds->rowclass['caption_warning_threshold'] = 'field_half_width';
|
||||||
$tableBasicThresholds->rowclass['warning_threshold'] = 'field_half_width';
|
$tableBasicThresholds->rowclass['warning_threshold'] = 'field_half_width';
|
||||||
$tableBasicThresholds->data['caption_warning_threshold'][0] .= __('Warning threshold').' ';
|
$tableBasicThresholds->data['caption_warning_threshold'][0] .= __('Warning threshold').' ';
|
||||||
|
|
||||||
@ -617,7 +617,7 @@ $tableBasicThresholds->data['critical_threshold'][0] .= html_print_input_text(
|
|||||||
$classdisabledBecauseInPolicy
|
$classdisabledBecauseInPolicy
|
||||||
);
|
);
|
||||||
|
|
||||||
$table_simple->rowstyle['thresholds_table'] = 'margin-top: 15px;height: 400px;width: 100%';
|
$table_simple->rowstyle['thresholds_table'] = 'margin-top: 15px;height: 450px;width: 100%';
|
||||||
$table_simple->cellclass['thresholds_table'][0] = 'table_section half_section_left';
|
$table_simple->cellclass['thresholds_table'][0] = 'table_section half_section_left';
|
||||||
$table_simple->data['thresholds_table'][0] = html_print_table($tableBasicThresholds, true);
|
$table_simple->data['thresholds_table'][0] = html_print_table($tableBasicThresholds, true);
|
||||||
if (modules_is_string_type($id_module_type) === false || (bool) $edit === true) {
|
if (modules_is_string_type($id_module_type) === false || (bool) $edit === true) {
|
||||||
@ -705,7 +705,19 @@ if ((int) $moduletype === MODULE_DATA) {
|
|||||||
// be taken the agent interval (this code is at configurar_agente.php).
|
// be taken the agent interval (this code is at configurar_agente.php).
|
||||||
} else {
|
} else {
|
||||||
$interval = ($interval === '') ? '300' : $interval;
|
$interval = ($interval === '') ? '300' : $interval;
|
||||||
$outputExecutionInterval = html_print_extended_select_for_time('module_interval', $interval, '', '', '0', false, true, false, false, $classdisabledBecauseInPolicy, $disabledBecauseInPolicy);
|
$outputExecutionInterval = html_print_select_agentmodule_interval(
|
||||||
|
'module_interval',
|
||||||
|
$interval,
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
'0',
|
||||||
|
false,
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
$classdisabledBecauseInPolicy,
|
||||||
|
$disabledBecauseInPolicy
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$module_id_policy_module = 0;
|
$module_id_policy_module = 0;
|
||||||
@ -884,7 +896,7 @@ $tagsAvailableData .= html_print_image(
|
|||||||
[
|
[
|
||||||
'id' => 'right',
|
'id' => 'right',
|
||||||
'title' => __('Add tags to module'),
|
'title' => __('Add tags to module'),
|
||||||
'class' => 'main_menu_icon invert_filter clickable mrgn_lft_5px',
|
'class' => 'main_menu_icon invert_filter clickable mrgn_lft_5px black-and-white',
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -712,9 +712,9 @@ foreach ($simple_alerts as $alert) {
|
|||||||
WHERE id = '.$alert['id_alert_template']
|
WHERE id = '.$alert['id_alert_template']
|
||||||
);
|
);
|
||||||
if ($default_action != '') {
|
if ($default_action != '') {
|
||||||
$data[3] .= "<tr><td colspan='2'><ul class='action_list'><li>";
|
$data[3] .= "<tr><td colspan='2'>";
|
||||||
$data[3] .= db_get_sql("SELECT name FROM talert_actions WHERE id = $default_action").' <em>('.__('Default').')</em>';
|
$data[3] .= db_get_sql("SELECT name FROM talert_actions WHERE id = $default_action").' <em>('.__('Default').')</em>';
|
||||||
$data[3] .= '</li></ul></td>';
|
$data[3] .= '</td>';
|
||||||
$data[3] .= '</tr>';
|
$data[3] .= '</tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -722,7 +722,7 @@ foreach ($simple_alerts as $alert) {
|
|||||||
$data[3] .= '<tr class="alert_action_list">';
|
$data[3] .= '<tr class="alert_action_list">';
|
||||||
$data[3] .= '<td>';
|
$data[3] .= '<td>';
|
||||||
$data[3] .= '<ul class="action_list inline_line">';
|
$data[3] .= '<ul class="action_list inline_line">';
|
||||||
$data[3] .= '<li class="inline_line">';
|
$data[3] .= '<li class="">';
|
||||||
if ($alert['disabled']) {
|
if ($alert['disabled']) {
|
||||||
$data[3] .= '<font class="action_name italic_a">';
|
$data[3] .= '<font class="action_name italic_a">';
|
||||||
} else {
|
} else {
|
||||||
@ -758,7 +758,7 @@ foreach ($simple_alerts as $alert) {
|
|||||||
|
|
||||||
$data[3] .= '</td>';
|
$data[3] .= '</td>';
|
||||||
|
|
||||||
$data[3] .= '<td class="flex_center">';
|
$data[3] .= '<td class="flex_center table_action_buttons">';
|
||||||
$data[3] .= ui_print_help_tip(__('The default actions will be executed every time that the alert is fired and no other action is executed'), true);
|
$data[3] .= ui_print_help_tip(__('The default actions will be executed every time that the alert is fired and no other action is executed'), true);
|
||||||
// Is possible manage actions if have LW permissions in the agent group of the alert module
|
// Is possible manage actions if have LW permissions in the agent group of the alert module
|
||||||
if (check_acl_one_of_groups($config['id_user'], $all_groups, 'LW')) {
|
if (check_acl_one_of_groups($config['id_user'], $all_groups, 'LW')) {
|
||||||
@ -786,7 +786,7 @@ foreach ($simple_alerts as $alert) {
|
|||||||
true,
|
true,
|
||||||
[
|
[
|
||||||
'title' => __('Update action'),
|
'title' => __('Update action'),
|
||||||
'class' => 'main_menu_icon invert_filter',
|
'class' => 'main_menu_icon invert_filter action_button_hidden',
|
||||||
'onclick' => 'show_display_update_action(\''.$action['id'].'\',\''.$alert['id'].'\',\''.$alert['id_agent_module'].'\',\''.$action_id.'\',\''.$alert['id_agent_module'].'\')',
|
'onclick' => 'show_display_update_action(\''.$action['id'].'\',\''.$alert['id'].'\',\''.$alert['id_agent_module'].'\',\''.$action_id.'\',\''.$alert['id_agent_module'].'\')',
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
@ -1333,10 +1333,9 @@ function show_display_update_action(id_module_action, alert_id, alert_id_agent_m
|
|||||||
},
|
},
|
||||||
open: function() {
|
open: function() {
|
||||||
$(`#update_action-div-${alert_id}`).css('overflow', 'hidden');
|
$(`#update_action-div-${alert_id}`).css('overflow', 'hidden');
|
||||||
//$(`#action_select_ajax-${alert_id}`).select2({
|
$(`#update_action-div-${alert_id} select`).select2({
|
||||||
// tags: true,
|
dropdownParent: $(this).parent()
|
||||||
// dropdownParent: $(`#update_action-div-${alert_id}`)
|
});
|
||||||
//});
|
|
||||||
},
|
},
|
||||||
width: 600,
|
width: 600,
|
||||||
height: 350
|
height: 350
|
||||||
|
@ -350,7 +350,8 @@ function update_template($step)
|
|||||||
'previous_name' => $previous_name,
|
'previous_name' => $previous_name,
|
||||||
];
|
];
|
||||||
|
|
||||||
if ($name_check === false) {
|
$original_name = db_get_value('name', 'talert_templates', 'id', $id);
|
||||||
|
if ($name_check === false || $original_name === $name_check) {
|
||||||
$result = alerts_update_alert_template($id, $values);
|
$result = alerts_update_alert_template($id, $values);
|
||||||
} else {
|
} else {
|
||||||
ui_print_warning_message(__('Another template with the same name already exists'));
|
ui_print_warning_message(__('Another template with the same name already exists'));
|
||||||
|
@ -723,6 +723,11 @@ if ($is_management_allowed === true
|
|||||||
['id_grupo' => $id_group]
|
['id_grupo' => $id_group]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$result_user_profile = db_process_sql_delete(
|
||||||
|
'tusuario_perfil',
|
||||||
|
['id_grupo' => $id_group]
|
||||||
|
);
|
||||||
|
|
||||||
if ($result && (!$usedGroup['return'])) {
|
if ($result && (!$usedGroup['return'])) {
|
||||||
db_process_sql_delete(
|
db_process_sql_delete(
|
||||||
'tfavmenu_user',
|
'tfavmenu_user',
|
||||||
@ -1128,7 +1133,7 @@ if ($tab == 'tree') {
|
|||||||
$confirm_message = __('The child groups will be updated to use the parent id of the deleted group').'. '.$confirm_message;
|
$confirm_message = __('The child groups will be updated to use the parent id of the deleted group').'. '.$confirm_message;
|
||||||
}
|
}
|
||||||
|
|
||||||
$table->data[$key][6] .= '<a href="'.$url_delete.'" onClick="if (!confirm(\' '.$confirm_message.'\')) return false;">'.html_print_image(
|
$table->data[$key][6] .= '<a href="'.$url_delete.'" onClick="event.preventDefault(); return preprocessDeletion('.$group['id_grupo'].', \''.$url_delete.'\',\''.$confirm_message.'\');">'.html_print_image(
|
||||||
'images/delete.svg',
|
'images/delete.svg',
|
||||||
true,
|
true,
|
||||||
[
|
[
|
||||||
@ -1214,7 +1219,6 @@ $tab = 'group_edition';
|
|||||||
});
|
});
|
||||||
|
|
||||||
$('#button-filter').on('click', function(event) {
|
$('#button-filter').on('click', function(event) {
|
||||||
console.log('here');
|
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|
||||||
load_tree(show_full_hirearchy, show_not_init_agents, show_not_init_modules);
|
load_tree(show_full_hirearchy, show_not_init_agents, show_not_init_modules);
|
||||||
@ -1314,5 +1318,39 @@ $tab = 'group_edition';
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function preprocessDeletion(group_id, delete_URL, confirm_text) {
|
||||||
|
var parameters = {};
|
||||||
|
parameters['page'] = 'include/ajax/group';
|
||||||
|
parameters['method'] = 'checkGroupIsLinkedToElement';
|
||||||
|
parameters['group_id'] = group_id;
|
||||||
|
parameters['table_name'] = 'tusuario_perfil';
|
||||||
|
parameters['field_name'] = 'id_grupo';
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: "<?php echo ui_get_full_url('ajax.php', false, false, false); ?>",
|
||||||
|
data: parameters,
|
||||||
|
success: function(data) {
|
||||||
|
if (data.result == '1') {
|
||||||
|
confirmDialog({
|
||||||
|
title: '<?php echo __('Are you sure?'); ?>',
|
||||||
|
message: '<?php echo __('There are user profiles assigned to this group which will be deleted. Note that a user with no associated profiles will not be able to log in. Please ensure you want to proceed with the deletion.'); ?>',
|
||||||
|
onAccept: function() {
|
||||||
|
window.location.assign(delete_URL);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
if (!confirm(confirm_text)) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
window.location.assign(delete_URL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
dataType: "json"
|
||||||
|
});
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
@ -131,6 +131,10 @@ if ($update_agents) {
|
|||||||
) {
|
) {
|
||||||
if (get_parameter('interval') != -2) {
|
if (get_parameter('interval') != -2) {
|
||||||
$values['intervalo'] = get_parameter('interval');
|
$values['intervalo'] = get_parameter('interval');
|
||||||
|
|
||||||
|
if ($values['intervalo'] < 60) {
|
||||||
|
$values['intervalo'] = 60;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -753,7 +757,7 @@ $table->data[1][0] = html_print_label_input_block(
|
|||||||
|
|
||||||
$table->data[1][1] = html_print_label_input_block(
|
$table->data[1][1] = html_print_label_input_block(
|
||||||
__('Interval'),
|
__('Interval'),
|
||||||
html_print_extended_select_for_time(
|
html_print_select_agentmodule_interval(
|
||||||
'interval',
|
'interval',
|
||||||
-2,
|
-2,
|
||||||
'',
|
'',
|
||||||
|
@ -865,7 +865,7 @@ $table->data[15][0] = html_print_label_input_block(
|
|||||||
|
|
||||||
$table->data[16][0] = html_print_label_input_block(
|
$table->data[16][0] = html_print_label_input_block(
|
||||||
__('Interval'),
|
__('Interval'),
|
||||||
html_print_extended_select_for_time(
|
html_print_select_agentmodule_interval(
|
||||||
'module_interval',
|
'module_interval',
|
||||||
0,
|
0,
|
||||||
'',
|
'',
|
||||||
@ -2444,6 +2444,10 @@ function process_manage_edit($module_name, $agents_select=null, $module_status='
|
|||||||
case 'module_interval':
|
case 'module_interval':
|
||||||
if ($value != 0) {
|
if ($value != 0) {
|
||||||
$values[$field] = $value;
|
$values[$field] = $value;
|
||||||
|
|
||||||
|
if ($values[$field] < 60) {
|
||||||
|
$values[$field] = 60;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -426,14 +426,14 @@ if ($access_console_node === true) {
|
|||||||
|
|
||||||
if ((bool) check_acl($config['id_user'], 0, 'PM') === true) {
|
if ((bool) check_acl($config['id_user'], 0, 'PM') === true) {
|
||||||
// Setup.
|
// Setup.
|
||||||
$menu_godmode['gsetup']['text'] = __('Setup');
|
$menu_godmode['gsetup']['text'] = __('Settings');
|
||||||
$menu_godmode['gsetup']['sec2'] = 'general';
|
$menu_godmode['gsetup']['sec2'] = 'general';
|
||||||
$menu_godmode['gsetup']['id'] = 'god-setup';
|
$menu_godmode['gsetup']['id'] = 'god-setup';
|
||||||
|
|
||||||
$sub = [];
|
$sub = [];
|
||||||
|
|
||||||
// Options Setup.
|
// Options Setup.
|
||||||
$sub['general']['text'] = __('Setup');
|
$sub['general']['text'] = __('System Settings');
|
||||||
$sub['general']['id'] = 'Setup';
|
$sub['general']['id'] = 'Setup';
|
||||||
$sub['general']['type'] = 'direct';
|
$sub['general']['type'] = 'direct';
|
||||||
$sub['general']['subtype'] = 'nolink';
|
$sub['general']['subtype'] = 'nolink';
|
||||||
@ -738,7 +738,7 @@ if ($access_console_node === true) {
|
|||||||
$sub['operation/agentes/exportdata']['id'] = 'export_data';
|
$sub['operation/agentes/exportdata']['id'] = 'export_data';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((bool) check_acl($config['id_user'], 0, 'PM') === true) {
|
if ((bool) check_acl($config['id_user'], 0, 'PM') === true || enterprise_hook('enterprise_acl', [$config['id_user'], 'tools', 'operation/extensions', false]) === true) {
|
||||||
$sub['godmode/files_repo/files_repo']['text'] = __('File repository');
|
$sub['godmode/files_repo/files_repo']['text'] = __('File repository');
|
||||||
$sub['godmode/files_repo/files_repo']['id'] = 'file_repository';
|
$sub['godmode/files_repo/files_repo']['id'] = 'file_repository';
|
||||||
}
|
}
|
||||||
|
@ -82,6 +82,11 @@ $snmp_oid = (string) get_parameter('snmp_oid');
|
|||||||
$snmp_community = (string) get_parameter('snmp_community');
|
$snmp_community = (string) get_parameter('snmp_community');
|
||||||
$id_module_group = (int) get_parameter('id_module_group');
|
$id_module_group = (int) get_parameter('id_module_group');
|
||||||
$module_interval = (int) get_parameter('module_interval');
|
$module_interval = (int) get_parameter('module_interval');
|
||||||
|
// Limit module interval to at least 60 secs.
|
||||||
|
if ($module_interval > 0) {
|
||||||
|
$module_interval = max($module_interval, 60);
|
||||||
|
}
|
||||||
|
|
||||||
$id_group = (int) get_parameter('id_group');
|
$id_group = (int) get_parameter('id_group');
|
||||||
$plugin_user = (string) get_parameter('plugin_user');
|
$plugin_user = (string) get_parameter('plugin_user');
|
||||||
$plugin_pass = io_input_password((string) get_parameter('plugin_pass'));
|
$plugin_pass = io_input_password((string) get_parameter('plugin_pass'));
|
||||||
|
@ -154,7 +154,7 @@ $table->data[2][0] = html_print_label_input_block(
|
|||||||
|
|
||||||
$table->data[2][1] = html_print_label_input_block(
|
$table->data[2][1] = html_print_label_input_block(
|
||||||
__('Interval'),
|
__('Interval'),
|
||||||
html_print_extended_select_for_time('module_interval', $module_interval, '', '', '0', false, true)
|
html_print_select_agentmodule_interval('module_interval', $module_interval, '', '', '0', false, true)
|
||||||
);
|
);
|
||||||
|
|
||||||
$dynamic_interval_img = '<a onclick="advanced_option_dynamic()" class="mrgn_lft_5px mrgn_top_6px">'.html_print_image(
|
$dynamic_interval_img = '<a onclick="advanced_option_dynamic()" class="mrgn_lft_5px mrgn_top_6px">'.html_print_image(
|
||||||
|
@ -1454,7 +1454,7 @@ $class = 'databox filters';
|
|||||||
<td class="bolder">
|
<td class="bolder">
|
||||||
<?php
|
<?php
|
||||||
echo __('Module').ui_print_help_tip(
|
echo __('Module').ui_print_help_tip(
|
||||||
__('Case insensitive regular expression or string for module name. For example: if you use this field with "Module exact match" enabled then this field has to be fulfilled with the literally string of the module name, if not you can use a regular expression. Example: .*usage.* will match: cpu_usage, vram usage in matchine 1.'),
|
__('Case insensitive regular expression or string for module name. For example: if you use this field with "Module exact match" enabled then this field has to be fulfilled with the literally string of the module name, if not you can use a regular expression. Example: %s will match: cpu_usage, vram usage in matchine 1.', '.*usage.*'),
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
?>
|
?>
|
||||||
@ -2338,7 +2338,7 @@ if (is_metaconsole() === true) {
|
|||||||
if ($idAgent) {
|
if ($idAgent) {
|
||||||
$sql = 'SELECT id_agente_modulo, nombre
|
$sql = 'SELECT id_agente_modulo, nombre
|
||||||
FROM tagente_modulo
|
FROM tagente_modulo
|
||||||
WHERE id_agente = '.$idAgent.' AND delete_pending = 0';
|
WHERE id_agente = "'.$idAgent['id_agent'].'" AND delete_pending = 0';
|
||||||
|
|
||||||
if ($meta) {
|
if ($meta) {
|
||||||
$connection = metaconsole_get_connection($server_name);
|
$connection = metaconsole_get_connection($server_name);
|
||||||
|
@ -911,7 +911,7 @@ switch ($action) {
|
|||||||
|
|
||||||
|
|
||||||
// Admin options only for RM flag.
|
// Admin options only for RM flag.
|
||||||
if (check_acl($config['id_user'], 0, 'RM')) {
|
if (check_acl($config['id_user'], 0, 'RR')) {
|
||||||
$table->head[$next] = __('Private');
|
$table->head[$next] = __('Private');
|
||||||
$table->headstyle[$next] = 'min-width: 40px;text-align: left;';
|
$table->headstyle[$next] = 'min-width: 40px;text-align: left;';
|
||||||
$table->size[$next] = '2%';
|
$table->size[$next] = '2%';
|
||||||
@ -929,7 +929,7 @@ switch ($action) {
|
|||||||
|
|
||||||
$next++;
|
$next++;
|
||||||
$op_column = false;
|
$op_column = false;
|
||||||
if (is_metaconsole() === false) {
|
if (is_metaconsole() === false && check_acl($config['id_user'], 0, 'RM')) {
|
||||||
$op_column = true;
|
$op_column = true;
|
||||||
$table->head[$next] = '<span title="Operations">'.__('Op.').'</span>'.html_print_checkbox(
|
$table->head[$next] = '<span title="Operations">'.__('Op.').'</span>'.html_print_checkbox(
|
||||||
'all_delete',
|
'all_delete',
|
||||||
@ -1082,7 +1082,7 @@ switch ($action) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Admin options only for RM flag.
|
// Admin options only for RM flag.
|
||||||
if (check_acl($config['id_user'], 0, 'RM')) {
|
if (check_acl($config['id_user'], 0, 'RR')) {
|
||||||
if ($report['private'] == 1) {
|
if ($report['private'] == 1) {
|
||||||
$data[$next] = __('Yes');
|
$data[$next] = __('Yes');
|
||||||
} else {
|
} else {
|
||||||
@ -2408,10 +2408,15 @@ switch ($action) {
|
|||||||
$values['server_name'] = get_parameter('combo_server_sql');
|
$values['server_name'] = get_parameter('combo_server_sql');
|
||||||
|
|
||||||
if ($sql !== '') {
|
if ($sql !== '') {
|
||||||
|
// Replaces possible macros to check the validity of the query
|
||||||
|
$macros_sql = $sql;
|
||||||
|
$macros_sql = str_replace('_start_date_', '0', $macros_sql);
|
||||||
|
$macros_sql = str_replace('_end_date_', 'NOW()', $macros_sql);
|
||||||
|
|
||||||
if ($values['server_name'] === 'all') {
|
if ($values['server_name'] === 'all') {
|
||||||
$servers_connection = metaconsole_get_connections();
|
$servers_connection = metaconsole_get_connections();
|
||||||
foreach ($servers_connection as $key => $s) {
|
foreach ($servers_connection as $key => $s) {
|
||||||
$good_format = db_validate_sql($sql, $s['server_name']);
|
$good_format = db_validate_sql($macros_sql, $s['server_name']);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reconnected in nodo if exist.
|
// Reconnected in nodo if exist.
|
||||||
@ -2423,9 +2428,9 @@ switch ($action) {
|
|||||||
}
|
}
|
||||||
} else if ($server_id === 0) {
|
} else if ($server_id === 0) {
|
||||||
// Connect with node if not exist conexion.
|
// Connect with node if not exist conexion.
|
||||||
$good_format = db_validate_sql($sql, (is_metaconsole() === true) ? $values['server_name'] : false);
|
$good_format = db_validate_sql($macros_sql, (is_metaconsole() === true) ? $values['server_name'] : false);
|
||||||
} else {
|
} else {
|
||||||
$good_format = db_validate_sql($sql);
|
$good_format = db_validate_sql($macros_sql);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if ($values['type'] == 'url') {
|
} else if ($values['type'] == 'url') {
|
||||||
@ -3353,10 +3358,15 @@ switch ($action) {
|
|||||||
|
|
||||||
|
|
||||||
if ($sql !== '') {
|
if ($sql !== '') {
|
||||||
|
// Replaces possible macros to check the validity of the query
|
||||||
|
$macros_sql = $sql;
|
||||||
|
$macros_sql = str_replace('_start_date_', '0', $macros_sql);
|
||||||
|
$macros_sql = str_replace('_end_date_', 'NOW()', $macros_sql);
|
||||||
|
|
||||||
if ($values['server_name'] === 'all') {
|
if ($values['server_name'] === 'all') {
|
||||||
$servers_connection = metaconsole_get_connections();
|
$servers_connection = metaconsole_get_connections();
|
||||||
foreach ($servers_connection as $key => $s) {
|
foreach ($servers_connection as $key => $s) {
|
||||||
$good_format = db_validate_sql($sql, $s['server_name']);
|
$good_format = db_validate_sql($macros_sql, $s['server_name']);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reconnected in nodo if exist.
|
// Reconnected in nodo if exist.
|
||||||
@ -3368,9 +3378,9 @@ switch ($action) {
|
|||||||
}
|
}
|
||||||
} else if ($server_id === 0) {
|
} else if ($server_id === 0) {
|
||||||
// Connect with node if not exist conexion.
|
// Connect with node if not exist conexion.
|
||||||
$good_format = db_validate_sql($sql, (is_metaconsole() === true) ? $values['server_name'] : false);
|
$good_format = db_validate_sql($macros_sql, (is_metaconsole() === true) ? $values['server_name'] : false);
|
||||||
} else {
|
} else {
|
||||||
$good_format = db_validate_sql($sql);
|
$good_format = db_validate_sql($macros_sql);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if ($values['type'] == 'url') {
|
} else if ($values['type'] == 'url') {
|
||||||
|
@ -93,33 +93,26 @@ if (is_metaconsole() === true) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$output = '<div class="new_task">';
|
|
||||||
$output .= '<div class="image_task">';
|
$msg = __('This extension makes registering server plugins an easier task. Here you can upload a server plugin in .pspz zipped format. Please refer to the official documentation on how to obtain and use Server Plugins.');
|
||||||
$output .= html_print_image(
|
$msg .= '<br><br>';
|
||||||
'images/first_task/icono_grande_import.png',
|
$msg .= __('You can get more plugins in our');
|
||||||
true,
|
$msg .= '<a href="https://pandorafms.com/Library/Library/">';
|
||||||
['title' => __('Plugin Registration') ]
|
$msg .= ' '.__('Public Resource Library');
|
||||||
);
|
$msg .= '</a>';
|
||||||
$output .= '</div>';
|
|
||||||
$output .= '<div class="text_task">';
|
|
||||||
$output .= '<h3>'.__('Plugin registration').'</h3>';
|
|
||||||
$output .= '<p id="description_task">';
|
|
||||||
$output .= __('This extension makes registering server plugins an easier task. Here you can upload a server plugin in .pspz zipped format. Please refer to the official documentation on how to obtain and use Server Plugins.');
|
|
||||||
$output .= '<br><br>';
|
|
||||||
$output .= __('You can get more plugins in our');
|
|
||||||
$output .= '<a href="https://pandorafms.com/Library/Library/">';
|
|
||||||
$output .= ' '.__('Public Resource Library');
|
|
||||||
$output .= '</a>';
|
|
||||||
$output .= '</p>';
|
|
||||||
|
|
||||||
// Upload form.
|
// Upload form.
|
||||||
$output .= "<form name='submit_plugin' method='post' enctype='multipart/form-data'>";
|
$button = "<form name='submit_plugin' id='submit-plugin' method='post' enctype='multipart/form-data'>";
|
||||||
$output .= '<table class="" id="table1" width="100%" border="0" cellpadding="4" cellspacing="4">';
|
$button .= "<input type='file' class='w100p' name='plugin_upload' />";
|
||||||
$output .= "<tr><td class='datos'><input type='file' name='plugin_upload' />";
|
$button .= "<input type='submit' class='button_task button_task_mini mrgn_0px_imp' value='".__('Upload file')."' />";
|
||||||
$output .= "<td class='datos'><input type='submit' class='sub next' value='".__('Upload')."' />";
|
$button .= '</form>';
|
||||||
$output .= '</form></table>';
|
|
||||||
$output .= '</div>';
|
$output = ui_print_empty_view(
|
||||||
$output .= '</div>';
|
__('Register plugins'),
|
||||||
|
$msg,
|
||||||
|
'plugins.svg',
|
||||||
|
$button
|
||||||
|
);
|
||||||
|
|
||||||
echo $output;
|
echo $output;
|
||||||
|
|
||||||
|
@ -49,8 +49,8 @@ $date = time();
|
|||||||
|
|
||||||
$servers = servers_get_info();
|
$servers = servers_get_info();
|
||||||
if ($servers === false) {
|
if ($servers === false) {
|
||||||
$server_clippy = clippy_context_help('servers_down');
|
$no_data_msg = __('There are no servers registered on the database. Please, check the configuration and start the Pandora Server service');
|
||||||
echo "<div class='nf'>".__('There are no servers configured into the database').$server_clippy.'</div>';
|
ui_print_info_message($no_data_msg);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -75,8 +75,8 @@ if (isset($text) === false) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$directory = (string) get_parameter('directory');
|
$directory = (string) get_parameter('directory');
|
||||||
$directory = str_replace('<', '', $text);
|
$directory = str_replace('<', '', $directory);
|
||||||
$directory = str_replace('>', '', $text);
|
$directory = str_replace('>', '', $directory);
|
||||||
if (empty($directory) === true) {
|
if (empty($directory) === true) {
|
||||||
$directory = $fallback_directory;
|
$directory = $fallback_directory;
|
||||||
} else {
|
} else {
|
||||||
|
@ -68,7 +68,7 @@ if ($renew_license_result !== null) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($update_settings) {
|
if ($update_settings) {
|
||||||
if (!is_metaconsole()) {
|
if (is_metaconsole() === false) {
|
||||||
// Node.
|
// Node.
|
||||||
foreach ($_POST['keys'] as $key => $value) {
|
foreach ($_POST['keys'] as $key => $value) {
|
||||||
db_process_sql_update(
|
db_process_sql_update(
|
||||||
|
@ -111,11 +111,8 @@ if (enterprise_installed()) {
|
|||||||
array_push($menu_tabs, $menu_tab_url);
|
array_push($menu_tabs, $menu_tab_url);
|
||||||
$menu_tab_url = '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup§ion=hist_db').'">'.__('History database').'</a>';
|
$menu_tab_url = '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup§ion=hist_db').'">'.__('History database').'</a>';
|
||||||
array_push($menu_tabs, $menu_tab_url);
|
array_push($menu_tabs, $menu_tab_url);
|
||||||
|
|
||||||
if ($config['log_collector']) {
|
|
||||||
$menu_tab_url = '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup§ion=log').'">'.__('Log collector').'</a>';
|
$menu_tab_url = '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup§ion=log').'">'.__('Log collector').'</a>';
|
||||||
array_push($menu_tabs, $menu_tab_url);
|
array_push($menu_tabs, $menu_tab_url);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$buttons['auth'] = [
|
$buttons['auth'] = [
|
||||||
@ -422,8 +419,14 @@ switch ($section) {
|
|||||||
$help_header = '';
|
$help_header = '';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'log':
|
||||||
|
$buttons['log']['active'] = true;
|
||||||
|
$subpage = __('Log Collector');
|
||||||
|
$help_header = 'opensearch_installation';
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
$subpage = 'seccion: ';
|
$subpage = '';
|
||||||
// Default.
|
// Default.
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -432,7 +435,7 @@ $dots = dot_tab($menu_tabs);
|
|||||||
|
|
||||||
// Header.
|
// Header.
|
||||||
ui_print_standard_header(
|
ui_print_standard_header(
|
||||||
__('Setup').' » '.$subpage,
|
$subpage,
|
||||||
'',
|
'',
|
||||||
false,
|
false,
|
||||||
$help_header,
|
$help_header,
|
||||||
|
@ -1461,7 +1461,7 @@ $table_vc->data[$row][] = html_print_label_input_block(
|
|||||||
|
|
||||||
$table_vc->data[$row][] = html_print_label_input_block(
|
$table_vc->data[$row][] = html_print_label_input_block(
|
||||||
__('Number of favorite visual consoles to show in the menu'),
|
__('Number of favorite visual consoles to show in the menu'),
|
||||||
"<input ' value=".$config['vc_menu_items']." size='5' name='vc_menu_items' min='0' max='25'>"
|
'<input value="'.$config['vc_menu_items'].'" size="5" name="vc_menu_items" min="0" max="25">'
|
||||||
);
|
);
|
||||||
$row++;
|
$row++;
|
||||||
|
|
||||||
@ -1477,6 +1477,12 @@ $table_vc->data[$row][] = html_print_label_input_block(
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$table_vc->data[$row][] = html_print_label_input_block(
|
||||||
|
__('Visual console default text margin (em)'),
|
||||||
|
'<input value="'.$config['vc_text_margin'].'" name="vc_text_margin" min="0" max="100" step="0.1">'
|
||||||
|
);
|
||||||
|
$row++;
|
||||||
|
|
||||||
$table_vc->data[$row][] = html_print_label_input_block(
|
$table_vc->data[$row][] = html_print_label_input_block(
|
||||||
__('Lock screen orientation when viewing on mobile devices'),
|
__('Lock screen orientation when viewing on mobile devices'),
|
||||||
html_print_checkbox_switch(
|
html_print_checkbox_switch(
|
||||||
@ -1486,7 +1492,6 @@ $table_vc->data[$row][] = html_print_label_input_block(
|
|||||||
true
|
true
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
$row++;
|
|
||||||
|
|
||||||
$table_vc->data[$row][] = html_print_label_input_block(
|
$table_vc->data[$row][] = html_print_label_input_block(
|
||||||
__('Display item frame on alert triggered').ui_print_help_tip(__('It displays an orange box around items that have triggered an alert.'), true),
|
__('Display item frame on alert triggered').ui_print_help_tip(__('It displays an orange box around items that have triggered an alert.'), true),
|
||||||
|
@ -0,0 +1,110 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Modal LTS versions update manager.
|
||||||
|
*
|
||||||
|
* @category Update Manager
|
||||||
|
* @package Pandora FMS
|
||||||
|
* @subpackage Community
|
||||||
|
* @version 1.0.0
|
||||||
|
* @license See below
|
||||||
|
*
|
||||||
|
* ______ ___ _______ _______ ________
|
||||||
|
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||||
|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||||
|
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||||
|
*
|
||||||
|
* ============================================================================
|
||||||
|
* Copyright (c) 2005-2023 Pandora FMS
|
||||||
|
* Please see https://pandorafms.com/community/ for full contribution list
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation for version 2.
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
* ============================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Begin.
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
check_login();
|
||||||
|
// The ajax is in include/ajax/update_manager.php.
|
||||||
|
if (! check_acl($config['id_user'], 0, 'PM') && ! is_user_admin($config['id_user'])) {
|
||||||
|
db_pandora_audit(
|
||||||
|
AUDIT_LOG_ACL_VIOLATION,
|
||||||
|
'Trying to access Setup Management'
|
||||||
|
);
|
||||||
|
include 'general/noaccess.php';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once $config['homedir'].'/vendor/autoload.php';
|
||||||
|
|
||||||
|
$php_version = phpversion();
|
||||||
|
$php_version_array = explode('.', $php_version);
|
||||||
|
if ($php_version_array[0] < 7) {
|
||||||
|
include_once 'general/php_message.php';
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
<!-- Lts Updates. -->
|
||||||
|
<div id="lts-updates" title="
|
||||||
|
<?php echo __('PandoraFMS'); ?>
|
||||||
|
" class="invisible">
|
||||||
|
<div style="display: flex; justify-content: space-between">
|
||||||
|
<div style="width: 250px; padding: 36px">
|
||||||
|
<?php
|
||||||
|
echo html_print_image(
|
||||||
|
'images/custom_logo/logo-default-pandorafms-collapsed.svg',
|
||||||
|
true,
|
||||||
|
['class' => 'w100p mrgn_top_50px']
|
||||||
|
);
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
<div style="padding: 5px 90px 5px 5px;">
|
||||||
|
<p class="lato font_15px bolder">
|
||||||
|
<?php
|
||||||
|
echo __('From the 777 LTS version onwards, product updates will be differentiated in the Enterprise version and the Open Source version. ');
|
||||||
|
?>
|
||||||
|
</p>
|
||||||
|
<p class="lato font_15px bolder">
|
||||||
|
<?php
|
||||||
|
echo __('Pandora FMS Community code will always be free and open, available with no charge of use and no need to register in').'<a href="https://github.com/pandorafms/pandorafms" target="_blank" class="font_15px" style="color: #82b92e;"> Github </a>'.__('and this will be the access way for future upgrades.');
|
||||||
|
?>
|
||||||
|
</p>
|
||||||
|
<p class="lato font_15px bolder">
|
||||||
|
<?php
|
||||||
|
echo __('Our Enterprise version customers, both paid and Free Edition, will continue to enjoy automatic updates with the new Warp 2.0 system that will also include the new synchronized plugin library, and other improvements.');
|
||||||
|
?>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function() {
|
||||||
|
// Lts Updates.
|
||||||
|
$("#lts-updates").dialog({
|
||||||
|
resizable: true,
|
||||||
|
draggable: true,
|
||||||
|
modal: true,
|
||||||
|
width: 740,
|
||||||
|
overlay: {
|
||||||
|
opacity: 0.5,
|
||||||
|
background: "black"
|
||||||
|
},
|
||||||
|
closeOnEscape: true,
|
||||||
|
buttons: [{
|
||||||
|
text: "<?php echo __('Close'); ?>",
|
||||||
|
click: function() {
|
||||||
|
$(this).dialog("close");
|
||||||
|
}
|
||||||
|
}],
|
||||||
|
open: function(event, ui) {
|
||||||
|
$(".ui-dialog-titlebar-close").hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
@ -166,5 +166,9 @@ switch ($tab) {
|
|||||||
$mode = \UpdateManager\UI\Manager::MODE_ONLINE;
|
$mode = \UpdateManager\UI\Manager::MODE_ONLINE;
|
||||||
include $config['homedir'].'/godmode/um_client/index.php';
|
include $config['homedir'].'/godmode/um_client/index.php';
|
||||||
include $config['homedir'].'/godmode/update_manager/modal_lts_update.php';
|
include $config['homedir'].'/godmode/update_manager/modal_lts_update.php';
|
||||||
|
|
||||||
|
if (enterprise_installed() === false) {
|
||||||
|
include $config['homedir'].'/godmode/update_manager/just_enterprise_warning.php';
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -100,6 +100,26 @@ class DiscoveryTaskList extends HTML
|
|||||||
// Load styles.
|
// Load styles.
|
||||||
parent::run();
|
parent::run();
|
||||||
|
|
||||||
|
$deploymentCenter = new DeploymentCenter();
|
||||||
|
echo $deploymentCenter->loadJS();
|
||||||
|
ui_require_css_file('deployment_list');
|
||||||
|
|
||||||
|
html_print_div(
|
||||||
|
[
|
||||||
|
'content' => '',
|
||||||
|
'id' => 'modal_add_target',
|
||||||
|
'class' => 'invisible',
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
html_print_div(
|
||||||
|
[
|
||||||
|
'content' => '',
|
||||||
|
'id' => 'modal_deploy_targets',
|
||||||
|
'class' => 'invisible',
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
$this->prepareBreadcrum(
|
$this->prepareBreadcrum(
|
||||||
[
|
[
|
||||||
[
|
[
|
||||||
@ -184,7 +204,7 @@ class DiscoveryTaskList extends HTML
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (is_reporting_console_node() === false) {
|
if (is_reporting_console_node() === false) {
|
||||||
$ret2 = $this->showList(__('Host & devices tasks'), [0, 1]);
|
$ret2 = $this->showList(__('Host & devices tasks'), [0, 1, 9]);
|
||||||
$ret2 .= $this->showList(__('Applications tasks'), [3, 4, 5, 10, 11, 12], 'app');
|
$ret2 .= $this->showList(__('Applications tasks'), [3, 4, 5, 10, 11, 12], 'app');
|
||||||
$ret2 .= $this->showList(__('Cloud tasks'), [6, 7, 8, 13, 14], 'cloud');
|
$ret2 .= $this->showList(__('Cloud tasks'), [6, 7, 8, 13, 14], 'cloud');
|
||||||
$ret2 .= $this->showList(__('Custom tasks'), [-1], 'custom');
|
$ret2 .= $this->showList(__('Custom tasks'), [-1], 'custom');
|
||||||
@ -874,14 +894,12 @@ class DiscoveryTaskList extends HTML
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case DISCOVERY_DEPLOY_AGENTS:
|
case DISCOVERY_DEPLOY_AGENTS:
|
||||||
// Internal deployment task.
|
|
||||||
$no_operations = true;
|
|
||||||
$data[6] = html_print_image(
|
$data[6] = html_print_image(
|
||||||
'images/osx-terminal@groups.svg',
|
'images/osx-terminal@groups.svg',
|
||||||
true,
|
true,
|
||||||
['title' => __('Agent deployment')]
|
['title' => __('Agent deployment')]
|
||||||
).' ';
|
).' ';
|
||||||
$data[6] .= __('Discovery.Agent.Deployment (legacy)');
|
$data[6] .= __('Discovery.Agent.Deployment');
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DISCOVERY_APP_MICROSOFT_SQL_SERVER:
|
case DISCOVERY_APP_MICROSOFT_SQL_SERVER:
|
||||||
@ -1007,6 +1025,7 @@ class DiscoveryTaskList extends HTML
|
|||||||
&& $task['type'] != DISCOVERY_APP_SAP
|
&& $task['type'] != DISCOVERY_APP_SAP
|
||||||
&& $task['type'] != DISCOVERY_CLOUD_AWS_RDS
|
&& $task['type'] != DISCOVERY_CLOUD_AWS_RDS
|
||||||
&& $task['type'] != DISCOVERY_CLOUD_AWS_S3
|
&& $task['type'] != DISCOVERY_CLOUD_AWS_S3
|
||||||
|
&& $task['type'] != DISCOVERY_DEPLOY_AGENTS
|
||||||
) {
|
) {
|
||||||
if (check_acl($config['id_user'], 0, 'MR') && (int) $task['type'] !== DISCOVERY_EXTENSION) {
|
if (check_acl($config['id_user'], 0, 'MR') && (int) $task['type'] !== DISCOVERY_EXTENSION) {
|
||||||
$data[9] .= '<a href="#" onclick="show_map('.$task['id_rt'].',\''.$task['name'].'\')">';
|
$data[9] .= '<a href="#" onclick="show_map('.$task['id_rt'].',\''.$task['name'].'\')">';
|
||||||
@ -1066,25 +1085,40 @@ class DiscoveryTaskList extends HTML
|
|||||||
).'</a>';
|
).'</a>';
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$url_edit = sprintf(
|
// Create the url edit.
|
||||||
'index.php?sec=gservers&sec2=godmode/servers/discovery&%s&task=%d',
|
switch ((int) $task['type']) {
|
||||||
$this->getTargetWiz($task, $recon_script_data),
|
case DISCOVERY_EXTENSION:
|
||||||
$task['id_rt']
|
$url_edit = ui_get_full_url(
|
||||||
);
|
sprintf(
|
||||||
|
|
||||||
if ((int) $task['type'] === DISCOVERY_EXTENSION) {
|
|
||||||
$url_edit = sprintf(
|
|
||||||
'index.php?sec=gservers&sec2=godmode/servers/discovery&wiz=%s&mode=%s&id_task=%s',
|
'index.php?sec=gservers&sec2=godmode/servers/discovery&wiz=%s&mode=%s&id_task=%s',
|
||||||
$task['section'],
|
$task['section'],
|
||||||
$task['short_name'],
|
$task['short_name'],
|
||||||
$task['id_rt'],
|
$task['id_rt'],
|
||||||
|
)
|
||||||
);
|
);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DISCOVERY_DEPLOY_AGENTS:
|
||||||
|
if (empty($task['field1']) === false) {
|
||||||
|
$url_edit = 'javascript:show_deploy_targets('.$task['id_rt'].')';
|
||||||
|
} else {
|
||||||
|
$url_edit = 'javascript:show_scan_targets('.$task['id_rt'].')';
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
$url_edit = ui_get_full_url(
|
||||||
|
sprintf(
|
||||||
|
'index.php?sec=gservers&sec2=godmode/servers/discovery&%s&task=%d',
|
||||||
|
$this->getTargetWiz($task, $recon_script_data),
|
||||||
|
$task['id_rt']
|
||||||
|
)
|
||||||
|
);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if is a H&D, Cloud or Application or IPAM.
|
// Check if is a H&D, Cloud or Application or IPAM.
|
||||||
$data[9] .= '<a href="'.ui_get_full_url(
|
$data[9] .= '<a href="'.$url_edit.'">'.html_print_image(
|
||||||
$url_edit
|
|
||||||
).'">'.html_print_image(
|
|
||||||
'images/edit.svg',
|
'images/edit.svg',
|
||||||
true,
|
true,
|
||||||
[
|
[
|
||||||
|
50
pandora_console/images/empty_views/aws.svg
Normal file
After Width: | Height: | Size: 15 KiB |
85
pandora_console/images/empty_views/clusters.svg
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="300px" height="165px" viewBox="0 0 300 165" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<title>696E9E4D-6D6D-4E30-B1C6-1CBF60018B2A</title>
|
||||||
|
<defs>
|
||||||
|
<linearGradient x1="50%" y1="50%" x2="52.9793104%" y2="51.386177%" id="linearGradient-1">
|
||||||
|
<stop stop-color="#FFFFFF" stop-opacity="0.7" offset="0%"></stop>
|
||||||
|
<stop stop-color="#FFFFFF" stop-opacity="0" offset="100%"></stop>
|
||||||
|
</linearGradient>
|
||||||
|
<path d="M40,6 L214,6 C216.761424,6 219,8.23857625 219,11 L219,129 L219,129 L35,129 L35,11 C35,8.23857625 37.2385763,6 40,6 Z" id="path-2"></path>
|
||||||
|
<linearGradient x1="50%" y1="49.8604439%" x2="50%" y2="50.731762%" id="linearGradient-3">
|
||||||
|
<stop stop-color="#000000" stop-opacity="0" offset="0%"></stop>
|
||||||
|
<stop stop-color="#000000" stop-opacity="0.07" offset="100%"></stop>
|
||||||
|
</linearGradient>
|
||||||
|
<path d="M1.25,18 C1.25,18.6627417 1.80964406,19.2 2.5,19.2 L5,19.2 L5,22.8 C5,23.4627417 5.55964406,24 6.25,24 L13.75,24 C14.4403559,24 15,23.4627417 15,22.8 L15,19.2 L17.5,19.2 C18.1903559,19.2 18.75,18.6627417 18.75,18 L18.75,9.6 L20,9.6 L20,7.2 L15,7.2 L15,0 L12.5,0 L12.5,7.2 L7.5,7.2 L7.5,0 L5,0 L5,7.2 L0,7.2 L0,9.6 L1.25,9.6 L1.25,18 Z" id="path-4"></path>
|
||||||
|
</defs>
|
||||||
|
<g id="Nuevo-UI-Menu/Head" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||||
|
<g id="Mockup---No-data-screens" transform="translate(-631, -930)">
|
||||||
|
<g id="Clústers" transform="translate(601, 900)">
|
||||||
|
<g id="Top" transform="translate(30, 30)">
|
||||||
|
<g id="No-Cluster-found" transform="translate(0, 1)">
|
||||||
|
<g id="Base" transform="translate(23, 14)">
|
||||||
|
<path d="M225,103 L238,103 C245.179702,103 251,108.820298 251,116 C251,123.179702 245.179702,129 238,129 L225,129 L225,129" id="Path-5" stroke="#222222" stroke-width="1.4" stroke-linejoin="round"></path>
|
||||||
|
<path d="M38.8461538,0 L214.846154,0 C220.369001,-1.01453063e-15 224.846154,4.4771525 224.846154,10 L224.846154,140 L224.846154,140 L28.8461538,140 L28.8461538,10 C28.8461538,4.4771525 33.3233063,1.01453063e-15 38.8461538,0 Z" id="Rectangle" stroke="#222222" stroke-width="1.4" fill="#FFFFFF" stroke-linejoin="round"></path>
|
||||||
|
<g id="Rectangle">
|
||||||
|
<use fill="#D0E7FD" xlink:href="#path-2"></use>
|
||||||
|
<use fill="url(#linearGradient-1)" xlink:href="#path-2"></use>
|
||||||
|
</g>
|
||||||
|
<path d="M0,139 L254,139 L254,141 C254,145.418278 250.418278,149 246,149 L8,149 C3.581722,149 5.41083001e-16,145.418278 0,141 L0,139 L0,139 Z" id="Rectangle" stroke="#222222" stroke-width="1.4" fill="#FFFFFF" stroke-linejoin="round"></path>
|
||||||
|
<path d="M189,111.087912 C190.577956,111.087912 191.857143,112.367099 191.857143,113.945055 L191.857143,116.142857 C191.857143,117.720814 190.577956,119 189,119 C187.422044,119 186.142857,117.720814 186.142857,116.142857 L186.142857,113.945055 C186.142857,112.367099 187.422044,111.087912 189,111.087912 Z M171.857143,95.9230769 C173.435099,95.9230769 174.714286,97.2022634 174.714286,98.7802198 L174.714286,116.142857 C174.714286,117.720814 173.435099,119 171.857143,119 C170.279186,119 169,117.720814 169,116.142857 L169,98.7802198 C169,97.2022634 170.279186,95.9230769 171.857143,95.9230769 Z M206.142857,95.9230769 C207.720814,95.9230769 209,97.2022634 209,98.7802198 L209,116.142857 C209,117.720814 207.720814,119 206.142857,119 C204.564901,119 203.285714,117.720814 203.285714,116.142857 L203.285714,98.7802198 C203.285714,97.2022634 204.564901,95.9230769 206.142857,95.9230769 Z M197.571429,103.835165 C199.149385,103.835165 200.428571,105.114351 200.428571,106.692308 L200.428571,116.142857 C200.428571,117.720814 199.149385,119 197.571429,119 C195.993472,119 194.714286,117.720814 194.714286,116.142857 L194.714286,106.692308 C194.714286,105.114351 195.993472,103.835165 197.571429,103.835165 Z M180.428571,89 C182.006528,89 183.285714,90.2791864 183.285714,91.8571429 L183.285714,116.142857 C183.285714,117.720814 182.006528,119 180.428571,119 C178.850615,119 177.571429,117.720814 177.571429,116.142857 L177.571429,91.8571429 C177.571429,90.2791864 178.850615,89 180.428571,89 Z" id="Rectangle-Copy-6" fill="#FFFFFF" transform="translate(189, 104) scale(-1, 1) translate(-189, -104)"></path>
|
||||||
|
</g>
|
||||||
|
<g id="X" transform="translate(0, 13)">
|
||||||
|
<g id="BAse">
|
||||||
|
<circle id="Oval" fill="#95A3BF" opacity="0.25" cx="35" cy="35" r="35"></circle>
|
||||||
|
<path d="M35,10 C48.8071187,10 60,21.1928813 60,35 C60,48.8071187 48.8071187,60 35,60 C21.1928813,60 10,48.8071187 10,35 C10,21.1928813 21.1928813,10 35,10 Z M35,19.8837209 C26.6515096,19.8837209 19.8837209,26.6515096 19.8837209,35 C19.8837209,43.3484904 26.6515096,50.1162791 35,50.1162791 C43.3484904,50.1162791 50.1162791,43.3484904 50.1162791,35 C50.1162791,26.6515096 43.3484904,19.8837209 35,19.8837209 Z" id="Oval-3" fill="#95A3BF" opacity="0.25"></path>
|
||||||
|
<path d="M25.9383632,25.9383632 C27.1895142,24.6872123 29.2180307,24.6872123 30.4691816,25.9383632 L35,30.469 L39.5308184,25.9383632 C40.7819693,24.6872123 42.8104858,24.6872123 44.0616368,25.9383632 C45.3127877,27.1895142 45.3127877,29.2180307 44.0616368,30.4691816 L39.531,35 L44.0616368,39.5308184 C45.2664488,40.7356304 45.3110715,42.6612917 44.1955048,43.9195 L44.0616368,44.0616368 C42.8104858,45.3127877 40.7819693,45.3127877 39.5308184,44.0616368 L35,39.531 L30.4691816,44.0616368 C29.2180307,45.3127877 27.1895142,45.3127877 25.9383632,44.0616368 C24.6872123,42.8104858 24.6872123,40.7819693 25.9383632,39.5308184 L30.469,35 L25.9383632,30.4691816 C24.7335512,29.2643696 24.6889285,27.3387083 25.8044952,26.0805 Z" id="Rectangle-3" stroke="#222222" stroke-width="1.4" fill="#ED474A" stroke-linejoin="round"></path>
|
||||||
|
</g>
|
||||||
|
<g id="Top" transform="translate(24, 50)" stroke-linejoin="round">
|
||||||
|
<g id="Path">
|
||||||
|
<use fill="#FFFFFF" xlink:href="#path-4"></use>
|
||||||
|
<use stroke="#222222" stroke-width="1.4" fill="url(#linearGradient-3)" xlink:href="#path-4"></use>
|
||||||
|
</g>
|
||||||
|
<path d="M10,24 L10,36 C10,45.9411255 18.0588745,54 28,54 L28,54 L28,54" id="Path-4" stroke="#222222" stroke-width="1.4"></path>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g id="Top" transform="translate(211, 0)">
|
||||||
|
<rect id="Rectangle-Copy-8" stroke="#95A3BF" stroke-width="1.4" x="20" y="34" width="68" height="50" rx="4"></rect>
|
||||||
|
<rect id="Rectangle" stroke="#95A3BF" stroke-width="1.4" fill-opacity="0.8" fill="#FFFFFF" x="0" y="0" width="70.3603604" height="54" rx="4"></rect>
|
||||||
|
<path d="M5.94594595,8 C7.04056437,8 7.92792793,7.1045695 7.92792793,6 C7.92792793,4.8954305 7.04056437,4 5.94594595,4 C4.85132752,4 3.96396396,4.8954305 3.96396396,6 C3.96396396,7.1045695 4.85132752,8 5.94594595,8 Z M11.8918919,8 C12.9865103,8 13.8738739,7.1045695 13.8738739,6 C13.8738739,4.8954305 12.9865103,4 11.8918919,4 C10.7972735,4 9.90990991,4.8954305 9.90990991,6 C9.90990991,7.1045695 10.7972735,8 11.8918919,8 Z M17.8378378,8 C18.9324563,8 19.8198198,7.1045695 19.8198198,6 C19.8198198,4.8954305 18.9324563,4 17.8378378,4 C16.7432194,4 15.8558559,4.8954305 15.8558559,6 C15.8558559,7.1045695 16.7432194,8 17.8378378,8 Z" id="Oval-4" fill="#95A3BF" opacity="0.33"></path>
|
||||||
|
</g>
|
||||||
|
<g id="Image" transform="translate(82, 32)" stroke-linejoin="round" stroke-width="1.4">
|
||||||
|
<g id="Group" transform="translate(0, 39.0805)" stroke="#95A3BF" stroke-linecap="round">
|
||||||
|
<polygon id="Polygon" points="43 0 86 7.18390805 86 37.6436782 43 60.9195402 0 37.6436782 0 7.18390805"></polygon>
|
||||||
|
</g>
|
||||||
|
<g id="Group" transform="translate(24.3047, 0)" stroke="#95A3BF" stroke-linecap="round">
|
||||||
|
<polygon id="Polygon" points="18.1052632 0 36.2105263 10.9195402 36.2105263 32.7586207 18.6702944 43.6781609 1.1558006e-14 32.7586207 0 10.9195402"></polygon>
|
||||||
|
<path d="M0.024262409,10.9195402 C12.4549504,17.8057368 18.6702944,21.248835 18.6702944,21.248835 C18.6702944,21.248835 24.5089509,17.8057368 36.1862639,10.9195402" id="Path-100"></path>
|
||||||
|
<line x1="18.6702944" y1="21.248835" x2="18.6702944" y2="43.6781609" id="Path-33"></line>
|
||||||
|
</g>
|
||||||
|
<g id="Group" transform="translate(0, 13.7931)" stroke="#95A3BF" stroke-linecap="round">
|
||||||
|
<polygon id="Polygon" fill="#FFFFFF" points="18.1052632 0 36.2105263 10.9195402 36.2105263 32.7586207 18.6702944 43.6781609 1.1558006e-14 32.7586207 0 10.9195402"></polygon>
|
||||||
|
<path d="M0.024262409,10.9195402 C12.4549504,17.8057368 18.6702944,21.248835 18.6702944,21.248835 C18.6702944,21.248835 24.5089509,17.8057368 36.1862639,10.9195402" id="Path-100"></path>
|
||||||
|
<line x1="18.6702944" y1="21.248835" x2="18.6702944" y2="43.6781609" id="Path-33"></line>
|
||||||
|
</g>
|
||||||
|
<g id="Group-Copy" transform="translate(49.7895, 13.7931)" stroke="#95A3BF" stroke-linecap="round">
|
||||||
|
<polygon id="Polygon" fill="#FFFFFF" points="18.1052632 0 36.2105263 10.9195402 36.2105263 32.7586207 18.6702944 43.6781609 1.1558006e-14 32.7586207 0 10.9195402"></polygon>
|
||||||
|
<path d="M0,10.9195402 C12.430688,17.8057368 18.646032,21.248835 18.646032,21.248835 C18.646032,21.248835 24.4846885,17.8057368 36.1620015,10.9195402" id="Path-100"></path>
|
||||||
|
<line x1="18.6710526" y1="21.2643678" x2="18.6710526" y2="43.6781609" id="Path-33"></line>
|
||||||
|
</g>
|
||||||
|
<g id="Group" transform="translate(24.3047, 35.6322)" stroke="#95A3BF" stroke-linecap="round">
|
||||||
|
<polygon id="Polygon" fill="#FFFFFF" points="18.1052632 0 36.2105263 10.9195402 36.2105263 32.7586207 18.6702944 43.6781609 1.1558006e-14 32.7586207 0 10.9195402"></polygon>
|
||||||
|
<path d="M0.024262409,10.9195402 C12.4549504,17.8057368 18.6702944,21.248835 18.6702944,21.248835 C18.6702944,21.248835 24.5089509,17.8057368 36.1862639,10.9195402" id="Path-100"></path>
|
||||||
|
<line x1="18.6702944" y1="21.248835" x2="18.6702944" y2="43.6781609" id="Path-33"></line>
|
||||||
|
</g>
|
||||||
|
<g id="Group" transform="translate(24.3047, 35.6322)">
|
||||||
|
<polygon id="Polygon" stroke="#222222" fill="#FFFFFF" points="18.1052632 0 36.2105263 10.9195402 36.2105263 32.7586207 18.6702944 43.6781609 1.1558006e-14 32.7586207 0 10.9195402"></polygon>
|
||||||
|
<path d="M0.024262409,10.9195402 C12.4549504,17.8057368 18.6702944,21.248835 18.6702944,21.248835 C18.6702944,21.248835 24.5089509,17.8057368 36.1862639,10.9195402" id="Path-100" stroke="#181818" stroke-linecap="round"></path>
|
||||||
|
<line x1="18.6702944" y1="21.248835" x2="18.6702944" y2="43.6781609" id="Path-33" stroke="#181818" stroke-linecap="round"></line>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 12 KiB |
93
pandora_console/images/empty_views/custom-graph.svg
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="300px" height="165px" viewBox="0 0 300 165" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<title>D0434C46-6D79-4C4C-9726-C296821D870B</title>
|
||||||
|
<defs>
|
||||||
|
<linearGradient x1="50%" y1="50%" x2="52.9793104%" y2="51.386177%" id="linearGradient-1">
|
||||||
|
<stop stop-color="#FFFFFF" stop-opacity="0.7" offset="0%"></stop>
|
||||||
|
<stop stop-color="#FFFFFF" stop-opacity="0" offset="100%"></stop>
|
||||||
|
</linearGradient>
|
||||||
|
<path d="M40,6 L214,6 C216.761424,6 219,8.23857625 219,11 L219,129 L219,129 L35,129 L35,11 C35,8.23857625 37.2385763,6 40,6 Z" id="path-2"></path>
|
||||||
|
<linearGradient x1="50%" y1="49.8604439%" x2="50%" y2="50.731762%" id="linearGradient-3">
|
||||||
|
<stop stop-color="#000000" stop-opacity="0" offset="0%"></stop>
|
||||||
|
<stop stop-color="#000000" stop-opacity="0.07" offset="100%"></stop>
|
||||||
|
</linearGradient>
|
||||||
|
<path d="M1.25,18 C1.25,18.6627417 1.80964406,19.2 2.5,19.2 L5,19.2 L5,22.8 C5,23.4627417 5.55964406,24 6.25,24 L13.75,24 C14.4403559,24 15,23.4627417 15,22.8 L15,19.2 L17.5,19.2 C18.1903559,19.2 18.75,18.6627417 18.75,18 L18.75,9.6 L20,9.6 L20,7.2 L15,7.2 L15,0 L12.5,0 L12.5,7.2 L7.5,7.2 L7.5,0 L5,0 L5,7.2 L0,7.2 L0,9.6 L1.25,9.6 L1.25,18 Z" id="path-4"></path>
|
||||||
|
</defs>
|
||||||
|
<g id="Nuevo-UI-Menu/Head" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||||
|
<g id="Mockup---No-data-screens" transform="translate(-631, -3342)">
|
||||||
|
<g id="Gráfico-personalizado" transform="translate(601, 3312)">
|
||||||
|
<g id="Top" transform="translate(30, 30)">
|
||||||
|
<g id="No-Custom-graph-found" transform="translate(0, 1)">
|
||||||
|
<g id="Base" transform="translate(23, 14)">
|
||||||
|
<path d="M225,103 L238,103 C245.179702,103 251,108.820298 251,116 C251,123.179702 245.179702,129 238,129 L225,129 L225,129" id="Path-5" stroke="#222222" stroke-width="1.4" stroke-linejoin="round"></path>
|
||||||
|
<path d="M38.8461538,0 L214.846154,0 C220.369001,-1.01453063e-15 224.846154,4.4771525 224.846154,10 L224.846154,140 L224.846154,140 L28.8461538,140 L28.8461538,10 C28.8461538,4.4771525 33.3233063,1.01453063e-15 38.8461538,0 Z" id="Rectangle" stroke="#222222" stroke-width="1.4" fill="#FFFFFF" stroke-linejoin="round"></path>
|
||||||
|
<g id="Rectangle">
|
||||||
|
<use fill="#D0E7FD" xlink:href="#path-2"></use>
|
||||||
|
<use fill="url(#linearGradient-1)" xlink:href="#path-2"></use>
|
||||||
|
</g>
|
||||||
|
<g id="2307-2102-1306-1512" transform="translate(154.32, 18.37)" fill="#8A96A6" fill-rule="nonzero">
|
||||||
|
<path d="M1.25,2.58 C1.24,2.47 1.22,2.35 1.22,2.25 C1.22,1.58 1.59,1.05 2.35,1.05 C3.08,1.05 3.44,1.53 3.44,2.06 C3.44,2.53 3.19,2.92 2.61,3.28 L1.54,3.95 C0.41,4.65 0.02,5.52 0,6.63 L4.69,6.63 L4.69,5.57 L1.48,5.57 C1.57,5.25 1.83,5.02 2.14,4.83 L3.4,4.05 C4.18,3.57 4.65,2.88 4.65,2.04 C4.65,0.93 3.8,0 2.37,0 C0.9,0 0.06,1.01 0.06,2.13 C0.06,2.26 0.08,2.41 0.09,2.5 L1.25,2.58 Z" id="Path"></path>
|
||||||
|
<path d="M7.25,3.69 C7.35,3.64 7.55,3.58 7.86,3.58 C8.41,3.58 9.01,3.9 9.01,4.65 C9.01,5.24 8.57,5.75 7.78,5.75 C7.06,5.75 6.52,5.24 6.49,4.49 L5.32,4.73 C5.4,5.81 6.29,6.78 7.79,6.78 C9.33,6.78 10.22,5.77 10.22,4.66 C10.22,3.41 9.25,2.71 8.28,2.69 L10.04,1.15 L10.04,0.15 L5.54,0.15 L5.54,1.2 L8.49,1.2 L6.7,2.8 L7.25,3.69 Z" id="Path"></path>
|
||||||
|
<path d="M12.19,3.39 C12.19,2.57 12.33,1.94 12.65,1.54 C12.87,1.25 13.18,1.06 13.65,1.06 C14.12,1.06 14.42,1.25 14.65,1.54 C14.96,1.94 15.1,2.57 15.1,3.39 C15.1,4.21 14.96,4.84 14.65,5.24 C14.42,5.53 14.12,5.72 13.65,5.72 C13.18,5.72 12.87,5.53 12.65,5.24 C12.34,4.84 12.19,4.21 12.19,3.39 Z M11,3.39 C11,4.25 11.14,5.06 11.58,5.72 C12,6.35 12.68,6.78 13.65,6.78 C14.62,6.78 15.29,6.35 15.71,5.72 C16.15,5.06 16.29,4.25 16.29,3.39 C16.29,2.53 16.15,1.72 15.71,1.06 C15.29,0.43 14.62,0 13.65,0 C12.68,0 12,0.43 11.58,1.06 C11.14,1.72 11,2.53 11,3.39 Z" id="Shape"></path>
|
||||||
|
<path d="M21.63,0.15 L16.79,0.15 L16.79,1.2 L20.27,1.2 C20.27,1.2 18.01,3.01 17.73,6.63 L18.97,6.63 C19.26,3.29 21.09,1.65 21.63,1.2 L21.63,0.15 Z" id="Path"></path>
|
||||||
|
<path d="M2.46,15.58 C2.45,15.47 2.43,15.35 2.43,15.25 C2.43,14.58 2.8,14.05 3.56,14.05 C4.29,14.05 4.65,14.53 4.65,15.06 C4.65,15.53 4.4,15.92 3.82,16.28 L2.75,16.95 C1.62,17.65 1.23,18.52 1.21,19.63 L5.9,19.63 L5.9,18.57 L2.69,18.57 C2.78,18.25 3.04,18.02 3.35,17.83 L4.61,17.05 C5.39,16.57 5.86,15.88 5.86,15.04 C5.86,13.93 5.01,13 3.58,13 C2.11,13 1.27,14.01 1.27,15.13 C1.27,15.26 1.29,15.41 1.3,15.5 L2.46,15.58 Z" id="Path"></path>
|
||||||
|
<path d="M9.33,19.63 L9.33,13.15 L8.29,13.15 C8.15,13.83 7.51,14.35 6.58,14.37 L6.58,15.19 L8.15,15.19 L8.15,19.63 L9.33,19.63 Z" id="Path"></path>
|
||||||
|
<path d="M11.78,16.39 C11.78,15.57 11.92,14.94 12.24,14.54 C12.46,14.25 12.77,14.06 13.24,14.06 C13.71,14.06 14.01,14.25 14.24,14.54 C14.55,14.94 14.69,15.57 14.69,16.39 C14.69,17.21 14.55,17.84 14.24,18.24 C14.01,18.53 13.71,18.72 13.24,18.72 C12.77,18.72 12.46,18.53 12.24,18.24 C11.93,17.84 11.78,17.21 11.78,16.39 Z M10.59,16.39 C10.59,17.25 10.73,18.06 11.17,18.72 C11.59,19.35 12.27,19.78 13.24,19.78 C14.21,19.78 14.88,19.35 15.3,18.72 C15.74,18.06 15.88,17.25 15.88,16.39 C15.88,15.53 15.74,14.72 15.3,14.06 C14.88,13.43 14.21,13 13.24,13 C12.27,13 11.59,13.43 11.17,14.06 C10.73,14.72 10.59,15.53 10.59,16.39 Z" id="Shape"></path>
|
||||||
|
<path d="M17.89,15.58 C17.88,15.47 17.86,15.35 17.86,15.25 C17.86,14.58 18.23,14.05 18.99,14.05 C19.72,14.05 20.08,14.53 20.08,15.06 C20.08,15.53 19.83,15.92 19.25,16.28 L18.18,16.95 C17.05,17.65 16.66,18.52 16.64,19.63 L21.33,19.63 L21.33,18.57 L18.12,18.57 C18.21,18.25 18.47,18.02 18.78,17.83 L20.04,17.05 C20.82,16.57 21.29,15.88 21.29,15.04 C21.29,13.93 20.44,13 19.01,13 C17.54,13 16.7,14.01 16.7,15.13 C16.7,15.26 16.72,15.41 16.73,15.5 L17.89,15.58 Z" id="Path"></path>
|
||||||
|
<path d="M3.44,32.63 L3.44,26.15 L2.4,26.15 C2.26,26.83 1.62,27.35 0.69,27.37 L0.69,28.19 L2.26,28.19 L2.26,32.63 L3.44,32.63 Z" id="Path"></path>
|
||||||
|
<path d="M6.41,29.69 C6.51,29.64 6.71,29.58 7.02,29.58 C7.57,29.58 8.17,29.9 8.17,30.65 C8.17,31.24 7.73,31.75 6.94,31.75 C6.22,31.75 5.68,31.24 5.65,30.49 L4.48,30.73 C4.56,31.81 5.45,32.78 6.95,32.78 C8.49,32.78 9.38,31.77 9.38,30.66 C9.38,29.41 8.41,28.71 7.44,28.69 L9.2,27.15 L9.2,26.15 L4.7,26.15 L4.7,27.2 L7.65,27.2 L5.86,28.8 L6.41,29.69 Z" id="Path"></path>
|
||||||
|
<path d="M11.35,29.39 C11.35,28.57 11.49,27.94 11.81,27.54 C12.03,27.25 12.34,27.06 12.81,27.06 C13.28,27.06 13.58,27.25 13.81,27.54 C14.12,27.94 14.26,28.57 14.26,29.39 C14.26,30.21 14.12,30.84 13.81,31.24 C13.58,31.53 13.28,31.72 12.81,31.72 C12.34,31.72 12.03,31.53 11.81,31.24 C11.5,30.84 11.35,30.21 11.35,29.39 Z M10.16,29.39 C10.16,30.25 10.3,31.06 10.74,31.72 C11.16,32.35 11.84,32.78 12.81,32.78 C13.78,32.78 14.45,32.35 14.87,31.72 C15.31,31.06 15.45,30.25 15.45,29.39 C15.45,28.53 15.31,27.72 14.87,27.06 C14.45,26.43 13.78,26 12.81,26 C11.84,26 11.16,26.43 10.74,27.06 C10.3,27.72 10.16,28.53 10.16,29.39 Z" id="Shape"></path>
|
||||||
|
<path d="M21.19,26.32 C20.91,26.14 20.41,26 19.81,26 C17.8,26 16.33,27.42 16.33,29.77 C16.33,31.43 17.27,32.78 18.92,32.78 C20.28,32.78 21.38,31.88 21.38,30.53 C21.38,29.2 20.47,28.34 19.18,28.34 C18.49,28.34 17.87,28.59 17.53,29.11 C17.64,27.85 18.52,27.04 19.74,27.04 C20.27,27.04 20.61,27.17 20.85,27.3 L21.19,26.32 Z M17.66,30.55 C17.66,29.79 18.24,29.34 18.92,29.34 C19.6,29.34 20.18,29.79 20.18,30.55 C20.18,31.3 19.6,31.76 18.92,31.76 C18.26,31.76 17.66,31.29 17.66,30.55 Z" id="Shape"></path>
|
||||||
|
<path d="M6.21,45.63 L6.21,39.15 L5.17,39.15 C5.03,39.83 4.39,40.35 3.46,40.37 L3.46,41.19 L5.03,41.19 L5.03,45.63 L6.21,45.63 Z" id="Path"></path>
|
||||||
|
<path d="M7.31,43.84 C7.39,44.86 8.35,45.79 9.75,45.79 C11.25,45.79 12.19,44.77 12.19,43.55 C12.19,42.19 11.26,41.39 9.97,41.39 C9.51,41.39 9.01,41.55 8.73,41.84 L9.13,40.2 L11.87,40.2 L11.87,39.15 L8.32,39.15 L7.52,42.42 L8.65,42.83 C8.88,42.57 9.27,42.38 9.73,42.38 C10.39,42.38 10.98,42.78 10.98,43.58 C10.98,44.3 10.43,44.76 9.75,44.76 C9,44.76 8.49,44.24 8.44,43.55 L7.31,43.84 Z" id="Path"></path>
|
||||||
|
<path d="M15.48,45.63 L15.48,39.15 L14.44,39.15 C14.3,39.83 13.66,40.35 12.73,40.37 L12.73,41.19 L14.3,41.19 L14.3,45.63 L15.48,45.63 Z" id="Path"></path>
|
||||||
|
<path d="M17.89,41.58 C17.88,41.47 17.86,41.35 17.86,41.25 C17.86,40.58 18.23,40.05 18.99,40.05 C19.72,40.05 20.08,40.53 20.08,41.06 C20.08,41.53 19.83,41.92 19.25,42.28 L18.18,42.95 C17.05,43.65 16.66,44.52 16.64,45.63 L21.33,45.63 L21.33,44.57 L18.12,44.57 C18.21,44.25 18.47,44.02 18.78,43.83 L20.04,43.05 C20.82,42.57 21.29,41.88 21.29,41.04 C21.29,39.93 20.44,39 19.01,39 C17.54,39 16.7,40.01 16.7,41.13 C16.7,41.26 16.72,41.41 16.73,41.5 L17.89,41.58 Z" id="Path"></path>
|
||||||
|
</g>
|
||||||
|
<path d="M189,111.087912 C190.577956,111.087912 191.857143,112.367099 191.857143,113.945055 L191.857143,116.142857 C191.857143,117.720814 190.577956,119 189,119 C187.422044,119 186.142857,117.720814 186.142857,116.142857 L186.142857,113.945055 C186.142857,112.367099 187.422044,111.087912 189,111.087912 Z M171.857143,95.9230769 C173.435099,95.9230769 174.714286,97.2022634 174.714286,98.7802198 L174.714286,116.142857 C174.714286,117.720814 173.435099,119 171.857143,119 C170.279186,119 169,117.720814 169,116.142857 L169,98.7802198 C169,97.2022634 170.279186,95.9230769 171.857143,95.9230769 Z M206.142857,95.9230769 C207.720814,95.9230769 209,97.2022634 209,98.7802198 L209,116.142857 C209,117.720814 207.720814,119 206.142857,119 C204.564901,119 203.285714,117.720814 203.285714,116.142857 L203.285714,98.7802198 C203.285714,97.2022634 204.564901,95.9230769 206.142857,95.9230769 Z M197.571429,103.835165 C199.149385,103.835165 200.428571,105.114351 200.428571,106.692308 L200.428571,116.142857 C200.428571,117.720814 199.149385,119 197.571429,119 C195.993472,119 194.714286,117.720814 194.714286,116.142857 L194.714286,106.692308 C194.714286,105.114351 195.993472,103.835165 197.571429,103.835165 Z M180.428571,89 C182.006528,89 183.285714,90.2791864 183.285714,91.8571429 L183.285714,116.142857 C183.285714,117.720814 182.006528,119 180.428571,119 C178.850615,119 177.571429,117.720814 177.571429,116.142857 L177.571429,91.8571429 C177.571429,90.2791864 178.850615,89 180.428571,89 Z" id="Rectangle-Copy-6" fill="#FFFFFF" transform="translate(189, 104) scale(-1, 1) translate(-189, -104)"></path>
|
||||||
|
<path d="M0,139 L254,139 L254,141 C254,145.418278 250.418278,149 246,149 L8,149 C3.581722,149 5.41083001e-16,145.418278 0,141 L0,139 L0,139 Z" id="Rectangle" stroke="#222222" stroke-width="1.4" fill="#FFFFFF" stroke-linejoin="round"></path>
|
||||||
|
</g>
|
||||||
|
<g id="X" transform="translate(0, 13)">
|
||||||
|
<g id="BAse">
|
||||||
|
<circle id="Oval" fill="#95A3BF" opacity="0.25" cx="35" cy="35" r="35"></circle>
|
||||||
|
<path d="M35,10 C48.8071187,10 60,21.1928813 60,35 C60,48.8071187 48.8071187,60 35,60 C21.1928813,60 10,48.8071187 10,35 C10,21.1928813 21.1928813,10 35,10 Z M35,19.8837209 C26.6515096,19.8837209 19.8837209,26.6515096 19.8837209,35 C19.8837209,43.3484904 26.6515096,50.1162791 35,50.1162791 C43.3484904,50.1162791 50.1162791,43.3484904 50.1162791,35 C50.1162791,26.6515096 43.3484904,19.8837209 35,19.8837209 Z" id="Oval-3" fill="#95A3BF" opacity="0.25"></path>
|
||||||
|
<path d="M25.9383632,25.9383632 C27.1895142,24.6872123 29.2180307,24.6872123 30.4691816,25.9383632 L35,30.469 L39.5308184,25.9383632 C40.7819693,24.6872123 42.8104858,24.6872123 44.0616368,25.9383632 C45.3127877,27.1895142 45.3127877,29.2180307 44.0616368,30.4691816 L39.531,35 L44.0616368,39.5308184 C45.2664488,40.7356304 45.3110715,42.6612917 44.1955048,43.9195 L44.0616368,44.0616368 C42.8104858,45.3127877 40.7819693,45.3127877 39.5308184,44.0616368 L35,39.531 L30.4691816,44.0616368 C29.2180307,45.3127877 27.1895142,45.3127877 25.9383632,44.0616368 C24.6872123,42.8104858 24.6872123,40.7819693 25.9383632,39.5308184 L30.469,35 L25.9383632,30.4691816 C24.7335512,29.2643696 24.6889285,27.3387083 25.8044952,26.0805 Z" id="Rectangle-3" stroke="#222222" stroke-width="1.4" fill="#ED474A" stroke-linejoin="round"></path>
|
||||||
|
</g>
|
||||||
|
<g id="Top" transform="translate(24, 50)" stroke-linejoin="round">
|
||||||
|
<g id="Path">
|
||||||
|
<use fill="#FFFFFF" xlink:href="#path-4"></use>
|
||||||
|
<use stroke="#222222" stroke-width="1.4" fill="url(#linearGradient-3)" xlink:href="#path-4"></use>
|
||||||
|
</g>
|
||||||
|
<path d="M10,24 L10,36 C10,45.9411255 18.0588745,54 28,54 L28,54 L28,54" id="Path-4" stroke="#222222" stroke-width="1.4"></path>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g id="Top" transform="translate(211, 0)">
|
||||||
|
<rect id="Rectangle" stroke="#95A3BF" stroke-width="1.4" fill-opacity="0.9" fill="#FFFFFF" x="0" y="0" width="88" height="67" rx="4"></rect>
|
||||||
|
<path d="M5.94594595,8 C7.04056437,8 7.92792793,7.1045695 7.92792793,6 C7.92792793,4.8954305 7.04056437,4 5.94594595,4 C4.85132752,4 3.96396396,4.8954305 3.96396396,6 C3.96396396,7.1045695 4.85132752,8 5.94594595,8 Z M11.8918919,8 C12.9865103,8 13.8738739,7.1045695 13.8738739,6 C13.8738739,4.8954305 12.9865103,4 11.8918919,4 C10.7972735,4 9.90990991,4.8954305 9.90990991,6 C9.90990991,7.1045695 10.7972735,8 11.8918919,8 Z M17.8378378,8 C18.9324563,8 19.8198198,7.1045695 19.8198198,6 C19.8198198,4.8954305 18.9324563,4 17.8378378,4 C16.7432194,4 15.8558559,4.8954305 15.8558559,6 C15.8558559,7.1045695 16.7432194,8 17.8378378,8 Z" id="Oval-4" fill="#95A3BF" opacity="0.33"></path>
|
||||||
|
</g>
|
||||||
|
<g id="Group" transform="translate(70, 34)">
|
||||||
|
<path d="M45.1055557,10 L45.1055557,55 C58.9018661,68.7640244 69.5332973,79.370576 76.9998493,86.8196548 C68.8365868,94.9636113 57.5606067,100 45.1055557,100 C20.1944452,100 0,79.8528137 0,55 C0,30.1471863 20.1944452,10 45.1055557,10 Z" id="Oval-2" stroke="#222222" stroke-width="1.4" fill="#FFFFFF" stroke-linejoin="round"></path>
|
||||||
|
<path d="M88.1844548,0 L88.1844548,45 L50,25.3629398 C56.8758557,10.3493516 71.3906665,0 88.1844548,0 Z" id="Oval-5" fill="#95A3BF" opacity="0.2" transform="translate(69.0922, 22.5) scale(-1, 1) translate(-69.0922, -22.5)"></path>
|
||||||
|
<path d="M55.8434235,30.2581738 L94.4264069,50 L63.0764519,79.3208591 C56.1959843,71.3221718 52,60.6808225 52,49 C52,42.3115889 53.3757291,35.9639878 55.8434235,30.2581738 Z" id="Oval-5" stroke="#222222" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="2,4" transform="translate(73.2132, 54.7895) scale(-1, 1) translate(-73.2132, -54.7895)"></path>
|
||||||
|
</g>
|
||||||
|
<g id="Group-2" transform="translate(221, 17)" fill="#95A3BF">
|
||||||
|
<rect id="Rectangle" x="4" y="0" width="2" height="40" rx="1"></rect>
|
||||||
|
<circle id="Oval" stroke="#222222" stroke-width="1.4" cx="5" cy="13" r="5"></circle>
|
||||||
|
</g>
|
||||||
|
<g id="Group-2-Copy" transform="translate(240, 17)" fill="#95A3BF">
|
||||||
|
<rect id="Rectangle" x="4" y="0" width="2" height="40" rx="1"></rect>
|
||||||
|
<circle id="Oval" stroke="#222222" stroke-width="1.4" cx="5" cy="25" r="5"></circle>
|
||||||
|
</g>
|
||||||
|
<g id="Group-2-Copy-2" transform="translate(260, 17)" fill="#95A3BF">
|
||||||
|
<rect id="Rectangle" x="4" y="0" width="2" height="40" rx="1"></rect>
|
||||||
|
<circle id="Oval" stroke="#222222" stroke-width="1.4" cx="5" cy="20" r="5"></circle>
|
||||||
|
</g>
|
||||||
|
<g id="Group-2-Copy-3" transform="translate(279, 17)" fill="#95A3BF">
|
||||||
|
<rect id="Rectangle" x="4" y="0" width="2" height="40" rx="1"></rect>
|
||||||
|
<circle id="Oval" stroke="#222222" stroke-width="1.4" cx="5" cy="5" r="5"></circle>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 17 KiB |
68
pandora_console/images/empty_views/ncm.svg
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="300px" height="165px" viewBox="0 0 300 165" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<title>7C2E23EA-BCA7-4E5D-BAD4-CF7507F60894</title>
|
||||||
|
<defs>
|
||||||
|
<linearGradient x1="50%" y1="50%" x2="52.9793104%" y2="51.386177%" id="linearGradient-1">
|
||||||
|
<stop stop-color="#FFFFFF" stop-opacity="0.7" offset="0%"></stop>
|
||||||
|
<stop stop-color="#FFFFFF" stop-opacity="0" offset="100%"></stop>
|
||||||
|
</linearGradient>
|
||||||
|
<path d="M40,6 L214,6 C216.761424,6 219,8.23857625 219,11 L219,129 L219,129 L35,129 L35,11 C35,8.23857625 37.2385763,6 40,6 Z" id="path-2"></path>
|
||||||
|
<linearGradient x1="50%" y1="49.8604439%" x2="50%" y2="50.731762%" id="linearGradient-3">
|
||||||
|
<stop stop-color="#000000" stop-opacity="0" offset="0%"></stop>
|
||||||
|
<stop stop-color="#000000" stop-opacity="0.07" offset="100%"></stop>
|
||||||
|
</linearGradient>
|
||||||
|
<path d="M1.25,18 C1.25,18.6627417 1.80964406,19.2 2.5,19.2 L5,19.2 L5,22.8 C5,23.4627417 5.55964406,24 6.25,24 L13.75,24 C14.4403559,24 15,23.4627417 15,22.8 L15,19.2 L17.5,19.2 C18.1903559,19.2 18.75,18.6627417 18.75,18 L18.75,9.6 L20,9.6 L20,7.2 L15,7.2 L15,0 L12.5,0 L12.5,7.2 L7.5,7.2 L7.5,0 L5,0 L5,7.2 L0,7.2 L0,9.6 L1.25,9.6 L1.25,18 Z" id="path-4"></path>
|
||||||
|
</defs>
|
||||||
|
<g id="Nuevo-UI-Menu/Head" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||||
|
<g id="Mockup---No-data-screens" transform="translate(-631, -2464)">
|
||||||
|
<g id="NCM" transform="translate(601, 2434)">
|
||||||
|
<g id="Top" transform="translate(30, 30)">
|
||||||
|
<g id="No-NMC-found" transform="translate(0, 1)">
|
||||||
|
<g id="Base" transform="translate(23, 14)">
|
||||||
|
<path d="M225,103 L238,103 C245.179702,103 251,108.820298 251,116 C251,123.179702 245.179702,129 238,129 L225,129 L225,129" id="Path-5" stroke="#222222" stroke-width="1.4" stroke-linejoin="round"></path>
|
||||||
|
<path d="M38.8461538,0 L214.846154,0 C220.369001,-1.01453063e-15 224.846154,4.4771525 224.846154,10 L224.846154,140 L224.846154,140 L28.8461538,140 L28.8461538,10 C28.8461538,4.4771525 33.3233063,1.01453063e-15 38.8461538,0 Z" id="Rectangle" stroke="#222222" stroke-width="1.4" fill="#FFFFFF" stroke-linejoin="round"></path>
|
||||||
|
<g id="Rectangle">
|
||||||
|
<use fill="#D0E7FD" xlink:href="#path-2"></use>
|
||||||
|
<use fill="url(#linearGradient-1)" xlink:href="#path-2"></use>
|
||||||
|
</g>
|
||||||
|
<path d="M189,111.087912 C190.577956,111.087912 191.857143,112.367099 191.857143,113.945055 L191.857143,116.142857 C191.857143,117.720814 190.577956,119 189,119 C187.422044,119 186.142857,117.720814 186.142857,116.142857 L186.142857,113.945055 C186.142857,112.367099 187.422044,111.087912 189,111.087912 Z M171.857143,95.9230769 C173.435099,95.9230769 174.714286,97.2022634 174.714286,98.7802198 L174.714286,116.142857 C174.714286,117.720814 173.435099,119 171.857143,119 C170.279186,119 169,117.720814 169,116.142857 L169,98.7802198 C169,97.2022634 170.279186,95.9230769 171.857143,95.9230769 Z M206.142857,95.9230769 C207.720814,95.9230769 209,97.2022634 209,98.7802198 L209,116.142857 C209,117.720814 207.720814,119 206.142857,119 C204.564901,119 203.285714,117.720814 203.285714,116.142857 L203.285714,98.7802198 C203.285714,97.2022634 204.564901,95.9230769 206.142857,95.9230769 Z M197.571429,103.835165 C199.149385,103.835165 200.428571,105.114351 200.428571,106.692308 L200.428571,116.142857 C200.428571,117.720814 199.149385,119 197.571429,119 C195.993472,119 194.714286,117.720814 194.714286,116.142857 L194.714286,106.692308 C194.714286,105.114351 195.993472,103.835165 197.571429,103.835165 Z M180.428571,89 C182.006528,89 183.285714,90.2791864 183.285714,91.8571429 L183.285714,116.142857 C183.285714,117.720814 182.006528,119 180.428571,119 C178.850615,119 177.571429,117.720814 177.571429,116.142857 L177.571429,91.8571429 C177.571429,90.2791864 178.850615,89 180.428571,89 Z" id="Rectangle-Copy-6" fill="#FFFFFF" transform="translate(189, 104) scale(-1, 1) translate(-189, -104)"></path>
|
||||||
|
<path d="M0,139 L254,139 L254,141 C254,145.418278 250.418278,149 246,149 L8,149 C3.581722,149 5.41083001e-16,145.418278 0,141 L0,139 L0,139 Z" id="Rectangle" stroke="#222222" stroke-width="1.4" fill="#FFFFFF" stroke-linejoin="round"></path>
|
||||||
|
</g>
|
||||||
|
<g id="X" transform="translate(0, 13)">
|
||||||
|
<g id="BAse">
|
||||||
|
<circle id="Oval" fill="#95A3BF" opacity="0.25" cx="35" cy="35" r="35"></circle>
|
||||||
|
<path d="M35,10 C48.8071187,10 60,21.1928813 60,35 C60,48.8071187 48.8071187,60 35,60 C21.1928813,60 10,48.8071187 10,35 C10,21.1928813 21.1928813,10 35,10 Z M35,19.8837209 C26.6515096,19.8837209 19.8837209,26.6515096 19.8837209,35 C19.8837209,43.3484904 26.6515096,50.1162791 35,50.1162791 C43.3484904,50.1162791 50.1162791,43.3484904 50.1162791,35 C50.1162791,26.6515096 43.3484904,19.8837209 35,19.8837209 Z" id="Oval-3" fill="#95A3BF" opacity="0.25"></path>
|
||||||
|
<path d="M25.9383632,25.9383632 C27.1895142,24.6872123 29.2180307,24.6872123 30.4691816,25.9383632 L35,30.469 L39.5308184,25.9383632 C40.7819693,24.6872123 42.8104858,24.6872123 44.0616368,25.9383632 C45.3127877,27.1895142 45.3127877,29.2180307 44.0616368,30.4691816 L39.531,35 L44.0616368,39.5308184 C45.2664488,40.7356304 45.3110715,42.6612917 44.1955048,43.9195 L44.0616368,44.0616368 C42.8104858,45.3127877 40.7819693,45.3127877 39.5308184,44.0616368 L35,39.531 L30.4691816,44.0616368 C29.2180307,45.3127877 27.1895142,45.3127877 25.9383632,44.0616368 C24.6872123,42.8104858 24.6872123,40.7819693 25.9383632,39.5308184 L30.469,35 L25.9383632,30.4691816 C24.7335512,29.2643696 24.6889285,27.3387083 25.8044952,26.0805 Z" id="Rectangle-3" stroke="#222222" stroke-width="1.4" fill="#ED474A" stroke-linejoin="round"></path>
|
||||||
|
</g>
|
||||||
|
<g id="Top" transform="translate(24, 50)" stroke-linejoin="round">
|
||||||
|
<g id="Path">
|
||||||
|
<use fill="#FFFFFF" xlink:href="#path-4"></use>
|
||||||
|
<use stroke="#222222" stroke-width="1.4" fill="url(#linearGradient-3)" xlink:href="#path-4"></use>
|
||||||
|
</g>
|
||||||
|
<path d="M10,24 L10,36 C10,45.9411255 18.0588745,54 28,54 L28,54 L28,54" id="Path-4" stroke="#222222" stroke-width="1.4"></path>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g id="Top" transform="translate(211, 0)">
|
||||||
|
<rect id="Rectangle-Copy-8" stroke="#95A3BF" stroke-width="1.4" fill-opacity="0.9" fill="#FFFFFF" x="20" y="34" width="68" height="50" rx="4"></rect>
|
||||||
|
<rect id="Rectangle" stroke="#95A3BF" stroke-width="1.4" x="0" y="0" width="70.3603604" height="54" rx="4"></rect>
|
||||||
|
<path d="M5.94594595,8 C7.04056437,8 7.92792793,7.1045695 7.92792793,6 C7.92792793,4.8954305 7.04056437,4 5.94594595,4 C4.85132752,4 3.96396396,4.8954305 3.96396396,6 C3.96396396,7.1045695 4.85132752,8 5.94594595,8 Z M11.8918919,8 C12.9865103,8 13.8738739,7.1045695 13.8738739,6 C13.8738739,4.8954305 12.9865103,4 11.8918919,4 C10.7972735,4 9.90990991,4.8954305 9.90990991,6 C9.90990991,7.1045695 10.7972735,8 11.8918919,8 Z M17.8378378,8 C18.9324563,8 19.8198198,7.1045695 19.8198198,6 C19.8198198,4.8954305 18.9324563,4 17.8378378,4 C16.7432194,4 15.8558559,4.8954305 15.8558559,6 C15.8558559,7.1045695 16.7432194,8 17.8378378,8 Z" id="Oval-4" fill="#95A3BF" opacity="0.33"></path>
|
||||||
|
</g>
|
||||||
|
<g id="Group" transform="translate(82, 35)" stroke-width="1.4">
|
||||||
|
<circle id="Oval" stroke="#222222" fill="#FFFFFF" stroke-linejoin="round" cx="57" cy="7" r="7"></circle>
|
||||||
|
<circle id="Oval-Copy-4" stroke="#222222" fill="#FFFFFF" stroke-linejoin="round" transform="translate(30, 7) scale(-1, 1) translate(-30, -7)" cx="30" cy="7" r="7"></circle>
|
||||||
|
<circle id="Oval-Copy" stroke="#95A3BF" cx="71" cy="21" r="7"></circle>
|
||||||
|
<circle id="Oval-Copy-5" stroke="#95A3BF" transform="translate(16, 21) scale(-1, 1) translate(-16, -21)" cx="16" cy="21" r="7"></circle>
|
||||||
|
<polyline id="Path-35" stroke="#222222" stroke-linecap="round" stroke-linejoin="round" points="57 14 57 31 49 39 49 76 56 76 43.5 93 31 76 38 76 38 71"></polyline>
|
||||||
|
<polyline id="Path-35-Copy" stroke="#222222" stroke-linecap="round" stroke-linejoin="round" transform="translate(34, 39.5) scale(-1, 1) translate(-34, -39.5)" points="38 14 38 31 30 39 30 65"></polyline>
|
||||||
|
<polyline id="Path-35-Copy-2" stroke="#95A3BF" stroke-linecap="round" stroke-linejoin="round" transform="translate(20, 46.5) scale(-1, 1) translate(-20, -46.5)" points="24 28 24 40 16 48 16 65"></polyline>
|
||||||
|
<polyline id="Path-35-Copy-3" stroke="#95A3BF" stroke-linecap="round" stroke-linejoin="round" points="71 28 71 40 63 48 63 65"></polyline>
|
||||||
|
<line x1="16" y1="49.5" x2="16" y2="79.5" id="Path-36" stroke="#95A3BF" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="2,4"></line>
|
||||||
|
<line x1="72" y1="49.5" x2="72" y2="79.5" id="Path-36-Copy" stroke="#95A3BF" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="2,4"></line>
|
||||||
|
<polyline id="Polygon" stroke="#95A3BF" stroke-linecap="round" stroke-linejoin="round" points="86 44 86 74.4597701 43 97.7356322 0 74.4597701 0 44"></polyline>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 9.8 KiB |
63
pandora_console/images/empty_views/plugins.svg
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="300px" height="165px" viewBox="0 0 300 165" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<title>A84B8A2A-F149-4822-9084-B43F3D4C6C8F</title>
|
||||||
|
<defs>
|
||||||
|
<linearGradient x1="50%" y1="50%" x2="52.9793104%" y2="51.386177%" id="linearGradient-1">
|
||||||
|
<stop stop-color="#FFFFFF" stop-opacity="0.7" offset="0%"></stop>
|
||||||
|
<stop stop-color="#FFFFFF" stop-opacity="0" offset="100%"></stop>
|
||||||
|
</linearGradient>
|
||||||
|
<path d="M40,6 L214,6 C216.761424,6 219,8.23857625 219,11 L219,129 L219,129 L35,129 L35,11 C35,8.23857625 37.2385763,6 40,6 Z" id="path-2"></path>
|
||||||
|
<linearGradient x1="50%" y1="49.8604439%" x2="50%" y2="50.731762%" id="linearGradient-3">
|
||||||
|
<stop stop-color="#000000" stop-opacity="0" offset="0%"></stop>
|
||||||
|
<stop stop-color="#000000" stop-opacity="0.07" offset="100%"></stop>
|
||||||
|
</linearGradient>
|
||||||
|
<path d="M1.25,18 C1.25,18.6627417 1.80964406,19.2 2.5,19.2 L5,19.2 L5,22.8 C5,23.4627417 5.55964406,24 6.25,24 L13.75,24 C14.4403559,24 15,23.4627417 15,22.8 L15,19.2 L17.5,19.2 C18.1903559,19.2 18.75,18.6627417 18.75,18 L18.75,9.6 L20,9.6 L20,7.2 L15,7.2 L15,0 L12.5,0 L12.5,7.2 L7.5,7.2 L7.5,0 L5,0 L5,7.2 L0,7.2 L0,9.6 L1.25,9.6 L1.25,18 Z" id="path-4"></path>
|
||||||
|
</defs>
|
||||||
|
<g id="Nuevo-UI-Menu/Head" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||||
|
<g id="Mockup---No-data-screens" transform="translate(-631, -2954)">
|
||||||
|
<g id="Plugins" transform="translate(601, 2924)">
|
||||||
|
<g id="Top" transform="translate(30, 30)">
|
||||||
|
<g id="No-Plugin-found" transform="translate(0, 1)">
|
||||||
|
<g id="Base" transform="translate(23, 14)">
|
||||||
|
<path d="M225,103 L238,103 C245.179702,103 251,108.820298 251,116 C251,123.179702 245.179702,129 238,129 L225,129 L225,129" id="Path-5" stroke="#222222" stroke-width="1.4" stroke-linejoin="round"></path>
|
||||||
|
<path d="M38.8461538,0 L214.846154,0 C220.369001,-1.01453063e-15 224.846154,4.4771525 224.846154,10 L224.846154,140 L224.846154,140 L28.8461538,140 L28.8461538,10 C28.8461538,4.4771525 33.3233063,1.01453063e-15 38.8461538,0 Z" id="Rectangle" stroke="#222222" stroke-width="1.4" fill="#FFFFFF" stroke-linejoin="round"></path>
|
||||||
|
<g id="Rectangle">
|
||||||
|
<use fill="#D0E7FD" xlink:href="#path-2"></use>
|
||||||
|
<use fill="url(#linearGradient-1)" xlink:href="#path-2"></use>
|
||||||
|
</g>
|
||||||
|
<path d="M189,111.087912 C190.577956,111.087912 191.857143,112.367099 191.857143,113.945055 L191.857143,116.142857 C191.857143,117.720814 190.577956,119 189,119 C187.422044,119 186.142857,117.720814 186.142857,116.142857 L186.142857,113.945055 C186.142857,112.367099 187.422044,111.087912 189,111.087912 Z M171.857143,95.9230769 C173.435099,95.9230769 174.714286,97.2022634 174.714286,98.7802198 L174.714286,116.142857 C174.714286,117.720814 173.435099,119 171.857143,119 C170.279186,119 169,117.720814 169,116.142857 L169,98.7802198 C169,97.2022634 170.279186,95.9230769 171.857143,95.9230769 Z M206.142857,95.9230769 C207.720814,95.9230769 209,97.2022634 209,98.7802198 L209,116.142857 C209,117.720814 207.720814,119 206.142857,119 C204.564901,119 203.285714,117.720814 203.285714,116.142857 L203.285714,98.7802198 C203.285714,97.2022634 204.564901,95.9230769 206.142857,95.9230769 Z M197.571429,103.835165 C199.149385,103.835165 200.428571,105.114351 200.428571,106.692308 L200.428571,116.142857 C200.428571,117.720814 199.149385,119 197.571429,119 C195.993472,119 194.714286,117.720814 194.714286,116.142857 L194.714286,106.692308 C194.714286,105.114351 195.993472,103.835165 197.571429,103.835165 Z M180.428571,89 C182.006528,89 183.285714,90.2791864 183.285714,91.8571429 L183.285714,116.142857 C183.285714,117.720814 182.006528,119 180.428571,119 C178.850615,119 177.571429,117.720814 177.571429,116.142857 L177.571429,91.8571429 C177.571429,90.2791864 178.850615,89 180.428571,89 Z" id="Rectangle-Copy-6" fill="#FFFFFF" transform="translate(189, 104) scale(-1, 1) translate(-189, -104)"></path>
|
||||||
|
<path d="M0,139 L254,139 L254,141 C254,145.418278 250.418278,149 246,149 L8,149 C3.581722,149 5.41083001e-16,145.418278 0,141 L0,139 L0,139 Z" id="Rectangle" stroke="#222222" stroke-width="1.4" fill="#FFFFFF" stroke-linejoin="round"></path>
|
||||||
|
</g>
|
||||||
|
<g id="X" transform="translate(0, 13)">
|
||||||
|
<g id="BAse">
|
||||||
|
<circle id="Oval" fill="#95A3BF" opacity="0.25" cx="35" cy="35" r="35"></circle>
|
||||||
|
<path d="M35,10 C48.8071187,10 60,21.1928813 60,35 C60,48.8071187 48.8071187,60 35,60 C21.1928813,60 10,48.8071187 10,35 C10,21.1928813 21.1928813,10 35,10 Z M35,19.8837209 C26.6515096,19.8837209 19.8837209,26.6515096 19.8837209,35 C19.8837209,43.3484904 26.6515096,50.1162791 35,50.1162791 C43.3484904,50.1162791 50.1162791,43.3484904 50.1162791,35 C50.1162791,26.6515096 43.3484904,19.8837209 35,19.8837209 Z" id="Oval-3" fill="#95A3BF" opacity="0.25"></path>
|
||||||
|
<path d="M25.9383632,25.9383632 C27.1895142,24.6872123 29.2180307,24.6872123 30.4691816,25.9383632 L35,30.469 L39.5308184,25.9383632 C40.7819693,24.6872123 42.8104858,24.6872123 44.0616368,25.9383632 C45.3127877,27.1895142 45.3127877,29.2180307 44.0616368,30.4691816 L39.531,35 L44.0616368,39.5308184 C45.2664488,40.7356304 45.3110715,42.6612917 44.1955048,43.9195 L44.0616368,44.0616368 C42.8104858,45.3127877 40.7819693,45.3127877 39.5308184,44.0616368 L35,39.531 L30.4691816,44.0616368 C29.2180307,45.3127877 27.1895142,45.3127877 25.9383632,44.0616368 C24.6872123,42.8104858 24.6872123,40.7819693 25.9383632,39.5308184 L30.469,35 L25.9383632,30.4691816 C24.7335512,29.2643696 24.6889285,27.3387083 25.8044952,26.0805 Z" id="Rectangle-3" stroke="#222222" stroke-width="1.4" fill="#ED474A" stroke-linejoin="round"></path>
|
||||||
|
</g>
|
||||||
|
<g id="Top" transform="translate(24, 50)" stroke-linejoin="round">
|
||||||
|
<g id="Path">
|
||||||
|
<use fill="#FFFFFF" xlink:href="#path-4"></use>
|
||||||
|
<use stroke="#222222" stroke-width="1.4" fill="url(#linearGradient-3)" xlink:href="#path-4"></use>
|
||||||
|
</g>
|
||||||
|
<path d="M10,24 L10,36 C10,45.9411255 18.0588745,54 28,54 L28,54 L28,54" id="Path-4" stroke="#222222" stroke-width="1.4"></path>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g id="Top" transform="translate(211, 0)">
|
||||||
|
<rect id="Rectangle-Copy-8" stroke="#95A3BF" stroke-width="1.4" fill-opacity="0.9" fill="#FFFFFF" x="20" y="34" width="68" height="50" rx="4"></rect>
|
||||||
|
<rect id="Rectangle" stroke="#95A3BF" stroke-width="1.4" x="0" y="0" width="70.3603604" height="54" rx="4"></rect>
|
||||||
|
<path d="M5.94594595,8 C7.04056437,8 7.92792793,7.1045695 7.92792793,6 C7.92792793,4.8954305 7.04056437,4 5.94594595,4 C4.85132752,4 3.96396396,4.8954305 3.96396396,6 C3.96396396,7.1045695 4.85132752,8 5.94594595,8 Z M11.8918919,8 C12.9865103,8 13.8738739,7.1045695 13.8738739,6 C13.8738739,4.8954305 12.9865103,4 11.8918919,4 C10.7972735,4 9.90990991,4.8954305 9.90990991,6 C9.90990991,7.1045695 10.7972735,8 11.8918919,8 Z M17.8378378,8 C18.9324563,8 19.8198198,7.1045695 19.8198198,6 C19.8198198,4.8954305 18.9324563,4 17.8378378,4 C16.7432194,4 15.8558559,4.8954305 15.8558559,6 C15.8558559,7.1045695 16.7432194,8 17.8378378,8 Z" id="Oval-4" fill="#95A3BF" opacity="0.33"></path>
|
||||||
|
</g>
|
||||||
|
<g id="Group" transform="translate(75, 32)">
|
||||||
|
<path d="M36.5277777,50 L46.2962963,50 C48.3417954,50 50,48.2780183 50,46.1538462 L50,37.0913462 C49.997871,36.4503405 49.6844882,35.8537078 49.1666667,35.5048077 C48.655685,35.1385347 47.9979818,35.0747881 47.4305555,35.3365385 C46.7745727,35.6056844 46.0756971,35.7443119 45.3703704,35.7451923 C42.3148148,35.7451923 39.8148148,33.0769231 39.8148148,29.8076923 C39.8148148,26.5384615 42.3148148,23.8701923 45.3703704,23.8701923 C46.0756971,23.8710728 46.7745727,24.0097002 47.4305555,24.2788462 C47.9979818,24.5405965 48.655685,24.4768499 49.1666667,24.1105769 C49.6844882,23.7616768 49.997871,23.1650442 50,22.5240385 L50,13.4615385 C50,11.3373663 48.3417954,9.61538462 46.2962963,9.61538462 L37.9166666,9.61538462 C37.9398148,9.30288462 37.9629629,8.96634615 37.9629629,8.65384615 C37.9629629,3.8744589 34.2320025,0 29.6296296,0 C25.0272566,0 21.2962962,3.8744589 21.2962962,8.65384615 C21.2962962,8.96634615 21.3194443,9.30288462 21.3425925,9.61538462 L12.9629628,9.61538462 C10.9174638,9.61538462 9.25925912,11.3373663 9.25925912,13.4615385 L9.25925912,21.2019231 L8.33333319,21.1538462 C3.73096032,21.1538463 0,25.0283051 0,29.8076923 C0,34.5870795 3.73096032,38.4615384 8.33333319,38.4615385 L9.25925912,38.4134615 L9.25925912,46.1538462 C9.25925912,48.2780183 10.9174638,50 12.9629628,50 L22.7314814,50 L36.5277777,50 Z" id="Path" stroke="#95A3BF" stroke-width="1.4"></path>
|
||||||
|
<path d="M86.5277777,100 L96.2962963,100 C98.3417954,100 100,98.2780183 100,96.1538462 L100,87.0913462 C99.997871,86.4503405 99.6844882,85.8537078 99.1666667,85.5048077 C98.655685,85.1385347 97.9979818,85.0747881 97.4305555,85.3365385 C96.7745727,85.6056844 96.0756971,85.7443119 95.3703704,85.7451923 C92.3148148,85.7451923 89.8148148,83.0769231 89.8148148,79.8076923 C89.8148148,76.5384615 92.3148148,73.8701923 95.3703704,73.8701923 C96.0756971,73.8710728 96.7745727,74.0097002 97.4305555,74.2788462 C97.9979818,74.5405965 98.655685,74.4768499 99.1666667,74.1105769 C99.6844882,73.7616768 99.997871,73.1650442 100,72.5240385 L100,63.4615385 C100,61.3373663 98.3417954,59.6153846 96.2962963,59.6153846 L87.9166666,59.6153846 C87.9398148,59.3028846 87.9629629,58.9663462 87.9629629,58.6538462 C87.9629629,53.8744589 84.2320025,50 79.6296296,50 C75.0272566,50 71.2962962,53.8744589 71.2962962,58.6538462 C71.2962962,58.9663462 71.3194443,59.3028846 71.3425925,59.6153846 L62.9629628,59.6153846 C60.9174638,59.6153846 59.2592591,61.3373663 59.2592591,63.4615385 L59.2592591,71.2019231 L58.3333332,71.1538462 C53.7309603,71.1538463 50,75.0283051 50,79.8076923 C50,84.5870795 53.7309603,88.4615384 58.3333332,88.4615385 L59.2592591,88.4134615 L59.2592591,96.1538462 C59.2592591,98.2780183 60.9174638,100 62.9629628,100 L72.7314814,100 L86.5277777,100 Z" id="Path-Copy-3" stroke="#95A3BF" stroke-width="1.4" transform="translate(75, 75) scale(-1, -1) translate(-75, -75)"></path>
|
||||||
|
<path d="M86.2962963,50 C88.3417954,50 90,48.2780183 90,46.1538462 L90,37.0913462 C89.997871,36.4503405 89.6844882,35.8537078 89.1666667,35.5048077 C88.655685,35.1385347 87.9979818,35.0747881 87.4305555,35.3365385 C86.7745727,35.6056844 86.0756971,35.7443119 85.3703704,35.7451923 C82.3148148,35.7451923 79.8148148,33.0769231 79.8148148,29.8076923 C79.8148148,26.5384615 82.3148148,23.8701923 85.3703704,23.8701923 C86.0756971,23.8710728 86.7745727,24.0097002 87.4305555,24.2788462 C87.9979818,24.5405965 88.655685,24.4768499 89.1666667,24.1105769 C89.6844882,23.7616768 89.997871,23.1650442 90,22.5240385 L90,13.4615385 C90,11.3373663 88.3417954,9.61538462 86.2962963,9.61538462 L77.9166666,9.61538462 C77.9398148,9.30288462 77.9629629,8.96634615 77.9629629,8.65384615 C77.9629629,3.8744589 74.2320025,0 69.6296296,0 C65.0272566,0 61.2962962,3.8744589 61.2962962,8.65384615 C61.2962962,8.96634615 61.3194443,9.30288462 61.3425925,9.61538462 L52.9629628,9.61538462 C50.9174638,9.61538462 49.2592591,11.3373663 49.2592591,13.4615385 L49.2592591,21.2019231 L48.3333332,21.1538462 C43.7309603,21.1538463 40,25.0283051 40,29.8076923 C40,34.5870795 43.7309603,38.4615384 48.3333332,38.4615385 L49.2592591,38.4134615 L49.2592591,46.1538462 C49.2592591,48.2780183 50.9174638,50 52.9629628,50 L86.2962963,50 Z" id="Path-Copy" stroke="#222222" stroke-width="1.4" fill="#FFFFFF" stroke-linejoin="round"></path>
|
||||||
|
<polygon id="Star" fill="#95A3BF" opacity="0.2" points="65 35 57.946577 38.7082039 59.2936609 30.854102 53.5873218 25.2917961 61.4732885 24.145898 65 17 68.5267115 24.145898 76.4126782 25.2917961 70.7063391 30.854102 72.053423 38.7082039"></polygon>
|
||||||
|
<path d="M46.5277777,100 L56.2962963,100 C58.3417954,100 60,98.2780183 60,96.1538462 L60,87.0913462 C59.997871,86.4503405 59.6844882,85.8537078 59.1666667,85.5048077 C58.655685,85.1385347 57.9979818,85.0747881 57.4305555,85.3365385 C56.7745727,85.6056844 56.0756971,85.7443119 55.3703704,85.7451923 C52.3148148,85.7451923 49.8148148,83.0769231 49.8148148,79.8076923 C49.8148148,76.5384615 52.3148148,73.8701923 55.3703704,73.8701923 C56.0756971,73.8710728 56.7745727,74.0097002 57.4305555,74.2788462 C57.9979818,74.5405965 58.655685,74.4768499 59.1666667,74.1105769 C59.6844882,73.7616768 59.997871,73.1650442 60,72.5240385 L60,63.4615385 C60,61.3373663 58.3417954,59.6153846 56.2962963,59.6153846 L47.9166666,59.6153846 C47.9398148,59.3028846 47.9629629,58.9663462 47.9629629,58.6538462 C47.9629629,53.8744589 44.2320025,50 39.6296296,50 C35.0272566,50 31.2962962,53.8744589 31.2962962,58.6538462 C31.2962962,58.9663462 31.3194443,59.3028846 31.3425925,59.6153846 L22.9629628,59.6153846 C20.9174638,59.6153846 19.2592591,61.3373663 19.2592591,63.4615385 L19.2592591,71.2019231 L18.3333332,71.1538462 C13.7309603,71.1538463 10,75.0283051 10,79.8076923 C10,84.5870795 13.7309603,88.4615384 18.3333332,88.4615385 L19.2592591,88.4134615 L19.2592591,96.1538462 C19.2592591,98.2780183 20.9174638,100 22.9629628,100 C25.0662296,100 26.6436797,100 27.6953131,100 C28.8144616,100 30.4931844,100 32.7314814,100 L46.5277777,100 Z" id="Path-Copy-2" stroke="#95A3BF" stroke-width="1.4" fill="#F0F7FE" transform="translate(35, 75) scale(-1, -1) translate(-35, -75)"></path>
|
||||||
|
<path d="M16.9459459,59 C18.0405644,59 18.9279279,58.1045695 18.9279279,57 C18.9279279,55.8954305 18.0405644,55 16.9459459,55 C15.8513275,55 14.963964,55.8954305 14.963964,57 C14.963964,58.1045695 15.8513275,59 16.9459459,59 Z M22.8918919,59 C23.9865103,59 24.8738739,58.1045695 24.8738739,57 C24.8738739,55.8954305 23.9865103,55 22.8918919,55 C21.7972735,55 20.9099099,55.8954305 20.9099099,57 C20.9099099,58.1045695 21.7972735,59 22.8918919,59 Z M28.8378378,59 C29.9324563,59 30.8198198,58.1045695 30.8198198,57 C30.8198198,55.8954305 29.9324563,55 28.8378378,55 C27.7432194,55 26.8558559,55.8954305 26.8558559,57 C26.8558559,58.1045695 27.7432194,59 28.8378378,59 Z" id="Oval-4" fill="#95A3BF"></path>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 15 KiB |
59
pandora_console/images/empty_views/sap.svg
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="300px" height="165px" viewBox="0 0 300 165" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<title>E164C8FF-CEE9-4F16-BA63-5FB4919DD393</title>
|
||||||
|
<defs>
|
||||||
|
<linearGradient x1="50%" y1="50%" x2="52.9793104%" y2="51.386177%" id="linearGradient-1">
|
||||||
|
<stop stop-color="#FFFFFF" stop-opacity="0.7" offset="0%"></stop>
|
||||||
|
<stop stop-color="#FFFFFF" stop-opacity="0" offset="100%"></stop>
|
||||||
|
</linearGradient>
|
||||||
|
<path d="M40,6 L214,6 C216.761424,6 219,8.23857625 219,11 L219,129 L219,129 L35,129 L35,11 C35,8.23857625 37.2385763,6 40,6 Z" id="path-2"></path>
|
||||||
|
<linearGradient x1="50%" y1="49.8604439%" x2="50%" y2="50.731762%" id="linearGradient-3">
|
||||||
|
<stop stop-color="#000000" stop-opacity="0" offset="0%"></stop>
|
||||||
|
<stop stop-color="#000000" stop-opacity="0.07" offset="100%"></stop>
|
||||||
|
</linearGradient>
|
||||||
|
<path d="M1.25,18 C1.25,18.6627417 1.80964406,19.2 2.5,19.2 L5,19.2 L5,22.8 C5,23.4627417 5.55964406,24 6.25,24 L13.75,24 C14.4403559,24 15,23.4627417 15,22.8 L15,19.2 L17.5,19.2 C18.1903559,19.2 18.75,18.6627417 18.75,18 L18.75,9.6 L20,9.6 L20,7.2 L15,7.2 L15,0 L12.5,0 L12.5,7.2 L7.5,7.2 L7.5,0 L5,0 L5,7.2 L0,7.2 L0,9.6 L1.25,9.6 L1.25,18 Z" id="path-4"></path>
|
||||||
|
</defs>
|
||||||
|
<g id="Nuevo-UI-Menu/Head" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||||
|
<g id="Mockup---No-data-screens" transform="translate(-631, -553)">
|
||||||
|
<g id="SAP" transform="translate(601, 523)">
|
||||||
|
<g id="Content" transform="translate(0, 30)">
|
||||||
|
<g id="No-SAP-found" transform="translate(30, 1)">
|
||||||
|
<g id="Base" transform="translate(23, 14)">
|
||||||
|
<path d="M225,103 L238,103 C245.179702,103 251,108.820298 251,116 C251,123.179702 245.179702,129 238,129 L225,129 L225,129" id="Path-5" stroke="#222222" stroke-width="1.4" stroke-linejoin="round"></path>
|
||||||
|
<path d="M38.8461538,0 L214.846154,0 C220.369001,-1.01453063e-15 224.846154,4.4771525 224.846154,10 L224.846154,140 L224.846154,140 L28.8461538,140 L28.8461538,10 C28.8461538,4.4771525 33.3233063,1.01453063e-15 38.8461538,0 Z" id="Rectangle" stroke="#222222" stroke-width="1.4" fill="#FFFFFF" stroke-linejoin="round"></path>
|
||||||
|
<g id="Rectangle">
|
||||||
|
<use fill="#D0E7FD" xlink:href="#path-2"></use>
|
||||||
|
<use fill="url(#linearGradient-1)" xlink:href="#path-2"></use>
|
||||||
|
</g>
|
||||||
|
<path d="M0,139 L254,139 L254,141 C254,145.418278 250.418278,149 246,149 L8,149 C3.581722,149 5.41083001e-16,145.418278 0,141 L0,139 L0,139 Z" id="Rectangle" stroke="#222222" stroke-width="1.4" fill="#FFFFFF" stroke-linejoin="round"></path>
|
||||||
|
<path d="M189,111.087912 C190.577956,111.087912 191.857143,112.367099 191.857143,113.945055 L191.857143,116.142857 C191.857143,117.720814 190.577956,119 189,119 C187.422044,119 186.142857,117.720814 186.142857,116.142857 L186.142857,113.945055 C186.142857,112.367099 187.422044,111.087912 189,111.087912 Z M171.857143,95.9230769 C173.435099,95.9230769 174.714286,97.2022634 174.714286,98.7802198 L174.714286,116.142857 C174.714286,117.720814 173.435099,119 171.857143,119 C170.279186,119 169,117.720814 169,116.142857 L169,98.7802198 C169,97.2022634 170.279186,95.9230769 171.857143,95.9230769 Z M206.142857,95.9230769 C207.720814,95.9230769 209,97.2022634 209,98.7802198 L209,116.142857 C209,117.720814 207.720814,119 206.142857,119 C204.564901,119 203.285714,117.720814 203.285714,116.142857 L203.285714,98.7802198 C203.285714,97.2022634 204.564901,95.9230769 206.142857,95.9230769 Z M197.571429,103.835165 C199.149385,103.835165 200.428571,105.114351 200.428571,106.692308 L200.428571,116.142857 C200.428571,117.720814 199.149385,119 197.571429,119 C195.993472,119 194.714286,117.720814 194.714286,116.142857 L194.714286,106.692308 C194.714286,105.114351 195.993472,103.835165 197.571429,103.835165 Z M180.428571,89 C182.006528,89 183.285714,90.2791864 183.285714,91.8571429 L183.285714,116.142857 C183.285714,117.720814 182.006528,119 180.428571,119 C178.850615,119 177.571429,117.720814 177.571429,116.142857 L177.571429,91.8571429 C177.571429,90.2791864 178.850615,89 180.428571,89 Z" id="Rectangle-Copy-6" fill="#FFFFFF"></path>
|
||||||
|
</g>
|
||||||
|
<g id="X" transform="translate(0, 13)">
|
||||||
|
<g id="BAse">
|
||||||
|
<circle id="Oval" fill="#95A3BF" opacity="0.25" cx="35" cy="35" r="35"></circle>
|
||||||
|
<path d="M35,10 C48.8071187,10 60,21.1928813 60,35 C60,48.8071187 48.8071187,60 35,60 C21.1928813,60 10,48.8071187 10,35 C10,21.1928813 21.1928813,10 35,10 Z M35,19.8837209 C26.6515096,19.8837209 19.8837209,26.6515096 19.8837209,35 C19.8837209,43.3484904 26.6515096,50.1162791 35,50.1162791 C43.3484904,50.1162791 50.1162791,43.3484904 50.1162791,35 C50.1162791,26.6515096 43.3484904,19.8837209 35,19.8837209 Z" id="Oval-3" fill="#95A3BF" opacity="0.25"></path>
|
||||||
|
<path d="M25.9383632,25.9383632 C27.1895142,24.6872123 29.2180307,24.6872123 30.4691816,25.9383632 L35,30.469 L39.5308184,25.9383632 C40.7819693,24.6872123 42.8104858,24.6872123 44.0616368,25.9383632 C45.3127877,27.1895142 45.3127877,29.2180307 44.0616368,30.4691816 L39.531,35 L44.0616368,39.5308184 C45.2664488,40.7356304 45.3110715,42.6612917 44.1955048,43.9195 L44.0616368,44.0616368 C42.8104858,45.3127877 40.7819693,45.3127877 39.5308184,44.0616368 L35,39.531 L30.4691816,44.0616368 C29.2180307,45.3127877 27.1895142,45.3127877 25.9383632,44.0616368 C24.6872123,42.8104858 24.6872123,40.7819693 25.9383632,39.5308184 L30.469,35 L25.9383632,30.4691816 C24.7335512,29.2643696 24.6889285,27.3387083 25.8044952,26.0805 Z" id="Rectangle-3" stroke="#222222" stroke-width="1.4" fill="#ED474A" stroke-linejoin="round"></path>
|
||||||
|
</g>
|
||||||
|
<g id="Top" transform="translate(24, 50)" stroke-linejoin="round">
|
||||||
|
<g id="Path">
|
||||||
|
<use fill="#FFFFFF" xlink:href="#path-4"></use>
|
||||||
|
<use stroke="#222222" stroke-width="1.4" fill="url(#linearGradient-3)" xlink:href="#path-4"></use>
|
||||||
|
</g>
|
||||||
|
<path d="M10,24 L10,36 C10,45.9411255 18.0588745,54 28,54 L28,54 L28,54" id="Path-4" stroke="#222222" stroke-width="1.4"></path>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g id="Center-logo" transform="translate(96, 55)" fill-rule="nonzero">
|
||||||
|
<polygon id="Path" fill="#95A3BF" opacity="0.66" points="108 0 0 0 0 54 54.5934066 54"></polygon>
|
||||||
|
<path d="M53.4065934,10.8 L53.4065934,36.24 L44.1494505,10.8 L34.8923077,10.8 L27.0593407,31.92 C26.1098901,26.64 20.6505495,24.72 16.378022,23.28 C13.5296703,22.32 10.443956,21.12 10.443956,19.44 C10.443956,18.24 12.1054945,17.04 15.1912088,17.28 C17.3274725,17.52 19.2263736,17.52 23.0241758,19.44 L26.821978,12.96 C23.2615385,11.04 18.5142857,10.08 14.7164835,10.08 C10.2065934,10.08 6.40879121,11.52 4.03516484,13.92 C2.37362637,15.6 1.66153846,17.76 1.42417582,20.16 C1.42417582,23.52 2.61098901,25.92 5.22197802,27.84 C7.35824176,29.28 9.96923077,30.24 12.3428571,30.96 C15.4285714,31.92 17.8021978,32.88 17.8021978,34.56 C17.5648352,36.72 15.1912088,37.2 13.5296703,37.2 C10.6813187,37.44 8.30769231,36.96 4.74725275,34.8 L1.42417582,41.28 C4.98461538,43.44 8.78241758,44.4 13.2923077,44.4 C16.378022,44.4 21.1252747,43.44 23.7362637,41.04 L23.2615385,43.2 L32.2813187,43.2 L33.9428571,39.12 C37.5032967,40.08 41.5384615,40.32 45.0989011,39.12 L46.2857143,43.2 L62.4263736,43.2 L62.4263736,33.6 L65.7494505,33.6 C74.0571429,33.6 79.0417582,29.52 79.0417582,22.32 C79.0417582,14.16 74.2945055,10.8 64.0879121,10.8 L53.4065934,10.8 Z M36.0791209,31.92 L39.4021978,21.12 L39.6395604,21.12 L42.9626374,31.92 C40.589011,32.64 38.2153846,32.64 36.0791209,31.92 Z M62.4263736,26.4 L62.4263736,17.76 L64.8,17.76 C67.8857143,17.76 70.2593407,18.72 70.2593407,21.84 C70.2593407,25.2 67.8857143,26.4 64.8,26.4 L62.4263736,26.4 Z" id="Shape" fill="#FFFFFF"></path>
|
||||||
|
</g>
|
||||||
|
<g id="Top" transform="translate(211, 0)">
|
||||||
|
<rect id="Rectangle-Copy-8" stroke="#95A3BF" stroke-width="1.4" fill-opacity="0.9" fill="#FFFFFF" x="20" y="34" width="68" height="50" rx="4"></rect>
|
||||||
|
<rect id="Rectangle" stroke="#95A3BF" stroke-width="1.4" x="0" y="0" width="70.3603604" height="54" rx="4"></rect>
|
||||||
|
<path d="M5.94594595,8 C7.04056437,8 7.92792793,7.1045695 7.92792793,6 C7.92792793,4.8954305 7.04056437,4 5.94594595,4 C4.85132752,4 3.96396396,4.8954305 3.96396396,6 C3.96396396,7.1045695 4.85132752,8 5.94594595,8 Z M11.8918919,8 C12.9865103,8 13.8738739,7.1045695 13.8738739,6 C13.8738739,4.8954305 12.9865103,4 11.8918919,4 C10.7972735,4 9.90990991,4.8954305 9.90990991,6 C9.90990991,7.1045695 10.7972735,8 11.8918919,8 Z M17.8378378,8 C18.9324563,8 19.8198198,7.1045695 19.8198198,6 C19.8198198,4.8954305 18.9324563,4 17.8378378,4 C16.7432194,4 15.8558559,4.8954305 15.8558559,6 C15.8558559,7.1045695 16.7432194,8 17.8378378,8 Z" id="Oval-4" fill="#95A3BF" opacity="0.33"></path>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 9.4 KiB |
86
pandora_console/images/empty_views/services.svg
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="300px" height="165px" viewBox="0 0 300 165" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<title>D3A9E7AB-A2B9-4073-9525-28AED9DF6D51</title>
|
||||||
|
<defs>
|
||||||
|
<linearGradient x1="50%" y1="50%" x2="52.9793104%" y2="51.386177%" id="linearGradient-1">
|
||||||
|
<stop stop-color="#FFFFFF" stop-opacity="0.7" offset="0%"></stop>
|
||||||
|
<stop stop-color="#FFFFFF" stop-opacity="0" offset="100%"></stop>
|
||||||
|
</linearGradient>
|
||||||
|
<path d="M40,6 L214,6 C216.761424,6 219,8.23857625 219,11 L219,129 L219,129 L35,129 L35,11 C35,8.23857625 37.2385763,6 40,6 Z" id="path-2"></path>
|
||||||
|
<linearGradient x1="50%" y1="49.8604439%" x2="50%" y2="50.731762%" id="linearGradient-3">
|
||||||
|
<stop stop-color="#000000" stop-opacity="0" offset="0%"></stop>
|
||||||
|
<stop stop-color="#000000" stop-opacity="0.07" offset="100%"></stop>
|
||||||
|
</linearGradient>
|
||||||
|
<path d="M1.25,18 C1.25,18.6627417 1.80964406,19.2 2.5,19.2 L5,19.2 L5,22.8 C5,23.4627417 5.55964406,24 6.25,24 L13.75,24 C14.4403559,24 15,23.4627417 15,22.8 L15,19.2 L17.5,19.2 C18.1903559,19.2 18.75,18.6627417 18.75,18 L18.75,9.6 L20,9.6 L20,7.2 L15,7.2 L15,0 L12.5,0 L12.5,7.2 L7.5,7.2 L7.5,0 L5,0 L5,7.2 L0,7.2 L0,9.6 L1.25,9.6 L1.25,18 Z" id="path-4"></path>
|
||||||
|
</defs>
|
||||||
|
<g id="Nuevo-UI-Menu/Head" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||||
|
<g id="Mockup---No-data-screens" transform="translate(-631, -1512)">
|
||||||
|
<g id="Servicios" transform="translate(601, 1482)">
|
||||||
|
<g id="Top" transform="translate(30, 30)">
|
||||||
|
<g id="No-Service-found" transform="translate(0, 1)">
|
||||||
|
<g id="Base" transform="translate(23, 14)">
|
||||||
|
<path d="M225,103 L238,103 C245.179702,103 251,108.820298 251,116 C251,123.179702 245.179702,129 238,129 L225,129 L225,129" id="Path-5" stroke="#222222" stroke-width="1.4" stroke-linejoin="round"></path>
|
||||||
|
<path d="M38.8461538,0 L214.846154,0 C220.369001,-1.01453063e-15 224.846154,4.4771525 224.846154,10 L224.846154,140 L224.846154,140 L28.8461538,140 L28.8461538,10 C28.8461538,4.4771525 33.3233063,1.01453063e-15 38.8461538,0 Z" id="Rectangle" stroke="#222222" stroke-width="1.4" fill="#FFFFFF" stroke-linejoin="round"></path>
|
||||||
|
<g id="Rectangle">
|
||||||
|
<use fill="#D0E7FD" xlink:href="#path-2"></use>
|
||||||
|
<use fill="url(#linearGradient-1)" xlink:href="#path-2"></use>
|
||||||
|
</g>
|
||||||
|
<path d="M0,139 L254,139 L254,141 C254,145.418278 250.418278,149 246,149 L8,149 C3.581722,149 5.41083001e-16,145.418278 0,141 L0,139 L0,139 Z" id="Rectangle" stroke="#222222" stroke-width="1.4" fill="#FFFFFF" stroke-linejoin="round"></path>
|
||||||
|
<path d="M189,111.087912 C190.577956,111.087912 191.857143,112.367099 191.857143,113.945055 L191.857143,116.142857 C191.857143,117.720814 190.577956,119 189,119 C187.422044,119 186.142857,117.720814 186.142857,116.142857 L186.142857,113.945055 C186.142857,112.367099 187.422044,111.087912 189,111.087912 Z M171.857143,95.9230769 C173.435099,95.9230769 174.714286,97.2022634 174.714286,98.7802198 L174.714286,116.142857 C174.714286,117.720814 173.435099,119 171.857143,119 C170.279186,119 169,117.720814 169,116.142857 L169,98.7802198 C169,97.2022634 170.279186,95.9230769 171.857143,95.9230769 Z M206.142857,95.9230769 C207.720814,95.9230769 209,97.2022634 209,98.7802198 L209,116.142857 C209,117.720814 207.720814,119 206.142857,119 C204.564901,119 203.285714,117.720814 203.285714,116.142857 L203.285714,98.7802198 C203.285714,97.2022634 204.564901,95.9230769 206.142857,95.9230769 Z M197.571429,103.835165 C199.149385,103.835165 200.428571,105.114351 200.428571,106.692308 L200.428571,116.142857 C200.428571,117.720814 199.149385,119 197.571429,119 C195.993472,119 194.714286,117.720814 194.714286,116.142857 L194.714286,106.692308 C194.714286,105.114351 195.993472,103.835165 197.571429,103.835165 Z M180.428571,89 C182.006528,89 183.285714,90.2791864 183.285714,91.8571429 L183.285714,116.142857 C183.285714,117.720814 182.006528,119 180.428571,119 C178.850615,119 177.571429,117.720814 177.571429,116.142857 L177.571429,91.8571429 C177.571429,90.2791864 178.850615,89 180.428571,89 Z" id="Rectangle-Copy-6" fill="#FFFFFF" transform="translate(189, 104) scale(-1, 1) translate(-189, -104)"></path>
|
||||||
|
<g id="IMG" transform="translate(59, 19.6322)" stroke-linejoin="round" stroke-width="1.4">
|
||||||
|
<g id="Group" transform="translate(0.3047, 0)" stroke="#95A3BF" stroke-linecap="round">
|
||||||
|
<polygon id="Polygon" fill="#FFFFFF" points="9.6 0 19.2 6 19.2 18 9.89959798 24 6.1284311e-15 18 0 6"></polygon>
|
||||||
|
<path d="M0.0128647192,6 C6.60402022,9.78378378 9.89959798,11.6756757 9.89959798,11.6756757 C9.89959798,11.6756757 12.9954437,9.78378378 19.1871353,6" id="Path-100"></path>
|
||||||
|
<line x1="9.89959798" y1="11.6756757" x2="9.89959798" y2="24" id="Path-33"></line>
|
||||||
|
</g>
|
||||||
|
<g id="Group" transform="translate(67, 0.3678)" stroke="#95A3BF" stroke-linecap="round">
|
||||||
|
<polygon id="Polygon" points="9.6 0 19.2 6 19.2 18 9.89959798 24 6.1284311e-15 18 0 6"></polygon>
|
||||||
|
<path d="M0.0128647192,6 C6.60402022,9.78378378 9.89959798,11.6756757 9.89959798,11.6756757 C9.89959798,11.6756757 12.9954437,9.78378378 19.1871353,6" id="Path-100"></path>
|
||||||
|
<line x1="9.89959798" y1="11.6756757" x2="9.89959798" y2="24" id="Path-33"></line>
|
||||||
|
</g>
|
||||||
|
<g id="Group-2" transform="translate(0, 17.8678)">
|
||||||
|
<g id="Lines" transform="translate(19.25, 0)" stroke="#95A3BF" stroke-linecap="round">
|
||||||
|
<path d="M0.25,0 C0.25,0 4.75,2.75 13.75,8.25 L13.75,31.5" id="Path-34"></path>
|
||||||
|
<path d="M34.75,0.25 C34.75,0.25 39.0833333,2.91666667 47.75,8.25 L47.75,31.5" id="Path-34-Copy" stroke-dasharray="2,3" transform="translate(41.25, 15.875) scale(-1, 1) translate(-41.25, -15.875)"></path>
|
||||||
|
<path d="M0,37.25 L13.75,45.5 L13.75,68.75" id="Path-34" stroke-dasharray="2,3" transform="translate(6.875, 53) scale(1, -1) translate(-6.875, -53)"></path>
|
||||||
|
<polyline id="Path-34-Copy" transform="translate(41.2523, 52.8486) scale(-1, -1) translate(-41.2523, -52.8486)" points="34.75 37.25 47.7545747 45.1972401 47.7545747 68.4472401"></polyline>
|
||||||
|
</g>
|
||||||
|
<g id="Group-Copy" transform="translate(0, 57.5)" stroke="#95A3BF" stroke-linecap="round">
|
||||||
|
<polygon id="Polygon" points="9.6 0 19.2 6 19.2 18 9.89959798 24 6.1284311e-15 18 0 6"></polygon>
|
||||||
|
<path d="M0.0128647192,6 C6.60402022,9.78378378 9.89959798,11.6756757 9.89959798,11.6756757 C9.89959798,11.6756757 12.9954437,9.78378378 19.1871353,6" id="Path-100"></path>
|
||||||
|
<line x1="9.89959798" y1="11.6756757" x2="9.89959798" y2="24" id="Path-33"></line>
|
||||||
|
</g>
|
||||||
|
<g id="Group-Copy-2" transform="translate(67, 57.5)" stroke="#95A3BF" stroke-linecap="round">
|
||||||
|
<polygon id="Polygon" fill="#FFFFFF" points="9.6 0 19.2 6 19.2 18 9.89959798 24 6.1284311e-15 18 0 6"></polygon>
|
||||||
|
<path d="M0.0128647192,6 C6.60402022,9.78378378 9.89959798,11.6756757 9.89959798,11.6756757 C9.89959798,11.6756757 12.9954437,9.78378378 19.1871353,6" id="Path-100"></path>
|
||||||
|
<line x1="9.89959798" y1="11.6756757" x2="9.89959798" y2="24" id="Path-33"></line>
|
||||||
|
</g>
|
||||||
|
<path d="M47.56625,9.9125 C46.224,5.3625 39.776,5.3625 38.43375,9.9125 L38.10875,11.0175 C37.7025586,12.3971504 36.6941172,13.5190382 35.3654092,14.0694578 C34.0367012,14.6198775 32.5303258,14.539757 31.2675,13.8515 L30.26,13.299 C26.09025,11.0305 21.5305,15.59025 23.80225,19.75675 L24.3515,20.7675 C25.801,23.4325 24.42625,26.75075 21.5175,27.60875 L20.4125,27.93375 C15.8625,29.276 15.8625,35.724 20.4125,37.06625 L21.5175,37.39125 C22.8971504,37.7974414 24.0190382,38.8058828 24.5694578,40.1345908 C25.1198775,41.4632988 25.039757,42.9696742 24.3515,44.2325 L23.799,45.24 C21.5305,49.40975 26.09025,53.9695 30.25675,51.69775 L31.2675,51.1485 C32.5303258,50.460243 34.0367012,50.3801225 35.3654092,50.9305422 C36.6941172,51.4809618 37.7025586,52.6028496 38.10875,53.9825 L38.43375,55.0875 C39.776,59.6375 46.224,59.6375 47.56625,55.0875 L47.89125,53.9825 C48.2974414,52.6028496 49.3058828,51.4809618 50.6345908,50.9305422 C51.9632988,50.3801225 53.4696742,50.460243 54.7325,51.1485 L55.74,51.701 C59.90975,53.9695 64.4695,49.40975 62.19775,45.24325 L61.6485,44.2325 C60.960243,42.9696742 60.8801225,41.4632988 61.4305422,40.1345908 C61.9809618,38.8058828 63.1028496,37.7974414 64.4825,37.39125 L65.5875,37.06625 C70.1375,35.724 70.1375,29.276 65.5875,27.93375 L64.4825,27.60875 C63.1028496,27.2025586 61.9809618,26.1941172 61.4305422,24.8654092 C60.8801225,23.5367012 60.960243,22.0303258 61.6485,20.7675 L62.201,19.76 C64.4695,15.59025 59.90975,11.0305 55.74325,13.30225 L54.7325,13.8515 C53.4696742,14.539757 51.9632988,14.6198775 50.6345908,14.0694578 C49.3058828,13.5190382 48.2974414,12.3971504 47.89125,11.0175 L47.56625,9.9125 L47.56625,9.9125 Z M42.5016215,41.5 C37.2540209,41.5 33,37.2467051 33,32 C33,26.7532949 37.2540209,22.5 42.5016215,22.5 C47.7474311,22.5 52,26.7518433 52,31.9967577 C52,37.2416721 47.7474311,41.4935153 42.5016215,41.4935154 L42.5016215,41.5 Z" id="Shape" stroke="#222222" fill="#FFFFFF"></path>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g id="X" transform="translate(0, 13)">
|
||||||
|
<g id="BAse">
|
||||||
|
<circle id="Oval" fill="#95A3BF" opacity="0.25" cx="35" cy="35" r="35"></circle>
|
||||||
|
<path d="M35,10 C48.8071187,10 60,21.1928813 60,35 C60,48.8071187 48.8071187,60 35,60 C21.1928813,60 10,48.8071187 10,35 C10,21.1928813 21.1928813,10 35,10 Z M35,19.8837209 C26.6515096,19.8837209 19.8837209,26.6515096 19.8837209,35 C19.8837209,43.3484904 26.6515096,50.1162791 35,50.1162791 C43.3484904,50.1162791 50.1162791,43.3484904 50.1162791,35 C50.1162791,26.6515096 43.3484904,19.8837209 35,19.8837209 Z" id="Oval-3" fill="#95A3BF" opacity="0.25"></path>
|
||||||
|
<path d="M25.9383632,25.9383632 C27.1895142,24.6872123 29.2180307,24.6872123 30.4691816,25.9383632 L35,30.469 L39.5308184,25.9383632 C40.7819693,24.6872123 42.8104858,24.6872123 44.0616368,25.9383632 C45.3127877,27.1895142 45.3127877,29.2180307 44.0616368,30.4691816 L39.531,35 L44.0616368,39.5308184 C45.2664488,40.7356304 45.3110715,42.6612917 44.1955048,43.9195 L44.0616368,44.0616368 C42.8104858,45.3127877 40.7819693,45.3127877 39.5308184,44.0616368 L35,39.531 L30.4691816,44.0616368 C29.2180307,45.3127877 27.1895142,45.3127877 25.9383632,44.0616368 C24.6872123,42.8104858 24.6872123,40.7819693 25.9383632,39.5308184 L30.469,35 L25.9383632,30.4691816 C24.7335512,29.2643696 24.6889285,27.3387083 25.8044952,26.0805 Z" id="Rectangle-3" stroke="#222222" stroke-width="1.4" fill="#ED474A" stroke-linejoin="round"></path>
|
||||||
|
</g>
|
||||||
|
<g id="Top" transform="translate(24, 50)" stroke-linejoin="round">
|
||||||
|
<g id="Path">
|
||||||
|
<use fill="#FFFFFF" xlink:href="#path-4"></use>
|
||||||
|
<use stroke="#222222" stroke-width="1.4" fill="url(#linearGradient-3)" xlink:href="#path-4"></use>
|
||||||
|
</g>
|
||||||
|
<path d="M10,24 L10,36 C10,45.9411255 18.0588745,54 28,54 L28,54 L28,54" id="Path-4" stroke="#222222" stroke-width="1.4"></path>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g id="Top" transform="translate(211, 0)">
|
||||||
|
<rect id="Rectangle-Copy-8" stroke="#95A3BF" stroke-width="1.4" x="20" y="34" width="68" height="50" rx="4"></rect>
|
||||||
|
<rect id="Rectangle" stroke="#95A3BF" stroke-width="1.4" fill-opacity="0.8" fill="#FFFFFF" x="0" y="0" width="70.3603604" height="54" rx="4"></rect>
|
||||||
|
<path d="M5.94594595,8 C7.04056437,8 7.92792793,7.1045695 7.92792793,6 C7.92792793,4.8954305 7.04056437,4 5.94594595,4 C4.85132752,4 3.96396396,4.8954305 3.96396396,6 C3.96396396,7.1045695 4.85132752,8 5.94594595,8 Z M11.8918919,8 C12.9865103,8 13.8738739,7.1045695 13.8738739,6 C13.8738739,4.8954305 12.9865103,4 11.8918919,4 C10.7972735,4 9.90990991,4.8954305 9.90990991,6 C9.90990991,7.1045695 10.7972735,8 11.8918919,8 Z M17.8378378,8 C18.9324563,8 19.8198198,7.1045695 19.8198198,6 C19.8198198,4.8954305 18.9324563,4 17.8378378,4 C16.7432194,4 15.8558559,4.8954305 15.8558559,6 C15.8558559,7.1045695 16.7432194,8 17.8378378,8 Z" id="Oval-4" fill="#95A3BF" opacity="0.33"></path>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 13 KiB |
63
pandora_console/images/empty_views/visual-console.svg
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="299px" height="164px" viewBox="0 0 299 164" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<title>E456EC32-2047-44E1-9548-F616AC208D65</title>
|
||||||
|
<defs>
|
||||||
|
<linearGradient x1="50%" y1="50%" x2="52.9793104%" y2="51.386177%" id="linearGradient-1">
|
||||||
|
<stop stop-color="#FFFFFF" stop-opacity="0.7" offset="0%"></stop>
|
||||||
|
<stop stop-color="#FFFFFF" stop-opacity="0" offset="100%"></stop>
|
||||||
|
</linearGradient>
|
||||||
|
<path d="M40,6 L214,6 C216.761424,6 219,8.23857625 219,11 L219,129 L219,129 L35,129 L35,11 C35,8.23857625 37.2385763,6 40,6 Z" id="path-2"></path>
|
||||||
|
<linearGradient x1="50%" y1="49.8604439%" x2="50%" y2="50.731762%" id="linearGradient-3">
|
||||||
|
<stop stop-color="#000000" stop-opacity="0" offset="0%"></stop>
|
||||||
|
<stop stop-color="#000000" stop-opacity="0.07" offset="100%"></stop>
|
||||||
|
</linearGradient>
|
||||||
|
<path d="M1.25,18 C1.25,18.6627417 1.80964406,19.2 2.5,19.2 L5,19.2 L5,22.8 C5,23.4627417 5.55964406,24 6.25,24 L13.75,24 C14.4403559,24 15,23.4627417 15,22.8 L15,19.2 L17.5,19.2 C18.1903559,19.2 18.75,18.6627417 18.75,18 L18.75,9.6 L20,9.6 L20,7.2 L15,7.2 L15,0 L12.5,0 L12.5,7.2 L7.5,7.2 L7.5,0 L5,0 L5,7.2 L0,7.2 L0,9.6 L1.25,9.6 L1.25,18 Z" id="path-4"></path>
|
||||||
|
</defs>
|
||||||
|
<g id="Nuevo-UI-Menu/Head" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||||
|
<g id="Mockup---No-data-screens" transform="translate(-631, -1951)">
|
||||||
|
<g id="Consolas-visuales" transform="translate(601, 1920)">
|
||||||
|
<g id="Top" transform="translate(30, 30)">
|
||||||
|
<g id="No-Visual-Console-found" transform="translate(0, 1)">
|
||||||
|
<g id="Base" transform="translate(23, 14)">
|
||||||
|
<path d="M225,103 L238,103 C245.179702,103 251,108.820298 251,116 C251,123.179702 245.179702,129 238,129 L225,129 L225,129" id="Path-5" stroke="#222222" stroke-width="1.4" stroke-linejoin="round"></path>
|
||||||
|
<path d="M38.8461538,0 L214.846154,0 C220.369001,-1.01453063e-15 224.846154,4.4771525 224.846154,10 L224.846154,140 L224.846154,140 L28.8461538,140 L28.8461538,10 C28.8461538,4.4771525 33.3233063,1.01453063e-15 38.8461538,0 Z" id="Rectangle" stroke="#222222" stroke-width="1.4" fill="#FFFFFF" stroke-linejoin="round"></path>
|
||||||
|
<g id="Rectangle">
|
||||||
|
<use fill="#D0E7FD" xlink:href="#path-2"></use>
|
||||||
|
<use fill="url(#linearGradient-1)" xlink:href="#path-2"></use>
|
||||||
|
</g>
|
||||||
|
<path d="M0,139 L254,139 L254,141 C254,145.418278 250.418278,149 246,149 L8,149 C3.581722,149 5.41083001e-16,145.418278 0,141 L0,139 L0,139 Z" id="Rectangle" stroke="#222222" stroke-width="1.4" fill="#FFFFFF" stroke-linejoin="round"></path>
|
||||||
|
</g>
|
||||||
|
<g id="X" transform="translate(0, 13)">
|
||||||
|
<g id="BAse">
|
||||||
|
<circle id="Oval" fill="#95A3BF" opacity="0.25" cx="35" cy="35" r="35"></circle>
|
||||||
|
<path d="M35,10 C48.8071187,10 60,21.1928813 60,35 C60,48.8071187 48.8071187,60 35,60 C21.1928813,60 10,48.8071187 10,35 C10,21.1928813 21.1928813,10 35,10 Z M35,19.8837209 C26.6515096,19.8837209 19.8837209,26.6515096 19.8837209,35 C19.8837209,43.3484904 26.6515096,50.1162791 35,50.1162791 C43.3484904,50.1162791 50.1162791,43.3484904 50.1162791,35 C50.1162791,26.6515096 43.3484904,19.8837209 35,19.8837209 Z" id="Oval-3" fill="#95A3BF" opacity="0.25"></path>
|
||||||
|
<path d="M25.9383632,25.9383632 C27.1895142,24.6872123 29.2180307,24.6872123 30.4691816,25.9383632 L35,30.469 L39.5308184,25.9383632 C40.7819693,24.6872123 42.8104858,24.6872123 44.0616368,25.9383632 C45.3127877,27.1895142 45.3127877,29.2180307 44.0616368,30.4691816 L39.531,35 L44.0616368,39.5308184 C45.2664488,40.7356304 45.3110715,42.6612917 44.1955048,43.9195 L44.0616368,44.0616368 C42.8104858,45.3127877 40.7819693,45.3127877 39.5308184,44.0616368 L35,39.531 L30.4691816,44.0616368 C29.2180307,45.3127877 27.1895142,45.3127877 25.9383632,44.0616368 C24.6872123,42.8104858 24.6872123,40.7819693 25.9383632,39.5308184 L30.469,35 L25.9383632,30.4691816 C24.7335512,29.2643696 24.6889285,27.3387083 25.8044952,26.0805 Z" id="Rectangle-3" stroke="#222222" stroke-width="1.4" fill="#ED474A" stroke-linejoin="round"></path>
|
||||||
|
</g>
|
||||||
|
<g id="Top" transform="translate(24, 50)" stroke-linejoin="round">
|
||||||
|
<g id="Path">
|
||||||
|
<use fill="#FFFFFF" xlink:href="#path-4"></use>
|
||||||
|
<use stroke="#222222" stroke-width="1.4" fill="url(#linearGradient-3)" xlink:href="#path-4"></use>
|
||||||
|
</g>
|
||||||
|
<path d="M10,24 L10,36 C10,45.9411255 18.0588745,54 28,54 L28,54 L28,54" id="Path-4" stroke="#222222" stroke-width="1.4"></path>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g id="Screen" transform="translate(64, 25)">
|
||||||
|
<rect id="Rectangle" stroke="#95A3BF" stroke-width="1.4" x="0" y="0" width="172" height="15" rx="3"></rect>
|
||||||
|
<rect id="Rectangle" stroke="#95A3BF" stroke-width="1.4" x="0" y="23" width="70" height="46" rx="3"></rect>
|
||||||
|
<rect id="Rectangle-Copy-2" stroke="#95A3BF" stroke-width="1.4" x="0" y="77" width="52" height="36" rx="3"></rect>
|
||||||
|
<rect id="Rectangle-Copy-3" stroke="#95A3BF" stroke-width="1.4" x="60" y="77" width="52" height="36" rx="3"></rect>
|
||||||
|
<rect id="Rectangle-Copy-4" stroke="#95A3BF" stroke-width="1.4" x="120" y="77" width="52" height="36" rx="3"></rect>
|
||||||
|
<rect id="Rectangle-Copy" stroke="#222222" stroke-width="1.4" fill="#FFFFFF" stroke-linejoin="round" x="78" y="23" width="94" height="46" rx="3"></rect>
|
||||||
|
<path d="M8,89 C10.209139,89 12,87.209139 12,85 C12,82.790861 10.209139,81 8,81 C5.790861,81 4,82.790861 4,85 C4,87.209139 5.790861,89 8,89 Z M8,99 C10.209139,99 12,97.209139 12,95 C12,92.790861 10.209139,91 8,91 C5.790861,91 4,92.790861 4,95 C4,97.209139 5.790861,99 8,99 Z M20,99 C22.209139,99 24,97.209139 24,95 C24,92.790861 22.209139,91 20,91 C17.790861,91 16,92.790861 16,95 C16,97.209139 17.790861,99 20,99 Z M32,99 C34.209139,99 36,97.209139 36,95 C36,92.790861 34.209139,91 32,91 C29.790861,91 28,92.790861 28,95 C28,97.209139 29.790861,99 32,99 Z M32,109 C34.209139,109 36,107.209139 36,105 C36,102.790861 34.209139,101 32,101 C29.790861,101 28,102.790861 28,105 C28,107.209139 29.790861,109 32,109 Z" id="Oval-2" stroke="#222222" stroke-width="1.4" fill="#FFFFFF" stroke-linejoin="round"></path>
|
||||||
|
<path d="M148.78,90.95 C148.77,90.84 148.75,90.72 148.75,90.62 C148.75,89.95 149.12,89.42 149.88,89.42 C150.61,89.42 150.97,89.9 150.97,90.43 C150.97,90.9 150.72,91.29 150.14,91.65 L149.07,92.32 C147.94,93.02 147.55,93.89 147.53,95 L152.22,95 L152.22,93.94 L149.01,93.94 C149.1,93.62 149.36,93.39 149.67,93.2 L150.93,92.42 C151.71,91.94 152.18,91.25 152.18,90.41 C152.18,89.3 151.33,88.37 149.9,88.37 C148.43,88.37 147.59,89.38 147.59,90.5 C147.59,90.63 147.61,90.78 147.62,90.87 L148.78,90.95 Z M155.65,95 L155.65,88.52 L154.61,88.52 C154.47,89.2 153.83,89.72 152.9,89.74 L152.9,90.56 L154.47,90.56 L154.47,95 L155.65,95 Z M158.1,91.76 C158.1,90.94 158.24,90.31 158.56,89.91 C158.78,89.62 159.09,89.43 159.56,89.43 C160.03,89.43 160.33,89.62 160.56,89.91 C160.87,90.31 161.01,90.94 161.01,91.76 C161.01,92.58 160.87,93.21 160.56,93.61 C160.33,93.9 160.03,94.09 159.56,94.09 C159.09,94.09 158.78,93.9 158.56,93.61 C158.25,93.21 158.1,92.58 158.1,91.76 Z M156.91,91.76 C156.91,92.62 157.05,93.43 157.49,94.09 C157.91,94.72 158.59,95.15 159.56,95.15 C160.53,95.15 161.2,94.72 161.62,94.09 C162.06,93.43 162.2,92.62 162.2,91.76 C162.2,90.9 162.06,90.09 161.62,89.43 C161.2,88.8 160.53,88.37 159.56,88.37 C158.59,88.37 157.91,88.8 157.49,89.43 C157.05,90.09 156.91,90.9 156.91,91.76 Z M164.21,90.95 C164.2,90.84 164.18,90.72 164.18,90.62 C164.18,89.95 164.55,89.42 165.31,89.42 C166.04,89.42 166.4,89.9 166.4,90.43 C166.4,90.9 166.15,91.29 165.57,91.65 L164.5,92.32 C163.37,93.02 162.98,93.89 162.96,95 L167.65,95 L167.65,93.94 L164.44,93.94 C164.53,93.62 164.79,93.39 165.1,93.2 L166.36,92.42 C167.14,91.94 167.61,91.25 167.61,90.41 C167.61,89.3 166.76,88.37 165.33,88.37 C163.86,88.37 163.02,89.38 163.02,90.5 C163.02,90.63 163.04,90.78 163.05,90.87 L164.21,90.95 Z M149.76,108 L149.76,101.52 L148.72,101.52 C148.58,102.2 147.94,102.72 147.01,102.74 L147.01,103.56 L148.58,103.56 L148.58,108 L149.76,108 Z M152.73,105.06 C152.83,105.01 153.03,104.95 153.34,104.95 C153.89,104.95 154.49,105.27 154.49,106.02 C154.49,106.61 154.05,107.12 153.26,107.12 C152.54,107.12 152,106.61 151.97,105.86 L150.8,106.1 C150.88,107.18 151.77,108.15 153.27,108.15 C154.81,108.15 155.7,107.14 155.7,106.03 C155.7,104.78 154.73,104.08 153.76,104.06 L155.52,102.52 L155.52,101.52 L151.02,101.52 L151.02,102.57 L153.97,102.57 L152.18,104.17 L152.73,105.06 Z M157.67,104.76 C157.67,103.94 157.81,103.31 158.13,102.91 C158.35,102.62 158.66,102.43 159.13,102.43 C159.6,102.43 159.9,102.62 160.13,102.91 C160.44,103.31 160.58,103.94 160.58,104.76 C160.58,105.58 160.44,106.21 160.13,106.61 C159.9,106.9 159.6,107.09 159.13,107.09 C158.66,107.09 158.35,106.9 158.13,106.61 C157.82,106.21 157.67,105.58 157.67,104.76 Z M156.48,104.76 C156.48,105.62 156.62,106.43 157.06,107.09 C157.48,107.72 158.16,108.15 159.13,108.15 C160.1,108.15 160.77,107.72 161.19,107.09 C161.63,106.43 161.77,105.62 161.77,104.76 C161.77,103.9 161.63,103.09 161.19,102.43 C160.77,101.8 160.1,101.37 159.13,101.37 C158.16,101.37 157.48,101.8 157.06,102.43 C156.62,103.09 156.48,103.9 156.48,104.76 Z M167.51,101.69 C167.23,101.51 166.73,101.37 166.13,101.37 C164.12,101.37 162.65,102.79 162.65,105.14 C162.65,106.8 163.59,108.15 165.24,108.15 C166.6,108.15 167.7,107.25 167.7,105.9 C167.7,104.57 166.79,103.71 165.5,103.71 C164.81,103.71 164.19,103.96 163.85,104.48 C163.96,103.22 164.84,102.41 166.06,102.41 C166.59,102.41 166.93,102.54 167.17,102.67 L167.51,101.69 Z M163.98,105.92 C163.98,105.16 164.56,104.71 165.24,104.71 C165.92,104.71 166.5,105.16 166.5,105.92 C166.5,106.67 165.92,107.13 165.24,107.13 C164.58,107.13 163.98,106.66 163.98,105.92 Z" id="Path-2" fill="#95A3BF" fill-rule="nonzero"></path>
|
||||||
|
<g id="Group-2" transform="translate(79, 29)" stroke="#95A3BF" stroke-width="1.4">
|
||||||
|
<path d="M0,9 L17,9 C19.7614237,9 22,11.2385763 22,14 L22,22 C22,24.7614237 24.2385763,27 27,27 L52,27 C54.7614237,27 57,24.7614237 57,22 L57,19 C57,16.2385763 59.2385763,14 62,14 C72,14 82,14 92,14" id="Path-101"></path>
|
||||||
|
<path d="M0,34 L5.125,34 C8.4387085,34 11.125,31.3137085 11.125,28 L11.125,6 C11.125,2.6862915 13.8112915,3.27325364e-15 17.125,2.66453526e-15 L30.3537234,-8.8817842e-16 C33.6674319,-1.4968968e-15 36.3537234,2.6862915 36.3537234,6 L36.3537234,14.2258852 C36.3537234,17.299438 38.8453302,19.7910448 41.918883,19.7910448 C44.9924357,19.7910448 47.4840426,17.299438 47.4840426,14.2258852 L47.4840426,10.0597015 C47.4840426,6.74599299 50.1703341,4.05970149 53.4840426,4.05970149 L68.4441489,4.05970149 C71.7578574,4.05970149 74.4441489,6.74599299 74.4441489,10.0597015 L74.4441489,28 C74.4441489,31.3137085 77.1304404,34 80.4441489,34 L92,34 L92,34" id="Path-102"></path>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 12 KiB |
58
pandora_console/images/empty_views/vmware.svg
Normal file
After Width: | Height: | Size: 13 KiB |
7
pandora_console/images/external_alert.svg
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<title>alerta externa</title>
|
||||||
|
<g id="alerta-externa" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||||
|
<path d="M7,8 C10,8 11,10 11,12 L11,15 L12.9421268,17.4207466 C12.980022,17.4797635 13,17.5469472 13,17.6153698 C13,17.8277953 12.8115134,18 12.5790032,18 L1.42106332,18 C1.34572552,18 1.27176775,17.9815301 1.20690603,17.9465168 C1.00672668,17.838458 0.940330434,17.6025993 1.05860612,17.4197119 L3,15 L3,12 C3,10 4,8 7,8 Z M9,18 C9,19.104 8.1048,20 7,20 C5.8956,20 5,19.104 5,18 L9,18 Z M8,0 C14.6273158,0 20,5.37252632 20,12 L18.1297368,12 C18.1297368,6.40563158 13.5945263,1.87010526 8,1.87010526 Z M8,3.74021053 C12.5617368,3.74021053 16.2596316,7.43826316 16.2596316,12 L14.3895263,12 C14.3895263,8.47105263 11.5287895,5.61031579 8,5.61031579 Z" id="bell" fill="#3F3F3F"></path>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1016 B |
85
pandora_console/images/free_license.svg
Normal file
After Width: | Height: | Size: 48 KiB |
10
pandora_console/images/linking.svg
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<title>linking</title>
|
||||||
|
<g id="linking" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||||
|
<g id="Group" transform="translate(5, 1)" fill="#3F3F3F" fill-rule="nonzero">
|
||||||
|
<path d="M7,-1 C7.55228475,-1 8,-0.55228475 8,0 L8,4 C8,4.55228475 7.55228475,5 7,5 C6.44771525,5 6,4.55228475 6,4 L6,1 L1,1 L1,10 L6,10 C6,9.48716416 6.38604019,9.06449284 6.88337887,9.00672773 L7,9 C7.55228475,9 8,9.44771525 8,10 L8,11 C8,11.5522847 7.55228475,12 7,12 L0,12 C-0.55228475,12 -1,11.5522847 -1,11 L-1,0 C-1,-0.55228475 -0.55228475,-1 0,-1 L7,-1 Z" id="Path-100"></path>
|
||||||
|
<path d="M10,6 C10.5522847,6 11,6.44771525 11,7 L11,11 C11,11.5522847 10.5522847,12 10,12 C9.44771525,12 9,11.5522847 9,11 L9,8 L4,8 L4,17 L9,17 C9,16.4871642 9.38604019,16.0644928 9.88337887,16.0067277 L10,16 C10.5522847,16 11,16.4477153 11,17 L11,18 C11,18.5522847 10.5522847,19 10,19 L3,19 C2.44771525,19 2,18.5522847 2,18 L2,7 C2,6.44771525 2.44771525,6 3,6 L10,6 Z" id="Path-100" transform="translate(6.5, 12.5) scale(-1, -1) translate(-6.5, -12.5)"></path>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.3 KiB |
12
pandora_console/images/tree/corner@tree-dark.svg
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<!-- Generator: Sketch 61.2 (89653) - https://sketch.com -->
|
||||||
|
<title>Dark / 20 / dotted corner@svg</title>
|
||||||
|
<desc>Created with Sketch.</desc>
|
||||||
|
<g id="Dark-/-20-/-dotted-corner" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||||
|
<path
|
||||||
|
d="M9,1 L9,3 C9,3.55228475 9.44771525,4 10,4 C10.5522847,4 11,3.55228475 11,3 L11,1 C11,0.44771525 10.5522847,-8.8817842e-16 10,-8.8817842e-16 C9.44771525,-8.8817842e-16 9,0.44771525 9,1 Z M9,6 L9,8 C9,8.55228475 9.44771525,9 10,9 C10.5522847,9 11,8.55228475 11,8 L11,6 C11,5.44771525 10.5522847,5 10,5 C9.44771525,5 9,5.44771525 9,6 Z M11.9475734,11.0046923 L12.1206389,11.0088292 L14.0125056,11 C14.5647843,10.997423 15.0104053,10.5476233 15.0078502,9.9953446 C15.0052507,9.44306587 14.555451,8.99744483 14.0031722,9.00002215 L12.0524764,9.00744533 C11.5009519,8.97847716 11.0303696,9.40209278 11.0014014,9.9536173 C10.9724333,10.5051418 11.3960489,10.9757241 11.9475734,11.0046923 Z M17.0046669,11.0093338 L19.0046451,10.9999893 C19.5569239,10.997412 20.0025449,10.5476123 19.9999787,9.99533358 C19.9973902,9.44305484 19.5475905,8.9974338 18.9953118,9 L16.9953336,9.00934444 C16.4430548,9.01192177 15.9974338,9.46172148 16,10.0140002 C16.0025884,10.5662789 16.4523882,11.0119 17.0046669,11.0093338 Z"
|
||||||
|
id="Path-53" fill="#444444" fill-rule="nonzero"></path>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.5 KiB |
18
pandora_console/images/tree/corner_straight@tree-dark.svg
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<!-- Generator: Sketch 61.2 (89653) - https://sketch.com -->
|
||||||
|
<title>Dark / 20 / dotted corner@svg</title>
|
||||||
|
<desc>Created with Sketch.</desc>
|
||||||
|
<g id="Dark-/-20-/-dotted-corner" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||||
|
<path
|
||||||
|
d="M9,1 L9,3 C9,3.55228475 9.44771525,4 10,4 C10.5522847,4 11,3.55228475 11,3 L11,1 C11,0.44771525 10.5522847,-8.8817842e-16 10,-8.8817842e-16 C9.44771525,-8.8817842e-16 9,0.44771525 9,1 Z M9,6 L9,8 C9,8.55228475 9.44771525,9 10,9 C10.5522847,9 11,8.55228475 11,8 L11,6 C11,5.44771525 10.5522847,5 10,5 C9.44771525,5 9,5.44771525 9,6 Z M11.9475734,11.0046923 L12.1206389,11.0088292 L14.0125056,11 C14.5647843,10.997423 15.0104053,10.5476233 15.0078502,9.9953446 C15.0052507,9.44306587 14.555451,8.99744483 14.0031722,9.00002215 L12.0524764,9.00744533 C11.5009519,8.97847716 11.0303696,9.40209278 11.0014014,9.9536173 C10.9724333,10.5051418 11.3960489,10.9757241 11.9475734,11.0046923 Z M17.0046669,11.0093338 L19.0046451,10.9999893 C19.5569239,10.997412 20.0025449,10.5476123 19.9999787,9.99533358 C19.9973902,9.44305484 19.5475905,8.9974338 18.9953118,9 L16.9953336,9.00934444 C16.4430548,9.01192177 15.9974338,9.46172148 16,10.0140002 C16.0025884,10.5662789 16.4523882,11.0119 17.0046669,11.0093338 Z"
|
||||||
|
id="Path-53" fill="#444444" fill-rule="nonzero"></path>
|
||||||
|
</g>
|
||||||
|
<g id="Dark-/-20-/-dotted-straight" stroke="none" stroke-width="1" fill="none"
|
||||||
|
fill-rule="evenodd">
|
||||||
|
<path
|
||||||
|
d="M9,1 L9,3 C9,3.55228475 9.44771525,4 10,4 C10.5522847,4 11,3.55228475 11,3 L11,1 C11,0.44771525 10.5522847,0 10,0 C9.44771525,0 9,0.44771525 9,1 Z M9,6 L9,8 C9,8.55228475 9.44771525,9 10,9 C10.5522847,9 11,8.55228475 11,8 L11,6 C11,5.44771525 10.5522847,5 10,5 C9.44771525,5 9,5.44771525 9,6 Z M9,11 L9,13 C9,13.5522847 9.44771525,14 10,14 C10.5522847,14 11,13.5522847 11,13 L11,11 C11,10.4477153 10.5522847,10 10,10 C9.44771525,10 9,10.4477153 9,11 Z M9,16 L9,18 C9,18.5522847 9.44771525,19 10,19 C10.5522847,19 11,18.5522847 11,18 L11,16 C11,15.4477153 10.5522847,15 10,15 C9.44771525,15 9,15.4477153 9,16 Z"
|
||||||
|
id="Path-53" fill="#444444" fill-rule="nonzero"></path>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.3 KiB |
@ -0,0 +1,26 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<!-- Generator: Sketch 61.2 (89653) - https://sketch.com -->
|
||||||
|
<title>Dark / 20 / dotted corner@svg</title>
|
||||||
|
<desc>Created with Sketch.</desc>
|
||||||
|
<g id="Dark-/-20-/-dotted-corner" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||||
|
<path
|
||||||
|
d="M9,1 L9,3 C9,3.55228475 9.44771525,4 10,4 C10.5522847,4 11,3.55228475 11,3 L11,1 C11,0.44771525 10.5522847,-8.8817842e-16 10,-8.8817842e-16 C9.44771525,-8.8817842e-16 9,0.44771525 9,1 Z M9,6 L9,8 C9,8.55228475 9.44771525,9 10,9 C10.5522847,9 11,8.55228475 11,8 L11,6 C11,5.44771525 10.5522847,5 10,5 C9.44771525,5 9,5.44771525 9,6 Z M11.9475734,11.0046923 L12.1206389,11.0088292 L14.0125056,11 C14.5647843,10.997423 15.0104053,10.5476233 15.0078502,9.9953446 C15.0052507,9.44306587 14.555451,8.99744483 14.0031722,9.00002215 L12.0524764,9.00744533 C11.5009519,8.97847716 11.0303696,9.40209278 11.0014014,9.9536173 C10.9724333,10.5051418 11.3960489,10.9757241 11.9475734,11.0046923 Z M17.0046669,11.0093338 L19.0046451,10.9999893 C19.5569239,10.997412 20.0025449,10.5476123 19.9999787,9.99533358 C19.9973902,9.44305484 19.5475905,8.9974338 18.9953118,9 L16.9953336,9.00934444 C16.4430548,9.01192177 15.9974338,9.46172148 16,10.0140002 C16.0025884,10.5662789 16.4523882,11.0119 17.0046669,11.0093338 Z"
|
||||||
|
id="Path-53" fill="#444444" fill-rule="nonzero"></path>
|
||||||
|
</g>
|
||||||
|
<g id="Dark-/-20-/-dotted-straight" stroke="none" stroke-width="1" fill="none"
|
||||||
|
fill-rule="evenodd">
|
||||||
|
<path
|
||||||
|
d="M9,1 L9,3 C9,3.55228475 9.44771525,4 10,4 C10.5522847,4 11,3.55228475 11,3 L11,1 C11,0.44771525 10.5522847,0 10,0 C9.44771525,0 9,0.44771525 9,1 Z M9,6 L9,8 C9,8.55228475 9.44771525,9 10,9 C10.5522847,9 11,8.55228475 11,8 L11,6 C11,5.44771525 10.5522847,5 10,5 C9.44771525,5 9,5.44771525 9,6 Z M9,11 L9,13 C9,13.5522847 9.44771525,14 10,14 C10.5522847,14 11,13.5522847 11,13 L11,11 C11,10.4477153 10.5522847,10 10,10 C9.44771525,10 9,10.4477153 9,11 Z M9,16 L9,18 C9,18.5522847 9.44771525,19 10,19 C10.5522847,19 11,18.5522847 11,18 L11,16 C11,15.4477153 10.5522847,15 10,15 C9.44771525,15 9,15.4477153 9,16 Z"
|
||||||
|
id="Path-53" fill="#444444" fill-rule="nonzero"></path>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<path fill="#444444" class="st1"
|
||||||
|
d="M 323.217 324.737 L 323.217 255.824 C 323.217 250.901 329.256 247.209 337.309 247.209 C 345.361 247.209 351.4 250.901 351.4 255.824 L 351.4 324.122 C 351.4 329.044 345.361 332.737 337.309 332.737 C 329.256 333.351 323.217 329.66 323.217 324.737 Z"
|
||||||
|
style=""></path>
|
||||||
|
|
||||||
|
<circle fill="#aaaaaa" class="st0" cx="10" cy="10" r="5" />
|
||||||
|
<rect x="7" y="9" width="6px" height="2px" fill="#333333"></rect>
|
||||||
|
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.8 KiB |
@ -0,0 +1,27 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<!-- Generator: Sketch 61.2 (89653) - https://sketch.com -->
|
||||||
|
<title>Dark / 20 / dotted corner@svg</title>
|
||||||
|
<desc>Created with Sketch.</desc>
|
||||||
|
<g id="Dark-/-20-/-dotted-corner" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||||
|
<path
|
||||||
|
d="M9,1 L9,3 C9,3.55228475 9.44771525,4 10,4 C10.5522847,4 11,3.55228475 11,3 L11,1 C11,0.44771525 10.5522847,-8.8817842e-16 10,-8.8817842e-16 C9.44771525,-8.8817842e-16 9,0.44771525 9,1 Z M9,6 L9,8 C9,8.55228475 9.44771525,9 10,9 C10.5522847,9 11,8.55228475 11,8 L11,6 C11,5.44771525 10.5522847,5 10,5 C9.44771525,5 9,5.44771525 9,6 Z M11.9475734,11.0046923 L12.1206389,11.0088292 L14.0125056,11 C14.5647843,10.997423 15.0104053,10.5476233 15.0078502,9.9953446 C15.0052507,9.44306587 14.555451,8.99744483 14.0031722,9.00002215 L12.0524764,9.00744533 C11.5009519,8.97847716 11.0303696,9.40209278 11.0014014,9.9536173 C10.9724333,10.5051418 11.3960489,10.9757241 11.9475734,11.0046923 Z M17.0046669,11.0093338 L19.0046451,10.9999893 C19.5569239,10.997412 20.0025449,10.5476123 19.9999787,9.99533358 C19.9973902,9.44305484 19.5475905,8.9974338 18.9953118,9 L16.9953336,9.00934444 C16.4430548,9.01192177 15.9974338,9.46172148 16,10.0140002 C16.0025884,10.5662789 16.4523882,11.0119 17.0046669,11.0093338 Z"
|
||||||
|
id="Path-53" fill="#444444" fill-rule="nonzero"></path>
|
||||||
|
</g>
|
||||||
|
<g id="Dark-/-20-/-dotted-straight" stroke="none" stroke-width="1" fill="none"
|
||||||
|
fill-rule="evenodd">
|
||||||
|
<path
|
||||||
|
d="M9,1 L9,3 C9,3.55228475 9.44771525,4 10,4 C10.5522847,4 11,3.55228475 11,3 L11,1 C11,0.44771525 10.5522847,0 10,0 C9.44771525,0 9,0.44771525 9,1 Z M9,6 L9,8 C9,8.55228475 9.44771525,9 10,9 C10.5522847,9 11,8.55228475 11,8 L11,6 C11,5.44771525 10.5522847,5 10,5 C9.44771525,5 9,5.44771525 9,6 Z M9,11 L9,13 C9,13.5522847 9.44771525,14 10,14 C10.5522847,14 11,13.5522847 11,13 L11,11 C11,10.4477153 10.5522847,10 10,10 C9.44771525,10 9,10.4477153 9,11 Z M9,16 L9,18 C9,18.5522847 9.44771525,19 10,19 C10.5522847,19 11,18.5522847 11,18 L11,16 C11,15.4477153 10.5522847,15 10,15 C9.44771525,15 9,15.4477153 9,16 Z"
|
||||||
|
id="Path-53" fill="#444444" fill-rule="nonzero"></path>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<path fill="#444444" class="st1"
|
||||||
|
d="M 323.217 324.737 L 323.217 255.824 C 323.217 250.901 329.256 247.209 337.309 247.209 C 345.361 247.209 351.4 250.901 351.4 255.824 L 351.4 324.122 C 351.4 329.044 345.361 332.737 337.309 332.737 C 329.256 333.351 323.217 329.66 323.217 324.737 Z"
|
||||||
|
style=""></path>
|
||||||
|
|
||||||
|
<circle fill="#aaaaaa" class="st0" cx="10" cy="10" r="5" />
|
||||||
|
<rect x="7" y="9" width="6px" height="2px" fill="#333333"></rect>
|
||||||
|
<rect x="9" y="7" width="2px" height="6px" fill="#333333"></rect>
|
||||||
|
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.8 KiB |
13
pandora_console/images/tree/straight@tree-dark.svg
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<!-- Generator: Sketch 61.2 (89653) - https://sketch.com -->
|
||||||
|
<title>Dark / 20 / dotted straight@svg</title>
|
||||||
|
<desc>Created with Sketch.</desc>
|
||||||
|
<g id="Dark-/-20-/-dotted-straight" stroke="none" stroke-width="1" fill="none"
|
||||||
|
fill-rule="evenodd">
|
||||||
|
<path
|
||||||
|
d="M9,1 L9,3 C9,3.55228475 9.44771525,4 10,4 C10.5522847,4 11,3.55228475 11,3 L11,1 C11,0.44771525 10.5522847,0 10,0 C9.44771525,0 9,0.44771525 9,1 Z M9,6 L9,8 C9,8.55228475 9.44771525,9 10,9 C10.5522847,9 11,8.55228475 11,8 L11,6 C11,5.44771525 10.5522847,5 10,5 C9.44771525,5 9,5.44771525 9,6 Z M9,11 L9,13 C9,13.5522847 9.44771525,14 10,14 C10.5522847,14 11,13.5522847 11,13 L11,11 C11,10.4477153 10.5522847,10 10,10 C9.44771525,10 9,10.4477153 9,11 Z M9,16 L9,18 C9,18.5522847 9.44771525,19 10,19 C10.5522847,19 11,18.5522847 11,18 L11,16 C11,15.4477153 10.5522847,15 10,15 C9.44771525,15 9,15.4477153 9,16 Z"
|
||||||
|
id="Path-53" fill="#444444" fill-rule="nonzero"></path>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.1 KiB |
@ -114,6 +114,7 @@ if ($info === 'version') {
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$user_in_db = null;
|
||||||
if (empty($apiPassword) === true
|
if (empty($apiPassword) === true
|
||||||
|| (empty($apiPassword) === false && $api_password === $apiPassword)
|
|| (empty($apiPassword) === false && $api_password === $apiPassword)
|
||||||
|| $apiTokenValid === true
|
|| $apiTokenValid === true
|
||||||
|
@ -685,7 +685,7 @@ class AgentsAlerts extends HTML
|
|||||||
$alias = db_get_row('tagente', 'id_agente', $agent['id_agente']);
|
$alias = db_get_row('tagente', 'id_agente', $agent['id_agente']);
|
||||||
echo '<tr>';
|
echo '<tr>';
|
||||||
// Name of the agent.
|
// Name of the agent.
|
||||||
echo '<td style="text-align: left;font-weight: bold;color: #3f3f3f;">'.$alias['alias'].'</td>';
|
echo '<td style="text-align: left;font-weight: bold;color: var(--text-color-4);">'.$alias['alias'].'</td>';
|
||||||
// Alerts of the agent.
|
// Alerts of the agent.
|
||||||
foreach ($templates as $tid => $tname) {
|
foreach ($templates as $tid => $tname) {
|
||||||
$anyfired = 0;
|
$anyfired = 0;
|
||||||
|
@ -250,6 +250,13 @@ class ConsoleSupervisor
|
|||||||
|
|
||||||
$this->checkAllowOverrideEnabled();
|
$this->checkAllowOverrideEnabled();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Check if OpenSearch is configured and log collector enabled
|
||||||
|
* NOTIF.OPENSEARCH.CONSOLELOG
|
||||||
|
*/
|
||||||
|
|
||||||
|
$this->checkOpenSearchLogCollector();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check if the Pandora Console log
|
* Check if the Pandora Console log
|
||||||
* file remains in old location.
|
* file remains in old location.
|
||||||
@ -540,6 +547,12 @@ class ConsoleSupervisor
|
|||||||
|
|
||||||
$this->checkUpdateManagerRegistration();
|
$this->checkUpdateManagerRegistration();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Check if OpenSearch is configured and log collector enabled
|
||||||
|
* NOTIF.OPENSEARCH.CONSOLELOG
|
||||||
|
*/
|
||||||
|
$this->checkOpenSearchLogCollector();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check if has API access.
|
* Check if has API access.
|
||||||
* NOTIF.API.ACCESS
|
* NOTIF.API.ACCESS
|
||||||
@ -2540,6 +2553,35 @@ class ConsoleSupervisor
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if OpenSearch is configured and log collector enabled.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function checkOpenSearchLogCollector()
|
||||||
|
{
|
||||||
|
global $config;
|
||||||
|
include_once $config['homedir'].'/include/functions_update_manager.php';
|
||||||
|
$login = get_parameter('login', false);
|
||||||
|
|
||||||
|
if ($config['log_collector'] !== '1' && empty($config['elasticsearch_ip']) === false && empty($config['elasticsearch_port']) === false) {
|
||||||
|
if (update_manager_verify_registration() === false) {
|
||||||
|
$this->notify(
|
||||||
|
[
|
||||||
|
'type' => 'NOTIF.OPENSEARCH.CONSOLELOG',
|
||||||
|
'title' => __('The Log collector is not enabled'),
|
||||||
|
'message' => __('The OpenSearch is defined but the log collector is not enabled.'),
|
||||||
|
'url' => '__url__/index.php?sec=gsetup&sec2=godmode/setup/setup§ion=log',
|
||||||
|
'icon_notification' => self::ICON_QUESTION,
|
||||||
|
]
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$this->cleanNotifications('NOTIF.OPENSEARCH.CONSOLELOG');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if has access to the API
|
* Check if has access to the API
|
||||||
*
|
*
|
||||||
@ -3137,7 +3179,7 @@ class ConsoleSupervisor
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$sync = new PandoraFMS\Enterprise\Metaconsole\Synchronizer(true);
|
$sync = new PandoraFMS\Enterprise\Metaconsole\Synchronizer();
|
||||||
$counts = $sync->getQueues(true);
|
$counts = $sync->getQueues(true);
|
||||||
|
|
||||||
if (count($counts) === 0) {
|
if (count($counts) === 0) {
|
||||||
@ -3195,7 +3237,7 @@ class ConsoleSupervisor
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$sync = new PandoraFMS\Enterprise\Metaconsole\Synchronizer(true);
|
$sync = new PandoraFMS\Enterprise\Metaconsole\Synchronizer();
|
||||||
$queues = $sync->getQueues();
|
$queues = $sync->getQueues();
|
||||||
if (count($queues) === 0) {
|
if (count($queues) === 0) {
|
||||||
// Clean all.
|
// Clean all.
|
||||||
@ -3325,27 +3367,34 @@ class ConsoleSupervisor
|
|||||||
public function checkTotalModulesByAgent()
|
public function checkTotalModulesByAgent()
|
||||||
{
|
{
|
||||||
$modules_by_agent = db_process_sql(
|
$modules_by_agent = db_process_sql(
|
||||||
'SELECT count(*) AS modules_by_agent
|
'SELECT count(*) AS count
|
||||||
FROM tagente a
|
FROM tagente a
|
||||||
LEFT JOIN tagente_modulo m ON a.id_agente = m.id_agente
|
LEFT JOIN tagente_modulo m ON a.id_agente = m.id_agente
|
||||||
|
WHERE m.disabled = 0
|
||||||
GROUP BY m.id_agente'
|
GROUP BY m.id_agente'
|
||||||
);
|
);
|
||||||
|
|
||||||
$show_warning = false;
|
$show_warning = false;
|
||||||
foreach ($modules_by_agent as $key => $total_modules) {
|
|
||||||
if ($total_modules['modules_by_agent'] > 200) {
|
if ($modules_by_agent !== false) {
|
||||||
|
$agents = count($modules_by_agent);
|
||||||
|
$modules = array_sum(array_column($modules_by_agent, 'count'));
|
||||||
|
|
||||||
|
$ratio = ($modules / $agents);
|
||||||
|
$ratio = round($ratio, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($ratio > 200) {
|
||||||
$this->notify(
|
$this->notify(
|
||||||
[
|
[
|
||||||
'type' => 'NOTIF.MODULES_AGENT.ALERT',
|
'type' => 'NOTIF.MODULES_AGENT.ALERT',
|
||||||
'title' => __('Your system has an average of %s modules per agent', $total_modules['modules_by_agent']),
|
'title' => __('Your system has an average of %s modules per agent', $ratio),
|
||||||
'message' => __('This is higher than the recommended maximum (200). This may result in poor performance of your system.'),
|
'message' => __('This is higher than the recommended maximum (200). This may result in poor performance of your system.'),
|
||||||
'icon_notification' => self::ICON_HEADSUP,
|
'icon_notification' => self::ICON_HEADSUP,
|
||||||
'url' => '__url__index.php?sec=gagente&sec2=godmode/agentes/modificar_agente',
|
'url' => '__url__index.php?sec=gagente&sec2=godmode/agentes/modificar_agente',
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
$show_warning = true;
|
$show_warning = true;
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($show_warning === false) {
|
if ($show_warning === false) {
|
||||||
|
@ -404,7 +404,7 @@ class OrderInterpreter extends Wizard
|
|||||||
if ($iterator <= 9 && $this->canShowItem($enterprise, $this->pages_menu[$key]['url'])) {
|
if ($iterator <= 9 && $this->canShowItem($enterprise, $this->pages_menu[$key]['url'])) {
|
||||||
echo '<li class="list_found" name="'.$iterator.'" id="'.$iterator.'">';
|
echo '<li class="list_found" name="'.$iterator.'" id="'.$iterator.'">';
|
||||||
echo '
|
echo '
|
||||||
<span class="invert_filter"> Go to </span>
|
<span class=""> Go to </span>
|
||||||
<img src="'.$this->pages_menu[$key]['icon'].'">';
|
<img src="'.$this->pages_menu[$key]['icon'].'">';
|
||||||
echo '
|
echo '
|
||||||
<a href="'.$this->pages_menu[$key]['url'].'">
|
<a href="'.$this->pages_menu[$key]['url'].'">
|
||||||
@ -426,12 +426,12 @@ class OrderInterpreter extends Wizard
|
|||||||
echo $this->loadJS();
|
echo $this->loadJS();
|
||||||
echo '</ul>';
|
echo '</ul>';
|
||||||
if ($iterator > 10) {
|
if ($iterator > 10) {
|
||||||
echo '<div class="more_results"><span class="invert_filter">
|
echo '<div class="more_results"><span class="">
|
||||||
+ '.$more_results.' '.__('results found').'</span></div>';
|
+ '.$more_results.' '.__('results found').'</span></div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($iterator === 0) {
|
if ($iterator === 0) {
|
||||||
echo '<span class="invert_filter">'.__('Press enter to search').'</span>';
|
echo '<span class="">'.__('Press enter to search').'</span>';
|
||||||
}
|
}
|
||||||
|
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
|
@ -240,27 +240,27 @@ class SnmpConsole extends HTML
|
|||||||
'status',
|
'status',
|
||||||
[
|
[
|
||||||
'text' => 'snmp_agent',
|
'text' => 'snmp_agent',
|
||||||
'class' => 'snmp-td datos_green',
|
'class' => 'snmp-td',
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'text' => 'enterprise_string',
|
'text' => 'enterprise_string',
|
||||||
'class' => 'snmp-td datos_green',
|
'class' => 'snmp-td',
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'text' => 'count',
|
'text' => 'count',
|
||||||
'class' => 'snmp-td datos_green',
|
'class' => 'snmp-td',
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'text' => 'trap_subtype',
|
'text' => 'trap_subtype',
|
||||||
'class' => 'snmp-td datos_green',
|
'class' => 'snmp-td',
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'text' => 'user_id',
|
'text' => 'user_id',
|
||||||
'class' => 'snmp-td datos_green',
|
'class' => 'snmp-td',
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'text' => 'timestamp',
|
'text' => 'timestamp',
|
||||||
'class' => 'snmp-td datos_green',
|
'class' => 'snmp-td',
|
||||||
],
|
],
|
||||||
'alert',
|
'alert',
|
||||||
[
|
[
|
||||||
@ -791,7 +791,7 @@ class SnmpConsole extends HTML
|
|||||||
// SNMP Agent.
|
// SNMP Agent.
|
||||||
$agent = agents_get_agent_with_ip($tmp->source);
|
$agent = agents_get_agent_with_ip($tmp->source);
|
||||||
if ($agent === false) {
|
if ($agent === false) {
|
||||||
$tmp->snmp_agent .= '<a href="index.php?sec=estado&sec2=godmode/agentes/configurar_agente&new_agent=1&direccion='.$tmp->source.'" title="'.__('Create agent').'">'.$tmp->source.'</a>';
|
$tmp->snmp_agent .= '<a class="'.$severity_class.' href="index.php?sec=estado&sec2=godmode/agentes/configurar_agente&new_agent=1&direccion='.$tmp->source.'" title="'.__('Create agent').'">'.$tmp->source.'</a>';
|
||||||
} else {
|
} else {
|
||||||
$tmp->snmp_agent .= '<div class="'.$severity_class.' snmp-div"><a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$agent['id_agente'].'" title="'.__('View agent details').'">';
|
$tmp->snmp_agent .= '<div class="'.$severity_class.' snmp-div"><a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$agent['id_agente'].'" title="'.__('View agent details').'">';
|
||||||
$tmp->snmp_agent .= '<strong>'.$agent['alias'].ui_print_help_tip($tmp->source, true);
|
$tmp->snmp_agent .= '<strong>'.$agent['alias'].ui_print_help_tip($tmp->source, true);
|
||||||
|
@ -22,7 +22,7 @@ use DI\ContainerBuilder;
|
|||||||
/*
|
/*
|
||||||
* Pandora build version and version
|
* Pandora build version and version
|
||||||
*/
|
*/
|
||||||
$build_version = 'PC240402';
|
$build_version = 'PC240415';
|
||||||
$pandora_version = 'v7.0NG.776';
|
$pandora_version = 'v7.0NG.776';
|
||||||
|
|
||||||
// Do not overwrite default timezone set if defined.
|
// Do not overwrite default timezone set if defined.
|
||||||
|
@ -470,7 +470,7 @@ function get_user_language($id_user=null)
|
|||||||
|
|
||||||
if ($id_user !== null) {
|
if ($id_user !== null) {
|
||||||
$userinfo = get_user_info($id_user);
|
$userinfo = get_user_info($id_user);
|
||||||
if ($userinfo['language'] != 'default') {
|
if (isset($userinfo['language']) === true && $userinfo['language'] != 'default') {
|
||||||
return $userinfo['language'];
|
return $userinfo['language'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -5617,6 +5617,13 @@ function get_help_info($section_name)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'opensearch_installation':
|
||||||
|
if ($es) {
|
||||||
|
$result .= 'pandorafms/technical_annexes/38_opensearch_installation#instalacion';
|
||||||
|
} else {
|
||||||
|
$result .= 'pandorafms/technical_annexes/38_opensearch_installation#installation';
|
||||||
|
}
|
||||||
|
|
||||||
case 'servers_ha_clusters_tab':
|
case 'servers_ha_clusters_tab':
|
||||||
if ($es) {
|
if ($es) {
|
||||||
$result .= 'pandorafms/complex_environments_and_optimization/06_ha#alta_disponibilidad_del_servidor_de_datos';
|
$result .= 'pandorafms/complex_environments_and_optimization/06_ha#alta_disponibilidad_del_servidor_de_datos';
|
||||||
@ -6943,6 +6950,48 @@ function get_defined_translation($string)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* General utility to check if at least one element in an array meets a certain criteria defined by passed function.
|
||||||
|
*
|
||||||
|
* @param array $array Array to be checked.
|
||||||
|
* @param callable $fn Checking function (must accept one argument => array item to be evaluated and returns
|
||||||
|
* true/false depending on whether or not the condition was fulfilled).
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
function array_some(array $array, callable $fn)
|
||||||
|
{
|
||||||
|
foreach ($array as $value) {
|
||||||
|
if ($fn($value) === true) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* General utility to check if every element in an array meets a certain criteria defined by passed function.
|
||||||
|
*
|
||||||
|
* @param array $array Array to be checked.
|
||||||
|
* @param callable $fn Checking function (must accept one argument => array item to be evaluated and returns
|
||||||
|
* true/false depending on whether or not the condition was fulfilled).
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
function array_every(array $array, callable $fn)
|
||||||
|
{
|
||||||
|
foreach ($array as $value) {
|
||||||
|
if ($fn($value) === false) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Merge any number of arrays by pairs of elements at the same index.
|
* Merge any number of arrays by pairs of elements at the same index.
|
||||||
*
|
*
|
||||||
|
@ -317,6 +317,16 @@ function clippy_context_help($help=null)
|
|||||||
$title = $clippy_data_configuration_module['tours']['data_configuration_module']['steps'][0]['title'];
|
$title = $clippy_data_configuration_module['tours']['data_configuration_module']['steps'][0]['title'];
|
||||||
$intro = $clippy_data_configuration_module['tours']['data_configuration_module']['steps'][0]['intro'];
|
$intro = $clippy_data_configuration_module['tours']['data_configuration_module']['steps'][0]['intro'];
|
||||||
$img = $clippy_data_configuration_module['tours']['data_configuration_module']['steps'][0]['img'];
|
$img = $clippy_data_configuration_module['tours']['data_configuration_module']['steps'][0]['img'];
|
||||||
|
} else if ($help === 'modules_not_learning_mode') {
|
||||||
|
$clippy_modules_not_learning_mode = clippy_modules_not_learning_mode();
|
||||||
|
$title = $clippy_modules_not_learning_mode['tours']['modules_not_learning_mode']['steps'][0]['title'];
|
||||||
|
$intro = $clippy_modules_not_learning_mode['tours']['modules_not_learning_mode']['steps'][0]['intro'];
|
||||||
|
$img = $clippy_modules_not_learning_mode['tours']['modules_not_learning_mode']['steps'][0]['img'];
|
||||||
|
} else if ($help === 'agent_module_interval') {
|
||||||
|
$clippy_agent_module_interval = clippy_agent_module_interval();
|
||||||
|
$title = $clippy_agent_module_interval['tours']['agent_module_interval']['steps'][0]['title'];
|
||||||
|
$intro = $clippy_agent_module_interval['tours']['agent_module_interval']['steps'][0]['intro'];
|
||||||
|
$img = $clippy_agent_module_interval['tours']['agent_module_interval']['steps'][0]['img'];
|
||||||
} else {
|
} else {
|
||||||
$img = html_print_image(
|
$img = html_print_image(
|
||||||
'images/info-warning.svg',
|
'images/info-warning.svg',
|
||||||
@ -325,7 +335,7 @@ function clippy_context_help($help=null)
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$return = $code.'<div id="'.$id.'" class="inline"><a onclick="show_'.$id.'();" href="javascript: void(0);" >'.$img.'</a></div>
|
$return = $code.'<div id="'.$id.'" class="inline div-'.$help.'"><a onclick="show_'.$id.'();" href="javascript: void(0);" >'.$img.'</a></div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
function show_'.$id.'() {
|
function show_'.$id.'() {
|
||||||
|
@ -1256,6 +1256,10 @@ function config_update_config()
|
|||||||
$error_update[] = __('Default line menu items for the Visual Console');
|
$error_update[] = __('Default line menu items for the Visual Console');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (config_update_value('vc_text_margin', (int) get_parameter('vc_text_margin', 1), true) === false) {
|
||||||
|
$error_update[] = __('Default text margin for the Visual Console');
|
||||||
|
}
|
||||||
|
|
||||||
if (config_update_value('vc_line_thickness', (int) get_parameter('vc_line_thickness'), true) === false) {
|
if (config_update_value('vc_line_thickness', (int) get_parameter('vc_line_thickness'), true) === false) {
|
||||||
$error_update[] = __('Default line thickness for the Visual Console');
|
$error_update[] = __('Default line thickness for the Visual Console');
|
||||||
}
|
}
|
||||||
@ -1898,7 +1902,7 @@ function config_update_config()
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'ehorus':
|
case 'pandorarc':
|
||||||
if (config_update_value('ehorus_enabled', (int) get_parameter('ehorus_enabled', 0), true) === false) {
|
if (config_update_value('ehorus_enabled', (int) get_parameter('ehorus_enabled', 0), true) === false) {
|
||||||
$error_update[] = __('Enable eHorus');
|
$error_update[] = __('Enable eHorus');
|
||||||
}
|
}
|
||||||
@ -2927,6 +2931,10 @@ function config_process_config()
|
|||||||
config_update_value('vc_menu_items', 10);
|
config_update_value('vc_menu_items', 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!isset($config['vc_text_margin'])) {
|
||||||
|
config_update_value('vc_text_margin', 1);
|
||||||
|
}
|
||||||
|
|
||||||
if (!isset($config['ser_menu_items'])) {
|
if (!isset($config['ser_menu_items'])) {
|
||||||
config_update_value('ser_menu_items', 10);
|
config_update_value('ser_menu_items', 10);
|
||||||
}
|
}
|
||||||
|
@ -1235,6 +1235,8 @@ function events_get_all(
|
|||||||
io_safe_input($filter['user_comment']),
|
io_safe_input($filter['user_comment']),
|
||||||
$filter['user_comment']
|
$filter['user_comment']
|
||||||
);
|
);
|
||||||
|
|
||||||
|
array_unshift($fields, 'DISTINCT te.id_evento AS distinct_event');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Source.
|
// Source.
|
||||||
@ -2713,6 +2715,7 @@ function events_print_type_img(
|
|||||||
$icon = 'images/module_warning.png';
|
$icon = 'images/module_warning.png';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'unknown':
|
||||||
case 'going_unknown':
|
case 'going_unknown':
|
||||||
$icon = 'images/module_unknown.png';
|
$icon = 'images/module_unknown.png';
|
||||||
break;
|
break;
|
||||||
@ -2741,7 +2744,6 @@ function events_print_type_img(
|
|||||||
$icon = 'images/configuration@svg.svg';
|
$icon = 'images/configuration@svg.svg';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'unknown':
|
|
||||||
default:
|
default:
|
||||||
$style .= ' invert_filter';
|
$style .= ' invert_filter';
|
||||||
$icon = 'images/event.svg';
|
$icon = 'images/event.svg';
|
||||||
@ -2993,6 +2995,9 @@ function events_print_type_description($type, $return=false)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'unknown':
|
case 'unknown':
|
||||||
|
$output .= __('Unknown');
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
$output .= __('Unknown type:').': '.$type;
|
$output .= __('Unknown type:').': '.$type;
|
||||||
break;
|
break;
|
||||||
@ -5837,6 +5842,7 @@ function events_get_instructions($event, $max_text_length=300)
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch ($event['event_type']) {
|
switch ($event['event_type']) {
|
||||||
|
case 'unknown':
|
||||||
case 'going_unknown':
|
case 'going_unknown':
|
||||||
if ($event['unknown_instructions'] != '') {
|
if ($event['unknown_instructions'] != '') {
|
||||||
$value = str_replace(
|
$value = str_replace(
|
||||||
|
@ -4100,7 +4100,7 @@ function fullscale_data(
|
|||||||
$data['sum'.$series_suffix]['min'] = $min_value_total;
|
$data['sum'.$series_suffix]['min'] = $min_value_total;
|
||||||
$data['sum'.$series_suffix]['max'] = $max_value_total;
|
$data['sum'.$series_suffix]['max'] = $max_value_total;
|
||||||
$data['sum'.$series_suffix]['avg'] = 0;
|
$data['sum'.$series_suffix]['avg'] = 0;
|
||||||
if (isset($count_data_total) === true) {
|
if (isset($count_data_total) === true && $count_data_total > 0) {
|
||||||
$data['sum'.$series_suffix]['avg'] = ($sum_data_total / $count_data_total);
|
$data['sum'.$series_suffix]['avg'] = ($sum_data_total / $count_data_total);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -107,22 +107,6 @@ function groups_check_used($idGroup)
|
|||||||
$return['tables'][] = __('Discovery task');
|
$return['tables'][] = __('Discovery task');
|
||||||
}
|
}
|
||||||
|
|
||||||
switch ($config['dbtype']) {
|
|
||||||
case 'mysql':
|
|
||||||
case 'postgresql':
|
|
||||||
$numRows = db_get_num_rows('SELECT * FROM tgraph WHERE id_group = '.$idGroup.';');
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'oracle':
|
|
||||||
$numRows = db_get_num_rows('SELECT * FROM tgraph WHERE id_group = '.$idGroup);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($numRows > 0) {
|
|
||||||
$return['return'] = true;
|
|
||||||
$return['tables'][] = __('Graphs');
|
|
||||||
}
|
|
||||||
|
|
||||||
switch ($config['dbtype']) {
|
switch ($config['dbtype']) {
|
||||||
case 'mysql':
|
case 'mysql':
|
||||||
case 'postgresql':
|
case 'postgresql':
|
||||||
|
@ -206,3 +206,43 @@ function groupview_get_groups_list($id_user=false, $access='AR', $is_not_paginat
|
|||||||
'counter' => $counter,
|
'counter' => $counter,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function get_recursive_groups_heatmap($parent_group, $acl)
|
||||||
|
{
|
||||||
|
if ($parent_group['counter'] > 0) {
|
||||||
|
foreach ($parent_group['groups'] as $group_key => $group_value) {
|
||||||
|
if ((int) $group_value['_id_'] === 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$childrens = groups_get_children($group_value['_id_'], true, $acl, false);
|
||||||
|
if (empty($childrens) === false) {
|
||||||
|
foreach ($childrens as $children) {
|
||||||
|
$children_status = groups_get_status($children['id_grupo']);
|
||||||
|
$parent_group['groups'][$group_key]['_monitor_checks_']++;
|
||||||
|
switch ($children_status) {
|
||||||
|
case AGENT_STATUS_CRITICAL:
|
||||||
|
$parent_group['groups'][$group_key]['_monitors_critical_']++;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case AGENT_STATUS_WARNING:
|
||||||
|
$parent_group['groups'][$group_key]['_monitors_warning_']++;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case AGENT_STATUS_UNKNOWN:
|
||||||
|
$parent_group['groups'][$group_key]['_monitors_unknown_']++;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case AGENT_STATUS_NORMAL:
|
||||||
|
default:
|
||||||
|
$parent_group['groups'][$group_key]['_monitors_ok_']++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $parent_group;
|
||||||
|
}
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
* @package Include
|
* @package Include
|
||||||
* @subpackage HTML
|
* @subpackage HTML
|
||||||
*/
|
*/
|
||||||
|
use PandoraFMS\Enterprise\Metaconsole\Node;
|
||||||
if (!isset($config)) {
|
if (!isset($config)) {
|
||||||
$working_dir = getcwd();
|
$working_dir = getcwd();
|
||||||
$working_dir = str_replace('\\', '/', $working_dir);
|
$working_dir = str_replace('\\', '/', $working_dir);
|
||||||
@ -1854,6 +1854,301 @@ function html_print_select_multiple_modules_filtered(array $data):string
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Form multiple inputs for slect groups.
|
||||||
|
*
|
||||||
|
* @param array $data Data inputs.
|
||||||
|
*
|
||||||
|
* @return string Html output.
|
||||||
|
*/
|
||||||
|
function html_print_select_multiple_modules_filtered_formated(array $data):string
|
||||||
|
{
|
||||||
|
if (is_ajax() === true) {
|
||||||
|
ui_require_javascript_file(
|
||||||
|
'multiselect_filtered',
|
||||||
|
'include/javascript/',
|
||||||
|
true
|
||||||
|
);
|
||||||
|
ui_require_css_file(
|
||||||
|
'multiselect_filtered',
|
||||||
|
'include/styles/',
|
||||||
|
true
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
ui_require_javascript_file('multiselect_filtered');
|
||||||
|
ui_require_css_file('multiselect_filtered');
|
||||||
|
}
|
||||||
|
|
||||||
|
$uniqId = $data['uniqId'];
|
||||||
|
|
||||||
|
$return_all_group = isset($data['mReturnAllGroup']) ? $data['mReturnAllGroup'] : true;
|
||||||
|
|
||||||
|
// Group.
|
||||||
|
$output = '<div class="w98p">';
|
||||||
|
$output .= html_print_input(
|
||||||
|
[
|
||||||
|
'label' => __('Group'),
|
||||||
|
'label_class' => 'font-title-font',
|
||||||
|
'name' => 'filtered-module-group-'.$uniqId,
|
||||||
|
'returnAllGroup' => $return_all_group,
|
||||||
|
'privilege' => 'AR',
|
||||||
|
'type' => 'select_groups',
|
||||||
|
'return' => true,
|
||||||
|
'script' => 'fmAgentChange(\''.$uniqId.'\')',
|
||||||
|
'selected' => $data['mGroup'],
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
// Groups module.
|
||||||
|
$module_groups = db_get_all_rows_sql(
|
||||||
|
'SELECT * FROM tmodule_group ORDER BY name'
|
||||||
|
);
|
||||||
|
$module_groups = array_reduce(
|
||||||
|
$module_groups,
|
||||||
|
function ($carry, $item) {
|
||||||
|
$carry[$item['id_mg']] = $item['name'];
|
||||||
|
return $carry;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
$output .= html_print_input(
|
||||||
|
[
|
||||||
|
'label' => __('Module group'),
|
||||||
|
'label_class' => 'font-title-font',
|
||||||
|
'type' => 'select',
|
||||||
|
'fields' => $module_groups,
|
||||||
|
'name' => 'filtered-module-module-group-'.$uniqId,
|
||||||
|
'selected' => $data['mModuleGroup'],
|
||||||
|
'return' => true,
|
||||||
|
'nothing' => __('All'),
|
||||||
|
'nothing_value' => 0,
|
||||||
|
'script' => 'fmModuleChange(\''.$uniqId.'\', '.(int) is_metaconsole().')',
|
||||||
|
]
|
||||||
|
);
|
||||||
|
$output .= '</div>';
|
||||||
|
$output .= '<div class="recursive-modules mrgn_lft_20px_important">';
|
||||||
|
|
||||||
|
// Recursion.
|
||||||
|
$output .= html_print_input(
|
||||||
|
[
|
||||||
|
'label' => __('Recursion'),
|
||||||
|
'label_class' => 'font-title-font',
|
||||||
|
'type' => 'switch',
|
||||||
|
'name' => 'filtered-module-recursion-'.$uniqId,
|
||||||
|
'value' => (empty($data['mRecursion']) === true) ? false : true,
|
||||||
|
'checked' => (empty($data['mRecursion']) === true) ? false : true,
|
||||||
|
'return' => true,
|
||||||
|
'id' => 'filtered-module-recursion-'.$uniqId,
|
||||||
|
'onchange' => 'fmAgentChange(\''.$uniqId.'\')',
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
$commonModules = 0;
|
||||||
|
if (empty($data['mShowCommonModules']) === false) {
|
||||||
|
$commonModules = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
$output .= html_print_input(
|
||||||
|
[
|
||||||
|
'label' => __('Only common modules'),
|
||||||
|
'label_class' => 'font-title-font',
|
||||||
|
'type' => 'switch',
|
||||||
|
'checked' => $commonModules,
|
||||||
|
'value' => $commonModules,
|
||||||
|
'name' => 'filtered-module-show-common-modules-'.$uniqId,
|
||||||
|
'id' => 'filtered-module-show-common-modules-'.$uniqId,
|
||||||
|
'return' => true,
|
||||||
|
'onchange' => 'fmModuleChange(\''.$uniqId.'\', '.(int) is_metaconsole().')',
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
$output .= '</div>';
|
||||||
|
|
||||||
|
if (empty($data['searchBar']) === false && $data['searchBar'] === true) {
|
||||||
|
$output .= '<div>';
|
||||||
|
|
||||||
|
$output .= '<div>';
|
||||||
|
$output .= html_print_input(
|
||||||
|
[
|
||||||
|
'type' => 'text',
|
||||||
|
'name' => 'agent-searchBar-'.$uniqId,
|
||||||
|
'onKeyUp' => 'searchAgent(\''.$uniqId.'\')',
|
||||||
|
'placeholder' => __('Type to search agents'),
|
||||||
|
'return' => true,
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
$output .= '</div>';
|
||||||
|
|
||||||
|
$output .= '<div>';
|
||||||
|
$output .= html_print_input(
|
||||||
|
[
|
||||||
|
'type' => 'text',
|
||||||
|
'name' => 'module-searchBar-'.$uniqId,
|
||||||
|
'onKeyUp' => 'searchModule(\''.$uniqId.'\')',
|
||||||
|
'return' => true,
|
||||||
|
'placeholder' => __('Type to search modules'),
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
$output .= '</div>';
|
||||||
|
|
||||||
|
$output .= '</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
$output .= '<div class="w98p">';
|
||||||
|
// Agent.
|
||||||
|
$agents = agents_get_group_agents(
|
||||||
|
// Id_group.
|
||||||
|
$data['mGroup'],
|
||||||
|
// Search.
|
||||||
|
false,
|
||||||
|
// Case.
|
||||||
|
'lower',
|
||||||
|
// NoACL.
|
||||||
|
false,
|
||||||
|
// ChildGroups.
|
||||||
|
false,
|
||||||
|
// Serialized.
|
||||||
|
false,
|
||||||
|
// Separator.
|
||||||
|
'|',
|
||||||
|
// Add_alert_bulk_op.
|
||||||
|
false,
|
||||||
|
// Force_serialized.
|
||||||
|
false,
|
||||||
|
// Meta_fields.
|
||||||
|
($data['mMetaFields'] ?? is_metaconsole())
|
||||||
|
);
|
||||||
|
|
||||||
|
if ((empty($agents)) === true || $agents == -1) {
|
||||||
|
$agents = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($data['mShowSelectedOtherGroups']) {
|
||||||
|
$selected_agents = explode(',', $data['mAgents']);
|
||||||
|
foreach ($selected_agents as $agent_id) {
|
||||||
|
if (!array_key_exists($agent_id, $agents)) {
|
||||||
|
$agents[$agent_id] = agents_get_alias($agent_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_metaconsole() === true) {
|
||||||
|
$output .= html_print_input(
|
||||||
|
[
|
||||||
|
'label' => __('Agents'),
|
||||||
|
'label_class' => 'font-title-font',
|
||||||
|
'type' => 'select',
|
||||||
|
'fields' => $agents,
|
||||||
|
'name' => 'filtered-module-agents-'.$uniqId,
|
||||||
|
'selected' => explode(',', $data['mAgents']),
|
||||||
|
'return' => true,
|
||||||
|
'multiple' => true,
|
||||||
|
'style' => 'min-width: 200px;max-width:200px;',
|
||||||
|
'script' => 'fmModuleChange(\''.$uniqId.'\', '.(int) is_metaconsole().')',
|
||||||
|
'placeholder' => (isset($data['placeholderAgents']) === true) ? $data['placeholderAgents'] : '',
|
||||||
|
'truncate_size' => 300,
|
||||||
|
]
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$output .= html_print_input(
|
||||||
|
[
|
||||||
|
'label' => __('Agents'),
|
||||||
|
'label_class' => 'font-title-font',
|
||||||
|
'type' => 'select_from_sql',
|
||||||
|
'sql' => 'SELECT `id_agente`,`alias` FROM tagente',
|
||||||
|
'name' => 'filtered-module-agents-'.$uniqId,
|
||||||
|
'selected' => explode(',', $data['mAgents']),
|
||||||
|
'return' => true,
|
||||||
|
'multiple' => true,
|
||||||
|
'style' => 'min-width: 200px;max-width:200px;',
|
||||||
|
'script' => 'fmModuleChange(\''.$uniqId.'\', '.(int) is_metaconsole().')',
|
||||||
|
'placeholder' => (isset($data['placeholderAgents']) === true) ? $data['placeholderAgents'] : '',
|
||||||
|
'truncate_size' => 300,
|
||||||
|
]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (empty($data['mAgents']) === false
|
||||||
|
&& empty($data['mModuleGroup'] === false)
|
||||||
|
) {
|
||||||
|
$all_modules = get_modules_agents(
|
||||||
|
$data['mModuleGroup'],
|
||||||
|
explode(',', $data['mAgents']),
|
||||||
|
!$commonModules,
|
||||||
|
!is_metaconsole(),
|
||||||
|
is_metaconsole(),
|
||||||
|
false
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$all_modules = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
$mModules = $data['mModules'];
|
||||||
|
if (is_array($data['mModules']) === false) {
|
||||||
|
$mModules = explode(
|
||||||
|
',',
|
||||||
|
$data['mModules']
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
if (is_metaconsole()) {
|
||||||
|
foreach ($data['mModules'] as $row) {
|
||||||
|
$exp = explode('|', $row);
|
||||||
|
if (empty($exp[0]) === false) {
|
||||||
|
if (is_numeric($exp[1]) === false) {
|
||||||
|
if (is_metaconsole() === true) {
|
||||||
|
$node = new Node($exp[0]);
|
||||||
|
$node->connect();
|
||||||
|
}
|
||||||
|
|
||||||
|
$module = explode(' » ', $exp[1]);
|
||||||
|
$id_agente = db_get_sql(sprintf('SELECT id_agente FROM tagente WHERE nombre = "%s"', $module[1]));
|
||||||
|
$id_agente_modulo = db_get_sql(sprintf('SELECT id_agente_modulo FROM tagente_modulo WHERE nombre = "%s" AND id_agente = %s', $module[2], $id_agente));
|
||||||
|
$array = [
|
||||||
|
$exp[0].'|'.$id_agente_modulo => $exp[0].'|'.$id_agente_modulo,
|
||||||
|
];
|
||||||
|
$mModules = array_merge($mModules, $array);
|
||||||
|
if (is_metaconsole() === true) {
|
||||||
|
$node->disconnect();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = [];
|
||||||
|
// Clean double safe input.
|
||||||
|
foreach ($mModules as $name) {
|
||||||
|
$result[] = io_safe_output($name);
|
||||||
|
}
|
||||||
|
|
||||||
|
$output .= html_print_input(
|
||||||
|
[
|
||||||
|
'label' => __('Modules'),
|
||||||
|
'label_class' => 'font-title-font',
|
||||||
|
'type' => 'select',
|
||||||
|
'fields' => $all_modules,
|
||||||
|
'name' => 'filtered-module-modules-'.$uniqId,
|
||||||
|
'selected' => $result,
|
||||||
|
'return' => true,
|
||||||
|
'multiple' => true,
|
||||||
|
'style' => 'max-width:98%;',
|
||||||
|
'input_class' => 'flex-colum-center-important',
|
||||||
|
'truncate_size' => 300,
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
$output .= '</div>';
|
||||||
|
if ($data['return'] === false) {
|
||||||
|
echo $output;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prints an array of fields in a popup menu of a form based on a SQL query.
|
* Prints an array of fields in a popup menu of a form based on a SQL query.
|
||||||
* The first and second columns of the query will be used.
|
* The first and second columns of the query will be used.
|
||||||
@ -1896,6 +2191,7 @@ function html_print_select_from_sql(
|
|||||||
$class='',
|
$class='',
|
||||||
$required=false,
|
$required=false,
|
||||||
$placeholder='',
|
$placeholder='',
|
||||||
|
$title=false,
|
||||||
) {
|
) {
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
@ -1943,7 +2239,8 @@ function html_print_select_from_sql(
|
|||||||
'',
|
'',
|
||||||
false,
|
false,
|
||||||
null,
|
null,
|
||||||
$placeholder
|
$placeholder,
|
||||||
|
$title
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2290,7 +2587,7 @@ function html_print_extended_select_for_time(
|
|||||||
|
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
|
|
||||||
echo '<div id="'.$uniq_name.'_manual" class="w100p inline_flex">';
|
echo '<div id="'.$uniq_name.'_manual" class="inline_flex">';
|
||||||
html_print_input_text($uniq_name.'_text', $selected, '', $size, 255, false, $readonly, false, '', $class, $script_input);
|
html_print_input_text($uniq_name.'_text', $selected, '', $size, 255, false, $readonly, false, '', $class, $script_input);
|
||||||
|
|
||||||
html_print_input_hidden($name, $selected, false, $uniq_name);
|
html_print_input_hidden($name, $selected, false, $uniq_name);
|
||||||
@ -2317,7 +2614,7 @@ function html_print_extended_select_for_time(
|
|||||||
false,
|
false,
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
echo ' <a href="javascript:">'.html_print_image(
|
echo '  <a href="javascript:">'.html_print_image(
|
||||||
'images/logs@svg.svg',
|
'images/logs@svg.svg',
|
||||||
true,
|
true,
|
||||||
[
|
[
|
||||||
@ -2358,6 +2655,174 @@ function html_print_extended_select_for_time(
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Render agent/module interval-specific time selection set of inputs
|
||||||
|
* from html_print_extended_select_for_time with additional structure and
|
||||||
|
* behavior associated (establishes a limit of at least 60 seconds to be
|
||||||
|
* selected and displays notice when this limit is actively selected).
|
||||||
|
*
|
||||||
|
* @param string $name Select form name.
|
||||||
|
* @param mixed $selected Current selected value. Can be a single value or an array of selected values (in combination with multiple).
|
||||||
|
* @param string $script Javascript onChange (select) code.
|
||||||
|
* @param string $nothing Label when nothing is selected.
|
||||||
|
* @param mixed $nothing_value Value when nothing is selected.
|
||||||
|
* @param integer $size Size of the input.
|
||||||
|
* @param boolean $return Whether to return an output string or echo now (optional, echo by default).
|
||||||
|
* @param boolean $select_style Wherter to assign to combo a unique name (to have more than one on same page, like dashboard).
|
||||||
|
* @param boolean $unique_name Uunique name value.
|
||||||
|
* @param string $class Class value.
|
||||||
|
* @param boolean $readonly Readonly value.
|
||||||
|
* @param string $custom_fields Custom fields value.
|
||||||
|
* @param string $style_icon Style icon value.
|
||||||
|
* @param boolean $no_change No change value.
|
||||||
|
* @param boolean $allow_zero Allow the use of the value zero.
|
||||||
|
|
||||||
|
* @return string HTML code if return parameter is true.
|
||||||
|
*/
|
||||||
|
function html_print_select_agentmodule_interval(
|
||||||
|
$name,
|
||||||
|
$selected='',
|
||||||
|
$script='',
|
||||||
|
$nothing='',
|
||||||
|
$nothing_value='0',
|
||||||
|
$size=false,
|
||||||
|
$return=false,
|
||||||
|
$select_style=false,
|
||||||
|
$unique_name=true,
|
||||||
|
$class='',
|
||||||
|
$readonly=false,
|
||||||
|
$custom_fields=false,
|
||||||
|
$style_icon='',
|
||||||
|
$no_change=false,
|
||||||
|
$allow_zero=0,
|
||||||
|
$units=null,
|
||||||
|
$script_input=''
|
||||||
|
) {
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
include_once $config['homedir'].'/include/functions_clippy.php';
|
||||||
|
|
||||||
|
$output = '<div style="display: inline-flex;">';
|
||||||
|
$output .= html_print_extended_select_for_time(
|
||||||
|
$name,
|
||||||
|
$selected,
|
||||||
|
$script,
|
||||||
|
$nothing,
|
||||||
|
$nothing_value,
|
||||||
|
$size,
|
||||||
|
$return,
|
||||||
|
$select_style,
|
||||||
|
$unique_name,
|
||||||
|
$class,
|
||||||
|
$readonly
|
||||||
|
);
|
||||||
|
|
||||||
|
$unique_id = '';
|
||||||
|
|
||||||
|
if ($unique_name === true) {
|
||||||
|
$pattern = '/'.$name.'([a-fA-F0-9]+)_default/';
|
||||||
|
|
||||||
|
if (preg_match($pattern, $output, $matches)) {
|
||||||
|
// Obtain the unique ID of the generated input.
|
||||||
|
$unique_id = $matches[1];
|
||||||
|
$name .= $unique_id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$output .= html_print_div(
|
||||||
|
[
|
||||||
|
'id' => 'agent_module_interval_clippy'.$unique_id,
|
||||||
|
'class' => 'invisible flex align-self-center',
|
||||||
|
'content' => clippy_context_help('agent_module_interval'),
|
||||||
|
],
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
|
$output .= "<script type='text/javascript'>
|
||||||
|
$(document).ready (function () {
|
||||||
|
// Trigger first check.
|
||||||
|
$('#text-".$name."_text').trigger('change');
|
||||||
|
|
||||||
|
$('#text-".$name."_text').on('keyup change', function() {
|
||||||
|
var unit_multiplier = parseInt($('#".$name."_units').val());
|
||||||
|
var numeric_value = parseInt($(this).val());
|
||||||
|
|
||||||
|
if (unit_multiplier <= 0 || numeric_value <= 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var curr_secs = numeric_value * unit_multiplier;
|
||||||
|
|
||||||
|
if (curr_secs === 60) {
|
||||||
|
$('#agent_module_interval_clippy".$unique_id."').show();
|
||||||
|
} else {
|
||||||
|
$('#agent_module_interval_clippy".$unique_id."').hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.".$name."_toggler').on('click', function() {
|
||||||
|
if ($('#".$name."_default').css('display') != 'none') {
|
||||||
|
$('#agent_module_interval_clippy".$unique_id."').hide();
|
||||||
|
} else {
|
||||||
|
$('#text-".$name."_text').trigger('change');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#".$name."_units').on('input change', function() {
|
||||||
|
var numeric_value = parseInt($('#text-".$name."_text').val());
|
||||||
|
var unit_multiplier = parseInt($(this).val());
|
||||||
|
|
||||||
|
if (unit_multiplier <= 0 || numeric_value <= 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var curr_secs = numeric_value * unit_multiplier;
|
||||||
|
|
||||||
|
if (curr_secs== 60) {
|
||||||
|
$('#agent_module_interval_clippy".$unique_id."').show();
|
||||||
|
} else {
|
||||||
|
$('#agent_module_interval_clippy".$unique_id."').hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#text-".$name."_text').on('change', function() {
|
||||||
|
checkMinValue($(this));
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#".$name."_units').on('input change', function() {
|
||||||
|
checkMinValue($('#text-".$name."_text'));
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
function checkMinValue(that) {
|
||||||
|
if (isNaN(that.val()) === true) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var unit_multiplier = parseInt($('#".$name."_units').val());
|
||||||
|
var numeric_value = parseInt(that.val());
|
||||||
|
|
||||||
|
if (unit_multiplier <= 0 || numeric_value <= 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var curr_secs = numeric_value * unit_multiplier;
|
||||||
|
|
||||||
|
if (curr_secs < 60) {
|
||||||
|
// Override value to minimum limited seconds (60).
|
||||||
|
that
|
||||||
|
.val((60 / unit_multiplier))
|
||||||
|
.trigger('change');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>";
|
||||||
|
$output .= '</div>';
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Print selects to configure the cron of a module.
|
* Print selects to configure the cron of a module.
|
||||||
*
|
*
|
||||||
@ -4133,6 +4598,10 @@ function html_print_table(&$table, $return=false)
|
|||||||
$headStyle = '';
|
$headStyle = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isset($table->headStyle[$heading])) {
|
||||||
|
$headStyle = ' style = "'.$table->headStyle[$heading].'" ';
|
||||||
|
}
|
||||||
|
|
||||||
$output .= '<th class="'.$table->headclass[$key].'" '.$headColspan.$headStyle.' scope="col">'.$heading.'</th>';
|
$output .= '<th class="'.$table->headclass[$key].'" '.$headColspan.$headStyle.' scope="col">'.$heading.'</th>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5723,6 +6192,7 @@ function html_print_input($data, $wrapper='div', $input_only=false)
|
|||||||
((isset($data['class']) === true) ? $data['class'] : ''),
|
((isset($data['class']) === true) ? $data['class'] : ''),
|
||||||
((isset($data['required']) === true) ? $data['required'] : false),
|
((isset($data['required']) === true) ? $data['required'] : false),
|
||||||
((isset($data['placeholder']) === true) ? $data['placeholder'] : null),
|
((isset($data['placeholder']) === true) ? $data['placeholder'] : null),
|
||||||
|
((isset($data['title']) === true) ? $data['title'] : false),
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -6108,6 +6578,10 @@ function html_print_input($data, $wrapper='div', $input_only=false)
|
|||||||
$output .= html_print_select_multiple_modules_filtered($data);
|
$output .= html_print_select_multiple_modules_filtered($data);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'select_multiple_modules_filtered_formated':
|
||||||
|
$output .= html_print_select_multiple_modules_filtered_formated($data);
|
||||||
|
break;
|
||||||
|
|
||||||
case 'datalist':
|
case 'datalist':
|
||||||
$output .= html_print_datalist(
|
$output .= html_print_datalist(
|
||||||
$data['name'],
|
$data['name'],
|
||||||
|
@ -99,9 +99,9 @@ function inventory_get_data(
|
|||||||
// Prepare pagination.
|
// Prepare pagination.
|
||||||
$url = sprintf(
|
$url = sprintf(
|
||||||
'?sec=estado&sec2=operation/inventory/inventory&agent_id=%s&agent=%s&id_group=%s&export=%s&module_inventory_general_view=%s&search_string=%s&utimestamp=%s&period=%s&order_by_agent=%s&submit_filter=%d',
|
'?sec=estado&sec2=operation/inventory/inventory&agent_id=%s&agent=%s&id_group=%s&export=%s&module_inventory_general_view=%s&search_string=%s&utimestamp=%s&period=%s&order_by_agent=%s&submit_filter=%d',
|
||||||
$pagination_url_parameters['inventory_id_agent'],
|
(isset($pagination_url_parameters['inventory_id_agent']) ?? ''),
|
||||||
$pagination_url_parameters['inventory_agent'],
|
(isset($pagination_url_parameters['inventory_agent']) ?? ''),
|
||||||
$pagination_url_parameters['inventory_id_group'],
|
(isset($pagination_url_parameters['inventory_id_group']) ?? ''),
|
||||||
$export_csv,
|
$export_csv,
|
||||||
$inventory_module_name,
|
$inventory_module_name,
|
||||||
$inventory_search_string,
|
$inventory_search_string,
|
||||||
@ -709,7 +709,9 @@ function inventory_get_datatable(
|
|||||||
$inventory_search_string='',
|
$inventory_search_string='',
|
||||||
$export_csv=false,
|
$export_csv=false,
|
||||||
$return_mode=false,
|
$return_mode=false,
|
||||||
$order_by_agent=false
|
$order_by_agent=false,
|
||||||
|
$date_init=false,
|
||||||
|
$status_agent=-1,
|
||||||
) {
|
) {
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
@ -736,6 +738,10 @@ function inventory_get_datatable(
|
|||||||
array_push($where, 'tagent_module_inventory.id_agente IN ('.implode(',', $agents_ids).')');
|
array_push($where, 'tagent_module_inventory.id_agente IN ('.implode(',', $agents_ids).')');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($status_agent > -1) {
|
||||||
|
array_push($where, 'tagente.disabled ='.$status_agent);
|
||||||
|
}
|
||||||
|
|
||||||
if ($inventory_module_name[0] !== '0'
|
if ($inventory_module_name[0] !== '0'
|
||||||
&& $inventory_module_name !== ''
|
&& $inventory_module_name !== ''
|
||||||
&& $inventory_module_name !== 'all'
|
&& $inventory_module_name !== 'all'
|
||||||
@ -745,25 +751,27 @@ function inventory_get_datatable(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($inventory_search_string != '') {
|
if ($inventory_search_string != '') {
|
||||||
array_push($where, "REPLACE(tagente_datos_inventory.data, ' ', ' ') LIKE '%".$inventory_search_string."%'");
|
array_push($where, "REPLACE(tagent_module_inventory.data, ' ', ' ') LIKE '%".$inventory_search_string."%'");
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($utimestamp > 0) {
|
if ($utimestamp > 0) {
|
||||||
array_push($where, 'tagente_datos_inventory.utimestamp <= '.$utimestamp.' ');
|
array_push($where, 'tagent_module_inventory.utimestamp <= '.$utimestamp.' ');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($date_init !== false) {
|
||||||
|
array_push($where, 'tagent_module_inventory.utimestamp >= '.$date_init.' ');
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = sprintf(
|
$sql = sprintf(
|
||||||
'SELECT tmodule_inventory.*,
|
'SELECT tmodule_inventory.*,
|
||||||
tagent_module_inventory.*,
|
tagent_module_inventory.*,
|
||||||
tagente.alias as name_agent,
|
tagente.alias as name_agent,
|
||||||
tagente_datos_inventory.utimestamp as last_update,
|
tagent_module_inventory.utimestamp as last_update,
|
||||||
tagente_datos_inventory.timestamp as last_update_timestamp,
|
tagent_module_inventory.timestamp as last_update_timestamp,
|
||||||
tagente_datos_inventory.data as data_inventory
|
tagent_module_inventory.data as data_inventory
|
||||||
FROM tmodule_inventory
|
FROM tmodule_inventory
|
||||||
INNER JOIN tagent_module_inventory
|
LEFT JOIN tagent_module_inventory
|
||||||
ON tmodule_inventory.id_module_inventory = tagent_module_inventory.id_module_inventory
|
ON tmodule_inventory.id_module_inventory = tagent_module_inventory.id_module_inventory
|
||||||
INNER JOIN tagente_datos_inventory
|
|
||||||
ON tagent_module_inventory.id_agent_module_inventory = tagente_datos_inventory.id_agent_module_inventory
|
|
||||||
LEFT JOIN tagente
|
LEFT JOIN tagente
|
||||||
ON tagente.id_agente = tagent_module_inventory.id_agente
|
ON tagente.id_agente = tagent_module_inventory.id_agente
|
||||||
|
|
||||||
@ -883,12 +891,14 @@ function get_data_basic_info_sql($params, $count=false)
|
|||||||
}
|
}
|
||||||
|
|
||||||
$where = 'WHERE 1=1 ';
|
$where = 'WHERE 1=1 ';
|
||||||
if ($params['id_agent'] > 0 && $count === true) {
|
if ($params['id_agent'] > 0) {
|
||||||
$where .= sprintf(' AND id_agente = %d', $params['id_agent']);
|
|
||||||
} else if ($params['id_agent'] > 0 && $count === false) {
|
|
||||||
$where .= sprintf(' AND %s.id_agente = %d', $table, $params['id_agent']);
|
$where .= sprintf(' AND %s.id_agente = %d', $table, $params['id_agent']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($params['status'] >= 0) {
|
||||||
|
$where .= sprintf(' AND %s.disabled = %d', $table, $params['status']);
|
||||||
|
}
|
||||||
|
|
||||||
if ($params['id_group'] > 0) {
|
if ($params['id_group'] > 0) {
|
||||||
$where .= sprintf(' AND id_grupo = %d', $params['id_group']);
|
$where .= sprintf(' AND id_grupo = %d', $params['id_group']);
|
||||||
} else {
|
} else {
|
||||||
@ -909,7 +919,7 @@ function get_data_basic_info_sql($params, $count=false)
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($params['utimestamp'] > 0 && $count === false) {
|
if ($params['utimestamp'] > 0) {
|
||||||
$where .= sprintf(
|
$where .= sprintf(
|
||||||
' AND utimestamp BETWEEN %d AND %d',
|
' AND utimestamp BETWEEN %d AND %d',
|
||||||
($params['utimestamp'] - $params['period']),
|
($params['utimestamp'] - $params['period']),
|
||||||
@ -976,11 +986,9 @@ function get_data_basic_info_sql($params, $count=false)
|
|||||||
|
|
||||||
$limit_condition = '';
|
$limit_condition = '';
|
||||||
$order_condition = '';
|
$order_condition = '';
|
||||||
$fields = 'count(*)';
|
|
||||||
$innerjoin = '';
|
$innerjoin = '';
|
||||||
$groupby = '';
|
$groupby = '';
|
||||||
|
|
||||||
if ($count !== true) {
|
|
||||||
if (is_metaconsole() === true) {
|
if (is_metaconsole() === true) {
|
||||||
$fields = 'tmetaconsole_agent.*, tagent_secondary_group.*, tagent_custom_data.*';
|
$fields = 'tmetaconsole_agent.*, tagent_secondary_group.*, tagent_custom_data.*';
|
||||||
} else {
|
} else {
|
||||||
@ -990,7 +998,8 @@ function get_data_basic_info_sql($params, $count=false)
|
|||||||
$innerjoin = 'LEFT JOIN tagente_estado ON '.$table.'.id_agente = tagente_estado.id_agente ';
|
$innerjoin = 'LEFT JOIN tagente_estado ON '.$table.'.id_agente = tagente_estado.id_agente ';
|
||||||
$innerjoin .= 'LEFT JOIN tagent_secondary_group ON '.$table.'.id_agente = tagent_secondary_group.id_agent ';
|
$innerjoin .= 'LEFT JOIN tagent_secondary_group ON '.$table.'.id_agente = tagent_secondary_group.id_agent ';
|
||||||
$innerjoin .= 'LEFT JOIN tagent_custom_data ON '.$table.'.id_agente = tagent_custom_data.id_agent ';
|
$innerjoin .= 'LEFT JOIN tagent_custom_data ON '.$table.'.id_agente = tagent_custom_data.id_agent ';
|
||||||
$groupby = 'GROUP BY '.$table.'.id_agente';
|
|
||||||
|
if ($count !== true) {
|
||||||
$limit_condition = sprintf(
|
$limit_condition = sprintf(
|
||||||
'LIMIT %d, %d',
|
'LIMIT %d, %d',
|
||||||
$params['start'],
|
$params['start'],
|
||||||
@ -998,8 +1007,12 @@ function get_data_basic_info_sql($params, $count=false)
|
|||||||
);
|
);
|
||||||
|
|
||||||
$order_condition = sprintf('ORDER BY %s', $params['order']);
|
$order_condition = sprintf('ORDER BY %s', $params['order']);
|
||||||
|
} else {
|
||||||
|
$fields = 'COUNT(*)';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$groupby = 'GROUP BY '.$table.'.id_agente';
|
||||||
|
|
||||||
$sql = sprintf(
|
$sql = sprintf(
|
||||||
'SELECT %s
|
'SELECT %s
|
||||||
FROM %s
|
FROM %s
|
||||||
@ -1017,13 +1030,19 @@ function get_data_basic_info_sql($params, $count=false)
|
|||||||
$limit_condition
|
$limit_condition
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$sql_count = sprintf(
|
||||||
|
'SELECT COUNT(*)
|
||||||
|
FROM (%s) AS sub_sql',
|
||||||
|
$sql
|
||||||
|
);
|
||||||
|
|
||||||
if ($count !== true) {
|
if ($count !== true) {
|
||||||
$result = db_get_all_rows_sql($sql);
|
$result = db_get_all_rows_sql($sql);
|
||||||
if ($result === false) {
|
if ($result === false) {
|
||||||
$result = [];
|
$result = [];
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$result = db_get_sql($sql);
|
$result = db_get_sql($sql_count);
|
||||||
if ($result === false) {
|
if ($result === false) {
|
||||||
$result = 0;
|
$result = 0;
|
||||||
}
|
}
|
||||||
|
@ -90,6 +90,10 @@ function io_safe_input($value)
|
|||||||
$value = utf8_encode($value);
|
$value = utf8_encode($value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (preg_match('/<\/?script(.*?)>/', $value)) {
|
||||||
|
$value = preg_replace('/<\/?script(.*?)>/', '', $value);
|
||||||
|
}
|
||||||
|
|
||||||
$valueHtmlEncode = htmlentities(($value ?? ''), ENT_QUOTES, 'UTF-8', true);
|
$valueHtmlEncode = htmlentities(($value ?? ''), ENT_QUOTES, 'UTF-8', true);
|
||||||
|
|
||||||
// Replace the character '\' for the equivalent html entitie
|
// Replace the character '\' for the equivalent html entitie
|
||||||
|
@ -167,6 +167,8 @@ function menu_print_menu(&$menu)
|
|||||||
$sec2 = 'godmode/groups/group_list';
|
$sec2 = 'godmode/groups/group_list';
|
||||||
} else if ($sec2 === 'godmode/users/configure_profile') {
|
} else if ($sec2 === 'godmode/users/configure_profile') {
|
||||||
$sec2 = 'godmode/users/profile_list';
|
$sec2 = 'godmode/users/profile_list';
|
||||||
|
} else if ($sec2 === 'godmode/users/configure_token') {
|
||||||
|
$sec2 = 'godmode/users/token_list';
|
||||||
} else {
|
} else {
|
||||||
$sec2 = (string) get_parameter('sec2');
|
$sec2 = (string) get_parameter('sec2');
|
||||||
}
|
}
|
||||||
|