Merge branch 'ent-9662-Restyling-fuentes-colores-botones' of brutus.artica.es:artica/pandorafms into ent-9662-Restyling-fuentes-colores-botones

This commit is contained in:
Pablo Aragon 2023-03-07 08:28:22 +01:00
commit 62afce562f
82 changed files with 922 additions and 526 deletions
pandora_agents
pandora_console
pandora_server

@ -1,5 +1,5 @@
package: pandorafms-agent-unix
Version: 7.0NG.769-230306
Version: 7.0NG.769-230307
Architecture: all
Priority: optional
Section: admin

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

@ -1023,7 +1023,7 @@ my $Sem = undef;
my $ThreadSem = undef;
use constant AGENT_VERSION => '7.0NG.769';
use constant AGENT_BUILD => '230306';
use constant AGENT_BUILD => '230307';
# Agent log default file size maximum and instances
use constant DEFAULT_MAX_LOG_SIZE => 600000;

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

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

@ -10,7 +10,7 @@
# **********************************************************************
PI_VERSION="7.0NG.769"
PI_BUILD="230306"
PI_BUILD="230307"
OS_NAME=`uname -s`
FORCE=0

@ -186,7 +186,7 @@ UpgradeApplicationID
{}
Version
{230306}
{230307}
ViewReadme
{Yes}

@ -30,7 +30,7 @@ using namespace Pandora;
using namespace Pandora_Strutils;
#define PATH_SIZE _MAX_PATH+1
#define PANDORA_VERSION ("7.0NG.769 Build 230306")
#define PANDORA_VERSION ("7.0NG.769 Build 230307")
string pandora_path;
string pandora_dir;

@ -11,7 +11,7 @@ BEGIN
VALUE "LegalCopyright", "Artica ST"
VALUE "OriginalFilename", "PandoraAgent.exe"
VALUE "ProductName", "Pandora FMS Windows Agent"
VALUE "ProductVersion", "(7.0NG.769(Build 230306))"
VALUE "ProductVersion", "(7.0NG.769(Build 230307))"
VALUE "FileVersion", "1.0.0.0"
END
END

@ -1,5 +1,5 @@
package: pandorafms-console
Version: 7.0NG.769-230306
Version: 7.0NG.769-230307
Architecture: all
Priority: optional
Section: admin

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

@ -838,7 +838,7 @@ function mainAgentsModules()
echo '<tr>';
echo "<th width='140px' class='pdd_r_10px lign_right'>".__('Agents').' / '.__('Modules').'</th>';
echo "<th width='140px' class='pdd_r_10px align_right'>".__('Agents').' / '.__('Modules').'</th>';
if ($hor_offset > 0) {
$new_hor_offset = ($hor_offset - $block);

@ -258,8 +258,15 @@ function pandora_realtime_graphs()
$canvas .= grafico_modulo_sparse($params);
$canvas .= '</div>';
echo $canvas;
html_print_div(
[
'class' => 'white_box',
'content' => $canvas,
]
);
// echo $canvas;
// Define a custom action to save
// the OID selected in the SNMP browser to the form.
html_print_input_hidden(

@ -561,9 +561,36 @@ if (isset($correct_reset_pass_process)) {
}
if (isset($login_failed)) {
$nick = get_parameter_post('nick');
$fails = db_get_value('failed_attempt', 'tusuario', 'id_user', $nick);
$nick = io_safe_input(get_parameter_post('nick'));
$user_in_db = db_get_row_filter(
'tusuario',
['id_user' => $nick],
'*'
);
$fails = $user_in_db['failed_attempt'];
// If user not exist, and attempts its enable, lets make array and fails attemps.
if ($fails == false && $config['enable_pass_policy'] && $user_in_db === false) {
$nick_array_error = json_decode(base64_decode($config['nicks_error']), true);
$nick = strtolower($nick);
if (isset($nick_array_error[$nick]) !== false) {
$nick_array_error[$nick] += 1;
} else {
$nick_array_error[$nick] = 1;
}
$fails = $nick_array_error[$nick];
// Save or update the array.
if ($config['nicks_error']) {
config_update_value('nicks_error', base64_encode(json_encode($nick_array_error)));
} else {
config_create_value('nicks_error', base64_encode(json_encode($nick_array_error)));
}
} else {
$fails = ++$fails;
}
$attemps = ($config['number_attempts'] - $fails);
$attemps = ($attemps < 0) ? 0 : $attemps;
echo '<div id="login_failed" title="'.__('Login failed').'">';
echo '<div class="content_alert">';
echo '<div class="icon_message_alert">';
@ -576,7 +603,12 @@ if (isset($login_failed)) {
echo '</div>';
if ($config['enable_pass_policy']) {
echo '<div class="text_message_alert">';
echo '<p><strong>Remaining attempts: '.$attemps.'</strong></p>';
if ($attemps !== 0 && $user_in_db['login_blocked'] == 0) {
echo '<p><strong>'.__('Remaining attempts: ').$attemps.'</strong></p>';
} else {
echo '<p><strong>'.__('User is blocked').'</strong></p>';
}
echo '</div>';
}
@ -873,7 +905,8 @@ html_print_div(['id' => 'forced_title_layer', 'class' => 'forced_title_layer', '
resizable: true,
draggable: true,
modal: true,
width: 528,
height: 230,
width: 530,
overlay: {
opacity: 0.5,
background: "black"
@ -886,7 +919,6 @@ html_print_div(['id' => 'forced_title_layer', 'class' => 'forced_title_layer', '
$("#login_correct_pass").dialog('close');
});
});
$('#nick').focus();
break;
}

@ -390,7 +390,10 @@ html_print_div(
'go_back',
false,
'',
['icon' => 'back'],
[
'icon' => 'back',
'mode' => 'secondary',
],
true
).html_print_submit_button(
$buttonCaption,

@ -250,7 +250,7 @@ if ($favorite_array == false) {
echo "<a href='".$url."' title='Visual console".$favourite_v['name']."' alt='".$favourite_v['name']."'><li>";
echo "<div class='icon_img'>";
echo html_print_image(
'images/'.groups_get_icon($favourite_v['id_group']).'.png',
'images/'.groups_get_icon($favourite_v['id_group']),
true,
['style' => '']
);

@ -55,17 +55,19 @@ function get_wiz_class($str)
default:
// Main, show header.
ui_print_page_header(
ui_print_standard_header(
__('Discovery'),
'',
false,
'',
true,
'',
false,
'',
GENERIC_SIZE_TEXT,
''
[],
[
[
'link' => '',
'label' => __('Discovery'),
],
]
);
return null;
}

@ -454,22 +454,6 @@ if (empty($create) === false || empty($view) === false) {
$data[0] = html_print_textarea('form_description', 4, 50, $form_description, '', true, 'w100p');
$table->colspan['plugin_desc_inputs'][0] = 3;
$table->data['plugin_desc_inputs'] = $data;
/*
if (is_metaconsole() === true) {
$table->head[0] = __('General');
$table->head_colspan[0] = 4;
$table->headstyle[0] = 'text-align: center';
html_print_table($table);
} else {
echo '<fieldset><legend>'.__('General').'</legend>';
html_print_table($table);
echo '</fieldset>';
}
html_print_table($table);
$table->data = [];
*/
// Command title.
$commandTitleContent = [];
@ -528,20 +512,6 @@ if (empty($create) === false || empty($view) === false) {
$data[0] = html_print_div(['id' => 'command_preview', 'class' => 'mono'], true);
$table->data['plugin_preview_inputs'] = $data;
$table->colspan['plugin_preview_inputs'][0] = 2;
/*
$table->width = '100%';
$table->class = 'databox filters';
if (is_metaconsole() === true) {
$table->head[0] = __('Command');
$table->head_colspan[0] = 4;
$table->headstyle[0] = 'text-align: center';
html_print_table($table);
} else {
echo '<fieldset><legend>'.__('Command').'</legend>';
html_print_table($table);
echo '</fieldset>';
}
*/
// Parameters macros title.
$macrosTitleContent = [];
@ -696,11 +666,27 @@ if (empty($create) === false || empty($view) === false) {
echo '<tr><td align="right">';
if ($create != '') {
echo "<input name='crtbutton' type='submit' class='sub wand' value='".__('Create')."'>";
$button = html_print_submit_button(
__('Create'),
'crtbutton',
false,
[ 'icon' => 'wand' ],
true
);
} else {
echo "<input name='uptbutton' type='submit' class='sub upd' value='".__('Update')."'>";
$button = html_print_submit_button(
__('Update'),
'uptbutton',
false,
[ 'icon' => 'upd' ],
true
);
}
html_print_action_buttons(
$button
);
echo '</form></table>';
if (defined('METACONSOLE')) {

@ -60,12 +60,23 @@ if (is_metaconsole() === true) {
return;
}
} else {
ui_print_page_header(
ui_print_standard_header(
__('PLUGIN REGISTRATION'),
'images/gm_servers.png',
false,
'',
true
true,
[],
[
[
'link' => '',
'label' => __('Servers'),
],
[
'link' => '',
'label' => __('Register plugin'),
],
]
);
$management_allowed = is_management_allowed();

@ -175,6 +175,7 @@ class DiscoveryTaskList extends HTML
'action' => ui_get_full_url(
'index.php?sec=gservers&sec2=godmode/servers/discovery'
),
'class' => 'flex_center',
],
'inputs' => [
[
@ -182,25 +183,27 @@ class DiscoveryTaskList extends HTML
'name' => 'submit',
'label' => __('Go back'),
'type' => 'submit',
'attributes' => [ 'icon' => 'cancel' ],
'attributes' => [
'icon' => 'back',
'mode' => 'secondary',
],
'return' => true,
],
],
[
'class' => 'action-buttons rule-builder-actions',
'arguments' => [
'name' => 'refresh',
'label' => __('Refresh'),
'type' => 'button',
'attributes' => [ 'icon' => 'cog'],
'return' => true,
'script' => 'location.href = \''.$this->url.'\';',
'script' => 'location.href = "'.$this->url.'";',
],
],
],
];
$this->printForm($form);
html_print_action_buttons($this->printForm($form, true));
}
return $ret;

@ -635,6 +635,7 @@ class HostDevices extends Wizard
'form' => [
'method' => 'POST',
'action' => $this->url.'&mode=netscan&page='.($this->page - 1).'&task='.$this->task['id_rt'],
'class' => 'flex_center',
],
'inputs' => [
[
@ -649,7 +650,10 @@ class HostDevices extends Wizard
'name' => 'submit',
'label' => __('Go back'),
'type' => 'submit',
'attributes' => ['icon' => 'cancel'],
'attributes' => [
'icon' => 'back',
'mode' => 'secondary',
],
'return' => true,
],
],
@ -667,7 +671,7 @@ class HostDevices extends Wizard
$form['form']['action'] = $this->url.'&mode=netscan&page='.($this->page - 1);
}
$this->printForm($form);
html_print_action_buttons($this->printForm($form, true));
return null;
}
@ -734,6 +738,7 @@ class HostDevices extends Wizard
'form' => [
'method' => 'POST',
'action' => $this->url.'&mode=netscan&page=0',
'class' => 'flex_center',
],
'inputs' => [
[
@ -748,14 +753,17 @@ class HostDevices extends Wizard
'name' => 'submit',
'label' => __('Go back'),
'type' => 'submit',
'attributes' => ['icon' => 'cancel'],
'attributes' => [
'icon' => 'back',
'mode' => 'secondary',
],
'return' => true,
],
],
],
];
$this->printForm($form);
html_print_action_buttons($this->printForm($form, true));
return null;
}
@ -786,15 +794,6 @@ class HostDevices extends Wizard
'width' => '30%',
'style' => 'padding: 9px;min-width: 250px;',
'inputs' => [
'0' => [
'arguments' => [
'name' => 'submit',
'label' => $str,
'type' => 'submit',
'attributes' => 'class="sub next"',
'return' => true,
],
],
'1' => '<div class="height_50p mrgn_btn_35px">'.html_print_image('images/wizard/netscan_green.png', true, ['title' => __('Close')], false).'</div>',
'2' => [
'label' => '<b>'.__('Interval').':</b>'.ui_print_help_tip(
@ -982,6 +981,7 @@ class HostDevices extends Wizard
'method' => 'POST',
'enctype' => 'multipart/form-data',
'action' => $this->url.'&mode=netscan&page='.($this->page + 1).$task_url,
'id' => 'form-netscan-definition',
];
// Default.
@ -1021,7 +1021,24 @@ class HostDevices extends Wizard
';
$this->printFormAsGrid($form);
$this->printGoBackButton($this->url.'&page='.($this->page - 1));
$output_form = $this->printInput(
[
'name' => 'submit',
'label' => $str,
'type' => 'submit',
'attributes' => [
'icon' => 'next',
'form' => 'form-netscan-definition',
],
'return' => true,
'width' => 'initial',
]
);
$output_form .= $this->printGoBackButton($this->url.'&page='.($this->page - 1), true);
html_print_action_buttons($output_form);
}
}
@ -1586,24 +1603,31 @@ class HostDevices extends Wizard
}
}
// Submit button.
$form['inputs'][] = [
'arguments' => [
'name' => 'submit-finish',
'label' => __('Finish'),
'type' => 'submit',
'attributes' => 'class="sub next"',
'return' => true,
],
];
$form['form'] = [
'method' => 'POST',
'action' => $this->url.'&mode=netscan&page='.($this->page + 1).'&task='.$this->task['id_rt'],
'id' => 'form-netscan-feature',
];
$this->printFormAsList($form);
$this->printGoBackButton($this->url.'&mode=netscan&task='.$this->task['id_rt'].'&page='.($this->page - 1));
$output_form = $this->printInput(
[
'name' => 'submit-finish',
'label' => __('Finish'),
'type' => 'submit',
'attributes' => [
'icon' => 'next',
'form' => 'form-netscan-feature',
],
'return' => true,
'width' => 'initial',
]
);
$output_form .= $this->printGoBackButton($this->url.'&mode=netscan&task='.$this->task['id_rt'].'&page='.($this->page - 1), true);
html_print_action_buttons($output_form);
}
if ($this->page == 2) {

@ -395,7 +395,7 @@ class Wizard
*
* @return void
*/
public function printGoBackButton($url=null)
public function printGoBackButton($url=null, $return=false)
{
if (isset($url) === false) {
$url = ui_get_full_url(
@ -415,14 +415,21 @@ class Wizard
'name' => 'submit',
'label' => __('Go back'),
'type' => 'submit',
'attributes' => ['icon' => 'cancel'],
'attributes' => [
'icon' => 'back',
'mode' => 'secondary',
],
'return' => true,
],
],
],
];
$this->printForm($form);
if ($return === true) {
return $this->printForm($form, $return);
}
$this->printForm($form, $return);
}

