2008-08-22 20:07:32 +02:00
< ? php
2019-05-27 19:00:48 +02:00
/**
* Extension to schedule tasks on Pandora FMS Console
*
* @ category Agent editor / builder .
* @ package Pandora FMS
* @ subpackage Classic agent management view .
* @ version 1.0 . 0
* @ license See below
*
* ______ ___ _______ _______ ________
* | __ \ .-----.--.--.--| |.-----.----.-----. | ___ | | | __ |
* | __ /| _ | | _ || _ | _ | _ | | ___ | | __ |
* | ___ | | ___ . _ | __ | __ | _____ || _____ | __ | | ___ . _ | | ___ | | __ | _ | __ | _______ |
*
* ============================================================================
* Copyright ( c ) 2005 - 2019 Artica Soluciones Tecnologicas
* Please see http :// pandorafms . org 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.
2019-01-30 16:18:44 +01:00
enterprise_include ( 'godmode/agentes/agent_manager.php' );
require_once 'include/functions_clippy.php' ;
require_once 'include/functions_servers.php' ;
require_once 'include/functions_gis.php' ;
require_once $config [ 'homedir' ] . '/include/functions_agents.php' ;
require_once $config [ 'homedir' ] . '/include/functions_users.php' ;
if ( is_ajax ()) {
global $config ;
$search_parents_2 = ( bool ) get_parameter ( 'search_parents_2' );
if ( $search_parents_2 ) {
include_once 'include/functions_agents.php' ;
$id_agent = ( int ) get_parameter ( 'id_agent' );
$string = ( string ) get_parameter ( 'q' );
2019-05-27 19:00:48 +02:00
// Field q is what autocomplete plugin gives.
2019-01-30 16:18:44 +01:00
$filter = [];
2019-05-27 19:00:48 +02:00
$filter [] = '(nombre COLLATE utf8_general_ci LIKE "%' . $string . '%" OR direccion LIKE "%' . $string . '%" OR comentarios LIKE "%' . $string . '%" OR alias LIKE "%' . $string . '%")' ;
2019-01-30 16:18:44 +01:00
$filter [] = 'id_agente != ' . $id_agent ;
2019-05-27 19:00:48 +02:00
$agents = agents_get_agents (
$filter ,
[
'id_agente' ,
'nombre' ,
'direccion' ,
]
);
2019-01-30 16:18:44 +01:00
if ( $agents === false ) {
$agents = [];
}
$data = [];
foreach ( $agents as $agent ) {
$data [] = [
'id' => $agent [ 'id_agente' ],
'name' => io_safe_output ( $agent [ 'nombre' ]),
'ip' => io_safe_output ( $agent [ 'direccion' ]),
];
}
echo io_json_mb_encode ( $data );
return ;
}
$get_modules_json_for_multiple_snmp = ( bool ) get_parameter ( 'get_modules_json_for_multiple_snmp' , 0 );
if ( $get_modules_json_for_multiple_snmp ) {
include_once 'include/graphs/functions_utils.php' ;
$idSNMP = get_parameter ( 'id_snmp' );
$id_snmp_serialize = get_parameter ( 'id_snmp_serialize' );
$snmp = unserialize_in_temp ( $id_snmp_serialize , false );
$oid_snmp = [];
$out = false ;
foreach ( $idSNMP as $id ) {
foreach ( $snmp [ $id ] as $key => $value ) {
2019-05-27 21:30:46 +02:00
// Check if it has "ifXXXX" syntax and skip it.
2019-01-30 16:18:44 +01:00
if ( ! preg_match ( '/if/' , $key )) {
continue ;
}
$oid_snmp [ $value [ 'oid' ]] = $key ;
}
if ( $out === false ) {
$out = $oid_snmp ;
} else {
$out = array_intersect ( $out , $oid_snmp );
}
$oid_snmp = [];
}
echo io_json_mb_encode ( $out );
}
2019-05-27 21:30:46 +02:00
// And and remove groups use the same function.
2019-01-30 16:18:44 +01:00
$add_secondary_groups = get_parameter ( 'add_secondary_groups' );
$remove_secondary_groups = get_parameter ( 'remove_secondary_groups' );
if ( $add_secondary_groups || $remove_secondary_groups ) {
$id_agent = get_parameter ( 'id_agent' );
$groups_to_add = get_parameter ( 'groups' );
if ( enterprise_installed ()) {
if ( empty ( $groups_to_add )) {
return 0 ;
}
enterprise_include ( 'include/functions_agents.php' );
$ret = enterprise_hook (
'agents_update_secondary_groups' ,
[
$id_agent ,
2019-05-27 21:30:46 +02:00
( $add_secondary_groups ) ? $groups_to_add : [],
( $remove_secondary_groups ) ? $groups_to_add : [],
2019-01-30 16:18:44 +01:00
]
);
// Echo 0 in case of error. 0 Otherwise.
2019-05-27 21:30:46 +02:00
echo ( $ret ) ? 1 : 0 ;
2019-01-30 16:18:44 +01:00
}
}
return ;
2009-06-09 13:25:47 +02:00
}
2009-04-13 17:05:21 +02:00
2011-04-13 18:11:02 +02:00
ui_require_javascript_file ( 'openlayers.pandora' );
2010-02-09 18:06:25 +01:00
2019-01-30 16:18:44 +01:00
$new_agent = ( bool ) get_parameter ( 'new_agent' );
2009-04-13 17:05:21 +02:00
2019-01-30 16:18:44 +01:00
if ( ! isset ( $id_agente ) && ! $new_agent ) {
db_pandora_audit ( 'ACL Violation' , 'Trying to access agent manager witout an agent' );
include 'general/noaccess.php' ;
return ;
2008-06-17 Esteban Sanchez <estebans@artica.es>
* ajax.php: Added to repository. AJAX interface for Pandora. A new
time is coming...
* pandoradb.sql: Added id_group to treport. A report is now assigned
to a group of agents. Changes in treport_content to add an order
field, drop sla fields and use an enum for the type. NOTE: This will
break all your current defined reports, update under your
responsabillity. Added table treport_content_sla_combined to define
SLAs in the SLA types reports.
* godmode/reporting/graph_builder.php: Use Pandora functions. Adde
javascript code to display the module icon when changing from the
dropdown menu.
* godmode/reporting/reporting_builder.php: Almost complet rewritten to
use Pandora HTML functions. Style correction.
* include/functions.php: Added new report types. Style correction.
* include/functions_db.php: Use Pandora database functions to get
simple values. Added functions get_agents_in_group(),
get_modules_in_agent(), get_simple_alerts_in_agent(),
get_combined_alerts_in_agent(), get_alerts_in_agent(),
get_monitor_downs_in_period(),
get_monitor_last_down_timestamp_in_period(),
get_alert_fires_in_period(),
get_alert_last_fire_timestamp_in_period(). Deleted debug output and
fixed calling to an inexistent function in
return_moduledata_sum_value().
* include/functions_html.php: Tab style correction. Thanks to Ramon
for the advice. Fixed some errors on print_table that was causing not
to work fine if rowclass or colspan was defined.
* include/functions_reporting.php: Adde date support to
return_module_SLA(), event_reporting(). Added alert_reporting(),
monitor_health_reporting(), general_group_reporting() and
agents_detailed_reporting() to implement new report types. Style
correction.
* include/javascript/pandora.js: Added html_entity_decode() function
to decode some AJAX results.
* javascript/jquery.js: Added to repository. jQuery version 1.2.4a
* include/javascript/jquery.timeentry.js: jQuery plugin to manage time
inputs.
* include/javascript/jquery.ui.datepicker.js: jQuery plugin to manage
date inputs in a dropdown calendar.
* include/languages/date_*.js, include/languages/time_*.js: Added to
repository. Translation of date and time strings for the new calendar
javascript support.
* include/languages/language_en.php: Added new strings relatives to
reports.
* include/languages/language_de.php,
include/languages/language_fr.php, include/languages/language_gl.php,
include/languages/language_pt_br.php: Fixed a variable name.
* godmode/groups/group_list.php: Avoid the use of an extra indentation
by returning if no success on comprueba_login().
* include/styles/pandora.css: Add some classes. Tab style correction.
* operation/agentes/ver_agente.php: Added AJAX support to agent
operations.
* operation/reporting/graph_viewer.php: Period dropdown selection
improved and printed with Pandora functions.
* operation/reporting/reporting_viewer.php: Massive rewritten.
Implemented date and time support, added new report types, use Pandora
functions...
* reporting/fgraph.php: Documentation fix. Added a new graphic to show
monitors health.
* godmode/agentes/agent_manager.php,
operation/reporting/custom_reporting.php: Style correction.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@869 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2008-06-17 16:30:44 +02:00
}
2007-02-27 20:03:56 +01:00
2009-05-27 16:12:40 +02:00
if ( $new_agent ) {
2019-01-30 16:18:44 +01:00
if ( ! empty ( $direccion_agente ) && empty ( $nombre_agente )) {
$nombre_agente = $direccion_agente ;
}
$servers = servers_get_names ();
if ( ! empty ( $servers )) {
$array_keys_servers = array_keys ( $servers );
$server_name = reset ( $array_keys_servers );
}
2009-05-27 16:12:40 +02:00
}
2009-10-20 17:23:26 +02:00
if ( ! $new_agent ) {
2019-05-27 21:30:46 +02:00
// Agent remote configuration editor.
2019-01-30 16:18:44 +01:00
enterprise_include_once ( 'include/functions_config_agents.php' );
if ( enterprise_installed ()) {
$filename = config_agents_get_agent_config_filenames ( $id_agente );
}
2013-01-09 17:19:20 +01:00
}
2008-11-20 15:09:26 +01:00
2019-01-30 16:18:44 +01:00
$disk_conf_delete = ( bool ) get_parameter ( 'disk_conf_delete' );
2019-05-27 21:30:46 +02:00
// Agent remote configuration DELETE.
2009-04-13 17:05:21 +02:00
if ( $disk_conf_delete ) {
2019-01-30 16:18:44 +01:00
// TODO: Get this working on computers where the Pandora server(s) are not on the webserver
2019-05-27 21:30:46 +02:00
// TODO: Get a remote_config editor working in the open version.
2019-01-30 16:18:44 +01:00
@ unlink ( $filename [ 'md5' ]);
@ unlink ( $filename [ 'conf' ]);
2008-06-19 02:24:05 +02:00
}
2019-05-27 17:12:35 +02:00
echo '<form name="conf_agent" method="post" action="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente">' ;
2008-11-20 15:09:26 +01:00
2019-05-27 15:41:23 +02:00
// Custom ID.
$custom_id_div = '<div class="label_select">' ;
$custom_id_div .= '<p class="input_label">' . __ ( 'Custom ID' ) . ': </p>' ;
$custom_id_div .= html_print_input_text (
'custom_id' ,
$custom_id ,
'' ,
16 ,
255 ,
true ,
false ,
false ,
'' ,
'agent_custom_id'
) . '</div>' ;
2019-01-30 16:18:44 +01:00
if ( ! $new_agent && $alias != '' ) {
2019-04-17 09:27:15 +02:00
$table_agent_name = '<div class="label_select"><p class="input_label">' . __ ( 'Agent name' ) . ': ' . ui_print_help_tip ( __ ( " The agent's name must be the same as the one defined at the console " ), true ) . '</p>' ;
$table_agent_name .= '<div class="label_select_parent">' ;
2019-05-27 17:12:35 +02:00
$table_agent_name .= '<div class="label_select_child_left" style="width: 60%;">' . html_print_input_text ( 'agente' , $nombre_agente , '' , 50 , 100 , true ) . '</div>' ;
$table_agent_name .= '<div class="label_select_child_right agent_options_agent_name" style="width: 40%;">' ;
2019-01-30 16:18:44 +01:00
2019-05-27 15:41:23 +02:00
if ( $id_agente ) {
2019-05-27 17:12:35 +02:00
$table_agent_name .= '<label>' . __ ( 'ID' ) . '</label><input style="width: 50%;" type="text" disabled="true" value="' . $id_agente . '" />' ;
$table_agent_name .= '<a href="index.php?sec=gagente&sec2=operation/agentes/ver_agente&id_agente=' . $id_agente . '">' ;
2019-04-17 09:27:15 +02:00
$table_agent_name .= html_print_image (
2019-01-30 16:18:44 +01:00
'images/zoom.png' ,
true ,
[
'border' => 0 ,
'title' => __ ( 'Agent detail' ),
]
);
2019-04-17 09:27:15 +02:00
$table_agent_name .= '</a>' ;
2019-01-30 16:18:44 +01:00
}
2019-05-03 13:07:58 +02:00
$agent_options_update = 'agent_options_update' ;
2008-11-20 15:09:26 +01:00
2019-05-03 14:00:24 +02:00
// Delete link from here.
2019-05-27 21:30:46 +02:00
$table_agent_name .= " <a onClick= \" if (!confirm(' " . __ ( 'Are you sure?' ) . " ')) return false; \" href='index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&borrar_agente= " . $id_agente . " &search=&offset=0&sort_field=&sort=none'> " . html_print_image ( 'images/cross.png' , true , [ 'title' => __ ( 'Delete agent' )]) . '</a>' ;
2019-04-17 09:27:15 +02:00
2019-05-03 14:00:24 +02:00
// Remote configuration available.
2019-01-30 16:18:44 +01:00
if ( isset ( $filename )) {
if ( file_exists ( $filename [ 'md5' ])) {
$agent_name = agents_get_name ( $id_agente );
$agent_name = io_safe_output ( $agent_name );
$agent_md5 = md5 ( $agent_name , false );
2019-05-27 17:12:35 +02:00
$table_agent_name .= '<a href="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=remote_configuration&id_agente=' . $id_agente . '&disk_conf=' . $agent_md5 . '">' ;
2019-04-17 09:27:15 +02:00
$table_agent_name .= html_print_image (
2019-01-30 16:18:44 +01:00
'images/application_edit.png' ,
true ,
[
'border' => 0 ,
'title' => __ ( 'This agent can be remotely configured' ),
]
);
2019-04-17 09:27:15 +02:00
$table_agent_name .= '</a>' . ui_print_help_tip (
2019-01-30 16:18:44 +01:00
__ ( 'You can remotely edit this agent configuration' ),
true
);
}
}
2007-04-18 11:58:26 +02:00
2019-04-17 09:27:15 +02:00
$table_agent_name .= '</div></div></div>' ;
2019-05-27 17:12:35 +02:00
// QR code div.
2019-05-31 09:50:59 +02:00
$table_qr_code = '<div class="box-shadow agent_qr white_box">' ;
2019-05-27 17:12:35 +02:00
$table_qr_code .= '<p class="input_label">' . __ ( 'QR Code Agent view' ) . ': </p>' ;
$table_qr_code .= '<div id="qr_container_image"></div>' ;
if ( $id_agente ) {
$table_qr_code .= " <a id='qr_code_agent_view' href='javascript: show_dialog_qrcode(null, \" " . ui_get_full_url ( 'mobile/index.php?page=agent&id=' . $id_agente ) . " \" );'></a> " ;
}
// Add Custom id div.
$table_qr_code .= '<br />' ;
$table_qr_code .= $custom_id_div ;
$table_qr_code .= '</div>' ;
2011-06-22 19:21:50 +02:00
}
2019-01-30 16:18:44 +01:00
if ( $new_agent ) {
2019-04-17 09:27:15 +02:00
$label_select_child_left = 'label_select_child_left' ;
$label_select_parent = 'label_select_parent' ;
2017-03-06 15:22:01 +01:00
}
2011-06-22 19:21:50 +02:00
2019-04-17 09:27:15 +02:00
$table_alias = '<div class="label_select"><p class="input_label">' . __ ( 'Alias' ) . ': ' . ui_print_help_tip ( __ ( 'Characters /,\,|,%,#,&,$ will be ignored' ), true ) . '</p>' ;
$table_alias .= '<div class=' . $label_select_parent . '>' ;
$table_alias .= '<div class=' . $label_select_child_left . '>' . html_print_input_text ( 'alias' , $alias , '' , 50 , 100 , true ) . '</div>' ;
if ( $new_agent ) {
$table_alias .= '<div class="label_select_child_right">' . html_print_checkbox_switch ( 'alias_as_name' , 1 , $config [ 'alias_as_name' ], true ) . __ ( 'Use alias as name' ) . '</div>' ;
}
2007-04-18 11:58:26 +02:00
2019-04-17 09:27:15 +02:00
$table_alias .= '</div></div>' ;
$table_ip = '<div class="label_select"><p class="input_label">' . __ ( 'IP Address' ) . ': </p>' ;
$table_ip .= '<div class="label_select_parent">' ;
$table_ip .= '<div class="label_select_child_left">' . html_print_input_text ( 'direccion' , $direccion_agente , '' , 16 , 100 , true ) . '</div>' ;
$table_ip .= '<div class="label_select_child_right">' . html_print_checkbox_switch ( 'unique_ip' , 1 , $config [ 'unique_ip' ], true ) . __ ( 'Unique IP' ) . ui_print_help_tip ( __ ( 'Set the primary IP address as the unique IP, preventing the same primary IP address from being used in more than one agent' ), true ) . '</div>' ;
$table_ip .= '</div></div>' ;
2016-09-22 10:27:35 +02:00
2019-04-17 09:27:15 +02:00
if ( $id_agente ) {
2019-01-30 16:18:44 +01:00
$ip_all = agents_get_addresses ( $id_agente );
2016-09-22 10:27:35 +02:00
2019-04-17 09:27:15 +02:00
$table_ip .= '<div class="label_select">' ;
$table_ip .= '<div class="label_select_parent">' ;
$table_ip .= '<div class="label_select_child_left">' . html_print_select ( $ip_all , 'address_list' , $direccion_agente , '' , '' , 0 , true ) . '</div>' ;
$table_ip .= '<div class="label_select_child_right">' . html_print_checkbox_switch ( 'delete_ip' , 1 , false , true ) . __ ( 'Delete selected' ) . '</div>' ;
$table_ip .= '</div></div>' ;
2007-08-23 17:52:42 +02:00
}
2007-04-18 11:58:26 +02:00
2014-05-30 12:51:33 +02:00
?>
< style type = " text/css " >
2019-01-30 16:18:44 +01:00
#qr_code_agent_view img {
display : inline ! important ;
}
2014-05-30 12:51:33 +02:00
</ style >
< ? php
2019-01-30 16:18:44 +01:00
$groups = users_get_groups ( $config [ 'id_user' ], 'AR' , false );
2017-02-16 16:05:21 +01:00
2019-01-30 16:18:44 +01:00
$modules = db_get_all_rows_sql (
' SELECT id_agente_modulo as id_module , nombre as name FROM tagente_modulo
WHERE id_agente = ' . $id_parent
);
$modules_values = [];
2017-01-25 13:59:14 +01:00
$modules_values [ 0 ] = __ ( 'Any' );
2019-01-30 16:18:44 +01:00
if ( is_array ( $modules )) {
foreach ( $modules as $m ) {
$modules_values [ $m [ 'id_module' ]] = $m [ 'name' ];
}
2017-01-25 13:59:14 +01:00
}
2019-04-17 09:27:15 +02:00
$table_primary_group = '<div class="label_select"><p class="input_label">' . __ ( 'Primary group' ) . ': </p>' ;
$table_primary_group .= '<div class="label_select_parent">' ;
// Cannot change primary group if user have not permission for that group.
2018-03-27 16:38:17 +02:00
if ( isset ( $groups [ $grupo ]) || $new_agent ) {
2019-04-17 09:27:15 +02:00
$table_primary_group .= html_print_select_groups ( false , 'AR' , false , 'grupo' , $grupo , '' , '' , 0 , true );
2018-03-27 16:38:17 +02:00
} else {
2019-04-17 09:27:15 +02:00
$table_primary_group .= groups_get_name ( $grupo );
$table_primary_group .= html_print_input_hidden ( 'grupo' , $grupo , true );
2018-03-27 16:38:17 +02:00
}
2019-01-30 16:18:44 +01:00
2019-04-17 09:27:15 +02:00
$table_primary_group .= '<div class="label_select_child_icons"><span id="group_preview">' ;
$table_primary_group .= ui_print_group_icon ( $grupo , true );
$table_primary_group .= '</span></div></div></div>' ;
2009-10-06 21:27:57 +02:00
2019-04-17 09:27:15 +02:00
$table_interval = '<div class="label_select"><p class="input_label">' . __ ( 'Interval' ) . ': </p>' ;
$table_interval .= '<div class="label_select_parent">' ;
2019-05-27 18:03:56 +02:00
$table_interval .= html_print_extended_select_for_time (
'intervalo' ,
$intervalo ,
'' ,
'' ,
'0' ,
10 ,
true ,
false ,
true ,
'w40p'
);
2015-06-08 11:05:19 +02:00
if ( $intervalo < SECONDS_5MINUTES ) {
2019-04-17 09:27:15 +02:00
$table_interval .= clippy_context_help ( 'interval_agent_min' );
2015-02-03 16:08:41 +01:00
}
2019-01-30 16:18:44 +01:00
2019-04-17 09:27:15 +02:00
$table_interval .= '</div></div>' ;
$table_os = '<div class="label_select"><p class="input_label">' . __ ( 'OS' ) . ': </p>' ;
$table_os .= '<div class="label_select_parent">' ;
$table_os .= html_print_select_from_sql (
2019-01-30 16:18:44 +01:00
'SELECT id_os, name FROM tconfig_os' ,
'id_os' ,
$id_os ,
'' ,
'' ,
'0' ,
true
);
2019-04-17 09:27:15 +02:00
$table_os .= '<div class="label_select_child_icons"> <span id="os_preview">' ;
$table_os .= ui_print_os_icon ( $id_os , false , true );
$table_os .= '</span></div></div></div>' ;
2008-03-06 Sancho Lerena <slerena@gmail.com>
Pandora FMS 2.0 development first commit. 1.4 version is now 2.0
* pandoradb_data.sql: Added correct tnetwork_components, fixed
ttipo_modulo (categoria values).
* include/styles/pandora.css: Added some server icons, tab style
for module editor has been improved.
* include/functions_db.php: added new functions, lang_string and
check_login, and a first review of several functions that currently
need change for new config session parameters in array $config[]
* include/javascript/pandora.js: Added a new global include for
spare javascript functions before included into a few pages.
* include/languages/language_en.php: New tokens.
* include/help*: New contextual help system.
* include/config_process.php: New way to manage config.
* include/functions.php: Added new functions to manage global
* operation/agentes/estado_ultimopaquete.php: removed old javascript
code from there.
* operation/agentes/estado_agente.php: Removed references to deprecated
field "agent_type".
* operation/agentes/tactical.php: Some code cleanup and progressbar
issues merged from 1.3.1 branch. Need to add support to new server
types and new module types.
* operation/servers/view_server.php: Added support to new servers, code
cleanup.
* reporting/fgraph.php: Code cleanup, changes to use new config method,
and a lot of style change.
* general/pandora_help.php: New source for contextual help in the way
of moodle.
* general/footer.php, general/noaccess.php: Code cleanup and uses of
new config.
* module_manager_editor: New editors for each module family. Need
finish and implement EDITION of data, now only inserts data.
* godmode/agentes/agent_manager.php: Implemented new server assigment
and edition.
* godmode/agentes/configurar_agente.php: Small changes that affects
module management, visualization and agent management.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@739 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2008-03-07 17:22:16 +01:00
2019-04-17 09:27:15 +02:00
// Network server.
2013-06-13 13:41:56 +02:00
$servers = servers_get_names ();
if ( ! array_key_exists ( $server_name , $servers )) {
2019-01-30 16:18:44 +01:00
$server_Name = 0 ;
// Set the agent have not server.
2013-06-13 13:41:56 +02:00
}
2019-01-30 16:18:44 +01:00
2019-04-17 09:27:15 +02:00
$table_server = '<div class="label_select"><p class="input_label">' . __ ( 'Server' ) . ': </p>' ;
$table_server .= '<div class="label_select_parent">' ;
2013-01-09 17:19:20 +01:00
if ( $new_agent ) {
2019-01-30 16:18:44 +01:00
// Set first server by default.
$servers_get_names = servers_get_names ();
$array_keys_servers_get_names = array_keys ( $servers_get_names );
$server_name = reset ( $array_keys_servers_get_names );
2013-01-09 17:19:20 +01:00
}
2019-01-30 16:18:44 +01:00
2019-04-17 09:27:15 +02:00
$table_server .= html_print_select (
2019-01-30 16:18:44 +01:00
servers_get_names (),
'server_name' ,
$server_name ,
'' ,
__ ( 'None' ),
0 ,
true
2019-05-30 11:12:37 +02:00
) . '<div class="label_select_child_icons"></div></div></div>' ;
2008-10-22 14:01:36 +02:00
2019-04-17 09:27:15 +02:00
// Description.
$table_description = '<div class="label_select"><p class="input_label">' . __ ( 'Description' ) . ': </p>' ;
2019-05-27 17:12:35 +02:00
$table_description .= html_print_textarea (
2019-01-30 16:18:44 +01:00
'comentarios' ,
2019-05-27 17:12:35 +02:00
3 ,
10 ,
2019-01-30 16:18:44 +01:00
$comentarios ,
'' ,
2019-05-27 17:12:35 +02:00
true ,
'agent_description'
2019-04-17 09:27:15 +02:00
) . '</div>' ;
2019-01-30 16:18:44 +01:00
2019-05-27 15:41:23 +02:00
// QR code.
2019-04-17 09:27:15 +02:00
echo ' < div class = " first_row " >
2019-05-31 09:50:59 +02:00
< div class = " box-shadow agent_options '. $agent_options_update .' white_box " >
2019-05-03 13:07:58 +02:00
< div class = " agent_options_column_left " > '.$table_agent_name.$table_alias.$table_ip.$table_primary_group.' </ div >
< div class = " agent_options_column_right " > '.$table_interval.$table_os.$table_server.$table_description.' </ div >
2019-04-17 09:27:15 +02:00
</ div > ' ;
2019-05-03 14:00:24 +02:00
if ( ! $new_agent && $alias != '' ) {
2019-04-17 09:27:15 +02:00
echo $table_qr_code ;
}
echo '</div>' ;
2010-08-25 14:04:42 +02:00
2018-03-21 16:27:01 +01:00
if ( enterprise_installed ()) {
2019-01-30 16:18:44 +01:00
$secondary_groups_selected = enterprise_hook ( 'agents_get_secondary_groups' , [ $id_agente ]);
2019-05-30 11:12:37 +02:00
$table_adv_secondary_groups = '<div class="label_select"><p class="input_label">' . __ ( 'Secondary groups' ) . ': </p></div>' ;
2019-05-03 13:07:58 +02:00
$table_adv_secondary_groups_left = html_print_select_groups (
2019-01-30 16:18:44 +01:00
false ,
2019-05-27 21:30:46 +02:00
// Use the current user to select the groups.
2019-01-30 16:18:44 +01:00
'AR' ,
2019-05-27 21:30:46 +02:00
// ACL permission.
2019-01-30 16:18:44 +01:00
false ,
2019-05-27 21:30:46 +02:00
// Not all group.
2019-01-30 16:18:44 +01:00
'secondary_groups' ,
2019-05-27 21:30:46 +02:00
// HTML id.
2019-01-30 16:18:44 +01:00
'' ,
2019-05-27 21:30:46 +02:00
// No select any by default.
2019-01-30 16:18:44 +01:00
'' ,
2019-05-27 21:30:46 +02:00
// Javascript onChange code.
2019-01-30 16:18:44 +01:00
'' ,
2019-05-27 21:30:46 +02:00
// Do not user no selected value.
2019-01-30 16:18:44 +01:00
0 ,
2019-05-27 21:30:46 +02:00
// Do not use no selected value.
2019-01-30 16:18:44 +01:00
true ,
2019-05-27 21:30:46 +02:00
// Return HTML (not echo).
2019-01-30 16:18:44 +01:00
true ,
2019-05-27 21:30:46 +02:00
// Multiple selection.
2019-01-30 16:18:44 +01:00
true ,
2019-05-27 21:30:46 +02:00
// Sorting by default.
2019-01-30 16:18:44 +01:00
'' ,
2019-05-27 21:30:46 +02:00
// CSS classnames (default).
2019-01-30 16:18:44 +01:00
false ,
2019-05-27 21:30:46 +02:00
// Not disabled (default).
2019-05-27 14:12:53 +02:00
'width:50%; min-width:170px;' ,
2019-05-27 21:30:46 +02:00
// Inline styles (default).
2019-01-30 16:18:44 +01:00
false ,
2019-05-27 21:30:46 +02:00
// Option style select (default).
2019-01-30 16:18:44 +01:00
false ,
2019-05-27 21:30:46 +02:00
// Do not truncate the users tree (default).
2019-01-30 16:18:44 +01:00
'id_grupo' ,
2019-05-27 21:30:46 +02:00
// Key to get as value (default).
2019-01-30 16:18:44 +01:00
false ,
2019-05-27 21:30:46 +02:00
// Not strict user (default).
2019-01-30 16:18:44 +01:00
$secondary_groups_selected [ 'plain' ]
2019-05-27 21:30:46 +02:00
// Do not show the primary group in this selection.
2019-01-30 16:18:44 +01:00
);
2019-05-03 13:07:58 +02:00
$table_adv_secondary_groups_arrows = html_print_input_image (
2019-01-30 16:18:44 +01:00
'add_secondary' ,
2019-05-03 13:07:58 +02:00
'images/darrowright_green.png' ,
2019-01-30 16:18:44 +01:00
1 ,
'' ,
true ,
[
2019-05-03 13:07:58 +02:00
'id' => 'right_autorefreshlist' ,
2019-01-30 16:18:44 +01:00
'title' => __ ( 'Add secondary groups' ),
'onclick' => 'agent_manager_add_secondary_groups(event, ' . $id_agente . ');' ,
]
2019-05-03 13:07:58 +02:00
) . html_print_input_image (
2019-01-30 16:18:44 +01:00
'remove_secondary' ,
2019-05-03 13:07:58 +02:00
'images/darrowleft_green.png' ,
2019-01-30 16:18:44 +01:00
1 ,
'' ,
true ,
[
2019-05-03 13:07:58 +02:00
'id' => 'left_autorefreshlist' ,
2019-01-30 16:18:44 +01:00
'title' => __ ( 'Remove secondary groups' ),
'onclick' => 'agent_manager_remove_secondary_groups(event, ' . $id_agente . ');' ,
]
);
2019-05-03 13:07:58 +02:00
$table_adv_secondary_groups_right .= html_print_select (
2019-01-30 16:18:44 +01:00
$secondary_groups_selected [ 'for_select' ],
2019-05-27 21:30:46 +02:00
// Values.
2019-01-30 16:18:44 +01:00
'secondary_groups_selected' ,
2019-05-27 21:30:46 +02:00
// HTML id.
2019-01-30 16:18:44 +01:00
'' ,
2019-05-27 21:30:46 +02:00
// Selected.
2019-01-30 16:18:44 +01:00
'' ,
2019-05-27 21:30:46 +02:00
// Javascript onChange code.
2019-01-30 16:18:44 +01:00
'' ,
2019-05-27 21:30:46 +02:00
// Nothing selected.
2019-01-30 16:18:44 +01:00
0 ,
2019-05-27 21:30:46 +02:00
// Nothing selected.
2019-01-30 16:18:44 +01:00
true ,
2019-05-27 21:30:46 +02:00
// Return HTML (not echo).
2019-05-03 13:07:58 +02:00
true ,
2019-05-27 21:30:46 +02:00
// Multiple selection.
2019-05-03 13:07:58 +02:00
true ,
2019-05-27 21:30:46 +02:00
// Sort.
2019-05-03 13:07:58 +02:00
'' ,
2019-05-27 21:30:46 +02:00
// Class.
2019-05-03 13:07:58 +02:00
false ,
2019-05-27 21:30:46 +02:00
// Disabled.
2019-05-27 14:12:53 +02:00
'width:50%; min-width:170px;'
2019-05-27 21:30:46 +02:00
// Style.
2019-01-30 16:18:44 +01:00
);
2019-05-27 21:30:46 +02:00
// Safe operation mode.
2019-01-30 16:18:44 +01:00
if ( $id_agente ) {
$sql_modules = db_get_all_rows_sql (
' SELECT id_agente_modulo as id_module , nombre as name FROM tagente_modulo
WHERE id_agente = ' . $id_agente
);
$safe_mode_modules = [];
$safe_mode_modules [ 0 ] = __ ( 'Any' );
foreach ( $sql_modules as $m ) {
$safe_mode_modules [ $m [ 'id_module' ]] = $m [ 'name' ];
}
2019-05-03 13:24:15 +02:00
$table_adv_safe = '<div class="label_select_simple label_simple_items"><p class="input_label input_label_simple">' . __ ( 'Safe operation mode' ) . ': ' . ui_print_help_tip (
2019-01-30 16:18:44 +01:00
__ (
' This mode allow % s to disable all modules
of this agent while the selected module is on CRITICAL status ' ,
get_product_name ()
),
true
2019-05-03 13:07:58 +02:00
) . '</p>' ;
$table_adv_safe .= html_print_checkbox_switch ( 'safe_mode' , 1 , $safe_mode , true );
$table_adv_safe .= __ ( 'Module' ) . ' ' . html_print_select ( $safe_mode_modules , 'safe_mode_module' , $safe_mode_module , '' , '' , 0 , true ) . '</div>' ;
2019-01-30 16:18:44 +01:00
}
2019-05-27 21:30:46 +02:00
// Remote configuration.
2019-05-03 13:24:15 +02:00
$table_adv_remote = '<div class="label_select"><p class="input_label">' . __ ( 'Remote configuration' ) . ': </p>' ;
2019-01-30 16:18:44 +01:00
2019-05-13 15:02:13 +02:00
if ( ! $new_agent && isset ( $filename ) && file_exists ( $filename [ 'md5' ])) {
2019-05-13 15:54:06 +02:00
$table_adv_remote .= date ( 'F d Y H:i:s' , fileatime ( $filename [ 'md5' ]));
2019-05-27 21:30:46 +02:00
// Delete remote configuration.
2019-05-27 17:12:35 +02:00
$table_adv_remote .= '<a href="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=main&disk_conf_delete=1&id_agente=' . $id_agente . '">' ;
2019-05-13 15:54:06 +02:00
$table_adv_remote .= html_print_image (
'images/cross.png' ,
true ,
[
'title' => __ ( 'Delete remote configuration file' ),
'style' => 'vertical-align: middle;' ,
]
) . '</a>' ;
$table_adv_remote .= '</a>' . ui_print_help_tip (
__ ( 'Delete this conf file implies that for restore you must reactive remote config in the local agent.' ),
true
);
} else {
$table_adv_remote .= '<em>' . __ ( 'Not available' ) . '</em>' ;
2019-01-30 16:18:44 +01:00
}
2019-05-03 13:07:58 +02:00
$table_adv_remote .= '</div>' ;
2019-01-30 16:18:44 +01:00
2019-05-27 14:12:53 +02:00
// Calculate cps value - agents.
if ( $id_agente ) {
$cps_val = service_agents_cps ( $id_agente );
2019-05-13 15:54:06 +02:00
} else {
2019-05-27 14:12:53 +02:00
// No agent defined, use received cps as base value.
if ( $cps >= 0 ) {
$cps_val = $cps ;
2019-05-13 15:54:06 +02:00
}
}
2019-05-13 15:02:13 +02:00
2019-05-27 14:12:53 +02:00
$cps_html = '<div class="label_select"><div class="label_simple_items">' ;
$cps_html .= html_print_checkbox_switch ( 'cps' , $cps_val , ( $cps >= 0 ), true );
2019-05-30 11:12:37 +02:00
$cps_html .= __ ( 'Cascade protection services' ) . ' ' ;
2019-05-27 14:12:53 +02:00
$cps_html .= ui_print_help_tip (
__ ( 'Alerts and events will be managed by the service joined by this agent.' ),
true
);
$cps_html .= '</div></div>' ;
$table_adv_cascade .= $cps_html ;
2018-08-23 08:28:02 +02:00
}
2019-05-03 13:24:15 +02:00
$table_adv_parent = '<div class="label_select"><p class="input_label">' . __ ( 'Parent' ) . ': </p>' ;
2019-01-30 16:18:44 +01:00
$params = [];
2018-08-23 08:28:02 +02:00
$params [ 'return' ] = true ;
$params [ 'show_helptip' ] = true ;
$params [ 'input_name' ] = 'id_parent' ;
$params [ 'print_hidden_input_idagent' ] = true ;
$params [ 'hidden_input_idagent_name' ] = 'id_agent_parent' ;
$params [ 'hidden_input_idagent_value' ] = $id_parent ;
2019-01-30 16:18:44 +01:00
$params [ 'value' ] = db_get_value ( 'alias' , 'tagente' , 'id_agente' , $id_parent );
2018-08-23 08:28:02 +02:00
$params [ 'selectbox_id' ] = 'cascade_protection_module' ;
$params [ 'javascript_is_function_select' ] = true ;
$params [ 'cascade_protection' ] = true ;
2019-05-03 13:07:58 +02:00
$table_adv_parent .= '<div class="label_simple_items">' ;
$table_adv_parent .= ui_print_agent_autocomplete_input ( $params );
2018-08-23 08:28:02 +02:00
if ( enterprise_installed ()) {
2019-05-27 21:30:46 +02:00
$table_adv_parent .= html_print_checkbox_switch (
'cascade_protection' ,
1 ,
$cascade_protection ,
true
2019-05-30 11:12:37 +02:00
) . __ ( 'Cascade protection' ) . ' ' ;
2018-08-23 08:28:02 +02:00
}
2019-01-30 16:18:44 +01:00
2019-05-27 21:30:46 +02:00
$table_adv_parent .= __ ( 'Module' ) . ' ' . html_print_select (
$modules_values ,
'cascade_protection_module' ,
$cascade_protection_module ,
'' ,
'' ,
0 ,
true
) . '</div></div>' ;
2019-05-03 13:07:58 +02:00
2019-05-27 21:30:46 +02:00
// Learn mode / Normal mode.
2019-05-30 11:12:37 +02:00
$table_adv_module_mode = '<div class="label_select"><p class="input_label">' . __ ( 'Module definition' ) . ': </p>' ;
2019-05-03 13:07:58 +02:00
$table_adv_module_mode .= '<div class="switch_radio_button">' ;
$table_adv_module_mode .= html_print_radio_button_extended (
2019-01-30 16:18:44 +01:00
'modo' ,
1 ,
2019-05-03 13:07:58 +02:00
__ ( 'Learning mode' ),
2019-01-30 16:18:44 +01:00
$modo ,
false ,
'show_modules_not_learning_mode_context_help();' ,
2019-05-03 13:07:58 +02:00
'' ,
2019-01-30 16:18:44 +01:00
true
);
2019-05-03 13:07:58 +02:00
$table_adv_module_mode .= html_print_radio_button_extended (
2019-01-30 16:18:44 +01:00
'modo' ,
0 ,
2019-05-03 13:07:58 +02:00
__ ( 'Normal mode' ),
2019-01-30 16:18:44 +01:00
$modo ,
false ,
'show_modules_not_learning_mode_context_help();' ,
2019-05-03 13:07:58 +02:00
'' ,
2019-01-30 16:18:44 +01:00
true
);
2019-05-03 13:07:58 +02:00
$table_adv_module_mode .= html_print_radio_button_extended (
2019-01-30 16:18:44 +01:00
'modo' ,
2 ,
2019-05-03 13:07:58 +02:00
__ ( 'Autodisable mode' ),
2019-01-30 16:18:44 +01:00
$modo ,
false ,
'show_modules_not_learning_mode_context_help();' ,
2019-05-03 13:07:58 +02:00
'' ,
2019-01-30 16:18:44 +01:00
true
);
2019-05-03 13:07:58 +02:00
$table_adv_module_mode .= '</div></div>' ;
2018-08-23 08:28:02 +02:00
2019-05-27 21:30:46 +02:00
// Status (Disabled / Enabled).
2019-05-03 13:24:15 +02:00
$table_adv_status = '<div class="label_select_simple label_simple_one_item"><p class="input_label input_label_simple">' . __ ( 'Disabled' ) . ': ' . ui_print_help_tip ( __ ( 'If the remote configuration is enabled, it will also go into standby mode when disabling it.' ), true ) . '</p>' ;
2019-05-27 21:30:46 +02:00
$table_adv_status .= html_print_checkbox_switch (
'disabled' ,
1 ,
$disabled ,
true
) . '</div>' ;
2019-05-03 13:07:58 +02:00
// Url address.
2019-01-30 16:18:44 +01:00
if ( enterprise_installed ()) {
2019-05-03 13:24:15 +02:00
$table_adv_url = '<div class="label_select"><p class="input_label">' . __ ( 'Url address' ) . ': ' . ui_print_help_tip ( __ ( 'URL address must be complete, for example: https://pandorafms.com/' ), true ) . '</p>' ;
2019-05-03 13:07:58 +02:00
$table_adv_url .= html_print_input_text (
2019-01-30 16:18:44 +01:00
'url_description' ,
$url_description ,
'' ,
45 ,
255 ,
true
2019-05-03 13:07:58 +02:00
) . '</div>' ;
2019-01-30 16:18:44 +01:00
} else {
2019-05-03 13:24:15 +02:00
$table_adv_url = '<div class="label_select"><p class="input_label">' . __ ( 'Url address' ) . ': </p></div>' ;
2019-05-03 13:07:58 +02:00
$table_adv_url .= html_print_input_text (
2019-01-30 16:18:44 +01:00
'url_description' ,
$url_description ,
'' ,
45 ,
255 ,
true
2019-05-03 13:07:58 +02:00
) . '</div>' ;
2019-01-30 16:18:44 +01:00
}
2019-05-03 13:24:15 +02:00
$table_adv_quiet = '<div class="label_select_simple label_simple_one_item"><p class="input_label input_label_simple">' . __ ( 'Quiet' ) . ': ' ;
2019-05-03 13:07:58 +02:00
$table_adv_quiet .= ui_print_help_tip ( __ ( 'The agent still runs but the alerts and events will be stop' ), true ) . '</p>' ;
$table_adv_quiet .= html_print_checkbox_switch ( 'quiet' , 1 , $quiet , true ) . '</div>' ;
2018-08-23 08:28:02 +02:00
2011-04-27 15:43:31 +02:00
$listIcons = gis_get_array_list_icons ();
2010-02-04 10:42:46 +01:00
2019-01-30 16:18:44 +01:00
$arraySelectIcon = [];
foreach ( $listIcons as $index => $value ) {
$arraySelectIcon [ $index ] = $index ;
}
2010-02-04 10:42:46 +01:00
2019-01-30 16:18:44 +01:00
$path = 'images/gis_map/icons/' ;
2019-05-27 21:30:46 +02:00
// TODO set better method the path.
2019-05-03 13:24:15 +02:00
$table_adv_agent_icon = '<div class="label_select"><p class="input_label">' . __ ( 'Agent icon' ) . ': ' . ui_print_help_tip ( __ ( 'Agent icon for GIS Maps.' ), true ) . '</p>' ;
2013-02-27 10:51:48 +01:00
if ( $icon_path == '' ) {
2019-01-30 16:18:44 +01:00
$display_icons = 'none' ;
2019-05-27 21:30:46 +02:00
// Hack to show no icon. Use any given image to fix not found image errors.
2019-01-30 16:18:44 +01:00
$path_without = 'images/spinner.png' ;
$path_default = 'images/spinner.png' ;
$path_ok = 'images/spinner.png' ;
$path_bad = 'images/spinner.png' ;
$path_warning = 'images/spinner.png' ;
} else {
$display_icons = '' ;
$path_without = $path . $icon_path . '.default.png' ;
$path_default = $path . $icon_path . '.default.png' ;
$path_ok = $path . $icon_path . '.ok.png' ;
$path_bad = $path . $icon_path . '.bad.png' ;
$path_warning = $path . $icon_path . '.warning.png' ;
2011-07-19 18:24:10 +02:00
}
2011-07-20 09:53:03 +02:00
2019-05-03 13:07:58 +02:00
$table_adv_agent_icon .= html_print_select (
2019-01-30 16:18:44 +01:00
$arraySelectIcon ,
'icon_path' ,
$icon_path ,
'changeIcons();' ,
__ ( 'None' ),
'' ,
true
2019-05-03 13:07:58 +02:00
) . html_print_image (
2019-01-30 16:18:44 +01:00
$path_ok ,
true ,
[
'id' => 'icon_ok' ,
'style' => 'display:' . $display_icons . ';' ,
]
2019-05-03 13:07:58 +02:00
) . html_print_image (
2019-01-30 16:18:44 +01:00
$path_bad ,
true ,
[
'id' => 'icon_bad' ,
'style' => 'display:' . $display_icons . ';' ,
]
2019-05-03 13:07:58 +02:00
) . html_print_image (
2019-01-30 16:18:44 +01:00
$path_warning ,
true ,
[
'id' => 'icon_warning' ,
'style' => 'display:' . $display_icons . ';' ,
]
2019-05-03 13:07:58 +02:00
) . '</div>' ;
2010-02-04 10:42:46 +01:00
if ( $config [ 'activate_gis' ]) {
2019-05-03 13:07:58 +02:00
$table_adv_gis = '<div class="label_select_simple label_simple_one_item"><p class="input_label input_label_simple">' . __ ( 'Ignore new GIS data:' ) . '</p>' ;
if ( $new_agent ) {
$update_gis_data = true ;
}
$table_adv_gis .= html_print_checkbox_switch ( 'update_gis_data' , 1 , $update_gis_data , true ) . 'No / Yes</div>' ;
2010-02-04 10:42:46 +01:00
}
2007-05-20 19:12:31 +02:00
2019-05-03 13:07:58 +02:00
2019-05-27 15:41:23 +02:00
// General display distribution.
2019-05-03 13:07:58 +02:00
$table_adv_options = $table_adv_secondary_groups . ' < div class = " secondary_groups_select " style = " margin-bottom:30px; " >
< div class = " secondary_groups_list_left " >
'.$table_adv_secondary_groups_left.'
</ div >
< div class = " secondary_groups_select_arrows " >
'.$table_adv_secondary_groups_arrows.'
</ div >
< div class = " secondary_groups_list_right " >
'.$table_adv_secondary_groups_right.'
</ div >
</ div >
< div class = " agent_options agent_options_adv " >
2019-05-27 15:41:23 +02:00
< div class = " agent_options_column_left " > ' . $table_adv_parent . $table_adv_module_mode . $table_adv_cascade ;
if ( $new_agent ) {
// If agent is new, show custom id as old style format.
$table_adv_options .= $custom_id_div ;
}
$table_adv_options .= $table_adv_gis . ' </ div >
2019-05-03 13:07:58 +02:00
< div class = " agent_options_column_right " > '.$table_adv_agent_icon.$table_adv_url.$table_adv_quiet.$table_adv_status.$table_adv_remote.$table_adv_safe.' </ div >
</ div > ' ;
2019-04-17 10:35:32 +02:00
echo '<div class="ui_toggle">' ;
2019-05-31 09:50:59 +02:00
ui_toggle (
$table_adv_options ,
__ ( 'Advanced options' ),
'' ,
true ,
false ,
'' ,
'padding-4'
);
2019-04-17 10:35:32 +02:00
echo '</div>' ;
2019-05-03 13:07:58 +02:00
2010-08-25 14:04:42 +02:00
2015-06-25 10:07:53 +02:00
$table = new stdClass ();
2015-04-10 09:43:44 +02:00
$table -> width = '100%' ;
2019-04-17 09:27:15 +02:00
$table -> class = 'custom_fields_table' ;
2010-08-25 14:04:42 +02:00
2019-05-28 13:27:17 +02:00
$table -> head = [
0 => __ ( 'Click to display' ) . ui_print_help_tip (
__ ( 'This field allows url insertion using the BBCode\'s url tag' ) . '.<br />' . __ ( 'The format is: [url=\'url to navigate\']\'text to show\'[/url]' ) . '.<br /><br />' . __ ( 'e.g.: [url=google.com]Google web search[/url]' ),
true
),
];
$table -> class = 'info_table' ;
2019-01-30 16:18:44 +01:00
$table -> style = [];
2019-04-17 09:27:15 +02:00
$table -> style [ 0 ] = 'font-weight: bold;' ;
2019-01-30 16:18:44 +01:00
$table -> data = [];
2019-05-27 19:00:48 +02:00
$table -> rowstyle = [];
2010-08-25 14:04:42 +02:00
* include/functions_graph.php
include/functions_html.php
include/functions_messages.php
include/db/postgresql.php
include/db/mysql.php
include/db/oracle.php
include/functions_reporting.php
include/functions_filemanager.php
include/functions_gis.php
include/auth/ldap.php
include/auth/mysql.php
include/functions_networkmap.php
include/functions_network_components.php
include/ajax/skins.ajax.php
include/ajax/reporting.ajax.php
include/ajax/visual_console_builder.ajax.php
include/ajax/alert_list.ajax.php
include/ajax/module.php
include/functions_config.php
include/functions_api.php
include/help/en/help_timesource.php
include/help/es/help_timesource.php
include/help/ja/help_timesource.php
include/config_process.php
include/functions_ui.php
include/functions_custom_graphs.php
include/fgraph.php
include/functions_incidents.php
include/api.php
include/functions_reports.php
include/functions_ui_renders.php
extensions/insert_data.php
extensions/system_info.php
extensions/extension_uploader.php
extensions/pandora_logs.php
extensions/agents_modules.php
extensions/update_manager.php
extensions/ssh_console.php
extensions/dbmanager.php
extensions/vnc_view.php
extensions/resource_registration.php
extensions/resource_exportation.php
extensions/users_connected.php
extensions/module_groups.php
extensions/update_manager/load_updatemanager.php
extensions/update_manager/lib/libupdate_manager_client.php
extensions/update_manager/lib/libupdate_manager.php
extensions/update_manager/lib/libupdate_manager_components.php
extensions/update_manager/lib/libupdate_manager_updates.php
extensions/update_manager/settings.php
extensions/update_manager/main.php
extensions/plugin_registration.php
operation/incidents/incident.php
operation/incidents/incident_detail.php
operation/incidents/incident_statistics.php
operation/search_modules.php
operation/visual_console/render_view.php
operation/visual_console/index.php
operation/extensions.php
operation/agentes/status_monitor.php
operation/agentes/export_csv.php
operation/agentes/estado_ultimopaquete.php
operation/agentes/datos_agente.php
operation/agentes/alerts_status.php
operation/agentes/estado_generalagente.php
operation/agentes/custom_fields.php
operation/agentes/estado_agente.php
operation/agentes/networkmap.topology.php
operation/agentes/networkmap.groups.php
operation/agentes/sla_view.php
operation/agentes/exportdata.php
operation/agentes/gis_view.php
operation/agentes/estado_monitores.php
operation/agentes/ver_agente.php
operation/agentes/graphs.php
operation/agentes/agent_fields.php
operation/agentes/tactical.php
operation/agentes/group_view.php
operation/agentes/networkmap.php
operation/agentes/stat_win.php
operation/servers/view_server.php
operation/servers/view_server_detail.php
operation/menu.php
operation/search_agents.php
operation/search_graphs.php
operation/snmpconsole/snmp_view.php
operation/users/user_edit.php
operation/gis_maps/render_view.php
operation/gis_maps/ajax.php
operation/integria_incidents/incident.php
operation/integria_incidents/incident_detail.php
operation/integria_incidents/incident_statistics.php
operation/events/event_statistics.php
operation/events/events_rss.php
operation/events/export_csv.php
operation/events/sound_events.php
operation/events/events_validate.php
operation/events/events_list.php
operation/events/events_marquee.php
operation/events/events.php
operation/search_alerts.php
operation/messages/message.php
operation/reporting/reporting_xml.php
operation/reporting/reporting_viewer.php
operation/reporting/graph_viewer.php
operation/search_reports.php
operation/search_maps.php
operation/search_users.php
extras/pandora_diag.php
mobile/operation/agents/monitor_status.php
mobile/operation/agents/view_agents.php
mobile/operation/agents/view_alerts.php
mobile/operation/agents/group_view.php
mobile/operation/events/events.php
mobile/index.php
general/error_authconfig.php
general/links_menu.php
general/logon_ok.php
general/error_dbconfig.php
general/ui/agents_list.php
general/header.php
godmode/groups/modu_group_list.php
godmode/groups/configure_group.php
godmode/groups/configure_modu_group.php
godmode/groups/group_list.php
godmode/admin_access_logs.php
godmode/db/db_main.php
godmode/db/db_audit.php
godmode/db/db_sanity.php
godmode/db/db_refine.php
godmode/db/db_info.php
godmode/db/db_event.php
godmode/db/db_purge.php
godmode/extensions.php
godmode/agentes/agent_template.php
godmode/agentes/module_manager_editor_common.php
godmode/agentes/fields_manager.php
godmode/agentes/agent_conf_gis.php
godmode/agentes/module_manager_editor_prediction.php
godmode/agentes/module_manager.php
godmode/agentes/modificar_agente.php
godmode/agentes/configurar_agente.php
godmode/agentes/configure_field.php
godmode/agentes/module_manager_editor.php
godmode/agentes/planned_downtime.php
godmode/agentes/manage_config_remote.php
godmode/agentes/agent_manager.php
godmode/servers/recon_script.php
godmode/servers/plugin.php
godmode/servers/manage_recontask.php
godmode/servers/modificar_server.php
godmode/servers/manage_recontask_form.php
godmode/alerts/alert_list.list.php
godmode/alerts/configure_alert_compound.php
godmode/alerts/alert_compounds.php
godmode/alerts/alert_list.php
godmode/alerts/configure_alert_template.php
godmode/alerts/alert_templates.php
godmode/alerts/configure_alert_action.php
godmode/alerts/configure_alert_command.php
godmode/alerts/alert_actions.php
godmode/alerts/alert_list.builder.php
godmode/alerts/alert_commands.php
godmode/setup/file_manager.php
godmode/setup/os.list.php
godmode/setup/news.php
godmode/setup/gis_step_2.php
godmode/setup/links.php
godmode/setup/setup.php
godmode/setup/os.php
godmode/setup/performance.php
godmode/setup/setup_auth.php
godmode/setup/gis.php
godmode/setup/os.builder.php
godmode/setup/setup_visuals.php
godmode/snmpconsole/snmp_alert.php
godmode/snmpconsole/snmp_filters.php
godmode/users/user_list.php
godmode/users/configure_profile.php
godmode/gis_maps/configure_gis_map.php
godmode/gis_maps/index.php
godmode/massive/massive_add_alerts.php
godmode/massive/massive_copy_modules.php
godmode/massive/massive_delete_agents.php
godmode/massive/massive_enable_disable_alerts.php
godmode/massive/massive_operations.php
godmode/massive/massive_delete_profiles.php
godmode/massive/massive_edit_agents.php
godmode/massive/massive_delete_action_alerts.php
godmode/massive/massive_delete_modules.php
godmode/massive/massive_add_profiles.php
godmode/massive/massive_delete_alerts.php
godmode/massive/massive_edit_modules.php
godmode/massive/massive_standby_alerts.php
godmode/massive/massive_add_action_alerts.php
godmode/modules/manage_network_components_form.php
godmode/modules/manage_nc_groups_form.php
godmode/modules/manage_network_templates.php
godmode/modules/module_list.php
godmode/modules/manage_network_components_form_common.php
godmode/modules/manage_network_components_form_network.php
godmode/modules/manage_network_templates_form.php
godmode/modules/manage_network_components_form_wmi.php
godmode/modules/manage_network_components.php
godmode/modules/manage_nc_groups.php
godmode/reporting/visual_console_builder.wizard.php
godmode/reporting/graph_builder.main.php
godmode/reporting/reporting_builder.list_items.php
godmode/reporting/visual_console_builder.php
godmode/reporting/reporting_builder.preview.php
godmode/reporting/reporting_builder.main.php
godmode/reporting/visual_console_builder.data.php
godmode/reporting/visual_console_builder.elements.php
godmode/reporting/graph_builder.php
godmode/reporting/visual_console_builder.preview.php
godmode/reporting/graph_builder.graph_editor.php
godmode/reporting/reporting_builder.php
godmode/reporting/visual_console_builder.editor.php
godmode/reporting/reporting_builder.item_editor.php
godmode/reporting/map_builder.php
godmode/reporting/graphs.php
godmode/reporting/graph_builder.preview.php
include/functions_db.php: Added some includes and functions of this code have "db_" prefix.
* include/functions.php: Moved function check_login(), check_acl(),
dame_nombre_pluginid(), get_os_name() from functions_db.php to functions.php.
* include/functions_groups.php: Moved functions get_childrens(), safe_acl_group()
and get_parents(), give_disabled_group(), isAllGroups(), get_group_icon(), get_all_groups(),
get_id_groups_recursive(), get_user_groups_tree_recursive(), get_group_status(),
get_group_name(), get_group_users() from functions_db.php to this code.
* include/functions_profile.php: New library with profile functions. Moved functions
get_profile_name(), get_profiles(), create_user_profile(), delete_user_profile(),
delete_profile() from functions_db.php to this code. Added new parameter in function
get_profile() to retrieve profiles with filter conditions applied.
* include/functions_users.php: New library with users functions. Moved functions
get_users_info(), get_all_model_groups(), get_user_groups(), get_user_groups_tree(),
get_user_first_group(), user_access_to_agent() from funtions_db.php to this code.
* godmode/users/configure_user.php: Changed get_profile_filter() function to get_profile().
* include/functions_agents.php: Moved functions get_group_agents(), get_agent_modules(),
get_agent_module_id(), get_agent_id(), get_agent_name(), get_agent_modules_data_count(),
check_alert_fired(), get_agent_interval(), get_agent_os(), give_agentmodule_flag(),
agent_add_address(), agent_delete_address(), get_agent_address(), get_agent_with_ip(),
get_agent_addresses(), get_agent_status(), delete_agent(), get_agentmodule_group(),
get_agent_group() from functions_db.php to this code.
* include/functions_modules.php: Moved functions get_agentmodule(), get_agentmodule_id(),
get_agentmodule_is_init(), get_agent_modules_count(), get_module_type_name(),
get_module_type_icon(), get_agentmodule_agent(), get_agentmodule_agent_name(),
get_agentmodule_name(), get_agentmodule_type(), get_monitor_downs_in_period(),
get_monitor_last_down_timestamp_in_period(), get_monitors_in_group(),
get_monitors_in_agent(), get_monitors_down(), get_moduletype_name(),
get_moduletype_description(), get_moduletypes(), get_module_interval(), show_icon_type(),
give_modulecategory_name(),
give_agent_id_from_module_id(), get_module_status(), get_agent_module_last_value(),
get_previous_data(), get_agentmodule_modulegroup(), get_modulegroups(),
get_modulegroup_name() from functions_db.php to this code.
* include/functions_alerts.php: Moved functions get_alert_type(), get_agent_alert_fired(),
get_module_alert_fired(), get_alert_fires_in_period(), get_group_alerts(), get_alerts_fired(),
get_alert_last_fire_timestamp_in_period(), get_agentmodule_status(),
get_agentmodule_last_status() from functions_db.php to this code.
* include/functions_exportserver.php: Moved function dame_nombre_servidorexportacion()
from functions_db.php to this code.
* include/functions_events.php: Moved functions get_group_events(), get_agent_events(),
get_module_events() from functions_db.php to this code.
* include/functions_servers.php: Moved functions get_server_name(), show_server_type(),
check_server_status(), server_status() from functions_db.php to this code.
* include/functions_network_profiles.php: Moved function get_networkprofile_name()
from functions_db.php to this code.
* include/functions_visual_map.php: Moved functions get_layoutdata_x(), get_layoutdata_y()
from fucntions_db.php to this code.
* include/functions_io.php: Moved function __() from functions_db.php to this code.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4258 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2011-04-19 20:42:49 +02:00
$fields = db_get_all_fields_in_table ( 'tagent_custom_fields' );
2010-08-25 14:04:42 +02:00
2019-01-30 16:18:44 +01:00
if ( $fields === false ) {
$fields = [];
}
2010-08-25 14:04:42 +02:00
2019-05-27 19:00:48 +02:00
$i = 0 ;
2010-08-25 14:04:42 +02:00
foreach ( $fields as $field ) {
2019-04-17 09:27:15 +02:00
$id_custom_field = $field [ 'id_field' ];
2019-04-17 10:35:32 +02:00
$data [ 0 ] = '<div class="field_title" onclick="show_custom_field_row(' . $id_custom_field . ')">' ;
2019-04-17 09:27:15 +02:00
$data [ 0 ] .= '<b>' . $field [ 'name' ] . '</b>' ;
$data [ 0 ] .= '</div>' ;
2019-03-07 13:37:36 +01:00
$combo = [];
$combo = $field [ 'combo_values' ];
$combo = explode ( ',' , $combo );
$combo_values = [];
foreach ( $combo as $value ) {
$combo_values [ $value ] = $value ;
}
2019-01-30 16:18:44 +01:00
$custom_value = db_get_value_filter (
'description' ,
'tagent_custom_data' ,
[
'id_field' => $field [ 'id_field' ],
'id_agent' => $id_agente ,
]
);
if ( $custom_value === false ) {
$custom_value = '' ;
}
2019-06-03 14:50:22 +02:00
$table -> rowstyle [ $i ] = 'cursor: pointer;user-select: none;' ;
2019-05-27 19:00:48 +02:00
if ( ! empty ( $custom_value )) {
$table -> rowstyle [( $i + 1 )] = 'display: table-row;' ;
2019-05-28 13:27:17 +02:00
} else {
$table -> rowstyle [( $i + 1 )] = 'display: none;' ;
2019-05-27 19:00:48 +02:00
}
2019-01-30 16:18:44 +01:00
if ( $field [ 'is_password_type' ]) {
2019-04-17 09:27:15 +02:00
$data_field [ 1 ] = html_print_input_text_extended (
2019-01-30 16:18:44 +01:00
'customvalue_' . $field [ 'id_field' ],
$custom_value ,
'customvalue_' . $field [ 'id_field' ],
'' ,
30 ,
100 ,
$view_mode ,
'' ,
'' ,
true ,
true
);
} else {
2019-04-17 09:27:15 +02:00
$data_field [ 1 ] = html_print_textarea (
2019-01-30 16:18:44 +01:00
'customvalue_' . $field [ 'id_field' ],
2 ,
65 ,
$custom_value ,
2019-04-17 09:27:15 +02:00
'style="min-height: 30px;"' ,
2019-01-30 16:18:44 +01:00
true
);
}
2019-03-07 13:37:36 +01:00
if ( $field [ 'combo_values' ] !== '' ) {
2019-04-17 09:27:15 +02:00
$data_field [ 1 ] = html_print_select (
2019-03-07 13:37:36 +01:00
$combo_values ,
'customvalue_' . $field [ 'id_field' ],
$custom_value ,
'' ,
__ ( 'None' ),
'' ,
true ,
false ,
false ,
'' ,
false ,
false ,
false ,
false ,
false ,
'' ,
false
);
};
2019-05-28 12:13:29 +02:00
$table -> rowid [] = 'name_field-' . $id_custom_field ;
2019-05-27 19:00:48 +02:00
$table -> data [] = $data ;
2019-04-17 09:27:15 +02:00
2019-05-28 12:13:29 +02:00
$table -> rowid [] = 'field-' . $id_custom_field ;
2019-05-27 19:00:48 +02:00
$table -> data [] = $data_field ;
$i += 2 ;
2010-08-25 14:04:42 +02:00
}
2013-02-27 10:51:48 +01:00
if ( ! empty ( $fields )) {
2019-04-17 10:35:32 +02:00
echo '<div class="ui_toggle">' ;
2019-05-31 09:50:59 +02:00
ui_toggle (
html_print_table ( $table , true ),
__ ( 'Custom fields' ),
'' ,
true ,
false ,
2019-06-03 14:50:22 +02:00
'white_box white_box_opened' ,
'no-border'
2019-05-31 09:50:59 +02:00
);
2019-04-17 10:35:32 +02:00
echo '</div>' ;
2010-08-25 14:04:42 +02:00
}
2008-11-20 15:09:26 +01:00
2019-05-03 13:07:58 +02:00
echo '<div class="action-buttons" style="display: flex; justify-content: flex-end; align-items: center; width: ' . $table -> width . '">' ;
2014-09-22 13:37:23 +02:00
2019-03-07 13:37:36 +01:00
// The context help about the learning mode.
2014-09-22 13:37:23 +02:00
if ( $modo == 0 ) {
2019-05-03 13:07:58 +02:00
echo " <span id='modules_not_learning_mode_context_help' style='padding-right:8px;'> " ;
2019-01-30 16:18:44 +01:00
} else {
echo " <span id='modules_not_learning_mode_context_help' style='display: none;'> " ;
2014-09-22 13:37:23 +02:00
}
2019-01-30 16:18:44 +01:00
echo clippy_context_help ( 'modules_not_learning_mode' );
echo '</span>' ;
2018-08-28 10:23:25 +02:00
2014-09-22 13:37:23 +02:00
2009-04-13 17:05:21 +02:00
if ( $id_agente ) {
2019-05-03 13:07:58 +02:00
echo '<div class="action-buttons">' ;
2019-01-30 16:18:44 +01:00
html_print_submit_button (
__ ( 'Update' ),
'updbutton' ,
false ,
'class="sub upd"'
);
html_print_input_hidden ( 'update_agent' , 1 );
html_print_input_hidden ( 'id_agente' , $id_agente );
} else {
html_print_submit_button (
__ ( 'Create' ),
'crtbutton' ,
false ,
'class="sub wand"'
);
html_print_input_hidden ( 'create_agent' , 1 );
2007-02-27 20:03:56 +01:00
}
2019-01-30 16:18:44 +01:00
2009-02-24 17:31:02 +01:00
echo '</div></form>' ;
2009-04-13 17:05:21 +02:00
2016-06-08 19:15:43 +02:00
ui_require_jquery_file ( 'pandora.controls' );
ui_require_jquery_file ( 'ajaxqueue' );
ui_require_jquery_file ( 'bgiframe' );
2009-03-04 Sancho Lerena <slerena@artica.es>
* extras/: New directory with extra contents (scripts, tools, samples)
* index.php: Add new permission check for /attachment directory. Probably
could be extended and wrapped into a function. This should be only called
once, this is the reason why is placed here and not in config_process.
* pandora_console_upgrade: Force MYSQL run, even if SQL return error (useful
for applying over a older 3.0 version for example).
* pandoradb_data.sql: Was missing some tconfig variables.
* extras/*.sql: Missing somre tconfig variables and other minor issues fixed
* extensions/update_manager/main.php: Description of update manager patch
wider. Probably needs more formatting in the future.
* extras/sample_login.php: Sample on how to implement autologin feature.
* footer.php: I hope solve the frakkin image problem.
* godmode/agents/agent_manager.php: proper ACL check notice.
* godmode/alerts/alert_list.php: Fixed notice.
* godmode/reporting/map_builder.php: Added link to wizard and item count.
* godmode/reporting/map_builder_wizard.php: Added new feature, a wizard
to populate the visual map, using agents from a combo, depending on the
map selected. Could have a lot of improvements, it's a basic start. Allow
to choose agents and image maps and space between images. Puts in a reticle
automatically adjusting at 600px width.
* godmode/setup.php: Checkbox for trap_forward was bad, fixed.
* config_process.php: Fixed version to 3.0-dev
* functions_html.php: Default of 0 in text boxes makes them unusable on
default values, funny :-)
* include/functions_reporting.php: Fixed a notice on unknown variable
on function get_group_stat().
* operation/agentes/alerts_status.php: Filter on module status is made now
with combos, like the rest of the filters in the GUI.
* operation/events/events.php: a missing div makes graph float outside the
filter box. TODO: Hidder filter makes free-width style buggy here.
* operation/reporting/reporting_viewer.php: Fixed layout issue.
* operation/visual_console/render_view.php: Added ACL check.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1510 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-03-04 18:57:00 +01:00
?>
2016-06-08 19:15:43 +02:00
2009-04-13 17:05:21 +02:00
< script type = " text/javascript " >
2019-04-17 09:27:15 +02:00
// Show/Hide custom field row.
function show_custom_field_row ( id ){
if ( $ ( '#field-' + id ) . css ( 'display' ) == 'none' ){
$ ( '#field-' + id ) . css ( 'display' , 'table-row' );
$ ( '#name_field-' + id ) . addClass ( 'custom_field_row_opened' );
}
else {
$ ( '#field-' + id ) . css ( 'display' , 'none' );
$ ( '#name_field-' + id ) . removeClass ( 'custom_field_row_opened' );
}
}
2019-01-30 16:18:44 +01:00
//Use this function for change 3 icons when change the selectbox
function changeIcons () {
var icon = $ ( " #icon_path :selected " ) . val ();
$ ( " #icon_without_status " ) . attr ( " src " , " images/spinner.png " );
$ ( " #icon_default " ) . attr ( " src " , " images/spinner.png " );
$ ( " #icon_ok " ) . attr ( " src " , " images/spinner.png " );
$ ( " #icon_bad " ) . attr ( " src " , " images/spinner.png " );
$ ( " #icon_warning " ) . attr ( " src " , " images/spinner.png " );
if ( icon . length == 0 ) {
$ ( " #icon_without_status " ) . attr ( " style " , " display:none; " );
$ ( " #icon_default " ) . attr ( " style " , " display:none; " );
$ ( " #icon_ok " ) . attr ( " style " , " display:none; " );
$ ( " #icon_bad " ) . attr ( " style " , " display:none; " );
$ ( " #icon_warning " ) . attr ( " style " , " display:none; " );
}
else {
$ ( " #icon_without_status " ) . attr ( " src " ,
" <?php echo $path ; ?> " + icon + " .default.png " );
$ ( " #icon_default " ) . attr ( " src " ,
" <?php echo $path ; ?> " + icon + " .default.png " );
$ ( " #icon_ok " ) . attr ( " src " ,
" <?php echo $path ; ?> " + icon + " .ok.png " );
$ ( " #icon_bad " ) . attr ( " src " ,
" <?php echo $path ; ?> " + icon + " .bad.png " );
$ ( " #icon_warning " ) . attr ( " src " ,
" <?php echo $path ; ?> " + icon + " .warning.png " );
$ ( " #icon_without_status " ) . attr ( " style " , " " );
$ ( " #icon_default " ) . attr ( " style " , " " );
$ ( " #icon_ok " ) . attr ( " style " , " " );
$ ( " #icon_bad " ) . attr ( " style " , " " );
$ ( " #icon_warning " ) . attr ( " style " , " " );
}
}
function show_modules_not_learning_mode_context_help () {
if ( $ ( " input[name='modo'][value=0] " ) . is ( ':checked' )) {
2019-05-03 13:07:58 +02:00
$ ( " #modules_not_learning_mode_context_help " ) . show () . css ( 'padding-right' , '8px' );
2019-01-30 16:18:44 +01:00
}
else {
$ ( " #modules_not_learning_mode_context_help " ) . hide ();
}
}
function agent_manager_add_secondary_groups ( event , id_agent ) {
event . preventDefault ();
var primary_value = $ ( " #grupo " ) . val ()
// The selected primary value cannot be selected like secondary
if ( $ ( " #secondary_groups option:selected[value= " + primary_value + " ] " ) . length > 0 ) {
alert ( " <?php echo __('Primary group cannot be secondary too.'); ?> " )
return
}
// On agent creation PHP will update the secondary groups table (not via AJAX)
if ( id_agent == 0 ) {
agent_manager_add_secondary_groups_ui ();
agent_manager_update_hidden_input_secondary ();
return ;
}
var selected_items = new Array ();
$ ( " #secondary_groups option:selected " ) . each ( function (){
selected_items . push ( $ ( this ) . val ())
})
var data = {
page : " godmode/agentes/agent_manager " ,
id_agent : id_agent ,
groups : selected_items ,
add_secondary_groups : 1 ,
}
// Make the AJAX call to update the secondary groups
$ . ajax ({
type : " POST " ,
url : " ajax.php " ,
dataType : " html " ,
data : data ,
success : function ( data ) {
if ( data == 1 ) {
agent_manager_add_secondary_groups_ui ();
} else {
console . error ( " Error in AJAX call to add secondary groups " )
}
},
error : function ( data ) {
console . error ( " Fatal error in AJAX call to add secondary groups " )
}
});
}
function agent_manager_remove_secondary_groups ( event , id_agent ) {
event . preventDefault ();
// On agent creation PHP will update the secondary groups table (not via AJAX)
if ( id_agent == 0 ) {
agent_manager_remove_secondary_groups_ui ();
agent_manager_update_hidden_input_secondary ();
return ;
}
var selected_items = new Array ();
$ ( " #secondary_groups_selected option:selected " ) . each ( function (){
selected_items . push ( $ ( this ) . val ())
})
var data = {
page : " godmode/agentes/agent_manager " ,
id_agent : id_agent ,
groups : selected_items ,
remove_secondary_groups : 1 ,
}
// Make the AJAX call to update the secondary groups
$ . ajax ({
type : " POST " ,
url : " ajax.php " ,
dataType : " html " ,
data : data ,
success : function ( data ) {
if ( data == 1 ) {
agent_manager_remove_secondary_groups_ui ();
} else {
console . error ( " Error in AJAX call to add secondary groups " )
}
},
error : function ( data ) {
console . error ( " Fatal error in AJAX call to add secondary groups " )
}
});
}
// Move from left input to right input
function agent_manager_add_secondary_groups_ui () {
$ ( " #secondary_groups_selected option[value=0] " ) . remove ()
$ ( " #secondary_groups option:selected " ) . each ( function () {
$ ( this ) . remove () . appendTo ( " #secondary_groups_selected " )
})
}
// Move from right input to left input
function agent_manager_remove_secondary_groups_ui () {
// Remove the groups selected if success
$ ( " #secondary_groups_selected option:selected " ) . each ( function (){
$ ( this ) . remove () . appendTo ( " #secondary_groups " )
})
// Add none if empty select
if ( $ ( " #secondary_groups_selected option " ) . length == 0 ) {
$ ( " #secondary_groups_selected " ) . append ( $ ( '<option>' ,{
value : 0 ,
text : " <?php echo __('None'); ?> "
}))
}
}
function agent_manager_update_hidden_input_secondary () {
var groups = [];
if ( ! $ ( 'form[name="conf_agent"] #secondary_hidden' ) . length ) {
$ ( 'form[name="conf_agent"]' ) . append (
'<input name="secondary_hidden" type="hidden" id="secondary_hidden">'
);
}
var groups = new Array ();
$ ( " #secondary_groups_selected option " ) . each ( function () {
groups . push ( $ ( this ) . val ())
})
$ ( " #secondary_hidden " ) . val ( groups . join ( ',' ));
}
$ ( document ) . ready ( function () {
$ ( " select#id_os " ) . pandoraSelectOS ();
var checked = $ ( " #checkbox-cascade_protection " ) . is ( " :checked " );
if ( checked ) {
$ ( " #cascade_protection_module " ) . removeAttr ( " disabled " );
}
else {
$ ( " #cascade_protection_module " ) . attr ( " disabled " , 'disabled' );
}
$ ( " #checkbox-cascade_protection " ) . change ( function () {
var checked = $ ( " #checkbox-cascade_protection " ) . is ( " :checked " );
if ( checked ) {
$ ( " #cascade_protection_module " ) . removeAttr ( " disabled " );
}
else {
$ ( " #cascade_protection_module " ) . val ( 0 );
$ ( " #cascade_protection_module " ) . attr ( " disabled " , 'disabled' );
}
});
var safe_mode_checked = $ ( " #checkbox-safe_mode " ) . is ( " :checked " );
if ( safe_mode_checked ) {
$ ( " #safe_mode_module " ) . removeAttr ( " disabled " );
}
else {
$ ( " #safe_mode_module " ) . attr ( " disabled " , 'disabled' );
}
$ ( " #checkbox-safe_mode " ) . change ( function () {
var safe_mode_checked = $ ( " #checkbox-safe_mode " ) . is ( " :checked " );
if ( safe_mode_checked ) {
$ ( " #safe_mode_module " ) . removeAttr ( " disabled " );
}
else {
$ ( " #safe_mode_module " ) . val ( 0 );
$ ( " #safe_mode_module " ) . attr ( " disabled " , 'disabled' );
}
});
paint_qrcode (
2019-02-01 09:55:29 +01:00
" <?php echo ui_get_full_url('mobile/index.php?page=agent&id='. $id_agente ); ?> " ,
" #qr_code_agent_view " ,
128 ,
128
);
2019-01-30 16:18:44 +01:00
$ ( " #text-agente " ) . prop ( 'disabled' , true );
});
2013-03-01 12:13:58 +01:00
</ script >