Merge branch 'develop' into ent-13035-cambiar-comportamiento-del-mecanismo-de-loginhash-meta

This commit is contained in:
Daniel Cebrian 2024-04-15 09:54:30 +02:00
commit 8d9a89a6a8
417 changed files with 7696 additions and 2633 deletions

View File

@ -528,23 +528,6 @@ ServerTokens Prod
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
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
@ -691,16 +674,6 @@ EO_LRA
chmod 0644 /etc/logrotate.d/pandora_server
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
systemctl enable pandora_server --now &>> $LOGFILE
execute_cmd "systemctl start pandora_server" "Starting Pandora FMS Server"

View File

@ -394,8 +394,8 @@ console_dependencies=" \
mod_ssl \
libzstd \
openldap-clients \
https://firefly.pandorafms.com/centos8/chromium-110.0.5481.177-1.el7.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-122.0.6261.128-1.el8.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/pandora_gotty-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
# 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
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
@ -813,16 +796,6 @@ EO_LRA
chmod 0644 /etc/logrotate.d/pandora_server
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
systemctl enable pandora_server --now &>> "$LOGFILE"
execute_cmd "/etc/init.d/pandora_server start" "Starting Pandora FMS Server"

View File

@ -386,8 +386,8 @@ console_dependencies=" \
mod_ssl \
libzstd \
openldap-clients \
https://firefly.pandorafms.com/centos8/chromium-110.0.5481.177-1.el7.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-122.0.6261.128-1.el8.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/pandorafms_made-0.1.0-1.el8.x86_64.rpm "
execute_cmd "dnf install -y $console_dependencies" "Installing Pandora FMS Console dependencies"

View File

@ -371,7 +371,7 @@ ln -s /usr/bin/fping /usr/sbin/fping &>> "$LOGFILE"
# Chrome
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 "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"
@ -601,6 +601,7 @@ EOF_PARAM
a2enmod ssl &>> "$LOGFILE"
a2enmod headers &>> "$LOGFILE"
a2enmod rewrite &>> "$LOGFILE"
a2enconf ssl-params &>> "$LOGFILE"
a2ensite default-ssl &>> "$LOGFILE"
a2enconf ssl-params &>> "$LOGFILE"
@ -648,17 +649,6 @@ ServerTokens Prod
</Directory>
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
chmod 600 $PANDORA_CONSOLE/include/config.php &>> "$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_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
execute_cmd "/etc/init.d/pandora_server start" "Starting Pandora FMS Server"
systemctl enable pandora_server &>> "$LOGFILE"

View File

@ -234,16 +234,6 @@ module_description Number of cron task files
module_unit files
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.
#module_begin
#module_plugin /usr/share/pandora_agent/plugins/pandora_hardening -t 150
@ -316,9 +306,9 @@ module_plugin pandora_df
# Extraction module example
#module_begin
#module_name Collector
#module_description Logs extraction module
#module_name Syslog
#module_description Gets all logs from system messages
#module_type log
#module_regexp /var/log/logfile.log
#module_regexp /var/log/messages
#module_pattern .*
#module_end

View File

@ -354,11 +354,11 @@ module_plugin cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\df.vbs"
#module_description Postcondition test module
#module_end
# Example of collector module
# Logs extraction
#module_begin
#module_name Collector
#module_description Logs extraction module
#module_name Syslog
#module_description Gets all logs from system messages
#module_type log
#module_regexp /var/log/logfile.log
#module_regexp C:\server\logs\messages
#module_pattern .*
#module_end

View File

@ -1,6 +1,9 @@
# -*- coding: utf-8 -*-
import wmi, sys, winreg, os, subprocess, json, re
from datetime import datetime, timedelta
import argparse
import configparser
## Define modules
modules=[]
@ -333,22 +336,19 @@ def check_password_enforcement():
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:
# Run the auditpol command to check the audit policy for Logon/Logoff
cmd_command = "auditpol /get /subcategory:Logon"
result = subprocess.run(cmd_command, shell=True, capture_output=True, text=True, check=True)
last_line = result.stdout.strip().split('\n')[-1]
cmd_command = f'auditpol /get /subcategory:"{auditpol_logon_category}"'
result = subprocess.run(cmd_command, shell=True, capture_output=True, text=False, check=True)
stdout = result.stdout.decode('cp850', errors='replace')
last_line = stdout.strip().split('\n')[-1]
cleaned_line = re.sub(' +', ' ', last_line)
# Interpret the result
if "Success and Failure" in result.stdout:
if auditpol_logon_success_conf in stdout:
result = 1
elif "Aciertos y errores" in result.stdout:
result = 1
elif "No Auditing" in result.stdout:
result = 0
elif "Sin auditoría" in result.stdout:
elif auditpol_logon_noaudit_conf in stdout:
result = 0
else:
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)
return
def parse_parameter(config=None, key="", default=""):
try:
return config.get("CONF", key)
except Exception as e:
return default
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_locksreen_enables()
get_windows_update_info()
is_firewall_enabled()
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:
print_module(module, True)

View File

@ -163,26 +163,16 @@ module_end
#module_absoluteinterval 7d
#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 for inventory on the agent.
# module_plugin inventory 1 cpu ram video nic hd cdrom software
# Extraction module example
# Logs extraction
#module_begin
#module_name Collector
#module_description Logs extraction module
#module_name Syslog
#module_description Gets all logs from system messages
#module_type log
#module_regexp /var/log/logfile.log
#module_regexp /var/log/messages
#module_pattern .*
#module_end

View File

@ -378,26 +378,16 @@ module_end
#module_absoluteinterval 7d
#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 for inventory on the agent.
# module_plugin inventory 1 cpu ram video nic hd cdrom software
# Extraction module example
# Logs extraction
#module_begin
#module_name Collector
#module_description Logs extraction module
#module_name Syslog
#module_description Gets all logs from system messages
#module_type log
#module_regexp /var/log/logfile.log
#module_regexp /var/log/messages
#module_pattern .*
#module_end

View File

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

View File

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

View File

@ -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.
# 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

View File

@ -270,6 +270,9 @@ module_plugin pandora_netusage
# Service autodiscovery plugin
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.
# 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_absoluteinterval 7d
#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

View File