@ -0,0 +1,9 @@
<?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 / HP@svg</title>
<desc>Created with Sketch.</desc>
<g id="Dark-/-20-/-HP" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M10.0278,-5.4e-05 L7.8762,6.0324 L9.33882,6.032858 C10.39242,6.033164 10.84078,6.863878 10.509,7.794178 L8.3696,13.792378 L6.2168,13.792378 L8.5706,7.192378 L7.46216,7.192378 L5.10856,13.792378 L2.93716,13.792378 L7.76676,0.250178 C3.31916,1.264798 -4e-05,5.244378 -4e-05,9.999378 C-4e-05,14.680378 3.21636,18.609578 7.55956,19.698978 L12.43896,5.998778 L15.97276,5.998778 C16.70366,5.998778 17.62292,6.491598 17.22568,7.613258 L15.24162,13.215458 C14.98818,13.931058 14.38576,14.076078 13.90584,14.076078 L11.73344,14.076078 L9.62644,19.991878 C9.750502,19.996424 9.8748,19.999546 9.99988,19.999546 C15.52268,19.999546 19.99988,15.522546 19.99988,9.999546 C19.99988,4.485946 15.53768,0.014946 10.02748,-5.4e-05 L10.0278,-5.4e-05 Z M14.1908,7.1762 L12.1414,12.929 L13.23274,12.929 L15.28254,7.1762 L14.1908,7.1762 Z" id="Shape" fill="#3F3F3F"></path>
</g>
</svg>

After

(image error) Size: 1.2 KiB

@ -0,0 +1,9 @@
<?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 / aix@svg</title>
<desc>Created with Sketch.</desc>
<g id="Dark-/-20-/-aix" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M1.87794769,15 L2.63684436,12.7150917 L6.34128912,12.7150917 L7.10018579,15 L9.02958411,15 L5.55666714,5 L3.49864228,5 L0,15 L1.87794769,15 Z M5.74960697,10.9379408 L3.22852651,10.9379408 L4.48906674,7.15796897 L5.74960697,10.9379408 Z M11.2862655,15 L11.2862655,5 L9.48549378,5 L9.48549378,15 L11.2862655,15 Z M13.9031013,15 L15.8839503,11.5444288 L17.8519365,15 L20,15 L17.0030013,10.0070522 L19.9871373,5 L17.9162498,5 L15.9225382,8.45557123 L13.9674146,5 L11.8322138,5 L14.8163499,9.99294781 L11.8193512,15 L13.9031013,15 Z" id="AIX" fill="#3F3F3F"></path>
</g>
</svg>

After

(image error) Size: 985 B

@ -0,0 +1,9 @@
<?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 / android@svg</title>
<desc>Created with Sketch.</desc>
<g id="Dark-/-20-/-android" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M5.2,15.0010417 C5.2,15.459375 5.56,15.834375 6,15.834375 L6.8,15.834375 L6.8,18.7510417 C6.8,19.4427083 7.336,20.0010417 8,20.0010417 C8.664,20.0010417 9.2,19.4427083 9.2,18.7510417 L9.2,15.834375 L10.8,15.834375 L10.8,18.7510417 C10.8,19.4427083 11.336,20.0010417 12,20.0010417 C12.664,20.0010417 13.2,19.4427083 13.2,18.7510417 L13.2,15.834375 L14,15.834375 C14.44,15.834375 14.8,15.459375 14.8,15.0010417 L14.8,6.66770833 L5.2,6.66770833 L5.2,15.0010417 Z M3.2,6.66770833 C2.536,6.66770833 2,7.22604167 2,7.91770833 L2,13.7510417 C2,14.4427083 2.536,15.0010417 3.2,15.0010417 C3.864,15.0010417 4.4,14.4427083 4.4,13.7510417 L4.4,7.91770833 C4.4,7.22604167 3.864,6.66770833 3.2,6.66770833 Z M16.8,6.66770833 C16.136,6.66770833 15.6,7.22604167 15.6,7.91770833 L15.6,13.7510417 C15.6,14.4427083 16.136,15.0010417 16.8,15.0010417 C17.464,15.0010417 18,14.4427083 18,13.7510417 L18,7.91770833 C18,7.22604167 17.464,6.66770833 16.8,6.66770833 Z M12.824,1.80104167 L13.868,0.713541667 C14.024,0.551041667 14.024,0.288541667 13.868,0.126041667 C13.712,-0.0364583333 13.46,-0.0364583333 13.304,0.126041667 L12.12,1.35520833 C11.48,1.02604167 10.764,0.834375 10,0.834375 C9.232,0.834375 8.512,1.02604167 7.868,1.359375 L6.68,0.121875 C6.524,-0.040625 6.272,-0.040625 6.116,0.121875 C5.96,0.284375 5.96,0.546875 6.116,0.709375 L7.164,1.80104167 C5.976,2.71354167 5.2,4.18020833 5.2,5.834375 L14.8,5.834375 C14.8,4.17604167 14.02,2.709375 12.824,1.80104167 L12.824,1.80104167 Z M8.4,4.16770833 L7.6,4.16770833 L7.6,3.334375 L8.4,3.334375 L8.4,4.16770833 Z M12.4,4.16770833 L11.6,4.16770833 L11.6,3.334375 L12.4,3.334375 L12.4,4.16770833 Z" id="Shape" fill="#3F3F3F"></path>
</g>
</svg>

After

(image error) Size: 2.0 KiB

@ -0,0 +1,9 @@
<?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 / apple@svg</title>
<desc>Created with Sketch.</desc>
<g id="Dark-/-20-/-apple" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M11.0394997,4.66404762 C10.7565148,4.75190476 10.3564955,4.8197619 9.84499307,4.86785714 C9.86801773,3.67395238 10.1655182,2.64414286 10.7419537,1.77985714 C11.307787,0.921142857 12.2636289,0.327809524 13.6111176,0 C13.6194902,0.022952381 13.63032,0.0689047619 13.6406947,0.132714286 C13.6511605,0.19652381 13.6615807,0.240285714 13.6700443,0.264380952 C13.6700443,0.296095238 13.672092,0.336619048 13.6762783,0.384714286 C13.6784169,0.433238095 13.6804646,0.472619048 13.6804646,0.505761905 C13.6804646,0.994428571 13.5693001,1.53852381 13.3473806,2.13947619 C13.1188176,2.74042857 12.7623449,3.2932381 12.2803742,3.79795238 C11.8674319,4.22971429 11.4523965,4.5192381 11.0394997,4.66404762 Z M16.1848286,13.0888571 C15.6568996,12.2968095 15.3927985,11.4019048 15.3927985,10.4085714 C15.3927985,9.5027619 15.6402454,8.67347619 16.1388703,7.9212381 C16.4071577,7.511 16.8431246,7.03942857 17.4486823,6.50233333 C17.0504375,5.98890476 16.6524659,5.58995238 16.2542211,5.30038095 C15.5331762,4.78038095 14.7178484,4.51928571 13.8062812,4.51928571 C13.263336,4.51928571 12.6008993,4.65528571 11.8213826,4.92733333 C11.0712155,5.20157143 10.5219454,5.33614286 10.1781226,5.33614286 C9.91816235,5.33614286 9.39018779,5.21690476 8.59360736,4.97585714 C7.78901835,4.73519048 7.11197504,4.61590476 6.5607028,4.61590476 C5.24242726,4.61590476 4.15667348,5.19242857 3.29734403,6.3462381 C2.43178063,7.51538095 2,9.01561905 2,10.840381 C2,12.7818571 2.56383115,14.7951429 3.68935479,16.8875714 C4.82957599,18.9625238 5.9822651,20 7.14541995,20 C7.53533756,20 8.04238062,19.8639524 8.66090671,19.5919524 C9.28116193,19.3268571 9.82610921,19.1948095 10.2933824,19.1948095 C10.7903692,19.1948095 11.3687614,19.3231429 12.0266934,19.5787619 C12.722575,19.8355238 13.2591952,19.9635238 13.6345063,19.9635238 C14.6154205,19.9635238 15.5980638,19.1787619 16.5873507,17.6081429 C17.2288559,16.6067619 17.7003154,15.6057619 18,14.604381 C17.3166317,14.3870952 16.7131672,13.8827143 16.1848286,13.0888571 Z" id="Shape" fill="#3F3F3F"></path>
</g>
</svg>

After

(image error) Size: 2.4 KiB

@ -0,0 +1,9 @@
<?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 / cisco@svg</title>
<desc>Created with Sketch.</desc>
<g id="Dark-/-20-/-cisco" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M10,1 C10.5522847,1 11,1.44771525 11,2 L11,18 C11,18.5522847 10.5522847,19 10,19 C9.44771525,19 9,18.5522847 9,18 L9,2 C9,1.44771525 9.44771525,1 10,1 Z M2,10 C2.55228475,10 3,10.4477153 3,11 L3,15 C3,15.5522847 2.55228475,16 2,16 C1.44771525,16 1,15.5522847 1,15 L1,11 C1,10.4477153 1.44771525,10 2,10 Z M18,10 C18.5522847,10 19,10.4477153 19,11 L19,15 C19,15.5522847 18.5522847,16 18,16 C17.4477153,16 17,15.5522847 17,15 L17,11 C17,10.4477153 17.4477153,10 18,10 Z M6,7 C6.55228475,7 7,7.44771525 7,8 L7,15 C7,15.5522847 6.55228475,16 6,16 C5.44771525,16 5,15.5522847 5,15 L5,8 C5,7.44771525 5.44771525,7 6,7 Z M14,7 C14.5522847,7 15,7.44771525 15,8 L15,15 C15,15.5522847 14.5522847,16 14,16 C13.4477153,16 13,15.5522847 13,15 L13,8 C13,7.44771525 13.4477153,7 14,7 Z" id="Rectangle-2" fill="#3F3F3F"></path>
</g>
</svg>

After

(image error) Size: 1.2 KiB

@ -0,0 +1,9 @@
<?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 / cluster@svg</title>
<desc>Created with Sketch.</desc>
<g id="Dark-/-20-/-cluster" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M17.5,0 C18.8807119,0 20,1.11928813 20,2.5 C20,3.88071187 18.8807119,5 17.5,5 C17.3026027,5 17.1105489,4.977122 16.9263454,4.93387288 L14.9331138,7.59060703 C15.5985973,8.37510409 16,9.39067573 16,10.5 C16,11.504515 15.6708634,12.432156 15.1145512,13.1809622 L15.9720349,14.1807472 C16.2926832,14.0638016 16.6388907,14 17,14 C18.6568542,14 20,15.3431458 20,17 C20,18.6568542 18.6568542,20 17,20 C15.3431458,20 14,18.6568542 14,17 C14,16.4345193 14.1564552,15.9055807 14.4284396,15.4541103 L13.5964354,14.4828542 C12.9703763,14.8130715 12.2570179,15 11.5,15 C10.4184206,15 9.42596284,14.6184248 8.64990073,13.9825485 L4.9231838,16.8826056 C4.97334364,17.0800759 5,17.286925 5,17.5 C5,18.8807119 3.88071187,20 2.5,20 C1.11928813,20 0,18.8807119 0,17.5 C0,16.1192881 1.11928813,15 2.5,15 C2.93302326,15 3.34033301,15.1100926 3.695466,15.3038146 L7.42210476,12.4053628 C7.15129362,11.8267624 7,11.1810495 7,10.5 C7,9.93569273 7.10387106,9.39564584 7.29353681,8.89793571 L4.9131003,7.31095819 C4.39382577,7.74131605 3.72712232,8 3,8 C1.34314575,8 0,6.65685425 0,5 C0,3.34314575 1.34314575,2 3,2 C4.65685425,2 6,3.34314575 6,5 C6,5.20267764 5.97990138,5.40066099 5.94158851,5.5920657 L8.40424149,7.23405918 C9.21087779,6.4692008 10.300645,6 11.5,6 C12.1531955,6 12.7738858,6.13917129 13.3340363,6.38947928 L15.3255151,3.73441568 C15.1183351,3.37024248 15,2.94894056 15,2.5 C15,1.11928813 16.1192881,0 17.5,0 Z" id="Oval-Copy-5" fill="#3F3F3F"></path>
</g>
</svg>

