Merge branch 'develop' into ent-13185-ligera-modificacion-en-el-header

This commit is contained in:
Pablo Aragon 2024-04-08 09:02:35 +02:00
commit 6231beaea0
108 changed files with 1014 additions and 318 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

@ -310,10 +310,6 @@ module_plugin pandora_df
#module_description Postcondition test module
#module_end
# This plugin runs several security checks in a Linux system
#module_plugin pandora_security_check
# Extraction module example
#module_begin
#module_name Collector

View File

@ -1,5 +1,5 @@
package: pandorafms-agent-unix
Version: 7.0NG.776-240402
Version: 7.0NG.776-240408
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-240408"
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

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

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 => '240408';
# 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 240408
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 240408
%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 240408
%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 240408
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 240408
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="240408"
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

@ -186,7 +186,7 @@ UpgradeApplicationID
{}
Version
{240402}
{240408}
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 240408")
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 240408))"
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-240408
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-240408"
package_pear=0
package_pandora=1

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,4 +7712,38 @@ 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;
COMMIT;

View File

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

@ -1292,10 +1292,18 @@ if ($update_agent) {
// Get all plugins (BASIC OPTIONS).
$agent = new PandoraFMS\Agent($id_agente);
$plugins = $agent->getPlugins();
$pluginsToWrite = [
'security_hardening' => [
'write' => $security_hardening,
'raw' => "module_begin \nmodule_plugin /usr/share/pandora_agent/plugins/pandora_hardening -t 150 \nmodule_absoluteinterval 7d \nmodule_end",
],
];
foreach ($plugins as $key => $row) {
// Only check plugins when agent package is bigger than 774.
if ($options_package === '1') {
if (preg_match('/pandora_hardening/', $row['raw']) === 1) {
$pluginsToWrite['security_hardening']['write'] = 0;
if ($security_hardening === 1) {
if ($row['disabled'] === 1) {
$agent->enablePlugins($row['raw']);
@ -1347,6 +1355,12 @@ if ($update_agent) {
}
}
foreach ($pluginsToWrite as $name => $val) {
if ($val['write'] === 1) {
$result = $agent->addPlugins(io_safe_output($val['raw']), true);
}
}
$modules = $agent->getModules();
foreach ($modules as $key => $row) {

View File

@ -912,23 +912,30 @@ if ($modules !== false) {
if ((bool) $linked !== false) {
if ((bool) $adopt === true) {
$img = 'images/policies_brick.png';
$img = 'images/policies_brick.svg';
$title = '('.__('Adopted').') '.$policyInfo['name_policy'];
} else {
$img = 'images/policies_mc.png';
$img = 'images/policy@svg.svg';
$title = $policyInfo['name_policy'];
}
} else {
if ((bool) $adopt === true) {
$img = 'images/policies_not_brick.png';
$img = 'images/policies_not_brick.svg';
$title = '('.__('Unlinked').') ('.__('Adopted').') '.$policyInfo['name_policy'];
} else {
$img = 'images/unlinkpolicy.png';
$img = 'images/unlinkpolicy.svg';
$title = '('.__('Unlinked').') '.$policyInfo['name_policy'];
}
}
$data[1] = '<a href="?sec=gmodules&sec2=enterprise/godmode/policies/policies&id='.$policyInfo['id_policy'].'">'.html_print_image($img, true, ['title' => $title]).'</a>';
$data[1] = '<a href="?sec=gmodules&sec2=enterprise/godmode/policies/policies&id='.$policyInfo['id_policy'].'">'.html_print_image(
$img,
true,
[
'title' => $title,
'class' => 'main_menu_icon',
]
).'</a>';
}
}

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'].'\')',
]
);
@ -997,7 +997,7 @@ foreach ($simple_alerts as $alert) {
} else {
$module_linked = policies_is_module_linked($alert['id_agent_module']);
if ($module_linked === '0') {
$img = 'images/unlinkpolicy.png';
$img = 'images/unlinkpolicy.svg';
} else {
$img = 'images/policy@svg.svg';
}
@ -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

@ -140,13 +140,16 @@ if (enterprise_installed() && $alert['id_policy_alerts'] != 0) {
if ($policyInfo === false) {
$policy = __('N/A');
} else {
$img = 'images/policies_mc.png';
$img = 'images/policy@svg.svg';
$policy = '<a href="?sec=gmodules&amp;sec2=enterprise/godmode/policies/policies&amp;id='.$policyInfo['id'].'">';
$policy .= html_print_image(
$img,
true,
['title' => $policyInfo['name']]
[
'title' => $policyInfo['name'],
'class' => 'main_menu_icon',
]
);
$policy .= '</a>';
}

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'));
@ -1821,5 +1822,11 @@ if ($step == 2) {
}
?>
})
$(document).ready(function () {
$("#default_action").select2({
closeOnSelect: true
});
});
/* ]]> */
</script>

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

@ -252,7 +252,7 @@ $alertstab = [
$policiesalertstab = [
'text' => '<a href="'.$url.'&tab=massive_policies_alerts">'.html_print_image(
'images/policies_mc.png',
'images/policy@svg.svg',
true,
[
'title' => __('Policies alerts'),

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

@ -630,6 +630,8 @@ echo '</form>';
echo '<span id="any_text" class="invisible">'.__('None').'</span>';
echo '<span id="none_text" class="invisible">'.__('None').'</span>';
echo '<span id="loading_text" class="invisible">'.__('Loading...').'</span>';
echo '<div id="cv-preview-img" title="'.__('Image preview').'"><center><img /></center></div>';
?>
<script type="text/javascript">
@ -917,6 +919,24 @@ $('#image').on('change', function() {
$('#image_prev').html(`<img src="${src}">`);
});
$('#wizard_table span#image_prev').click(function (e) {
e.preventDefault();
const src = $('#wizard_table span#image_prev img').attr('src');
$("#cv-preview-img img").attr('src', src);
$("#cv-preview-img").dialog({
resizable: true,
draggable: true,
modal: true,
width: 'auto',
clickOutside: true,
overlay: {
opacity: 0.5,
background: "black"
}
});
});
</script>
<style type="text/css">
select[name='kind_relationship'] option[disabled='disabled'] {

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

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

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>gm_policies@svg</title>
<g id="gm_policies" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M12,0 C10.8171521,0 8.84058066,0.3975 6.98058066,0.84 C5.07772352,1.29 3.1594378,1.8225 2.0314378,2.145 C1.06904827,2.42309046 0.373561688,3.15871408 0.241723518,4.038 C-0.779990767,10.7535 1.59086638,15.7305 4.4674378,19.023 C5.68729294,20.4314401 7.14177124,21.6717484 8.78229495,22.7025 C9.44400923,23.112 10.0577235,23.4255 10.5788664,23.64 C11.0588664,23.838 11.5748664,24 12,24 C12.4251521,24 12.9394378,23.838 13.4211521,23.64 C14.04941,23.3728075 14.6504498,23.0591685 15.2177235,22.7025 C16.8582806,21.6717832 18.3127644,20.4314702 19.5325807,19.023 C22.4091521,15.7305 24.7800092,10.7535 23.7582949,4.038 C23.6266773,3.15829687 22.9312324,2.42213453 21.9685807,2.1435 C20.3311068,1.67371991 18.6809119,1.23859318 17.0194378,0.8385 C15.1594378,0.399 13.1828664,0 12,0 Z" id="Shape" fill="#3F3F3F"></path>
<path d="M12,4 C12.5522847,4 13,4.44771525 13,5 L13,9 L17,9 C17.5522847,9 18,9.44771525 18,10 C18,10.5522847 17.5522847,11 17,11 L13,11 L13,15 C13,15.5522847 12.5522847,16 12,16 C11.4477153,16 11,15.5522847 11,15 L11,11 L7,11 C6.44771525,11 6,10.5522847 6,10 C6,9.44771525 6.44771525,9 7,9 L11,9 L11,5 C11,4.44771525 11.4477153,4 12,4 Z" id="Rectangle-2" fill="#FFFFFF"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>linkpolicy@svg</title>
<g id="linkpolicy" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M12,0 C10.8171521,0 8.84058066,0.3975 6.98058066,0.84 C5.07772352,1.29 3.1594378,1.8225 2.0314378,2.145 C1.06904827,2.42309046 0.373561688,3.15871408 0.241723518,4.038 C-0.779990767,10.7535 1.59086638,15.7305 4.4674378,19.023 C5.68729294,20.4314401 7.14177124,21.6717484 8.78229495,22.7025 C9.44400923,23.112 10.0577235,23.4255 10.5788664,23.64 C11.0588664,23.838 11.5748664,24 12,24 C12.4251521,24 12.9394378,23.838 13.4211521,23.64 C14.04941,23.3728075 14.6504498,23.0591685 15.2177235,22.7025 C16.8582806,21.6717832 18.3127644,20.4314702 19.5325807,19.023 C22.4091521,15.7305 24.7800092,10.7535 23.7582949,4.038 C23.6266773,3.15829687 22.9312324,2.42213453 21.9685807,2.1435 C20.3311068,1.67371991 18.6809119,1.23859318 17.0194378,0.8385 C15.1594378,0.399 13.1828664,0 12,0 Z" id="Shape" fill="#82B92E"></path>
<path d="M16,6 C17.6568542,6 19,7.34314575 19,9 L19,11 C19,12.6568542 17.6568542,14 16,14 L14,14 C13.4477153,14 13,13.5522847 13,13 C13,12.4477153 13.4477153,12 14,12 L16,12 C16.5522847,12 17,11.5522847 17,11 L17,9 C17,8.44771525 16.5522847,8 16,8 L14,8 C13.4477153,8 13,7.55228475 13,7 C13,6.44771525 13.4477153,6 14,6 L16,6 Z M10,6 C10.5522847,6 11,6.44771525 11,7 C11,7.55228475 10.5522847,8 10,8 L8,8 C7.44771525,8 7,8.44771525 7,9 L7,11 C7,11.5522847 7.44771525,12 8,12 L10,12 C10.5522847,12 11,12.4477153 11,13 C11,13.5522847 10.5522847,14 10,14 L8,14 C6.34314575,14 5,12.6568542 5,11 L5,9 C5,7.34314575 6.34314575,6 8,6 Z M14,9 C14.5522847,9 15,9.44771525 15,10 C15,10.5522847 14.5522847,11 14,11 L10,11 C9.44771525,11 9,10.5522847 9,10 C9,9.44771525 9.44771525,9 10,9 L14,9 Z" id="Rectangle-2" fill="#FFFFFF"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>policies_brick@svg</title>
<g id="policies_brick" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M12,0 C10.8171521,0 8.84058066,0.3975 6.98058066,0.84 C5.07772352,1.29 3.1594378,1.8225 2.0314378,2.145 C1.06904827,2.42309046 0.373561688,3.15871408 0.241723518,4.038 C-0.779990767,10.7535 1.59086638,15.7305 4.4674378,19.023 C5.68729294,20.4314401 7.14177124,21.6717484 8.78229495,22.7025 C9.44400923,23.112 10.0577235,23.4255 10.5788664,23.64 C11.0588664,23.838 11.5748664,24 12,24 C12.4251521,24 12.9394378,23.838 13.4211521,23.64 C14.04941,23.3728075 14.6504498,23.0591685 15.2177235,22.7025 C16.8582806,21.6717832 18.3127644,20.4314702 19.5325807,19.023 C22.4091521,15.7305 24.7800092,10.7535 23.7582949,4.038 C23.6266773,3.15829687 22.9312324,2.42213453 21.9685807,2.1435 C20.3311068,1.67371991 18.6809119,1.23859318 17.0194378,0.8385 C15.1594378,0.399 13.1828664,0 12,0 Z" id="Shape" fill="#95A3BF"></path>
<path d="M15.1111111,4.00024155 C13.8870549,4.00024155 12.7344337,4.55595525 12,5.5002027 C10.9956624,4.20894492 9.24711145,3.68225974 7.65911424,4.1926742 C6.07111704,4.70308865 5,6.1360722 5,7.75014442 C5,12.243778 11.475,15.7874362 11.7472222,15.9374324 C11.8243576,15.9792366 11.9115206,16.0007873 12,16 C12.0885539,16.001389 12.1758774,15.9797985 12.2527778,15.9374324 C13.4451725,15.2652603 14.5635811,14.4778962 15.5907407,13.5874932 C17.8527778,11.6250441 19,9.66259488 19,7.75014442 C19,5.67913025 17.2588851,4.00024155 15.1111111,4.00024155 Z" id="Path" fill="#FFFFFF" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>policies_cog@svg</title>
<g id="policies_cog" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M12,0 C10.8171521,0 8.84058066,0.3975 6.98058066,0.84 C5.07772352,1.29 3.1594378,1.8225 2.0314378,2.145 C1.06904827,2.42309046 0.373561688,3.15871408 0.241723518,4.038 C-0.779990767,10.7535 1.59086638,15.7305 4.4674378,19.023 C5.68729294,20.4314401 7.14177124,21.6717484 8.78229495,22.7025 C9.44400923,23.112 10.0577235,23.4255 10.5788664,23.64 C11.0588664,23.838 11.5748664,24 12,24 C12.4251521,24 12.9394378,23.838 13.4211521,23.64 C14.04941,23.3728075 14.6504498,23.0591685 15.2177235,22.7025 C16.8582806,21.6717832 18.3127644,20.4314702 19.5325807,19.023 C22.4091521,15.7305 24.7800092,10.7535 23.7582949,4.038 C23.6266773,3.15829687 22.9312324,2.42213453 21.9685807,2.1435 C20.3311068,1.67371991 18.6809119,1.23859318 17.0194378,0.8385 C15.1594378,0.399 13.1828664,0 12,0 Z" id="Shape" fill="#82B92E"></path>
<path d="M18,11.78125 C18,11.6485937 17.923314,11.5203906 17.7978615,11.4514844 L16.6492968,10.8207812 C16.7013654,10.553125 16.7309358,10.2601563 16.7309358,10 C16.7309358,9.73984375 16.7003304,9.44570312 16.6486314,9.17921875 L17.7971961,8.54851563 C17.9226733,8.47958594 17.9993347,8.35138281 17.9993347,8.21875 C17.9993347,7.88828125 16.9648625,5.8975 16.4256951,5.8975 C16.3559088,5.8975 16.2855312,5.91452969 16.2224969,5.94913281 L15.0712216,6.58147656 C14.6338996,6.22609375 14.1287381,5.94765625 13.5767568,5.7615625 L13.5767568,4.49875 C13.5767568,4.32242969 13.4495547,4.1640625 13.2679923,4.12796875 C12.8572097,4.04633594 12.4358311,4 11.9996673,4 C11.5635035,4 11.1408928,4.04633594 10.731096,4.12799219 C10.5507164,4.16415625 10.4225778,4.3225 10.4225778,4.49875 L10.4225778,5.7615625 C9.87059652,5.94765625 9.36543504,6.22609375 8.92927123,6.58046875 L7.7767638,5.9490625 C7.71392664,5.914375 7.64345046,5.89726563 7.57371353,5.89726563 C7.08777283,5.89726563 6,7.81796875 6,8.21851563 C6,8.35117188 6.0767599,8.479375 6.20221244,8.54828125 L7.35077715,9.17898437 C7.29895497,9.446875 7.26839886,9.71875 7.26839886,10 C7.26839886,10.28125 7.29900426,10.5542969 7.35070322,10.8207812 L6.20213852,11.4514844 C6.07666133,11.5204141 6,11.6486172 6,11.78125 C6,12.1117188 7.03447214,14.1025 7.57363961,14.1025 C7.64342582,14.1025 7.71380343,14.0854703 7.77683773,14.0508672 L8.92811306,13.4185234 C9.36543504,13.7734375 9.87059652,14.0523437 10.4225778,14.2375 L10.4225778,15.5003125 C10.4225778,15.6766328 10.54978,15.835 10.7313424,15.8710938 C11.1421249,15.953125 11.5635035,16 11.9774895,16 C12.3914755,16 12.836264,15.9536641 13.2460609,15.8720078 C13.4486183,15.8148438 13.5767568,15.6765625 13.5767568,15.5007812 L13.5767568,14.2379688 C14.129231,14.0519219 14.6346389,13.7734375 15.0712955,13.4183594 L16.2225709,14.0507031 C16.2855805,14.0853203 16.3560321,14.1023359 16.425769,14.1023359 C16.9108226,14.1015625 18,12.1820313 18,11.78125 Z M11.9996673,11.875 C10.9127077,11.875 10.0283055,11.0338281 10.0283055,10 C10.0283055,8.96617188 10.9129541,8.125 11.9996673,8.125 C13.0863806,8.125 13.9710292,8.96617188 13.9710292,10 C13.9710292,11.0338281 13.0863806,11.875 11.9996673,11.875 Z" id="Shape" fill="#FFFFFF" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>policies_error@svg</title>
<g id="policies_error" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M12,0 C10.8171521,0 8.84058066,0.3975 6.98058066,0.84 C5.07772352,1.29 3.1594378,1.8225 2.0314378,2.145 C1.06904827,2.42309046 0.373561688,3.15871408 0.241723518,4.038 C-0.779990767,10.7535 1.59086638,15.7305 4.4674378,19.023 C5.68729294,20.4314401 7.14177124,21.6717484 8.78229495,22.7025 C9.44400923,23.112 10.0577235,23.4255 10.5788664,23.64 C11.0588664,23.838 11.5748664,24 12,24 C12.4251521,24 12.9394378,23.838 13.4211521,23.64 C14.04941,23.3728075 14.6504498,23.0591685 15.2177235,22.7025 C16.8582806,21.6717832 18.3127644,20.4314702 19.5325807,19.023 C22.4091521,15.7305 24.7800092,10.7535 23.7582949,4.038 C23.6266773,3.15829687 22.9312324,2.42213453 21.9685807,2.1435 C20.3311068,1.67371991 18.6809119,1.23859318 17.0194378,0.8385 C15.1594378,0.399 13.1828664,0 12,0 Z" id="Shape" fill="#ED474A"></path>
<path d="M12,4 C12.5522847,4 13,4.44771525 13,5 L13,9 L17,9 C17.5522847,9 18,9.44771525 18,10 C18,10.5522847 17.5522847,11 17,11 L13,11 L13,15 C13,15.5522847 12.5522847,16 12,16 C11.4477153,16 11,15.5522847 11,15 L11,11 L7,11 C6.44771525,11 6,10.5522847 6,10 C6,9.44771525 6.44771525,9 7,9 L11,9 L11,5 C11,4.44771525 11.4477153,4 12,4 Z" id="Rectangle-2" fill="#FFFFFF" transform="translate(12, 10) rotate(45) translate(-12, -10)"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>policies_error_db@svg</title>
<g id="policies_error_db" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M12,0 C10.8171521,0 8.84058066,0.3975 6.98058066,0.84 C5.07772352,1.29 3.1594378,1.8225 2.0314378,2.145 C1.06904827,2.42309046 0.373561688,3.15871408 0.241723518,4.038 C-0.779990767,10.7535 1.59086638,15.7305 4.4674378,19.023 C5.68729294,20.4314401 7.14177124,21.6717484 8.78229495,22.7025 C9.44400923,23.112 10.0577235,23.4255 10.5788664,23.64 C11.0588664,23.838 11.5748664,24 12,24 C12.4251521,24 12.9394378,23.838 13.4211521,23.64 C14.04941,23.3728075 14.6504498,23.0591685 15.2177235,22.7025 C16.8582806,21.6717832 18.3127644,20.4314702 19.5325807,19.023 C22.4091521,15.7305 24.7800092,10.7535 23.7582949,4.038 C23.6266773,3.15829687 22.9312324,2.42213453 21.9685807,2.1435 C20.3311068,1.67371991 18.6809119,1.23859318 17.0194378,0.8385 C15.1594378,0.399 13.1828664,0 12,0 Z" id="Shape" fill="#ED474A"></path>
<path d="M12,16 C11.024,16 10.2285714,15.1488927 10.2285714,14.1030717 C10.2285714,13.0560261 11.0228571,12.2036943 12,12.2036943 C12.9771429,12.2036943 13.7714286,13.0560261 13.7714286,14.1030717 C13.7714286,15.1488927 12.976,16 12,16 Z M13.8662857,6.90846005 C13.8537143,6.9464231 12.2651429,11.155424 12.2651429,11.155424 C12.2217143,11.2705378 12.1165714,11.3464639 12.0011429,11.3464639 C11.8857143,11.3464639 11.7805714,11.2705378 11.7371429,11.155424 L10.1474286,6.94519849 C10.0445714,6.65986325 10,6.40269415 10,6.14307582 C10,4.96132258 10.8971429,4 12,4 C13.1028571,4 14,4.96132258 14,6.14307582 C14,6.40269415 13.9554286,6.65986325 13.8662857,6.90846005 Z" id="Path-2" fill="#FFFFFF" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>policies_not_brick@svg</title>
<g id="policies_not_brick" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M12,0 C10.8171521,0 8.84058066,0.3975 6.98058066,0.84 C5.07772352,1.29 3.1594378,1.8225 2.0314378,2.145 C1.06904827,2.42309046 0.373561688,3.15871408 0.241723518,4.038 C-0.779990767,10.7535 1.59086638,15.7305 4.4674378,19.023 C5.68729294,20.4314401 7.14177124,21.6717484 8.78229495,22.7025 C9.44400923,23.112 10.0577235,23.4255 10.5788664,23.64 C11.0588664,23.838 11.5748664,24 12,24 C12.4251521,24 12.9394378,23.838 13.4211521,23.64 C14.04941,23.3728075 14.6504498,23.0591685 15.2177235,22.7025 C16.8582806,21.6717832 18.3127644,20.4314702 19.5325807,19.023 C22.4091521,15.7305 24.7800092,10.7535 23.7582949,4.038 C23.6266773,3.15829687 22.9312324,2.42213453 21.9685807,2.1435 C20.3311068,1.67371991 18.6809119,1.23859318 17.0194378,0.8385 C15.1594378,0.399 13.1828664,0 12,0 Z" id="Shape" fill="#95A3BF"></path>
<path d="M7.65911424,4.1926742 C8.7031105,3.85711266 9.81650025,3.96979968 10.742194,4.45329669 C10.6577486,4.66304622 10.5458227,4.94286088 10.3729609,5.37501531 L10.2346355,5.72082876 C10.1845568,5.8460257 10.1303468,5.9815505 10.0715233,6.12860932 C9.69652331,7.06610932 9.50902331,7.53485932 9.38402331,7.84735932 L9.30003893,8.05732026 C9.24925768,8.18427339 9.20628893,8.29169526 9.15550768,8.41864839 L9.07152331,8.62860932 L9.03455478,8.73848822 C8.86321888,9.3626602 9.33183899,10 10,10 L13.461,10 L11.0156868,15.5064085 C9.26187073,14.4162161 5,11.3958191 5,7.75014442 C5,6.1360722 6.07111704,4.70308865 7.65911424,4.1926742 Z M15.1111111,4.00024155 C17.2588851,4.00024155 19,5.67913025 19,7.75014442 C19,9.66259488 17.8527778,11.6250441 15.5907407,13.5874932 C14.8666972,14.2151372 14.0973136,14.791583 13.2886363,15.3125739 L15.9138115,9.40613847 L15.9556847,9.29529221 C16.1531933,8.66438876 15.6834551,8 15,8 L11.476,8 L11.4909767,7.96514068 C11.5821225,7.73727609 11.6949697,7.45515804 11.8385606,7.0961809 L11.9284767,6.87139068 C12.3034767,5.93389068 12.4909767,5.46514068 12.6159767,5.15264068 L12.6999611,4.94267974 C12.7507423,4.81572661 12.7937111,4.70830474 12.8444923,4.58135161 L12.7760763,4.75141324 C13.4418889,4.26941849 14.2591991,4.00024155 15.1111111,4.00024155 Z" id="Path-2" fill="#FFFFFF" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>policies_ok@svg</title>
<g id="policies_ok" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M12,0 C10.8171521,0 8.84058066,0.3975 6.98058066,0.84 C5.07772352,1.29 3.1594378,1.8225 2.0314378,2.145 C1.06904827,2.42309046 0.373561688,3.15871408 0.241723518,4.038 C-0.779990767,10.7535 1.59086638,15.7305 4.4674378,19.023 C5.68729294,20.4314401 7.14177124,21.6717484 8.78229495,22.7025 C9.44400923,23.112 10.0577235,23.4255 10.5788664,23.64 C11.0588664,23.838 11.5748664,24 12,24 C12.4251521,24 12.9394378,23.838 13.4211521,23.64 C14.04941,23.3728075 14.6504498,23.0591685 15.2177235,22.7025 C16.8582806,21.6717832 18.3127644,20.4314702 19.5325807,19.023 C22.4091521,15.7305 24.7800092,10.7535 23.7582949,4.038 C23.6266773,3.15829687 22.9312324,2.42213453 21.9685807,2.1435 C20.3311068,1.67371991 18.6809119,1.23859318 17.0194378,0.8385 C15.1594378,0.399 13.1828664,0 12,0 Z" id="Shape" fill="#82B92E"></path>
<path d="M10.5,15 C10.125,15 9.75,14.85 9.45,14.55 L6.45,11.55 C5.85,10.95 5.85,10.05 6.45,9.45 C7.05,8.85 8.025,8.85 8.55,9.45 L10.5,11.4 L15.45,6.45 C16.05,5.85 16.95,5.85 17.55,6.45 C18.15,7.05 18.15,7.95 17.55,8.55 L11.55,14.55 C11.25,14.85 10.875,15 10.5,15 Z" id="check" fill="#FFFFFF" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>policies_queue@svg</title>
<g id="policies_queue" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M12,0 C10.8171521,0 8.84058066,0.3975 6.98058066,0.84 C5.07772352,1.29 3.1594378,1.8225 2.0314378,2.145 C1.06904827,2.42309046 0.373561688,3.15871408 0.241723518,4.038 C-0.779990767,10.7535 1.59086638,15.7305 4.4674378,19.023 C5.68729294,20.4314401 7.14177124,21.6717484 8.78229495,22.7025 C9.44400923,23.112 10.0577235,23.4255 10.5788664,23.64 C11.0588664,23.838 11.5748664,24 12,24 C12.4251521,24 12.9394378,23.838 13.4211521,23.64 C14.04941,23.3728075 14.6504498,23.0591685 15.2177235,22.7025 C16.8582806,21.6717832 18.3127644,20.4314702 19.5325807,19.023 C22.4091521,15.7305 24.7800092,10.7535 23.7582949,4.038 C23.6266773,3.15829687 22.9312324,2.42213453 21.9685807,2.1435 C20.3311068,1.67371991 18.6809119,1.23859318 17.0194378,0.8385 C15.1594378,0.399 13.1828664,0 12,0 Z" id="Shape" fill="#3F3F3F"></path>
<path d="M12,14 L17,14 C17.5522847,14 18,14.4477153 18,15 C18,15.5522847 17.5522847,16 17,16 L12,16 C11.4477153,16 11,15.5522847 11,15 C11,14.4477153 11.4477153,14 12,14 Z M12,6 L17,6 C17.5522847,6 18,6.44771525 18,7 C18,7.55228475 17.5522847,8 17,8 L12,8 C11.4477153,8 11,7.55228475 11,7 C11,6.44771525 11.4477153,6 12,6 Z M12,10 L17,10 C17.5522847,10 18,10.4477153 18,11 C18,11.5522847 17.5522847,12 17,12 L12,12 C11.4477153,12 11,11.5522847 11,11 C11,10.4477153 11.4477153,10 12,10 Z M6,4 C6,4 6,6 6,10 C8.66666667,8 10,7 10,7 C10,7 6,4 6,4 Z" id="Rectangle-Copy-4" fill="#FFFFFF"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -1,9 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg 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 / policy@svg</title>
<desc>Created with Sketch.</desc>
<g id="Dark-/-20-/-policy" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M12,0 C12.54,0 13,0.363636364 13,0.909090909 L13,0.909090909 L13,4.07934284 C13,5.35207011 13.69,6 14.95,6 L14.95,6 L18.1,6 C18.64,6 19,6.45454545 19,7 L19,7 L19,16.3636364 C19,18.3636364 17.38,20 15.4,20 L15.4,20 L4.6,20 C2.62,20 1,18.3636364 1,16.3636364 L1,16.3636364 L1,3.63636364 C1,1.63636364 2.62,0 4.6,0 L4.6,0 Z M10,8 C9.5071467,8 8.68357528,8.165625 7.90857528,8.35 C7.11571813,8.5375 6.31643242,8.759375 5.84643242,8.89375 C5.44543678,9.00962102 5.1556507,9.31613087 5.10071813,9.6825 C4.67500385,12.480625 5.66286099,14.554375 6.86143242,15.92625 C7.36970539,16.5131001 7.97573802,17.0298952 8.65928956,17.459375 C8.93500385,17.63 9.19071813,17.760625 9.40786099,17.85 C9.60786099,17.9325 9.82286099,18 10,18 C10.1771467,18 10.3914324,17.9325 10.5921467,17.85 C10.8539208,17.7386698 11.1043541,17.6079869 11.3407181,17.459375 C12.0242836,17.0299097 12.6303185,16.5131126 13.1385753,15.92625 C14.3371467,14.554375 15.3250038,12.480625 14.8992896,9.6825 C14.8444489,9.31595703 14.5546802,9.00922272 14.1535753,8.893125 C13.4712945,8.6973833 12.7837133,8.51608049 12.0914324,8.349375 C11.3164324,8.16625 10.492861,8 10,8 Z M10.0000038,11.1249989 C10.5224492,11.124319 10.9692832,11.4534472 11.0576067,11.9040074 C11.1459302,12.3545676 10.849988,12.795176 10.3571467,12.946875 L10.6321467,14.190625 C10.6524048,14.2822193 10.6248339,14.376943 10.5569716,14.4488998 C10.4891093,14.5208566 10.3880538,14.5625 10.2814324,14.5625 L9.71857528,14.5625 C9.61207899,14.5623338 9.51122354,14.5205909 9.44352297,14.448659 C9.3758224,14.3767272 9.34834078,14.2821119 9.36857528,14.190625 L9.64286099,12.946875 C9.15001972,12.795176 8.85407753,12.3545676 8.94240103,11.9040074 C9.03072452,11.4534472 9.47755846,11.124319 10.0000038,11.1249989 Z M13.9995461,1 L18,5 L14.9995461,5 C14.4472613,5 13.9995461,4.55228475 13.9995461,4 L13.9995461,4 L13.9995461,1 Z" id="Shape" fill="#3F3F3F"></path>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>policy@svg</title>
<g id="policy" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M12,0 C10.8171521,0 8.84058066,0.3975 6.98058066,0.84 C5.07772352,1.29 3.1594378,1.8225 2.0314378,2.145 C1.06904827,2.42309046 0.373561688,3.15871408 0.241723518,4.038 C-0.779990767,10.7535 1.59086638,15.7305 4.4674378,19.023 C5.68729294,20.4314401 7.14177124,21.6717484 8.78229495,22.7025 C9.44400923,23.112 10.0577235,23.4255 10.5788664,23.64 C11.0588664,23.838 11.5748664,24 12,24 C12.4251521,24 12.9394378,23.838 13.4211521,23.64 C14.04941,23.3728075 14.6504498,23.0591685 15.2177235,22.7025 C16.8582806,21.6717832 18.3127644,20.4314702 19.5325807,19.023 C22.4091521,15.7305 24.7800092,10.7535 23.7582949,4.038 C23.6266773,3.15829687 22.9312324,2.42213453 21.9685807,2.1435 C20.3311068,1.67371991 18.6809119,1.23859318 17.0194378,0.8385 C15.1594378,0.399 13.1828664,0 12,0 Z" id="Shape" fill="#3F3F3F"></path>
<g id="Group" transform="translate(9, 4)" fill="#FFFFFF">
<circle id="Oval" cx="3" cy="3" r="3"></circle>
</g>
<path d="M11,8 L9.27042899,15.7830695 C9.15062161,16.3222028 9.49055237,16.8563797 10.0296856,16.9761871 C10.1009105,16.9920148 10.1736537,17 10.2466161,17 L13.7533839,17 C14.3056687,17 14.7533839,16.5522847 14.7533839,16 C14.7533839,15.9270377 14.7453988,15.8542944 14.729571,15.7830695 L13,8 L13,8 L11,8 Z" id="Path-99" fill="#FFFFFF"></path>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 1.6 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

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>unlinkpolicy@svg</title>
<g id="unlinkpolicy" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M12,0 C10.8171521,0 8.84058066,0.3975 6.98058066,0.84 C5.07772352,1.29 3.1594378,1.8225 2.0314378,2.145 C1.06904827,2.42309046 0.373561688,3.15871408 0.241723518,4.038 C-0.779990767,10.7535 1.59086638,15.7305 4.4674378,19.023 C5.68729294,20.4314401 7.14177124,21.6717484 8.78229495,22.7025 C9.44400923,23.112 10.0577235,23.4255 10.5788664,23.64 C11.0588664,23.838 11.5748664,24 12,24 C12.4251521,24 12.9394378,23.838 13.4211521,23.64 C14.04941,23.3728075 14.6504498,23.0591685 15.2177235,22.7025 C16.8582806,21.6717832 18.3127644,20.4314702 19.5325807,19.023 C22.4091521,15.7305 24.7800092,10.7535 23.7582949,4.038 C23.6266773,3.15829687 22.9312324,2.42213453 21.9685807,2.1435 C20.3311068,1.67371991 18.6809119,1.23859318 17.0194378,0.8385 C15.1594378,0.399 13.1828664,0 12,0 Z" id="Shape" fill="#FCAB10"></path>
<path d="M13.1269281,13.513449 C13.2367557,13.6232769 13.2367557,13.8013548 13.1269281,13.9112062 L12.0798863,14.9582515 C10.6909165,16.3472026 8.43084946,16.3472964 7.04176249,14.9582515 C5.65276927,13.5692301 5.65276927,11.3091319 7.04176249,9.92013391 L8.08882769,8.87306513 C8.19865528,8.76323716 8.37673254,8.76323716 8.48658356,8.87306513 L9.41465715,9.80114189 C9.52448474,9.91096986 9.52448474,10.0890477 9.41465715,10.1988991 L8.36759196,11.2459445 C7.70965767,11.9039044 7.70965767,12.9744576 8.36759196,13.6324175 C9.02552624,14.2903541 10.0960991,14.2903775 10.7540803,13.6324175 L11.8011221,12.5853722 C11.9109497,12.4755442 12.0890269,12.4755442 12.1988779,12.5853722 L13.1269281,13.513449 Z M11.8011221,7.41464539 C11.9109497,7.52447335 12.0890269,7.52447335 12.1988779,7.41464539 L13.2459197,6.36760005 C13.903854,5.7095932 14.9744269,5.70964007 15.632408,6.36760005 C16.2903423,7.02556002 16.2903423,8.09611314 15.632408,8.75407311 L14.5853428,9.80111846 C14.4755153,9.91094642 14.4755153,10.0890243 14.5853428,10.1988757 L15.5134164,11.1269525 C15.623244,11.2367804 15.8013213,11.2367804 15.9111723,11.1269525 L16.9582375,10.0798837 C18.3472542,8.69086227 18.3472542,6.43078745 16.9582375,5.04176605 C15.5691974,3.65276809 13.3091538,3.65276809 11.9201137,5.04176605 L10.8730719,6.08881139 C10.7632443,6.19863936 10.7632443,6.37671722 10.8730719,6.48656862 L11.8011221,7.41464539 Z M17.3048764,15.8352581 L17.8351942,15.3049385 C18.0548728,15.0852592 18.0548728,14.7291034 17.8351942,14.5094475 L7.49058842,4.16475952 C7.27090981,3.94508016 6.9147553,3.94508016 6.69510012,4.16475952 L6.16475896,4.6951025 C5.94508035,4.91478186 5.94508035,5.27093759 6.16475896,5.49059352 L16.5093881,15.8352581 C16.7290668,16.054914 17.0852213,16.054914 17.3048764,15.8352581 L17.3048764,15.8352581 Z" id="Shape" fill="#FFFFFF" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -1135,7 +1135,7 @@ if (check_login()) {
if ((bool) $linked === true) {
if ((bool) $adopt === true) {
$img = 'images/policies_brick.png';
$img = 'images/policies_brick.svg';
$title = '('.__('Adopted').') '.$name_policy;
} else {
$img = 'images/policy@svg.svg';
@ -1143,10 +1143,10 @@ if (check_login()) {
}
} else {
if ((bool) $adopt === true) {
$img = 'images/policies_not_brick.png';
$img = 'images/policies_not_brick.svg';
$title = '('.__('Unlinked').') ('.__('Adopted').') '.$name_policy;
} else {
$img = 'images/unlinkpolicy.png';
$img = 'images/unlinkpolicy.svg';
$title = '('.__('Unlinked').') '.$name_policy;
}
}

View File

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

View File

@ -6943,6 +6943,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,11 @@ 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 {
$img = html_print_image(
'images/info-warning.svg',
@ -325,7 +330,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

@ -1259,6 +1259,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');
}
@ -2930,6 +2934,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

@ -2713,6 +2713,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 +2742,6 @@ function events_print_type_img(
$icon = 'images/configuration@svg.svg';
break;
case 'unknown':
default:
$style .= ' invert_filter';
$icon = 'images/event.svg';
@ -2993,6 +2993,9 @@ function events_print_type_description($type, $return=false)
break;
case 'unknown':
$output .= __('Unknown');
break;
default:
$output .= __('Unknown type:').': '.$type;
break;
@ -5861,6 +5864,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

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

@ -164,8 +164,12 @@ function shutdown($memory)
unset($memory->reserve);
$error = error_get_last();
if (isset($error['type']) === true && $error['type'] === 1) {
echo __('You have no memory for this operation, increase the memory limit.');
if (isset($error['type'])) {
if ($error['type'] === E_ERROR) {
if (strpos($error['message'], 'Allowed memory size') !== false) {
echo __('You have no memory for this operation, increase the memory limit.');
}
}
}
}

View File

@ -6018,6 +6018,15 @@ function reporting_html_availability_graph($table, $item, $pdf=0)
$total_values .= $sla_value;
$count_total_charts++;
$title = '<b>'.__('Result').'</b>';
if (isset($chart['agent']) === true) {
$title .= '<br />'.$chart['agent'];
}
if (isset($chart['module']) === true) {
$title .= '<br />'.$chart['module'];
}
$sla_value_text = "<span style = 'font-weight: bold; font-size: ".$font_size.(($pdf === 0) ? ' !important' : '').'; color: '.$color."'>".$sla_value.'</span>';
$checks_resume_text = '<span style = "font-size: '.$font_mini.';">';
$checks_resume_text .= $checks_resume;

View File

@ -1337,7 +1337,7 @@ function ui_format_alert_row(
} else {
$module_linked = policies_is_module_linked($alert['id_agent_module']);
if ($module_linked === '0') {
$img = 'images/unlinkpolicy.png';
$img = 'images/unlinkpolicy.svg';
} else {
$img = 'images/policy@svg.svg';
}
@ -1502,14 +1502,41 @@ function ui_format_alert_row(
metaconsole_restore_db();
}
if (empty($actions) === false || $actionDefault != '') {
$actionText = '<div><ul class="action_list">';
$actionText = '';
if ($actionDefault !== '' && $actionDefault !== false) {
$actionDefault_name = db_get_sql(
sprintf(
'SELECT name FROM talert_actions WHERE id = %d',
$actionDefault
)
);
foreach ($actions as $action) {
$actionText .= '<div class="mrgn_btn_5px" ><span class="action_name"><li>'.$action['name'];
if ($actionDefault_name === $action['name']) {
$hide_actionDefault = true;
} else {
$hide_actionDefault = false;
}
}
if ($hide_actionDefault !== true) {
$actionText .= $actionDefault_name.' <i>('.__('Default').')</i>';
}
}
if (empty($actions) === false || $actionDefault != '') {
$actionText .= '<div><ul class="action_list">';
foreach ($actions as $action) {
$actionText .= '<div class="mrgn_btn_5px" ><span class="action_name"><li class="">';
$actionText .= '<div class="flex_center mrgn_top-22px">';
$actionText .= '<div class="mrgn_lft_0px_imp">';
$actionText .= $action['name'];
if ($action['fires_min'] != $action['fires_max']) {
$actionText .= ' ('.$action['fires_min'].' / '.$action['fires_max'].')';
}
$actionText .= '</div>';
$actionText .= '<div class="flex_center table_action_buttons mrgn_lft_0px_imp">';
$actionText .= 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 (is_metaconsole() === true) {
@ -1520,7 +1547,7 @@ function ui_format_alert_row(
[
'alt' => __('Delete action'),
'title' => __('Delete action'),
'class' => 'main_menu_icon invert_filter vertical_baseline',
'class' => 'main_menu_icon invert_filter vertical_baseline action_button_hidden',
]
).'</a>';
}
@ -1534,7 +1561,7 @@ function ui_format_alert_row(
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['original_id'].'\',\''.$alert['id'].'\',\''.$alert['id_agent_module'].'\',\''.$action['original_id'].'\',\''.$alert['agent_name'].'\')',
]
);
@ -1542,32 +1569,15 @@ function ui_format_alert_row(
}
}
$actionText .= '</div>';
$actionText .= '</div>';
$actionText .= '<div id="update_action-div-'.$alert['id'].'" class="invisible">';
$actionText .= '</div>';
$actionText .= '</li></span></div>';
}
$actionText .= '</ul></div>';
if ($actionDefault !== '' && $actionDefault !== false) {
$actionDefault_name = db_get_sql(
sprintf(
'SELECT name FROM talert_actions WHERE id = %d',
$actionDefault
)
);
foreach ($actions as $action) {
if ($actionDefault_name === $action['name']) {
$hide_actionDefault = true;
} else {
$hide_actionDefault = false;
}
}
if ($hide_actionDefault !== true) {
$actionText .= $actionDefault_name.' <i>('.__('Default').')</i>';
}
}
}
$data[$index['action']] = $actionText;
@ -5411,7 +5421,7 @@ function ui_print_page_header(
if (is_metaconsole() === true) {
if ($help != '') {
$buffer .= "<div class='head_help'>".ui_print_help_icon($help, true, '', 'images/help_30.png').'</div>';
$buffer .= "<div class='head_help rounded-icon-header'>".ui_print_help_icon($help, true, '', 'images/help@header.svg').'</div>';
}
}

View File

@ -43,7 +43,16 @@ function clippy_modules_not_learning_mode()
$return_tours['tours']['modules_not_learning_mode']['steps'][] = [
'init_step_context' => true,
'position' => 'left',
'intro' => '<table><tr><td class="context_help_body">'.__('Please note that you have your agent setup to do not add new modules coming from the data XML.').'<br />'.__('That means if you have a local plugin or add manually new modules to the configuration file, you won\'t have it in your agent, unless you first create manually in the interface (with the exact name and type as coming in the XML file).').'<br />'.__('You should use the "normal" mode (non learn) only when you don\'t intend to add more modules to the agent.').'</td></tr></table>',
'intro' => __('Please note that you have your agent setup to do not add new modules coming from the data XML.').'<br />'.__('That means if you have a local plugin or add manually new modules to the configuration file, you won\'t have it in your agent, unless you first create manually in the interface (with the exact name and type as coming in the XML file).').'<br />'.__('You should use the "normal" mode (non learn) only when you don\'t intend to add more modules to the agent.'),
'title' => __('Modules not learning mode.'),
'img' => html_print_image(
'images/info-warning.svg',
true,
[
'class' => 'main_menu_icon invert_filter',
'style' => 'margin-left: 5px; width: 16px; height: 16px;',
]
),
];
$return_tours['tours']['modules_not_learning_mode']['conf'] = [];
$return_tours['tours']['modules_not_learning_mode']['conf']['autostart'] = false;

View File

@ -1416,7 +1416,7 @@ function check_event_sound(settings) {
);
li.insertAdjacentHTML(
"beforeend",
`<div class="li-title"><a href="javascript:" onclick="show_event_dialog('${b64}')">${element.message}</a></div>`
`<div class="li-title"><a class="sound-events-li-link" href="javascript:" onclick="show_event_dialog('${b64}')">${element.message}</a></div>`
);
li.insertAdjacentHTML(
"beforeend",

View File

@ -932,7 +932,7 @@ function add_macro_field(macro, row_model_id, type_copy, k) {
.html();
field_desc = field_desc.replace("macro_desc", macro_desc);
field_desc = field_desc.replace("macro_help", macro_help);
field_desc = field_desc.replaceAll("macro_help", macro_help);
$("#" + row_id)
.children()

View File

@ -2413,7 +2413,6 @@ date: 2018-05-14 15:05:04
});
}
console.log(vCard);
formattedVCardString +=
"FN" + encodingPrefix + ":" + e(formattedName) + nl();
formattedVCardString +=

View File

@ -504,9 +504,8 @@ class CustomGraphWidget extends Widget
break;
case CUSTOM_GRAPH_VBARS:
$style = 'padding: 10px;';
$height = $size['height'];
$output = '<div class="container-center" style="'.$style.'">';
$output = '<div class="container-center">';
break;
case CUSTOM_GRAPH_GAUGE:

View File

@ -50,6 +50,7 @@ class Group extends Entity
'loadInfoAgent',
'getAgentsByGroup',
'getGroupsName',
'checkGroupIsLinkedToElement',
];
@ -778,4 +779,35 @@ class Group extends Entity
}
/**
* Check whether group is linked to a database element (needed for ajax check).
*
* @return void
*/
public static function checkGroupIsLinkedToElement()
{
$group_id = get_parameter('group_id', null);
$table_name = get_parameter('table_name', null);
$field_name = get_parameter('field_name', null);
if (count(array_filter([$group_id, $table_name, $field_name])) < 3) {
$result['result'] = 0;
} else {
$sql = sprintf(
'SELECT * FROM %s WHERE %s = %s',
$table_name,
$field_name,
$group_id
);
$count = db_get_num_rows($sql);
$result['result'] = (int) ($count > 0);
}
echo json_encode($result);
exit;
}
}

View File

@ -450,7 +450,8 @@ li#search_input_widget {
}
div#dashboard-controls-slides {
width: 720px !important;
min-width: 720px;
text-wrap: nowrap;
}
div#dashboard-controls,

View File

@ -29,6 +29,5 @@ ul.wizard li.flex-indep {
}
.datatable_filter.content li input[type="text"] {
width: 150px;
margin: 0 1em 0 0;
}

View File

@ -584,3 +584,20 @@ div.container-filter-buttons {
#button-start-search {
width: 115px;
}
.events-refresh-pure {
position: fixed;
z-index: 1;
top: 10px;
right: 10px;
width: 450px;
height: 70px;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-evenly;
align-items: center;
background-color: #f2f6f7;
border-radius: 15px;
padding: 0px 10px;
}

View File

@ -7204,6 +7204,10 @@ div.graph div.legend table {
margin-left: 0px;
}
.mrgn_lft_0px_imp {
margin-left: 0px !important;
}
.mrgn_lft_2px {
margin-left: 2px;
}
@ -7346,6 +7350,10 @@ div.graph div.legend table {
margin-top: -15px;
}
.mrgn_top-22px {
margin-top: -22px;
}
.mrgn_top_0px {
margin-top: 0px;
}
@ -13986,3 +13994,8 @@ button.disabled {
.text-nowrap {
text-wrap: nowrap;
}
#wizard_table span#image_prev img {
height: 48px;
cursor: pointer;
}

View File

@ -1885,6 +1885,49 @@ a.link-bold {
font-weight: bold;
}
div#dashboard-controls-slides {
background-color: #333;
}
div#dashboard-controls-slides
.select2-container
.select2-selection--single
.select2-selection__rendered {
color: var(--text-color) !important;
}
div.events-refresh-pure {
background-color: #333;
}
#general-tactical-view * {
border-color: #333 !important;
}
#tree-controller-recipient .node-icon {
border-right-color: #333;
}
.tree-node {
background-image: url(../../images/tree/straight@tree-dark.svg);
}
#tree-controller-recipient .tree-node.leaf-closed > .leaf-icon {
background-image: url(../../images/tree/corner_straight_plus@tree-dark.svg);
}
#tree-controller-recipient .tree-node.leaf-open > .leaf-icon {
background-image: url(../../images/tree/corner_straight_minus@tree-dark.svg);
}
#tree-controller-recipient .tree-node > .leaf-icon {
background-image: url(../../images/tree/corner_straight@tree-dark.svg);
}
#tree-controller-recipient .tree-node:last-of-type > .leaf-icon {
background-image: url(../../images/tree/corner@tree-dark.svg);
}
#menu_full::after,
.white_table_graph.fixed_filter_bar::before {
background-color: #111;

View File

@ -195,6 +195,18 @@
width: 100%;
}
#tabs-sound-modal
div
.elements-discovered-alerts
ul
li
div.li-title
.sound-events-li-link
span {
line-break: anywhere;
line-height: 9pt;
}
.actions-sound-modal .buttons-sound-modal {
display: flex;
flex-direction: row;

View File

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

View File

@ -56,11 +56,11 @@ if (is_ajax() === true) {
echo '<td>';
if (tags_get_module_policy_tags($tag, $id_agente_modulo)) {
html_print_image(
'images/policies_mc.png',
'images/policy@svg.svg',
false,
[
'style' => 'vertical-align: middle;',
'class' => 'invert_filter',
'class' => 'invert_filter main_menu_icon',
]
);
}

View File

@ -1765,18 +1765,18 @@ if (is_ajax() === true) {
if ($linked) {
if ($adopt) {
$img = 'images/policies_brick.png';
$img = 'images/policies_brick.svg';
$title = __('(Adopt) ').$name_policy;
} else {
$img = 'images/policies_mc.png';
$img = 'images/policy@svg.svg';
$title = $name_policy;
}
} else {
if ($adopt) {
$img = 'images/policies_not_brick.png';
$img = 'images/policies_not_brick.svg';
$title = __('(Unlinked) (Adopt) ').$name_policy;
} else {
$img = 'images/unlinkpolicy.png';
$img = 'images/unlinkpolicy.svg';
$title = __('(Unlinked) ').$name_policy;
}
}

View File

@ -1682,24 +1682,31 @@ if (empty($result) === false) {
if ($linked) {
if ($adopt) {
$img = 'images/policies_brick.png';
$img = 'images/policies_brick.svg';
$title = __('(Adopt) ').$policyInfo['name_policy'];
} else {
$img = 'images/policies_mc.png';
$img = 'images/policy@svg.svg';
$title = $policyInfo['name_policy'];
}
} else {
if ($adopt) {
$img = 'images/policies_not_brick.png';
$img = 'images/policies_not_brick.svg';
$title = __('(Unlinked) (Adopt) ').$policyInfo['name_policy'];
} else {
$img = 'images/unlinkpolicy.png';
$img = 'images/unlinkpolicy.svg';
$title = __('(Unlinked) ').$policyInfo['name_policy'];
}
}
if (is_metaconsole()) {
$data[0] = '<a href="?sec=gmodules&sec2=advanced/policymanager&id='.$policyInfo['id_policy'].'">'.html_print_image($img, true, ['title' => $title]).'</a>';
$data[0] = '<a href="?sec=gmodules&sec2=advanced/policymanager&id='.$policyInfo['id_policy'].'">'.html_print_image(
$img,
true,
[
'title' => $title,
'class' => 'main_menu_icon',
]
).'</a>';
} else {
$data[0] = '<a href="?sec=gmodules&sec2=enterprise/godmode/policies/policies&id='.$policyInfo['id_policy'].'">'.html_print_image($img, true, ['title' => $title]).'</a>';
}

View File

@ -1673,13 +1673,10 @@ $url .= '';
if ($pure) {
// Fullscreen.
// Floating menu - Start.
echo '<div id="vc-controls" class="zindex999"">';
echo '<div id="menu_tab" class="menu_tab_pure">';
echo '<ul class="mn">';
echo '<div id="vc-controls" class="events-refresh-pure"">';
echo '<div>';
// Quit fullscreen.
echo '<li class="nomn">';
echo '<a target="_top" href="'.$url.'&amp;pure=0">';
echo html_print_image(
'images/exit_fullscreen@svg.svg',
@ -1690,12 +1687,10 @@ if ($pure) {
]
);
echo '</a>';
echo '</li>';
echo '</div>';
// Countdown.
echo '<li class="nomn">';
echo '<div class="events-refr">';
echo '<div class="events-countdown"><span id="refrcounter"></span></div>';
echo '<div id="events-refr-form">';
echo __('Refresh').':';
echo html_print_select(
@ -1710,16 +1705,8 @@ if ($pure) {
false
);
echo '</div>';
echo '</div>';
echo '</li>';
// Console name.
echo '<li class="nomn">';
echo '<div class="vc-title">'.__('Event viewer').'</div>';
echo '</li>';
echo '</ul>';
echo '</div>';
echo '<div class="events-countdown"><span id="refrcounter"></span></div>';
echo '</div>';
// Floating menu - End.
@ -3867,4 +3854,9 @@ function show_events_graph(){
}
});
}
$(document).ready(function () {
var controls = document.querySelector('.events-refresh-pure');
autoHideElement(controls, 1000);
});
</script>

View File

@ -511,7 +511,7 @@ function check_event_sound() {
);
li.insertAdjacentHTML(
"beforeend",
`<div class="li-title"><a href="javascript:" onclick="open_window_dialog('`+b64+`')">${element.message}</a></div>`
`<div class="li-title"><a class="sound-events-li-link" href="javascript:" onclick="open_window_dialog('`+b64+`')">${element.message}</a></div>`
);
li.insertAdjacentHTML(
"beforeend",

View File

@ -142,7 +142,7 @@ $table->data[0][11] = "<a href='index.php?search_category=reports&keywords=".$co
$table->data[0][12] = html_print_image('images/visual_console_green.png', true, ['title' => __('Visual consoles')]);
$table->data[0][13] = "<a href='index.php?search_category=maps&keywords=".$config['search_keywords']."&head_search_keywords=Search'>".sprintf(__('%s Found'), $totalMaps).'</a>';
if (enterprise_installed()) {
$table->data[0][14] = html_print_image('images/policies_mc.png', true, ['title' => __('Policies')]);
$table->data[0][14] = html_print_image('images/policy@svg.svg', true, ['title' => __('Policies'), 'class' => 'main_menu_icon']);
$table->data[0][15] = "<a href='index.php?search_category=policies&keywords=".$config['search_keywords']."&head_search_keywords=Search'>".sprintf(__('%s Found'), $totalPolicies).'</a>';
}

View File

@ -45,25 +45,34 @@ if (!$policies || !$searchpolicies) {
switch ($policie['status']) {
case POLICY_UPDATED:
$status = html_print_image(
'images/policies_ok.png',
'images/policies_ok.svg',
true,
['title' => __('Policy updated')]
[
'title' => __('Policy updated'),
'class' => 'main_menu_icon',
]
);
break;
case POLICY_PENDING_DATABASE:
$status = html_print_image(
'images/policies_error_db.png',
'images/policies_error_db.svg',
true,
['title' => __('Pending update policy only database')]
[
'title' => __('Pending update policy only database'),
'class' => 'main_menu_icon',
]
);
break;
case POLICY_PENDING_ALL:
$status = html_print_image(
'images/policies_error.png',
'images/policies_error.svg',
true,
['title' => __('Pending update policy')]
[
'title' => __('Pending update policy'),
'class' => 'main_menu_icon',
]
);
break;
}

View File

@ -168,9 +168,12 @@ if ($searchModules) {
if ($searchPolicies) {
$policies_tab = [
'text' => "<a href='index.php?search_category=policies&keywords=".$config['search_keywords']."&head_search_keywords=Search'>".html_print_image(
'images/policies_mc.png',
'images/policy@svg.svg',
true,
['title' => __('Policies')]
[
'title' => __('Policies'),
'class' => 'main_menu_icon',
]
).'</a>',
'active' => $searchTab == 'policies',
];

View File

@ -627,6 +627,14 @@ if ($pure === true) {
<?php
}
?>
<style type="text/css">
.visual-console-item-label p,pre,h4,h5,h6 {
margin-block-start: <?php echo $config['vc_text_margin'].'em'; ?>;
margin-block-end: <?php echo $config['vc_text_margin'].'em'; ?>;
}
</style>
<?php
// Check groups can access user.
$aclUserGroups = [];
if (users_can_manage_group_all('AR') === false) {

View File

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

View File

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

View File

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

View File

@ -3933,19 +3933,18 @@ CREATE TABLE IF NOT EXISTS `tdeployment_hosts` (
`id` SERIAL,
`id_cs` VARCHAR(100),
`ip` VARCHAR(100) NOT NULL UNIQUE,
`id_os` INT UNSIGNED DEFAULT 0,
`os_version` VARCHAR(100) DEFAULT '' COMMENT 'OS version in STR format',
`arch` ENUM('x64', 'x86') DEFAULT 'x64',
`current_agent_version` VARCHAR(100) DEFAULT '' COMMENT 'String latest installed agent',
`target_agent_version_id` BIGINT UNSIGNED,
`deployed` BIGINT NOT NULL DEFAULT 0 COMMENT 'When it was deployed',
`server_ip` VARCHAR(100) DEFAULT NULL COMMENT 'Where to point target agent',
`last_err` TEXT,
`deploy_method` ENUM('SSH', 'HTTP', 'HTTPS') DEFAULT 'SSH',
`deploy_port` INT UNSIGNED NOT NULL DEFAULT 22,
`server_port` INT UNSIGNED NOT NULL DEFAULT 41121,
`temp_folder` VARCHAR(500) DEFAULT '/tmp',
PRIMARY KEY (`id`),
FOREIGN KEY (`id_cs`) REFERENCES `tcredential_store`(`identifier`)
ON UPDATE CASCADE ON DELETE SET NULL,
FOREIGN KEY (`id_os`) REFERENCES `tconfig_os`(`id_os`)
ON UPDATE CASCADE ON DELETE CASCADE,
FOREIGN KEY (`target_agent_version_id`) REFERENCES `tagent_repository`(`id`)
ON UPDATE CASCADE ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4;
@ -4432,7 +4431,8 @@ CREATE TABLE IF NOT EXISTS `tfavmenu_user` (
`url` TEXT NOT NULL,
`label` VARCHAR(255) NOT NULL,
`section` VARCHAR(255) NOT NULL,
PRIMARY KEY (`id`));
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4;
-- ---------------------------------------------------------------------
-- Table `tsesion_filter_log_viewer`
@ -4578,7 +4578,7 @@ CREATE TABLE IF NOT EXISTS `tfiles_repo` (
`description` varchar(500) NULL default '',
`hash` varchar(8) NULL default '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4;
-- ---------------------------------------------------------------------
-- Table `tfiles_repo_group`
@ -4589,7 +4589,7 @@ CREATE TABLE IF NOT EXISTS `tfiles_repo_group` (
`id_group` int(4) unsigned NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (`id_file`) REFERENCES tfiles_repo(`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4;
-- -----------------------------------------------------
-- Table `tmodule_synth`

View File

@ -451,11 +451,11 @@ span.warning {
align-items: center;
justify-content: space-between;
}
.ui-dialog-content.ui-widget-content p {
/*.ui-dialog-content.ui-widget-content p {
font-size: 10pt;
word-break: keep-all;
text-align: justify;
}
}*/
.license_text {
text-align: left;

View File

@ -200,7 +200,10 @@ $output .= '<a id="prev-slide" href="'.$prev_slides_url.'">';
$output .= html_print_image(
'images/control_prev.png',
true,
['title' => __('Previous')]
[
'title' => __('Previous'),
'class' => 'invert_filter',
]
);
$output .= '</a>';
$output .= '</div>';
@ -215,7 +218,10 @@ $output .= '<a href="'.$url.'&'.$stop_slides_url.'">';
$output .= html_print_image(
'images/control_stop.png',
true,
['title' => __('Stop')]
[
'title' => __('Stop'),
'class' => 'invert_filter',
]
);
$output .= '</a>';
$output .= '</div>';
@ -226,7 +232,10 @@ $output .= '<a id="pause-btn" href="javascript:;">';
$output .= html_print_image(
'images/control_pause.png',
true,
['title' => __('Pause')]
[
'title' => __('Pause'),
'class' => 'invert_filter',
]
);
$output .= '</a>';
$output .= '</div>';
@ -237,7 +246,10 @@ $output .= '<a id="next-slide" href="'.$next_slides_url.'">';
$output .= html_print_image(
'images/control_next.png',
true,
['title' => __('Next')]
[
'title' => __('Next'),
'class' => 'invert_filter',
]
);
$output .= '</a>';
$output .= '</div>';
@ -249,14 +261,20 @@ if ($cellModeSlides === 0) {
$output .= html_print_image(
'images/visual_console.png',
true,
['title' => __('Boxed mode')]
[
'title' => __('Boxed mode'),
'class' => 'invert_filter',
]
);
$msg_tooltip = __('This mode will show the dashboard with all the widgets in the screen. Click to change to single screen mode.');
} else {
$output .= html_print_image(
'images/dashboard.png',
true,
['title' => __('Single screen')]
[
'title' => __('Single screen'),
'class' => 'invert_filter',
]
);
$msg_tooltip = __('This mode will show each widget in a screen, rotating between elements in each dashboard. Click to change to boxed mode.');
}
@ -275,5 +293,11 @@ $output .= '<div class="dashboard-title"><b>'.$name.'</b></div>';
$output .= '</div>';
$output .= '</div>';
$output .= '
<script>
var controls = document.querySelector("#dashboard-controls-slides");
autoHideElement(controls, 1000);
</script>
';
echo $output;

View File

@ -1,5 +1,5 @@
package: pandorafms-server
Version: 7.0NG.776-240402
Version: 7.0NG.776-240408
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-240408"
package_cpan=0
package_pandora=1

View File

@ -711,6 +711,9 @@ ncmserver_threads 1
# NCM utility to avoid Net::SSH::Expect issues in multi-threaded environments.
ncm_ssh_utility /usr/share/pandora_server/util/ncm_ssh_extension
# Utility to deploy software agents via SSH or WinRM.
agent_deployer_utility /usr/share/pandora_server/util/pandora_agent_deployer
# Pandora FMS Daemon Watchdog execution interval in seconds (PANDORA FMS ENTERPRISE ONLY).
ha_interval 30

View File

@ -21,7 +21,7 @@ daemon 1
#insecure 0
# [-i] Filters (regexp:dir;regexp:dir...).
filters .*\.conf:conf;.*\.md5:md5;.*\.zip:collections;.*\.lock:trans;.*\.rcmd:commands
filters .*\.conf:conf;.*\.md5:md5;.*\.zip:collections;.*\.lock:trans;.*\.rcmd:commands;.*\.agent_setup\.exe:agent;.*\.agent_setup\.tar\.gz:agent
# [-m] Maximum file size allowed by the server in bytes
# max_size 2000000

View File

@ -46,7 +46,7 @@ our @EXPORT = qw(
# version: Defines actual version of Pandora Server for this module only
my $pandora_version = "7.0NG.776";
my $pandora_build = "240402";
my $pandora_build = "240408";
our $VERSION = $pandora_version." ".$pandora_build;
# Setup hash
@ -556,6 +556,8 @@ sub pandora_load_config {
$pa_config->{'ncmserver_threads'} = 1; # 7.0.758
$pa_config->{'ncm_ssh_utility'} = '/usr/share/pandora_server/util/ncm_ssh_extension'; # 7.0.758
$pa_config->{'agent_deployer_utility'} = '/usr/share/pandora_server/util/pandora_agent_deployer'; # 7.0.777
$pa_config->{"pandora_service_cmd"} = 'service pandora_server'; # 7.0.761
$pa_config->{"tentacle_service_cmd"} = 'service tentacle_serverd'; # 7.0.761
$pa_config->{"tentacle_service_watchdog"} = 1; # 7.0.761
@ -1337,6 +1339,9 @@ sub pandora_load_config {
elsif ($parametro =~ m/^ncm_ssh_utility\s+(.*)/i) {
$pa_config->{'ncm_ssh_utility'}= clean_blank($1);
}
elsif ($parametro =~ m/^agent_deployer_utility\s+(.*)/i) {
$pa_config->{'agent_deployer_utility'}= clean_blank($1);
}
elsif ($parametro =~ m/^ha_file\s(.*)/i) {
$pa_config->{'ha_file'} = clean_blank($1);
}

View File

@ -3775,9 +3775,6 @@ sub pandora_delete_module {
# Delete templates asociated to the module
db_do ($dbh, 'DELETE FROM talert_template_modules WHERE id_agent_module = ?', $module_id);
# Delete events asociated to the module
db_do ($dbh, 'DELETE FROM tevento WHERE id_agentmodule = ?', $module_id);
# Delete tags asociated to the module
db_do ($dbh, 'DELETE FROM ttag_module WHERE id_agente_modulo = ?', $module_id);
@ -4067,8 +4064,16 @@ sub pandora_check_type_custom_field_for_itsm ($) {
##########################################################################
sub pandora_update_agent_custom_field ($$$$) {
my ($dbh, $token, $field, $id_agent) = @_;
my $exist_field = get_db_value($dbh, 'SELECT count(*) FROM tagent_custom_data WHERE id_field = ? AND id_agent = ?', $field, $id_agent);
my $result = undef;
$result = db_update ($dbh, 'UPDATE tagent_custom_data SET description = ? WHERE id_field = ? AND id_agent = ?', safe_input($token), $field, $id_agent);
$token = safe_input($token);
if (!$exist_field) {
$result = defined(db_insert ($dbh, 'id_field', 'INSERT INTO tagent_custom_data (`description`, `id_field`, `id_agent`) VALUES (?, ?, ?)', $token, $field, $id_agent)) ? 1 : 0;
} else {
$result = db_update ($dbh, 'UPDATE tagent_custom_data SET description = ? WHERE id_field = ? AND id_agent = ?', $token, $field, $id_agent);
}
return $result;
}

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