@ -1039,7 +1039,7 @@ my $Sem = undef;
my $ThreadSem = undef;
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
use constant DEFAULT_MAX_LOG_SIZE => 600000;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -297,6 +297,10 @@ sub parse_configuration {
$line =~ s/^\s+//;
$line =~ s/\s+$//;
if($line =~ /^$/) {
next;
}
if ($line =~ /^\[($b_ports|$b_files|$b_passwords)\]$/) {
$configuration_block = $1;
}
@ -537,7 +541,6 @@ if ($check_files) {
if ($can_check_files) {
# Check each file integrity
my @errored_files;
my @no_integrity_files;
# Create unique check files list
@ -556,8 +559,6 @@ if ($check_files) {
push @no_integrity_files, $file;
}
$integrity{$file_key} = $file_md5;
} else {
push @errored_files, $file;
}
}
@ -571,11 +572,6 @@ if ($check_files) {
$value = 0;
$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);
@ -596,10 +592,15 @@ if ($check_passwords) {
open my $shadow_fh, '<', $shadow_file;
while (my $line = <$shadow_fh>) {
chomp $line;
if($line =~ /^$/) {
next;
}
my ($username, $password_hash, @rest) = split /:/, $line;
# 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 $user_hash = crypt($username, $salt);
if ($user_hash eq $password_hash) {

View 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

View File

@ -289,14 +289,6 @@ module_plugin "%PROGRAMFILES%\Pandora_Agent\util\autodiscover.exe" --default
#module_type generic_data_string
#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
#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
#module_begin
#module_name X_Server_log
#module_description Logs extraction module
#module_name Syslog
#module_description Gets all logs from system messages
#module_type log
#module_regexp C:\server\logs\xserver.log
#module_regexp C:\server\logs\messages
#module_pattern .*
#module_end

View 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

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c58891fbd16bf80f288e0ff4751801aa02dbf4e6c914625b4d49a364c7e0b511
size 7829249
oid sha256:293dc77d39c303793a73bf83a2698c5886331f24b8abed4a40566474a64e3f60
size 7735667

View File

@ -186,7 +186,7 @@ UpgradeApplicationID
{}
Version
{240402}
{240415}
ViewReadme
{Yes}

View File

@ -30,7 +30,7 @@ using namespace Pandora;
using namespace Pandora_Strutils;
#define PATH_SIZE _MAX_PATH+1
#define PANDORA_VERSION ("7.0NG.776 Build 240402")
#define PANDORA_VERSION ("7.0NG.776 Build 240415")
string pandora_path;
string pandora_dir;
@ -53,6 +53,9 @@ Key_Value::parseLine (string str) {
string trimmedstr;
trimmedstr = trim (str);
if (trimmedstr == "") {
return;
}
/* Check if the string has " */
pos = trimmedstr.find ("\"");

View File

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

View File

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

View File

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

View File

@ -75,23 +75,19 @@ if (empty($_REQUEST) === true) {
}
// Hash login process.
if (isset($_GET['loginhash']) === true) {
$loginhash_data = get_parameter('loginhash_data', '');
$loginhash_user = str_rot13(get_parameter('loginhash_user', ''));
if ($config['loginhash_pwd'] != ''
&& $loginhash_data == md5(
$loginhash_user.io_output_password($config['loginhash_pwd'])
)
) {
db_logon($loginhash_user, $_SERVER['REMOTE_ADDR']);
$_SESSION['id_usuario'] = $loginhash_user;
$config['id_user'] = $loginhash_user;
if (isset($_POST['auth_token']) === true && (bool) $config['JWT_signature'] !== false) {
include_once $config['homedir'].'/include/class/JWTRepository.class.php';
$jwt = new JWTRepository($config['JWT_signature']);
if ($jwt->setToken($_POST['auth_token']) && $jwt->validate()) {
$id_user = $jwt->payload()->get('id_user');
db_logon($id_user, $_SERVER['REMOTE_ADDR']);
$_SESSION['id_usuario'] = $id_user;
$config['id_user'] = $id_user;
} else {
include_once 'general/login_page.php';
db_pandora_audit(
AUDIT_LOG_USER_REGISTRATION,
'Loginhash failed',
'Login token failed',
'system'
);
while (ob_get_length() > 0) {

View File

@ -4675,8 +4675,9 @@
return (
"function" == typeof _ &&
"function" == typeof Symbol &&
"symbol" == typeof _("foo") &&
"symbol" == typeof Symbol("bar") && w()
"symbol" == typeof _("foo") &&
"symbol" == typeof Symbol("bar") &&
w()
);
};
},
@ -13386,7 +13387,9 @@
null != 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;
if (
(null === i &&
null !== (s = s.alternate) && (i = s.memoizedState),
null !== (s = s.alternate) &&
(i = s.memoizedState),
null !== i)
)
return i.dehydrated;
@ -21697,7 +21701,8 @@
null !== ae &&
((Z = ae),
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)
)
break;
@ -21894,9 +21899,9 @@
}
})(s, u)) &&
0 < (_ = oe(_, "onBeforeInput")).length &&
((w = new fr("onBeforeInput", "beforeinput", null, u, w)),
j.push({ event: w, listeners: _ }),
(w.data = ce));
((w = new fr("onBeforeInput", "beforeinput", null, u, w)),
j.push({ event: w, listeners: _ }),
(w.data = ce));
}
se(j, i);
});
@ -22535,8 +22540,8 @@
var U = s.alternate;
null !== U &&
(P = (U = U.updateQueue).lastBaseUpdate) !== j &&
(null === P ? (U.firstBaseUpdate = $) : (P.next = $),
(U.lastBaseUpdate = B));
(null === P ? (U.firstBaseUpdate = $) : (P.next = $),
(U.lastBaseUpdate = B));
}
if (null !== x) {
var Y = w.baseState;
@ -22675,7 +22680,8 @@
? s.shouldComponentUpdate(_, x, j)
: !i.prototype ||
!i.prototype.isPureReactComponent ||
!Ie(u, _) || !Ie(w, x);
!Ie(u, _) ||
!Ie(w, x);
}
function ph(s, i, u) {
var _ = !1,
@ -25167,11 +25173,11 @@
(s.sibling = null),
5 === s.tag &&
null !== (i = s.stateNode) &&
(delete i[gn],
delete i[yn],
delete i[vn],
delete i[_n],
delete i[wn]),
(delete i[gn],
delete i[yn],
delete i[vn],
delete i[_n],
delete i[wn]),
(s.stateNode = null),
(s.return = null),
(s.dependencies = null),
@ -25282,7 +25288,8 @@
case 15:
if (
!Po &&
null !== (_ = u.updateQueue) && null !== (_ = _.lastEffect)
null !== (_ = u.updateQueue) &&
null !== (_ = _.lastEffect)
) {
w = _ = _.next;
do {
@ -26026,7 +26033,8 @@
return !0;
})(w) &&
(2 === (i = Jk(s, _)) &&
0 !== (x = xc(s)) && ((_ = x), (i = Ok(s, x))),
0 !== (x = xc(s)) &&
((_ = x), (i = Ok(s, x))),
1 === i))
)
throw ((u = Go), Lk(s, 0), Dk(s, _), Ek(s, yt()), u);
@ -28469,7 +28477,8 @@
return (
void 0 !== this._readableState &&
void 0 !== this._writableState &&
this._readableState.destroyed && this._writableState.destroyed
this._readableState.destroyed &&
this._writableState.destroyed
);
},
set: function set(s) {
@ -29506,7 +29515,8 @@
return (
!!$.call(this, s) ||
(this === Writable &&
s && s._writableState instanceof WritableState)
s &&
s._writableState instanceof WritableState)
);
}
}))
@ -33989,7 +33999,8 @@
j = s;
if (
"object" == typeof s &&
(j = s[(_ = Object.keys(s)[0])]) && j._elem
(j = s[(_ = Object.keys(s)[0])]) &&
j._elem
)
return (
(j._elem.name = _),
@ -46937,10 +46948,11 @@
!!Jl(s) ||
(!!s &&
"object" == typeof s &&
!_isString(s) &&
(0 === s.length ||
(s.length > 0 &&
s.hasOwnProperty(0) && s.hasOwnProperty(s.length - 1))))
!_isString(s) &&
(0 === s.length ||
(s.length > 0 &&
s.hasOwnProperty(0) &&
s.hasOwnProperty(s.length - 1))))
);
});
var sc = "undefined" != typeof Symbol ? Symbol.iterator : "@@iterator";
@ -48536,10 +48548,10 @@
? !(!s || "object" != typeof s || "string" != typeof s.uri)
: ("undefined" != typeof File && s instanceof File) ||
("undefined" != typeof Blob && s instanceof Blob) ||
!!ArrayBuffer.isView(s) ||
(null !== s &&
"object" == typeof s &&
"function" == typeof s.pipe)
!!ArrayBuffer.isView(s) ||
(null !== s &&
"object" == typeof s &&
"function" == typeof s.pipe)
);
}
function isArrayOfFile(s, i) {
@ -49050,7 +49062,8 @@
"object" == typeof i &&
null !== i &&
"primitive" in i &&
"function" == typeof i.primitive && i.primitive() === s,
"function" == typeof i.primitive &&
i.primitive() === s,
hasClass = (s, i) =>
"object" == typeof i &&
null !== i &&
@ -58899,13 +58912,12 @@
const parameterEquals = (i, u) =>
!!s.isParameterElement(i) &&
!!s.isParameterElement(u) &&
!!s.isStringElement(i.name) &&
!!s.isStringElement(i.in) &&
!!s.isStringElement(u.name) &&
!!s.isStringElement(u.in) &&
serializers_value(i.name) ===
serializers_value(u.name) &&
serializers_value(i.in) === serializers_value(u.in),
!!s.isStringElement(i.name) &&
!!s.isStringElement(i.in) &&
!!s.isStringElement(u.name) &&
!!s.isStringElement(u.in) &&
serializers_value(i.name) === serializers_value(u.name) &&
serializers_value(i.in) === serializers_value(u.in),
i = [];
return {
visitor: {
@ -62689,20 +62701,18 @@
He.createElement(
"div",
{ className: "modal-ux-content" },
j
.valueSeq()
.map((j, B) =>
He.createElement(P, {
key: B,
AST: x,
definitions: j,
getComponent: u,
errSelectors: _,
authSelectors: s,
authActions: i,
specSelectors: w
})
)
j.valueSeq().map((j, B) =>
He.createElement(P, {
key: B,
AST: x,
definitions: j,
getComponent: u,
errSelectors: _,
authSelectors: s,
authActions: i,
specSelectors: w
})
)
)
)
)
@ -65124,15 +65134,13 @@
He.createElement(
"tbody",
null,
s
.entrySeq()
.map(([s, i]) =>
He.createElement(u, {
key: `${s}-${i}`,
xKey: s,
xVal: i
})
)
s.entrySeq().map(([s, i]) =>
He.createElement(u, {
key: `${s}-${i}`,
xKey: s,
xVal: i
})
)
)
)
)
@ -65560,15 +65568,13 @@
He.createElement(_e, { source: _.get("description") })
),
ie && le.size
? le
.entrySeq()
.map(([s, i]) =>
He.createElement(de, {
key: `${s}-${i}`,
xKey: s,
xVal: i
})
)
? le.entrySeq().map(([s, i]) =>
He.createElement(de, {
key: `${s}-${i}`,
xKey: s,
xVal: i
})
)
: null,
ae && _.get("content")
? He.createElement(
@ -66472,26 +66478,22 @@
")"
),
Z && et.size
? et
.entrySeq()
.map(([s, i]) =>
He.createElement(de, {
key: `${s}-${i}`,
xKey: s,
xVal: i
})
)
? et.entrySeq().map(([s, i]) =>
He.createElement(de, {
key: `${s}-${i}`,
xKey: s,
xVal: i
})
)
: null,
X && tt.size
? tt
.entrySeq()
.map(([s, i]) =>
He.createElement(de, {
key: `${s}-${i}`,
xKey: s,
xVal: i
})
)
? tt.entrySeq().map(([s, i]) =>
He.createElement(de, {
key: `${s}-${i}`,
xKey: s,
xVal: i
})
)
: null
),
He.createElement(
@ -68903,16 +68905,14 @@
He.createElement("span", { className: "brace-close" }, "}")
),
ye.size
? ye
.entrySeq()
.map(([s, i]) =>
He.createElement(Re, {
key: `${s}-${i}`,
propKey: s,
propVal: i,
propClass: "property"
})
)
? ye.entrySeq().map(([s, i]) =>
He.createElement(Re, {
key: `${s}-${i}`,
propKey: s,
propVal: i,
propClass: "property"
})
)
: null
);
}
@ -69093,28 +69093,24 @@
")"
),
ae.size
? ae
.entrySeq()
.map(([s, i]) =>
He.createElement(de, {
key: `${s}-${i}`,
propKey: s,
propVal: i,
propClass: eI
})
)
? ae.entrySeq().map(([s, i]) =>
He.createElement(de, {
key: `${s}-${i}`,
propKey: s,
propVal: i,
propClass: eI
})
)
: null,
P && ee.size
? ee
.entrySeq()
.map(([s, i]) =>
He.createElement(de, {
key: `${s}-${i}`,
propKey: s,
propVal: i,
propClass: eI
})
)
? ee.entrySeq().map(([s, i]) =>
He.createElement(de, {
key: `${s}-${i}`,
propKey: s,
propVal: i,
propClass: eI
})
)
: null,
Z ? He.createElement(ce, { source: Z }) : null,
ie &&
@ -69448,12 +69444,13 @@
return (
!(s >= 55296 && s <= 57343) &&
!(s >= 64976 && s <= 65007) &&
65535 != (65535 & s) &&
65534 != (65535 & s) &&
!(s >= 0 && s <= 8) &&
11 !== s &&
!(s >= 14 && s <= 31) &&
!(s >= 127 && s <= 159) && !(s > 1114111)
65535 != (65535 & s) &&
65534 != (65535 & s) &&
!(s >= 0 && s <= 8) &&
11 !== s &&
!(s >= 14 && s <= 31) &&
!(s >= 127 && s <= 159) &&
!(s > 1114111)
);
}
function fromCodePoint(s) {
@ -71014,37 +71011,37 @@
return (
P !== $ + 2 &&
!(P + 1 >= U || 58 !== s.src.charCodeAt(++P)) &&
(_ ||
(P++,
s.env.footnotes || (s.env.footnotes = {}),
s.env.footnotes.refs || (s.env.footnotes.refs = {}),
(B = s.src.slice($ + 2, P - 2)),
(s.env.footnotes.refs[":" + B] = -1),
s.tokens.push({
type: "footnote_reference_open",
label: B,
level: s.level++
}),
(w = s.bMarks[i]),
(x = s.tShift[i]),
(j = s.parentType),
(s.tShift[i] = s.skipSpaces(P) - P),
(s.bMarks[i] = P),
(s.blkIndent += 4),
(s.parentType = "footnote"),
s.tShift[i] < s.blkIndent &&
((s.tShift[i] += s.blkIndent),
(s.bMarks[i] -= s.blkIndent)),
s.parser.tokenize(s, i, u, !0),
(s.parentType = j),
(s.blkIndent -= 4),
(s.tShift[i] = x),
(s.bMarks[i] = w),
s.tokens.push({
type: "footnote_reference_close",
level: --s.level
})),
!0)
(_ ||
(P++,
s.env.footnotes || (s.env.footnotes = {}),
s.env.footnotes.refs || (s.env.footnotes.refs = {}),
(B = s.src.slice($ + 2, P - 2)),
(s.env.footnotes.refs[":" + B] = -1),
s.tokens.push({
type: "footnote_reference_open",
label: B,
level: s.level++
}),
(w = s.bMarks[i]),
(x = s.tShift[i]),
(j = s.parentType),
(s.tShift[i] = s.skipSpaces(P) - P),
(s.bMarks[i] = P),
(s.blkIndent += 4),
(s.parentType = "footnote"),
s.tShift[i] < s.blkIndent &&
((s.tShift[i] += s.blkIndent),
(s.bMarks[i] -= s.blkIndent)),
s.parser.tokenize(s, i, u, !0),
(s.parentType = j),
(s.blkIndent -= 4),
(s.tShift[i] = x),
(s.bMarks[i] = w),
s.tokens.push({
type: "footnote_reference_close",
level: --s.level
})),
!0)
);
},
["paragraph"]
@ -71107,32 +71104,32 @@
return (
!(j >= u) &&
!(s.tShift[j] < s.blkIndent) &&
!(s.tShift[j] - s.blkIndent > 3) &&
!((w = s.bMarks[j] + s.tShift[j]) >= (x = s.eMarks[j])) &&
(45 === (_ = s.src.charCodeAt(w)) || 61 === _) &&
((w = s.skipChars(w, _)),
!((w = s.skipSpaces(w)) < x) &&
((w = s.bMarks[i] + s.tShift[i]),
(s.line = j + 1),
s.tokens.push({
type: "heading_open",
hLevel: 61 === _ ? 1 : 2,
lines: [i, s.line],
level: s.level
}),
s.tokens.push({
type: "inline",
content: s.src.slice(w, s.eMarks[i]).trim(),
level: s.level + 1,
lines: [i, s.line - 1],
children: []
}),
s.tokens.push({
type: "heading_close",
hLevel: 61 === _ ? 1 : 2,
level: s.level
}),
!0))
!(s.tShift[j] - s.blkIndent > 3) &&
!((w = s.bMarks[j] + s.tShift[j]) >= (x = s.eMarks[j])) &&
(45 === (_ = s.src.charCodeAt(w)) || 61 === _) &&
((w = s.skipChars(w, _)),
!((w = s.skipSpaces(w)) < x) &&
((w = s.bMarks[i] + s.tShift[i]),
(s.line = j + 1),
s.tokens.push({
type: "heading_open",
hLevel: 61 === _ ? 1 : 2,
lines: [i, s.line],
level: s.level
}),
s.tokens.push({
type: "inline",
content: s.src.slice(w, s.eMarks[i]).trim(),
level: s.level + 1,
lines: [i, s.line - 1],
children: []
}),
s.tokens.push({
type: "heading_close",
hLevel: 61 === _ ? 1 : 2,
level: s.level
}),
!0))
);
}
],
@ -72276,31 +72273,31 @@
return (
!(P + 2 >= j) &&
94 === s.src.charCodeAt(P) &&
91 === s.src.charCodeAt(P + 1) &&
!(s.level >= s.options.maxNesting) &&
((u = P + 2),
!((_ = parseLinkLabel(s, P + 1)) < 0) &&
(i ||
(s.env.footnotes || (s.env.footnotes = {}),
s.env.footnotes.list || (s.env.footnotes.list = []),
(w = s.env.footnotes.list.length),
(s.pos = u),
(s.posMax = _),
s.push({
type: "footnote_ref",
id: w,
level: s.level
}),
s.linkLevel++,
(x = s.tokens.length),
s.parser.tokenize(s),
(s.env.footnotes.list[w] = {
tokens: s.tokens.splice(x)
}),
s.linkLevel--),
(s.pos = _ + 1),
(s.posMax = j),
!0))
91 === s.src.charCodeAt(P + 1) &&
!(s.level >= s.options.maxNesting) &&
((u = P + 2),
!((_ = parseLinkLabel(s, P + 1)) < 0) &&
(i ||
(s.env.footnotes || (s.env.footnotes = {}),
s.env.footnotes.list || (s.env.footnotes.list = []),
(w = s.env.footnotes.list.length),
(s.pos = u),
(s.posMax = _),
s.push({
type: "footnote_ref",
id: w,
level: s.level
}),
s.linkLevel++,
(x = s.tokens.length),
s.parser.tokenize(s),
(s.env.footnotes.list[w] = {
tokens: s.tokens.splice(x)
}),
s.linkLevel--),
(s.pos = _ + 1),
(s.posMax = j),
!0))
);
}
],
@ -72326,27 +72323,27 @@
return (
_ !== P + 2 &&
!(_ >= j) &&
(_++,
(u = s.src.slice(P + 2, _ - 1)),
void 0 !== s.env.footnotes.refs[":" + u] &&
(i ||
(s.env.footnotes.list || (s.env.footnotes.list = []),
s.env.footnotes.refs[":" + u] < 0
? ((w = s.env.footnotes.list.length),
(s.env.footnotes.list[w] = { label: u, count: 0 }),
(s.env.footnotes.refs[":" + u] = w))
: (w = s.env.footnotes.refs[":" + u]),
(x = s.env.footnotes.list[w].count),
s.env.footnotes.list[w].count++,
s.push({
type: "footnote_ref",
id: w,
subId: x,
level: s.level
})),
(s.pos = _),
(s.posMax = j),
!0))
(_++,
(u = s.src.slice(P + 2, _ - 1)),
void 0 !== s.env.footnotes.refs[":" + u] &&
(i ||
(s.env.footnotes.list || (s.env.footnotes.list = []),
s.env.footnotes.refs[":" + u] < 0
? ((w = s.env.footnotes.list.length),
(s.env.footnotes.list[w] = { label: u, count: 0 }),
(s.env.footnotes.refs[":" + u] = w))
: (w = s.env.footnotes.refs[":" + u]),
(x = s.env.footnotes.list[w].count),
s.env.footnotes.list[w].count++,
s.push({
type: "footnote_ref",
id: w,
subId: x,
level: s.level
})),
(s.pos = _),
(s.posMax = j),
!0))
);
}
],
@ -72362,41 +72359,41 @@
return (
60 === s.src.charCodeAt(P) &&
!((u = s.src.slice(P)).indexOf(">") < 0) &&
((_ = u.match(NI))
? !(II.indexOf(_[1].toLowerCase()) < 0) &&
((j = normalizeLink((x = _[0].slice(1, -1)))),
!!s.parser.validateLink(x) &&
(i ||
(s.push({
type: "link_open",
href: j,
level: s.level
}),
s.push({
type: "text",
content: x,
level: s.level + 1
}),
s.push({ type: "link_close", level: s.level })),
(s.pos += _[0].length),
!0))
: !!(w = u.match(PI)) &&
((j = normalizeLink("mailto:" + (x = w[0].slice(1, -1)))),
!!s.parser.validateLink(j) &&
(i ||
(s.push({
type: "link_open",
href: j,
level: s.level
}),
s.push({
type: "text",
content: x,
level: s.level + 1
}),
s.push({ type: "link_close", level: s.level })),
(s.pos += w[0].length),
!0)))
((_ = u.match(NI))
? !(II.indexOf(_[1].toLowerCase()) < 0) &&
((j = normalizeLink((x = _[0].slice(1, -1)))),
!!s.parser.validateLink(x) &&
(i ||
(s.push({
type: "link_open",
href: j,
level: s.level
}),
s.push({
type: "text",
content: x,
level: s.level + 1
}),
s.push({ type: "link_close", level: s.level })),
(s.pos += _[0].length),
!0))
: !!(w = u.match(PI)) &&
((j = normalizeLink("mailto:" + (x = w[0].slice(1, -1)))),
!!s.parser.validateLink(j) &&
(i ||
(s.push({
type: "link_open",
href: j,
level: s.level
}),
s.push({
type: "text",
content: x,
level: s.level + 1
}),
s.push({ type: "link_close", level: s.level })),
(s.pos += w[0].length),
!0)))
);
}
],
@ -72420,15 +72417,15 @@
return i >= 97 && i <= 122;
})(u)
) &&
!!(_ = s.src.slice(x).match(DI)) &&
(i ||
s.push({
type: "htmltag",
content: s.src.slice(x, x + _[0].length),
level: s.level
}),
(s.pos += _[0].length),
!0))
!!(_ = s.src.slice(x).match(DI)) &&
(i ||
s.push({
type: "htmltag",
content: s.src.slice(x, x + _[0].length),
level: s.level
}),
(s.pos += _[0].length),
!0))
);
}
],
@ -73554,7 +73551,7 @@
return (
!(!s || !i) &&
!this.hasFullProtocolRegex.test(i) &&
!this.hasWordCharAfterProtocolRegex.test(s)
!this.hasWordCharAfterProtocolRegex.test(s)
);
}),
(UrlMatchValidator.hasFullProtocolRegex = /^[A-Za-z][-.+A-Za-z0-9]*:\/\//),
@ -75977,19 +75974,17 @@
? He.createElement(
"select",
{ "data-variable": s, onChange: $ },
u
.get("enum")
.map(u =>
He.createElement(
"option",
{
selected: u === w(i, s),
key: u,
value: u
},
u
)
u.get("enum").map(u =>
He.createElement(
"option",
{
selected: u === w(i, s),
key: u,
value: u
},
u
)
)
)
: He.createElement("input", {
type: "text",
@ -80766,7 +80761,8 @@
const { examples: i, example: u, default: _ } = s;
return (
!!(Array.isArray(i) && i.length >= 1) ||
void 0 !== _ || void 0 !== u
void 0 !== _ ||
void 0 !== u
);
},
extractExample = s => {

View File

@ -2323,7 +2323,8 @@ var ve = {
return (
void 0 !== this._readableState &&
void 0 !== this._writableState &&
this._readableState.destroyed && this._writableState.destroyed
this._readableState.destroyed &&
this._writableState.destroyed
);
},
set: function set(e) {
@ -3336,7 +3337,8 @@ var ve = {
return (
!!c.call(this, e) ||
(this === Writable &&
e && e._writableState instanceof WritableState)
e &&
e._writableState instanceof WritableState)
);
}
}))
@ -10833,20 +10835,18 @@ var we = {};
Ke.default.createElement(
"div",
{ className: "modal-ux-content" },
s
.valueSeq()
.map((s, i) =>
Ke.default.createElement(l, {
key: i,
AST: o,
definitions: s,
getComponent: r,
errSelectors: n,
authSelectors: e,
authActions: t,
specSelectors: a
})
)
s.valueSeq().map((s, i) =>
Ke.default.createElement(l, {
key: i,
AST: o,
definitions: s,
getComponent: r,
errSelectors: n,
authSelectors: e,
authActions: t,
specSelectors: a
})
)
)
)
)
@ -13194,15 +13194,13 @@ var we = {};
Ke.default.createElement(
"tbody",
null,
e
.entrySeq()
.map(([e, t]) =>
Ke.default.createElement(r, {
key: `${e}-${t}`,
xKey: e,
xVal: t
})
)
e.entrySeq().map(([e, t]) =>
Ke.default.createElement(r, {
key: `${e}-${t}`,
xKey: e,
xVal: t
})
)
)
)
)
@ -13627,15 +13625,13 @@ var we = {};
Ke.default.createElement(x, { source: n.get("description") })
),
g && y.size
? y
.entrySeq()
.map(([e, t]) =>
Ke.default.createElement(v, {
key: `${e}-${t}`,
xKey: e,
xVal: t
})
)
? y.entrySeq().map(([e, t]) =>
Ke.default.createElement(v, {
key: `${e}-${t}`,
xKey: e,
xVal: t
})
)
: null,
h && n.get("content")
? Ke.default.createElement(
@ -16688,16 +16684,14 @@ var we = {};
Ke.default.createElement("span", { className: "brace-close" }, "}")
),
w.size
? w
.entrySeq()
.map(([e, t]) =>
Ke.default.createElement(R, {
key: `${e}-${t}`,
propKey: e,
propVal: t,
propClass: "property"
})
)
? w.entrySeq().map(([e, t]) =>
Ke.default.createElement(R, {
key: `${e}-${t}`,
propKey: e,
propVal: t,
propClass: "property"
})
)
: null
);
}
@ -16748,16 +16742,14 @@ var we = {};
{ title: _, expanded: n <= a, collapsedContent: "[...]" },
"[",
d.size
? d
.entrySeq()
.map(([e, t]) =>
Ke.default.createElement(y, {
key: `${e}-${t}`,
propKey: e,
propVal: t,
propClass: "property"
})
)
? d.entrySeq().map(([e, t]) =>
Ke.default.createElement(y, {
key: `${e}-${t}`,
propKey: e,
propVal: t,
propClass: "property"
})
)
: null,
i
? Ke.default.createElement(f, { source: i })
@ -16874,28 +16866,24 @@ var we = {};
")"
),
h.size
? h
.entrySeq()
.map(([e, t]) =>
Ke.default.createElement(v, {
key: `${e}-${t}`,
propKey: e,
propVal: t,
propClass: ka
})
)
? h.entrySeq().map(([e, t]) =>
Ke.default.createElement(v, {
key: `${e}-${t}`,
propKey: e,
propVal: t,
propClass: ka
})
)
: null,
l && f.size
? f
.entrySeq()
.map(([e, t]) =>
Ke.default.createElement(v, {
key: `${e}-${t}`,
propKey: e,
propVal: t,
propClass: ka
})
)
? f.entrySeq().map(([e, t]) =>
Ke.default.createElement(v, {
key: `${e}-${t}`,
propKey: e,
propVal: t,
propClass: ka
})
)
: null,
m ? Ke.default.createElement(S, { source: m }) : null,
g &&
@ -18263,15 +18251,13 @@ var we = {};
")"
),
x && c.size
? c
.entrySeq()
.map(([e, r]) =>
Ke.default.createElement(t, {
key: `${e}-${r}`,
xKey: e,
xVal: r
})
)
? c.entrySeq().map(([e, r]) =>
Ke.default.createElement(t, {
key: `${e}-${r}`,
xKey: e,
xVal: r
})
)
: null
),
Ke.default.createElement(
@ -20384,10 +20370,12 @@ var we = {};
Ke.default.createElement(
"ul",
{
className: (0,
ha.default)("json-schema-2020-12-keyword__children", {
"json-schema-2020-12-keyword__children--collapsed": !c
})
className: (0, ha.default)(
"json-schema-2020-12-keyword__children",
{
"json-schema-2020-12-keyword__children--collapsed": !c
}
)
},
c &&
Ke.default.createElement(
@ -20577,10 +20565,12 @@ var we = {};
Ke.default.createElement(
"ul",
{
className: (0,
ha.default)("json-schema-2020-12-keyword__children", {
"json-schema-2020-12-keyword__children--collapsed": !c
})
className: (0, ha.default)(
"json-schema-2020-12-keyword__children",
{
"json-schema-2020-12-keyword__children--collapsed": !c
}
)
},
c &&
Ke.default.createElement(
@ -20661,10 +20651,12 @@ var we = {};
Ke.default.createElement(
"ul",
{
className: (0,
ha.default)("json-schema-2020-12-keyword__children", {
"json-schema-2020-12-keyword__children--collapsed": !c
})
className: (0, ha.default)(
"json-schema-2020-12-keyword__children",
{
"json-schema-2020-12-keyword__children--collapsed": !c
}
)
},
c &&
Ke.default.createElement(
@ -21224,10 +21216,12 @@ var we = {};
"li",
{
key: e,
className: (0,
ha.default)("json-schema-2020-12-$vocabulary-uri", {
"json-schema-2020-12-$vocabulary-uri--disabled": !t
})
className: (0, ha.default)(
"json-schema-2020-12-$vocabulary-uri",
{
"json-schema-2020-12-$vocabulary-uri--disabled": !t
}
)
},
Ke.default.createElement(
"span",
@ -21422,10 +21416,12 @@ var we = {};
Ke.default.createElement(
"ul",
{
className: (0,
ha.default)("json-schema-2020-12-keyword__children", {
"json-schema-2020-12-keyword__children--collapsed": !n
})
className: (0, ha.default)(
"json-schema-2020-12-keyword__children",
{
"json-schema-2020-12-keyword__children--collapsed": !n
}
)
},
n &&
Ke.default.createElement(
@ -21512,10 +21508,12 @@ var we = {};
Ke.default.createElement(
"ul",
{
className: (0,
ha.default)("json-schema-2020-12-keyword__children", {
"json-schema-2020-12-keyword__children--collapsed": !a
})
className: (0, ha.default)(
"json-schema-2020-12-keyword__children",
{
"json-schema-2020-12-keyword__children--collapsed": !a
}
)
},
a &&
Ke.default.createElement(
@ -21583,10 +21581,12 @@ var we = {};
Ke.default.createElement(
"ul",
{
className: (0,
ha.default)("json-schema-2020-12-keyword__children", {
"json-schema-2020-12-keyword__children--collapsed": !a
})
className: (0, ha.default)(
"json-schema-2020-12-keyword__children",
{
"json-schema-2020-12-keyword__children--collapsed": !a
}
)
},
a &&
Ke.default.createElement(
@ -21654,10 +21654,12 @@ var we = {};
Ke.default.createElement(
"ul",
{
className: (0,
ha.default)("json-schema-2020-12-keyword__children", {
"json-schema-2020-12-keyword__children--collapsed": !a
})
className: (0, ha.default)(
"json-schema-2020-12-keyword__children",
{
"json-schema-2020-12-keyword__children--collapsed": !a
}
)
},
a &&
Ke.default.createElement(
@ -21813,10 +21815,12 @@ var we = {};
Ke.default.createElement(
"ul",
{
className: (0,
ha.default)("json-schema-2020-12-keyword__children", {
"json-schema-2020-12-keyword__children--collapsed": !n
})
className: (0, ha.default)(
"json-schema-2020-12-keyword__children",
{
"json-schema-2020-12-keyword__children--collapsed": !n
}
)
},
n &&
Ke.default.createElement(
@ -21877,10 +21881,12 @@ var we = {};
Ke.default.createElement(
"ul",
{
className: (0,
ha.default)("json-schema-2020-12-keyword__children", {
"json-schema-2020-12-keyword__children--collapsed": !a
})
className: (0, ha.default)(
"json-schema-2020-12-keyword__children",
{
"json-schema-2020-12-keyword__children--collapsed": !a
}
)
},
a &&
Ke.default.createElement(

View File

@ -4587,8 +4587,9 @@
return (
"function" == typeof _ &&
"function" == typeof Symbol &&
"symbol" == typeof _("foo") &&
"symbol" == typeof Symbol("bar") && w()
"symbol" == typeof _("foo") &&
"symbol" == typeof Symbol("bar") &&
w()
);
};
},
@ -13205,7 +13206,9 @@
null != 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;
if (
(null === i &&
null !== (s = s.alternate) && (i = s.memoizedState),
null !== (s = s.alternate) &&
(i = s.memoizedState),
null !== i)
)
return i.dehydrated;
@ -21407,7 +21411,8 @@
null !== ae &&
((Z = ae),
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)
)
break;
@ -21603,9 +21608,9 @@
}
})(s, u)) &&
0 < (_ = oe(_, "onBeforeInput")).length &&
((w = new fr("onBeforeInput", "beforeinput", null, u, w)),
j.push({ event: w, listeners: _ }),
(w.data = ce));
((w = new fr("onBeforeInput", "beforeinput", null, u, w)),
j.push({ event: w, listeners: _ }),
(w.data = ce));
}
se(j, i);
});
@ -22232,8 +22237,8 @@
var U = s.alternate;
null !== U &&
(P = (U = U.updateQueue).lastBaseUpdate) !== j &&
(null === P ? (U.firstBaseUpdate = $) : (P.next = $),
(U.lastBaseUpdate = B));
(null === P ? (U.firstBaseUpdate = $) : (P.next = $),
(U.lastBaseUpdate = B));
}
if (null !== x) {
var Y = w.baseState;
@ -22372,7 +22377,8 @@
? s.shouldComponentUpdate(_, x, j)
: !i.prototype ||
!i.prototype.isPureReactComponent ||
!Ie(u, _) || !Ie(w, x);
!Ie(u, _) ||
!Ie(w, x);
}
function ph(s, i, u) {
var _ = !1,
@ -24842,11 +24848,11 @@
(s.sibling = null),
5 === s.tag &&
null !== (i = s.stateNode) &&
(delete i[gn],
delete i[yn],
delete i[vn],
delete i[_n],
delete i[wn]),
(delete i[gn],
delete i[yn],
delete i[vn],
delete i[_n],
delete i[wn]),
(s.stateNode = null),
(s.return = null),
(s.dependencies = null),
@ -24957,7 +24963,8 @@
case 15:
if (
!Po &&
null !== (_ = u.updateQueue) && null !== (_ = _.lastEffect)
null !== (_ = u.updateQueue) &&
null !== (_ = _.lastEffect)
) {
w = _ = _.next;
do {
@ -25693,7 +25700,8 @@
return !0;
})(w) &&
(2 === (i = Jk(s, _)) &&
0 !== (x = xc(s)) && ((_ = x), (i = Ok(s, x))),
0 !== (x = xc(s)) &&
((_ = x), (i = Ok(s, x))),
1 === i))
)
throw ((u = Go), Lk(s, 0), Dk(s, _), Ek(s, yt()), u);
@ -28109,7 +28117,8 @@
return (
void 0 !== this._readableState &&
void 0 !== this._writableState &&
this._readableState.destroyed && this._writableState.destroyed
this._readableState.destroyed &&
this._writableState.destroyed
);
},
set: function set(s) {
@ -29135,7 +29144,8 @@
return (
!!$.call(this, s) ||
(this === Writable &&
s && s._writableState instanceof WritableState)
s &&
s._writableState instanceof WritableState)
);
}
}))
@ -33559,7 +33569,8 @@
j = s;
if (
"object" == typeof s &&
(j = s[(_ = Object.keys(s)[0])]) && j._elem
(j = s[(_ = Object.keys(s)[0])]) &&
j._elem
)
return (
(j._elem.name = _),
@ -46143,10 +46154,11 @@
!!Jl(s) ||
(!!s &&
"object" == typeof s &&
!_isString(s) &&
(0 === s.length ||
(s.length > 0 &&
s.hasOwnProperty(0) && s.hasOwnProperty(s.length - 1))))
!_isString(s) &&
(0 === s.length ||
(s.length > 0 &&
s.hasOwnProperty(0) &&
s.hasOwnProperty(s.length - 1))))
);
});
var sc = "undefined" != typeof Symbol ? Symbol.iterator : "@@iterator";
@ -47695,10 +47707,8 @@
? !(!s || "object" != typeof s || "string" != typeof s.uri)
: ("undefined" != typeof File && s instanceof File) ||
("undefined" != typeof Blob && s instanceof Blob) ||
!!ArrayBuffer.isView(s) ||
(null !== s &&
"object" == typeof s &&
"function" == typeof s.pipe)
!!ArrayBuffer.isView(s) ||
(null !== s && "object" == typeof s && "function" == typeof s.pipe)
);
}
function isArrayOfFile(s, i) {
@ -48197,7 +48207,8 @@
"object" == typeof i &&
null !== i &&
"primitive" in i &&
"function" == typeof i.primitive && i.primitive() === s,
"function" == typeof i.primitive &&
i.primitive() === s,
hasClass = (s, i) =>
"object" == typeof i &&
null !== i &&
@ -57589,12 +57600,12 @@
const parameterEquals = (i, u) =>
!!s.isParameterElement(i) &&
!!s.isParameterElement(u) &&
!!s.isStringElement(i.name) &&
!!s.isStringElement(i.in) &&
!!s.isStringElement(u.name) &&
!!s.isStringElement(u.in) &&
serializers_value(i.name) === serializers_value(u.name) &&
serializers_value(i.in) === serializers_value(u.in),
!!s.isStringElement(i.name) &&
!!s.isStringElement(i.in) &&
!!s.isStringElement(u.name) &&
!!s.isStringElement(u.in) &&
serializers_value(i.name) === serializers_value(u.name) &&
serializers_value(i.in) === serializers_value(u.in),
i = [];
return {
visitor: {
@ -61244,20 +61255,18 @@
He.createElement(
"div",
{ className: "modal-ux-content" },
j
.valueSeq()
.map((j, B) =>
He.createElement(P, {
key: B,
AST: x,
definitions: j,
getComponent: u,
errSelectors: _,
authSelectors: s,
authActions: i,
specSelectors: w
})
)
j.valueSeq().map((j, B) =>
He.createElement(P, {
key: B,
AST: x,
definitions: j,
getComponent: u,
errSelectors: _,
authSelectors: s,
authActions: i,
specSelectors: w
})
)
)
)
)
@ -64919,26 +64928,22 @@
")"
),
Z && et.size
? et
.entrySeq()
.map(([s, i]) =>
He.createElement(de, {
key: `${s}-${i}`,
xKey: s,
xVal: i
})
)
? et.entrySeq().map(([s, i]) =>
He.createElement(de, {
key: `${s}-${i}`,
xKey: s,
xVal: i
})
)
: null,
X && tt.size
? tt
.entrySeq()
.map(([s, i]) =>
He.createElement(de, {
key: `${s}-${i}`,
xKey: s,
xVal: i
})
)
? tt.entrySeq().map(([s, i]) =>
He.createElement(de, {
key: `${s}-${i}`,
xKey: s,
xVal: i
})
)
: null
),
He.createElement(
@ -67252,16 +67257,14 @@
He.createElement("span", { className: "brace-close" }, "}")
),
ye.size
? ye
.entrySeq()
.map(([s, i]) =>
He.createElement(Re, {
key: `${s}-${i}`,
propKey: s,
propVal: i,
propClass: "property"
})
)
? ye.entrySeq().map(([s, i]) =>
He.createElement(Re, {
key: `${s}-${i}`,
propKey: s,
propVal: i,
propClass: "property"
})
)
: null
);
}
@ -67430,28 +67433,24 @@
")"
),
ae.size
? ae
.entrySeq()
.map(([s, i]) =>
He.createElement(de, {
key: `${s}-${i}`,
propKey: s,
propVal: i,
propClass: eI
})
)
? ae.entrySeq().map(([s, i]) =>
He.createElement(de, {
key: `${s}-${i}`,
propKey: s,
propVal: i,
propClass: eI
})
)
: null,
P && ee.size
? ee
.entrySeq()
.map(([s, i]) =>
He.createElement(de, {
key: `${s}-${i}`,
propKey: s,
propVal: i,
propClass: eI
})
)
? ee.entrySeq().map(([s, i]) =>
He.createElement(de, {
key: `${s}-${i}`,
propKey: s,
propVal: i,
propClass: eI
})
)
: null,
Z ? He.createElement(ce, { source: Z }) : null,
ie &&
@ -67779,12 +67778,13 @@
return (
!(s >= 55296 && s <= 57343) &&
!(s >= 64976 && s <= 65007) &&
65535 != (65535 & s) &&
65534 != (65535 & s) &&
!(s >= 0 && s <= 8) &&
11 !== s &&
!(s >= 14 && s <= 31) &&
!(s >= 127 && s <= 159) && !(s > 1114111)
65535 != (65535 & s) &&
65534 != (65535 & s) &&
!(s >= 0 && s <= 8) &&
11 !== s &&
!(s >= 14 && s <= 31) &&
!(s >= 127 && s <= 159) &&
!(s > 1114111)
);
}
function fromCodePoint(s) {
@ -69288,36 +69288,36 @@
return (
P !== $ + 2 &&
!(P + 1 >= U || 58 !== s.src.charCodeAt(++P)) &&
(_ ||
(P++,
s.env.footnotes || (s.env.footnotes = {}),
s.env.footnotes.refs || (s.env.footnotes.refs = {}),
(B = s.src.slice($ + 2, P - 2)),
(s.env.footnotes.refs[":" + B] = -1),
s.tokens.push({
type: "footnote_reference_open",
label: B,
level: s.level++
}),
(w = s.bMarks[i]),
(x = s.tShift[i]),
(j = s.parentType),
(s.tShift[i] = s.skipSpaces(P) - P),
(s.bMarks[i] = P),
(s.blkIndent += 4),
(s.parentType = "footnote"),
s.tShift[i] < s.blkIndent &&
((s.tShift[i] += s.blkIndent), (s.bMarks[i] -= s.blkIndent)),
s.parser.tokenize(s, i, u, !0),
(s.parentType = j),
(s.blkIndent -= 4),
(s.tShift[i] = x),
(s.bMarks[i] = w),
s.tokens.push({
type: "footnote_reference_close",
level: --s.level
})),
!0)
(_ ||
(P++,
s.env.footnotes || (s.env.footnotes = {}),
s.env.footnotes.refs || (s.env.footnotes.refs = {}),
(B = s.src.slice($ + 2, P - 2)),
(s.env.footnotes.refs[":" + B] = -1),
s.tokens.push({
type: "footnote_reference_open",
label: B,
level: s.level++
}),
(w = s.bMarks[i]),
(x = s.tShift[i]),
(j = s.parentType),
(s.tShift[i] = s.skipSpaces(P) - P),
(s.bMarks[i] = P),
(s.blkIndent += 4),
(s.parentType = "footnote"),
s.tShift[i] < s.blkIndent &&
((s.tShift[i] += s.blkIndent), (s.bMarks[i] -= s.blkIndent)),
s.parser.tokenize(s, i, u, !0),
(s.parentType = j),
(s.blkIndent -= 4),
(s.tShift[i] = x),
(s.bMarks[i] = w),
s.tokens.push({
type: "footnote_reference_close",
level: --s.level
})),
!0)
);
},
["paragraph"]
@ -69376,32 +69376,32 @@
return (
!(j >= u) &&
!(s.tShift[j] < s.blkIndent) &&
!(s.tShift[j] - s.blkIndent > 3) &&
!((w = s.bMarks[j] + s.tShift[j]) >= (x = s.eMarks[j])) &&
(45 === (_ = s.src.charCodeAt(w)) || 61 === _) &&
((w = s.skipChars(w, _)),
!((w = s.skipSpaces(w)) < x) &&
((w = s.bMarks[i] + s.tShift[i]),
(s.line = j + 1),
s.tokens.push({
type: "heading_open",
hLevel: 61 === _ ? 1 : 2,
lines: [i, s.line],
level: s.level
}),
s.tokens.push({
type: "inline",
content: s.src.slice(w, s.eMarks[i]).trim(),
level: s.level + 1,
lines: [i, s.line - 1],
children: []
}),
s.tokens.push({
type: "heading_close",
hLevel: 61 === _ ? 1 : 2,
level: s.level
}),
!0))
!(s.tShift[j] - s.blkIndent > 3) &&
!((w = s.bMarks[j] + s.tShift[j]) >= (x = s.eMarks[j])) &&
(45 === (_ = s.src.charCodeAt(w)) || 61 === _) &&
((w = s.skipChars(w, _)),
!((w = s.skipSpaces(w)) < x) &&
((w = s.bMarks[i] + s.tShift[i]),
(s.line = j + 1),
s.tokens.push({
type: "heading_open",
hLevel: 61 === _ ? 1 : 2,
lines: [i, s.line],
level: s.level
}),
s.tokens.push({
type: "inline",
content: s.src.slice(w, s.eMarks[i]).trim(),
level: s.level + 1,
lines: [i, s.line - 1],
children: []
}),
s.tokens.push({
type: "heading_close",
hLevel: 61 === _ ? 1 : 2,
level: s.level
}),
!0))
);
}
],
@ -70516,27 +70516,27 @@
return (
!(P + 2 >= j) &&
94 === s.src.charCodeAt(P) &&
91 === s.src.charCodeAt(P + 1) &&
!(s.level >= s.options.maxNesting) &&
((u = P + 2),
!((_ = parseLinkLabel(s, P + 1)) < 0) &&
(i ||
(s.env.footnotes || (s.env.footnotes = {}),
s.env.footnotes.list || (s.env.footnotes.list = []),
(w = s.env.footnotes.list.length),
(s.pos = u),
(s.posMax = _),
s.push({ type: "footnote_ref", id: w, level: s.level }),
s.linkLevel++,
(x = s.tokens.length),
s.parser.tokenize(s),
(s.env.footnotes.list[w] = {
tokens: s.tokens.splice(x)
}),
s.linkLevel--),
(s.pos = _ + 1),
(s.posMax = j),
!0))
91 === s.src.charCodeAt(P + 1) &&
!(s.level >= s.options.maxNesting) &&
((u = P + 2),
!((_ = parseLinkLabel(s, P + 1)) < 0) &&
(i ||
(s.env.footnotes || (s.env.footnotes = {}),
s.env.footnotes.list || (s.env.footnotes.list = []),
(w = s.env.footnotes.list.length),
(s.pos = u),
(s.posMax = _),
s.push({ type: "footnote_ref", id: w, level: s.level }),
s.linkLevel++,
(x = s.tokens.length),
s.parser.tokenize(s),
(s.env.footnotes.list[w] = {
tokens: s.tokens.splice(x)
}),
s.linkLevel--),
(s.pos = _ + 1),
(s.posMax = j),
!0))
);
}
],
@ -70562,27 +70562,27 @@
return (
_ !== P + 2 &&
!(_ >= j) &&
(_++,
(u = s.src.slice(P + 2, _ - 1)),
void 0 !== s.env.footnotes.refs[":" + u] &&
(i ||
(s.env.footnotes.list || (s.env.footnotes.list = []),
s.env.footnotes.refs[":" + u] < 0
? ((w = s.env.footnotes.list.length),
(s.env.footnotes.list[w] = { label: u, count: 0 }),
(s.env.footnotes.refs[":" + u] = w))
: (w = s.env.footnotes.refs[":" + u]),
(x = s.env.footnotes.list[w].count),
s.env.footnotes.list[w].count++,
s.push({
type: "footnote_ref",
id: w,
subId: x,
level: s.level
})),
(s.pos = _),
(s.posMax = j),
!0))
(_++,
(u = s.src.slice(P + 2, _ - 1)),
void 0 !== s.env.footnotes.refs[":" + u] &&
(i ||
(s.env.footnotes.list || (s.env.footnotes.list = []),
s.env.footnotes.refs[":" + u] < 0
? ((w = s.env.footnotes.list.length),
(s.env.footnotes.list[w] = { label: u, count: 0 }),
(s.env.footnotes.refs[":" + u] = w))
: (w = s.env.footnotes.refs[":" + u]),
(x = s.env.footnotes.list[w].count),
s.env.footnotes.list[w].count++,
s.push({
type: "footnote_ref",
id: w,
subId: x,
level: s.level
})),
(s.pos = _),
(s.posMax = j),
!0))
);
}
],
@ -70598,25 +70598,25 @@
return (
60 === s.src.charCodeAt(P) &&
!((u = s.src.slice(P)).indexOf(">") < 0) &&
((_ = u.match(NI))
? !(II.indexOf(_[1].toLowerCase()) < 0) &&
((j = normalizeLink((x = _[0].slice(1, -1)))),
!!s.parser.validateLink(x) &&
(i ||
(s.push({ type: "link_open", href: j, level: s.level }),
s.push({ type: "text", content: x, level: s.level + 1 }),
s.push({ type: "link_close", level: s.level })),
(s.pos += _[0].length),
!0))
: !!(w = u.match(PI)) &&
((j = normalizeLink("mailto:" + (x = w[0].slice(1, -1)))),
!!s.parser.validateLink(j) &&
(i ||
(s.push({ type: "link_open", href: j, level: s.level }),
s.push({ type: "text", content: x, level: s.level + 1 }),
s.push({ type: "link_close", level: s.level })),
(s.pos += w[0].length),
!0)))
((_ = u.match(NI))
? !(II.indexOf(_[1].toLowerCase()) < 0) &&
((j = normalizeLink((x = _[0].slice(1, -1)))),
!!s.parser.validateLink(x) &&
(i ||
(s.push({ type: "link_open", href: j, level: s.level }),
s.push({ type: "text", content: x, level: s.level + 1 }),
s.push({ type: "link_close", level: s.level })),
(s.pos += _[0].length),
!0))
: !!(w = u.match(PI)) &&
((j = normalizeLink("mailto:" + (x = w[0].slice(1, -1)))),
!!s.parser.validateLink(j) &&
(i ||
(s.push({ type: "link_open", href: j, level: s.level }),
s.push({ type: "text", content: x, level: s.level + 1 }),
s.push({ type: "link_close", level: s.level })),
(s.pos += w[0].length),
!0)))
);
}
],
@ -70640,15 +70640,15 @@
return i >= 97 && i <= 122;
})(u)
) &&
!!(_ = s.src.slice(x).match(DI)) &&
(i ||
s.push({
type: "htmltag",
content: s.src.slice(x, x + _[0].length),
level: s.level
}),
(s.pos += _[0].length),
!0))
!!(_ = s.src.slice(x).match(DI)) &&
(i ||
s.push({
type: "htmltag",
content: s.src.slice(x, x + _[0].length),
level: s.level
}),
(s.pos += _[0].length),
!0))
);
}
],
@ -71740,7 +71740,7 @@
return (
!(!s || !i) &&
!this.hasFullProtocolRegex.test(i) &&
!this.hasWordCharAfterProtocolRegex.test(s)
!this.hasWordCharAfterProtocolRegex.test(s)
);
}),
(UrlMatchValidator.hasFullProtocolRegex = /^[A-Za-z][-.+A-Za-z0-9]*:\/\//),
@ -74095,19 +74095,17 @@
? He.createElement(
"select",
{ "data-variable": s, onChange: $ },
u
.get("enum")
.map(u =>
He.createElement(
"option",
{
selected: u === w(i, s),
key: u,
value: u
},
u
)
u.get("enum").map(u =>
He.createElement(
"option",
{
selected: u === w(i, s),
key: u,
value: u
},
u
)
)
)
: He.createElement("input", {
type: "text",

View File

@ -6859,7 +6859,9 @@
null != 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))
);
};
},