After

(image error) Size: 1.8 KiB

@ -0,0 +1,9 @@
<?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 / embedded@svg</title>
<desc>Created with Sketch.</desc>
<g id="Dark-/-20-/-embedded" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M12,0 C12.5522847,-1.01453063e-16 13,0.44771525 13,1 L13,3 L15,3 C16.1045695,3 17,3.8954305 17,5 L17,6.999 L19,7 C19.5522847,7 20,7.44771525 20,8 C20,8.55228475 19.5522847,9 19,9 L17,9 L17,11 L19,11 C19.5522847,11 20,11.4477153 20,12 C20,12.5522847 19.5522847,13 19,13 L17,13 L17,15 C17,16.1045695 16.1045695,17 15,17 L13,17 L13,19 C13,19.5522847 12.5522847,20 12,20 C11.4477153,20 11,19.5522847 11,19 L11,17 L9,17 L9,19 C9,19.5522847 8.55228475,20 8,20 C7.44771525,20 7,19.5522847 7,19 L7,17 L5,17 C3.8954305,17 3,16.1045695 3,15 L3,13 L1,13 C0.44771525,13 0,12.5522847 0,12 C0,11.4477153 0.44771525,11 1,11 L3,11 L3,9 L1,9 C0.44771525,9 0,8.55228475 0,8 C0,7.44771525 0.44771525,7 1,7 L3,7 L3,5 C3,3.8954305 3.8954305,3 5,3 L7,3 L7,1 C7,0.44771525 7.44771525,1.01453063e-16 8,0 C8.55228475,-1.01453063e-16 9,0.44771525 9,1 L9,3 L11,3 L11,1 C11,0.44771525 11.4477153,1.01453063e-16 12,0 Z M9,10 L6,10 C5.44771525,10 5,10.4477153 5,11 L5,11 L5,14 C5,14.5522847 5.44771525,15 6,15 L6,15 L9,15 C9.55228475,15 10,14.5522847 10,14 L10,14 L10,11 C10,10.4477153 9.55228475,10 9,10 L9,10 Z" id="Rectangle-2" fill="#3F3F3F"></path>
</g>
</svg>

After

(image error) Size: 1.5 KiB

@ -0,0 +1,9 @@
<?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 / freebsd@svg</title>
<desc>Created with Sketch.</desc>
<g id="Dark-/-20-/-freebsd" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M19.771875,0.5025 C20.834375,1.565 17.8875,6.2196875 17.390625,6.716875 C16.89375,7.2140625 15.640625,6.75625 14.578125,5.69625 C13.515625,4.63625 13.060625,3.38375 13.5575,2.88375 C14.0575,2.3734375 18.7121875,-0.55375 19.771875,0.5025 L19.771875,0.5025 Z M4.90625,1.625 C3.286875,0.711875 0.984375,-0.3084375 0.251875,0.4240625 C-0.49375,1.1696875 0.5625,3.525 1.4946875,5.146875 C2.31875,3.6946875 3.49625,2.49125 4.90625,1.625 Z M18.149375,6.350625 C18.293125,6.8609375 18.2671875,7.279375 18.0315625,7.515 C17.4690625,8.0775 15.9384375,7.475625 14.5646875,6.1675 C14.473125,6.0759375 14.3684375,5.9975 14.2771875,5.8925 C13.7771875,5.3925 13.3875,4.871875 13.1521875,4.375 C12.6678125,3.5115625 12.5503125,2.75 12.9165625,2.38625 C13.1128125,2.19 13.426875,2.1378125 13.8228125,2.203125 C14.07125,2.04625 14.3721875,1.859375 14.699375,1.6796875 C13.3609375,0.9865625 11.85625,0.59375 10.2603125,0.59375 C4.94875,0.59375 0.6446875,4.898125 0.6446875,10.209375 C0.6446875,15.520625 4.9490625,19.825 10.2603125,19.825 C15.5715625,19.825 19.8759375,15.520625 19.8759375,10.209375 C19.8759375,8.495625 19.43125,6.88625 18.633125,5.4865625 C18.4886933,5.78354044 18.3270647,6.0718424 18.1490625,6.35 L18.149375,6.350625 Z" id="Shape" fill="#3F3F3F"></path>
</g>
</svg>

After

(image error) Size: 1.6 KiB

@ -0,0 +1,9 @@
<?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 / linux@svg</title>
<desc>Created with Sketch.</desc>
<g id="Dark-/-20-/-linux" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M6.05224,3.20953333 C6.4286,1.34333333 8.08088,0 9.99994667,0 C11.9190133,0 13.5713333,1.34333333 13.9476,3.20953333 L14.3973333,5.43925333 C14.6324,6.6052 15.0956,7.71416 15.7606667,8.70350667 L16.5345333,9.85470667 C17.0174667,10.57304 17.3332,11.3846667 17.4638667,12.2309733 C18.2329333,12.29556 18.9070667,12.78468 19.1973333,13.5044 L19.8529333,15.1298667 C20.1834667,15.9493333 19.9444,16.8866667 19.2606667,17.4516 L16.7485333,19.5277333 C16.0170667,20.1322667 14.9625333,20.1590667 14.2008,19.5925333 L13.1892267,18.8401333 C13.1758533,18.8302667 13.1626267,18.8201333 13.1495467,18.8098667 C12.6529733,18.9433333 12.1305733,19.0146667 11.5914,19.0146667 L8.40849333,19.0146667 C7.86934667,19.0146667 7.34697333,18.9434667 6.85042667,18.8098667 C6.83736,18.8201333 6.82414667,18.8302667 6.81077333,18.8401333 L5.79922667,19.5925333 C5.03748,20.1590667 3.983,20.1322667 3.25150667,19.5277333 L0.73928,17.4516 C0.0556233333,16.8866667 -0.183466667,15.9493333 0.147041333,15.1298667 L0.8027,13.5044 C1.09295333,12.78472 1.76702667,12.2956 2.53597333,12.2309867 C2.66666667,11.3846667 2.9824,10.57304 3.46529333,9.85470667 L4.23917333,8.70350667 C4.90424,7.71416 5.36742667,6.6052 5.60257333,5.43925333 L6.05224,3.20953333 Z M14.4593333,12.6344667 C14.1793333,12.8439067 13.9522667,13.1250933 13.8081333,13.4584 L12.7839867,15.8284 C12.2670133,16.1305333 11.6694533,16.2982667 11.0462,16.2982667 L8.95373333,16.2982667 C8.33052,16.2982667 7.733,16.1305333 7.21604,15.8285333 L6.19181333,13.4584 C6.04774667,13.1250667 5.82069333,12.8438667 5.54061333,12.6344267 C5.57494667,12.2047333 5.69186667,11.78004 5.89137333,11.3843467 L7.56904,8.05678667 L7.57910667,8.06676 C8.9162,9.39277333 11.0840533,9.39277333 12.4211333,8.06676 L12.4309867,8.05698667 L14.1085333,11.3843333 C14.3081333,11.7800533 14.4249333,12.20476 14.4593333,12.6344667 Z M12.05424,5.69208 L12.05424,4.07456 L10.6847067,4.07456 L10.6847067,5.14284 C10.9753467,5.20164 11.26008,5.29828 11.5313067,5.43277333 L12.05424,5.69208 Z M9.31517333,5.14290667 L9.31517333,4.07456 L7.94564,4.07456 L7.94564,5.69225333 L8.46893333,5.43277333 C8.74005333,5.29833333 9.02466667,5.20172 9.31517333,5.14290667 Z M2.71006667,13.5818667 C2.43006667,13.5818667 2.17826667,13.7509333 2.07428,14.0088 L1.41862667,15.6342667 C1.308452,15.9074667 1.38814667,16.2198667 1.61604,16.4082667 L4.12826667,18.4844 C4.37209333,18.6858667 4.72358667,18.6948 4.97750667,18.506 L5.98905333,17.7536 C6.24173333,17.5657333 6.33201333,17.2306667 6.2076,16.9428 L4.93301333,13.9934667 C4.82512,13.7437333 4.57754667,13.5818667 4.30361333,13.5818667 L2.71006667,13.5818667 Z M17.9257333,14.0088 C17.8217333,13.7509333 17.57,13.5818667 17.2898667,13.5818667 L15.6964,13.5818667 C15.4224,13.5818667 15.1749333,13.7437333 15.0669333,13.9934667 L13.7924,16.9428 C13.668,17.2306667 13.7582667,17.5657333 14.0109333,17.7536 L15.0225333,18.506 C15.2764,18.6948 15.6278667,18.6858667 15.8717333,18.4844 L18.384,16.4082667 C18.6118667,16.2198667 18.6916,15.9074667 18.5813333,15.6342667 L17.9257333,14.0088 Z M9.08141333,6.64757333 C9.65974667,6.3608 10.3404933,6.3608 10.9188267,6.64757333 L11.5831867,6.977 L11.4527333,7.10637333 C10.65048,7.90198667 9.34976,7.90198667 8.54750667,7.10637333 L8.41705333,6.977 L9.08141333,6.64757333 Z" id="Shape" fill="#3F3F3F"></path>
</g>
</svg>

After

(image error) Size: 3.6 KiB

@ -0,0 +1,9 @@
<?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 / mainframe@svg</title>
<desc>Created with Sketch.</desc>
<g id="Dark-/-20-/-mainframe" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M18,0 C19.1045695,-2.02906125e-16 20,0.8954305 20,2 L20,16 C20,17.1045695 19.1045695,18 18,18 L18,20 L16,20 L16,18 L4,18 L4,20 L2,20 L2,18 C0.8954305,18 0,17.1045695 0,16 L0,2 C0,0.8954305 0.8954305,2.02906125e-16 2,0 L18,0 Z M17,10 C16.4477153,10 16,10.4477153 16,11 C16,11.5522847 16.4477153,12 17,12 C17.5522847,12 18,11.5522847 18,11 C18,10.4477153 17.5522847,10 17,10 Z M14,10 C13.4477153,10 13,10.4477153 13,11 C13,11.5522847 13.4477153,12 14,12 C14.5522847,12 15,11.5522847 15,11 C15,10.4477153 14.5522847,10 14,10 Z M17,6 L3,6 C2.44771525,6 2,6.44771525 2,7 C2,7.55228475 2.44771525,8 3,8 L3,8 L17,8 C17.5522847,8 18,7.55228475 18,7 C18,6.44771525 17.5522847,6 17,6 L17,6 Z M7,2 L3,2 C2.44771525,2 2,2.44771525 2,3 C2,3.55228475 2.44771525,4 3,4 L3,4 L7,4 C7.55228475,4 8,3.55228475 8,3 C8,2.44771525 7.55228475,2 7,2 L7,2 Z" id="Rectangle-2" fill="#3F3F3F"></path>
</g>
</svg>

After

(image error) Size: 1.3 KiB

@ -0,0 +1,9 @@
<?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 / network-server@svg</title>
<desc>Created with Sketch.</desc>
<g id="Dark-/-20-/-network-server" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M5,8.75025 C5.33773571,8.99355627 5.70519791,9.19267126 6.09344533,9.34275 C7.14264287,9.76275 8.52482376,9.99975 9.99925004,9.99975 C11.4751762,9.99975 12.8566072,9.76275 13.9065547,9.34275 C14.2171219,9.22287502 14.51441,9.07162834 14.7938438,8.891486 L15,8.751 L15,9.99975 C15,10.9673886 13.2825573,11.7744944 11.0007086,11.9599305 L11.0009007,14.1710242 C11.852919,14.4724771 12.5281625,15.1479338 12.8293257,16.0000889 L19,16 C19.5522847,16 20,16.4477153 20,17 C20,17.5522847 19.5522847,18 19,18 L12.8289758,18.0009007 C12.4168852,19.1656226 11.3058822,20 10,20 C8.69411778,20 7.58311485,19.1656226 7.17102423,18.0009007 L1,18 C0.44771525,18 6.76353751e-17,17.5522847 0,17 C-6.76353751e-17,16.4477153 0.44771525,16 1,16 L7.17067428,16.0000889 C7.47195412,15.1476039 8.1476039,14.4719541 9.00008893,14.1706743 L9.00028426,11.9600111 C6.7993586,11.7813381 5.12328594,11.0243278 5.00650614,10.1026863 L5,9.99975 L5,8.75025 Z M10,16 C9.44771525,16 9,16.4477153 9,17 C9,17.5522847 9.44771525,18 10,18 C10.5522847,18 11,17.5522847 11,17 C11,16.4477153 10.5522847,16 10,16 Z M15,4.7505 L15,6.99975 C15,8.1045 12.7613619,9 10,9 C7.32493063,9 5.14042535,8.15889038 5.00650614,7.10330221 L5,7.0005 L5.00074996,4.7505 C5.33847692,4.99382021 5.70594098,5.1929362 6.09419529,5.343 C7.14339283,5.76225 8.52557372,6 10,6 C11.4751762,6 12.8573571,5.763 13.9065547,5.343 C14.2948021,5.19292126 14.6622643,4.99380627 15,4.7505 Z M10,-2.44249065e-13 C12.7613619,-2.44249065e-13 15,0.8955 15,2.00025 L15,3 C15,4.10475 12.7613619,5.00025 10,5.00025 C7.23863807,5.00025 5,4.10475 5,3 L5,2.00025 C5,0.8955 7.23863807,-2.44249065e-13 10,-2.44249065e-13 Z" id="Rectangle-2" fill="#3F3F3F"></path>
</g>
</svg>