View File

@ -4819,20 +4819,18 @@
k().createElement(
"div",
{ className: "modal-ux-content" },
o
.valueSeq()
.map((o, c) =>
k().createElement(l, {
key: c,
AST: s,
definitions: o,
getComponent: r,
errSelectors: a,
authSelectors: e,
authActions: t,
specSelectors: n
})
)
o.valueSeq().map((o, c) =>
k().createElement(l, {
key: c,
AST: s,
definitions: o,
getComponent: r,
errSelectors: a,
authSelectors: e,
authActions: t,
specSelectors: n
})
)
)
)
)
@ -7258,15 +7256,13 @@
k().createElement(
"tbody",
null,
e
.entrySeq()
.map(([e, t]) =>
k().createElement(r, {
key: `${e}-${t}`,
xKey: e,
xVal: t
})
)
e.entrySeq().map(([e, t]) =>
k().createElement(r, {
key: `${e}-${t}`,
xKey: e,
xVal: t
})
)
)
)
)
@ -7698,15 +7694,13 @@
k().createElement(C, { source: a.get("description") })
),
y && f.size
? f
.entrySeq()
.map(([e, t]) =>
k().createElement(_, {
key: `${e}-${t}`,
xKey: e,
xVal: t
})
)
? f.entrySeq().map(([e, t]) =>
k().createElement(_, {
key: `${e}-${t}`,
xKey: e,
xVal: t
})
)
: null,
g && a.get("content")
? k().createElement(
@ -10816,16 +10810,14 @@
k().createElement("span", { className: "brace-close" }, "}")
),
w.size
? w
.entrySeq()
.map(([e, t]) =>
k().createElement(j, {
key: `${e}-${t}`,
propKey: e,
propVal: t,
propClass: "property"
})
)
? w.entrySeq().map(([e, t]) =>
k().createElement(j, {
key: `${e}-${t}`,
propKey: e,
propVal: t,
propClass: "property"
})
)
: null
);
}
@ -10882,16 +10874,14 @@
{ title: E, expanded: a <= n, collapsedContent: "[...]" },
"[",
m.size
? m
.entrySeq()
.map(([e, t]) =>
k().createElement(f, {
key: `${e}-${t}`,
propKey: e,
propVal: t,
propClass: "property"
})
)
? m.entrySeq().map(([e, t]) =>
k().createElement(f, {
key: `${e}-${t}`,
propKey: e,
propVal: t,
propClass: "property"
})
)
: null,
c
? k().createElement(h, { source: c })
@ -11008,28 +10998,24 @@
")"
),
g.size
? g
.entrySeq()
.map(([e, t]) =>
k().createElement(_, {
key: `${e}-${t}`,
propKey: e,
propVal: t,
propClass: ln
})
)
? g.entrySeq().map(([e, t]) =>
k().createElement(_, {
key: `${e}-${t}`,
propKey: e,
propVal: t,
propClass: ln
})
)
: null,
l && h.size
? h
.entrySeq()
.map(([e, t]) =>
k().createElement(_, {
key: `${e}-${t}`,
propKey: e,
propVal: t,
propClass: ln
})
)
? h.entrySeq().map(([e, t]) =>
k().createElement(_, {
key: `${e}-${t}`,
propKey: e,
propVal: t,
propClass: ln
})
)
: null,
d ? k().createElement(S, { source: d }) : null,
y &&
@ -12452,15 +12438,13 @@
")"
),
C && i.size
? i
.entrySeq()
.map(([e, r]) =>
k().createElement(t, {
key: `${e}-${r}`,
xKey: e,
xVal: r
})
)
? i.entrySeq().map(([e, r]) =>
k().createElement(t, {
key: `${e}-${r}`,
xKey: e,
xVal: r
})
)
: null
),
k().createElement(
@ -12703,19 +12687,17 @@
? k().createElement(
"select",
{ "data-variable": e, onChange: i },
r
.get("enum")
.map(r =>
k().createElement(
"option",
{
selected: r === n(t, e),
key: r,
value: r
},
r
)
r.get("enum").map(r =>
k().createElement(
"option",
{
selected: r === n(t, e),
key: r,
value: r
},
r
)
)
)
: k().createElement("input", {
type: "text",
@ -17499,7 +17481,8 @@
const { examples: t, example: r, default: a } = e;
return (
!!(Array.isArray(t) && t.length >= 1) ||
void 0 !== a || void 0 !== r
void 0 !== a ||
void 0 !== r
);
},
extractExample = e => {

View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "0d777bd9c0ca68c9ec0fe911e71b1b2a",
"content-hash": "c7549451bb31a635714731144a995123",
"packages": [
{
"name": "amphp/amp",
@ -1553,6 +1553,143 @@
},
"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",
"version": "3.5.0",
@ -2307,6 +2444,54 @@
},
"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",
"version": "2.0.2",
@ -4338,5 +4523,5 @@
"platform-overrides": {
"php": "8.2"
},
"plugin-api-version": "2.3.0"
"plugin-api-version": "2.2.0"
}

View File

@ -2,6 +2,10 @@ START TRANSACTION;
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`
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';
-- 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:&#92;Widnows&#92;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);
DELETE FROM tconfig WHERE `token` = 'loginhash_pwd';

View File

@ -41,39 +41,28 @@ ui_print_standard_header(
);
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">
<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>';
$msg = __('A cluster is a group of devices that provide the same service in high availability.').'<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.');
?>
</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
}
?>
</div>
</div>
$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.');
$button = false;
if (check_acl($config['id_user'], 0, 'AW')) {
$button = "
<form action='index.php?sec=estado&sec2=operation/cluster/cluster&op=new' method='post'>
<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
);

View File

@ -14,36 +14,22 @@
global $config;
check_login();
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.',
get_product_name(),
get_product_name()
);
<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()
);
?>
</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>
$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
);

View File

@ -34,37 +34,30 @@ check_login();
ui_require_css_file('first_task');
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.',
get_product_name()
);
<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()
);
?>
</p>
<form action="index.php?sec=network&amp;sec2=godmode/reporting/visual_console_builder" method="post">
<?php
html_print_input_hidden('edit_layout', 1);
html_print_action_buttons(
html_print_submit_button(
__('Create a Visual Console'),
'button_task',
false,
['icon' => 'wand'],
true
)
);
?>
</form>
</div>
</div>
<?php
$msg .= '<br><br>'.__(
"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'."
);
$msg .= '<br><br>'.__(
" The items the %s Visual Map was designed to handle are 'static images', 'percentage bars', 'module graphs' and 'simple values'",
get_product_name()
);
$url_new = 'index.php?sec=network&amp;sec2=godmode/reporting/visual_console_builder';
$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
);
}

View File

@ -31,40 +31,25 @@ global $config;
check_login();
ui_require_css_file('first_task');
?>
<?php if ((bool) $agent_w === true) { ?>
<div class="new_task">
<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.
if ((bool) $agent_w === true) {
$msg = __(
'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.
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.
His company consists of three big departments: A management, an on-line shop and support."
);
?>
</p>
<form action="index.php?sec=estado&sec2=enterprise/godmode/services/services.service&action=new_service" method="post">
<?php
html_print_action_buttons(
html_print_submit_button(
__('Create a service'),
'button_task',
false,
['icon' => 'wand'],
true
)
);
?>
</form>
</div>
</div>
<?php
His company consists of three big departments: A management, an on-line shop and support.'
);
$url_new = 'index.php?sec=estado&sec2=enterprise/godmode/services/services.service&action=new_service';
$button = '<form action="'.$url_new.'" method="post">
<input type="submit" class="button_task button_task_mini mrgn_0px_imp" value="'.__('Configure services').'" />
</form>';
echo ui_print_empty_view(
__('No services found'),
$msg,
'services.svg',
$button
);
}

View File

@ -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"';
if (!isset($config['search_keywords'])) {
$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 .= '</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') {
$modal_help = html_print_div(
[
@ -883,7 +903,8 @@ echo sprintf('<div id="header_table" class="header_table_%s">', $menuTypeClass);
enterprise: <?php echo (int) enterprise_installed(); ?>,
},
success: function (data) {
$('#result_order').html(data);
$('#result_order').html(data);
resizeSearchHeader()
},
error: function (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>

View File

@ -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->rowstyle['interval'] = 'width: 260px';
$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,
'',
@ -936,7 +936,7 @@ $switchButtons[] = html_print_radio_button_extended(
);
$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(
[
'class' => 'switch_radio_button',
@ -1297,7 +1297,6 @@ if ($modo == 0) {
echo "<span id='modules_not_learning_mode_context_help' class='invisible'>";
}
echo clippy_context_help('modules_not_learning_mode');
echo '</span>';
if ($new_agent === false) {
@ -1434,15 +1433,15 @@ ui_require_jquery_file('bgiframe');
function show_modules_not_learning_mode_context_help() {
if ($("input[name='modo'][value=0]").is(':checked')) {
$("#modules_not_learning_mode_context_help").show().css('padding-right','8px');
}
else {
$("#modules_not_learning_mode_context_help").hide();
$(".div-modules_not_learning_mode").show();
} else {
$(".div-modules_not_learning_mode").hide();
}
}
$(document).ready (function() {
show_modules_not_learning_mode_context_help();
var $id_agent = '<?php echo $id_agente; ?>';
var previous_primary_group_select;

View File

@ -1501,6 +1501,11 @@ if ($update_module === true || $create_module === true) {
$min = (int) get_parameter('min');
$max = (int) get_parameter('max');
$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');
$quiet_module = (int) get_parameter('quiet_module');
$cps_module = (int) get_parameter('cps_module');
@ -2425,10 +2430,7 @@ if ($delete_module) {
if ($error != 0) {
ui_print_error_message(__('There was a problem deleting the module'));
} else {
echo '<script type="text/javascript">
location="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=module&id_agente='.$id_agente.'";
alert("'.__('Module deleted succesfully').'");
</script>';
ui_print_success_message(__('Module deleted succesfully'));
$agent = db_get_row('tagente', 'id_agente', $id_agente);
db_pandora_audit(

View File

@ -1208,7 +1208,7 @@ $createModuleTable->data[1][] = html_print_label_input_block(
html_print_anchor(
[
'href' => 'https://pandorafms.com/Library/Library/',
'class' => 'color-black-grey invert_filter',
'class' => 'color-black-grey',
'content' => __('Get more modules on Monitoring Library'),
],
true
@ -1365,4 +1365,9 @@ html_print_div(
}
$(document).ready(function () {
$('#module_action').select2('open');
$('#module_action').select2('close');
});
</script>

View File

@ -442,7 +442,7 @@ $tableBasicThresholds->rowclass = [];
$tableBasicThresholds->data = [];
// 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->data['caption_warning_threshold'][0] .= __('Warning threshold').'&nbsp;';
@ -617,7 +617,7 @@ $tableBasicThresholds->data['critical_threshold'][0] .= html_print_input_text(
$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->data['thresholds_table'][0] = html_print_table($tableBasicThresholds, 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).
} else {
$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;
@ -884,7 +896,7 @@ $tagsAvailableData .= html_print_image(
[
'id' => 'right',
'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',
]
);

View File

@ -712,9 +712,9 @@ foreach ($simple_alerts as $alert) {
WHERE id = '.$alert['id_alert_template']
);
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] .= '</li></ul></td>';
$data[3] .= '</td>';
$data[3] .= '</tr>';
}
@ -722,7 +722,7 @@ foreach ($simple_alerts as $alert) {
$data[3] .= '<tr class="alert_action_list">';
$data[3] .= '<td>';
$data[3] .= '<ul class="action_list inline_line">';
$data[3] .= '<li class="inline_line">';
$data[3] .= '<li class="">';
if ($alert['disabled']) {
$data[3] .= '<font class="action_name italic_a">';
} else {
@ -758,7 +758,7 @@ foreach ($simple_alerts as $alert) {
$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);
// 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')) {
@ -786,7 +786,7 @@ foreach ($simple_alerts as $alert) {
true,
[
'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'].'\')',
]
);
@ -1333,10 +1333,9 @@ function show_display_update_action(id_module_action, alert_id, alert_id_agent_m
},
open: function() {
$(`#update_action-div-${alert_id}`).css('overflow', 'hidden');
//$(`#action_select_ajax-${alert_id}`).select2({
// tags: true,
// dropdownParent: $(`#update_action-div-${alert_id}`)
//});
$(`#update_action-div-${alert_id} select`).select2({
dropdownParent: $(this).parent()
});
},
width: 600,
height: 350

View File

@ -350,7 +350,8 @@ function update_template($step)
'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);
} else {
ui_print_warning_message(__('Another template with the same name already exists'));

View File

@ -723,6 +723,11 @@ if ($is_management_allowed === true
['id_grupo' => $id_group]
);
$result_user_profile = db_process_sql_delete(
'tusuario_perfil',
['id_grupo' => $id_group]
);
if ($result && (!$usedGroup['return'])) {
db_process_sql_delete(
'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;
}
$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',
true,
[
@ -1214,7 +1219,6 @@ $tab = 'group_edition';
});
$('#button-filter').on('click', function(event) {
console.log('here');
event.preventDefault();
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>

View File

@ -131,6 +131,10 @@ if ($update_agents) {
) {
if (get_parameter('interval') != -2) {
$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(
__('Interval'),
html_print_extended_select_for_time(
html_print_select_agentmodule_interval(
'interval',
-2,
'',

View File

@ -865,7 +865,7 @@ $table->data[15][0] = html_print_label_input_block(
$table->data[16][0] = html_print_label_input_block(
__('Interval'),
html_print_extended_select_for_time(
html_print_select_agentmodule_interval(
'module_interval',
0,
'',
@ -2444,6 +2444,10 @@ function process_manage_edit($module_name, $agents_select=null, $module_status='
case 'module_interval':
if ($value != 0) {
$values[$field] = $value;
if ($values[$field] < 60) {
$values[$field] = 60;
}
}
break;

View File

@ -426,14 +426,14 @@ if ($access_console_node === true) {
if ((bool) check_acl($config['id_user'], 0, 'PM') === true) {
// Setup.
$menu_godmode['gsetup']['text'] = __('Setup');
$menu_godmode['gsetup']['text'] = __('Settings');
$menu_godmode['gsetup']['sec2'] = 'general';
$menu_godmode['gsetup']['id'] = 'god-setup';
$sub = [];
// Options Setup.
$sub['general']['text'] = __('Setup');
$sub['general']['text'] = __('System Settings');
$sub['general']['id'] = 'Setup';
$sub['general']['type'] = 'direct';
$sub['general']['subtype'] = 'nolink';
@ -738,7 +738,7 @@ if ($access_console_node === true) {
$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']['id'] = 'file_repository';
}

View File

@ -82,6 +82,11 @@ $snmp_oid = (string) get_parameter('snmp_oid');
$snmp_community = (string) get_parameter('snmp_community');
$id_module_group = (int) get_parameter('id_module_group');
$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');
$plugin_user = (string) get_parameter('plugin_user');
$plugin_pass = io_input_password((string) get_parameter('plugin_pass'));

View File

@ -154,7 +154,7 @@ $table->data[2][0] = html_print_label_input_block(
$table->data[2][1] = html_print_label_input_block(
__('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(

View File

@ -1454,7 +1454,7 @@ $class = 'databox filters';
<td class="bolder">
<?php
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
);
?>
@ -2338,7 +2338,7 @@ if (is_metaconsole() === true) {
if ($idAgent) {
$sql = 'SELECT id_agente_modulo, nombre
FROM tagente_modulo
WHERE id_agente = '.$idAgent.' AND delete_pending = 0';
WHERE id_agente = "'.$idAgent['id_agent'].'" AND delete_pending = 0';
if ($meta) {
$connection = metaconsole_get_connection($server_name);

View File

@ -911,7 +911,7 @@ switch ($action) {
// 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->headstyle[$next] = 'min-width: 40px;text-align: left;';
$table->size[$next] = '2%';
@ -929,7 +929,7 @@ switch ($action) {
$next++;
$op_column = false;
if (is_metaconsole() === false) {
if (is_metaconsole() === false && check_acl($config['id_user'], 0, 'RM')) {
$op_column = true;
$table->head[$next] = '<span title="Operations">'.__('Op.').'</span>'.html_print_checkbox(
'all_delete',
@ -1082,7 +1082,7 @@ switch ($action) {
}
// 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) {
$data[$next] = __('Yes');
} else {
@ -2408,10 +2408,15 @@ switch ($action) {
$values['server_name'] = get_parameter('combo_server_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') {
$servers_connection = metaconsole_get_connections();
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.
@ -2423,9 +2428,9 @@ switch ($action) {
}
} else if ($server_id === 0) {
// 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 {
$good_format = db_validate_sql($sql);
$good_format = db_validate_sql($macros_sql);
}
}
} else if ($values['type'] == 'url') {
@ -3353,10 +3358,15 @@ switch ($action) {
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') {
$servers_connection = metaconsole_get_connections();
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.
@ -3368,9 +3378,9 @@ switch ($action) {
}
} else if ($server_id === 0) {
// 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 {
$good_format = db_validate_sql($sql);
$good_format = db_validate_sql($macros_sql);
}
}
} else if ($values['type'] == 'url') {

View File

@ -93,33 +93,26 @@ if (is_metaconsole() === true) {
}
}
$output = '<div class="new_task">';
$output .= '<div class="image_task">';
$output .= html_print_image(
'images/first_task/icono_grande_import.png',
true,
['title' => __('Plugin Registration') ]
);
$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>';
$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.');
$msg .= '<br><br>';
$msg .= __('You can get more plugins in our');
$msg .= '<a href="https://pandorafms.com/Library/Library/">';
$msg .= ' '.__('Public Resource Library');
$msg .= '</a>';
// Upload form.
$output .= "<form name='submit_plugin' method='post' enctype='multipart/form-data'>";
$output .= '<table class="" id="table1" width="100%" border="0" cellpadding="4" cellspacing="4">';
$output .= "<tr><td class='datos'><input type='file' name='plugin_upload' />";
$output .= "<td class='datos'><input type='submit' class='sub next' value='".__('Upload')."' />";
$output .= '</form></table>';
$output .= '</div>';
$output .= '</div>';
$button = "<form name='submit_plugin' id='submit-plugin' method='post' enctype='multipart/form-data'>";
$button .= "<input type='file' class='w100p' name='plugin_upload' />";
$button .= "<input type='submit' class='button_task button_task_mini mrgn_0px_imp' value='".__('Upload file')."' />";
$button .= '</form>';
$output = ui_print_empty_view(
__('Register plugins'),
$msg,
'plugins.svg',
$button
);
echo $output;

View File

@ -49,8 +49,8 @@ $date = time();
$servers = servers_get_info();
if ($servers === false) {
$server_clippy = clippy_context_help('servers_down');
echo "<div class='nf'>".__('There are no servers configured into the database').$server_clippy.'</div>';
$no_data_msg = __('There are no servers registered on the database. Please, check the configuration and start the Pandora Server service');
ui_print_info_message($no_data_msg);
return;
}

View File

@ -75,8 +75,8 @@ if (isset($text) === false) {
}
$directory = (string) get_parameter('directory');
$directory = str_replace('&lt;', '', $text);
$directory = str_replace('&gt;', '', $text);
$directory = str_replace('&lt;', '', $directory);
$directory = str_replace('&gt;', '', $directory);
if (empty($directory) === true) {
$directory = $fallback_directory;
} else {

View File

@ -68,7 +68,7 @@ if ($renew_license_result !== null) {
}
if ($update_settings) {
if (!is_metaconsole()) {
if (is_metaconsole() === false) {
// Node.
foreach ($_POST['keys'] as $key => $value) {
db_process_sql_update(

View File

@ -111,11 +111,8 @@ if (enterprise_installed()) {
array_push($menu_tabs, $menu_tab_url);
$menu_tab_url = '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup&section=hist_db').'">'.__('History database').'</a>';
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&section=log').'">'.__('Log collector').'</a>';
array_push($menu_tabs, $menu_tab_url);
}
$menu_tab_url = '<a href="'.ui_get_full_url('index.php?sec=gsetup&sec2=godmode/setup/setup&section=log').'">'.__('Log collector').'</a>';
array_push($menu_tabs, $menu_tab_url);
}
$buttons['auth'] = [
@ -422,8 +419,14 @@ switch ($section) {
$help_header = '';
break;
case 'log':
$buttons['log']['active'] = true;
$subpage = __('Log Collector');
$help_header = 'opensearch_installation';
break;
default:
$subpage = 'seccion: ';
$subpage = '';
// Default.
break;
}
@ -432,7 +435,7 @@ $dots = dot_tab($menu_tabs);
// Header.
ui_print_standard_header(
__('Setup').' &raquo; '.$subpage,
$subpage,
'',
false,
$help_header,

View File

@ -1461,7 +1461,7 @@ $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'),
"<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++;
@ -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(
__('Lock screen orientation when viewing on mobile devices'),
html_print_checkbox_switch(
@ -1486,7 +1492,6 @@ $table_vc->data[$row][] = html_print_label_input_block(
true
)
);
$row++;
$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),

View File

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

View File

@ -166,5 +166,9 @@ switch ($tab) {
$mode = \UpdateManager\UI\Manager::MODE_ONLINE;
include $config['homedir'].'/godmode/um_client/index.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;
}

View File

@ -100,6 +100,26 @@ class DiscoveryTaskList extends HTML
// Load styles.
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(
[
[
@ -184,7 +204,7 @@ class DiscoveryTaskList extends HTML
}
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(__('Cloud tasks'), [6, 7, 8, 13, 14], 'cloud');
$ret2 .= $this->showList(__('Custom tasks'), [-1], 'custom');
@ -874,14 +894,12 @@ class DiscoveryTaskList extends HTML
break;
case DISCOVERY_DEPLOY_AGENTS:
// Internal deployment task.
$no_operations = true;
$data[6] = html_print_image(
'images/osx-terminal@groups.svg',
true,
['title' => __('Agent deployment')]
).'&nbsp;&nbsp;';
$data[6] .= __('Discovery.Agent.Deployment (legacy)');
$data[6] .= __('Discovery.Agent.Deployment');
break;
case DISCOVERY_APP_MICROSOFT_SQL_SERVER:
@ -1007,6 +1025,7 @@ class DiscoveryTaskList extends HTML
&& $task['type'] != DISCOVERY_APP_SAP
&& $task['type'] != DISCOVERY_CLOUD_AWS_RDS
&& $task['type'] != DISCOVERY_CLOUD_AWS_S3
&& $task['type'] != DISCOVERY_DEPLOY_AGENTS
) {
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'].'\')">';
@ -1066,25 +1085,40 @@ class DiscoveryTaskList extends HTML
).'</a>';
}
} else {
$url_edit = sprintf(
'index.php?sec=gservers&sec2=godmode/servers/discovery&%s&task=%d',
$this->getTargetWiz($task, $recon_script_data),
$task['id_rt']
);
// Create the url edit.
switch ((int) $task['type']) {
case DISCOVERY_EXTENSION:
$url_edit = ui_get_full_url(
sprintf(
'index.php?sec=gservers&sec2=godmode/servers/discovery&wiz=%s&mode=%s&id_task=%s',
$task['section'],
$task['short_name'],
$task['id_rt'],
)
);
break;
if ((int) $task['type'] === DISCOVERY_EXTENSION) {
$url_edit = sprintf(
'index.php?sec=gservers&sec2=godmode/servers/discovery&wiz=%s&mode=%s&id_task=%s',
$task['section'],
$task['short_name'],
$task['id_rt'],
);
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.
$data[9] .= '<a href="'.ui_get_full_url(
$url_edit
).'">'.html_print_image(
$data[9] .= '<a href="'.$url_edit.'">'.html_print_image(
'images/edit.svg',
true,
[

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 15 KiB

View 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

View 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

View 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

View 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

View 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

View 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

View 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

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 13 KiB

View 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

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 48 KiB

View 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

View 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

View 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

View File

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

View File

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

View 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

View File

@ -114,6 +114,7 @@ if ($info === 'version') {
exit;
}
$user_in_db = null;
if (empty($apiPassword) === true
|| (empty($apiPassword) === false && $api_password === $apiPassword)
|| $apiTokenValid === true

View File

@ -685,7 +685,7 @@ class AgentsAlerts extends HTML
$alias = db_get_row('tagente', 'id_agente', $agent['id_agente']);
echo '<tr>';
// 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.
foreach ($templates as $tid => $tname) {
$anyfired = 0;

View File

@ -250,6 +250,13 @@ class ConsoleSupervisor
$this->checkAllowOverrideEnabled();
/*
* Check if OpenSearch is configured and log collector enabled
* NOTIF.OPENSEARCH.CONSOLELOG
*/
$this->checkOpenSearchLogCollector();
/*
* Check if the Pandora Console log
* file remains in old location.
@ -540,6 +547,12 @@ class ConsoleSupervisor
$this->checkUpdateManagerRegistration();
/*
* Check if OpenSearch is configured and log collector enabled
* NOTIF.OPENSEARCH.CONSOLELOG
*/
$this->checkOpenSearchLogCollector();
/*
* Check if has 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&section=log',
'icon_notification' => self::ICON_QUESTION,
]
);
} else {
$this->cleanNotifications('NOTIF.OPENSEARCH.CONSOLELOG');
}
}
}
/**
* Check if has access to the API
*
@ -3137,7 +3179,7 @@ class ConsoleSupervisor
return;
}
$sync = new PandoraFMS\Enterprise\Metaconsole\Synchronizer(true);
$sync = new PandoraFMS\Enterprise\Metaconsole\Synchronizer();
$counts = $sync->getQueues(true);
if (count($counts) === 0) {
@ -3195,7 +3237,7 @@ class ConsoleSupervisor
return;
}
$sync = new PandoraFMS\Enterprise\Metaconsole\Synchronizer(true);
$sync = new PandoraFMS\Enterprise\Metaconsole\Synchronizer();
$queues = $sync->getQueues();
if (count($queues) === 0) {
// Clean all.
@ -3325,27 +3367,34 @@ class ConsoleSupervisor
public function checkTotalModulesByAgent()
{
$modules_by_agent = db_process_sql(
'SELECT count(*) AS modules_by_agent
'SELECT count(*) AS count
FROM tagente a
LEFT JOIN tagente_modulo m ON a.id_agente = m.id_agente
WHERE m.disabled = 0
GROUP BY m.id_agente'
);
$show_warning = false;
foreach ($modules_by_agent as $key => $total_modules) {
if ($total_modules['modules_by_agent'] > 200) {
$this->notify(
[
'type' => 'NOTIF.MODULES_AGENT.ALERT',
'title' => __('Your system has an average of %s modules per agent', $total_modules['modules_by_agent']),
'message' => __('This is higher than the recommended maximum (200). This may result in poor performance of your system.'),
'icon_notification' => self::ICON_HEADSUP,
'url' => '__url__index.php?sec=gagente&sec2=godmode/agentes/modificar_agente',
]
);
$show_warning = true;
break;
}
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(
[
'type' => 'NOTIF.MODULES_AGENT.ALERT',
'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.'),
'icon_notification' => self::ICON_HEADSUP,
'url' => '__url__index.php?sec=gagente&sec2=godmode/agentes/modificar_agente',
]
);
$show_warning = true;
}
if ($show_warning === false) {

View File

@ -404,7 +404,7 @@ class OrderInterpreter extends Wizard
if ($iterator <= 9 && $this->canShowItem($enterprise, $this->pages_menu[$key]['url'])) {
echo '<li class="list_found" name="'.$iterator.'" id="'.$iterator.'">';
echo '
<span class="invert_filter"> Go to </span> &nbsp;
<span class=""> Go to </span> &nbsp;
<img src="'.$this->pages_menu[$key]['icon'].'">';
echo '&nbsp;
<a href="'.$this->pages_menu[$key]['url'].'">
@ -426,12 +426,12 @@ class OrderInterpreter extends Wizard
echo $this->loadJS();
echo '</ul>';
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>';
}
if ($iterator === 0) {
echo '<span class="invert_filter">'.__('Press enter to search').'</span>';
echo '<span class="">'.__('Press enter to search').'</span>';
}
echo '</div>';

View File

@ -240,27 +240,27 @@ class SnmpConsole extends HTML
'status',
[
'text' => 'snmp_agent',
'class' => 'snmp-td datos_green',
'class' => 'snmp-td',
],
[
'text' => 'enterprise_string',
'class' => 'snmp-td datos_green',
'class' => 'snmp-td',
],
[
'text' => 'count',
'class' => 'snmp-td datos_green',
'class' => 'snmp-td',
],
[
'text' => 'trap_subtype',
'class' => 'snmp-td datos_green',
'class' => 'snmp-td',
],
[
'text' => 'user_id',
'class' => 'snmp-td datos_green',
'class' => 'snmp-td',
],
[
'text' => 'timestamp',
'class' => 'snmp-td datos_green',
'class' => 'snmp-td',
],
'alert',
[
@ -791,7 +791,7 @@ class SnmpConsole extends HTML
// SNMP Agent.
$agent = agents_get_agent_with_ip($tmp->source);
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 {
$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);

View File

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

View File

@ -470,7 +470,7 @@ function get_user_language($id_user=null)
if ($id_user !== null) {
$userinfo = get_user_info($id_user);
if ($userinfo['language'] != 'default') {
if (isset($userinfo['language']) === true && $userinfo['language'] != 'default') {
return $userinfo['language'];
}
}
@ -5617,6 +5617,13 @@ function get_help_info($section_name)
}
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':
if ($es) {
$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.
*

View File

@ -317,6 +317,16 @@ function clippy_context_help($help=null)
$title = $clippy_data_configuration_module['tours']['data_configuration_module']['steps'][0]['title'];
$intro = $clippy_data_configuration_module['tours']['data_configuration_module']['steps'][0]['intro'];
$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 {
$img = html_print_image(
'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">
function show_'.$id.'() {

View File

@ -1256,6 +1256,10 @@ function config_update_config()
$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) {
$error_update[] = __('Default line thickness for the Visual Console');
}
@ -1898,7 +1902,7 @@ function config_update_config()
}
break;
case 'ehorus':
case 'pandorarc':
if (config_update_value('ehorus_enabled', (int) get_parameter('ehorus_enabled', 0), true) === false) {
$error_update[] = __('Enable eHorus');
}
@ -2927,6 +2931,10 @@ function config_process_config()
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'])) {
config_update_value('ser_menu_items', 10);
}

View File

@ -1235,6 +1235,8 @@ function events_get_all(
io_safe_input($filter['user_comment']),
$filter['user_comment']
);
array_unshift($fields, 'DISTINCT te.id_evento AS distinct_event');
}
// Source.
@ -2713,6 +2715,7 @@ function events_print_type_img(
$icon = 'images/module_warning.png';
break;
case 'unknown':
case 'going_unknown':
$icon = 'images/module_unknown.png';
break;
@ -2741,7 +2744,6 @@ function events_print_type_img(
$icon = 'images/configuration@svg.svg';
break;
case 'unknown':
default:
$style .= ' invert_filter';
$icon = 'images/event.svg';
@ -2993,6 +2995,9 @@ function events_print_type_description($type, $return=false)
break;
case 'unknown':
$output .= __('Unknown');
break;
default:
$output .= __('Unknown type:').': '.$type;
break;
@ -5837,6 +5842,7 @@ function events_get_instructions($event, $max_text_length=300)
}
switch ($event['event_type']) {
case 'unknown':
case 'going_unknown':
if ($event['unknown_instructions'] != '') {
$value = str_replace(

View File

@ -4100,7 +4100,7 @@ function fullscale_data(
$data['sum'.$series_suffix]['min'] = $min_value_total;
$data['sum'.$series_suffix]['max'] = $max_value_total;
$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);
}
}

View File

@ -107,22 +107,6 @@ function groups_check_used($idGroup)
$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']) {
case 'mysql':
case 'postgresql':

View File

@ -206,3 +206,43 @@ function groupview_get_groups_list($id_user=false, $access='AR', $is_not_paginat
'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;
}

View File

@ -16,7 +16,7 @@
* @package Include
* @subpackage HTML
*/
use PandoraFMS\Enterprise\Metaconsole\Node;
if (!isset($config)) {
$working_dir = getcwd();
$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('&#x20;&raquo;&#x20;', $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.
* The first and second columns of the query will be used.
@ -1896,6 +2191,7 @@ function html_print_select_from_sql(
$class='',
$required=false,
$placeholder='',
$title=false,
) {
global $config;
@ -1943,7 +2239,8 @@ function html_print_select_from_sql(
'',
false,
null,
$placeholder
$placeholder,
$title
);
}
@ -2290,7 +2587,7 @@ function html_print_extended_select_for_time(
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_hidden($name, $selected, false, $uniq_name);
@ -2317,7 +2614,7 @@ function html_print_extended_select_for_time(
false,
false
);
echo ' <a href="javascript:">'.html_print_image(
echo '&nbsp&nbsp<a href="javascript:">'.html_print_image(
'images/logs@svg.svg',
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.
*
@ -4133,6 +4598,10 @@ function html_print_table(&$table, $return=false)
$headStyle = '';
}
if (isset($table->headStyle[$heading])) {
$headStyle = ' style = "'.$table->headStyle[$heading].'" ';
}
$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['required']) === true) ? $data['required'] : false),
((isset($data['placeholder']) === true) ? $data['placeholder'] : null),
((isset($data['title']) === true) ? $data['title'] : false),
);
break;
@ -6108,6 +6578,10 @@ function html_print_input($data, $wrapper='div', $input_only=false)
$output .= html_print_select_multiple_modules_filtered($data);
break;
case 'select_multiple_modules_filtered_formated':
$output .= html_print_select_multiple_modules_filtered_formated($data);
break;
case 'datalist':
$output .= html_print_datalist(
$data['name'],

View File

@ -99,9 +99,9 @@ function inventory_get_data(
// Prepare pagination.
$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',
$pagination_url_parameters['inventory_id_agent'],
$pagination_url_parameters['inventory_agent'],
$pagination_url_parameters['inventory_id_group'],
(isset($pagination_url_parameters['inventory_id_agent']) ?? ''),
(isset($pagination_url_parameters['inventory_agent']) ?? ''),
(isset($pagination_url_parameters['inventory_id_group']) ?? ''),
$export_csv,
$inventory_module_name,
$inventory_search_string,
@ -709,7 +709,9 @@ function inventory_get_datatable(
$inventory_search_string='',
$export_csv=false,
$return_mode=false,
$order_by_agent=false
$order_by_agent=false,
$date_init=false,
$status_agent=-1,
) {
global $config;
@ -736,6 +738,10 @@ function inventory_get_datatable(
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'
&& $inventory_module_name !== ''
&& $inventory_module_name !== 'all'
@ -745,25 +751,27 @@ function inventory_get_datatable(
}
if ($inventory_search_string != '') {
array_push($where, "REPLACE(tagente_datos_inventory.data, '&#x20;', ' ') LIKE '%".$inventory_search_string."%'");
array_push($where, "REPLACE(tagent_module_inventory.data, '&#x20;', ' ') LIKE '%".$inventory_search_string."%'");
}
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(
'SELECT tmodule_inventory.*,
tagent_module_inventory.*,
tagente.alias as name_agent,
tagente_datos_inventory.utimestamp as last_update,
tagente_datos_inventory.timestamp as last_update_timestamp,
tagente_datos_inventory.data as data_inventory
tagent_module_inventory.utimestamp as last_update,
tagent_module_inventory.timestamp as last_update_timestamp,
tagent_module_inventory.data as data_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
INNER JOIN tagente_datos_inventory
ON tagent_module_inventory.id_agent_module_inventory = tagente_datos_inventory.id_agent_module_inventory
LEFT JOIN tagente
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 ';
if ($params['id_agent'] > 0 && $count === true) {
$where .= sprintf(' AND id_agente = %d', $params['id_agent']);
} else if ($params['id_agent'] > 0 && $count === false) {
if ($params['id_agent'] > 0) {
$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) {
$where .= sprintf(' AND id_grupo = %d', $params['id_group']);
} 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(
' AND utimestamp BETWEEN %d AND %d',
($params['utimestamp'] - $params['period']),
@ -976,21 +986,20 @@ function get_data_basic_info_sql($params, $count=false)
$limit_condition = '';
$order_condition = '';
$fields = 'count(*)';
$innerjoin = '';
$groupby = '';
if ($count !== true) {
if (is_metaconsole() === true) {
$fields = 'tmetaconsole_agent.*, tagent_secondary_group.*, tagent_custom_data.*';
} else {
$fields = 'tagente.*, tagent_secondary_group.*, tagent_custom_data.*';
}
if (is_metaconsole() === true) {
$fields = 'tmetaconsole_agent.*, tagent_secondary_group.*, tagent_custom_data.*';
} else {
$fields = 'tagente.*, tagent_secondary_group.*, tagent_custom_data.*';
}
$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_custom_data ON '.$table.'.id_agente = tagent_custom_data.id_agent ';
$groupby = 'GROUP BY '.$table.'.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_custom_data ON '.$table.'.id_agente = tagent_custom_data.id_agent ';
if ($count !== true) {
$limit_condition = sprintf(
'LIMIT %d, %d',
$params['start'],
@ -998,8 +1007,12 @@ function get_data_basic_info_sql($params, $count=false)
);
$order_condition = sprintf('ORDER BY %s', $params['order']);
} else {
$fields = 'COUNT(*)';
}
$groupby = 'GROUP BY '.$table.'.id_agente';
$sql = sprintf(
'SELECT %s
FROM %s
@ -1017,13 +1030,19 @@ function get_data_basic_info_sql($params, $count=false)
$limit_condition
);
$sql_count = sprintf(
'SELECT COUNT(*)
FROM (%s) AS sub_sql',
$sql
);
if ($count !== true) {
$result = db_get_all_rows_sql($sql);
if ($result === false) {
$result = [];
}
} else {
$result = db_get_sql($sql);
$result = db_get_sql($sql_count);
if ($result === false) {
$result = 0;
}

View File

@ -90,6 +90,10 @@ function io_safe_input($value)
$value = utf8_encode($value);
}
if (preg_match('/<\/?script(.*?)>/', $value)) {
$value = preg_replace('/<\/?script(.*?)>/', '', $value);
}
$valueHtmlEncode = htmlentities(($value ?? ''), ENT_QUOTES, 'UTF-8', true);
// Replace the character '\' for the equivalent html entitie

View File

@ -167,6 +167,8 @@ function menu_print_menu(&$menu)
$sec2 = 'godmode/groups/group_list';
} else if ($sec2 === 'godmode/users/configure_profile') {
$sec2 = 'godmode/users/profile_list';
} else if ($sec2 === 'godmode/users/configure_token') {
$sec2 = 'godmode/users/token_list';
} else {
$sec2 = (string) get_parameter('sec2');
}

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