After

(image error) Size: 2.1 KiB

@ -0,0 +1,9 @@
<?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 / other-OS@svg</title>
<desc>Created with Sketch.</desc>
<g id="Dark-/-20-/-other-OS" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M17,0 C18.6568542,0 20,1.34314575 20,3 L20,3 L20,17 C20,18.6568542 18.6568542,20 17,20 L17,20 L3,20 C1.34314575,20 0,18.6568542 0,17 L0,17 L0,3 C0,1.34314575 1.34314575,0 3,0 L3,0 Z M17,2 L3,2 C2.44771525,2 2,2.44771525 2,3 L2,3 L2,17 C2,17.5522847 2.44771525,18 3,18 L3,18 L17,18 C17.5522847,18 18,17.5522847 18,17 L18,17 L18,3 C18,2.44771525 17.5522847,2 17,2 L17,2 Z M13,11 C14.1045695,11 15,11.8954305 15,13 C15,14.1045695 14.1045695,15 13,15 C11.8954305,15 11,14.1045695 11,13 C11,11.8954305 11.8954305,11 13,11 Z M7,11 C8.1045695,11 9,11.8954305 9,13 C9,14.1045695 8.1045695,15 7,15 C5.8954305,15 5,14.1045695 5,13 C5,11.8954305 5.8954305,11 7,11 Z M7,5 C8.1045695,5 9,5.8954305 9,7 C9,8.1045695 8.1045695,9 7,9 C5.8954305,9 5,8.1045695 5,7 C5,5.8954305 5.8954305,5 7,5 Z M13,5 C14.1045695,5 15,5.8954305 15,7 C15,8.1045695 14.1045695,9 13,9 C11.8954305,9 11,8.1045695 11,7 C11,5.8954305 11.8954305,5 13,5 Z" id="Oval-Copy-4" fill="#3F3F3F"></path>
</g>
</svg>

After

(image error) Size: 1.4 KiB

@ -0,0 +1,9 @@
<?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 / routers@svg</title>
<desc>Created with Sketch.</desc>
<g id="Dark-/-20-/-routers" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M10,9 C10.5522847,9 11,9.44771525 11,10 L11,12 L17,12 C17.5522847,12 18,12.4477153 18,13 L18,19 C18,19.5522847 17.5522847,20 17,20 L3,20 C2.44771525,20 2,19.5522847 2,19 L2,13 C2,12.4477153 2.44771525,12 3,12 L9,12 L9,12 L9,10 C9,9.44771525 9.44771525,9 10,9 Z M10,0 C14.6533193,0 18.6048472,2.864 20,6.837 L18,7.469 C16.8518345,4.20151725 13.6294742,1.99770792 10,1.99770792 C6.37052585,1.99770792 3.1481655,4.20151725 2,7.469 L0.00105374078,6.837 C1.39620653,2.864 5.34668072,0 10,0 Z M4,8.102 C4.86192263,5.65217267 7.27842602,4.00015044 10,4.00015044 C12.721574,4.00015044 15.1380774,5.65217267 16,8.102 L14,8.735 C13.4253849,7.10178178 11.8143827,6.00043363 10,6.00043363 C8.18561735,6.00043363 6.57461509,7.10178178 6,8.735 L4,8.102 Z" id="Shape" fill="#3F3F3F"></path>
</g>
</svg>

After

(image error) Size: 1.2 KiB

@ -0,0 +1,9 @@
<?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 / satellite@svg</title>
<desc>Created with Sketch.</desc>
<g id="Dark-/-20-/-satellite" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M8.99973012,4.07670475 C12.6806558,4.35921582 15.623279,7.31371153 15.8871622,10.9997543 L14.0093091,10.9996646 C13.7549277,8.34703775 11.6473449,6.22787389 8.99992613,5.95553838 Z M9.00024705,0.00313545971 C15.0683108,0.145623569 19.9610136,5.12638246 19.9610136,11.2280702 L19.9577249,10.9991138 L17.4629489,10.9999265 C17.3438002,6.37858166 13.6155749,2.63804566 8.9990807,2.49912614 Z M8.5168202,12.469374 L9.75163189,11.2341761 C9.87006012,11.2623821 9.97987128,11.3021413 10.103939,11.3021413 C10.9047394,11.3021413 11.5471843,10.6585928 11.5471843,9.85799323 C11.5471843,9.06280917 10.9047394,8.41339382 10.103939,8.41339382 C9.30900356,8.41339382 8.66069359,9.06235788 8.66069359,9.85799323 C8.66069359,9.98774091 8.69723264,10.0949238 8.73107379,10.2133891 L7.49269798,11.4494444 L2.22185221,6.17379088 C1.89476472,5.84660107 1.31412802,5.90301311 1.13456827,6.30917976 C-0.749004539,9.82387523 -0.21348336,14.2835851 2.74744798,17.2486017 C5.70792816,20.2100079 10.173462,20.7461479 13.6834491,18.8619859 C14.0951282,18.6363378 14.1517482,18.060935 13.8187957,17.7337452 L8.5168202,12.469374 Z" id="Shape" fill="#3F3F3F"></path>
</g>
</svg>

After

(image error) Size: 1.5 KiB

@ -0,0 +1,9 @@
<?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 / solaris@svg</title>
<desc>Created with Sketch.</desc>
<g id="Dark-/-20-/-solaris" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M8.42221936,0.511345287 C8.4391345,-0.0790168339 9.24034654,-0.180168643 9.43557073,0.323294981 L9.46473442,0.424807922 L10.764033,7.0330548 L13.8093571,1.43365016 C14.0912271,0.915099768 14.8545226,1.18599885 14.7976438,1.72778191 L14.7803466,1.82049835 L12.9640386,8.63077044 L17.7927373,5.92373289 C18.2863646,5.646909 18.7860691,6.22845307 18.4951435,6.66582335 L18.4391986,6.73721155 L14.0672712,11.5337295 C13.8337588,11.7899201 13.4297832,11.7504699 13.2438658,11.4768116 L13.1988594,11.3964169 L12.3517043,9.52673629 C12.3130269,9.44137494 12.2989643,9.3507313 12.3068001,9.26308051 C12.2606637,9.25663548 12.2146216,9.2431455 12.1699965,9.22255865 L12.1042872,9.18634923 L10.6570643,8.25150939 C10.6251625,8.23090233 10.5961953,8.20738411 10.5703056,8.18151519 L10.5172437,8.20317397 L10.430101,8.2223708 L8.80638582,8.43977544 C8.77669608,8.4437507 8.74733038,8.44518285 8.71848917,8.4442524 L8.67608502,8.52050747 L8.6193779,8.58973865 L7.3486454,9.89416583 C7.32137185,9.92216257 7.29200005,9.94635162 7.26109698,9.96682236 C7.26936712,10.0134589 7.2707384,10.0623151 7.2647635,10.1117667 L7.2502356,10.1861874 L6.68546536,12.2732729 C6.67149968,12.3248825 6.6506186,12.3721978 6.62420325,12.4146989 C10.7610392,11.6009862 15.9702667,11.4681863 19.58162,12.2259262 C20.1882907,12.3532189 20.114279,13.2416128 19.4949063,13.2667878 L18.1294322,13.327077 C9.74590217,13.7290338 6.35838395,14.5249824 6.31588619,16.3768368 C6.35550669,17.4595939 9.25457698,18.4269997 14.2645199,18.942886 C14.9228582,19.0106768 14.8799818,19.9829843 14.2182311,19.9925757 C6.50836385,20.1043226 0.0657801896,18.9599587 0.00103921548,16.1962776 C-0.0586395134,14.5873836 2.45852493,13.3341587 5.87947805,12.569013 L0.714999534,9.13917423 C0.253297444,8.83248503 0.52126413,8.13739092 1.03377149,8.17420901 L1.12665371,8.18853206 L6.32612693,9.4096305 L3.35836318,3.41214228 C3.09873126,2.88749438 3.74950384,2.41778391 4.16308156,2.76976334 L4.22624484,2.83227928 L8.22507914,7.40248707 L8.42221936,0.511345287 Z" id="path3241-2" fill="#3F3F3F"></path>
</g>
</svg>

After

(image error) Size: 2.4 KiB

@ -0,0 +1,9 @@
<?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 / switch@svg</title>
<desc>Created with Sketch.</desc>
<g id="Dark-/-20-/-switch" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M6,14.184 L6,13.5 C6,12.652 6.512,11.905 7.287,11.453 C6.62,11.171 6.008,10.786 5.465,10.322 C4.561,11.136 4,12.26 4,13.5 L4,14.184 C2.839,14.599 2,15.698 2,17 C2,18.654 3.346,20 5,20 C6.654,20 8,18.654 8,17 C8,15.698 7.161,14.599 6,14.184 Z M5,0 C6.654,0 8,1.346 8,3 C8,4.272 7.2,5.355 6.08,5.791 C6.448,7.619 8.064,9 10,9 C13.024,9 15.525,11.251 15.935,14.164 C17.13,14.56 18,15.674 18,17 C18,18.654 16.654,20 15,20 C13.346,20 12,18.654 12,17 C12,15.728 12.8,14.645 13.92,14.209 C13.552,12.381 11.936,11 10,11 C6.976,11 4.475,8.749 4.065,5.836 C2.87,5.44 2,4.326 2,3 C2,1.346 3.346,0 5,0 Z M5,16 C5.552,16 6,16.449 6,17 C6,17.551 5.552,18 5,18 C4.448,18 4,17.551 4,17 C4,16.449 4.448,16 5,16 Z M15,16 C14.448,16 14,16.449 14,17 C14,17.551 14.448,18 15,18 C15.552,18 16,17.551 16,17 C16,16.449 15.552,16 15,16 Z M15,0 C16.654,0 18,1.346 18,3 C18,4.302 17.161,5.401 16,5.816 L16,5.816 L16,6.167 C16,7.524 15.414,8.748 14.478,9.626 C13.934,9.172 13.32,8.8 12.655,8.526 C13.465,8.018 14,7.151 14,6.166 L14,6.166 L14,5.815 C12.839,5.401 12,4.302 12,3 C12,1.346 13.346,0 15,0 Z M15,2 C14.448,2 14,2.449 14,3 C14,3.551 14.448,4 15,4 C15.552,4 16,3.551 16,3 C16,2.449 15.552,2 15,2 Z" id="Shape" fill="#3F3F3F"></path>
</g>
</svg>

After

(image error) Size: 1.6 KiB

@ -0,0 +1,9 @@
<?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 / vmware@svg</title>
<desc>Created with Sketch.</desc>
<g id="Dark-/-20-/-vmware" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M2.09625698,13.3597761 C1.84484181,13.9027419 1.22340601,14.1486859 0.643162519,13.8946954 C0.06220882,13.6403551 -0.151565096,13.0057288 0.110858366,12.4624131 L2.54724182,7.24616259 C2.93040138,6.42856518 3.3341571,6 4.09195367,6 C4.90159574,6 5.25457128,6.46669874 5.63737573,7.24616259 C5.63737573,7.24616259 7.76233107,11.8046967 7.78363744,11.8536756 C7.80529892,11.9019548 7.8734793,12.0492413 8.08973896,12.0478419 C8.27261864,12.0467923 8.42637961,11.9030043 8.42637961,11.7098876 L8.42637961,7.25280973 C8.42637961,6.56570604 8.81309024,6.00209909 9.55739278,6.00209909 C10.3009851,6.00209909 10.7029653,6.56570604 10.7029653,7.25280973 L10.7029653,10.9017361 C10.7029653,11.6052827 11.2146733,12.0618358 11.9121018,12.0618358 C12.6095303,12.0618358 13.0736541,11.5888398 13.0736541,10.9017361 L13.0736541,7.25280973 C13.0736541,6.56570604 13.4617851,6.00209909 14.2046673,6.00209909 C14.9482596,6.00209909 15.3523704,6.56570604 15.3523704,7.25280973 L15.3523704,10.9017361 C15.3523704,11.6052827 15.8619478,12.0618358 16.5597314,12.0618358 C17.2560946,12.0618358 17.7219939,11.5888398 17.7219939,10.9017361 L17.7219939,7.25280973 C17.7219939,6.56570604 18.1097698,6.00209909 18.8533622,6.00209909 C19.5965994,6.00209909 20,6.56570604 20,7.25280973 L20,11.4055189 C20,12.9312109 18.7546427,14 17.2560946,14 C15.7593221,14 14.8218418,12.9798399 14.8218418,12.9798399 C14.3236278,13.6162155 13.6368525,13.9986006 12.47459,13.9986006 C11.2480533,13.9986006 10.1745673,12.9798399 10.1745673,12.9798399 C9.67599824,13.6162155 8.82729448,13.9986006 8.12453937,13.9986006 C7.03755937,13.9986006 6.17429627,13.5277037 5.64767381,12.3413653 L4.09195367,8.7274238 L2.09625698,13.3597761 Z" id="Path" fill="#3F3F3F" transform="translate(10.000000, 10.000000) scale(1, -1) translate(-10.000000, -10.000000) "></path>
</g>
</svg>

After

(image error) Size: 2.2 KiB

@ -0,0 +1,9 @@
<?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 / windows@svg</title>
<desc>Created with Sketch.</desc>
<g id="Dark-/-20-/-windows" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M9,11 L9,20 L0,20 L0,11 L9,11 Z M20,11 L20,20 L11,20 L11,11 L20,11 Z M20,0 L20,9 L11,9 L11,0 L20,0 Z M9,0 L9,9 L0,9 L0,0 L9,0 Z" id="icon" fill="#3F3F3F"></path>
</g>
</svg>

After

(image error) Size: 594 B

@ -240,17 +240,17 @@ class ConfigPEN extends HTML
$tmp->description = io_safe_output($tmp->description);
$tmp->manufacturer = io_safe_output($tmp->manufacturer);
$tmp->options = '';
$tmp->options = '<div class="table_action_buttons float-right">';
$tmp->options = '<a href="javascript:" onclick="showForm(\'';
$tmp->options .= '<a href="javascript:" onclick="showForm(\'';
$tmp->options .= $tmp->pen;
$tmp->options .= '\')" >';
$tmp->options .= html_print_image(
'images/operation.png',
'images/edit.svg',
true,
[
'title' => __('Show'),
'class' => 'invert_filter',
'class' => 'main_menu_icon invert_filter',
]
);
$tmp->options .= '</a>';
@ -258,15 +258,17 @@ class ConfigPEN extends HTML
$tmp->options .= $tmp->pen;
$tmp->options .= '\')" >';
$tmp->options .= html_print_image(
'images/cross.png',
'images/delete.svg',
true,
[
'title' => __('Delete'),
'class' => 'invert_filter',
'class' => 'main_menu_icon invert_filter',
]
);
$tmp->options .= '</a>';
$tmp->options .= '</div>';
$carry[] = $tmp;
return $carry;
}
@ -406,7 +408,7 @@ class ConfigPEN extends HTML
'action' => '#',
'id' => 'modal_form',
'onsubmit' => 'return false;',
'class' => '',
'class' => 'filter-list-adv',
];
$inputs = [];
@ -420,7 +422,7 @@ class ConfigPEN extends HTML
'size' => 50,
];
if ((bool) $values['pen']) {
if ((bool) $values['pen'] === true) {
$arguments['disabled'] = true;
}
@ -599,18 +601,18 @@ class ConfigPEN extends HTML
__('Description'),
[
'text' => __('Options'),
'class' => 'table_action_buttons',
'class' => 'table_action_buttons align_right',
],
];
$this->tableId = 'keystore';
$tableId = 'keystore';
// Load datatables user interface.
$output .= ui_print_datatable(
[
'id' => $this->tableId,
'id' => $tableId,
'return' => true,
'class' => 'info_table',
'style' => 'width: 100%',
'style' => 'width: 99%',
'columns' => $columns,
'column_names' => $column_names,
'ajax_url' => $this->ajaxController,
@ -621,6 +623,7 @@ class ConfigPEN extends HTML
'direction' => 'asc',
],
'search_button_class' => 'sub filter float-right',
'filter_main_class' => 'box-flat white_table_graph fixed_filter_bar',
'form' => [
'inputs' => [
[
@ -643,15 +646,18 @@ class ConfigPEN extends HTML
$output .= '<div id="msg" class="invisible"></div>';
$output .= '<div id="aux" class="invisible"></div>';
// Create button.
$output .= parent::printInput(
[
'type' => 'submit',
'name' => 'create',
'label' => __('Register manufacturer'),
'attributes' => 'class="sub next"',
'return' => true,
]
$output .= html_print_action_buttons(
parent::printInput(
[
'type' => 'submit',
'name' => 'create',
'label' => __('Register manufacturer'),
'attributes' => ['icon' => 'next'],
'return' => true,
]
),
['type' => 'form_action'],
true
);
ob_start();

@ -313,7 +313,10 @@ class CustomNetScan extends Wizard
'name' => 'submit',
'label' => __('Go back'),
'type' => 'submit',
'attributes' => ['icon' => 'cancel'],
'attributes' => [
'icon' => 'cancel',
'mode' => 'secondary',
],
'return' => true,
],
],
@ -421,7 +424,10 @@ class CustomNetScan extends Wizard
'name' => 'submit',
'label' => __('Go back'),
'type' => 'submit',
'attributes' => ['icon' => 'cancel'],
'attributes' => [
'icon' => 'cancel',
'mode' => 'secondary',
],
'return' => true,
],
],
@ -553,17 +559,6 @@ class CustomNetScan extends Wizard
$str = __('Update and continue');
}
// Submit button.
$form['inputs'][] = [
'arguments' => [
'name' => 'submit',
'label' => $str,
'type' => 'submit',
'attributes' => [ 'icon' => 'next' ],
'return' => true,
],
];
$task_url = '';
if (isset($this->task['id_rt'])) {
$task_url = '&task='.$this->task['id_rt'];
@ -572,6 +567,7 @@ class CustomNetScan extends Wizard
$form['form'] = [
'method' => 'POST',
'action' => $this->url.'&mode=customnetscan&page='.($this->page + 1).$task_url,
'id' => 'form-netscan-custom-definition',
];
// Default.
@ -602,6 +598,22 @@ class CustomNetScan extends Wizard
// XXX: Could be improved validating inputs before continue (JS)
// Print NetScan page 0.
$this->printFormAsList($form);
html_print_action_buttons(
$this->printInput(
[
'name' => 'submit',
'label' => $str,
'type' => 'submit',
'attributes' => [
'icon' => 'next',
'form' => 'form-netscan-custom-definition',
],
'return' => true,
'width' => 'initial',
]
)
);
}
}
@ -717,20 +729,10 @@ class CustomNetScan extends Wizard
}
}
// Submit button.
$form['inputs'][] = [
'arguments' => [
'name' => 'submit',
'label' => __('Finish'),
'type' => 'submit',
'attributes' => ['icon' => 'update'],
'return' => true,
],
];
$form['form'] = [
'method' => 'POST',
'action' => $this->url.'&mode=customnetscan&page='.($this->page + 1).'&task='.$this->task['id_rt'],
'id' => 'form-netscan-custom-script',
];
$id_task = (isset($this->task['id_rt']) === true) ? $this->task['id_rt'] : 0;
@ -748,6 +750,22 @@ class CustomNetScan extends Wizard
})'.$change;
$this->printFormAsList($form);
html_print_action_buttons(
$this->printInput(
[
'name' => 'submit',
'label' => __('Finish'),
'type' => 'submit',
'attributes' => [
'icon' => 'update',
'form' => 'form-netscan-custom-script',
],
'return' => true,
'width' => 'initial',
]
)
);
}
if (isset($this->page) === true && $this->page === 2) {

@ -398,7 +398,7 @@ class HTML
*
* @return void
*/
public static function printGoBackButton($url=null)
public static function printGoBackButton($url=null, $return=false)
{
if (isset($url) === false) {
$url = ui_get_full_url(
@ -418,14 +418,21 @@ class HTML
'name' => 'submit',
'label' => __('Go back'),
'type' => 'submit',
'attributes' => [ 'icon' => 'cancel' ],
'attributes' => [
'icon' => 'back',
'mode' => 'secondary',
],
'return' => true,
],
],
],
];
self::printForm($form);
if ($return === true) {
return self::printForm($form, $return);
}
self::printForm($form, $return);
}
@ -803,11 +810,13 @@ class HTML
$output_head .= 'id="'.$form['id'].'" ';
}
$output_head .= 'class="max_floating_element_size " ';
$output_head .= 'class="max_floating_element_size ';
if (isset($form['class']) === true) {
$output_head .= 'class="discovery '.$form['class'].'" ';
$output_head .= 'discovery '.$form['class'].' ';
}
$output_head .= '"';
if (isset($form['onsubmit']) === true) {
$output_head .= 'onsubmit="'.$form['onsubmit'].'" ';
}
@ -1078,7 +1087,7 @@ class HTML
$cb_function = $data['cb_function'];
$cb_args = $data['cb_args'];
$output_head = '<form class="discovery max_floating_element_size" onsubmit="'.$form['onsubmit'].'" enctype="'.$form['enctype'].'" action="'.$form['action'].'" method="'.$form['method'];
$output_head = '<form class="discovery max_floating_element_size" id="'.$form['id'].'" onsubmit="'.$form['onsubmit'].'" enctype="'.$form['enctype'].'" action="'.$form['action'].'" method="'.$form['method'];
$output_head .= '" '.$form['extra'].'>';
if ($return === false) {

@ -451,13 +451,13 @@ class ManageNetScanScripts extends Wizard
);
echo html_print_input_image(
'delete',
'images/cross.png',
'images/delete.svg',
1,
'',
'width:40px;',
true,
[
'title' => __('Delete Script'),
'class' => 'invert_filter',
'class' => 'invert_filter main_menu_icon',
]
);
echo '</form>';
@ -527,7 +527,7 @@ class ManageNetScanScripts extends Wizard
$url .= '&wiz=hd&mode=managenetscanscripts';
if ($id_script !== 0) {
echo '<form name=reconscript method="post" action="'.$url.'&id_script='.$id_script.'">';
echo '<form name=reconscript class="max_floating_element_size" method="post" action="'.$url.'&id_script='.$id_script.'">';
echo html_print_input_hidden('page', 0, true);
echo html_print_input_hidden(
'operation_scp',
@ -535,7 +535,7 @@ class ManageNetScanScripts extends Wizard
true
);
} else {
echo '<form name=reconscript method="post" action="'.$url.'">';
echo '<form name=reconscript class="max_floating_element_size" method="post" action="'.$url.'">';
echo html_print_input_hidden('page', 0, true);
echo html_print_input_hidden(
'operation_scp',
@ -547,11 +547,7 @@ class ManageNetScanScripts extends Wizard
$table = new stdClass();
$table->width = '100%';
$table->id = 'table-form';
$table->class = 'databox filters';
$table->style = [];
$table->style[0] = 'font-weight: bold';
$table->style[2] = 'font-weight: bold';
$table->data = [];
$table->class = 'databox filter-table-adv';
$data = [];
$data[0] = __('Name');
@ -778,17 +774,20 @@ class ManageNetScanScripts extends Wizard
$buttonIcon = 'update';
}
html_print_div(
[
'class' => 'action-buttons',
'content' => html_print_submit_button(
$buttonCaption,
$buttonName,
false,
[ 'icon' => $buttonIcon ],
true
),
]
html_print_action_buttons(
html_print_div(
[
'class' => 'action-buttons',
'content' => html_print_submit_button(
$buttonCaption,
$buttonName,
false,
[ 'icon' => $buttonIcon ],
true
),
],
true
)
);
echo '</form>';

@ -836,7 +836,15 @@ class ModuleTemplates extends HTML
]
);
ui_pagination($countModuleTemplates, $this->baseUrl, $this->offset);
$tablePagination = ui_pagination(
$countModuleTemplates,
$this->baseUrl,
$this->offset,
0,
true,
'offset',
false
);
// Create the table with Module Block list.
$table = new StdClasS();
$table->class = 'databox data ';
@ -874,13 +882,13 @@ class ModuleTemplates extends HTML
$table->cellclass[][3] = 'table_action_buttons';
$data[3] = html_print_input_image(
'delete_profile',
'images/cross.png',
'images/delete.svg',
$row['id_np'],
'',
'width:40px',
true,
[
'onclick' => 'if (!confirm(\''.__('Are you sure?').'\')) return false;',
'class' => 'invert_filter',
'class' => 'invert_filter main_menu_icon',
]
);
$data[3] .= html_print_input_image(
@ -891,23 +899,40 @@ class ModuleTemplates extends HTML
true,
[
'title' => 'Export tdaso CSV',
'class' => 'invert_filter',
'class' => 'invert_filter main_menu_icon',
]
);
$data[3] = '<a href="'.$this->baseUrl.'&action=delete&id_np='.$row['id_np'].'" onclick="if (!confirm(\''.__('Are you sure?').'\')) return false;">'.html_print_image('images/cross.png', true, ['title' => __('Delete'), 'class' => 'invert_filter']).'</a>';
$data[3] .= '<a href="'.$this->baseUrl.'&action=export&id_np='.$row['id_np'].'" onclick="blockResubmit($(this))">'.html_print_image('images/csv.png', true, ['title' => __('Export to CSV'), 'class' => 'invert_filter']).'</a>';
$data[3] = '<a href="'.$this->baseUrl.'&action=delete&id_np='.$row['id_np'].'" onclick="if (!confirm(\''.__('Are you sure?').'\')) return false;">';
$data[3] .= html_print_image(
'images/delete.svg',
true,
[
'title' => __('Delete'),
'class' => 'invert_filter main_menu_icon',
]
);
$data[3] .= '</a>';
$data[3] .= '<a href="'.$this->baseUrl.'&action=export&id_np='.$row['id_np'].'" onclick="blockResubmit($(this))">';
$data[3] .= html_print_image(
'images/csv.png',
true,
[
'title' => __('Export to CSV'),
'class' => 'invert_filter main_menu_icon',
]
);
$data[3] .= '</a>';
array_push($table->data, $data);
}
html_print_table($table);
$output = '<div class="float-right">';
$form = [
'method' => 'POST',
'action' => $this->baseUrl,
'id' => 'main_management_form',
'class' => 'flex_center',
];
$inputs[] = [
@ -934,22 +959,29 @@ class ModuleTemplates extends HTML
'label' => __('Delete selected'),
'name' => 'erase',
'type' => 'button',
'attributes' => ['icon' => 'cancel'],
'attributes' => [
'icon' => 'delete',
'mode' => 'secondary',
],
'return' => true,
],
];
$output .= $this->printForm(
html_print_action_buttons(
$this->printForm(
[
'form' => $form,
'inputs' => $inputs,
],
true
),
[
'form' => $form,
'inputs' => $inputs,
],
true
'type' => 'data_table',
'class' => 'fixed_action_buttons',
'right_content' => $tablePagination,
]
);
$output .= '</div>';
echo $output;
}
@ -1056,42 +1088,38 @@ class ModuleTemplates extends HTML
],
];
$availableButtons = [];
// Required for PEN field.
ui_require_jquery_file('tag-editor');
ui_require_css_file('jquery.tag-editor');
$availableButtons[] = [
'arguments' => [
$buttons = $this->printInput(
[
'name' => 'action_button',
'label' => $formButtonLabel,
'type' => 'submit',
'attributes' => [ 'icon' => $formButtonClass ],
'attributes' => [
'icon' => $formButtonClass,
'form' => 'module_template_form',
],
'return' => true,
],
];
'width' => 'initial',
]
);
if ($createNewTemplate === false) {
$availableButtons[] = [
'arguments' => [
$buttons .= $this->printInput(
[
'name' => 'add_components_button',
'label' => __('Add components'),
'type' => 'button',
'attributes' => [ 'icon' => 'cog' ],
'script' => 'showAddComponent();',
'return' => true,
],
];
'width' => 'initial',
]
);
}
$inputs[] = [
'class' => 'action_button_list',
'direct' => false,
'wrapper' => 'div',
'block_content' => $availableButtons,
];
// Required for PEN field.
ui_require_jquery_file('tag-editor');
ui_require_css_file('jquery.tag-editor');
if ($createNewTemplate === false) {
// Get the data.
$sql = sprintf(
@ -1142,13 +1170,13 @@ class ModuleTemplates extends HTML
$blockTitle .= '<div class="white_table_header_checkbox">';
$blockTitle .= html_print_input_image(
'del_block_'.$id_group.'_',
'images/cross.png',
'images/delete.svg',
1,
false,
'width: 40px',
true,
[
'title' => __('Delete this block'),
'class' => 'invert_filter',
'class' => 'invert_filter main_menu_icon',
'onclick' => 'if(confirm(\''.__('Do you want delete this block?').'\')){deleteModuleTemplate(\'block\',\''.$blockComponentList.'\')};return false;',
]
);
@ -1196,7 +1224,7 @@ class ModuleTemplates extends HTML
true,
[
'title' => __('Network module'),
'class' => 'invert_filter',
'class' => 'invert_filter main_menu_icon',
]
);
break;
@ -1207,7 +1235,7 @@ class ModuleTemplates extends HTML
true,
[
'title' => __('WMI module'),
'class' => 'invert_filter',
'class' => 'invert_filter main_menu_icon',
]
);
break;
@ -1218,7 +1246,7 @@ class ModuleTemplates extends HTML
true,
[
'title' => __('Plug-in module'),
'class' => 'invert_filter',
'class' => 'invert_filter main_menu_icon',
]
);
break;
@ -1239,13 +1267,13 @@ class ModuleTemplates extends HTML
$data[3] = mb_strimwidth(io_safe_output($module['description']), 0, 150, '...');
$data[4] = html_print_input_image(
'del_module_'.$module['component_id'].'_',
'images/cross.png',
'images/delete.svg',
1,
'',
'width:40px;',
true,
[
'title' => __('Delete this module'),
'class' => 'invert_filter',
'class' => 'invert_filter main_menu_icon',
'onclick' => 'if(confirm(\''.__('Do you want delete this module?').'\')){deleteModuleTemplate(\'module\','.$module['component_id'].')};return false;',
]
);
@ -1277,7 +1305,9 @@ class ModuleTemplates extends HTML
echo '<div class="invisible" id="msg"></div>';
}
$this->printGoBackButton($this->baseUrl);
$buttons .= $this->printGoBackButton($this->baseUrl, true);
html_print_action_buttons($buttons);
}
@ -1459,30 +1489,31 @@ class ModuleTemplates extends HTML
var listValidPens = $("#hidden-valid-pen").val();
try {
listValidPens = listValidPens.split(',');
if(listValidPens != undefined) {
listValidPens = listValidPens.split(',');
//Adding tagEditor for PEN management.
$("#text-pen").tagEditor({
beforeTagSave: function(field, editor, tags, tag, val) {
if (listValidPens.indexOf(val) == -1) {
return false;
}
},
autocomplete: {
source: <?php echo json_encode($this->penRefs); ?>
}
});
}
} catch (e) {
console.error(e);
return;
}
//Adding tagEditor for PEN management.
$("#text-pen").tagEditor({
beforeTagSave: function(field, editor, tags, tag, val) {
if (listValidPens.indexOf(val) == -1) {
return false;
}
},
autocomplete: {
source: <?php echo json_encode($this->penRefs); ?>
}
});
//Values for add.
$("#add-modules-components").change(function() {
var valores = $("#add-modules-components")
.val()
.join(",");
//$("#hidden-add-modules-components-values").val(valores);
});
});

@ -2569,7 +2569,7 @@ class NetworkMap
false,
true,
true,
true,
false,
true,
true
);
@ -3151,28 +3151,6 @@ class NetworkMap
['icon' => 'next'],
true
);
/*
$table->data['fictional_node_networkmap_link'][0] = __('Networkmap to link');
$table->data['fictional_node_networkmap_link'][1] = html_print_select(
$list_networkmaps,
'edit_networkmap_to_link',
'',
'',
'',
0,
true
);
$table->data['fictional_node_update_button'][0] = '';
$table->data['fictional_node_update_button'][1] = html_print_button(
__('Update fictional node'),
'',
false,
'add_fictional_node();',
['icon' => 'next'],
true
);
*/
$buttons[] = html_print_button(
__('Update node'),
@ -3298,6 +3276,7 @@ class NetworkMap
$table = new stdClass();
$table->id = 'interface_link_table';
$table->class = 'info_table';
$table->width = '100%';
$table->head['node_source_interface'] = __('Node source');
$table->head['interface_source_select'] = __('Interface source');
@ -3340,27 +3319,31 @@ class NetworkMap
$output .= '<br>';
$table->data['interface_row']['interface_link_button'] = html_print_button(
__('Add interface link'),
'',
false,
'add_interface_link_js();',
'class="sub"',
$output .= html_print_table($table, true);
$output .= html_print_div(
[
'class' => 'action-buttons',
'content' => html_print_button(
__('Add interface link'),
'',
false,
'add_interface_link_js();',
[
'icon' => 'wand',
'mode' => 'mini',
],
true
),
],
true
);
$output .= html_print_table($table, true);
$output .= '</div></div>';
$output .= '<div id="dialog_node_add" class="invisible" title="';
$output .= __('Add node').'">';
$output .= '<div class="left w100p">';
$table = new StdClass();
$table->width = '100%';
$table->data = [];
$table->data[0][0] = __('Agent');
$params = [];
$params['return'] = true;
$params['show_helptip'] = true;
@ -3369,29 +3352,48 @@ class NetworkMap
$params['print_hidden_input_idagent'] = true;
$params['hidden_input_idagent_name'] = 'id_agent';
$params['disabled_javascript_on_blur_function'] = true;
$table->data[0][1] = ui_print_agent_autocomplete_input($params);
$table->data[1][0] = '';
$table->data[1][1] = html_print_button(
__('Add agent node'),
'',
false,
'add_agent_node();',
'class="sub"',
true
).html_print_image(
'images/error_red.png',
true,
[
'id' => 'error_red',
'style' => 'vertical-align: bottom;display: none;',
'class' => 'forced_title',
'alt' => '',
'data-title' => 'data-use_title_for_force_title:1',
],
false
$table = new StdClass();
$table->width = '100%';
$table->id = 'add_agent_network_map';
$table->class = 'filter-table-adv';
$table->data = [];
$table->data[0][] = html_print_label_input_block(
__('Agent'),
ui_print_agent_autocomplete_input($params)
);
$add_agent_node_html = html_print_table($table, true);
$add_agent_node_html .= html_print_div(
[
'class' => 'action-buttons-right-forced',
'content' => html_print_button(
__('Add agent node'),
'',
false,
'add_agent_node();',
[
'icon' => 'wand',
'mode' => 'mini',
],
true
).html_print_image(
'images/error_red.png',
true,
[
'id' => 'error_red',
'style' => 'vertical-align: bottom;display: none;',
'class' => 'forced_title',
'alt' => '',
'data-title' => 'data-use_title_for_force_title:1',
],
false
),
],
true
);
$output .= ui_toggle(
$add_agent_node_html,
__('Add agent node'),
@ -3403,57 +3405,74 @@ class NetworkMap
$table = new StdClass();
$table->width = '100%';
$table->id = 'add_agent_by_group_network_map';
$table->class = 'filter-table-adv';
$table->data = [];
$table->data[0][0] = __('Group');
$table->data[0][1] = html_print_select_groups(
false,
'AR',
false,
'group_for_show_agents',
-1,
'choose_group_for_show_agents()',
__('None'),
-1,
true
$table->data[0][] = html_print_label_input_block(
__('Group'),
html_print_select_groups(
false,
'AR',
false,
'group_for_show_agents',
-1,
'choose_group_for_show_agents()',
__('None'),
-1,
true
)
);
$table->data[0][2] = html_print_checkbox(
'group_recursion',
0,
false,
true,
false,
'choose_group_for_show_agents()'
).__('Recursion');
$table->data[1][0] = __('Agents');
$table->data[1][1] = html_print_select(
[-1 => __('None')],
'agents_filter_group',
-1,
'',
'',
0,
true,
true,
true,
'',
false,
'width: 170px;',
false,
5
$table->data[0][] = html_print_label_input_block(
__('Recursion'),
html_print_checkbox_switch(
'group_recursion',
0,
false,
true,
false,
'choose_group_for_show_agents()'
)
);
$table->data[2][0] = '';
$table->data[2][1] = html_print_button(
__('Add agent node'),
'',
false,
'add_agent_node_from_the_filter_group();',
'class="sub"',
true
$table->data[1][] = html_print_label_input_block(
__('Agents'),
html_print_select(
[-1 => __('None')],
'agents_filter_group',
-1,
'',
'',
0,
true,
true,
true,
'',
false,
'width: 170px;',
false,
5
)
);
$add_agent_node_html = html_print_table($table, true);
$add_agent_node_html .= html_print_div(
[
'class' => 'action-buttons-right-forced',
'content' => html_print_button(
__('Add agent node'),
'',
false,
'add_agent_node_from_the_filter_group();',
[
'icon' => 'wand',
'mode' => 'mini',
],
true
),
],
true
);
$output .= ui_toggle(
$add_agent_node_html,
__('Add agent node (filter by group)'),
@ -3465,36 +3484,52 @@ class NetworkMap
$table = new StdClass();
$table->width = '100%';
$table->id = 'add_fictional_network_map';
$table->class = 'filter-table-adv';
$table->data = [];
$table->data[0][0] = __('Name');
$table->data[0][1] = html_print_input_text(
'name_fictional_node',
'',
__('name fictional node'),
'20',
'50',
true
$table->data[0][] = html_print_label_input_block(
__('Name'),
html_print_input_text(
'name_fictional_node',
'',
__('name fictional node'),
'20',
'50',
true
)
);
$table->data[1][0] = __('Networkmap to link');
$table->data[1][1] = html_print_select(
$list_networkmaps,
'networkmap_to_link',
0,
'',
'',
0,
true
);
$table->data[2][0] = '';
$table->data[2][1] = html_print_button(
__('Add fictional node'),
'',
false,
'add_fictional_node();',
['type' => 'link'],
true
$table->data[1][] = html_print_label_input_block(
__('Networkmap to link'),
html_print_select(
$list_networkmaps,
'networkmap_to_link',
0,
'',
'',
0,
true
)
);
$add_agent_node_html = html_print_table($table, true);
$add_agent_node_html .= html_print_div(
[
'class' => 'action-buttons-right-forced',
'content' => html_print_button(
__('Add fictional node'),
'',
false,
'add_fictional_node();',
[
'icon' => 'wand',
'mode' => 'mini',
],
true
),
],
true
);
$output .= ui_toggle(
$add_agent_node_html,
__('Add fictional point'),
@ -3722,11 +3757,7 @@ class NetworkMap
// Open networkconsole_id div.
$output .= '<div id="networkconsole_'.$networkmap['id'].'"';
if ($this->fullSize) {
if ($this->widget) {
$output .= ' class="networkconsole">';
} else {
$output .= ' class="networkconsole">';
}
$output .= ' class="networkconsole">';
} else {
$output .= ' style="width: '.$this->mapOptions['width'].'px; height: '.$this->mapOptions['height'].'px;position: relative; overflow: hidden; background: #FAFAFA">';
}

@ -222,22 +222,30 @@ class TreeService extends Tree
switch ($status) {
case SERVICE_STATUS_NORMAL:
$processed_items[$row['id']]['statusImageHTML'] = '<img src="'.ui_get_full_url('images/status_sets/default/agent_ok_ball.png').'" data-title="NORMAL status." data-use_title_for_force_title="1" class="forced_title" alt="NORMAL status." />';
$serviceStatusLine = COL_NORMAL;
break;
case SERVICE_STATUS_CRITICAL:
$processed_items[$row['id']]['statusImageHTML'] = '<img src="'.ui_get_full_url('images/status_sets/default/agent_critical_ball.png').'" data-title="CRITICAL status." data-use_title_for_force_title="1" class="forced_title" alt="CRITICAL status." />';
$serviceStatusLine = COL_CRITICAL;
break;
case SERVICE_STATUS_WARNING:
$processed_items[$row['id']]['statusImageHTML'] = '<img src="'.ui_get_full_url('images/status_sets/default/agent_warning_ball.png').'" data-title="WARNING status." data-use_title_for_force_title="1" class="forced_title" alt="WARNING status." />';
$serviceStatusLine = COL_WARNING;
break;
case SERVICE_STATUS_UNKNOWN:
default:
$processed_items[$row['id']]['statusImageHTML'] = '<img src="'.ui_get_full_url('images/status_sets/default/agent_no_data_ball.png').'" data-title="UNKNOWN status." data-use_title_for_force_title="1" class="forced_title" alt="UNKNOWN status." />';
$serviceStatusLine = COL_UNKNOWN;
break;
}
$processed_items[$row['id']]['statusImageHTML'] = html_print_div(
[
'class' => 'node-service-status',
'style' => 'background-color: '.$serviceStatusLine,
],
true
);
}
$this->tree = $processed_items;
@ -510,14 +518,11 @@ class TreeService extends Tree
$tmp['eventAgent'] = $item->module()->id_agente();
$tmp['disabled'] = $item->module()->disabled();
$html = '<img src="';
$html .= ui_get_full_url(
'/images/status_sets/default/'.$item->module()->lastStatusImage()
$html = html_print_div(
[ 'style' => 'width:7px;background-color: '.$item->module()->lastStatusColor() ],
true
);
$html .= '" data-title="'.$title;
$html .= '" data-use_title_for_force_title="1" ';
$html .= 'class="forced_title" alt="';
$html .= $item->module()->lastStatusTitle().'" />';
$tmp['statusImageHTML'] = $html;
$tmp = array_merge(
$tmp,

@ -20,7 +20,7 @@
/**
* Pandora build version and version
*/
$build_version = 'PC230306';
$build_version = 'PC230307';
$pandora_version = 'v7.0NG.769';
// Do not overwrite default timezone set if defined.

@ -440,17 +440,17 @@ function groups_give_disabled_group($id_group)
*/
function groups_get_icon($id_group)
{
if ($id_group == 0) {
return 'world';
if ((int) $id_group === 0) {
$icon = 'unknown@groups.svg';
} else {
$icon = (string) db_get_value('icon', 'tgrupo', 'id_grupo', (int) $id_group);
if ($icon == '') {
$icon = 'without_group';
if (empty($icon) === true) {
$icon = 'unknown@groups.svg';
}
return $icon;
}
return $icon;
}

@ -6551,7 +6551,7 @@ function html_print_go_back_button(string $url, array $options=[], bool $return=
($options['title'] ?? __('Go back')),
'go_back',
false,
'window.location.href = \''.$url.'\'',
'window.location.href = "'.$url.'"',
[
'icon' => ($options['action_class'] ?? 'back'),
'mode' => 'secondary',

@ -702,7 +702,7 @@ function treeview_printTable($id_agente, $server_data=[], $no_head=false)
// Events graph toggle.
$eventsGraph = html_print_div(
[
'class' => 'graphic_agents',
'style' => 'height: 150px;',
'content' => graph_graphic_agentevents(
$id_agente,
'500px;',
@ -732,7 +732,7 @@ function treeview_printTable($id_agente, $server_data=[], $no_head=false)
);
if ($config['agentaccess']) {
$access_graph = '<div class="w100p height_130px center">';
$access_graph = '<div style="height: 150px;" class="w100p center">';
$access_graph .= graphic_agentaccess(
$id_agente,
SECONDS_1DAY,

@ -97,6 +97,7 @@ if (empty($file) === true || empty($hash) === true || $hash !== md5($file_raw.$c
header('Content-Length: '.filesize($downloadable_file));
header('Content-Disposition: attachment; filename="'.basename($downloadable_file).'"');
readfile($downloadable_file);
return;
}
}

@ -2318,10 +2318,9 @@ function pandoraFlotArea(
);
}
$("#menu_cancelzoom_" + graph_id).attr(
"src",
homeurl + "images/zoom_cross_grey.png"
);
$("#menu_cancelzoom_" + graph_id)
.attr("src", homeurl + "images/disable.svg")
.removeClass("alpha50");
max_draw["max"] = ranges.yaxis.to;
max_draw["min"] = ranges.yaxis.from;
@ -2813,11 +2812,8 @@ function pandoraFlotArea(
legend: { show: true }
})
);
$("#menu_cancelzoom_" + graph_id).attr(
"src",
homeurl + "images/zoom_cross.disabled.png"
);
$("#menu_cancelzoom_" + graph_id).attr("class", "invert_filter");
$("#menu_cancelzoom_" + graph_id).addClass("alpha50");
//$("#menu_cancelzoom_" + graph_id).attr("class", "invert_filter");
overview.clearSelection();
thresholded = false;
max_draw = [];

@ -367,7 +367,7 @@ function menu_graph(
$return .= "<div id='general_menu_$graph_id' class='menu_graph'>";
$return .= "<div id='menu_$graph_id' "."style='display: none; ".'text-align: center;'.'position: relative;'."border-bottom: 0px;'>
<a href='javascript:'><img id='menu_cancelzoom_$graph_id' class='invert_filter' src='".$params['homeurl'].'images/operation.png'."' alt='".__('Cancel zoom')."' title='".__('Cancel zoom')."'></a>";
<a href='javascript:'><img id='menu_cancelzoom_$graph_id' class='main_menu_icon invert_filter' src='".$params['homeurl'].'images/disable.svg'."' alt='".__('Cancel zoom')."' title='".__('Cancel zoom')."'></a>";
if ($threshold) {
$return .= " <a href='javascript:'><img id='menu_threshold_$graph_id' src='".$params['homeurl'].'images/chart_curve_threshold.png'."' alt='".__('Warning and Critical thresholds')."' title='".__('Warning and Critical thresholds')."'></a>";
}
@ -379,7 +379,7 @@ function menu_graph(
// Export buttons.
if ($params['show_export_csv'] && enterprise_installed() === true) {
$return .= "<a href='javascript:'><img id='menu_export_csv_$graph_id' src='".$params['homeurl'].'images/csv_grey.png'."' alt='".__('Export to CSV')."' title='".__('Export to CSV')."'></a>";
$return .= "<a href='javascript:'><img id='menu_export_csv_$graph_id' class='main_menu_icon invert_filter' src='".$params['homeurl'].'images/file-csv.svg'."' alt='".__('Export to CSV')."' title='".__('Export to CSV')."'></a>";
}
$return .= '</div>';

@ -839,7 +839,6 @@ function edit_node(data_node, dblClick) {
"onclick",
"update_fictional_node(" + node_selected.id_db + ");"
);
console.log("cimborrio");
$("#button-upd_fictional_node").attr(
"onclick",
"update_fictional_node(" + node_selected.id_db + ");"

@ -980,7 +980,7 @@ var TreeController = {
break;
case "module":
$content.addClass("module");
//console.log(element); $statusImage.addClass("node-status");
// Status image
if (
typeof element.statusImageHTML != "undefined" &&
@ -1456,6 +1456,7 @@ var TreeController = {
});
}
}
treeViewControlModuleValues();
return $node;
}

File diff suppressed because one or more lines are too long

@ -751,7 +751,10 @@ class ClusterManager
'name' => 'submit',
'label' => __('Go back'),
'type' => 'submit',
'attributes' => 'class="sub cancel"',
'attributes' => [
'icon' => 'back',
'mode' => 'secondary',
],
'return' => true,
],
],

@ -348,7 +348,10 @@ class ClusterWizard extends \HTML
'name' => 'submit',
'label' => __('Go back'),
'type' => 'submit',
'attributes' => 'class="sub cancel"',
'attributes' => [
'icon' => 'back',
'mode' => 'secondary',
],
'return' => true,
],
],

@ -600,16 +600,32 @@ class TreeViewWidget extends Widget
// Spinner.
$output .= ui_print_spinner(__('Loading'), true);
/*
$output .= \html_print_image(
'images/spinner.gif',
true,
[
'class' => 'loading_tree',
'style' => 'display: none;',
]
);
*/
ob_start();
?>
<script type="text/javascript">
function treeViewControlModuleValues()
{
var $treeController = $("div[id^='tree-controller-recipient_']");
$treeController.each(function() {
var $thisTree = $(this);
if ($thisTree.width() < 600) {
var $valuesForRemove = $('#'+$thisTree[0].id+' span.module-value');
$valuesForRemove.each(function(){
$(this).attr('style', 'display:none');
});
if ($thisTree.width() < 400) {
var $titlesForReduce = $('#'+$thisTree[0].id+' .node-content .module-name');
$titlesForReduce.each(function(){
$(this).attr('style', 'width: 100px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;');
});
}
}
});
}
</script>
<?php
$output .= ob_get_clean();
// Container tree.
$style = 'height:'.$height.'px; width:'.$width.'px;';
$style .= 'text-align: left; padding:10px;';

@ -512,6 +512,37 @@ class Module extends Entity
}
/**
* Return the color to image representing last status.
*
* @return string Hexadecimal notation color.
*/
public function lastStatusColor()
{
switch ($this->lastStatus()) {
case AGENT_MODULE_STATUS_CRITICAL_ALERT:
case AGENT_MODULE_STATUS_CRITICAL_BAD:
return COL_CRITICAL;
case AGENT_MODULE_STATUS_WARNING_ALERT:
case AGENT_MODULE_STATUS_WARNING:
return COL_WARNING;
case AGENT_MODULE_STATUS_UNKNOWN:
return COL_UNKNOWN;
case AGENT_MODULE_STATUS_NO_DATA:
case AGENT_MODULE_STATUS_NOT_INIT:
return COL_NOTINIT;
case AGENT_MODULE_STATUS_NORMAL_ALERT:
case AGENT_MODULE_STATUS_NORMAL:
default:
return COL_NORMAL;
}
}
/**
* Return path to image representing last status.
*

@ -2097,12 +2097,20 @@ table.rounded_cells td {
margin-left: 16px;
}
.action-buttons-right-forced {
display: flex;
flex-direction: row-reverse;
align-items: center;
width: 100%;
float: right;
}
.toolbox-buttons {
display: flex;
flex-direction: row;
align-items: center;
}
.ta-right,
.right {
text-align: right;
}
@ -6384,6 +6392,14 @@ div#status_pie {
padding: 10px 10px 10px 0;
}
a.table_services_item_link a,
a.table_services_item_link:hover {
text-decoration: none;
}
.table_services_item_link div {
font-size: 16px;
}
.table_services_item_link_dashboard {
font-size: 16px;
display: grid;
@ -9175,8 +9191,8 @@ div.stat-win-spinner img {
min-width: 50px;
}
.lign_right {
text-align: right;
.align_right {
text-align: right !important;
}
.font_11pt {

@ -55,11 +55,11 @@
position: absolute;
border-radius: 8px;
width: 18px;
height: 18px;
top: 6px;
height: 20px;
top: 5px;
margin: 0;
padding: 0;
left: 13px;
left: 6px;
}
.tree-node .node-name {
position: relative;
@ -236,18 +236,20 @@ div.tree-node span {
}
.node-content.module:not(.module-only-caption) .module-name {
margin-left: 3em;
margin-left: 1.5em;
font-weight: normal;
}
/*.node-content.module.module-only-caption:not(:first-of-type) {
margin-top: 8px;
}*/
.tree-node > .node-content > .status_balls,
.tree-node > .node-content > .status_small_balls {
width: 6px;
border-radius: 4px;
}
.tree-node > .node-content > .module-name-alias {
font-size: 14px;
font-weight: normal;
top: 4px;
margin-left: 3.3em;
margin-left: 1.1em;
}
.tree-node > .node-content.module-only-caption > .module-name-alias {
@ -306,7 +308,7 @@ div.tree-node span {
.tree-node > .node-content > .tree-node-counters > .tree-node-counter {
font-weight: bold;
font-size: 0.9em;
font-size: 1em;
cursor: default;
}
@ -326,6 +328,12 @@ div#tree-controller-recipient {
/*margin-left: 3px;*/
}
.tree-node .node-service div.node-service-status {
width: 6px;
height: 20px;
margin-left: 10px;
border-radius: 5px;
}
.tree-node .disabled {
filter: opacity(0.3);
}

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

@ -744,7 +744,7 @@ class Ui
$dialogHtml .= "<div id='".$content_id."' class='".$content_class."' data-role='content'>\n";
$dialogHtml .= $content_text;
if ($button_close) {
$dialogHtml .= "<a data-role='button' href='#main_page' id='".$dialog_id."-button_close'>";
$dialogHtml .= "<a data-role='button' href='javascript:history.back()' id='".$dialog_id."-button_close'>";
if (empty($button_text)) {
$dialogHtml .= __('Close');
} else {

@ -349,11 +349,7 @@ class User
if ($this->errorLogin) {
$options['type'] = 'onStart';
$options['title_text'] = __('Login Failed');
if ($this->errorLogin !== false) {
$options['content_text'] = $this->errorLogin;
} else {
$options['content_text'] = __('User not found in database or incorrect password.');
}
$options['content_text'] = __('User not found in database or incorrect password.');
$ui->addDialog($options);
}
@ -401,6 +397,7 @@ class User
'value' => '',
'placeholder' => __('password'),
'label' => __('Password'),
'required' => 'required',
];
$ui->formAddInputPassword($options);
$options = [

@ -446,69 +446,47 @@ ui_print_message_dialog(
}
$form_table = html_print_table($table, true);
$form_table .= '<div class="w100p right mrgn_top_15px right_align">';
$form_table .= html_print_submit_button(
__('Reload'),
'submit',
false,
$form_table .= html_print_div(
[
'icon' => 'Icon search secondary mini',
'class' => 'float-right',
'class' => 'action-buttons-right-forced',
'content' => html_print_submit_button(
__('Reload'),
'submit',
false,
[
'icon' => 'search',
'mode' => 'secondary mini',
'class' => 'float-right',
],
true
),
],
true
);
$form_table .= '</div>';
// Menu.
$menu_form = "<form method='get' action='stat_win.php' class='mrgn_top_10px'>";
$menu_form .= html_print_input_hidden('id', $id, true);
$menu_form .= html_print_input_hidden('label', $label, true);
echo '<form method="GET" action="stat_win.php" style="margin-bottom: 0">';
html_print_input_hidden('id', $id);
html_print_input_hidden('label', $label);
if (empty($server_id) === false) {
$menu_form .= html_print_input_hidden('server', $server_id, true);
html_print_input_hidden('server', $server_id);
}
$menu_form .= html_print_input_hidden('histogram', $histogram, true);
html_print_input_hidden('histogram', $histogram);
if (isset($_GET['type']) === true) {
$type = get_parameter_get('type');
$menu_form .= html_print_input_hidden('type', $type, true);
html_print_input_hidden('type', $type);
}
$menu_form .= '<div class="module_graph_menu_dropdown">';
$menu_form .= '<div id="module_graph_menu_header" class="module_graph_menu_header">';
$menu_form .= html_print_image(
'images/arrow_down_green.png',
true,
[
'class' => 'module_graph_menu_arrow',
'float' => 'left',
],
false,
false,
true
ui_toggle(
$form_table,
'<span class="subsection_header_title">'.__('Graph configuration menu').'</span>'.ui_print_help_tip(
__('In Pandora FMS, data is stored compressed. The data visualization in database, charts or CSV exported data won\'t match, because is interpreted at runtime. Please check \'Pandora FMS Engineering\' chapter from documentation.'),
true
)
);
$menu_form .= '<span style="flex: 2; justify-content:center;" class="flex-row">';
$menu_form .= '<b>'.__('Graph configuration menu').'</b>';
$menu_form .= ui_print_help_tip(
__('In Pandora FMS, data is stored compressed. The data visualization in database, charts or CSV exported data won\'t match, because is interpreted at runtime. Please check \'Pandora FMS Engineering\' chapter from documentation.'),
true
);
$menu_form .= '</span>';
$menu_form .= '</div>';
$class = 'module_graph_menu_content';
if ($histogram === false) {
$class .= ' module_graph_menu_content_closed invisible';
}
$menu_form .= '<div class="'.$class.'">';
$menu_form .= $form_table;
$menu_form .= '</div>';
$menu_form .= '</div>';
$menu_form .= '</form>';
echo $menu_form;
echo '</form>';
// Hidden div to forced title.
html_print_div(
@ -544,7 +522,7 @@ ui_print_message_dialog(
];
// Graph.
$output = '<div id="stat-win-module-graph">';
$output = '<div class="white_box margin-lr-10" id="stat-win-module-graph">';
$output .= '<div id="stat-win-spinner" class="stat-win-spinner">';
$output .= html_print_image('images/spinner_charts.gif', true);
$output .= '</div>';

@ -3,7 +3,7 @@
#
%define name pandorafms_console
%define version 7.0NG.769
%define release 230306
%define release 230307
# User and Group under which Apache is running
%define httpd_name httpd

@ -3,7 +3,7 @@
#
%define name pandorafms_console
%define version 7.0NG.769
%define release 230306
%define release 230307
# User and Group under which Apache is running
%define httpd_name httpd

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

@ -60,7 +60,7 @@ $form = [
'id' => 'form-update-dashboard',
'action' => $url,
'onsubmit' => 'return false;',
'class' => 'modal-dashboard',
'class' => 'filter-list-adv',
'enctype' => 'multipart/form-data',
'method' => 'POST',
];
@ -83,22 +83,6 @@ $inputs = [
'maxlength' => 35,
],
],
[
'block_id' => 'private',
'direct' => 1,
'block_content' => [
[
'label' => __('Private'),
'arguments' => [
'name' => 'private',
'id' => 'private',
'type' => 'switch',
'value' => $private,
'onclick' => 'showGroup()',
],
],
],
],
[
'block_id' => 'group',
'direct' => 1,
@ -118,6 +102,22 @@ $inputs = [
],
],
],
[
'block_id' => 'private',
'direct' => 1,
'block_content' => [
[
'label' => __('Private'),
'arguments' => [
'name' => 'private',
'id' => 'private',
'type' => 'switch',
'value' => $private,
'onclick' => 'showGroup()',
],
],
],
],
[
'label' => __('Favourite'),
'arguments' => [

@ -37,11 +37,12 @@ $queryFull = [
$urlFull = $url.'&'.http_build_query($queryFull);
$fullscreen['text'] = '<a id="full_screen_link" href="'.$urlFull.'">';
$fullscreen['text'] .= html_print_image(
'images/full_screen.png',
'images/fullscreen@svg.svg',
true,
[
'title' => __('Full screen mode'),
'class' => 'invert_filter',
'style' => 'margin-top: 5px',
'class' => 'main_menu_icon invert_filter',
]
);
$fullscreen['text'] .= '</a>';
@ -51,11 +52,11 @@ $queryNormal = ['dashboardId' => $dashboardId];
$urlNormal = $url.'&'.http_build_query($queryNormal);
$normalscreen['text'] = '<a href="'.$urlNormal.'">';
$normalscreen['text'] .= html_print_image(
'images/normal_screen.png',
'images/exit_fullscreen@svg.svg',
true,
[
'title' => __('Back to normal mode'),
'class' => 'invert_filter',
'class' => 'main_menu_icon invert_filter',
]
);
$normalscreen['text'] .= '</a>';
@ -74,11 +75,12 @@ $options['text'] .= 'show_option_dialog('.json_encode(
);
$options['text'] .= ')\'>';
$options['text'] .= html_print_image(
'images/setup.png',
'images/configuration@svg.svg',
true,
[
'title' => __('Options'),
'class' => 'invert_filter',
'style' => 'margin-top: 5px',
'class' => 'main_menu_icon invert_filter',
]
);
$options['text'] .= '</a>';
@ -86,11 +88,12 @@ $options['text'] .= '</a>';
// Button for back to list dashboards.
$back_to_dashboard_list['text'] = '<a href="'.$url.'">';
$back_to_dashboard_list['text'] .= html_print_image(
'images/list.png',
'images/logs@svg.svg',
true,
[
'title' => __('Back to dashboards list'),
'class' => 'invert_filter',
'style' => 'margin-top: 5px',
'class' => 'main_menu_icon invert_filter',
]
);
$back_to_dashboard_list['text'] .= '</a>';
@ -113,7 +116,8 @@ $slides['text'] .= html_print_image(
true,
[
'title' => __('Slides mode'),
'class' => 'invert_filter',
'style' => 'margin-top: 5px',
'class' => 'main_menu_icon invert_filter',
]
);
$slides['text'] .= '</a>';
@ -130,11 +134,12 @@ $publicUrl = ui_get_full_url(
);
$publiclink['text'] = '<a id="public_link" href="'.$publicUrl.'" target="_blank">';
$publiclink['text'] .= html_print_image(
'images/camera_mc.png',
'images/item-icon.svg',
true,
[
'title' => __('Show link to public dashboard'),
'class' => 'invert_filter',
'style' => 'margin-top: 5px',
'class' => 'main_menu_icon invert_filter',
]
);
$publiclink['text'] .= '</a>';
@ -195,10 +200,16 @@ $combo_dashboard['text'] .= html_print_select(
$combo_dashboard['text'] .= '</form>';
// Edit mode.
$enable_disable['text'] = html_print_checkbox_switch(
'edit-mode',
1,
false,
$enable_disable['text'] = html_print_div(
[
'style' => 'margin-top: 10px;',
'content' => html_print_checkbox_switch(
'edit-mode',
1,
false,
true
),
],
true
);

@ -157,9 +157,9 @@ if (empty($dashboards) === true) {
$urlFull .= '&'.\http_build_query($dataQueryFull);
$data['full_screen'] = '<a href="'.$urlFull.'">';
$data['full_screen'] .= \html_print_image(
'images/fullscreen.png',
'images/fullscreen@svg.svg',
true,
['class' => 'invert_filter']
['class' => 'main_menu_icon invert_filter']
);
$data['full_screen'] .= '</a>';
@ -175,7 +175,7 @@ if (empty($dashboards) === true) {
];
$urlCopy = $urlDashboard.'&'.\http_build_query($dataQueryCopy);
$data['copy'] = '<a href="'.$urlCopy.'">';
$data['copy'] .= html_print_image('images/copy.png', true, ['class' => 'invert_filter']);
$data['copy'] .= html_print_image('images/copy.svg', true, ['class' => 'main_menu_icon invert_filter']);
$data['copy'] .= '</a>';
$dataQueryDelete = [
@ -187,9 +187,9 @@ if (empty($dashboards) === true) {
$data['delete'] = '<a href="'.$urlDelete;
$data['delete'] .= '" onclick="javascript: if (!confirm(\''.__('Are you sure?').'\')) return false;">';
$data['delete'] .= \html_print_image(
'images/cross.png',
'images/delete.svg',
true,
['class' => 'invert_filter']
['class' => 'main_menu_icon invert_filter']
);
$data['delete'] .= '</a>';
}

@ -1,5 +1,5 @@
package: pandorafms-server
Version: 7.0NG.769-230306
Version: 7.0NG.769-230307
Architecture: all
Priority: optional
Section: admin

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

@ -46,7 +46,7 @@ our @EXPORT = qw(
# version: Defines actual version of Pandora Server for this module only
my $pandora_version = "7.0NG.769";
my $pandora_build = "230306";
my $pandora_build = "230307";
our $VERSION = $pandora_version." ".$pandora_build;
# Setup hash

@ -34,7 +34,7 @@ our @ISA = qw(Exporter);
# version: Defines actual version of Pandora Server for this module only
my $pandora_version = "7.0NG.769";
my $pandora_build = "230306";
my $pandora_build = "230307";
our $VERSION = $pandora_version." ".$pandora_build;
our %EXPORT_TAGS = ( 'all' => [ qw() ] );

@ -4,7 +4,7 @@
%global __os_install_post %{nil}
%define name pandorafms_server
%define version 7.0NG.769
%define release 230306
%define release 230307
Summary: Pandora FMS Server
Name: %{name}

@ -4,7 +4,7 @@
%global __os_install_post %{nil}
%define name pandorafms_server
%define version 7.0NG.769
%define release 230306
%define release 230307
Summary: Pandora FMS Server
Name: %{name}

@ -9,7 +9,7 @@
# **********************************************************************
PI_VERSION="7.0NG.769"
PI_BUILD="230306"
PI_BUILD="230307"
MODE=$1
if [ $# -gt 1 ]; then

@ -35,7 +35,7 @@ use PandoraFMS::Config;
use PandoraFMS::DB;
# version: define current version
my $version = "7.0NG.769 Build 230306";
my $version = "7.0NG.769 Build 230307";
# Pandora server configuration
my %conf;

@ -36,7 +36,7 @@ use Encode::Locale;
Encode::Locale::decode_argv;
# version: define current version
my $version = "7.0NG.769 Build 230306";
my $version = "7.0NG.769 Build 230307";
# save program name for logging
my $progname = basename($0);