2009-01-07 11:42:38 +01:00
|
|
|
<?php
|
2009-08-24 Miguel de Dios <miguel.dedios@artica.es>
* include/functions_menu.php, include/functions_html.php,
include/functions_events.php, include/functions_messages.php,
include/functions_modules.php, include/functions_exportserver.php,
include/functions_reporting.php, include/functions_filemanager.php,
include/pchart_graph.php, include/pandora_graph.php, include/auth/dev.php,
include/auth/ldap.php, include/auth/mysql.php, include/config.inc.php,
include/functions_networkmap.php, include/functions_servers.php,
include/FusionCharts/FusionCharts_Gen.php,
include/FusionCharts/FusionCharts.php,
include/functions_network_profiles.php, include/gettext.php,
include/functions_network_components.php, include/functions_visual_map.php,
include/fgraph2.php, include/Image/image_functions.php,
include/functions_config.php, include/help/en/help_plugin_parameters.php,
include/help/en/help_snmpcommunity.php, include/help/en/help_wmiquery.php,
include/help/en/help_postprocess.php,
include/help/en/help_prediction_source_module.php,
include/help/en/help_date_format.php, include/help/en/help_recontask.php,
include/help/en/help_alert-matches.php, include/help/en/help_tcp_send.php,
include/help/en/help_wmifield.php, include/help/en/help_duplicateconfig.php,
include/help/en/help_agent_status.php,
include/help/en/help_manage_alerts.php, include/help/en/help_wmikey.php,
include/help/en/help_alert_type.php,
include/help/en/help_network_component.php,
include/help/en/help_time_stamp-comparation.php,
include/help/en/help_eventview.php, include/help/en/help_timesource.php,
include/help/en/help_alert_validation.php,
include/help/en/help_map_builder.php,
include/help/en/help_alert_recovery.php,
include/help/en/help_module_type.php,
include/help/en/help_planned_downtime.php,
include/help/en/help_serverlag.php, include/help/en/help_alerts.php,
include/help/en/help_snmpwalk.php,
include/help/en/help_module_definition.php,
include/help/en/help_plugin_definition.php,
include/help/en/help_wminamespace.php, include/help/en/help_snmpoid.php
include/help/en/help_manageconfig.php,
include/help/es/help_alert_validation.php,
include/help/es/help_plugin_parameters.php,
include/help/es/help_snmpcommunity.php, include/help/es/help_wmiquery.php,
include/help/es/help_map_builder.php, include/help/es/help_postprocess.php,
include/help/es/help_date_format.php,
include/help/es/help_alert_recovery.php,
include/help/es/help_prediction_source_module.php,
include/help/es/help_module_type.php,
include/help/es/help_planned_downtime.php,
include/help/es/help_alert-matches.php, include/help/es/help_recontask.php,
include/help/es/help_alerts.php, include/help/es/help_serverlag.php,
include/help/es/help_snmpwalk.php,
include/help/es/help_module_definition.php,
include/help/es/help_tcp_send.php, include/help/es/help_duplicateconfig.php,
include/help/es/help_wmifield.php, include/help/es/help_manage_alerts.php,
include/help/es/help_wmikey.php, include/help/es/help_plugin_definition.php,
include/help/es/help_alert_type.php, include/help/es/help_snmpoid.php,
include/help/es/help_wminamespace.php,
include/help/es/help_network_component.php,
include/help/es/help_time_stamp-comparation.php,
include/help/es/help_manageconfig.php, include/help/es/help_timesource.php,
include/config_process.php, include/functions_ui.php, include/htmlawed.php,
include/functions_custom_graphs.php, include/fgraph.php,
include/functions_incidents.php, include/functions.php,
include/functions_agents.php, include/functions_db.php,
include/functions_themes.php, include/streams.php,
include/functions_fsgraph.php, include/functions_alerts.php,
include/functions_reports.php, include/functions_extensions.php,
include/functions_ui_renders.php: change comments blocks for delete the
warnings to construct phpDoc Files, give a struct and order in the
phpDoc files.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1881 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-08-25 19:39:28 +02:00
|
|
|
/**
|
2019-05-28 09:48:09 +02:00
|
|
|
* Library. User interface functions.
|
|
|
|
*
|
|
|
|
* @category Library.
|
|
|
|
* @package Pandora FMS
|
|
|
|
* @subpackage User interface.
|
|
|
|
* @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.
|
|
|
|
* ============================================================================
|
2009-08-24 Miguel de Dios <miguel.dedios@artica.es>
* include/functions_menu.php, include/functions_html.php,
include/functions_events.php, include/functions_messages.php,
include/functions_modules.php, include/functions_exportserver.php,
include/functions_reporting.php, include/functions_filemanager.php,
include/pchart_graph.php, include/pandora_graph.php, include/auth/dev.php,
include/auth/ldap.php, include/auth/mysql.php, include/config.inc.php,
include/functions_networkmap.php, include/functions_servers.php,
include/FusionCharts/FusionCharts_Gen.php,
include/FusionCharts/FusionCharts.php,
include/functions_network_profiles.php, include/gettext.php,
include/functions_network_components.php, include/functions_visual_map.php,
include/fgraph2.php, include/Image/image_functions.php,
include/functions_config.php, include/help/en/help_plugin_parameters.php,
include/help/en/help_snmpcommunity.php, include/help/en/help_wmiquery.php,
include/help/en/help_postprocess.php,
include/help/en/help_prediction_source_module.php,
include/help/en/help_date_format.php, include/help/en/help_recontask.php,
include/help/en/help_alert-matches.php, include/help/en/help_tcp_send.php,
include/help/en/help_wmifield.php, include/help/en/help_duplicateconfig.php,
include/help/en/help_agent_status.php,
include/help/en/help_manage_alerts.php, include/help/en/help_wmikey.php,
include/help/en/help_alert_type.php,
include/help/en/help_network_component.php,
include/help/en/help_time_stamp-comparation.php,
include/help/en/help_eventview.php, include/help/en/help_timesource.php,
include/help/en/help_alert_validation.php,
include/help/en/help_map_builder.php,
include/help/en/help_alert_recovery.php,
include/help/en/help_module_type.php,
include/help/en/help_planned_downtime.php,
include/help/en/help_serverlag.php, include/help/en/help_alerts.php,
include/help/en/help_snmpwalk.php,
include/help/en/help_module_definition.php,
include/help/en/help_plugin_definition.php,
include/help/en/help_wminamespace.php, include/help/en/help_snmpoid.php
include/help/en/help_manageconfig.php,
include/help/es/help_alert_validation.php,
include/help/es/help_plugin_parameters.php,
include/help/es/help_snmpcommunity.php, include/help/es/help_wmiquery.php,
include/help/es/help_map_builder.php, include/help/es/help_postprocess.php,
include/help/es/help_date_format.php,
include/help/es/help_alert_recovery.php,
include/help/es/help_prediction_source_module.php,
include/help/es/help_module_type.php,
include/help/es/help_planned_downtime.php,
include/help/es/help_alert-matches.php, include/help/es/help_recontask.php,
include/help/es/help_alerts.php, include/help/es/help_serverlag.php,
include/help/es/help_snmpwalk.php,
include/help/es/help_module_definition.php,
include/help/es/help_tcp_send.php, include/help/es/help_duplicateconfig.php,
include/help/es/help_wmifield.php, include/help/es/help_manage_alerts.php,
include/help/es/help_wmikey.php, include/help/es/help_plugin_definition.php,
include/help/es/help_alert_type.php, include/help/es/help_snmpoid.php,
include/help/es/help_wminamespace.php,
include/help/es/help_network_component.php,
include/help/es/help_time_stamp-comparation.php,
include/help/es/help_manageconfig.php, include/help/es/help_timesource.php,
include/config_process.php, include/functions_ui.php, include/htmlawed.php,
include/functions_custom_graphs.php, include/fgraph.php,
include/functions_incidents.php, include/functions.php,
include/functions_agents.php, include/functions_db.php,
include/functions_themes.php, include/streams.php,
include/functions_fsgraph.php, include/functions_alerts.php,
include/functions_reports.php, include/functions_extensions.php,
include/functions_ui_renders.php: change comments blocks for delete the
warnings to construct phpDoc Files, give a struct and order in the
phpDoc files.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1881 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-08-25 19:39:28 +02:00
|
|
|
*/
|
|
|
|
|
2019-05-28 09:48:09 +02:00
|
|
|
// Begin.
|
|
|
|
// Check to avoid error when load this library in error screen situations.
|
2013-07-16 Miguel de Dios <miguel.dedios@artica.es>
* include/functions.php,
include/javascript/jquery.pandora.controls.js: improved the
functions to pass the php vars to js, now it supports json.
* include/javascript/d3.v3.js: added this library for to make
beautiful things.
* include/functions_ui.php, include/graphs/fgraph.php,
include/javascript/pandora_events.js, include/javascript/pandora.js,
include/functions_treeview.php,
include/include_graph_dependencies.php,
include/functions_categories.php, include/db/postgresql.php,
include/db/oracle.php, include/db/mysql.php: cleaned source code
style.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@8528 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2013-07-16 16:13:23 +02:00
|
|
|
if (isset($config['homedir'])) {
|
2019-01-30 16:18:44 +01:00
|
|
|
include_once $config['homedir'].'/include/functions_agents.php';
|
|
|
|
include_once $config['homedir'].'/include/functions_modules.php';
|
|
|
|
include_once $config['homedir'].'/include/functions.php';
|
|
|
|
include_once $config['homedir'].'/include/functions_groups.php';
|
|
|
|
include_once $config['homedir'].'/include/functions_users.php';
|
|
|
|
include_once $config['homedir'].'/include/functions_html.php';
|
2013-04-22 12:31:20 +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
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2019-05-28 09:48:09 +02:00
|
|
|
/**
|
|
|
|
* Transform bbcode to HTML.
|
|
|
|
*
|
|
|
|
* @param string $text Text.
|
|
|
|
* @param array $allowed_tags Allowed_tags.
|
|
|
|
*
|
|
|
|
* @return string HTML.
|
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_bbcode_to_html($text, $allowed_tags=['[url]'])
|
|
|
|
{
|
|
|
|
$return = $text;
|
|
|
|
|
|
|
|
if (array_search('[url]', $allowed_tags) !== false) {
|
|
|
|
$return = preg_replace(
|
|
|
|
'/\[url=([^\]]*)\]/',
|
|
|
|
'<a target="_blank" rel="noopener noreferrer" href="$1">',
|
|
|
|
$return
|
|
|
|
);
|
|
|
|
$return = str_replace('[/url]', '</a>', $return);
|
|
|
|
}
|
|
|
|
|
|
|
|
return $return;
|
2014-12-02 16:38:07 +01:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2010-04-29 17:39:19 +02:00
|
|
|
/**
|
|
|
|
* Truncate a text to num chars (pass as parameter) and if flag show tooltip is
|
|
|
|
* true the html artifal to show the tooltip with rest of text.
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
|
|
|
* @param string $text The text to truncate.
|
|
|
|
* @param mixed $numChars Number chars (-3 for char "[...]") max the text. Or the strings "agent_small", "agent_medium", "module_small", "module_medium", "description" or "generic" for to take the values from user config.
|
2010-04-29 17:39:19 +02:00
|
|
|
* @param boolean $showTextInAToopTip Flag to show the tooltip.
|
2019-01-30 16:18:44 +01:00
|
|
|
* @param boolean $return Flag to return as string or not.
|
|
|
|
* @param boolean $showTextInTitle Flag to show the text on title.
|
|
|
|
* @param string $suffix String at the end of a strimmed string.
|
|
|
|
* @param string $style Style associated to the text.
|
2011-04-13 18:11:02 +02:00
|
|
|
*
|
|
|
|
* @return string Truncated text.
|
2010-04-29 17:39:19 +02:00
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_print_truncate_text($text, $numChars=GENERIC_SIZE_TEXT, $showTextInAToopTip=true, $return=true, $showTextInTitle=true, $suffix='…', $style=false)
|
|
|
|
{
|
|
|
|
global $config;
|
|
|
|
|
|
|
|
if (is_string($numChars)) {
|
|
|
|
switch ($numChars) {
|
|
|
|
case 'agent_small':
|
|
|
|
$numChars = $config['agent_size_text_small'];
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'agent_medium':
|
|
|
|
$numChars = $config['agent_size_text_medium'];
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'module_small':
|
|
|
|
$numChars = $config['module_size_text_small'];
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'module_medium':
|
|
|
|
$numChars = $config['module_size_text_medium'];
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'description':
|
|
|
|
$numChars = $config['description_size_text'];
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'item_title':
|
|
|
|
$numChars = $config['item_title_size_text'];
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
$numChars = (int) $numChars;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($numChars == 0) {
|
|
|
|
if ($return == true) {
|
|
|
|
return $text;
|
|
|
|
} else {
|
|
|
|
echo $text;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$text_html_decoded = io_safe_output($text);
|
|
|
|
$text_has_entities = $text != $text_html_decoded;
|
|
|
|
|
|
|
|
if (mb_strlen($text_html_decoded, 'UTF-8') > ($numChars)) {
|
|
|
|
// '/2' because [...] is in the middle of the word.
|
|
|
|
$half_length = intval(($numChars - 3) / 2);
|
|
|
|
|
|
|
|
// Depending on the strange behavior of mb_strimwidth() itself,
|
|
|
|
// the 3rd parameter is not to be $numChars but the length of
|
|
|
|
// original text (just means 'large enough').
|
|
|
|
$truncateText2 = mb_strimwidth(
|
|
|
|
$text_html_decoded,
|
|
|
|
(mb_strlen($text_html_decoded, 'UTF-8') - $half_length),
|
|
|
|
mb_strlen($text_html_decoded, 'UTF-8'),
|
|
|
|
'',
|
|
|
|
'UTF-8'
|
|
|
|
);
|
|
|
|
|
|
|
|
$truncateText = mb_strimwidth(
|
|
|
|
$text_html_decoded,
|
|
|
|
0,
|
|
|
|
($numChars - $half_length),
|
|
|
|
'',
|
|
|
|
'UTF-8'
|
|
|
|
);
|
|
|
|
|
2019-05-28 09:48:09 +02:00
|
|
|
// Recover the html entities to avoid XSS attacks.
|
2019-01-30 16:18:44 +01:00
|
|
|
$truncateText = ($text_has_entities) ? io_safe_input($truncateText).$suffix.io_safe_input($truncateText2) : $truncateText.$suffix.$truncateText2;
|
|
|
|
|
|
|
|
if ($showTextInTitle) {
|
|
|
|
if ($style === null) {
|
|
|
|
$truncateText = $truncateText;
|
|
|
|
} else if ($style !== false) {
|
|
|
|
$truncateText = '<span style="'.$style.'" title="'.$text.'">'.$truncateText.'</span>';
|
|
|
|
} else {
|
|
|
|
$truncateText = '<span title="'.$text.'">'.$truncateText.'</span>';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($showTextInAToopTip) {
|
|
|
|
$truncateText = $truncateText.ui_print_help_tip(htmlspecialchars($text), true);
|
|
|
|
} else {
|
|
|
|
if ($style !== false) {
|
|
|
|
$truncateText = '<span style="'.$style.'">'.$truncateText.'</span>';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
if ($style !== false) {
|
|
|
|
$truncateText = '<span style="'.$style.'">'.$text.'</span>';
|
|
|
|
} else {
|
|
|
|
$truncateText = $text;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($return == true) {
|
|
|
|
return $truncateText;
|
|
|
|
} else {
|
|
|
|
echo $truncateText;
|
|
|
|
}
|
2010-04-29 17:39:19 +02:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2011-04-12 19:20:16 +02:00
|
|
|
/**
|
|
|
|
* Print a string with a smaller font depending on its size.
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
|
|
|
* @param string $string String to be display with a smaller font.
|
2011-04-12 19:20:16 +02:00
|
|
|
* @param boolean $return Flag to return as string or not.
|
2019-05-28 09:48:09 +02:00
|
|
|
*
|
|
|
|
* @return string HTML.
|
2011-04-12 19:20:16 +02:00
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function printSmallFont($string, $return=true)
|
|
|
|
{
|
|
|
|
$str = io_safe_output($string);
|
|
|
|
$length = strlen($str);
|
|
|
|
if ($length >= 30) {
|
|
|
|
$size = 0.7;
|
|
|
|
} else if ($length >= 20) {
|
|
|
|
$size = 0.8;
|
|
|
|
} else if ($length >= 10) {
|
|
|
|
$size = 0.9;
|
|
|
|
} else if ($length < 10) {
|
|
|
|
$size = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
$s = '<span style="font-size: '.$size.'em;">';
|
|
|
|
$s .= $string;
|
|
|
|
$s .= '</span>';
|
|
|
|
if ($return) {
|
|
|
|
return $s;
|
|
|
|
} else {
|
|
|
|
echo $s;
|
|
|
|
}
|
2011-04-12 19:20:16 +02:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2016-03-30 13:05:08 +02:00
|
|
|
/**
|
2009-03-30 11:27:04 +02:00
|
|
|
* Prints a generic message between tags.
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
2019-05-28 09:48:09 +02:00
|
|
|
* @param mixed $message The string message or array [
|
|
|
|
* 'title', 'message', 'icon', 'no_close', 'force_style'] to be displayed.
|
|
|
|
* @param string $class The class to be used.
|
|
|
|
* @param string $attributes Any other attributes to be set for the tag.
|
|
|
|
* @param boolean $return Whether to output the string or return it.
|
|
|
|
* @param string $tag What tag to use (you could specify something else
|
|
|
|
* than h3 like div or h2).
|
2009-03-30 11:27:04 +02:00
|
|
|
*
|
|
|
|
* @return string HTML code if return parameter is true.
|
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_print_message($message, $class='', $attributes='', $return=false, $tag='h3')
|
|
|
|
{
|
|
|
|
static $first_execution = true;
|
|
|
|
|
|
|
|
$text_title = '';
|
|
|
|
$text_message = '';
|
|
|
|
$icon_image = '';
|
|
|
|
$no_close_bool = false;
|
|
|
|
$force_style = '';
|
|
|
|
if (is_array($message)) {
|
|
|
|
if (!empty($message['title'])) {
|
|
|
|
$text_title = $message['title'];
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!empty($message['message'])) {
|
|
|
|
$text_message = $message['message'];
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!empty($message['icon'])) {
|
|
|
|
$icon_image = $message['icon'];
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!empty($message['no_close'])) {
|
|
|
|
$no_close_bool = $message['no_close'];
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!empty($message['force_style'])) {
|
|
|
|
$force_style = $message['force_style'];
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
$text_message = $message;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (empty($text_title)) {
|
|
|
|
switch ($class) {
|
|
|
|
default:
|
|
|
|
case 'info':
|
|
|
|
$text_title = __('Information');
|
|
|
|
break;
|
|
|
|
case 'error':
|
|
|
|
$text_title = __('Error');
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'suc':
|
|
|
|
$text_title = __('Success');
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'warning':
|
|
|
|
$text_title = __('Warning');
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (empty($icon_image)) {
|
|
|
|
switch ($class) {
|
|
|
|
default:
|
|
|
|
case 'info':
|
|
|
|
$icon_image = 'images/information_big.png';
|
|
|
|
break;
|
|
|
|
case 'error':
|
|
|
|
$icon_image = 'images/err.png';
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'suc':
|
|
|
|
$icon_image = 'images/suc.png';
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'warning':
|
|
|
|
$icon_image = 'images/warning_big.png';
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
$icon_image = $icon_image;
|
|
|
|
}
|
|
|
|
|
|
|
|
$id = 'info_box_'.uniqid();
|
|
|
|
|
2019-05-28 09:48:09 +02:00
|
|
|
// Use the no_meta parameter because this image is only in the base console.
|
2019-01-30 16:18:44 +01:00
|
|
|
$output = '<table cellspacing="0" cellpadding="0" id="'.$id.'" '.$attributes.'
|
|
|
|
class="info_box '.$id.' '.$class.' textodialogo" style="'.$force_style.'">
|
2012-04-12 14:20:38 +02:00
|
|
|
<tr>
|
2019-01-30 16:18:44 +01:00
|
|
|
<td class="icon" rowspan="2" style="padding-right: 10px; padding-top: 3px;">'.html_print_image($icon_image, true, false, false, false, true).'</td>
|
|
|
|
<td class="title" style="text-transform: uppercase; padding-top: 10px;"><b>'.$text_title.'</b></td>
|
2013-04-15 18:04:39 +02:00
|
|
|
<td class="icon" style="text-align: right; padding-right: 3px;">';
|
2019-01-30 16:18:44 +01:00
|
|
|
if (!$no_close_bool) {
|
2019-05-28 09:48:09 +02:00
|
|
|
// Use the no_meta parameter because this image is only in
|
|
|
|
// the base console.
|
2019-01-30 16:18:44 +01:00
|
|
|
$output .= '<a href="javascript: close_info_box(\''.$id.'\')">'.html_print_image('images/blade.png', true, false, false, false, true).'</a>';
|
|
|
|
}
|
|
|
|
|
|
|
|
$output .= '</td>
|
2012-04-12 14:20:38 +02:00
|
|
|
</tr>
|
|
|
|
<tr>
|
2019-01-30 16:18:44 +01:00
|
|
|
<td style="color:#333;padding-top:10px">'.$text_message.'</td>
|
2012-04-12 14:20:38 +02:00
|
|
|
<td></td>
|
|
|
|
</tr>
|
|
|
|
</table>';
|
2019-01-30 16:18:44 +01:00
|
|
|
|
|
|
|
if (($first_execution) && (!$no_close_bool)) {
|
|
|
|
$first_execution = false;
|
|
|
|
|
|
|
|
$output .= '
|
2012-04-12 14:20:38 +02:00
|
|
|
<script type="text/javascript">
|
|
|
|
function close_info_box(id) {
|
2013-02-01 13:53:33 +01:00
|
|
|
$("." + id).hide();
|
2012-04-12 14:20:38 +02:00
|
|
|
}
|
|
|
|
</script>
|
|
|
|
';
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
if ($return) {
|
|
|
|
return $output;
|
|
|
|
} else {
|
|
|
|
echo $output;
|
|
|
|
}
|
|
|
|
|
|
|
|
return '';
|
2009-03-30 11:27:04 +02:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2016-03-30 13:05:08 +02:00
|
|
|
/**
|
2009-03-30 11:27:04 +02:00
|
|
|
* Prints an error message.
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
2019-05-28 09:48:09 +02:00
|
|
|
* @param mixed $message The string error message or array
|
|
|
|
* ('title', 'message', 'icon', 'no_close') to be displayed.
|
|
|
|
* @param string $attributes Any other attributes to be set for the tag.
|
|
|
|
* @param boolean $return Whether to output the string or return it.
|
|
|
|
* @param string $tag What tag to use (you could specify something else
|
|
|
|
* than h3 like div or h2).
|
2009-03-30 11:27:04 +02:00
|
|
|
*
|
|
|
|
* @return string HTML code if return parameter is true.
|
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_print_error_message($message, $attributes='', $return=false, $tag='h3')
|
|
|
|
{
|
|
|
|
return ui_print_message($message, 'error', $attributes, $return, $tag);
|
2009-03-30 11:27:04 +02:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2016-03-30 13:05:08 +02:00
|
|
|
/**
|
2009-03-30 11:27:04 +02:00
|
|
|
* Prints an operation success message.
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
2019-05-28 09:48:09 +02:00
|
|
|
* @param mixed $message The string message or array
|
|
|
|
* ('title', 'message', 'icon', 'no_close') to be displayed.
|
|
|
|
* @param string $attributes Any other attributes to be set for the tag.
|
|
|
|
* @param boolean $return Whether to output the string or return it.
|
|
|
|
* @param string $tag What tag to use (you could specify something else
|
|
|
|
* than h3 like div or h2).
|
2009-03-30 11:27:04 +02:00
|
|
|
*
|
|
|
|
* @return string HTML code if return parameter is true.
|
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_print_success_message($message, $attributes='', $return=false, $tag='h3')
|
|
|
|
{
|
|
|
|
return ui_print_message($message, 'suc', $attributes, $return, $tag);
|
2009-03-30 11:27:04 +02:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2016-03-30 13:05:08 +02:00
|
|
|
/**
|
2012-04-12 14:20:38 +02:00
|
|
|
* Prints an operation info message.
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
2019-05-28 09:48:09 +02:00
|
|
|
* @param mixed $message The string message or array
|
|
|
|
* ('title', 'message', 'icon', 'no_close') to be displayed.
|
|
|
|
* @param string $attributes Any other attributes to be set for the tag.
|
|
|
|
* @param boolean $return Whether to output the string or return it.
|
|
|
|
* @param string $tag What tag to use (you could specify something else
|
|
|
|
* than h3 like div or h2).
|
2012-04-12 14:20:38 +02:00
|
|
|
*
|
|
|
|
* @return string HTML code if return parameter is true.
|
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_print_info_message($message, $attributes='', $return=false, $tag='h3')
|
|
|
|
{
|
|
|
|
return ui_print_message($message, 'info', $attributes, $return, $tag);
|
2012-04-12 14:20:38 +02:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2019-05-28 09:48:09 +02:00
|
|
|
/**
|
|
|
|
* Prints an operation info message - empty data.
|
|
|
|
*
|
|
|
|
* @param mixed $message The string message or array
|
|
|
|
* ('title', 'message', 'icon', 'no_close') to be displayed.
|
|
|
|
* @param string $attributes Any other attributes to be set for the tag.
|
|
|
|
* @param boolean $return Whether to output the string or return it.
|
|
|
|
* @param string $tag What tag to use (you could specify something else
|
|
|
|
* than h3 like div or h2).
|
|
|
|
*
|
|
|
|
* @return string HTML code if return parameter is true.
|
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_print_empty_data($message, $attributes='', $return=false, $tag='h3')
|
|
|
|
{
|
|
|
|
return ui_print_message($message, 'info', $attributes, $return, $tag);
|
2013-05-17 14:26:16 +02:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2016-03-30 13:05:08 +02:00
|
|
|
/**
|
2009-03-26 Esteban Sanchez <estebans@artica.es>
* godmode/users/configure_user.php: Complete rewritten to fix minor
errors and fit the Pandora style.
* include/auth/ldap.php: Removed process_user_isadmin(). Renamed
process_user_password() to update_user_password(). Renamed
process_user_info to update_user(). update_user_password() does not
require old password anymore.
* include/functions_db.php: Added empty checks on
create_user_profile().
* include/functions_ui.php: print_error_message() renamed to
print_result_message().
* godmode/agentes/configurar_agente.php,
godmode/alerts/alert_actions.php, godmode/alerts/alert_commands.php,
godmode/alerts/alert_compounds.php, godmode/alerts/alert_list.php,
godmode/alerts/alert_templates.php,
godmode/alerts/configure_alert_template.php,
godmode/modules/manage_nc_groups.php,
godmode/modules/manage_network_templates.php,
godmode/modules/manage_network_templates_form.php,
godmode/reporting/map_builder_wizard.php,
godmode/reporting/reporting_builder.php,
operation/agentes/alerts_status.php, operation/events/events.php,
operation/incidents/incident.php,
operation/incidents/incident_detail.php,
operation/messages/message.php, operation/snmpconsole/snmp_view.php,
operation/users/user_edit.php: Renamed print_result_message(). Some
translatable strings reused to simplify i18n work.
* godmode/users/user_list.php: Renamed print_result_message(). Use
cross.png for deletion links. Style corrections.
* godmode/setup/news.php: Renamed print_result_message(). Use
process_sql_delete() instead of direct mysql_query.
* godmode/reporting/map_builder.php: Renamed print_result_message().
Style correction on process_sql_update().
* godmode/alerts/configure_alert_compound.php: Renamed
print_result_message(). Fixed steps_clean div.
* godmode/setup/setup.php: Return control to index instead of exit.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1567 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-03-26 12:14:49 +01:00
|
|
|
* Evaluates a result using empty() and then prints an error or success message
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
2019-05-28 09:48:09 +02:00
|
|
|
* @param mixed $result The results to evaluate. 0, NULL, false, '' or
|
|
|
|
* array() is bad, the rest is good.
|
|
|
|
* @param mixed $good The string or array ('title', 'message') to be
|
|
|
|
* displayed if the result was good.
|
|
|
|
* @param mixed $bad The string or array ('title', 'message') to be
|
|
|
|
* displayed if the result was bad.
|
|
|
|
* @param string $attributes Any other attributes to be set for the h3.
|
|
|
|
* @param boolean $return Whether to output the string or return it.
|
|
|
|
* @param string $tag What tag to use (you could specify something else
|
|
|
|
* than h3 like div or h2).
|
2009-01-07 11:42:38 +01:00
|
|
|
*
|
2009-03-30 11:27:04 +02:00
|
|
|
* @return string HTML code if return parameter is true.
|
2009-01-08 16:52:13 +01:00
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_print_result_message($result, $good='', $bad='', $attributes='', $return=false, $tag='h3')
|
|
|
|
{
|
|
|
|
if ($good == '' || $good === false) {
|
|
|
|
$good = __('Request successfully processed');
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($bad == '' || $bad === false) {
|
|
|
|
$bad = __('Error processing request');
|
|
|
|
}
|
|
|
|
|
|
|
|
if (empty($result)) {
|
|
|
|
return ui_print_error_message($bad, $attributes, $return, $tag);
|
|
|
|
} else {
|
|
|
|
return ui_print_success_message($good, $attributes, $return, $tag);
|
|
|
|
}
|
2009-01-07 11:42:38 +01:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2016-03-30 13:05:08 +02:00
|
|
|
/**
|
2015-04-21 17:26:20 +02:00
|
|
|
* Prints an warning message.
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
2019-05-28 09:48:09 +02:00
|
|
|
* @param mixed $message The string message or array
|
|
|
|
* ('title', 'message', 'icon', 'no_close') to be displayed.
|
|
|
|
* @param string $attributes Any other attributes to be set for the tag.
|
|
|
|
* @param boolean $return Whether to output the string or return it.
|
|
|
|
* @param string $tag What tag to use (you could specify something else
|
|
|
|
* than h3 like div or h2).
|
2015-04-21 17:26:20 +02:00
|
|
|
*
|
|
|
|
* @return string HTML code if return parameter is true.
|
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_print_warning_message($message, $attributes='', $return=false, $tag='h3')
|
|
|
|
{
|
|
|
|
return ui_print_message($message, 'warning', $attributes, $return, $tag);
|
2015-04-21 17:26:20 +02:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2009-01-07 11:42:38 +01:00
|
|
|
/**
|
|
|
|
* Evaluates a unix timestamp and returns a span (or whatever tag specified)
|
|
|
|
* with as title the correctly formatted full timestamp and a time comparation
|
|
|
|
* in the tag
|
|
|
|
*
|
2019-05-28 09:48:09 +02:00
|
|
|
* @param integer $unixtime Any type of timestamp really, but we prefer unixtime.
|
|
|
|
* @param boolean $return Whether to output the string or return it.
|
|
|
|
* @param array $option An array with different options for this function
|
|
|
|
* Key html_attr: which html attributes to add (defaults to none)
|
|
|
|
* Key tag: Which html tag to use (defaults to span)
|
|
|
|
* Key prominent: Overrides user preference and display "comparation" or "timestamp"
|
|
|
|
* key units: The type of units.
|
2009-01-07 11:42:38 +01:00
|
|
|
*
|
|
|
|
* @return string HTML code if return parameter is true.
|
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_print_timestamp($unixtime, $return=false, $option=[])
|
|
|
|
{
|
|
|
|
global $config;
|
|
|
|
|
2019-05-28 09:48:09 +02:00
|
|
|
// TODO: Add/use a javascript timer for the seconds so it automatically
|
|
|
|
// updates as time passes by.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($option['html_attr'])) {
|
|
|
|
$attributes = $option['html_attr'];
|
|
|
|
} else {
|
|
|
|
$attributes = '';
|
|
|
|
}
|
|
|
|
|
|
|
|
if (isset($option['tag'])) {
|
|
|
|
$tag = $option['tag'];
|
|
|
|
} else {
|
|
|
|
$tag = 'span';
|
|
|
|
}
|
|
|
|
|
|
|
|
if (empty($option['style'])) {
|
|
|
|
$style = 'style="white-space:nowrap;"';
|
|
|
|
} else {
|
|
|
|
$style = 'style="'.$option['style'].'"';
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!empty($option['prominent'])) {
|
|
|
|
$prominent = $option['prominent'];
|
|
|
|
} else {
|
|
|
|
$prominent = $config['prominent_time'];
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!is_numeric($unixtime)) {
|
|
|
|
$unixtime = time_w_fixed_tz($unixtime);
|
|
|
|
}
|
|
|
|
|
2019-05-28 09:48:09 +02:00
|
|
|
// Prominent_time is either timestamp or comparation.
|
2019-01-30 16:18:44 +01:00
|
|
|
if ($unixtime <= 0) {
|
|
|
|
$title = __('Unknown').'/'.__('Never');
|
|
|
|
$data = __('Unknown');
|
|
|
|
} else if ($prominent == 'timestamp') {
|
|
|
|
pandora_setlocale();
|
|
|
|
|
|
|
|
$title = human_time_comparation($unixtime);
|
|
|
|
$data = strftime(
|
|
|
|
date2strftime_format($config['date_format']),
|
|
|
|
$unixtime
|
|
|
|
);
|
|
|
|
} else {
|
|
|
|
$title = date($config['date_format'], $unixtime);
|
|
|
|
$units = 'large';
|
|
|
|
if (isset($option['units'])) {
|
|
|
|
$units = $option['units'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$data = human_time_comparation($unixtime, $units);
|
|
|
|
}
|
|
|
|
|
|
|
|
$output = '<'.$tag;
|
|
|
|
switch ($tag) {
|
|
|
|
default:
|
|
|
|
// Usually tags have title attributes, so by default we add,
|
2019-05-28 09:48:09 +02:00
|
|
|
// then fall through to add attributes and data.
|
2019-01-30 16:18:44 +01:00
|
|
|
$output .= ' title="'.$title.'" '.$style.'>'.$data.'</'.$tag.'>';
|
|
|
|
break;
|
|
|
|
case 'h1':
|
|
|
|
case 'h2':
|
|
|
|
case 'h3':
|
2019-05-28 09:48:09 +02:00
|
|
|
// Above tags don't have title attributes.
|
2019-01-30 16:18:44 +01:00
|
|
|
$output .= ' '.$attributes.' '.$style.'>'.$data.'</'.$tag.'>';
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($return) {
|
|
|
|
return $output;
|
|
|
|
}
|
|
|
|
|
|
|
|
echo $output;
|
2009-01-07 11:42:38 +01:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2009-01-07 11:42:38 +01:00
|
|
|
/**
|
|
|
|
* Prints a username with real name, link to the user_edit page etc.
|
|
|
|
*
|
2019-05-28 09:48:09 +02:00
|
|
|
* @param string $username The username to render.
|
|
|
|
* @param boolean $return Whether to return or print.
|
2009-01-07 11:42:38 +01:00
|
|
|
*
|
|
|
|
* @return string HTML code if return parameter is true.
|
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_print_username($username, $return=false)
|
|
|
|
{
|
|
|
|
$string = '<a href="index.php?sec=usuario&sec2=operation/users/user_edit&id='.$username.'">'.get_user_fullname($username).'</a>';
|
|
|
|
|
|
|
|
if ($return) {
|
|
|
|
return $string;
|
|
|
|
}
|
|
|
|
|
|
|
|
echo $string;
|
2009-01-07 11:42:38 +01:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2019-05-28 09:48:09 +02:00
|
|
|
/**
|
|
|
|
* Show a notification.
|
|
|
|
*
|
|
|
|
* @param boolean $return Return or direct echo.
|
|
|
|
*
|
|
|
|
* @return string HTML.
|
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_print_tags_warning($return=false)
|
|
|
|
{
|
|
|
|
$msg = '<div id="notify_conf" class="notify">';
|
|
|
|
$msg .= __('Is possible that this view uses part of information which your user has not access');
|
|
|
|
$msg .= '</div>';
|
|
|
|
|
|
|
|
if ($return) {
|
|
|
|
return $msg;
|
|
|
|
} else {
|
|
|
|
echo $msg;
|
|
|
|
}
|
2013-01-10 17:00:30 +01:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2016-03-30 13:05:08 +02:00
|
|
|
/**
|
2009-01-07 11:42:38 +01:00
|
|
|
* Print group icon within a link
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
2019-05-28 09:48:09 +02:00
|
|
|
* @param integer $id_group Group id.
|
|
|
|
* @param boolean $return Whether to return or print.
|
|
|
|
* @param string $path What path to use (relative to images/).
|
|
|
|
* Defaults to groups_small.
|
|
|
|
* @param string $style Style for group image.
|
|
|
|
* @param boolean $link Whether the group have link or not.
|
|
|
|
* @param boolean $force_show_image Force show image.
|
|
|
|
* @param boolean $show_as_image Show as image.
|
2009-01-07 11:42:38 +01:00
|
|
|
*
|
|
|
|
* @return string HTML code if return parameter is true.
|
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_print_group_icon($id_group, $return=false, $path='groups_small', $style='', $link=true, $force_show_image=false, $show_as_image=false)
|
|
|
|
{
|
|
|
|
global $config;
|
|
|
|
|
|
|
|
if ($id_group > 0) {
|
|
|
|
$icon = (string) db_get_value('icon', 'tgrupo', 'id_grupo', (int) $id_group);
|
|
|
|
} else {
|
|
|
|
$icon = 'world';
|
|
|
|
}
|
|
|
|
|
|
|
|
$output = '';
|
|
|
|
|
2019-05-28 09:48:09 +02:00
|
|
|
// Don't show link in metaconsole.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (defined('METACONSOLE')) {
|
|
|
|
$link = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($link) {
|
|
|
|
$output = '<a href="'.$config['homeurl'].'index.php?sec=estado&sec2=operation/agentes/estado_agente&refr=60&group_id='.$id_group.'">';
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($config['show_group_name']) {
|
|
|
|
$output .= '<span title="'.groups_get_name($id_group, true).'">'.groups_get_name($id_group, true).' </span>';
|
|
|
|
} else {
|
|
|
|
if (empty($icon)) {
|
|
|
|
$output .= '<span title="'.groups_get_name($id_group, true).'"> </span>';
|
|
|
|
} else {
|
|
|
|
$output .= html_print_image(
|
|
|
|
'images/'.$path.'/'.$icon.'.png',
|
|
|
|
true,
|
|
|
|
[
|
|
|
|
'style' => $style,
|
|
|
|
'class' => 'bot',
|
|
|
|
'alt' => groups_get_name($id_group, true),
|
|
|
|
'title' => groups_get_name($id_group, true),
|
|
|
|
],
|
|
|
|
false,
|
|
|
|
false,
|
|
|
|
false,
|
|
|
|
true
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($link) {
|
|
|
|
$output .= '</a>';
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!$return) {
|
|
|
|
echo $output;
|
|
|
|
}
|
|
|
|
|
|
|
|
return $output;
|
2009-01-07 11:42:38 +01:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2016-03-30 13:05:08 +02:00
|
|
|
/**
|
2010-09-15 Miguel de Dios <miguel.dedios@artica.es>
* include/functions_reporting.php: in function "get_agent_module_info" added
the return "status" and "alert_value".
* include/auth/mysql.php: in function "process_user_login" cleaned the
source code style.
* include/functions_ui.php: in function "print_timestamp" added in the
parameter $option the check of units ('large' and 'tiny' at the moment).
Added the function "print_group_icon2" that it is the same of
"print_group_icon" but it has a new parameter $path for to set the images
path.
* include/functions.php: in function "human_time_comparation" added the
parameter $units to set the type return text for time unit (at the moment
only "large" and "tiny"). And in the function "human_time_description_raw"
added the paramter $units for to set the type of return text for units, at
the moment only "large" and "tiny".
* include/functions_db.php, operation/agentes/ver_agente.php: cleaned source
code.
* mobile/index.php, mobile/operation/agents,
mobile/operation/agents/view_agents.php, mobile/include/db.class.php,
mobile/include/style, mobile/include/style/main.css,
mobile/include/user.class.php, mobile/include/functions_web.php,
mobile/include/system.class.php, mobile/images/bricks.png,
mobile/images/up.png, mobile/images/zoom.png, mobile/images/down.png: added
first version of file for Pandora Mobile version.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@3246 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2010-09-15 17:54:59 +02:00
|
|
|
* Print group icon within a link. Other version.
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
2019-05-28 09:48:09 +02:00
|
|
|
* @param integer $id_group Group id.
|
|
|
|
* @param boolean $return Whether to return or print.
|
|
|
|
* @param string $path What path to use (relative to images/).
|
|
|
|
* Defaults to groups_small.
|
|
|
|
* @param string $style Extra styles.
|
|
|
|
* @param boolean $link Add anchor.
|
2010-09-15 Miguel de Dios <miguel.dedios@artica.es>
* include/functions_reporting.php: in function "get_agent_module_info" added
the return "status" and "alert_value".
* include/auth/mysql.php: in function "process_user_login" cleaned the
source code style.
* include/functions_ui.php: in function "print_timestamp" added in the
parameter $option the check of units ('large' and 'tiny' at the moment).
Added the function "print_group_icon2" that it is the same of
"print_group_icon" but it has a new parameter $path for to set the images
path.
* include/functions.php: in function "human_time_comparation" added the
parameter $units to set the type return text for time unit (at the moment
only "large" and "tiny"). And in the function "human_time_description_raw"
added the paramter $units for to set the type of return text for units, at
the moment only "large" and "tiny".
* include/functions_db.php, operation/agentes/ver_agente.php: cleaned source
code.
* mobile/index.php, mobile/operation/agents,
mobile/operation/agents/view_agents.php, mobile/include/db.class.php,
mobile/include/style, mobile/include/style/main.css,
mobile/include/user.class.php, mobile/include/functions_web.php,
mobile/include/system.class.php, mobile/images/bricks.png,
mobile/images/up.png, mobile/images/zoom.png, mobile/images/down.png: added
first version of file for Pandora Mobile version.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@3246 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2010-09-15 17:54:59 +02:00
|
|
|
*
|
|
|
|
* @return string HTML code if return parameter is true.
|
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_print_group_icon_path($id_group, $return=false, $path='images/groups_small', $style='', $link=true)
|
|
|
|
{
|
|
|
|
if ($id_group > 0) {
|
|
|
|
$icon = (string) db_get_value('icon', 'tgrupo', 'id_grupo', (int) $id_group);
|
|
|
|
} else {
|
|
|
|
$icon = 'world';
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($style == '') {
|
|
|
|
$style = 'width: 16px; height: 16px;';
|
|
|
|
}
|
|
|
|
|
|
|
|
$output = '';
|
|
|
|
if ($link) {
|
|
|
|
$output = '<a href="index.php?sec=estado&sec2=operation/agentes/estado_agente&refr=60&group_id='.$id_group.'">';
|
|
|
|
}
|
|
|
|
|
|
|
|
if (empty($icon)) {
|
|
|
|
$output .= '<span title="'.groups_get_name($id_group, true).'"> - </span>';
|
|
|
|
} else {
|
|
|
|
$output .= '<img style="'.$style.'" class="bot" src="'.$path.'/'.$icon.'.png" alt="'.groups_get_name($id_group, true).'" title="'.groups_get_name($id_group, true).'" />';
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($link) {
|
|
|
|
$output .= '</a>';
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!$return) {
|
|
|
|
echo $output;
|
|
|
|
}
|
|
|
|
|
|
|
|
return $output;
|
2010-09-15 Miguel de Dios <miguel.dedios@artica.es>
* include/functions_reporting.php: in function "get_agent_module_info" added
the return "status" and "alert_value".
* include/auth/mysql.php: in function "process_user_login" cleaned the
source code style.
* include/functions_ui.php: in function "print_timestamp" added in the
parameter $option the check of units ('large' and 'tiny' at the moment).
Added the function "print_group_icon2" that it is the same of
"print_group_icon" but it has a new parameter $path for to set the images
path.
* include/functions.php: in function "human_time_comparation" added the
parameter $units to set the type return text for time unit (at the moment
only "large" and "tiny"). And in the function "human_time_description_raw"
added the paramter $units for to set the type of return text for units, at
the moment only "large" and "tiny".
* include/functions_db.php, operation/agentes/ver_agente.php: cleaned source
code.
* mobile/index.php, mobile/operation/agents,
mobile/operation/agents/view_agents.php, mobile/include/db.class.php,
mobile/include/style, mobile/include/style/main.css,
mobile/include/user.class.php, mobile/include/functions_web.php,
mobile/include/system.class.php, mobile/images/bricks.png,
mobile/images/up.png, mobile/images/zoom.png, mobile/images/down.png: added
first version of file for Pandora Mobile version.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@3246 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2010-09-15 17:54:59 +02:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2016-03-30 13:05:08 +02:00
|
|
|
/**
|
2009-01-07 11:42:38 +01:00
|
|
|
* Get the icon of an operating system.
|
|
|
|
*
|
2019-05-28 09:48:09 +02:00
|
|
|
* @param integer $id_os Operating system id.
|
|
|
|
* @param boolean $name Whether to also append the name of OS after icon.
|
|
|
|
* @param boolean $return Whether to return or echo the result.
|
|
|
|
* @param boolean $apply_skin Whether to apply skin or not.
|
|
|
|
* @param boolean $networkmap Networkmap.
|
|
|
|
* @param boolean $only_src Only_src.
|
|
|
|
* @param boolean $relative Relative.
|
|
|
|
* @param boolean $options Options.
|
|
|
|
* @param boolean $big_icons Big_icons.
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
2009-01-07 11:42:38 +01:00
|
|
|
* @return string HTML with icon of the OS
|
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_print_os_icon(
|
|
|
|
$id_os,
|
|
|
|
$name=true,
|
|
|
|
$return=false,
|
|
|
|
$apply_skin=true,
|
|
|
|
$networkmap=false,
|
|
|
|
$only_src=false,
|
|
|
|
$relative=false,
|
|
|
|
$options=false,
|
|
|
|
$big_icons=false
|
|
|
|
) {
|
|
|
|
$subfolder = 'os_icons';
|
|
|
|
if ($networkmap) {
|
|
|
|
$subfolder = 'networkmap';
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($big_icons) {
|
|
|
|
$subfolder .= '/so_big_icons';
|
|
|
|
}
|
|
|
|
|
|
|
|
$icon = (string) db_get_value('icon_name', 'tconfig_os', 'id_os', (int) $id_os);
|
|
|
|
$os_name = get_os_name($id_os);
|
|
|
|
if (empty($icon)) {
|
|
|
|
if ($only_src) {
|
|
|
|
$output = html_print_image(
|
|
|
|
'images/'.$subfolder.'/unknown.png',
|
|
|
|
true,
|
|
|
|
$options,
|
|
|
|
true,
|
|
|
|
$relative,
|
|
|
|
false,
|
|
|
|
true
|
|
|
|
);
|
|
|
|
} else {
|
|
|
|
return '-';
|
|
|
|
}
|
|
|
|
} else if ($apply_skin) {
|
|
|
|
if ($only_src) {
|
|
|
|
$output = html_print_image('images/'.$subfolder.'/'.$icon, true, $options, true, $relative, false, true);
|
|
|
|
} else {
|
|
|
|
if (!isset($options['title'])) {
|
|
|
|
$options['title'] = $os_name;
|
|
|
|
}
|
|
|
|
|
|
|
|
$output = html_print_image('images/'.$subfolder.'/'.$icon, true, $options, false, $relative, false, true);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
// $output = "<img src='images/os_icons/" . $icon . "' alt='" . $os_name . "' title='" . $os_name . "'>";
|
|
|
|
$output = 'images/'.$subfolder.'/'.$icon;
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($name === true) {
|
|
|
|
$output .= ' '.$os_name;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!$return) {
|
|
|
|
echo $output;
|
|
|
|
}
|
|
|
|
|
|
|
|
return $output;
|
2009-01-07 11:42:38 +01:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2019-05-28 09:48:09 +02:00
|
|
|
/**
|
|
|
|
* Print type agent icon.
|
|
|
|
*
|
|
|
|
* @param boolean $id_os Id_os.
|
|
|
|
* @param boolean $remote_contact Remote_contact.
|
|
|
|
* @param boolean $contact Contact.
|
|
|
|
* @param boolean $return Return.
|
|
|
|
* @param integer $remote Remote.
|
|
|
|
* @param string $version Version.
|
|
|
|
*
|
|
|
|
* @return string HTML.
|
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_print_type_agent_icon(
|
|
|
|
$id_os=false,
|
|
|
|
$remote_contact=false,
|
|
|
|
$contact=false,
|
|
|
|
$return=false,
|
|
|
|
$remote=0,
|
|
|
|
$version=''
|
|
|
|
) {
|
|
|
|
if ($id_os == 19) {
|
2019-05-28 09:48:09 +02:00
|
|
|
// Satellite.
|
2019-01-30 16:18:44 +01:00
|
|
|
$options['title'] = __('Satellite');
|
|
|
|
$output = html_print_image('images/op_satellite.png', true, $options, false, false, false, true);
|
|
|
|
} else if ($remote_contact == $contact && $remote == 0 && $version == '') {
|
2019-05-28 09:48:09 +02:00
|
|
|
// Network.
|
2019-01-30 16:18:44 +01:00
|
|
|
$options['title'] = __('Network');
|
|
|
|
$output = html_print_image('images/network.png', true, $options, false, false, false, true);
|
|
|
|
} else {
|
2019-05-28 09:48:09 +02:00
|
|
|
// Software.
|
2019-01-30 16:18:44 +01:00
|
|
|
$options['title'] = __('Software');
|
|
|
|
$output = html_print_image('images/data.png', true, $options, false, false, false, true);
|
|
|
|
}
|
|
|
|
|
|
|
|
return $output;
|
2017-07-24 15:53:31 +02:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2009-01-07 11:42:38 +01:00
|
|
|
/**
|
|
|
|
* Prints an agent name with the correct link
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
2019-05-28 09:48:09 +02:00
|
|
|
* @param integer $id_agent Agent id.
|
|
|
|
* @param boolean $return Whether to return the string or echo it too.
|
|
|
|
* @param integer $cutoff Now uses styles to accomplish this.
|
|
|
|
* @param string $style Style of name in css.
|
|
|
|
* @param boolean $cutname Cut names.
|
|
|
|
* @param string $server_url Server url to concatenate at the begin of the link.
|
|
|
|
* @param string $extra_params Extra parameters to concatenate in the link.
|
|
|
|
* @param string $known_agent_name Name of the agent to avoid the query in some cases.
|
|
|
|
* @param boolean $link If the agent will provided with link or not.
|
|
|
|
* @param boolean $alias Use the agent alias or the name.
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
2009-01-07 11:42:38 +01:00
|
|
|
* @return string HTML with agent name and link
|
2009-01-08 16:52:13 +01:00
|
|
|
*/
|
2019-05-28 09:48:09 +02:00
|
|
|
function ui_print_agent_name(
|
|
|
|
$id_agent,
|
|
|
|
$return=false,
|
|
|
|
$cutoff='agent_medium',
|
|
|
|
$style='',
|
|
|
|
$cutname=false,
|
|
|
|
$server_url='',
|
|
|
|
$extra_params='',
|
|
|
|
$known_agent_name=false,
|
|
|
|
$link=true,
|
|
|
|
$alias=true
|
|
|
|
) {
|
2019-01-30 16:18:44 +01:00
|
|
|
if ($known_agent_name === false) {
|
|
|
|
if ($alias) {
|
|
|
|
$agent_name = (string) agents_get_alias($id_agent);
|
|
|
|
} else {
|
|
|
|
$agent_name = (string) agents_get_name($id_agent);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
$agent_name = $known_agent_name;
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($alias) {
|
|
|
|
$agent_name_full = (string) agents_get_name($id_agent);
|
|
|
|
} else {
|
|
|
|
$agent_name_full = $agent_name;
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($cutname) {
|
|
|
|
$agent_name = ui_print_truncate_text($agent_name, $cutoff, true, true, true, '[…]', $style);
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($link) {
|
2019-05-28 09:48:09 +02:00
|
|
|
$url = $server_url.'index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$id_agent.$extra_params;
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2019-05-28 09:48:09 +02:00
|
|
|
$output = '<a style="'.$style.'" href="'.$url.'" title="'.$agent_name_full.'"><b><span style="'.$style.'">'.$agent_name.'</span></b></a>';
|
2019-01-30 16:18:44 +01:00
|
|
|
} else {
|
|
|
|
$output = '<b><span style="'.$style.'">'.$agent_name.'</span></b>';
|
|
|
|
}
|
|
|
|
|
2019-05-28 09:48:09 +02:00
|
|
|
// TODO: Add a pretty javascript (using jQuery) popup-box with agent details.
|
2019-01-30 16:18:44 +01:00
|
|
|
if ($return) {
|
|
|
|
return $output;
|
|
|
|
}
|
|
|
|
|
|
|
|
echo $output;
|
2009-01-07 11:42:38 +01:00
|
|
|
}
|
2009-01-15 11:21:38 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2016-03-30 13:05:08 +02:00
|
|
|
/**
|
2009-01-15 11:21:38 +01:00
|
|
|
* Formats a row from the alert table and returns an array usable in the table function
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
2019-05-28 09:48:09 +02:00
|
|
|
* @param array $alert A valid (non empty) row from the alert table.
|
|
|
|
* @param boolean $agent Whether or not this is a combined alert.
|
|
|
|
* @param string $url Tab where the function was called from (used for urls).
|
|
|
|
* @param mixed $agent_style Style for agent name or default (false).
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
2009-01-15 11:21:38 +01:00
|
|
|
* @return array A formatted array with proper html for use in $table->data (6 columns)
|
|
|
|
*/
|
2019-05-28 09:48:09 +02:00
|
|
|
function ui_format_alert_row(
|
|
|
|
$alert,
|
|
|
|
$agent=true,
|
|
|
|
$url='',
|
|
|
|
$agent_style=false
|
|
|
|
) {
|
2019-01-30 16:18:44 +01:00
|
|
|
global $config;
|
|
|
|
|
|
|
|
if (!isset($alert['server_data'])) {
|
|
|
|
$server_name = '';
|
|
|
|
$server_id = '';
|
|
|
|
$url_hash = '';
|
|
|
|
$console_url = '';
|
|
|
|
} else {
|
|
|
|
$server_data = $alert['server_data'];
|
|
|
|
$server_name = $server_data['server_name'];
|
|
|
|
$server_id = $server_data['id'];
|
|
|
|
$console_url = $server_data['server_url'].'/';
|
|
|
|
$url_hash = metaconsole_get_servers_url_hash($server_data);
|
|
|
|
}
|
|
|
|
|
|
|
|
$actionText = '';
|
|
|
|
include_once $config['homedir'].'/include/functions_alerts.php';
|
|
|
|
$isFunctionPolicies = enterprise_include_once('include/functions_policies.php');
|
|
|
|
$id_group = (int) get_parameter('ag_group', 0);
|
2019-05-28 09:48:09 +02:00
|
|
|
// 0 is the All group (selects all groups).
|
2019-01-30 16:18:44 +01:00
|
|
|
if ($isFunctionPolicies !== ENTERPRISE_NOT_HOOK) {
|
|
|
|
if ($agent) {
|
|
|
|
$index = [
|
|
|
|
'policy' => 0,
|
|
|
|
'standby' => 1,
|
|
|
|
'force_execution' => 2,
|
|
|
|
'agent_name' => 3,
|
|
|
|
'module_name' => 4,
|
|
|
|
'description' => 5,
|
|
|
|
'template' => 5,
|
|
|
|
'action' => 6,
|
|
|
|
'last_fired' => 7,
|
|
|
|
'status' => 8,
|
|
|
|
'validate' => 9,
|
|
|
|
];
|
|
|
|
} else {
|
|
|
|
$index = [
|
|
|
|
'policy' => 0,
|
|
|
|
'standby' => 1,
|
|
|
|
'force_execution' => 2,
|
|
|
|
'agent_name' => 3,
|
|
|
|
'module_name' => 3,
|
|
|
|
'description' => 4,
|
|
|
|
'template' => 4,
|
|
|
|
'action' => 5,
|
|
|
|
'last_fired' => 6,
|
|
|
|
'status' => 7,
|
|
|
|
'validate' => 8,
|
|
|
|
];
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
if ($agent) {
|
|
|
|
$index = [
|
|
|
|
'standby' => 0,
|
|
|
|
'force_execution' => 1,
|
|
|
|
'agent_name' => 2,
|
|
|
|
'module_name' => 3,
|
|
|
|
'description' => 4,
|
|
|
|
'template' => 4,
|
|
|
|
'action' => 5,
|
|
|
|
'last_fired' => 6,
|
|
|
|
'status' => 7,
|
|
|
|
'validate' => 8,
|
|
|
|
];
|
|
|
|
} else {
|
|
|
|
$index = [
|
|
|
|
'standby' => 0,
|
|
|
|
'force_execution' => 1,
|
|
|
|
'agent_name' => 2,
|
|
|
|
'module_name' => 2,
|
|
|
|
'description' => 3,
|
|
|
|
'template' => 3,
|
|
|
|
'action' => 4,
|
|
|
|
'last_fired' => 5,
|
|
|
|
'status' => 6,
|
|
|
|
'validate' => 7,
|
|
|
|
];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($alert['disabled']) {
|
|
|
|
$disabledHtmlStart = '<span style="font-style: italic; color: #aaaaaa;">';
|
|
|
|
$disabledHtmlEnd = '</span>';
|
|
|
|
$styleDisabled = 'font-style: italic; color: #aaaaaa;';
|
|
|
|
} else {
|
|
|
|
$disabledHtmlStart = '';
|
|
|
|
$disabledHtmlEnd = '';
|
|
|
|
$styleDisabled = '';
|
|
|
|
}
|
|
|
|
|
|
|
|
if (empty($alert)) {
|
|
|
|
if ($isFunctionPolicies !== ENTERPRISE_NOT_HOOK) {
|
|
|
|
return [
|
|
|
|
'',
|
|
|
|
'',
|
|
|
|
'',
|
|
|
|
'',
|
|
|
|
'',
|
|
|
|
'',
|
|
|
|
'',
|
|
|
|
'',
|
|
|
|
];
|
|
|
|
} else {
|
|
|
|
return [
|
|
|
|
'',
|
|
|
|
'',
|
|
|
|
'',
|
|
|
|
'',
|
|
|
|
'',
|
|
|
|
'',
|
|
|
|
'',
|
|
|
|
];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (defined('METACONSOLE')) {
|
|
|
|
$server = db_get_row('tmetaconsole_setup', 'id', $alert['server_data']['id']);
|
|
|
|
|
|
|
|
if (metaconsole_connect($server) == NOERR) {
|
2019-05-28 09:48:09 +02:00
|
|
|
// Get agent data from node.
|
2019-01-30 16:18:44 +01:00
|
|
|
$agente = db_get_row('tagente', 'id_agente', $alert['id_agent']);
|
|
|
|
|
|
|
|
metaconsole_restore_db();
|
|
|
|
}
|
|
|
|
} else {
|
2019-05-28 09:48:09 +02:00
|
|
|
// Get agent id.
|
2019-01-30 16:18:44 +01:00
|
|
|
$id_agent = modules_get_agentmodule_agent($alert['id_agent_module']);
|
|
|
|
$agente = db_get_row('tagente', 'id_agente', $id_agent);
|
|
|
|
}
|
|
|
|
|
|
|
|
$template = alerts_get_alert_template($alert['id_alert_template']);
|
|
|
|
$description = io_safe_output($template['name']);
|
|
|
|
|
|
|
|
$data = [];
|
|
|
|
|
2019-05-28 09:48:09 +02:00
|
|
|
// Validate checkbox.
|
2019-04-02 13:42:30 +02:00
|
|
|
if (!defined('METACONSOLE')) {
|
2019-05-28 09:48:09 +02:00
|
|
|
if (check_acl($config['id_user'], $id_group, 'LW')
|
|
|
|
|| check_acl($config['id_user'], $id_group, 'LM')
|
|
|
|
) {
|
2019-04-02 13:42:30 +02:00
|
|
|
$data[$index['validate']] = '';
|
|
|
|
|
|
|
|
$data[$index['validate']] .= html_print_checkbox(
|
|
|
|
'validate[]',
|
|
|
|
$alert['id'],
|
|
|
|
false,
|
|
|
|
true,
|
|
|
|
false,
|
|
|
|
'',
|
|
|
|
true
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if ($isFunctionPolicies !== ENTERPRISE_NOT_HOOK) {
|
|
|
|
if (is_metaconsole()) {
|
|
|
|
$node = metaconsole_get_connection_by_id($alert['server_data']['id']);
|
|
|
|
if (metaconsole_load_external_db($node) !== NOERR) {
|
|
|
|
// Restore the default connection.
|
|
|
|
metaconsole_restore_db();
|
|
|
|
$errors++;
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$policyInfo = policies_is_alert_in_policy2($alert['id'], false);
|
|
|
|
if ($policyInfo === false) {
|
|
|
|
$data[$index['policy']] = '';
|
|
|
|
} else {
|
|
|
|
$img = 'images/policies.png';
|
|
|
|
if (!is_metaconsole()) {
|
|
|
|
$data[$index['policy']] = '<a href="?sec=gmodules&sec2=enterprise/godmode/policies/policies&id='.$policyInfo['id'].'">'.html_print_image($img, true, ['title' => $policyInfo['name']]).'</a>';
|
|
|
|
} else {
|
|
|
|
$data[$index['policy']] = '<a href="?sec=gmodules&sec2=advanced/policymanager&id='.$policyInfo['id'].'">'.html_print_image($img, true, ['title' => $policyInfo['name']]).'</a>';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (is_metaconsole()) {
|
|
|
|
metaconsole_restore_db();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-05-28 09:48:09 +02:00
|
|
|
// Standby.
|
2019-01-30 16:18:44 +01:00
|
|
|
$data[$index['standby']] = '';
|
|
|
|
if (isset($alert['standby']) && $alert['standby'] == 1) {
|
|
|
|
$data[$index['standby']] = html_print_image('images/bell_pause.png', true, ['title' => __('Standby on')]);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!defined('METACONSOLE')) {
|
2019-05-28 09:48:09 +02:00
|
|
|
// Force alert execution.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (check_acl($config['id_user'], $id_group, 'AW') || check_acl($config['id_user'], $id_group, 'LM')) {
|
|
|
|
if ($alert['force_execution'] == 0) {
|
|
|
|
$data[$index['force_execution']] = '<a href="'.$url.'&id_alert='.$alert['id'].'&force_execution=1&refr=60">'.html_print_image('images/target.png', true, ['border' => '0', 'title' => __('Force')]).'</a>';
|
|
|
|
} else {
|
|
|
|
$data[$index['force_execution']] = '<a href="'.$url.'&id_alert='.$alert['id'].'&refr=60">'.html_print_image('images/refresh.png', true).'</a>';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$data[$index['agent_name']] = $disabledHtmlStart;
|
|
|
|
if ($agent == 0) {
|
|
|
|
$data[$index['module_name']] .= ui_print_truncate_text(isset($alert['agent_module_name']) ? $alert['agent_module_name'] : modules_get_agentmodule_name($alert['id_agent_module']), 'module_small', false, true, true, '[…]', 'font-size: 7.2pt');
|
|
|
|
} else {
|
|
|
|
if (defined('METACONSOLE')) {
|
|
|
|
$agent_name = $alert['agent_name'];
|
|
|
|
$id_agent = $alert['id_agent'];
|
|
|
|
} else {
|
|
|
|
$agent_name = false;
|
|
|
|
$id_agent = modules_get_agentmodule_agent($alert['id_agent_module']);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (defined('METACONSOLE') || !can_user_access_node()) {
|
|
|
|
$data[$index['agent_name']] = ui_print_truncate_text($agent_name, 'agent_small', false, true, false, '[…]', 'font-size:7.5pt;');
|
|
|
|
} else {
|
|
|
|
if ($agent_style !== false) {
|
|
|
|
$data[$index['agent_name']] .= '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$id_agent.'"> <span style="font-size: 7pt;font-weight:bold" title ="'.$agente['nombre'].'">'.$agente['alias'].'</span></a>';
|
|
|
|
} else {
|
|
|
|
$data[$index['agent_name']] .= '<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$id_agent.'"> <span style="font-size: 7pt;font-weight:bold" title ="'.$agente['nombre'].'">'.$agente['alias'].'</span></a>';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$data[$index['module_name']] = ui_print_truncate_text(isset($alert['agent_module_name']) ? $alert['agent_module_name'] : modules_get_agentmodule_name($alert['id_agent_module']), 'module_small', false, true, true, '[…]', 'font-size: 7.2pt');
|
|
|
|
}
|
|
|
|
|
|
|
|
$data[$index['agent_name']] .= $disabledHtmlEnd;
|
|
|
|
|
|
|
|
$data[$index['description']] = '';
|
|
|
|
|
|
|
|
if (defined('METACONSOLE')) {
|
|
|
|
$data[$index['template']] .= '<a class="template_details" href="'.ui_get_full_url('/', false, false, false).'/ajax.php?page=enterprise/meta/include/ajax/tree_view.ajax&action=get_template_tooltip&id_template='.$template['id'].'&server_name='.$alert['server_data']['server_name'].'">';
|
|
|
|
} else {
|
|
|
|
$data[$index['template']] .= '<a class="template_details" href="ajax.php?page=godmode/alerts/alert_templates&get_template_tooltip=1&id_template='.$template['id'].'">';
|
|
|
|
}
|
|
|
|
|
|
|
|
$data[$index['template']] .= html_print_image('images/zoom.png', true);
|
|
|
|
$data[$index['template']] .= '</a> ';
|
|
|
|
$actionDefault = db_get_value_sql(
|
|
|
|
'SELECT id_alert_action
|
|
|
|
FROM talert_templates WHERE id = '.$alert['id_alert_template']
|
|
|
|
);
|
|
|
|
|
|
|
|
$data[$index['description']] .= $disabledHtmlStart.ui_print_truncate_text(io_safe_output($description), 'description', false, true, true, '[…]', 'font-size: 7.1pt').$disabledHtmlEnd;
|
|
|
|
|
|
|
|
$actions = alerts_get_alert_agent_module_actions($alert['id'], false, $alert['server_data']['id']);
|
|
|
|
|
|
|
|
if (!empty($actions)) {
|
|
|
|
$actionText = '<div><ul class="action_list">';
|
|
|
|
foreach ($actions as $action) {
|
|
|
|
$actionText .= '<div style="margin-bottom: 5px;" ><span class="action_name"><li>'.$action['name'];
|
|
|
|
if ($action['fires_min'] != $action['fires_max']) {
|
|
|
|
$actionText .= ' ('.$action['fires_min'].' / '.$action['fires_max'].')';
|
|
|
|
}
|
|
|
|
|
|
|
|
$actionText .= '</li></span></div>';
|
|
|
|
}
|
|
|
|
|
|
|
|
$actionText .= '</ul></div>';
|
|
|
|
} else {
|
|
|
|
if ($actionDefault != '') {
|
2019-05-28 10:47:31 +02:00
|
|
|
$actionText = db_get_sql(
|
|
|
|
sprintf(
|
|
|
|
'SELECT name FROM talert_actions WHERE id = %d',
|
|
|
|
$actionDefault
|
|
|
|
)
|
|
|
|
).' <i>('.__('Default').')</i>';
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$data[$index['action']] = $actionText;
|
|
|
|
|
|
|
|
$data[$index['last_fired']] = $disabledHtmlStart.ui_print_timestamp($alert['last_fired'], true).$disabledHtmlEnd;
|
|
|
|
|
|
|
|
$status = STATUS_ALERT_NOT_FIRED;
|
|
|
|
$title = '';
|
|
|
|
|
|
|
|
if ($alert['times_fired'] > 0) {
|
|
|
|
$status = STATUS_ALERT_FIRED;
|
|
|
|
$title = __('Alert fired').' '.$alert['internal_counter'].' '.__('time(s)');
|
|
|
|
} else if ($alert['disabled'] > 0) {
|
|
|
|
$status = STATUS_ALERT_DISABLED;
|
|
|
|
$title = __('Alert disabled');
|
|
|
|
} else {
|
|
|
|
$status = STATUS_ALERT_NOT_FIRED;
|
|
|
|
$title = __('Alert not fired');
|
|
|
|
}
|
|
|
|
|
|
|
|
$data[$index['status']] = ui_print_status_image($status, $title, true);
|
|
|
|
|
|
|
|
return $data;
|
2009-01-15 11:21:38 +01:00
|
|
|
}
|
2009-01-20 Evi Vanoost <vanooste@rcbi.rochester.edu>
* ajax.php, include/config.inc.php, include/config_process.php,
include/functions.php, include/functions_db.php,
include/functions_ui.php, index.php, install.php,
operation/users/user.php, operation/users/user_edit.php,
reporting/fgraph.php: Added pluggable authentication and moved functions
* general/login_page.php, general/logon_ok.php,
godmode/agentes/modificar_agente.php,
godmode/users/configure_users.php, godmode/users/user_list.php,
operation/agentes/estado_agente.php, operation/incidents/incident.php,
operation/incidents/incident_search.php: Updated functions
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1366 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-01-20 19:21:20 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2009-01-20 Evi Vanoost <vanooste@rcbi.rochester.edu>
* ajax.php, include/config.inc.php, include/config_process.php,
include/functions.php, include/functions_db.php,
include/functions_ui.php, index.php, install.php,
operation/users/user.php, operation/users/user_edit.php,
reporting/fgraph.php: Added pluggable authentication and moved functions
* general/login_page.php, general/logon_ok.php,
godmode/agentes/modificar_agente.php,
godmode/users/configure_users.php, godmode/users/user_list.php,
operation/agentes/estado_agente.php, operation/incidents/incident.php,
operation/incidents/incident_search.php: Updated functions
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1366 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-01-20 19:21:20 +01:00
|
|
|
/**
|
2016-03-30 13:05:08 +02:00
|
|
|
* Prints a substracted string, length specified by cutoff, the full string will be in a rollover.
|
2009-01-20 Evi Vanoost <vanooste@rcbi.rochester.edu>
* ajax.php, include/config.inc.php, include/config_process.php,
include/functions.php, include/functions_db.php,
include/functions_ui.php, index.php, install.php,
operation/users/user.php, operation/users/user_edit.php,
reporting/fgraph.php: Added pluggable authentication and moved functions
* general/login_page.php, general/logon_ok.php,
godmode/agentes/modificar_agente.php,
godmode/users/configure_users.php, godmode/users/user_list.php,
operation/agentes/estado_agente.php, operation/incidents/incident.php,
operation/incidents/incident_search.php: Updated functions
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1366 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-01-20 19:21:20 +01:00
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @param string $string The string to be cut..
|
|
|
|
* @param integer $cutoff At how much characters to cut.
|
|
|
|
* @param boolean $return Whether to return or print it out.
|
|
|
|
* @param integer $fontsize Size font (fixed) in px, applyed as CSS style (optional).
|
2009-01-20 Evi Vanoost <vanooste@rcbi.rochester.edu>
* ajax.php, include/config.inc.php, include/config_process.php,
include/functions.php, include/functions_db.php,
include/functions_ui.php, index.php, install.php,
operation/users/user.php, operation/users/user_edit.php,
reporting/fgraph.php: Added pluggable authentication and moved functions
* general/login_page.php, general/logon_ok.php,
godmode/agentes/modificar_agente.php,
godmode/users/configure_users.php, godmode/users/user_list.php,
operation/agentes/estado_agente.php, operation/incidents/incident.php,
operation/incidents/incident_search.php: Updated functions
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1366 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-01-20 19:21:20 +01:00
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @return string HTML string.
|
2009-01-20 Evi Vanoost <vanooste@rcbi.rochester.edu>
* ajax.php, include/config.inc.php, include/config_process.php,
include/functions.php, include/functions_db.php,
include/functions_ui.php, index.php, install.php,
operation/users/user.php, operation/users/user_edit.php,
reporting/fgraph.php: Added pluggable authentication and moved functions
* general/login_page.php, general/logon_ok.php,
godmode/agentes/modificar_agente.php,
godmode/users/configure_users.php, godmode/users/user_list.php,
operation/agentes/estado_agente.php, operation/incidents/incident.php,
operation/incidents/incident_search.php: Updated functions
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1366 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-01-20 19:21:20 +01:00
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_print_string_substr($string, $cutoff=16, $return=false, $fontsize=0)
|
|
|
|
{
|
|
|
|
if (empty($string)) {
|
|
|
|
return '';
|
|
|
|
}
|
|
|
|
|
|
|
|
$string2 = io_safe_output($string);
|
|
|
|
if (mb_strlen($string2, 'UTF-8') > $cutoff) {
|
|
|
|
$string3 = '...';
|
|
|
|
} else {
|
|
|
|
$string3 = '';
|
|
|
|
}
|
|
|
|
|
|
|
|
$font_size_mod = '';
|
|
|
|
|
|
|
|
if ($fontsize > 0) {
|
|
|
|
$font_size_mod = "style='font-size: ".$fontsize."pt'";
|
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
$string = '<span '.$font_size_mod.' title="'.io_safe_input($string2).'">';
|
|
|
|
$string .= mb_substr($string2, 0, $cutoff, 'UTF-8').$string3.'</span>';
|
2019-01-30 16:18:44 +01:00
|
|
|
|
|
|
|
if ($return === false) {
|
|
|
|
echo $string;
|
|
|
|
}
|
|
|
|
|
|
|
|
return $string;
|
2009-01-20 Evi Vanoost <vanooste@rcbi.rochester.edu>
* ajax.php, include/config.inc.php, include/config_process.php,
include/functions.php, include/functions_db.php,
include/functions_ui.php, index.php, install.php,
operation/users/user.php, operation/users/user_edit.php,
reporting/fgraph.php: Added pluggable authentication and moved functions
* general/login_page.php, general/logon_ok.php,
godmode/agentes/modificar_agente.php,
godmode/users/configure_users.php, godmode/users/user_list.php,
operation/agentes/estado_agente.php, operation/incidents/incident.php,
operation/incidents/incident_search.php: Updated functions
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1366 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-01-20 19:21:20 +01:00
|
|
|
}
|
2009-01-21 15:56:55 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2009-01-21 15:56:55 +01:00
|
|
|
/**
|
|
|
|
* Gets a helper text explaining the requirement needs for an alert template
|
|
|
|
* to get it fired.
|
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @param integer $id_alert_template Alert template id.
|
|
|
|
* @param boolean $return Wheter to return or print it out.
|
|
|
|
* @param boolean $print_values Wheter to put the values in the string or not.
|
2009-01-21 15:56:55 +01:00
|
|
|
*
|
|
|
|
* @return An HTML string if return was true.
|
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_print_alert_template_example($id_alert_template, $return=false, $print_values=true)
|
|
|
|
{
|
|
|
|
$output = '';
|
|
|
|
|
|
|
|
$output .= html_print_image('images/information.png', true);
|
|
|
|
$output .= '<span id="example">';
|
|
|
|
$template = alerts_get_alert_template($id_alert_template);
|
|
|
|
|
|
|
|
switch ($template['type']) {
|
|
|
|
case 'equal':
|
2019-05-28 10:47:31 +02:00
|
|
|
// Do not translate the HTML attributes.
|
2019-01-30 16:18:44 +01:00
|
|
|
$output .= __('The alert would fire when the value is <span id="value"></span>');
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'not_equal':
|
2019-05-28 10:47:31 +02:00
|
|
|
// Do not translate the HTML attributes.
|
2019-01-30 16:18:44 +01:00
|
|
|
$output .= __('The alert would fire when the value is not <span id="value"></span>');
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'regex':
|
|
|
|
if ($template['matches_value']) {
|
2019-05-28 10:47:31 +02:00
|
|
|
// Do not translate the HTML attributes.
|
2019-01-30 16:18:44 +01:00
|
|
|
$output .= __('The alert would fire when the value matches <span id="value"></span>');
|
|
|
|
} else {
|
2019-05-28 10:47:31 +02:00
|
|
|
// End if.
|
2019-01-30 16:18:44 +01:00
|
|
|
$output .= __('The alert would fire when the value doesn\'t match <span id="value"></span>');
|
|
|
|
}
|
|
|
|
|
|
|
|
$value = $template['value'];
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'max_min':
|
|
|
|
if ($template['matches_value']) {
|
2019-05-28 10:47:31 +02:00
|
|
|
// Do not translate the HTML attributes.
|
2019-01-30 16:18:44 +01:00
|
|
|
$output .= __('The alert would fire when the value is between <span id="min"></span> and <span id="max"></span>');
|
|
|
|
} else {
|
2019-05-28 10:47:31 +02:00
|
|
|
// End if.
|
2019-01-30 16:18:44 +01:00
|
|
|
$output .= __('The alert would fire when the value is not between <span id="min"></span> and <span id="max"></span>');
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'max':
|
2019-05-28 10:47:31 +02:00
|
|
|
// Do not translate the HTML attributes.
|
2019-01-30 16:18:44 +01:00
|
|
|
$output .= __('The alert would fire when the value is over <span id="max"></span>');
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'min':
|
2019-05-28 10:47:31 +02:00
|
|
|
// Do not translate the HTML attributes.
|
2019-01-30 16:18:44 +01:00
|
|
|
$output .= __('The alert would fire when the value is under <span id="min"></span>');
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'warning':
|
2019-05-28 10:47:31 +02:00
|
|
|
// Do not translate the HTML attributes.
|
2019-01-30 16:18:44 +01:00
|
|
|
$output .= __('The alert would fire when the module is in warning status');
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'critical':
|
2019-05-28 10:47:31 +02:00
|
|
|
// Do not translate the HTML attributes.
|
2019-01-30 16:18:44 +01:00
|
|
|
$output .= __('The alert would fire when the module is in critical status');
|
|
|
|
break;
|
2019-05-28 10:47:31 +02:00
|
|
|
|
|
|
|
default:
|
|
|
|
// Do nothing.
|
|
|
|
$output .= __('Unknown option.');
|
|
|
|
break;
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
if ($print_values) {
|
|
|
|
/*
|
2019-05-28 10:47:31 +02:00
|
|
|
* Replace span elements with real values. This is done in such way to avoid
|
|
|
|
* duplicating strings and make it easily modificable via Javascript.
|
|
|
|
*/
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
$output = str_replace('<span id="value"></span>', $template['value'], $output);
|
|
|
|
$output = str_replace('<span id="max"></span>', $template['max_value'], $output);
|
|
|
|
$output = str_replace('<span id="min"></span>', $template['min_value'], $output);
|
|
|
|
}
|
|
|
|
|
|
|
|
$output .= '</span>';
|
|
|
|
if ($return) {
|
|
|
|
return $output;
|
|
|
|
}
|
|
|
|
|
|
|
|
echo $output;
|
2009-01-21 15:56:55 +01:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2009-02-13 21:23:44 +01:00
|
|
|
/**
|
|
|
|
* Prints a help tip icon.
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @param string $help_id Id of the help article.
|
|
|
|
* @param boolean $return Whether to return or output the result.
|
|
|
|
* @param string $home_url Home url if its necessary.
|
|
|
|
* @param string $image Image path.
|
|
|
|
* @param boolean $is_relative Route is relative or not.
|
|
|
|
* @param string $id Target id.
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
2009-02-13 21:23:44 +01:00
|
|
|
* @return string The help tip
|
|
|
|
*/
|
2019-05-28 10:47:31 +02:00
|
|
|
function ui_print_help_icon(
|
|
|
|
$help_id,
|
|
|
|
$return=false,
|
|
|
|
$home_url='',
|
|
|
|
$image='images/help_green.png',
|
|
|
|
$is_relative=false,
|
|
|
|
$id=''
|
|
|
|
) {
|
2019-01-30 16:18:44 +01:00
|
|
|
global $config;
|
|
|
|
|
2019-04-24 13:53:18 +02:00
|
|
|
// Do not display the help icon if help is disabled.
|
2019-01-30 16:18:44 +01:00
|
|
|
if ($config['disable_help']) {
|
|
|
|
return '';
|
|
|
|
}
|
|
|
|
|
|
|
|
if (empty($home_url)) {
|
|
|
|
$home_url = '';
|
|
|
|
}
|
|
|
|
|
|
|
|
if (defined('METACONSOLE')) {
|
|
|
|
$home_url = '../../'.$home_url;
|
|
|
|
}
|
|
|
|
|
2019-04-24 13:53:18 +02:00
|
|
|
$url = get_help_info($help_id);
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
$output = html_print_image(
|
|
|
|
$image,
|
|
|
|
true,
|
|
|
|
[
|
|
|
|
'class' => 'img_help',
|
|
|
|
'title' => __('Help'),
|
2019-04-24 13:53:18 +02:00
|
|
|
'onclick' => "open_help ('".$url."')",
|
2019-05-09 13:43:53 +02:00
|
|
|
'id' => $id,
|
2019-01-30 16:18:44 +01:00
|
|
|
],
|
|
|
|
false,
|
|
|
|
$is_relative && is_metaconsole()
|
|
|
|
);
|
|
|
|
if (!$return) {
|
|
|
|
echo $output;
|
|
|
|
}
|
|
|
|
|
|
|
|
return $output;
|
2009-02-13 21:23:44 +01:00
|
|
|
}
|
2009-02-19 Esteban Sanchez <estebans@artica.es>
* include/functions_ui.php: Added require_css_file(),
require_javascript_file() and require_jquery_file() to add CSS,
javascript and jQuery files to the header easily without changing
config object. A path parameter is addded to allow the use on
enterprise code.
* include/functions_db.php: Added
get_db_value_filter(), get_db_all_rows_filter() and
process_sql_delete(). Fixed delete_agent() style and use these
functions. Added process_page_head() from functions_ui.php and changed
a bit the config javascript object part.
* include/functions_custom_graphs.php: Get results indexed by id on
get_user_custom_graphs().
* include/functions.php: Moved process_page_head to functions_ui.php.
* godmode/agentes/manage_delete.php: New interface to perform massive
agents deletion.
* godmode/menu.php: Added new option to massive agents deletion.
* general/main_menu.php, godmode/agentes/manage_config.php,
godmode/agentes/module_manager_editor.php,
godmode/agentes/planned_downtime.php,
godmode/alerts/alert_compounds.php, godmode/alerts/alert_list.php,
godmode/alerts/configure_alert_compound.php,
godmode/alerts/configure_alert_template.php,
godmode/reporting/map_builder.php, operation/agentes/networkmap.php,
operation/reporting/reporting_viewer.php,
operation/visual_console/render_view.php: Use new functions in include
CSS and javascript files.
* index.php: Bit of style when printing the header so the HTML can be
readed easily in a editor.
* include/javascript/pandora.js: Added a variable to determine the
enterprise directory.
* include/styles/pandora.css: Added style for manage_delete.php
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1467 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-02-19 17:10:04 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2009-02-19 Esteban Sanchez <estebans@artica.es>
* include/functions_ui.php: Added require_css_file(),
require_javascript_file() and require_jquery_file() to add CSS,
javascript and jQuery files to the header easily without changing
config object. A path parameter is addded to allow the use on
enterprise code.
* include/functions_db.php: Added
get_db_value_filter(), get_db_all_rows_filter() and
process_sql_delete(). Fixed delete_agent() style and use these
functions. Added process_page_head() from functions_ui.php and changed
a bit the config javascript object part.
* include/functions_custom_graphs.php: Get results indexed by id on
get_user_custom_graphs().
* include/functions.php: Moved process_page_head to functions_ui.php.
* godmode/agentes/manage_delete.php: New interface to perform massive
agents deletion.
* godmode/menu.php: Added new option to massive agents deletion.
* general/main_menu.php, godmode/agentes/manage_config.php,
godmode/agentes/module_manager_editor.php,
godmode/agentes/planned_downtime.php,
godmode/alerts/alert_compounds.php, godmode/alerts/alert_list.php,
godmode/alerts/configure_alert_compound.php,
godmode/alerts/configure_alert_template.php,
godmode/reporting/map_builder.php, operation/agentes/networkmap.php,
operation/reporting/reporting_viewer.php,
operation/visual_console/render_view.php: Use new functions in include
CSS and javascript files.
* index.php: Bit of style when printing the header so the HTML can be
readed easily in a editor.
* include/javascript/pandora.js: Added a variable to determine the
enterprise directory.
* include/styles/pandora.css: Added style for manage_delete.php
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1467 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-02-19 17:10:04 +01:00
|
|
|
/**
|
|
|
|
* Add a CSS file to the HTML head tag.
|
|
|
|
*
|
|
|
|
* To make a CSS file available just put it in include/styles. The
|
|
|
|
* file name should be like "name.css". The "name" would be the value
|
|
|
|
* needed to pass to this function.
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @param string $name Script name to add without the "jquery." prefix and the ".js"
|
2009-02-19 Esteban Sanchez <estebans@artica.es>
* include/functions_ui.php: Added require_css_file(),
require_javascript_file() and require_jquery_file() to add CSS,
javascript and jQuery files to the header easily without changing
config object. A path parameter is addded to allow the use on
enterprise code.
* include/functions_db.php: Added
get_db_value_filter(), get_db_all_rows_filter() and
process_sql_delete(). Fixed delete_agent() style and use these
functions. Added process_page_head() from functions_ui.php and changed
a bit the config javascript object part.
* include/functions_custom_graphs.php: Get results indexed by id on
get_user_custom_graphs().
* include/functions.php: Moved process_page_head to functions_ui.php.
* godmode/agentes/manage_delete.php: New interface to perform massive
agents deletion.
* godmode/menu.php: Added new option to massive agents deletion.
* general/main_menu.php, godmode/agentes/manage_config.php,
godmode/agentes/module_manager_editor.php,
godmode/agentes/planned_downtime.php,
godmode/alerts/alert_compounds.php, godmode/alerts/alert_list.php,
godmode/alerts/configure_alert_compound.php,
godmode/alerts/configure_alert_template.php,
godmode/reporting/map_builder.php, operation/agentes/networkmap.php,
operation/reporting/reporting_viewer.php,
operation/visual_console/render_view.php: Use new functions in include
CSS and javascript files.
* index.php: Bit of style when printing the header so the HTML can be
readed easily in a editor.
* include/javascript/pandora.js: Added a variable to determine the
enterprise directory.
* include/styles/pandora.css: Added style for manage_delete.php
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1467 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-02-19 17:10:04 +01:00
|
|
|
* suffix. Example:
|
2011-04-13 18:11:02 +02:00
|
|
|
* <code>
|
|
|
|
* ui_require_css_file ('pandora');
|
|
|
|
* // Would include include/styles/pandora.js
|
2019-05-28 10:47:31 +02:00
|
|
|
* </code>.
|
|
|
|
* @param string $path Path where script is placed.
|
2009-02-19 Esteban Sanchez <estebans@artica.es>
* include/functions_ui.php: Added require_css_file(),
require_javascript_file() and require_jquery_file() to add CSS,
javascript and jQuery files to the header easily without changing
config object. A path parameter is addded to allow the use on
enterprise code.
* include/functions_db.php: Added
get_db_value_filter(), get_db_all_rows_filter() and
process_sql_delete(). Fixed delete_agent() style and use these
functions. Added process_page_head() from functions_ui.php and changed
a bit the config javascript object part.
* include/functions_custom_graphs.php: Get results indexed by id on
get_user_custom_graphs().
* include/functions.php: Moved process_page_head to functions_ui.php.
* godmode/agentes/manage_delete.php: New interface to perform massive
agents deletion.
* godmode/menu.php: Added new option to massive agents deletion.
* general/main_menu.php, godmode/agentes/manage_config.php,
godmode/agentes/module_manager_editor.php,
godmode/agentes/planned_downtime.php,
godmode/alerts/alert_compounds.php, godmode/alerts/alert_list.php,
godmode/alerts/configure_alert_compound.php,
godmode/alerts/configure_alert_template.php,
godmode/reporting/map_builder.php, operation/agentes/networkmap.php,
operation/reporting/reporting_viewer.php,
operation/visual_console/render_view.php: Use new functions in include
CSS and javascript files.
* index.php: Bit of style when printing the header so the HTML can be
readed easily in a editor.
* include/javascript/pandora.js: Added a variable to determine the
enterprise directory.
* include/styles/pandora.css: Added style for manage_delete.php
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1467 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-02-19 17:10:04 +01:00
|
|
|
*
|
2019-01-30 16:18:44 +01:00
|
|
|
* @return boolean True if the file was added. False if the file doesn't exist.
|
2009-02-19 Esteban Sanchez <estebans@artica.es>
* include/functions_ui.php: Added require_css_file(),
require_javascript_file() and require_jquery_file() to add CSS,
javascript and jQuery files to the header easily without changing
config object. A path parameter is addded to allow the use on
enterprise code.
* include/functions_db.php: Added
get_db_value_filter(), get_db_all_rows_filter() and
process_sql_delete(). Fixed delete_agent() style and use these
functions. Added process_page_head() from functions_ui.php and changed
a bit the config javascript object part.
* include/functions_custom_graphs.php: Get results indexed by id on
get_user_custom_graphs().
* include/functions.php: Moved process_page_head to functions_ui.php.
* godmode/agentes/manage_delete.php: New interface to perform massive
agents deletion.
* godmode/menu.php: Added new option to massive agents deletion.
* general/main_menu.php, godmode/agentes/manage_config.php,
godmode/agentes/module_manager_editor.php,
godmode/agentes/planned_downtime.php,
godmode/alerts/alert_compounds.php, godmode/alerts/alert_list.php,
godmode/alerts/configure_alert_compound.php,
godmode/alerts/configure_alert_template.php,
godmode/reporting/map_builder.php, operation/agentes/networkmap.php,
operation/reporting/reporting_viewer.php,
operation/visual_console/render_view.php: Use new functions in include
CSS and javascript files.
* index.php: Bit of style when printing the header so the HTML can be
readed easily in a editor.
* include/javascript/pandora.js: Added a variable to determine the
enterprise directory.
* include/styles/pandora.css: Added style for manage_delete.php
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1467 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-02-19 17:10:04 +01:00
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_require_css_file($name, $path='include/styles/')
|
|
|
|
{
|
|
|
|
global $config;
|
|
|
|
|
|
|
|
$filename = $path.$name.'.css';
|
|
|
|
|
|
|
|
if (! isset($config['css'])) {
|
|
|
|
$config['css'] = [];
|
|
|
|
}
|
|
|
|
|
|
|
|
if (isset($config['css'][$name])) {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (! file_exists($filename)
|
|
|
|
&& ! file_exists($config['homedir'].'/'.$filename)
|
|
|
|
) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
$config['css'][$name] = $filename;
|
|
|
|
|
|
|
|
return true;
|
2009-02-19 Esteban Sanchez <estebans@artica.es>
* include/functions_ui.php: Added require_css_file(),
require_javascript_file() and require_jquery_file() to add CSS,
javascript and jQuery files to the header easily without changing
config object. A path parameter is addded to allow the use on
enterprise code.
* include/functions_db.php: Added
get_db_value_filter(), get_db_all_rows_filter() and
process_sql_delete(). Fixed delete_agent() style and use these
functions. Added process_page_head() from functions_ui.php and changed
a bit the config javascript object part.
* include/functions_custom_graphs.php: Get results indexed by id on
get_user_custom_graphs().
* include/functions.php: Moved process_page_head to functions_ui.php.
* godmode/agentes/manage_delete.php: New interface to perform massive
agents deletion.
* godmode/menu.php: Added new option to massive agents deletion.
* general/main_menu.php, godmode/agentes/manage_config.php,
godmode/agentes/module_manager_editor.php,
godmode/agentes/planned_downtime.php,
godmode/alerts/alert_compounds.php, godmode/alerts/alert_list.php,
godmode/alerts/configure_alert_compound.php,
godmode/alerts/configure_alert_template.php,
godmode/reporting/map_builder.php, operation/agentes/networkmap.php,
operation/reporting/reporting_viewer.php,
operation/visual_console/render_view.php: Use new functions in include
CSS and javascript files.
* index.php: Bit of style when printing the header so the HTML can be
readed easily in a editor.
* include/javascript/pandora.js: Added a variable to determine the
enterprise directory.
* include/styles/pandora.css: Added style for manage_delete.php
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1467 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-02-19 17:10:04 +01:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2009-02-19 Esteban Sanchez <estebans@artica.es>
* include/functions_ui.php: Added require_css_file(),
require_javascript_file() and require_jquery_file() to add CSS,
javascript and jQuery files to the header easily without changing
config object. A path parameter is addded to allow the use on
enterprise code.
* include/functions_db.php: Added
get_db_value_filter(), get_db_all_rows_filter() and
process_sql_delete(). Fixed delete_agent() style and use these
functions. Added process_page_head() from functions_ui.php and changed
a bit the config javascript object part.
* include/functions_custom_graphs.php: Get results indexed by id on
get_user_custom_graphs().
* include/functions.php: Moved process_page_head to functions_ui.php.
* godmode/agentes/manage_delete.php: New interface to perform massive
agents deletion.
* godmode/menu.php: Added new option to massive agents deletion.
* general/main_menu.php, godmode/agentes/manage_config.php,
godmode/agentes/module_manager_editor.php,
godmode/agentes/planned_downtime.php,
godmode/alerts/alert_compounds.php, godmode/alerts/alert_list.php,
godmode/alerts/configure_alert_compound.php,
godmode/alerts/configure_alert_template.php,
godmode/reporting/map_builder.php, operation/agentes/networkmap.php,
operation/reporting/reporting_viewer.php,
operation/visual_console/render_view.php: Use new functions in include
CSS and javascript files.
* index.php: Bit of style when printing the header so the HTML can be
readed easily in a editor.
* include/javascript/pandora.js: Added a variable to determine the
enterprise directory.
* include/styles/pandora.css: Added style for manage_delete.php
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1467 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-02-19 17:10:04 +01:00
|
|
|
/**
|
|
|
|
* Add a javascript file to the HTML head tag.
|
|
|
|
*
|
|
|
|
* To make a javascript file available just put it in include/javascript. The
|
|
|
|
* file name should be like "name.js". The "name" would be the value
|
|
|
|
* needed to pass to this function.
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @param string $name Script name to add without the "jquery." prefix and the ".js"
|
|
|
|
* suffix. Example:
|
|
|
|
* <code>
|
|
|
|
* ui_require_javascript_file ('pandora');
|
|
|
|
* // Would include include/javascript/pandora.js
|
|
|
|
* </code>.
|
|
|
|
* @param string $path Path where script is placed.
|
|
|
|
* @param boolean $echo_tag Just echo the script tag of the file.
|
2009-02-19 Esteban Sanchez <estebans@artica.es>
* include/functions_ui.php: Added require_css_file(),
require_javascript_file() and require_jquery_file() to add CSS,
javascript and jQuery files to the header easily without changing
config object. A path parameter is addded to allow the use on
enterprise code.
* include/functions_db.php: Added
get_db_value_filter(), get_db_all_rows_filter() and
process_sql_delete(). Fixed delete_agent() style and use these
functions. Added process_page_head() from functions_ui.php and changed
a bit the config javascript object part.
* include/functions_custom_graphs.php: Get results indexed by id on
get_user_custom_graphs().
* include/functions.php: Moved process_page_head to functions_ui.php.
* godmode/agentes/manage_delete.php: New interface to perform massive
agents deletion.
* godmode/menu.php: Added new option to massive agents deletion.
* general/main_menu.php, godmode/agentes/manage_config.php,
godmode/agentes/module_manager_editor.php,
godmode/agentes/planned_downtime.php,
godmode/alerts/alert_compounds.php, godmode/alerts/alert_list.php,
godmode/alerts/configure_alert_compound.php,
godmode/alerts/configure_alert_template.php,
godmode/reporting/map_builder.php, operation/agentes/networkmap.php,
operation/reporting/reporting_viewer.php,
operation/visual_console/render_view.php: Use new functions in include
CSS and javascript files.
* index.php: Bit of style when printing the header so the HTML can be
readed easily in a editor.
* include/javascript/pandora.js: Added a variable to determine the
enterprise directory.
* include/styles/pandora.css: Added style for manage_delete.php
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1467 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-02-19 17:10:04 +01:00
|
|
|
*
|
2019-01-30 16:18:44 +01:00
|
|
|
* @return boolean True if the file was added. False if the file doesn't exist.
|
2009-02-19 Esteban Sanchez <estebans@artica.es>
* include/functions_ui.php: Added require_css_file(),
require_javascript_file() and require_jquery_file() to add CSS,
javascript and jQuery files to the header easily without changing
config object. A path parameter is addded to allow the use on
enterprise code.
* include/functions_db.php: Added
get_db_value_filter(), get_db_all_rows_filter() and
process_sql_delete(). Fixed delete_agent() style and use these
functions. Added process_page_head() from functions_ui.php and changed
a bit the config javascript object part.
* include/functions_custom_graphs.php: Get results indexed by id on
get_user_custom_graphs().
* include/functions.php: Moved process_page_head to functions_ui.php.
* godmode/agentes/manage_delete.php: New interface to perform massive
agents deletion.
* godmode/menu.php: Added new option to massive agents deletion.
* general/main_menu.php, godmode/agentes/manage_config.php,
godmode/agentes/module_manager_editor.php,
godmode/agentes/planned_downtime.php,
godmode/alerts/alert_compounds.php, godmode/alerts/alert_list.php,
godmode/alerts/configure_alert_compound.php,
godmode/alerts/configure_alert_template.php,
godmode/reporting/map_builder.php, operation/agentes/networkmap.php,
operation/reporting/reporting_viewer.php,
operation/visual_console/render_view.php: Use new functions in include
CSS and javascript files.
* index.php: Bit of style when printing the header so the HTML can be
readed easily in a editor.
* include/javascript/pandora.js: Added a variable to determine the
enterprise directory.
* include/styles/pandora.css: Added style for manage_delete.php
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1467 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-02-19 17:10:04 +01:00
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_require_javascript_file($name, $path='include/javascript/', $echo_tag=false)
|
|
|
|
{
|
|
|
|
global $config;
|
|
|
|
|
|
|
|
$filename = $path.$name.'.js';
|
|
|
|
|
|
|
|
if ($echo_tag) {
|
|
|
|
echo '<script type="text/javascript" src="'.ui_get_full_url(false, false, false, false).$filename.'"></script>';
|
2019-05-28 10:47:31 +02:00
|
|
|
return null;
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
if (! isset($config['js'])) {
|
|
|
|
$config['js'] = [];
|
|
|
|
}
|
|
|
|
|
|
|
|
if (isset($config['js'][$name])) {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// We checks two paths because it may fails on enterprise.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (! file_exists($filename) && ! file_exists($config['homedir'].'/'.$filename)) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (defined('METACONSOLE')) {
|
|
|
|
$config['js'][$name] = '../../'.$filename;
|
|
|
|
} else {
|
|
|
|
$config['js'][$name] = $filename;
|
|
|
|
}
|
|
|
|
|
|
|
|
return true;
|
2012-07-03 Miguel de Dios <miguel.dedios@artica.es>
* ajax.php: added support for the enterprise, because some case
this file can't call enterprise functions.
* godmode/reporting/visual_console_builder.wizard.php,
godmode/reporting/visual_console_builder.php,
godmode/reporting/visual_console_builder.editor.js,
godmode/reporting/visual_console_builder.elements.php,
godmode/reporting/visual_console_builder.editor.php,
godmode/reporting/visual_console_builder.constans.php (delete),
include/functions_visual_map_editor.php,
include/ajax/visual_console_builder.ajax.php,
include/functions_visual_map.php: some parts of code had been
refactored because it is necesary for to add enterprise feature to
Visual map.
* include/constants.php: cleaned source code style and added and
reordened the constants for visual maps.
* include/functions_html.php, include/styles/pandora.css,
include/functions_ui.php, include/functions.php, index.php: cleaned
source code style.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6732 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2012-07-03 17:39:37 +02:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2012-07-03 Miguel de Dios <miguel.dedios@artica.es>
* ajax.php: added support for the enterprise, because some case
this file can't call enterprise functions.
* godmode/reporting/visual_console_builder.wizard.php,
godmode/reporting/visual_console_builder.php,
godmode/reporting/visual_console_builder.editor.js,
godmode/reporting/visual_console_builder.elements.php,
godmode/reporting/visual_console_builder.editor.php,
godmode/reporting/visual_console_builder.constans.php (delete),
include/functions_visual_map_editor.php,
include/ajax/visual_console_builder.ajax.php,
include/functions_visual_map.php: some parts of code had been
refactored because it is necesary for to add enterprise feature to
Visual map.
* include/constants.php: cleaned source code style and added and
reordened the constants for visual maps.
* include/functions_html.php, include/styles/pandora.css,
include/functions_ui.php, include/functions.php, index.php: cleaned
source code style.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6732 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2012-07-03 17:39:37 +02:00
|
|
|
/**
|
|
|
|
* Add a enteprise javascript file to the HTML head tag.
|
|
|
|
*
|
|
|
|
* To make a javascript file available just put it in <ENTERPRISE_DIR>/include/javascript. The
|
|
|
|
* file name should be like "name.js". The "name" would be the value
|
|
|
|
* needed to pass to this function.
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @param string $name Script name to add without the "jquery."
|
|
|
|
* prefix and the ".js"
|
|
|
|
* suffix. Example:
|
|
|
|
* <code>
|
|
|
|
* ui_require_javascript_file ('pandora');
|
|
|
|
* // Would include include/javascript/pandora.js
|
|
|
|
* </code>.
|
|
|
|
* @param boolean $disabled_metaconsole Disabled metaconsole.
|
2012-07-03 Miguel de Dios <miguel.dedios@artica.es>
* ajax.php: added support for the enterprise, because some case
this file can't call enterprise functions.
* godmode/reporting/visual_console_builder.wizard.php,
godmode/reporting/visual_console_builder.php,
godmode/reporting/visual_console_builder.editor.js,
godmode/reporting/visual_console_builder.elements.php,
godmode/reporting/visual_console_builder.editor.php,
godmode/reporting/visual_console_builder.constans.php (delete),
include/functions_visual_map_editor.php,
include/ajax/visual_console_builder.ajax.php,
include/functions_visual_map.php: some parts of code had been
refactored because it is necesary for to add enterprise feature to
Visual map.
* include/constants.php: cleaned source code style and added and
reordened the constants for visual maps.
* include/functions_html.php, include/styles/pandora.css,
include/functions_ui.php, include/functions.php, index.php: cleaned
source code style.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6732 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2012-07-03 17:39:37 +02:00
|
|
|
*
|
2019-01-30 16:18:44 +01:00
|
|
|
* @return boolean True if the file was added. False if the file doesn't exist.
|
2012-07-03 Miguel de Dios <miguel.dedios@artica.es>
* ajax.php: added support for the enterprise, because some case
this file can't call enterprise functions.
* godmode/reporting/visual_console_builder.wizard.php,
godmode/reporting/visual_console_builder.php,
godmode/reporting/visual_console_builder.editor.js,
godmode/reporting/visual_console_builder.elements.php,
godmode/reporting/visual_console_builder.editor.php,
godmode/reporting/visual_console_builder.constans.php (delete),
include/functions_visual_map_editor.php,
include/ajax/visual_console_builder.ajax.php,
include/functions_visual_map.php: some parts of code had been
refactored because it is necesary for to add enterprise feature to
Visual map.
* include/constants.php: cleaned source code style and added and
reordened the constants for visual maps.
* include/functions_html.php, include/styles/pandora.css,
include/functions_ui.php, include/functions.php, index.php: cleaned
source code style.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6732 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2012-07-03 17:39:37 +02:00
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_require_javascript_file_enterprise($name, $disabled_metaconsole=false)
|
|
|
|
{
|
|
|
|
global $config;
|
|
|
|
|
|
|
|
$metaconsole_hack = '';
|
|
|
|
if ($disabled_metaconsole) {
|
|
|
|
$metaconsole_hack = '../../';
|
|
|
|
}
|
|
|
|
|
|
|
|
$filename = $metaconsole_hack.ENTERPRISE_DIR.'/include/javascript/'.$name.'.js';
|
|
|
|
|
|
|
|
if (! isset($config['js'])) {
|
|
|
|
$config['js'] = [];
|
|
|
|
}
|
|
|
|
|
|
|
|
if (isset($config['js'][$name])) {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// We checks two paths because it may fails on enterprise.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (!file_exists($filename)
|
|
|
|
&& !file_exists($config['homedir'].'/'.$filename)
|
|
|
|
) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
$config['js'][$name] = $filename;
|
|
|
|
|
|
|
|
return true;
|
2009-02-19 Esteban Sanchez <estebans@artica.es>
* include/functions_ui.php: Added require_css_file(),
require_javascript_file() and require_jquery_file() to add CSS,
javascript and jQuery files to the header easily without changing
config object. A path parameter is addded to allow the use on
enterprise code.
* include/functions_db.php: Added
get_db_value_filter(), get_db_all_rows_filter() and
process_sql_delete(). Fixed delete_agent() style and use these
functions. Added process_page_head() from functions_ui.php and changed
a bit the config javascript object part.
* include/functions_custom_graphs.php: Get results indexed by id on
get_user_custom_graphs().
* include/functions.php: Moved process_page_head to functions_ui.php.
* godmode/agentes/manage_delete.php: New interface to perform massive
agents deletion.
* godmode/menu.php: Added new option to massive agents deletion.
* general/main_menu.php, godmode/agentes/manage_config.php,
godmode/agentes/module_manager_editor.php,
godmode/agentes/planned_downtime.php,
godmode/alerts/alert_compounds.php, godmode/alerts/alert_list.php,
godmode/alerts/configure_alert_compound.php,
godmode/alerts/configure_alert_template.php,
godmode/reporting/map_builder.php, operation/agentes/networkmap.php,
operation/reporting/reporting_viewer.php,
operation/visual_console/render_view.php: Use new functions in include
CSS and javascript files.
* index.php: Bit of style when printing the header so the HTML can be
readed easily in a editor.
* include/javascript/pandora.js: Added a variable to determine the
enterprise directory.
* include/styles/pandora.css: Added style for manage_delete.php
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1467 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-02-19 17:10:04 +01:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2009-02-19 Esteban Sanchez <estebans@artica.es>
* include/functions_ui.php: Added require_css_file(),
require_javascript_file() and require_jquery_file() to add CSS,
javascript and jQuery files to the header easily without changing
config object. A path parameter is addded to allow the use on
enterprise code.
* include/functions_db.php: Added
get_db_value_filter(), get_db_all_rows_filter() and
process_sql_delete(). Fixed delete_agent() style and use these
functions. Added process_page_head() from functions_ui.php and changed
a bit the config javascript object part.
* include/functions_custom_graphs.php: Get results indexed by id on
get_user_custom_graphs().
* include/functions.php: Moved process_page_head to functions_ui.php.
* godmode/agentes/manage_delete.php: New interface to perform massive
agents deletion.
* godmode/menu.php: Added new option to massive agents deletion.
* general/main_menu.php, godmode/agentes/manage_config.php,
godmode/agentes/module_manager_editor.php,
godmode/agentes/planned_downtime.php,
godmode/alerts/alert_compounds.php, godmode/alerts/alert_list.php,
godmode/alerts/configure_alert_compound.php,
godmode/alerts/configure_alert_template.php,
godmode/reporting/map_builder.php, operation/agentes/networkmap.php,
operation/reporting/reporting_viewer.php,
operation/visual_console/render_view.php: Use new functions in include
CSS and javascript files.
* index.php: Bit of style when printing the header so the HTML can be
readed easily in a editor.
* include/javascript/pandora.js: Added a variable to determine the
enterprise directory.
* include/styles/pandora.css: Added style for manage_delete.php
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1467 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-02-19 17:10:04 +01:00
|
|
|
/**
|
|
|
|
* Add a jQuery file to the HTML head tag.
|
|
|
|
*
|
|
|
|
* To make a jQuery script available just put it in include/javascript. The
|
|
|
|
* file name should be like "jquery.name.js". The "name" would be the value
|
|
|
|
* needed to pass to this function. Notice that this function does not manage
|
|
|
|
* jQuery denpendencies.
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @param string $name Script name to add without the "jquery." prefix and the ".js"
|
|
|
|
* suffix. Example:
|
|
|
|
* <code>
|
|
|
|
* ui_require_jquery_file ('form');
|
|
|
|
* // Would include include/javascript/jquery.form.js
|
|
|
|
* </code>.
|
|
|
|
* @param string $path Path where script is placed.
|
|
|
|
* @param boolean $echo_tag Just echo the script tag of the file.
|
2009-02-19 Esteban Sanchez <estebans@artica.es>
* include/functions_ui.php: Added require_css_file(),
require_javascript_file() and require_jquery_file() to add CSS,
javascript and jQuery files to the header easily without changing
config object. A path parameter is addded to allow the use on
enterprise code.
* include/functions_db.php: Added
get_db_value_filter(), get_db_all_rows_filter() and
process_sql_delete(). Fixed delete_agent() style and use these
functions. Added process_page_head() from functions_ui.php and changed
a bit the config javascript object part.
* include/functions_custom_graphs.php: Get results indexed by id on
get_user_custom_graphs().
* include/functions.php: Moved process_page_head to functions_ui.php.
* godmode/agentes/manage_delete.php: New interface to perform massive
agents deletion.
* godmode/menu.php: Added new option to massive agents deletion.
* general/main_menu.php, godmode/agentes/manage_config.php,
godmode/agentes/module_manager_editor.php,
godmode/agentes/planned_downtime.php,
godmode/alerts/alert_compounds.php, godmode/alerts/alert_list.php,
godmode/alerts/configure_alert_compound.php,
godmode/alerts/configure_alert_template.php,
godmode/reporting/map_builder.php, operation/agentes/networkmap.php,
operation/reporting/reporting_viewer.php,
operation/visual_console/render_view.php: Use new functions in include
CSS and javascript files.
* index.php: Bit of style when printing the header so the HTML can be
readed easily in a editor.
* include/javascript/pandora.js: Added a variable to determine the
enterprise directory.
* include/styles/pandora.css: Added style for manage_delete.php
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1467 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-02-19 17:10:04 +01:00
|
|
|
*
|
2019-01-30 16:18:44 +01:00
|
|
|
* @return boolean True if the file was added. False if the file doesn't exist.
|
2009-02-19 Esteban Sanchez <estebans@artica.es>
* include/functions_ui.php: Added require_css_file(),
require_javascript_file() and require_jquery_file() to add CSS,
javascript and jQuery files to the header easily without changing
config object. A path parameter is addded to allow the use on
enterprise code.
* include/functions_db.php: Added
get_db_value_filter(), get_db_all_rows_filter() and
process_sql_delete(). Fixed delete_agent() style and use these
functions. Added process_page_head() from functions_ui.php and changed
a bit the config javascript object part.
* include/functions_custom_graphs.php: Get results indexed by id on
get_user_custom_graphs().
* include/functions.php: Moved process_page_head to functions_ui.php.
* godmode/agentes/manage_delete.php: New interface to perform massive
agents deletion.
* godmode/menu.php: Added new option to massive agents deletion.
* general/main_menu.php, godmode/agentes/manage_config.php,
godmode/agentes/module_manager_editor.php,
godmode/agentes/planned_downtime.php,
godmode/alerts/alert_compounds.php, godmode/alerts/alert_list.php,
godmode/alerts/configure_alert_compound.php,
godmode/alerts/configure_alert_template.php,
godmode/reporting/map_builder.php, operation/agentes/networkmap.php,
operation/reporting/reporting_viewer.php,
operation/visual_console/render_view.php: Use new functions in include
CSS and javascript files.
* index.php: Bit of style when printing the header so the HTML can be
readed easily in a editor.
* include/javascript/pandora.js: Added a variable to determine the
enterprise directory.
* include/styles/pandora.css: Added style for manage_delete.php
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1467 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-02-19 17:10:04 +01:00
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_require_jquery_file($name, $path='include/javascript/', $echo_tag=false)
|
|
|
|
{
|
|
|
|
global $config;
|
|
|
|
|
|
|
|
$filename = $path.'jquery.'.$name.'.js';
|
|
|
|
|
|
|
|
if ($echo_tag) {
|
|
|
|
echo '<script type="text/javascript" src="'.ui_get_full_url(false, false, false, false).$filename.'"></script>';
|
2019-05-28 10:47:31 +02:00
|
|
|
return null;
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
if (! isset($config['jquery'])) {
|
|
|
|
$config['jquery'] = [];
|
|
|
|
}
|
|
|
|
|
|
|
|
if (isset($config['jquery'][$name])) {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// We checks two paths because it may fails on enterprise.
|
|
|
|
if (! file_exists($filename)
|
|
|
|
&& ! file_exists($config['homedir'].'/'.$filename)
|
|
|
|
) {
|
2019-01-30 16:18:44 +01:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
$config['jquery'][$name] = $filename;
|
|
|
|
|
|
|
|
return true;
|
2009-02-19 Esteban Sanchez <estebans@artica.es>
* include/functions_ui.php: Added require_css_file(),
require_javascript_file() and require_jquery_file() to add CSS,
javascript and jQuery files to the header easily without changing
config object. A path parameter is addded to allow the use on
enterprise code.
* include/functions_db.php: Added
get_db_value_filter(), get_db_all_rows_filter() and
process_sql_delete(). Fixed delete_agent() style and use these
functions. Added process_page_head() from functions_ui.php and changed
a bit the config javascript object part.
* include/functions_custom_graphs.php: Get results indexed by id on
get_user_custom_graphs().
* include/functions.php: Moved process_page_head to functions_ui.php.
* godmode/agentes/manage_delete.php: New interface to perform massive
agents deletion.
* godmode/menu.php: Added new option to massive agents deletion.
* general/main_menu.php, godmode/agentes/manage_config.php,
godmode/agentes/module_manager_editor.php,
godmode/agentes/planned_downtime.php,
godmode/alerts/alert_compounds.php, godmode/alerts/alert_list.php,
godmode/alerts/configure_alert_compound.php,
godmode/alerts/configure_alert_template.php,
godmode/reporting/map_builder.php, operation/agentes/networkmap.php,
operation/reporting/reporting_viewer.php,
operation/visual_console/render_view.php: Use new functions in include
CSS and javascript files.
* index.php: Bit of style when printing the header so the HTML can be
readed easily in a editor.
* include/javascript/pandora.js: Added a variable to determine the
enterprise directory.
* include/styles/pandora.css: Added style for manage_delete.php
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1467 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-02-19 17:10:04 +01:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2009-02-19 Esteban Sanchez <estebans@artica.es>
* include/functions_ui.php: Added require_css_file(),
require_javascript_file() and require_jquery_file() to add CSS,
javascript and jQuery files to the header easily without changing
config object. A path parameter is addded to allow the use on
enterprise code.
* include/functions_db.php: Added
get_db_value_filter(), get_db_all_rows_filter() and
process_sql_delete(). Fixed delete_agent() style and use these
functions. Added process_page_head() from functions_ui.php and changed
a bit the config javascript object part.
* include/functions_custom_graphs.php: Get results indexed by id on
get_user_custom_graphs().
* include/functions.php: Moved process_page_head to functions_ui.php.
* godmode/agentes/manage_delete.php: New interface to perform massive
agents deletion.
* godmode/menu.php: Added new option to massive agents deletion.
* general/main_menu.php, godmode/agentes/manage_config.php,
godmode/agentes/module_manager_editor.php,
godmode/agentes/planned_downtime.php,
godmode/alerts/alert_compounds.php, godmode/alerts/alert_list.php,
godmode/alerts/configure_alert_compound.php,
godmode/alerts/configure_alert_template.php,
godmode/reporting/map_builder.php, operation/agentes/networkmap.php,
operation/reporting/reporting_viewer.php,
operation/visual_console/render_view.php: Use new functions in include
CSS and javascript files.
* index.php: Bit of style when printing the header so the HTML can be
readed easily in a editor.
* include/javascript/pandora.js: Added a variable to determine the
enterprise directory.
* include/styles/pandora.css: Added style for manage_delete.php
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1467 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-02-19 17:10:04 +01:00
|
|
|
/**
|
|
|
|
* Callback function to add stuff to the head. This allows us to add scripts
|
|
|
|
* to the header after the fact as well as extensive validation.
|
|
|
|
*
|
|
|
|
* DO NOT CALL print_f, echo, ob_start, ob_flush, ob_end functions here.
|
|
|
|
*
|
|
|
|
* To add css just put them in include/styles and then add them to the
|
|
|
|
* $config['css'] array
|
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @param string $string Callback will fill this with the current buffer.
|
|
|
|
* @param mixed $bitfield Callback will fill this with a bitfield (see ob_start).
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
2016-03-30 13:05:08 +02:00
|
|
|
* @return string String to return to the browser
|
2009-02-19 Esteban Sanchez <estebans@artica.es>
* include/functions_ui.php: Added require_css_file(),
require_javascript_file() and require_jquery_file() to add CSS,
javascript and jQuery files to the header easily without changing
config object. A path parameter is addded to allow the use on
enterprise code.
* include/functions_db.php: Added
get_db_value_filter(), get_db_all_rows_filter() and
process_sql_delete(). Fixed delete_agent() style and use these
functions. Added process_page_head() from functions_ui.php and changed
a bit the config javascript object part.
* include/functions_custom_graphs.php: Get results indexed by id on
get_user_custom_graphs().
* include/functions.php: Moved process_page_head to functions_ui.php.
* godmode/agentes/manage_delete.php: New interface to perform massive
agents deletion.
* godmode/menu.php: Added new option to massive agents deletion.
* general/main_menu.php, godmode/agentes/manage_config.php,
godmode/agentes/module_manager_editor.php,
godmode/agentes/planned_downtime.php,
godmode/alerts/alert_compounds.php, godmode/alerts/alert_list.php,
godmode/alerts/configure_alert_compound.php,
godmode/alerts/configure_alert_template.php,
godmode/reporting/map_builder.php, operation/agentes/networkmap.php,
operation/reporting/reporting_viewer.php,
operation/visual_console/render_view.php: Use new functions in include
CSS and javascript files.
* index.php: Bit of style when printing the header so the HTML can be
readed easily in a editor.
* include/javascript/pandora.js: Added a variable to determine the
enterprise directory.
* include/styles/pandora.css: Added style for manage_delete.php
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1467 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-02-19 17:10:04 +01:00
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_process_page_head($string, $bitfield)
|
|
|
|
{
|
|
|
|
global $config;
|
|
|
|
global $vc_public_view;
|
|
|
|
|
|
|
|
if (isset($config['ignore_callback']) && $config['ignore_callback'] == true) {
|
2019-05-28 10:47:31 +02:00
|
|
|
return '';
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
$output = '';
|
|
|
|
|
|
|
|
$config_refr = -1;
|
|
|
|
if (isset($config['refr'])) {
|
|
|
|
$config_refr = $config['refr'];
|
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// If user is logged or displayed view is the public view of visual console.
|
2019-01-30 16:18:44 +01:00
|
|
|
if ($config_refr > 0
|
|
|
|
&& (isset($config['id_user']) || $vc_public_view == 1)
|
|
|
|
) {
|
|
|
|
if ($config['enable_refr']
|
|
|
|
|| $_GET['sec2'] == 'operation/agentes/estado_agente'
|
|
|
|
|| $_GET['sec2'] == 'operation/agentes/tactical'
|
|
|
|
|| $_GET['sec2'] == 'operation/agentes/group_view'
|
|
|
|
|| $_GET['sec2'] == 'operation/events/events'
|
|
|
|
|| $_GET['sec2'] == 'operation/snmpconsole/snmp_view'
|
|
|
|
|| $_GET['sec2'] == 'enterprise/dashboard/main_dashboard'
|
|
|
|
) {
|
|
|
|
$query = ui_get_url_refresh(false, false);
|
2019-05-28 10:47:31 +02:00
|
|
|
|
|
|
|
/*
|
|
|
|
* $output .= '<meta http-equiv="refresh" content="' .
|
|
|
|
* $config_refr . '; URL=' . $query . '" />';
|
|
|
|
*/
|
|
|
|
|
|
|
|
// End.
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$output .= "\n\t";
|
|
|
|
$output .= '<title>'.get_product_name().' - '.__('the Flexible Monitoring System').'</title>
|
2014-03-13 12:00:12 +01:00
|
|
|
<meta http-equiv="expires" content="never" />
|
|
|
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
|
|
|
<meta http-equiv="Content-Style-Type" content="text/css" />
|
|
|
|
<meta name="resource-type" content="document" />
|
|
|
|
<meta name="distribution" content="global" />
|
2019-01-30 16:18:44 +01:00
|
|
|
<meta name="author" content="'.get_copyright_notice().'" />
|
|
|
|
<meta name="copyright" content="(c) '.get_copyright_notice().'" />
|
2016-09-28 13:26:58 +02:00
|
|
|
<meta name="robots" content="index, follow" />';
|
2019-01-30 16:18:44 +01:00
|
|
|
$output .= '<link rel="icon" href="'.ui_get_favicon().'" type="image/ico" />';
|
|
|
|
$output .= '
|
|
|
|
<link rel="shortcut icon" href="'.ui_get_favicon().'" type="image/x-icon" />
|
2014-03-13 12:00:12 +01:00
|
|
|
<link rel="alternate" href="operation/events/events_rss.php" title="Pandora RSS Feed" type="application/rss+xml" />';
|
2019-01-30 16:18:44 +01:00
|
|
|
|
|
|
|
if ($config['language'] != 'en') {
|
2019-05-28 10:47:31 +02:00
|
|
|
// Load translated strings - load them last so they overload all
|
|
|
|
// the objects.
|
2019-01-30 16:18:44 +01:00
|
|
|
ui_require_javascript_file('time_'.$config['language']);
|
|
|
|
ui_require_javascript_file('date'.$config['language']);
|
|
|
|
ui_require_javascript_file('countdown_'.$config['language']);
|
|
|
|
}
|
|
|
|
|
|
|
|
$output .= "\n\t";
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
/*
|
|
|
|
* Load CSS
|
|
|
|
*/
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if (empty($config['css'])) {
|
|
|
|
$config['css'] = [];
|
|
|
|
}
|
|
|
|
|
|
|
|
$login_ok = true;
|
|
|
|
if (! isset($config['id_user']) && isset($_GET['login'])) {
|
2019-05-28 10:47:31 +02:00
|
|
|
if (isset($_POST['nick']) && isset($_POST['pass'])) {
|
2019-01-30 16:18:44 +01:00
|
|
|
$nick = get_parameter_post('nick');
|
2019-05-28 10:47:31 +02:00
|
|
|
// This is the variable with the login.
|
2019-01-30 16:18:44 +01:00
|
|
|
$pass = get_parameter_post('pass');
|
2019-05-28 10:47:31 +02:00
|
|
|
// This is the variable with the password.
|
2019-01-30 16:18:44 +01:00
|
|
|
$nick = db_escape_string_sql($nick);
|
|
|
|
$pass = db_escape_string_sql($pass);
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// Process_user_login is a virtual function which should be defined
|
|
|
|
// in each auth file.
|
|
|
|
// It accepts username and password. The rest should be internal to
|
|
|
|
// the auth file.
|
|
|
|
// The auth file can set $config["auth_error"] to an informative
|
|
|
|
// error output or reference their internal error messages to it
|
|
|
|
// process_user_login should return false in case of errors or
|
|
|
|
// invalid login, the nickname if correct.
|
2019-01-30 16:18:44 +01:00
|
|
|
$nick_in_db = process_user_login($nick, $pass);
|
|
|
|
|
|
|
|
if ($nick_in_db === false) {
|
|
|
|
$login_ok = false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// First, if user has assigned a skin then try to use css files of
|
2019-05-28 10:47:31 +02:00
|
|
|
// skin subdirectory.
|
2019-01-30 16:18:44 +01:00
|
|
|
$isFunctionSkins = enterprise_include_once('include/functions_skins.php');
|
|
|
|
if (!$login_ok) {
|
|
|
|
if ($isFunctionSkins !== ENTERPRISE_NOT_HOOK) {
|
|
|
|
enterprise_hook('skins_cleanup');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$exists_css = false;
|
2019-05-28 10:47:31 +02:00
|
|
|
if ($login_ok && $isFunctionSkins !== ENTERPRISE_NOT_HOOK) {
|
|
|
|
// Checks if user's skin is available.
|
2019-01-30 16:18:44 +01:00
|
|
|
$exists_skin = enterprise_hook('skins_is_path_set');
|
|
|
|
if ($exists_skin) {
|
|
|
|
$skin_path = enterprise_hook('skins_get_skin_path');
|
|
|
|
$skin_styles = themes_get_css($skin_path.'include/styles/');
|
|
|
|
$exists_css = !empty($skin_styles);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// Add the jquery UI styles CSS.
|
2019-02-05 09:23:53 +01:00
|
|
|
$config['css']['jquery-UI'] = 'include/styles/js/jquery-ui.min.css';
|
2019-06-03 11:55:56 +02:00
|
|
|
$config['css']['jquery-UI-custom'] = 'include/styles/js/jquery-ui_custom.css';
|
2019-05-28 10:47:31 +02:00
|
|
|
// Add the dialog styles CSS.
|
2019-01-30 16:18:44 +01:00
|
|
|
$config['css']['dialog'] = 'include/styles/dialog.css';
|
2019-05-28 10:47:31 +02:00
|
|
|
// Add the dialog styles CSS.
|
2019-02-05 09:23:53 +01:00
|
|
|
$config['css']['dialog'] = 'include/styles/js/introjs.css';
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// If skin's css files exists then add them.
|
2019-01-30 16:18:44 +01:00
|
|
|
if ($exists_css) {
|
|
|
|
foreach ($skin_styles as $filename => $name) {
|
|
|
|
$style = substr($filename, 0, (strlen($filename) - 4));
|
|
|
|
$config['css'][$style] = $skin_path.'include/styles/'.$filename;
|
|
|
|
}
|
2019-05-28 10:47:31 +02:00
|
|
|
} else {
|
|
|
|
// Otherwise assign default and user's css.
|
|
|
|
// User style should go last so it can rewrite common styles.
|
2019-01-30 16:18:44 +01:00
|
|
|
$config['css'] = array_merge(
|
|
|
|
[
|
|
|
|
'common' => 'include/styles/common.css',
|
|
|
|
'menu' => 'include/styles/menu.css',
|
2019-06-03 10:46:52 +02:00
|
|
|
'tables' => 'include/styles/tables.css',
|
2019-01-30 16:18:44 +01:00
|
|
|
$config['style'] => 'include/styles/'.$config['style'].'.css',
|
|
|
|
],
|
|
|
|
$config['css']
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// We can't load empty and we loaded (conditionally) ie.
|
2019-01-30 16:18:44 +01:00
|
|
|
$loaded = [
|
|
|
|
'',
|
|
|
|
'ie',
|
|
|
|
];
|
|
|
|
|
|
|
|
foreach ($config['css'] as $name => $filename) {
|
|
|
|
if (in_array($name, $loaded)) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
|
|
|
array_push($loaded, $name);
|
|
|
|
|
|
|
|
$url_css = ui_get_full_url($filename);
|
|
|
|
$output .= '<link rel="stylesheet" href="'.$url_css.'" type="text/css" />'."\n\t";
|
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
/*
|
|
|
|
* End load CSS
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Load jQuery
|
|
|
|
*/
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if (empty($config['jquery'])) {
|
|
|
|
$config['jquery'] = [];
|
2019-05-28 10:47:31 +02:00
|
|
|
// If it's empty, false or not init set array to empty just in case.
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// Pandora specific jquery should go first.
|
2019-01-30 16:18:44 +01:00
|
|
|
$black_list_pages_old_jquery = ['operation/gis_maps/index'];
|
|
|
|
if (in_array(get_parameter('sec2'), $black_list_pages_old_jquery)) {
|
|
|
|
$config['jquery'] = array_merge(
|
|
|
|
[
|
|
|
|
'jquery' => 'include/javascript/jquery.js',
|
|
|
|
'ui' => 'include/javascript/jquery.ui.core.js',
|
|
|
|
'dialog' => 'include/javascript/jquery.ui.dialog.js',
|
|
|
|
'pandora' => 'include/javascript/jquery.pandora.js',
|
|
|
|
],
|
|
|
|
$config['jquery']
|
|
|
|
);
|
|
|
|
} else {
|
|
|
|
$config['jquery'] = array_merge(
|
|
|
|
[
|
|
|
|
'jquery' => 'include/javascript/jquery-3.3.1.min.js',
|
|
|
|
'pandora' => 'include/javascript/jquery.pandora.js',
|
|
|
|
'jquery-ui' => 'include/javascript/jquery-ui.min.js',
|
|
|
|
],
|
|
|
|
$config['jquery']
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// Include the datapicker language if exists.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (file_exists('include/languages/datepicker/jquery.ui.datepicker-'.$config['language'].'.js')) {
|
|
|
|
$config['jquery']['datepicker_language'] = 'include/languages/datepicker/jquery.ui.datepicker-'.$config['language'].'.js';
|
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// Include countdown library.
|
2019-01-30 16:18:44 +01:00
|
|
|
$config['jquery']['countdown'] = 'include/javascript/jquery.countdown.js';
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// Then add each script as necessary.
|
2019-01-30 16:18:44 +01:00
|
|
|
$loaded = [''];
|
|
|
|
foreach ($config['jquery'] as $name => $filename) {
|
|
|
|
if (in_array($name, $loaded)) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
|
|
|
array_push($loaded, $name);
|
|
|
|
|
|
|
|
$url_js = ui_get_full_url($filename);
|
|
|
|
$output .= '<script type="text/javascript" src="'.$url_js.'"></script>'."\n\t";
|
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
/*
|
|
|
|
* End load JQuery
|
|
|
|
*/
|
|
|
|
|
2019-06-06 17:50:47 +02:00
|
|
|
/*
|
|
|
|
* Load JS
|
|
|
|
*/
|
|
|
|
|
|
|
|
if (empty($config['js'])) {
|
|
|
|
$config['js'] = [];
|
|
|
|
// If it's empty, false or not init set array to empty just in case.
|
|
|
|
}
|
|
|
|
|
|
|
|
// Pandora specific JavaScript should go first.
|
|
|
|
$config['js'] = array_merge(['pandora' => 'include/javascript/pandora.js'], $config['js']);
|
|
|
|
// Load base64 javascript library.
|
|
|
|
$config['js']['base64'] = 'include/javascript/encode_decode_base64.js';
|
|
|
|
// Load webchat javascript library.
|
|
|
|
$config['js']['webchat'] = 'include/javascript/webchat.js';
|
|
|
|
// Load qrcode library.
|
|
|
|
$config['js']['qrcode'] = 'include/javascript/qrcode.js';
|
|
|
|
// Load intro.js library (for bubbles and clippy).
|
|
|
|
$config['js']['intro'] = 'include/javascript/intro.js';
|
|
|
|
$config['js']['clippy'] = 'include/javascript/clippy.js';
|
|
|
|
// Load Underscore.js library.
|
|
|
|
$config['js']['underscore'] = 'include/javascript/underscore-min.js';
|
|
|
|
|
|
|
|
// Load other javascript.
|
|
|
|
// We can't load empty.
|
|
|
|
$loaded = [''];
|
|
|
|
foreach ($config['js'] as $name => $filename) {
|
|
|
|
if (in_array($name, $loaded)) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
|
|
|
array_push($loaded, $name);
|
|
|
|
|
|
|
|
$url_js = ui_get_full_url($filename);
|
|
|
|
$output .= '<script type="text/javascript" src="'.$url_js.'"></script>'."\n\t";
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* End load JS
|
|
|
|
*/
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
include_once __DIR__.'/graphs/functions_flot.php';
|
|
|
|
$output .= include_javascript_dependencies_flot_graph(true);
|
|
|
|
|
|
|
|
$output .= '<!--[if gte IE 6]>
|
2012-09-06 Miguel de Dios <miguel.dedios@artica.es>
* general/header.php, general/login_page.php,
godmode/setup/setup.php, include/functions_ui.php,
include/functions_graph.php, include/functions_html.php,
include/graphs/fgraph.php, include/graphs/functions_pchart.php,
include/graphs/functions_flot.php, include/functions_reporting.php,
include/functions_visual_map.php, include/functions_config.php,
operation/reporting/reporting_viewer.php,
operation/visual_console/render_view.php,
operation/agentes/tactical.php, operation/menu.php,
operation/events/events.php: added the feature to set a
public url for inverse proxy or for example mod_proxy of Apache.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6936 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2012-09-06 19:01:22 +02:00
|
|
|
<link rel="stylesheet" href="include/styles/ie.css" type="text/css"/>
|
|
|
|
<![endif]-->';
|
2018-10-19 11:31:06 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
$output .= $string;
|
2018-10-19 11:31:06 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
return $output;
|
2009-02-19 Esteban Sanchez <estebans@artica.es>
* include/functions_ui.php: Added require_css_file(),
require_javascript_file() and require_jquery_file() to add CSS,
javascript and jQuery files to the header easily without changing
config object. A path parameter is addded to allow the use on
enterprise code.
* include/functions_db.php: Added
get_db_value_filter(), get_db_all_rows_filter() and
process_sql_delete(). Fixed delete_agent() style and use these
functions. Added process_page_head() from functions_ui.php and changed
a bit the config javascript object part.
* include/functions_custom_graphs.php: Get results indexed by id on
get_user_custom_graphs().
* include/functions.php: Moved process_page_head to functions_ui.php.
* godmode/agentes/manage_delete.php: New interface to perform massive
agents deletion.
* godmode/menu.php: Added new option to massive agents deletion.
* general/main_menu.php, godmode/agentes/manage_config.php,
godmode/agentes/module_manager_editor.php,
godmode/agentes/planned_downtime.php,
godmode/alerts/alert_compounds.php, godmode/alerts/alert_list.php,
godmode/alerts/configure_alert_compound.php,
godmode/alerts/configure_alert_template.php,
godmode/reporting/map_builder.php, operation/agentes/networkmap.php,
operation/reporting/reporting_viewer.php,
operation/visual_console/render_view.php: Use new functions in include
CSS and javascript files.
* index.php: Bit of style when printing the header so the HTML can be
readed easily in a editor.
* include/javascript/pandora.js: Added a variable to determine the
enterprise directory.
* include/styles/pandora.css: Added style for manage_delete.php
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1467 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-02-19 17:10:04 +01:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2009-02-19 Esteban Sanchez <estebans@artica.es>
* include/functions_ui.php: Added require_css_file(),
require_javascript_file() and require_jquery_file() to add CSS,
javascript and jQuery files to the header easily without changing
config object. A path parameter is addded to allow the use on
enterprise code.
* include/functions_db.php: Added
get_db_value_filter(), get_db_all_rows_filter() and
process_sql_delete(). Fixed delete_agent() style and use these
functions. Added process_page_head() from functions_ui.php and changed
a bit the config javascript object part.
* include/functions_custom_graphs.php: Get results indexed by id on
get_user_custom_graphs().
* include/functions.php: Moved process_page_head to functions_ui.php.
* godmode/agentes/manage_delete.php: New interface to perform massive
agents deletion.
* godmode/menu.php: Added new option to massive agents deletion.
* general/main_menu.php, godmode/agentes/manage_config.php,
godmode/agentes/module_manager_editor.php,
godmode/agentes/planned_downtime.php,
godmode/alerts/alert_compounds.php, godmode/alerts/alert_list.php,
godmode/alerts/configure_alert_compound.php,
godmode/alerts/configure_alert_template.php,
godmode/reporting/map_builder.php, operation/agentes/networkmap.php,
operation/reporting/reporting_viewer.php,
operation/visual_console/render_view.php: Use new functions in include
CSS and javascript files.
* index.php: Bit of style when printing the header so the HTML can be
readed easily in a editor.
* include/javascript/pandora.js: Added a variable to determine the
enterprise directory.
* include/styles/pandora.css: Added style for manage_delete.php
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1467 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-02-19 17:10:04 +01:00
|
|
|
/**
|
|
|
|
* Callback function to add stuff to the body
|
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @param string $string Callback will fill this with the current buffer.
|
|
|
|
* @param mixed $bitfield Callback will fill this with a bitfield (see ob_start).
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
2011-03-02 22:56:48 +01:00
|
|
|
* @return string String to return to the browser
|
2009-02-19 Esteban Sanchez <estebans@artica.es>
* include/functions_ui.php: Added require_css_file(),
require_javascript_file() and require_jquery_file() to add CSS,
javascript and jQuery files to the header easily without changing
config object. A path parameter is addded to allow the use on
enterprise code.
* include/functions_db.php: Added
get_db_value_filter(), get_db_all_rows_filter() and
process_sql_delete(). Fixed delete_agent() style and use these
functions. Added process_page_head() from functions_ui.php and changed
a bit the config javascript object part.
* include/functions_custom_graphs.php: Get results indexed by id on
get_user_custom_graphs().
* include/functions.php: Moved process_page_head to functions_ui.php.
* godmode/agentes/manage_delete.php: New interface to perform massive
agents deletion.
* godmode/menu.php: Added new option to massive agents deletion.
* general/main_menu.php, godmode/agentes/manage_config.php,
godmode/agentes/module_manager_editor.php,
godmode/agentes/planned_downtime.php,
godmode/alerts/alert_compounds.php, godmode/alerts/alert_list.php,
godmode/alerts/configure_alert_compound.php,
godmode/alerts/configure_alert_template.php,
godmode/reporting/map_builder.php, operation/agentes/networkmap.php,
operation/reporting/reporting_viewer.php,
operation/visual_console/render_view.php: Use new functions in include
CSS and javascript files.
* index.php: Bit of style when printing the header so the HTML can be
readed easily in a editor.
* include/javascript/pandora.js: Added a variable to determine the
enterprise directory.
* include/styles/pandora.css: Added style for manage_delete.php
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1467 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-02-19 17:10:04 +01:00
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_process_page_body($string, $bitfield)
|
|
|
|
{
|
|
|
|
global $config;
|
|
|
|
|
|
|
|
if (isset($config['ignore_callback'])
|
|
|
|
&& $config['ignore_callback'] == true
|
|
|
|
) {
|
2019-05-28 10:47:31 +02:00
|
|
|
return null;
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// Show custom background.
|
|
|
|
$output = '<body'.(($config['pure']) ? ' class="pure"' : '').'>';
|
2019-01-30 16:18:44 +01:00
|
|
|
|
|
|
|
$output .= $string;
|
|
|
|
|
|
|
|
$output .= '</body>';
|
|
|
|
|
|
|
|
return $output;
|
2009-02-19 Esteban Sanchez <estebans@artica.es>
* include/functions_ui.php: Added require_css_file(),
require_javascript_file() and require_jquery_file() to add CSS,
javascript and jQuery files to the header easily without changing
config object. A path parameter is addded to allow the use on
enterprise code.
* include/functions_db.php: Added
get_db_value_filter(), get_db_all_rows_filter() and
process_sql_delete(). Fixed delete_agent() style and use these
functions. Added process_page_head() from functions_ui.php and changed
a bit the config javascript object part.
* include/functions_custom_graphs.php: Get results indexed by id on
get_user_custom_graphs().
* include/functions.php: Moved process_page_head to functions_ui.php.
* godmode/agentes/manage_delete.php: New interface to perform massive
agents deletion.
* godmode/menu.php: Added new option to massive agents deletion.
* general/main_menu.php, godmode/agentes/manage_config.php,
godmode/agentes/module_manager_editor.php,
godmode/agentes/planned_downtime.php,
godmode/alerts/alert_compounds.php, godmode/alerts/alert_list.php,
godmode/alerts/configure_alert_compound.php,
godmode/alerts/configure_alert_template.php,
godmode/reporting/map_builder.php, operation/agentes/networkmap.php,
operation/reporting/reporting_viewer.php,
operation/visual_console/render_view.php: Use new functions in include
CSS and javascript files.
* index.php: Bit of style when printing the header so the HTML can be
readed easily in a editor.
* include/javascript/pandora.js: Added a variable to determine the
enterprise directory.
* include/styles/pandora.css: Added style for manage_delete.php
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1467 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-02-19 17:10:04 +01:00
|
|
|
}
|
2009-02-20 22:48:09 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2016-03-30 13:05:08 +02:00
|
|
|
/**
|
2009-02-20 22:48:09 +01:00
|
|
|
* Prints a pagination menu to browse into a collection of data.
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
|
|
|
* @param integer $count Number of elements in the collection.
|
|
|
|
* @param string $url URL of the pagination links. It must include all form
|
|
|
|
* values as GET form.
|
|
|
|
* @param integer $offset Current offset for the pagination. Default value would be
|
2019-05-28 10:47:31 +02:00
|
|
|
* taken from $_REQUEST['offset'].
|
2019-01-30 16:18:44 +01:00
|
|
|
* @param integer $pagination Current pagination size. If a user requests a larger
|
2019-05-28 10:47:31 +02:00
|
|
|
* pagination than config["block_size"].
|
|
|
|
* @param boolean $return Whether to return or print this.
|
2019-01-30 16:18:44 +01:00
|
|
|
* @param string $offset_name The name of parameter for the offset.
|
|
|
|
* @param boolean $print_total_items Show the text with the total items. By default true.
|
2019-05-28 10:47:31 +02:00
|
|
|
* @param mixed $other_class Other_class.
|
|
|
|
* @param mixed $script Script.
|
|
|
|
* @param mixed $parameter_script Parameter_script.
|
2019-01-30 16:18:44 +01:00
|
|
|
* @param string $set_id Set id of div.
|
2009-02-20 22:48:09 +01:00
|
|
|
*
|
|
|
|
* @return string The pagination div or nothing if no pagination needs to be done
|
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_pagination(
|
|
|
|
$count,
|
|
|
|
$url=false,
|
|
|
|
$offset=0,
|
|
|
|
$pagination=0,
|
|
|
|
$return=false,
|
|
|
|
$offset_name='offset',
|
|
|
|
$print_total_items=true,
|
|
|
|
$other_class='',
|
|
|
|
$script='',
|
|
|
|
$parameter_script=[
|
|
|
|
'count' => '',
|
|
|
|
'offset' => 'offset_param',
|
|
|
|
],
|
|
|
|
$set_id=''
|
|
|
|
) {
|
|
|
|
global $config;
|
|
|
|
|
|
|
|
if (empty($pagination)) {
|
|
|
|
$pagination = (int) $config['block_size'];
|
|
|
|
}
|
|
|
|
|
|
|
|
if (is_string($offset)) {
|
|
|
|
$offset_name = $offset;
|
|
|
|
$offset = (int) get_parameter($offset_name);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (empty($offset)) {
|
|
|
|
$offset = (int) get_parameter($offset_name);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (empty($url)) {
|
|
|
|
$url = ui_get_url_refresh([$offset_name => false]);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!empty($set_id)) {
|
2019-05-28 10:47:31 +02:00
|
|
|
$set_id = " id = '".$set_id."'";
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// Pagination links for users include delete, create and other params,
|
|
|
|
// now not use these params, and not retry the previous action when go to
|
|
|
|
// pagination link.
|
2019-01-30 16:18:44 +01:00
|
|
|
$remove = [
|
|
|
|
'user_del',
|
|
|
|
'disable_user',
|
|
|
|
'delete_user',
|
|
|
|
];
|
|
|
|
$url = explode('&', $url);
|
|
|
|
|
|
|
|
$finalUrl = [];
|
|
|
|
foreach ($url as $key => $value) {
|
2019-05-28 10:47:31 +02:00
|
|
|
if (strpos($value, $remove[0]) === false
|
|
|
|
&& strpos($value, $remove[1]) === false
|
|
|
|
&& strpos($value, $remove[2]) === false
|
|
|
|
) {
|
2019-01-30 16:18:44 +01:00
|
|
|
array_push($finalUrl, $value);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$url = implode('&', $finalUrl);
|
|
|
|
|
|
|
|
/*
|
|
|
|
URL passed render links with some parameter
|
|
|
|
&offset - Offset records passed to next page
|
|
|
|
&counter - Number of items to be blocked
|
|
|
|
Pagination needs $url to build the base URL to render links, its a base url, like
|
|
|
|
" http://pandora/index.php?sec=godmode&sec2=godmode/admin_access_logs "
|
|
|
|
*/
|
2019-05-28 10:47:31 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
$block_limit = PAGINATION_BLOCKS_LIMIT;
|
2019-05-28 10:47:31 +02:00
|
|
|
// Visualize only $block_limit blocks.
|
2019-01-30 16:18:44 +01:00
|
|
|
if ($count <= $pagination) {
|
|
|
|
if ($print_total_items) {
|
2019-05-28 10:47:31 +02:00
|
|
|
$output = "<div class='pagination ".$other_class."' ".$set_id.'>';
|
|
|
|
// Show the count of items.
|
2019-03-27 17:03:55 +01:00
|
|
|
$output .= '<div class="total_pages">'.sprintf(__('Total items: %s'), $count).'</div>';
|
2019-05-28 10:47:31 +02:00
|
|
|
// End div and layout.
|
2019-01-30 16:18:44 +01:00
|
|
|
$output .= '</div>';
|
|
|
|
|
|
|
|
if ($return === false) {
|
|
|
|
echo $output;
|
|
|
|
}
|
|
|
|
|
|
|
|
return $output;
|
|
|
|
}
|
|
|
|
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
$number_of_pages = ceil($count / $pagination);
|
|
|
|
$actual_page = floor($offset / $pagination);
|
|
|
|
$ini_page = (floor($actual_page / $block_limit) * $block_limit);
|
|
|
|
$end_page = ($ini_page + $block_limit - 1);
|
|
|
|
if ($end_page > $number_of_pages) {
|
|
|
|
$end_page = ($number_of_pages - 1);
|
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
$output = "<div class='pagination ".$other_class."' ".$set_id.'>';
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// Show the count of items.
|
2019-01-30 16:18:44 +01:00
|
|
|
if ($print_total_items) {
|
2019-03-27 17:03:55 +01:00
|
|
|
$output .= '<div class="total_pages">'.sprintf(__('Total items: %s'), $count).'</div>';
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
|
|
|
|
2019-03-27 17:03:55 +01:00
|
|
|
$output .= "<div class='total_number'>";
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// Show GOTO FIRST PAGE button.
|
2019-01-30 16:18:44 +01:00
|
|
|
if ($number_of_pages > $block_limit) {
|
|
|
|
if (!empty($script)) {
|
|
|
|
$script_modified = $script;
|
|
|
|
$script_modified = str_replace(
|
|
|
|
$parameter_script['count'],
|
|
|
|
$count,
|
|
|
|
$script_modified
|
|
|
|
);
|
|
|
|
$script_modified = str_replace(
|
|
|
|
$parameter_script['offset'],
|
|
|
|
0,
|
|
|
|
$script_modified
|
|
|
|
);
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
$output .= "<a class='pagination-arrows ".$other_class." offset_0'
|
|
|
|
href='javascript: ".$script_modified.";'>".html_print_image('images/go_first_g.png', true, ['class' => 'bot']).'</a>';
|
2019-01-30 16:18:44 +01:00
|
|
|
} else {
|
2019-05-28 10:47:31 +02:00
|
|
|
$output .= "<a class='pagination-arrows ".$other_class." offset_0' href='".$url.'&'.$offset_name."=0'>".html_print_image('images/go_first_g.png', true, ['class' => 'bot']).'</a>';
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
/*
|
|
|
|
* Show PREVIOUS PAGE GROUP OF PAGES
|
|
|
|
* For example
|
|
|
|
* You are in the 12 page with a block of 5 pages
|
|
|
|
* << < 10 - 11 - [12] - 13 - 14 > >>
|
|
|
|
* Click in <
|
|
|
|
* Result << < 5 - 6 - 7 - 8 - [9] > >>
|
|
|
|
*/
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if ($ini_page >= $block_limit) {
|
|
|
|
$offset_previous_page = (($ini_page - 1) * $pagination);
|
|
|
|
|
|
|
|
if (!empty($script)) {
|
|
|
|
$script_modified = $script;
|
|
|
|
$script_modified = str_replace(
|
|
|
|
$parameter_script['count'],
|
|
|
|
$count,
|
|
|
|
$script_modified
|
|
|
|
);
|
|
|
|
$script_modified = str_replace(
|
|
|
|
$parameter_script['offset'],
|
|
|
|
$offset_previous_page,
|
|
|
|
$script_modified
|
|
|
|
);
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
$output .= "<a class='pagination-arrows ".$other_class.' offset_'.$offset_previous_page."'
|
|
|
|
href='javacript: ".$script_modified.";'>".html_print_image('images/go_previous_g.png', true, ['class' => 'bot']).'</a>';
|
2019-01-30 16:18:44 +01:00
|
|
|
} else {
|
2019-05-28 10:47:31 +02:00
|
|
|
$output .= "<a class='pagination-arrows ".$other_class.' offset_'.$offset_previous_page."' href='".$url.'&'.$offset_name.'='.$offset_previous_page."'>".html_print_image('images/go_previous_g.png', true, ['class' => 'bot']).'</a>';
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// Show pages.
|
2019-01-30 16:18:44 +01:00
|
|
|
for ($iterator = $ini_page; $iterator <= $end_page; $iterator++) {
|
|
|
|
$actual_page = (int) ($offset / $pagination);
|
|
|
|
|
|
|
|
if ($iterator == $actual_page) {
|
2019-03-27 17:03:55 +01:00
|
|
|
$output .= "<div class='page_number page_number_active'>";
|
2019-01-30 16:18:44 +01:00
|
|
|
} else {
|
2019-03-27 17:03:55 +01:00
|
|
|
$output .= "<div class='page_number'>";
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
$offset_page = ($iterator * $pagination);
|
|
|
|
|
|
|
|
if (!empty($script)) {
|
|
|
|
$script_modified = $script;
|
|
|
|
$script_modified = str_replace(
|
|
|
|
$parameter_script['count'],
|
|
|
|
$count,
|
|
|
|
$script_modified
|
|
|
|
);
|
|
|
|
$script_modified = str_replace(
|
|
|
|
$parameter_script['offset'],
|
|
|
|
$offset_page,
|
|
|
|
$script_modified
|
|
|
|
);
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
$output .= "<a class='pagination ".$other_class.' offset_'.$offset_page."'
|
|
|
|
href='javascript: ".$script_modified.";'>";
|
2019-01-30 16:18:44 +01:00
|
|
|
} else {
|
2019-05-28 10:47:31 +02:00
|
|
|
$output .= "<a class='pagination ".$other_class.' offset_'.$offset_page."' href='".$url.'&'.$offset_name.'='.$offset_page."'>";
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
|
|
|
|
2019-03-27 17:03:55 +01:00
|
|
|
$output .= $iterator;
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2019-03-27 17:03:55 +01:00
|
|
|
$output .= '</a></div>';
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
/*
|
|
|
|
* Show NEXT PAGE GROUP OF PAGES
|
|
|
|
* For example
|
|
|
|
* You are in the 12 page with a block of 5 pages
|
|
|
|
* << < 10 - 11 - [12] - 13 - 14 > >>
|
|
|
|
* Click in >
|
|
|
|
* Result << < [15] - 16 - 17 - 18 - 19 > >>
|
|
|
|
*/
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if (($number_of_pages - $ini_page) > $block_limit) {
|
|
|
|
$offset_next_page = (($end_page + 1) * $pagination);
|
|
|
|
|
|
|
|
if (!empty($script)) {
|
|
|
|
$script_modified = $script;
|
|
|
|
$script_modified = str_replace(
|
|
|
|
$parameter_script['count'],
|
|
|
|
$count,
|
|
|
|
$script_modified
|
|
|
|
);
|
|
|
|
$script_modified = str_replace(
|
|
|
|
$parameter_script['offset'],
|
|
|
|
$offset_next_page,
|
|
|
|
$script_modified
|
|
|
|
);
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
$output .= "<a class='pagination-arrows ".$other_class.' offset_'.$offset_next_page."'
|
|
|
|
href='javascript: ".$script_modified.";'>".html_print_image('images/go_next_g.png', true, ['class' => 'bot']).'</a>';
|
2019-01-30 16:18:44 +01:00
|
|
|
} else {
|
2019-05-28 10:47:31 +02:00
|
|
|
$output .= "<a class='pagination-arrows ".$other_class.' offset_'.$offset_next_page."' href='".$url.'&'.$offset_name.'='.$offset_next_page."'>".html_print_image('images/go_next_g.png', true, ['class' => 'bot']).'</a>';
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// Show GOTO LAST PAGE button.
|
2019-01-30 16:18:44 +01:00
|
|
|
if ($number_of_pages > $block_limit) {
|
|
|
|
$offset_lastpage = (($number_of_pages - 1) * $pagination);
|
|
|
|
|
|
|
|
if (!empty($script)) {
|
|
|
|
$script_modified = $script;
|
|
|
|
$script_modified = str_replace(
|
|
|
|
$parameter_script['count'],
|
|
|
|
$count,
|
|
|
|
$script_modified
|
|
|
|
);
|
|
|
|
$script_modified = str_replace(
|
|
|
|
$parameter_script['offset'],
|
|
|
|
$offset_lastpage,
|
|
|
|
$script_modified
|
|
|
|
);
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
$output .= "<a class='pagination-arrows ".$other_class.' offset_'.$offset_lastpage."'
|
|
|
|
href='javascript: ".$script_modified.";'>".html_print_image('images/go_last_g.png', true, ['class' => 'bot']).'</a>';
|
2019-01-30 16:18:44 +01:00
|
|
|
} else {
|
2019-05-28 10:47:31 +02:00
|
|
|
$output .= "<a class='pagination-arrows ".$other_class.' offset_'.$offset_lastpage."' href='".$url.'&'.$offset_name.'='.$offset_lastpage."'>".html_print_image('images/go_last_g.png', true, ['class' => 'bot']).'</a>';
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-03-27 17:03:55 +01:00
|
|
|
$output .= '</div>';
|
2019-01-30 16:18:44 +01:00
|
|
|
// End div and layout
|
2019-05-28 10:47:31 +02:00
|
|
|
// total_number.
|
2019-01-30 16:18:44 +01:00
|
|
|
$output .= '</div>';
|
|
|
|
|
|
|
|
if ($return === false) {
|
|
|
|
echo $output;
|
|
|
|
}
|
|
|
|
|
|
|
|
return $output;
|
2009-02-20 22:48:09 +01:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2016-03-30 13:05:08 +02:00
|
|
|
/**
|
2013-02-28 12:43:10 +01:00
|
|
|
* Prints only a tip button which shows a text when the user puts the mouse over it.
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @param string $action Complete text to show in the tip.
|
|
|
|
* @param boolean $return Whether to return an output string or echo now.
|
2013-02-28 12:43:10 +01:00
|
|
|
*
|
|
|
|
* @return string HTML code if return parameter is true.
|
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_print_session_action_icon($action, $return=false)
|
|
|
|
{
|
|
|
|
$key_icon = [
|
|
|
|
'acl' => 'images/delete.png',
|
|
|
|
'agent' => 'images/agent.png',
|
|
|
|
'module' => 'images/module.png',
|
|
|
|
'alert' => 'images/bell.png',
|
|
|
|
'incident' => 'images/default_list.png',
|
|
|
|
'logon' => 'images/house.png',
|
|
|
|
'logoff' => 'images/house.png',
|
|
|
|
'massive' => 'images/config.png',
|
|
|
|
'hack' => 'images/application_edit.png',
|
|
|
|
'event' => 'images/lightning_go.png',
|
|
|
|
'policy' => 'images/policies.png',
|
|
|
|
'report' => 'images/reporting.png',
|
|
|
|
'file collection' => 'images/collection_col.png',
|
|
|
|
'user' => 'images/user_green.png',
|
|
|
|
'password' => 'images/lock.png',
|
|
|
|
'session' => 'images/heart_col.png',
|
|
|
|
'snmp' => 'images/snmp.png',
|
|
|
|
'command' => 'images/bell.png',
|
|
|
|
'category' => 'images/category_col.png',
|
|
|
|
'dashboard' => 'images/dashboard_col.png',
|
|
|
|
'api' => 'images/eye.png',
|
|
|
|
'db' => 'images/database.png',
|
|
|
|
'setup' => 'images/cog.png',
|
|
|
|
];
|
|
|
|
|
|
|
|
$output = '';
|
|
|
|
foreach ($key_icon as $key => $icon) {
|
|
|
|
if (stristr($action, $key) !== false) {
|
|
|
|
$output = html_print_image($icon, true, ['title' => $action], false, false, false, true).' ';
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($return) {
|
|
|
|
return $output;
|
|
|
|
}
|
|
|
|
|
|
|
|
echo $output;
|
2013-02-28 12:43:10 +01:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2016-03-30 13:05:08 +02:00
|
|
|
/**
|
2009-02-20 22:48:09 +01:00
|
|
|
* Prints only a tip button which shows a text when the user puts the mouse over it.
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @param string $text Complete text to show in the tip.
|
|
|
|
* @param boolean $return Whether to return an output string or echo now.
|
|
|
|
* @param string $img Displayed image.
|
|
|
|
* @param boolean $is_relative Print image in relative way.
|
2019-05-29 17:34:11 +02:00
|
|
|
* @param string $style Specific style.
|
2009-02-20 22:48:09 +01:00
|
|
|
*
|
|
|
|
* @return string HTML code if return parameter is true.
|
|
|
|
*/
|
2019-05-28 10:47:31 +02:00
|
|
|
function ui_print_help_tip(
|
|
|
|
$text,
|
|
|
|
$return=false,
|
|
|
|
$img='images/tip_help.png',
|
2019-05-29 17:34:11 +02:00
|
|
|
$is_relative=false,
|
|
|
|
$style=''
|
2019-05-28 10:47:31 +02:00
|
|
|
) {
|
2019-05-29 17:34:11 +02:00
|
|
|
$output = '<a href="javascript:" class="tip" style="'.$style.'" >';
|
|
|
|
$output .= html_print_image(
|
2019-01-30 16:18:44 +01:00
|
|
|
$img,
|
|
|
|
true,
|
|
|
|
['title' => $text],
|
|
|
|
false,
|
|
|
|
$is_relative && is_metaconsole()
|
|
|
|
).'</a>';
|
|
|
|
|
|
|
|
if ($return) {
|
|
|
|
return $output;
|
|
|
|
}
|
|
|
|
|
|
|
|
echo $output;
|
2009-02-20 22:48:09 +01:00
|
|
|
}
|
2009-02-25 13:24:06 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
/**
|
|
|
|
* Prints link to show something.
|
|
|
|
*
|
|
|
|
* @param string $text Complete text to show in the tip.
|
|
|
|
* @param boolean $return Whether to return an output string or echo now.
|
|
|
|
* @param string $img Displayed image.
|
|
|
|
* @param boolean $is_relative Print image in relative way.
|
|
|
|
*
|
|
|
|
* @return string HTML.
|
|
|
|
*/
|
|
|
|
function ui_print_help_tip_border(
|
|
|
|
$text,
|
|
|
|
$return=false,
|
|
|
|
$img='images/tip_border.png',
|
|
|
|
$is_relative=false
|
|
|
|
) {
|
2019-01-30 16:18:44 +01:00
|
|
|
$output = '<a href="javascript:" class="tip" >'.html_print_image(
|
|
|
|
$img,
|
|
|
|
true,
|
|
|
|
['title' => $text],
|
|
|
|
false,
|
|
|
|
$is_relative && is_metaconsole()
|
|
|
|
).'</a>';
|
|
|
|
|
|
|
|
if ($return) {
|
|
|
|
return $output;
|
|
|
|
}
|
|
|
|
|
|
|
|
echo $output;
|
2018-09-10 13:22:02 +02:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2009-02-25 13:24:06 +01:00
|
|
|
/**
|
|
|
|
* Powerful debug function that also shows a backtrace.
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
2009-02-25 13:24:06 +01:00
|
|
|
* This functions need to have active $config['debug'] variable to work.
|
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @param mixed $var Variable name to debug.
|
|
|
|
* @param boolean $backtrace Wheter to print the backtrace or not.
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
|
|
|
* @return boolean Tru if the debug was actived. False if not.
|
2009-02-25 13:24:06 +01:00
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_debug($var, $backtrace=true)
|
|
|
|
{
|
|
|
|
global $config;
|
|
|
|
if (! isset($config['debug'])) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
static $id = 0;
|
|
|
|
static $trace_id = 0;
|
|
|
|
|
|
|
|
$id++;
|
|
|
|
|
|
|
|
if ($backtrace) {
|
|
|
|
echo '<div class="debug">';
|
|
|
|
echo '<a href="#" onclick="$(\'#trace-'.$id.'\').toggle ();return false;">Backtrace</a>';
|
|
|
|
echo '<div id="trace-'.$id.'" class="backtrace invisible">';
|
|
|
|
echo '<ol>';
|
|
|
|
$traces = debug_backtrace();
|
2019-05-28 10:47:31 +02:00
|
|
|
// Ignore debug function.
|
2019-01-30 16:18:44 +01:00
|
|
|
unset($traces[0]);
|
|
|
|
foreach ($traces as $trace) {
|
|
|
|
$trace_id++;
|
|
|
|
|
|
|
|
/*
|
2019-05-28 10:47:31 +02:00
|
|
|
* Many classes are used to allow better customization.
|
|
|
|
* Please, do not remove them
|
|
|
|
*/
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
echo '<li>';
|
|
|
|
if (isset($trace['class'])) {
|
|
|
|
echo '<span class="class">'.$trace['class'].'</span>';
|
|
|
|
}
|
|
|
|
|
|
|
|
if (isset($trace['type'])) {
|
|
|
|
echo '<span class="type">'.$trace['type'].'</span>';
|
|
|
|
}
|
|
|
|
|
|
|
|
echo '<span class="function">';
|
|
|
|
echo '<a href="#" onclick="$(\'#args-'.$trace_id.'\').toggle ();return false;">'.$trace['function'].'()</a>';
|
|
|
|
echo '</span>';
|
|
|
|
if (isset($trace['file'])) {
|
|
|
|
echo ' - <span class="filename">';
|
|
|
|
echo str_replace($config['homedir'].'/', '', $trace['file']);
|
|
|
|
echo ':'.$trace['line'].'</span>';
|
|
|
|
} else {
|
|
|
|
echo ' - <span class="filename"><em>Unknown file</em></span>';
|
|
|
|
}
|
|
|
|
|
|
|
|
echo '<pre id="args-'.$trace_id.'" class="invisible">';
|
|
|
|
echo '<div class="parameters">Parameter values:</div>';
|
|
|
|
echo '<ol>';
|
|
|
|
foreach ($trace['args'] as $arg) {
|
|
|
|
echo '<li>';
|
|
|
|
print_r($arg);
|
|
|
|
echo '</li>';
|
|
|
|
}
|
|
|
|
|
|
|
|
echo '</ol>';
|
|
|
|
echo '</pre>';
|
|
|
|
echo '</li>';
|
|
|
|
}
|
|
|
|
|
|
|
|
echo '</ol>';
|
|
|
|
echo '</div></div>';
|
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// Actually print the variable given.
|
2019-01-30 16:18:44 +01:00
|
|
|
echo '<pre class="debug">';
|
|
|
|
print_r($var);
|
|
|
|
echo '</pre>';
|
|
|
|
|
|
|
|
return true;
|
2009-02-25 13:24:06 +01:00
|
|
|
}
|
2009-03-02 Evi Vanoost <vanooste@rcbi.rochester.edu>
* include/functions_reporting.php: Rewrote get_agentmodule_sla with
faster calculations (count in SQL).
* include/functions_ui.php: Added print_moduletype_icon that prints the
whole (correct) icon including rollover text
* include/functions_db.php: Updated some documenation and removed
deprecated functions that are now in the auth parts. Renamed
return_status_agent_module to get_agentmodule_status
* operation/agentes/sla_view.php: Made it use the 2.0 SQL and HTML
functions
* godmode/agentes/configurar_agente.php: Fixed tab links
* operation/events/events.php, include/functions_visual_map.php,
operation/agentes/networkmap.php, operation/agentes/status_monitor.php,
operation/agentes/estado_grupo.php, operation/agentes/ver_agente.php,
operation/reporting/custom_reporting.php,
operation/reporting/reporting_viewer.php,
operation/reporting/reporting_xml.php, godmode/setup/links.php,
godmode/setup/setup.php, godmode/reporting/map_builder.php,
godmode/reporting/reporting_builder.php: Fixed renamed functions
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1497 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-03-02 20:16:46 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2009-03-02 Evi Vanoost <vanooste@rcbi.rochester.edu>
* include/functions_reporting.php: Rewrote get_agentmodule_sla with
faster calculations (count in SQL).
* include/functions_ui.php: Added print_moduletype_icon that prints the
whole (correct) icon including rollover text
* include/functions_db.php: Updated some documenation and removed
deprecated functions that are now in the auth parts. Renamed
return_status_agent_module to get_agentmodule_status
* operation/agentes/sla_view.php: Made it use the 2.0 SQL and HTML
functions
* godmode/agentes/configurar_agente.php: Fixed tab links
* operation/events/events.php, include/functions_visual_map.php,
operation/agentes/networkmap.php, operation/agentes/status_monitor.php,
operation/agentes/estado_grupo.php, operation/agentes/ver_agente.php,
operation/reporting/custom_reporting.php,
operation/reporting/reporting_viewer.php,
operation/reporting/reporting_xml.php, godmode/setup/links.php,
godmode/setup/setup.php, godmode/reporting/map_builder.php,
godmode/reporting/reporting_builder.php: Fixed renamed functions
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1497 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-03-02 20:16:46 +01:00
|
|
|
/**
|
|
|
|
* Prints icon of a module type
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @param integer $id_moduletype Module Type ID.
|
|
|
|
* @param boolean $return Whether to return or print.
|
|
|
|
* @param boolean $relative Whether to use relative path to image or not (i.e. $relative= true : /pandora/<img_src>).
|
|
|
|
* @param boolean $options Whether to use image options like style, border or title on the icon.
|
|
|
|
* @param boolean $src Src.
|
2009-03-02 Evi Vanoost <vanooste@rcbi.rochester.edu>
* include/functions_reporting.php: Rewrote get_agentmodule_sla with
faster calculations (count in SQL).
* include/functions_ui.php: Added print_moduletype_icon that prints the
whole (correct) icon including rollover text
* include/functions_db.php: Updated some documenation and removed
deprecated functions that are now in the auth parts. Renamed
return_status_agent_module to get_agentmodule_status
* operation/agentes/sla_view.php: Made it use the 2.0 SQL and HTML
functions
* godmode/agentes/configurar_agente.php: Fixed tab links
* operation/events/events.php, include/functions_visual_map.php,
operation/agentes/networkmap.php, operation/agentes/status_monitor.php,
operation/agentes/estado_grupo.php, operation/agentes/ver_agente.php,
operation/reporting/custom_reporting.php,
operation/reporting/reporting_viewer.php,
operation/reporting/reporting_xml.php, godmode/setup/links.php,
godmode/setup/setup.php, godmode/reporting/map_builder.php,
godmode/reporting/reporting_builder.php: Fixed renamed functions
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1497 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-03-02 20:16:46 +01:00
|
|
|
*
|
|
|
|
* @return string An HTML string with the icon. Printed if return is false
|
|
|
|
*/
|
2019-05-28 10:47:31 +02:00
|
|
|
function ui_print_moduletype_icon(
|
|
|
|
$id_moduletype,
|
|
|
|
$return=false,
|
|
|
|
$relative=false,
|
|
|
|
$options=true,
|
|
|
|
$src=false
|
|
|
|
) {
|
2019-01-30 16:18:44 +01:00
|
|
|
global $config;
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
$type = db_get_row(
|
|
|
|
'ttipo_modulo',
|
|
|
|
'id_tipo',
|
|
|
|
(int) $id_moduletype,
|
|
|
|
[
|
|
|
|
'descripcion',
|
|
|
|
'icon',
|
|
|
|
]
|
|
|
|
);
|
2019-01-30 16:18:44 +01:00
|
|
|
if ($type === false) {
|
|
|
|
$type = [];
|
|
|
|
$type['descripcion'] = __('Unknown type');
|
|
|
|
$type['icon'] = 'b_down.png';
|
|
|
|
}
|
|
|
|
|
|
|
|
$imagepath = 'images/'.$type['icon'];
|
|
|
|
if (! file_exists($config['homedir'].'/'.$imagepath)) {
|
|
|
|
$imagepath = ENTERPRISE_DIR.'/'.$imagepath;
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($src) {
|
|
|
|
return $imagepath;
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($options) {
|
|
|
|
return html_print_image(
|
|
|
|
$imagepath,
|
|
|
|
$return,
|
|
|
|
[
|
|
|
|
'border' => 0,
|
|
|
|
'title' => $type['descripcion'],
|
|
|
|
],
|
|
|
|
false,
|
|
|
|
$relative
|
|
|
|
);
|
|
|
|
} else {
|
|
|
|
return html_print_image(
|
|
|
|
$imagepath,
|
|
|
|
$return,
|
|
|
|
false,
|
|
|
|
false,
|
|
|
|
$relative
|
|
|
|
);
|
|
|
|
}
|
2009-03-02 Evi Vanoost <vanooste@rcbi.rochester.edu>
* include/functions_reporting.php: Rewrote get_agentmodule_sla with
faster calculations (count in SQL).
* include/functions_ui.php: Added print_moduletype_icon that prints the
whole (correct) icon including rollover text
* include/functions_db.php: Updated some documenation and removed
deprecated functions that are now in the auth parts. Renamed
return_status_agent_module to get_agentmodule_status
* operation/agentes/sla_view.php: Made it use the 2.0 SQL and HTML
functions
* godmode/agentes/configurar_agente.php: Fixed tab links
* operation/events/events.php, include/functions_visual_map.php,
operation/agentes/networkmap.php, operation/agentes/status_monitor.php,
operation/agentes/estado_grupo.php, operation/agentes/ver_agente.php,
operation/reporting/custom_reporting.php,
operation/reporting/reporting_viewer.php,
operation/reporting/reporting_xml.php, godmode/setup/links.php,
godmode/setup/setup.php, godmode/reporting/map_builder.php,
godmode/reporting/reporting_builder.php: Fixed renamed functions
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1497 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2009-03-02 20:16:46 +01:00
|
|
|
}
|
2009-03-04 16:59:00 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2011-06-27 07:56:55 +02:00
|
|
|
/**
|
|
|
|
* Print module max/min values for warning/critical state
|
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @param float $max_warning Max value for warning state.
|
|
|
|
* @param float $min_warning Min value for warning state.
|
|
|
|
* @param string $str_warning String warning state.
|
|
|
|
* @param float $max_critical Max value for critical state.
|
|
|
|
* @param float $min_critical Min value for critical state.
|
|
|
|
* @param string $str_critical String for critical state.
|
2011-06-27 07:56:55 +02:00
|
|
|
*
|
|
|
|
* @return string HTML string
|
|
|
|
*/
|
2019-05-28 10:47:31 +02:00
|
|
|
function ui_print_module_warn_value(
|
|
|
|
$max_warning,
|
|
|
|
$min_warning,
|
|
|
|
$str_warning,
|
|
|
|
$max_critical,
|
|
|
|
$min_critical,
|
|
|
|
$str_critical
|
|
|
|
) {
|
2019-01-30 16:18:44 +01:00
|
|
|
$data = "<span title='".__('Warning').': '.__('Max').$max_warning.'/'.__('Min').$min_warning.' - '.__('Critical').': '.__('Max').$max_critical.'/'.__('Min').$min_critical."'>";
|
|
|
|
|
|
|
|
if ($max_warning != $min_warning) {
|
|
|
|
$data .= format_for_graph($max_warning).'/'.format_for_graph($min_warning);
|
|
|
|
} else {
|
|
|
|
$data .= __('N/A');
|
|
|
|
}
|
|
|
|
|
|
|
|
$data .= ' - ';
|
|
|
|
|
|
|
|
if ($max_critical != $min_critical) {
|
|
|
|
$data .= format_for_graph($max_critical).'/'.format_for_graph($min_critical);
|
|
|
|
} else {
|
|
|
|
$data .= __('N/A');
|
|
|
|
}
|
|
|
|
|
|
|
|
$data .= '</span>';
|
|
|
|
return $data;
|
2011-06-27 07:56:55 +02:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2009-03-04 16:59:00 +01:00
|
|
|
/**
|
2019-01-30 16:18:44 +01:00
|
|
|
* Format a file size from bytes to a human readable meassure.
|
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @param integer $bytes File size in bytes.
|
|
|
|
*
|
2019-01-30 16:18:44 +01:00
|
|
|
* @return string Bytes converted to a human readable meassure.
|
|
|
|
*/
|
|
|
|
function ui_format_filesize($bytes)
|
|
|
|
{
|
|
|
|
$bytes = (int) $bytes;
|
|
|
|
$strs = [
|
|
|
|
'B',
|
|
|
|
'kB',
|
|
|
|
'MB',
|
|
|
|
'GB',
|
|
|
|
'TB',
|
|
|
|
];
|
|
|
|
if ($bytes <= 0) {
|
|
|
|
return '0 '.$strs[0];
|
|
|
|
}
|
|
|
|
|
|
|
|
$con = 1024;
|
|
|
|
$log = (int) (log($bytes, $con));
|
|
|
|
|
|
|
|
return format_numeric(($bytes / pow($con, $log)), 1).' '.$strs[$log];
|
2009-03-04 16:59:00 +01:00
|
|
|
}
|
2009-04-06 13:02:05 +02:00
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns the current path to the selected image set to show the
|
|
|
|
* status of agents and alerts.
|
|
|
|
*
|
|
|
|
* @return array An array with the image path, image width and image height.
|
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_get_status_images_path()
|
|
|
|
{
|
|
|
|
global $config;
|
2018-10-04 11:43:08 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
$imageset = $config['status_images_set'];
|
2018-10-04 11:43:08 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if (strpos($imageset, ',') === false) {
|
|
|
|
$imageset .= ',40x18';
|
|
|
|
}
|
2018-10-04 11:43:08 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
$array_split = preg_split('/\,/', $imageset);
|
|
|
|
$imageset = $array_split[0];
|
|
|
|
$sizes = $array_split[1];
|
2018-10-04 11:43:08 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if (strpos($sizes, 'x') === false) {
|
|
|
|
$sizes .= 'x18';
|
|
|
|
}
|
2018-10-04 11:43:08 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
$array_split_size = preg_split('/x/', $sizes);
|
|
|
|
$imagewidth = $array_split_size[0];
|
|
|
|
$imageheight = $array_split_size[1];
|
2018-10-04 11:43:08 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
$imagespath = 'images/status_sets/'.$imageset;
|
2018-10-04 11:43:08 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
return [$imagespath];
|
2009-04-06 13:02:05 +02:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2009-04-20 16:00:27 +02:00
|
|
|
/**
|
|
|
|
* Prints an image representing a status.
|
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @param string $type Type.
|
|
|
|
* @param string $title Title.
|
|
|
|
* @param boolean $return Whether to return an output string or echo now (optional, echo by default).
|
|
|
|
* @param array $options Options to set image attributes: I.E.: style.
|
|
|
|
* @param string $path Path of the image, if not provided use the status path.
|
|
|
|
* @param boolean $rounded_image Round.
|
2009-04-20 16:00:27 +02:00
|
|
|
*
|
|
|
|
* @return string HTML code if return parameter is true.
|
|
|
|
*/
|
2019-05-28 10:47:31 +02:00
|
|
|
function ui_print_status_image(
|
|
|
|
$type,
|
|
|
|
$title='',
|
|
|
|
$return=false,
|
|
|
|
$options=false,
|
|
|
|
$path=false,
|
|
|
|
$rounded_image=false
|
|
|
|
) {
|
|
|
|
// This is for the List of Modules in Agent View.
|
2019-05-27 19:00:48 +02:00
|
|
|
if ($rounded_image === true) {
|
|
|
|
switch ($type) {
|
|
|
|
case 'module_ok.png':
|
|
|
|
$type = 'module_ok_rounded.png';
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'module_critical.png':
|
|
|
|
$type = 'module_critical_rounded.png';
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'module_warning.png':
|
|
|
|
$type = 'module_warning_rounded.png';
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'module_no_data.png':
|
|
|
|
$type = 'module_no_data_rounded.png';
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'module_unknown.png':
|
|
|
|
$type = 'module_unknown_rounded.png';
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
$type = $type;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if ($path === false) {
|
|
|
|
$imagepath_array = ui_get_status_images_path();
|
|
|
|
$imagepath = $imagepath_array[0];
|
|
|
|
} else {
|
|
|
|
$imagepath = $path;
|
|
|
|
}
|
2018-10-04 11:43:08 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
$imagepath .= '/'.$type;
|
2018-10-04 11:43:08 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if ($options === false) {
|
|
|
|
$options = [];
|
|
|
|
}
|
2018-10-04 11:43:08 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
$options['title'] = $title;
|
2018-10-04 11:43:08 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
return html_print_image($imagepath, $return, $options, false, false, false, true);
|
2009-04-06 13:02:05 +02:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2019-05-28 12:13:29 +02:00
|
|
|
/**
|
|
|
|
* Prints an image representing a status.
|
|
|
|
*
|
|
|
|
* @param string $status Module status.
|
|
|
|
* @param string $title Title.
|
|
|
|
* @param boolean $return Whether to return an output string or echo now (optional, echo by default).
|
|
|
|
* @param array $options Options to set image attributes: I.E.: style.
|
|
|
|
* @param boolean $rounded_image Round.
|
|
|
|
*
|
|
|
|
* @return string HTML.
|
|
|
|
*/
|
|
|
|
function ui_print_module_status(
|
|
|
|
$status,
|
|
|
|
$title='',
|
|
|
|
$return=false,
|
|
|
|
$options=false,
|
|
|
|
$rounded_image=false
|
|
|
|
) {
|
|
|
|
global $config;
|
|
|
|
|
|
|
|
if ($options === false) {
|
|
|
|
$options = [];
|
|
|
|
}
|
|
|
|
|
|
|
|
$options['style'] .= 'width: 50px;';
|
|
|
|
$options['style'] .= 'height: 2em;';
|
2019-05-29 17:02:01 +02:00
|
|
|
$options['style'] .= 'display: inline-block;';
|
2019-05-28 12:13:29 +02:00
|
|
|
|
|
|
|
include_once __DIR__.'/functions_modules.php';
|
|
|
|
$options['style'] .= 'background: '.modules_get_color_status($status).';';
|
|
|
|
|
|
|
|
if ($rounded_image === true) {
|
|
|
|
$options['style'] .= 'border-radius: 5px;';
|
|
|
|
}
|
|
|
|
|
|
|
|
$options['title'] = $title;
|
|
|
|
$options['data-title'] = $title;
|
|
|
|
$options['data-use_title_for_force_title'] = 1;
|
|
|
|
$options['class'] = 'forced_title';
|
|
|
|
|
|
|
|
$output = '<div ';
|
|
|
|
foreach ($options as $k => $v) {
|
|
|
|
$output .= $k.'="'.$v.'"';
|
|
|
|
}
|
|
|
|
|
|
|
|
$output .= '>';
|
|
|
|
$output .= '</div>';
|
|
|
|
|
|
|
|
if ($return === false) {
|
|
|
|
echo $output;
|
|
|
|
}
|
|
|
|
|
|
|
|
return $output;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2019-05-27 21:30:46 +02:00
|
|
|
/**
|
|
|
|
* Generates a progress bar CSS based.
|
|
|
|
* Requires css progress.css
|
|
|
|
*
|
|
|
|
* @param integer $progress Progress.
|
|
|
|
* @param string $width Width.
|
2019-05-28 09:48:09 +02:00
|
|
|
* @param integer $height Height in 'em'.
|
2019-05-27 21:30:46 +02:00
|
|
|
* @param string $color Color.
|
|
|
|
* @param boolean $return Return or paint (if false).
|
2019-05-29 12:42:55 +02:00
|
|
|
* @param boolean $text Text to be displayed,by default progress %.
|
2019-06-14 10:40:30 +02:00
|
|
|
* @param array $ajax Ajax: [ 'page' => 'page', 'data' => 'data' ] Sample:
|
2019-06-14 10:35:10 +02:00
|
|
|
* [
|
2019-06-14 10:40:30 +02:00
|
|
|
* 'page' => 'operation/agentes/ver_agente', Target page.
|
|
|
|
* 'interval' => 100 / $agent["intervalo"], Ask every interval seconds.
|
|
|
|
* 'data' => [ Data to be sent to target page.
|
2019-06-14 10:35:10 +02:00
|
|
|
* 'id_agente' => $id_agente,
|
|
|
|
* 'refresh_contact' => 1,
|
|
|
|
* ],
|
2019-06-14 10:40:30 +02:00
|
|
|
* ].
|
2019-05-27 21:30:46 +02:00
|
|
|
*
|
|
|
|
* @return string HTML code.
|
|
|
|
*/
|
|
|
|
function ui_progress(
|
|
|
|
$progress,
|
|
|
|
$width='100%',
|
2019-05-28 09:48:09 +02:00
|
|
|
$height='2.5',
|
2019-06-04 14:08:07 +02:00
|
|
|
$color='#82b92e',
|
2019-05-29 12:42:55 +02:00
|
|
|
$return=true,
|
2019-06-14 10:35:10 +02:00
|
|
|
$text='',
|
|
|
|
$ajax=false
|
2019-05-27 21:30:46 +02:00
|
|
|
) {
|
|
|
|
if (!$progress) {
|
|
|
|
$progress = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($progress > 100) {
|
|
|
|
$progress = 100;
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($progress < 0) {
|
|
|
|
$progress = 0;
|
|
|
|
}
|
|
|
|
|
2019-05-29 12:42:55 +02:00
|
|
|
if (empty($text)) {
|
|
|
|
$text = $progress.'%';
|
|
|
|
}
|
|
|
|
|
2019-05-27 21:30:46 +02:00
|
|
|
ui_require_css_file('progress');
|
2019-06-14 10:35:10 +02:00
|
|
|
$output .= '<span class="progress_main" data-label="'.$text;
|
|
|
|
$output .= '" style="width: '.$width.'; height: '.$height.'em; border: 1px solid '.$color.'">';
|
|
|
|
$output .= '<span class="progress" style="width: '.$progress.'%; background: '.$color.'"></span>';
|
|
|
|
$output .= '</span>';
|
|
|
|
|
|
|
|
if ($ajax !== false && is_array($ajax)) {
|
|
|
|
$output .= '<script type="text/javascript">
|
|
|
|
$(document).ready(function() {
|
|
|
|
setInterval(() => {
|
|
|
|
last = $(".progress_main").attr("data-label").split(" ")[0]*1;
|
|
|
|
width = $(".progress").width() / $(".progress").parent().width() * 100;
|
|
|
|
width_interval = '.$ajax['interval'].';
|
|
|
|
if (last % 10 == 0) {
|
|
|
|
$.post({
|
|
|
|
url: "'.ui_get_full_url('ajax.php').'",
|
|
|
|
data: {';
|
|
|
|
if (is_array($ajax['data'])) {
|
|
|
|
foreach ($ajax['data'] as $token => $value) {
|
|
|
|
$output .= '
|
|
|
|
'.$token.':"'.$value.'",';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$output .= '
|
|
|
|
page: "'.$ajax['page'].'"
|
|
|
|
},
|
|
|
|
success: function(data) {
|
|
|
|
try {
|
|
|
|
val = JSON.parse(data);
|
|
|
|
$(".progress_main").attr("data-label", val["last_contact"]+" s");
|
|
|
|
$(".progress").width(val["progress"]+"%");
|
|
|
|
} catch (e) {
|
|
|
|
console.error(e);
|
|
|
|
$(".progress_text").attr("data-label", (last -1) + " s");
|
|
|
|
if (width < 100) {
|
|
|
|
$(".progress").width((width+width_interval) + "%");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
$(".progress_main").attr("data-label", (last -1) + " s");
|
|
|
|
if (width < 100) {
|
|
|
|
$(".progress").width((width+width_interval) + "%");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}, 1000);
|
|
|
|
});
|
|
|
|
</script>';
|
|
|
|
}
|
2019-05-27 21:30:46 +02:00
|
|
|
|
|
|
|
if (!$return) {
|
|
|
|
echo $output;
|
|
|
|
}
|
|
|
|
|
|
|
|
return $output;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2019-06-06 17:50:47 +02:00
|
|
|
/**
|
|
|
|
* Generate needed code to print a datatables jquery plugin.
|
|
|
|
*
|
|
|
|
* @param array $parameters All desired data using following format:
|
|
|
|
* [
|
|
|
|
* 'print' => true (by default printed)
|
|
|
|
* 'id' => datatable id.
|
|
|
|
* 'class' => datatable class.
|
|
|
|
* 'style' => datatable style.
|
2019-06-07 17:35:13 +02:00
|
|
|
* 'order' => [
|
|
|
|
* 'field' => column name
|
|
|
|
* 'direction' => asc or desc
|
|
|
|
* ],
|
|
|
|
* 'default_pagination' => integer, default pagination is set to block_size
|
2019-06-06 17:50:47 +02:00
|
|
|
* 'ajax_url' => 'include/ajax.php' ajax_url.
|
2019-06-07 17:35:13 +02:00
|
|
|
* 'ajax_data' => [ operation => 1 ] extra info to be sent.
|
2019-06-06 17:50:47 +02:00
|
|
|
* 'ajax_postprocess' => a javscript function to postprocess data received
|
|
|
|
* by ajax call. It is applied foreach row and must
|
|
|
|
* use following format:
|
|
|
|
* * [code]
|
|
|
|
* * function (item) {
|
|
|
|
* * // Process received item, for instance, name:
|
|
|
|
* * tmp = '<span class=label>' + item.name + '</span>';
|
|
|
|
* * item.name = tmp;
|
|
|
|
* * }
|
|
|
|
* * [/code]
|
2019-06-07 17:35:13 +02:00
|
|
|
* 'columns_names' => [
|
2019-06-06 17:50:47 +02:00
|
|
|
* 'column1' :: Used as th text. Direct text entry. It could be array:
|
|
|
|
* OR
|
|
|
|
* [
|
|
|
|
* 'id' => th id.
|
|
|
|
* 'class' => th class.
|
|
|
|
* 'style' => th style.
|
|
|
|
* 'text' => 'column1'.
|
|
|
|
* ]
|
|
|
|
* ],
|
2019-06-07 17:35:13 +02:00
|
|
|
* 'columns' => [
|
2019-06-06 17:50:47 +02:00
|
|
|
* 'column1',
|
|
|
|
* 'column2',
|
|
|
|
* ...
|
|
|
|
* ],
|
2019-06-11 12:58:18 +02:00
|
|
|
* 'no_sortable_columns' => [ indexes ] 1,2... -1 etc. Avoid sorting.
|
2019-06-06 17:50:47 +02:00
|
|
|
* 'form' => [
|
|
|
|
* 'html' => 'html code' a directly defined inputs in HTML.
|
2019-06-11 12:58:18 +02:00
|
|
|
* 'extra_buttons' => [
|
|
|
|
* [
|
|
|
|
* 'id' => button id,
|
|
|
|
* 'class' => button class,
|
|
|
|
* 'style' => button style,
|
|
|
|
* 'text' => button text,
|
|
|
|
* 'onclick' => button onclick,
|
|
|
|
* ]
|
|
|
|
* ],
|
2019-06-06 17:50:47 +02:00
|
|
|
* 'search_button_class' => search button class.
|
|
|
|
* 'class' => form class.
|
|
|
|
* 'id' => form id.
|
|
|
|
* 'style' => form style.
|
|
|
|
* 'js' => optional extra actions onsubmit.
|
|
|
|
* 'inputs' => [
|
|
|
|
* 'label' => Input label.
|
|
|
|
* 'type' => Input type.
|
|
|
|
* 'value' => Input value.
|
|
|
|
* 'name' => Input name.
|
|
|
|
* 'id' => Input id.
|
|
|
|
* 'options' => [
|
|
|
|
* 'option1'
|
|
|
|
* 'option2'
|
|
|
|
* ...
|
|
|
|
* ]
|
|
|
|
* ]
|
|
|
|
* ],
|
2019-06-10 15:18:35 +02:00
|
|
|
* 'extra_html' => HTML content to be placed after 'filter' section.
|
2019-06-12 18:19:39 +02:00
|
|
|
* 'drawCallback' => function to be called after draw. Sample in:
|
|
|
|
* https://datatables.net/examples/advanced_init/row_grouping.html
|
2019-06-06 17:50:47 +02:00
|
|
|
* ]
|
|
|
|
* End.
|
|
|
|
*
|
|
|
|
* @return string HTML code with datatable.
|
|
|
|
* @throws Exception On error.
|
|
|
|
*/
|
|
|
|
function ui_print_datatable(array $parameters)
|
|
|
|
{
|
2019-06-07 17:35:13 +02:00
|
|
|
global $config;
|
|
|
|
|
2019-06-06 17:50:47 +02:00
|
|
|
if (isset($parameters['id'])) {
|
|
|
|
$table_id = $parameters['id'];
|
|
|
|
} else {
|
|
|
|
$table_id = uniqid('datatable_');
|
|
|
|
}
|
|
|
|
|
2019-06-07 17:35:13 +02:00
|
|
|
if (!isset($parameters['columns']) || !is_array($parameters['columns'])) {
|
|
|
|
throw new Exception('[ui_print_datatable]: You must define columns for datatable');
|
2019-06-06 17:50:47 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
if (!isset($parameters['ajax_url'])) {
|
2019-06-07 17:35:13 +02:00
|
|
|
throw new Exception('[ui_print_datatable]: Parameter ajax_url is required');
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!isset($parameters['default_pagination'])) {
|
|
|
|
$parameters['default_pagination'] = $config['block_size'];
|
|
|
|
}
|
|
|
|
|
2019-06-11 12:58:18 +02:00
|
|
|
$no_sortable_columns = [];
|
|
|
|
if (isset($parameters['no_sortable_columns'])) {
|
|
|
|
$no_sortable_columns = json_encode($parameters['no_sortable_columns']);
|
|
|
|
}
|
|
|
|
|
2019-06-07 17:35:13 +02:00
|
|
|
if (!is_array($parameters['order'])) {
|
|
|
|
$order = '0, "asc"';
|
|
|
|
} else {
|
|
|
|
if (!isset($parameters['order']['direction'])) {
|
|
|
|
$direction = 'asc';
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!isset($parameters['order']['field'])) {
|
|
|
|
$order = 1;
|
|
|
|
} else {
|
|
|
|
$order = array_search(
|
|
|
|
$parameters['order']['field'],
|
|
|
|
$parameters['columns']
|
|
|
|
);
|
2019-06-10 15:18:35 +02:00
|
|
|
|
|
|
|
if (empty($order)) {
|
|
|
|
$order = 1;
|
|
|
|
}
|
2019-06-07 17:35:13 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
$order .= ', "'.$parameters['order']['direction'].'"';
|
2019-06-06 17:50:47 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
if (!isset($parameters['ajax_data'])) {
|
|
|
|
$parameters['ajax_data'] = '';
|
|
|
|
}
|
|
|
|
|
2019-06-11 12:58:18 +02:00
|
|
|
$search_button_class = 'sub filter';
|
2019-06-06 17:50:47 +02:00
|
|
|
if (isset($parameters['search_button_class'])) {
|
|
|
|
$search_button_class = $parameters['search_button_class'];
|
|
|
|
}
|
|
|
|
|
|
|
|
if (isset($parameters['pagination_options'])) {
|
|
|
|
$pagination_options = $parameters['pagination_options'];
|
|
|
|
} else {
|
|
|
|
$pagination_options = [
|
|
|
|
[
|
2019-06-07 17:35:13 +02:00
|
|
|
$parameters['default_pagination'],
|
2019-06-06 17:50:47 +02:00
|
|
|
10,
|
|
|
|
25,
|
|
|
|
100,
|
|
|
|
200,
|
|
|
|
500,
|
|
|
|
1000,
|
|
|
|
-1,
|
|
|
|
],
|
|
|
|
[
|
2019-06-07 17:35:13 +02:00
|
|
|
$parameters['default_pagination'],
|
2019-06-06 17:50:47 +02:00
|
|
|
10,
|
|
|
|
25,
|
|
|
|
100,
|
|
|
|
200,
|
|
|
|
500,
|
|
|
|
1000,
|
|
|
|
'All',
|
|
|
|
],
|
|
|
|
];
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!is_array($parameters['datacolumns'])) {
|
|
|
|
$parameters['datacolumns'] = $parameters['columns'];
|
|
|
|
}
|
|
|
|
|
|
|
|
// Datatable filter.
|
|
|
|
if (isset($parameters['form']) && is_array($parameters['form'])) {
|
|
|
|
if (isset($parameters['form']['id'])) {
|
|
|
|
$form_id = $parameters['form']['id'];
|
|
|
|
} else {
|
|
|
|
$form_id = uniqid('datatable_filter_');
|
|
|
|
}
|
|
|
|
|
|
|
|
if (isset($parameters['form']['class'])) {
|
|
|
|
$form_class = $parameters['form']['class'];
|
|
|
|
} else {
|
|
|
|
$form_class = '';
|
|
|
|
}
|
|
|
|
|
|
|
|
if (isset($parameters['form']['style'])) {
|
|
|
|
$form_style = $parameters['form']['style'];
|
|
|
|
} else {
|
|
|
|
$form_style = '';
|
|
|
|
}
|
|
|
|
|
|
|
|
if (isset($parameters['form']['js'])) {
|
|
|
|
$form_js = $parameters['form']['js'];
|
|
|
|
} else {
|
|
|
|
$form_js = '';
|
|
|
|
}
|
|
|
|
|
|
|
|
$filter = '<form class="'.$form_class.'" ';
|
|
|
|
$filter .= ' id="'.$form_id.'" ';
|
|
|
|
$filter .= ' style="'.$form_style.'" ';
|
|
|
|
$filter .= ' onsubmit="'.$form_js.';return false;">';
|
|
|
|
|
|
|
|
if (isset($parameters['form']['html'])) {
|
|
|
|
$filter .= $parameters['form']['html'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$filter .= '<ul class="content">';
|
|
|
|
|
|
|
|
foreach ($parameters['form']['inputs'] as $input) {
|
|
|
|
$filter .= '<li>';
|
|
|
|
$filter .= '<label>'.$input['label'].'</label>';
|
|
|
|
if ($input['type'] != 'select') {
|
|
|
|
$filter .= '<input type="'.$input['type'].'" ';
|
|
|
|
$filter .= ' value="'.$input['value'].'" ';
|
|
|
|
$filter .= ' name="'.$input['name'].'" id="'.$input['id'].'" />';
|
|
|
|
} else {
|
|
|
|
// Select.
|
|
|
|
$filter .= '<select name="'.$input['name'].'" ';
|
|
|
|
$filter .= 'id="'.$input['id'].'">';
|
|
|
|
|
|
|
|
foreach ($input['options'] as $opt => $selected) {
|
|
|
|
$filter .= '<option value="'.$opt['value'].'"';
|
|
|
|
if ($selected) {
|
|
|
|
$filter .= ' selected="yes" >';
|
|
|
|
}
|
|
|
|
|
|
|
|
$filter .= __($opt['text']).'</option>';
|
|
|
|
}
|
|
|
|
|
|
|
|
$filter .= '</select>';
|
|
|
|
}
|
|
|
|
|
|
|
|
$filter .= '</li>';
|
|
|
|
}
|
|
|
|
|
|
|
|
$filter .= '<li>';
|
2019-06-12 18:19:39 +02:00
|
|
|
// Search button.
|
|
|
|
$filter .= '<input type="submit" class="'.$search_button_class.'" ';
|
|
|
|
$filter .= ' id="'.$form_id.'_search_bt" value="'.__('Filter').'"/>';
|
|
|
|
|
|
|
|
// Extra buttons.
|
2019-06-11 12:58:18 +02:00
|
|
|
if (is_array($parameters['form']['extra_buttons'])) {
|
|
|
|
foreach ($parameters['form']['extra_buttons'] as $button) {
|
|
|
|
$filter .= '<button id="'.$button['id'].'" ';
|
|
|
|
$filter .= ' class="'.$button['class'].'" ';
|
|
|
|
$filter .= ' style="'.$button['style'].'" ';
|
|
|
|
$filter .= ' onclick="'.$button['onclick'].'" >';
|
|
|
|
$filter .= $button['text'];
|
|
|
|
$filter .= '</button>';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-06-06 17:50:47 +02:00
|
|
|
$filter .= '</li>';
|
|
|
|
|
|
|
|
$filter .= '</ul></form>';
|
|
|
|
$filter = ui_toggle(
|
|
|
|
$filter,
|
|
|
|
__('Filter'),
|
|
|
|
'',
|
|
|
|
'',
|
|
|
|
true,
|
|
|
|
false,
|
|
|
|
'white_box white_box_opened',
|
|
|
|
'no-border'
|
|
|
|
);
|
|
|
|
} else if (isset($parameters['form_html'])) {
|
|
|
|
$filter = ui_toggle(
|
|
|
|
$parameters['form_html'],
|
|
|
|
__('Filter'),
|
|
|
|
'',
|
|
|
|
'',
|
|
|
|
true,
|
|
|
|
false,
|
|
|
|
'white_box white_box_opened',
|
|
|
|
'no-border'
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2019-06-10 15:18:35 +02:00
|
|
|
// Extra html.
|
|
|
|
$extra = '';
|
|
|
|
if (isset($parameters['extra_html']) && !empty($parameters['extra_html'])) {
|
|
|
|
$extra = $parameters['extra_html'];
|
|
|
|
}
|
|
|
|
|
2019-06-06 17:50:47 +02:00
|
|
|
// Base table.
|
|
|
|
$table = '<table id="'.$table_id.'" ';
|
|
|
|
$table .= 'class="'.$parameters['class'].'"';
|
|
|
|
$table .= 'style="'.$parameters['style'].'">';
|
|
|
|
$table .= '<thead><tr>';
|
2019-06-07 17:35:13 +02:00
|
|
|
|
|
|
|
if (isset($parameters['column_names'])
|
|
|
|
&& is_array($parameters['column_names'])
|
|
|
|
) {
|
|
|
|
$names = $parameters['column_names'];
|
|
|
|
} else {
|
|
|
|
$names = $parameters['columns'];
|
2019-06-06 17:50:47 +02:00
|
|
|
}
|
|
|
|
|
2019-06-07 17:35:13 +02:00
|
|
|
foreach ($names as $column) {
|
2019-06-06 17:50:47 +02:00
|
|
|
if (is_array($column)) {
|
|
|
|
$table .= '<th id="'.$column['id'].'" class="'.$column['class'].'" ';
|
|
|
|
$table .= ' style="'.$column['style'].'">'.__($column['text']);
|
2019-06-13 19:41:21 +02:00
|
|
|
$table .= $column['extra'];
|
2019-06-06 17:50:47 +02:00
|
|
|
$table .= '</th>';
|
|
|
|
} else {
|
|
|
|
$table .= '<th>'.__($column).'</th>';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$table .= '</tr></thead>';
|
|
|
|
$table .= '</table>';
|
|
|
|
|
|
|
|
// Javascript controller.
|
|
|
|
$js = '<script type="text/javascript">
|
|
|
|
$(document).ready(function(){
|
|
|
|
$.fn.dataTable.ext.errMode = "none";
|
|
|
|
dt_'.$table_id.' = $("#'.$table_id.'").DataTable({
|
2019-06-12 18:19:39 +02:00
|
|
|
';
|
|
|
|
if (isset($parameters['drawCallback'])) {
|
|
|
|
$js .= 'drawCallback: function(settings) {
|
|
|
|
'.$parameters['drawCallback'].'
|
|
|
|
},';
|
|
|
|
}
|
|
|
|
|
|
|
|
$js .= '
|
2019-06-06 17:50:47 +02:00
|
|
|
processing: true,
|
|
|
|
serverSide: true,
|
|
|
|
paging: true,
|
2019-06-07 17:35:13 +02:00
|
|
|
pageLength: '.$parameters['default_pagination'].',
|
2019-06-06 17:50:47 +02:00
|
|
|
searching: false,
|
|
|
|
responsive: true,
|
|
|
|
dom: "lBfrtip",
|
|
|
|
buttons: [
|
|
|
|
{
|
|
|
|
extend: "csv",
|
|
|
|
text : "'.__('Export current page to CSV').'",
|
|
|
|
exportOptions : {
|
|
|
|
modifier : {
|
|
|
|
// DataTables core
|
|
|
|
order : "current",
|
|
|
|
page : "All",
|
|
|
|
search : "applied"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
],
|
|
|
|
lengthMenu: '.json_encode($pagination_options).',
|
|
|
|
ajax: {
|
|
|
|
url: "'.ui_get_full_url('ajax.php').'",
|
|
|
|
type: "POST",
|
|
|
|
dataSrc: function (json) {
|
|
|
|
if (json.error) {
|
2019-06-17 18:33:39 +02:00
|
|
|
console.log(json.error);
|
|
|
|
$("#error-'.$table_id.'").html(json.error);
|
|
|
|
$("#error-'.$table_id.'").dialog({
|
|
|
|
title: "Filter failed",
|
|
|
|
width: 630,
|
|
|
|
resizable: true,
|
|
|
|
draggable: true,
|
|
|
|
modal: false,
|
|
|
|
closeOnEscape: true,
|
|
|
|
buttons: {
|
|
|
|
"Ok" : function () {
|
|
|
|
$(this).dialog("close");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}).parent().addClass("ui-state-error");
|
2019-06-06 17:50:47 +02:00
|
|
|
} else {';
|
|
|
|
if (isset($parameters['ajax_postprocess'])) {
|
2019-06-07 22:44:02 +02:00
|
|
|
$js .= '
|
|
|
|
if (json.data) {
|
2019-06-11 12:58:18 +02:00
|
|
|
json.data.forEach(function(item) {
|
|
|
|
'.$parameters['ajax_postprocess'].'
|
|
|
|
});
|
2019-06-07 22:44:02 +02:00
|
|
|
} else {
|
|
|
|
json.data = {};
|
|
|
|
}';
|
2019-06-06 17:50:47 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
$js .= '
|
|
|
|
return json.data;
|
|
|
|
}
|
|
|
|
},
|
|
|
|
data: function (data) {
|
|
|
|
inputs = $("#'.$form_id.' :input");
|
|
|
|
|
|
|
|
values = {};
|
|
|
|
inputs.each(function() {
|
|
|
|
values[this.name] = $(this).val();
|
|
|
|
})
|
|
|
|
|
|
|
|
$.extend(data, {
|
|
|
|
filter: values,'."\n";
|
|
|
|
|
|
|
|
foreach ($parameters['ajax_data'] as $k => $v) {
|
|
|
|
$js .= $k.':'.json_encode($v).",\n";
|
|
|
|
}
|
|
|
|
|
|
|
|
$js .= 'page: "'.$parameters['ajax_url'].'"
|
|
|
|
});
|
|
|
|
|
|
|
|
return data;
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"columnDefs": [
|
2019-06-11 12:58:18 +02:00
|
|
|
{ className: "no-class", targets: "_all" },
|
|
|
|
{ bSortable: false, targets: '.$no_sortable_columns.' }
|
2019-06-06 17:50:47 +02:00
|
|
|
],
|
|
|
|
columns: [';
|
|
|
|
|
|
|
|
foreach ($parameters['datacolumns'] as $data) {
|
2019-06-12 18:19:39 +02:00
|
|
|
if (is_array($data)) {
|
|
|
|
$js .= '{data : "'.$data['text'].'",className: "'.$data['class'].'"},';
|
|
|
|
} else {
|
|
|
|
$js .= '{data : "'.$data.'",className: "no-class"},';
|
|
|
|
}
|
2019-06-06 17:50:47 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
$js .= '
|
|
|
|
],
|
2019-06-07 17:35:13 +02:00
|
|
|
order: [[ '.$order.' ]]
|
2019-06-06 17:50:47 +02:00
|
|
|
});
|
|
|
|
|
|
|
|
$("#'.$form_id.'_search_bt").click(function (){
|
|
|
|
dt_'.$table_id.'.draw().page(0)
|
|
|
|
});
|
|
|
|
});
|
|
|
|
</script>';
|
|
|
|
|
2019-06-10 15:18:35 +02:00
|
|
|
// Order.
|
2019-06-18 10:32:04 +02:00
|
|
|
$err_msg = '<div id="error-'.$table_id.'"></div>';
|
|
|
|
$output = $err_msg.$filter.$extra.$table.$js;
|
2019-06-06 17:50:47 +02:00
|
|
|
|
|
|
|
ui_require_css_file('datatables.min', 'include/styles/js/');
|
|
|
|
ui_require_javascript_file('datatables.min');
|
|
|
|
ui_require_javascript_file('buttons.dataTables.min');
|
|
|
|
ui_require_javascript_file('dataTables.buttons.min');
|
|
|
|
ui_require_javascript_file('buttons.html5.min');
|
|
|
|
ui_require_javascript_file('buttons.print.min');
|
|
|
|
|
|
|
|
$output = $include.$output;
|
|
|
|
|
|
|
|
// Print datatable if needed.
|
|
|
|
if (!(isset($parameters['print']) && $parameters['print'] === false)) {
|
|
|
|
echo $output;
|
|
|
|
}
|
|
|
|
|
|
|
|
return $output;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2019-05-29 11:21:57 +02:00
|
|
|
/**
|
|
|
|
* Returns a div wich represents the type received.
|
|
|
|
*
|
|
|
|
* Requires ui_require_css_file('events');.
|
|
|
|
*
|
|
|
|
* @param integer $type Event type.
|
|
|
|
* @param boolean $return Or print.
|
|
|
|
* @param boolean $mini Show mini div.
|
|
|
|
*
|
|
|
|
* @return string HTML.
|
|
|
|
*/
|
|
|
|
function ui_print_event_type(
|
|
|
|
$type,
|
|
|
|
$return=false,
|
|
|
|
$mini=false
|
|
|
|
) {
|
|
|
|
global $config;
|
|
|
|
|
|
|
|
$output = '';
|
|
|
|
switch ($type) {
|
|
|
|
case EVENTS_ALERT_FIRED:
|
|
|
|
case EVENTS_ALERT_RECOVERED:
|
|
|
|
case EVENTS_ALERT_CEASED:
|
|
|
|
case EVENTS_ALERT_MANUAL_VALIDATION:
|
|
|
|
$text = __('ALERT');
|
|
|
|
$color = COL_ALERTFIRED;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case EVENTS_RECON_HOST_DETECTED:
|
|
|
|
case EVENTS_SYSTEM:
|
|
|
|
case EVENTS_ERROR:
|
|
|
|
case EVENTS_NEW_AGENT:
|
|
|
|
case EVENTS_CONFIGURATION_CHANGE:
|
|
|
|
$text = __('SYSTEM');
|
|
|
|
$color = COL_MAINTENANCE;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case EVENTS_GOING_UP_WARNING:
|
|
|
|
case EVENTS_GOING_DOWN_WARNING:
|
|
|
|
$color = COL_WARNING;
|
|
|
|
$text = __('WARNING');
|
|
|
|
break;
|
|
|
|
|
|
|
|
case EVENTS_GOING_DOWN_NORMAL:
|
|
|
|
case EVENTS_GOING_UP_NORMAL:
|
|
|
|
$color = COL_NORMAL;
|
|
|
|
$text = __('NORMAL');
|
|
|
|
break;
|
|
|
|
|
|
|
|
case EVENTS_GOING_DOWN_CRITICAL:
|
|
|
|
case EVENTS_GOING_UP_CRITICAL:
|
|
|
|
$color = COL_CRITICAL;
|
|
|
|
$text = __('CRITICAL');
|
|
|
|
break;
|
|
|
|
|
|
|
|
case EVENTS_UNKNOWN:
|
|
|
|
case EVENTS_GOING_UNKNOWN:
|
|
|
|
default:
|
|
|
|
$color = COL_UNKNOWN;
|
|
|
|
$text = __('UNKNOWN');
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($mini === false) {
|
|
|
|
$output = '<div class="criticity" style="background: '.$color.'">';
|
|
|
|
$output .= $text;
|
|
|
|
$output .= '</div>';
|
|
|
|
} else {
|
2019-05-29 11:24:17 +02:00
|
|
|
$output = '<div data-title="';
|
|
|
|
$output .= $text;
|
|
|
|
$output .= '" data-use_title_for_force_title="1" ';
|
|
|
|
$output .= 'class="forced_title mini-criticity" ';
|
|
|
|
$output .= 'style="background: '.$color.'">';
|
2019-05-29 11:21:57 +02:00
|
|
|
$output .= '</div>';
|
|
|
|
}
|
|
|
|
|
|
|
|
return $output;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2019-05-28 18:03:01 +02:00
|
|
|
/**
|
|
|
|
* Returns a div wich represents the priority received.
|
|
|
|
*
|
|
|
|
* Requires ui_require_css_file('events');.
|
|
|
|
*
|
2019-05-29 11:21:57 +02:00
|
|
|
* @param integer $priority Priority level.
|
2019-05-28 18:03:01 +02:00
|
|
|
* @param boolean $return Or print.
|
2019-05-29 11:21:57 +02:00
|
|
|
* @param boolean $mini Show mini div.
|
2019-05-28 18:03:01 +02:00
|
|
|
*
|
|
|
|
* @return string HTML.
|
|
|
|
*/
|
|
|
|
function ui_print_event_priority(
|
|
|
|
$priority,
|
|
|
|
$return=false,
|
|
|
|
$mini=false
|
|
|
|
) {
|
|
|
|
global $config;
|
|
|
|
|
|
|
|
$output = '';
|
|
|
|
switch ($priority) {
|
|
|
|
case EVENT_CRIT_MAINTENANCE:
|
|
|
|
$color = COL_MAINTENANCE;
|
|
|
|
$criticity = __('MAINTENANCE');
|
|
|
|
break;
|
|
|
|
|
|
|
|
case EVENT_CRIT_INFORMATIONAL:
|
|
|
|
$color = COL_INFORMATIONAL;
|
|
|
|
$criticity = __('INFORMATIONAL');
|
|
|
|
break;
|
|
|
|
|
|
|
|
case EVENT_CRIT_NORMAL:
|
|
|
|
$color = COL_NORMAL;
|
|
|
|
$criticity = __('NORMAL');
|
|
|
|
break;
|
|
|
|
|
|
|
|
case EVENT_CRIT_WARNING:
|
|
|
|
$color = COL_WARNING;
|
|
|
|
$criticity = __('WARNING');
|
|
|
|
break;
|
|
|
|
|
|
|
|
case EVENT_CRIT_CRITICAL:
|
|
|
|
$color = COL_CRITICAL;
|
|
|
|
$criticity = __('CRITICAL');
|
|
|
|
break;
|
|
|
|
|
|
|
|
case EVENT_CRIT_MINOR:
|
|
|
|
$color = COL_MINOR;
|
|
|
|
$criticity = __('MINOR');
|
|
|
|
break;
|
|
|
|
|
|
|
|
case EVENT_CRIT_MAJOR:
|
|
|
|
$color = COL_MAJOR;
|
|
|
|
$criticity = __('MAJOR');
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
$color = COL_UNKNOWN;
|
|
|
|
$criticity = __('UNKNOWN');
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($mini === false) {
|
|
|
|
$output = '<div class="criticity" style="background: '.$color.'">';
|
|
|
|
$output .= $criticity;
|
|
|
|
$output .= '</div>';
|
|
|
|
} else {
|
2019-05-29 11:24:17 +02:00
|
|
|
$output = '<div data-title="';
|
|
|
|
$output .= $criticity;
|
|
|
|
$output .= '" data-use_title_for_force_title="1" ';
|
|
|
|
$output .= 'class="forced_title mini-criticity" ';
|
|
|
|
$output .= 'style="background: '.$color.'">';
|
2019-05-28 18:03:01 +02:00
|
|
|
$output .= '</div>';
|
|
|
|
}
|
|
|
|
|
|
|
|
return $output;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2010-08-23 18:35:25 +02:00
|
|
|
/**
|
2019-05-28 10:47:31 +02:00
|
|
|
* Print a code into a DIV and enable a toggle to show and hide it.
|
|
|
|
*
|
2019-06-04 13:57:55 +02:00
|
|
|
* @param string $code Html code.
|
|
|
|
* @param string $name Name of the link.
|
|
|
|
* @param string $title Title of the link.
|
|
|
|
* @param string $id Block id.
|
|
|
|
* @param boolean $hidden_default If the div will be hidden by default (default: true).
|
|
|
|
* @param boolean $return Whether to return an output string or echo now (default: true).
|
|
|
|
* @param string $toggle_class Toggle class.
|
|
|
|
* @param string $container_class Container class.
|
|
|
|
* @param string $main_class Main object class.
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @return string HTML.
|
2010-08-23 18:35:25 +02:00
|
|
|
*/
|
2019-05-28 10:47:31 +02:00
|
|
|
function ui_toggle(
|
|
|
|
$code,
|
|
|
|
$name,
|
|
|
|
$title='',
|
2019-06-04 13:57:55 +02:00
|
|
|
$id='',
|
2019-05-28 10:47:31 +02:00
|
|
|
$hidden_default=true,
|
|
|
|
$return=false,
|
2019-05-29 18:13:21 +02:00
|
|
|
$toggle_class='',
|
2019-06-04 13:57:55 +02:00
|
|
|
$container_class='white-box-content',
|
|
|
|
$main_class='box-shadow white_table_graph'
|
2019-05-28 10:47:31 +02:00
|
|
|
) {
|
|
|
|
// Generate unique Id.
|
2019-01-30 16:18:44 +01:00
|
|
|
$uniqid = uniqid('');
|
|
|
|
|
2019-05-27 19:08:41 +02:00
|
|
|
$image_a = html_print_image('images/arrow_down_green.png', true, false, true);
|
|
|
|
$image_b = html_print_image('images/arrow_right_green.png', true, false, true);
|
2019-05-28 10:47:31 +02:00
|
|
|
// Options.
|
2019-01-30 16:18:44 +01:00
|
|
|
if ($hidden_default) {
|
|
|
|
$style = 'display:none';
|
2019-05-27 19:08:41 +02:00
|
|
|
$original = 'images/arrow_right_green.png';
|
2019-01-30 16:18:44 +01:00
|
|
|
} else {
|
|
|
|
$style = '';
|
2019-05-27 19:08:41 +02:00
|
|
|
$original = 'images/arrow_down_green.png';
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// Link to toggle.
|
2019-06-04 13:57:55 +02:00
|
|
|
$output = '<div class="'.$main_class.'" id="'.$id.'">';
|
2019-05-28 16:24:28 +02:00
|
|
|
$output .= '<div class="white_table_graph_header" style="cursor: pointer;" id="tgl_ctrl_'.$uniqid.'">'.html_print_image(
|
2019-05-28 13:27:17 +02:00
|
|
|
$original,
|
|
|
|
true,
|
|
|
|
[
|
|
|
|
'title' => $title,
|
|
|
|
'id' => 'image_'.$uniqid,
|
|
|
|
]
|
2019-05-28 16:20:24 +02:00
|
|
|
).' <b>'.$name.'</b></div>';
|
2019-04-17 10:35:32 +02:00
|
|
|
// $output .= '<br />';
|
2019-01-30 16:18:44 +01:00
|
|
|
// if (!defined("METACONSOLE"))
|
|
|
|
// $output .= '<br />';
|
|
|
|
// Code into a div
|
2019-05-28 16:24:28 +02:00
|
|
|
$output .= "<div id='tgl_div_".$uniqid."' style='".$style.";margin-top: -1px;' class='".$toggle_class."'>\n";
|
2019-05-29 18:13:21 +02:00
|
|
|
$output .= '<div class="'.$container_class.'">';
|
2019-01-30 16:18:44 +01:00
|
|
|
$output .= $code;
|
|
|
|
$output .= '</div>';
|
2019-05-29 17:49:09 +02:00
|
|
|
$output .= '</div>';
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// JQuery Toggle.
|
2019-01-30 16:18:44 +01:00
|
|
|
$output .= '<script type="text/javascript">'."\n";
|
|
|
|
$output .= ' var hide_tgl_ctrl_'.$uniqid.' = '.(int) $hidden_default.";\n";
|
|
|
|
$output .= ' /* <![CDATA[ */'."\n";
|
|
|
|
$output .= " $(document).ready (function () {\n";
|
|
|
|
$output .= " $('#tgl_ctrl_".$uniqid."').click(function() {\n";
|
|
|
|
$output .= ' if (hide_tgl_ctrl_'.$uniqid.") {\n";
|
|
|
|
$output .= ' hide_tgl_ctrl_'.$uniqid." = 0;\n";
|
|
|
|
$output .= " $('#tgl_div_".$uniqid."').toggle();\n";
|
|
|
|
$output .= " $('#image_".$uniqid."').attr({src: '".$image_a."'});\n";
|
|
|
|
$output .= " }\n";
|
|
|
|
$output .= " else {\n";
|
|
|
|
$output .= ' hide_tgl_ctrl_'.$uniqid." = 1;\n";
|
|
|
|
$output .= " $('#tgl_div_".$uniqid."').toggle();\n";
|
|
|
|
$output .= " $('#image_".$uniqid."').attr({src: '".$image_b."'});\n";
|
|
|
|
$output .= " }\n";
|
|
|
|
$output .= " });\n";
|
|
|
|
$output .= " });\n";
|
|
|
|
$output .= '/* ]]> */';
|
|
|
|
$output .= '</script>';
|
2019-05-28 16:20:24 +02:00
|
|
|
$output .= '</div>';
|
2019-01-30 16:18:44 +01:00
|
|
|
|
|
|
|
if (!$return) {
|
|
|
|
echo $output;
|
|
|
|
} else {
|
|
|
|
return $output;
|
|
|
|
}
|
2010-08-23 18:35:25 +02:00
|
|
|
}
|
2009-04-21 21:03:16 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2009-04-21 21:03:16 +02:00
|
|
|
/**
|
|
|
|
* Construct and return the URL to be used in order to refresh the current page correctly.
|
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @param array $params Extra parameters to be added to the URL. It has prevalence over
|
|
|
|
* GET and POST. False values will be ignored.
|
|
|
|
* @param boolean $relative Whether to return the relative URL or the absolute URL. Returns
|
|
|
|
* relative by default.
|
|
|
|
* @param boolean $add_post Whether to add POST values to the URL.
|
|
|
|
*
|
|
|
|
* @return string Url.
|
2012-09-10 17:51:47 +02:00
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_get_url_refresh($params=false, $relative=true, $add_post=true)
|
|
|
|
{
|
2019-05-28 10:47:31 +02:00
|
|
|
// Agent selection filters and refresh.
|
2019-01-30 16:18:44 +01:00
|
|
|
global $config;
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// Slerena, 8/Ene/2015 - Need to put index.php on URL which have it.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (strpos($_SERVER['REQUEST_URI'], 'index.php') === false) {
|
|
|
|
$url = '';
|
|
|
|
} else {
|
|
|
|
$url = 'index.php';
|
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
if (count($_REQUEST)) {
|
|
|
|
// Some (old) browsers don't like the ?&key=var.
|
2019-01-30 16:18:44 +01:00
|
|
|
$url .= '?';
|
|
|
|
}
|
|
|
|
|
|
|
|
if (! is_array($params)) {
|
|
|
|
$params = [];
|
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// Avoid showing login info.
|
2019-01-30 16:18:44 +01:00
|
|
|
$params['pass'] = false;
|
|
|
|
$params['nick'] = false;
|
|
|
|
$params['unnamed'] = false;
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// We don't clean these variables up as they're only being passed along.
|
2019-01-30 16:18:44 +01:00
|
|
|
foreach ($_GET as $key => $value) {
|
|
|
|
if (isset($params[$key])) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (strstr($key, 'create')) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (strstr($key, 'update')) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (strstr($key, 'new')) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (strstr($key, 'delete')) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (is_array($value)) {
|
|
|
|
foreach ($value as $k => $v) {
|
|
|
|
$url .= $key.'['.$k.']='.$v.'&';
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
$url .= $key.'='.$value.'&';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($add_post) {
|
|
|
|
foreach ($_POST as $key => $value) {
|
|
|
|
if (isset($params[$key])) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (strstr($key, 'create')) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (strstr($key, 'update')) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (strstr($key, 'new')) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (strstr($key, 'delete')) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (is_array($value)) {
|
|
|
|
foreach ($value as $k => $v) {
|
|
|
|
$url .= $key.'['.$k.']='.$v.'&';
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
$url .= $key.'='.$value.'&';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
foreach ($params as $key => $value) {
|
|
|
|
if ($value === false) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (is_array($value)) {
|
|
|
|
foreach ($value as $k => $v) {
|
|
|
|
$url .= $key.'['.$k.']='.$v.'&';
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
$url .= $key.'='.$value.'&';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// Removes final &.
|
2019-01-30 16:18:44 +01:00
|
|
|
$pos = strrpos($url, '&', 0);
|
|
|
|
if ($pos) {
|
|
|
|
$url = substr_replace($url, '', $pos, 5);
|
|
|
|
}
|
|
|
|
|
|
|
|
$url = htmlspecialchars($url);
|
|
|
|
|
|
|
|
if (! $relative) {
|
|
|
|
return ui_get_full_url($url);
|
|
|
|
}
|
|
|
|
|
|
|
|
return $url;
|
2009-04-21 21:03:16 +02:00
|
|
|
}
|
2009-05-07 16:44:26 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2009-05-07 16:44:26 +02:00
|
|
|
/**
|
2012-02-24 Miguel de Dios <miguel.dedios@artica.es>
* pandora_console/include/functions_ui.php: changed the source code into the
function "ui_get_full_url" for accept false for to return url with the home
url or with any string (as query) return url with the php file.
* pandora_console/include/functions_graph.php,
pandora_console/include/functions_html.php,
pandora_console/include/functions_events.php,
pandora_console/include/functions_reporting.php,
pandora_console/include/functions_api.php,
pandora_console/include/functions.php, pandora_console/index.php,
pandora_console/extensions/system_info.php,
pandora_console/operation/agentes/stat_win.php,
pandora_console/operation/menu.php,
pandora_console/operation/events/events_rss.php,
pandora_console/operation/events/events_marquee.php,
pandora_console/operation/events/events.php: change in more part of source
code to use "ui_get_full_url" instead the hard write method of $_SERVER
vars, now Pandora Console run fine (in all actions I hope) with web servers
in other ports instead the typical 80.
Merged from branch pandora_4.0
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@5646 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2012-02-24 14:48:46 +01:00
|
|
|
* Returns a full URL in Pandora. (with the port and https in some systems)
|
2009-05-07 16:44:26 +02:00
|
|
|
*
|
|
|
|
* An example of full URL is http:/localhost/pandora_console/index.php?sec=gsetup&sec2=godmode/setup/setup
|
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @param mixed $url If provided, it will be added after the index.php, but it is false boolean value, put the homeurl in the url.
|
|
|
|
* @param boolean $no_proxy To avoid the proxy checks, by default it is false.
|
|
|
|
* @param boolean $add_name_php_file Something.
|
|
|
|
* @param boolean $metaconsole_root Set the root to the metaconsole dir if the metaconsole is enabled, true by default.
|
2009-05-07 16:44:26 +02:00
|
|
|
*
|
|
|
|
* @return string A full URL in Pandora.
|
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_get_full_url($url='', $no_proxy=false, $add_name_php_file=false, $metaconsole_root=true)
|
|
|
|
{
|
|
|
|
global $config;
|
|
|
|
|
|
|
|
$port = null;
|
2019-05-28 10:47:31 +02:00
|
|
|
// Null means 'use the starndard port'.
|
2019-01-30 16:18:44 +01:00
|
|
|
$proxy = false;
|
|
|
|
// By default Pandora FMS doesn't run across proxy.
|
|
|
|
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])
|
|
|
|
&& $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'
|
|
|
|
) {
|
|
|
|
$_SERVER['HTTPS'] = 'on';
|
|
|
|
}
|
|
|
|
|
|
|
|
if (isset($_SERVER['HTTPS'])
|
|
|
|
&& ($_SERVER['HTTPS'] === true
|
|
|
|
|| $_SERVER['HTTPS'] == 'on')
|
|
|
|
) {
|
|
|
|
$protocol = 'https';
|
|
|
|
if ($_SERVER['SERVER_PORT'] != 443) {
|
|
|
|
$port = $_SERVER['SERVER_PORT'];
|
|
|
|
}
|
|
|
|
} else if ($config['https']) {
|
2019-05-28 10:47:31 +02:00
|
|
|
// When $config["https"] is set, enforce https.
|
2019-01-30 16:18:44 +01:00
|
|
|
$protocol = 'https';
|
|
|
|
} else {
|
|
|
|
$protocol = 'http';
|
|
|
|
|
|
|
|
if ($_SERVER['SERVER_PORT'] != 80) {
|
|
|
|
$port = $_SERVER['SERVER_PORT'];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!$no_proxy) {
|
|
|
|
// Check if the PandoraFMS runs across the proxy like as
|
|
|
|
// mod_proxy of Apache
|
2019-05-28 10:47:31 +02:00
|
|
|
// and check if public_url is set.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (!empty($config['public_url'])
|
|
|
|
&& (!empty($_SERVER['HTTP_X_FORWARDED_HOST']))
|
|
|
|
) {
|
|
|
|
$fullurl = $config['public_url'];
|
|
|
|
$proxy = true;
|
|
|
|
} else {
|
|
|
|
$fullurl = $protocol.'://'.$_SERVER['SERVER_NAME'];
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
$fullurl = $protocol.'://'.$_SERVER['SERVER_NAME'];
|
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// Using a different port than the standard.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (!$proxy) {
|
2019-05-28 10:47:31 +02:00
|
|
|
// Using a different port than the standard.
|
2019-01-30 16:18:44 +01:00
|
|
|
if ($port != null) {
|
|
|
|
$fullurl .= ':'.$port;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($url === '') {
|
|
|
|
if ($proxy) {
|
|
|
|
$url = '';
|
|
|
|
} else {
|
|
|
|
$url = $_SERVER['REQUEST_URI'];
|
|
|
|
}
|
|
|
|
} else if ($url === false) {
|
|
|
|
if ($proxy) {
|
|
|
|
$url = '';
|
|
|
|
} else {
|
2019-05-28 10:47:31 +02:00
|
|
|
// Only add the home url.
|
2019-01-30 16:18:44 +01:00
|
|
|
$url = $config['homeurl_static'].'/';
|
|
|
|
}
|
|
|
|
|
|
|
|
if (defined('METACONSOLE') && $metaconsole_root) {
|
|
|
|
$url .= 'enterprise/meta/';
|
|
|
|
}
|
|
|
|
} else if (!strstr($url, '.php')) {
|
|
|
|
if ($proxy) {
|
|
|
|
$fullurl .= '/';
|
|
|
|
} else {
|
|
|
|
$fullurl .= $config['homeurl_static'].'/';
|
|
|
|
}
|
|
|
|
|
|
|
|
if (defined('METACONSOLE') && $metaconsole_root) {
|
|
|
|
$fullurl .= 'enterprise/meta/';
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
if ($proxy) {
|
|
|
|
$fullurl .= '/';
|
|
|
|
} else {
|
|
|
|
if ($add_name_php_file) {
|
|
|
|
$fullurl .= $_SERVER['SCRIPT_NAME'];
|
|
|
|
} else {
|
|
|
|
$fullurl .= $config['homeurl_static'].'/';
|
|
|
|
|
|
|
|
if (defined('METACONSOLE') && $metaconsole_root) {
|
|
|
|
$fullurl .= 'enterprise/meta/';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (substr($fullurl, -1, 1) === substr($url, 0, 1)) {
|
|
|
|
if (substr($fullurl, -1, 1) === '/') {
|
|
|
|
$url = substr($url, 1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return $fullurl.$url;
|
2009-05-07 16:44:26 +02:00
|
|
|
}
|
2010-02-19 Sancho Lerena <slerena@artica.es>
* functions_events.php: Fixed typo (switched meaning) in two labels.
* include/styles/pandora.css: Changed background color of th default style.
* include/functions_reporting.php: Improved function get_group_stats(). Now
supports stats from batch-mode and get realtime stats in a more efficient
way. Fixed get_fired_alerts_reporting_table() to avoid problems in external
reporting (PDF & XML).
* include/functions_servers.php: get_server_performance() now uses batch mode
stats reporting, and improved also the realtime stats generation. Same with
function get_server_info().
* include/functions_config.php: Added new config tokens (not fully
implemented yet) for event, trap, strings and audit automatic purge.
* include/functions_ui.php: Added new print_page_header() function to set
the new standard header in all pages, using the "tabbed" format to show
the title, subtitle and other options like help, or custom-tabs for the page
* pandoradb.sql: Added tserver.stat_utimestamp field. Added indexes to
tsession table. Fixed typo in field name in tgroup_stat: agents_uknown to
agents_unknown.
* extensions/ext_backup: New directory to place "deleted" extensions.
* extensions/dbmanager/dbmanager.css: Table names now are in it's original
lowercase/uppercase format.
* extensions/dbmanager.php: Updated headers, and now return "empty" when
a search is empty, instead "error" as before.
* extensions/users_connected.php
extensions/module_groups.php
extensions/plugin_registration.php
extensions/pandora_logs.php
operation/incidents/incident.php
operation/snmpconsole/snmp_view.php
operation/users/user.php
operation/users/user_edit.php
godmode/agentes/planned_downtime.php
operation/events/events.php
operation/visual_console/index.php
operation/agentes/estado_generalagente.php
operation/agentes/estado_agente.php
operation/agentes/exportdata.php
operation/agentes/ver_agente.php
operation/agentes/status_monitor.php
operation/agentes/alerts_status.php
operation/users/user_statistics.php: Added new header format.
* operation/agentes/estado_grupo.php: Removed old group view.
* operation/agentes/tactical.php: Adapted to use new realtime/batch
statistical system. Placed events above server info. Showing only pending
events and other minor changes.
* operation/agentes/group_view.php: NEW screen, replacing old one. Probably
most ugly, but much more useful than before.
* operation/agentes/networkmap.php: Added title.
* operation/messages/message.php: Added title and adding some exists in
code was missing before.
* operation/reporting/reporting_viewer.php: Added title.
* operation/reporting/graph_viewer.php: Added title.
* operation/reporting/custom_reporting.php: Added title.
* operation/servers/view_server.php:
* operation/menu.php: Replaced old group view with new (this has english
name). Removed autorefresh "by default" in server view.
* extras/pandoradb_migrate_v3.0_to_v3.1.sql: Fixed typo.
* extras/pandora_diag.php: Minor changes, removed some info and added other.
* general/logon_ok.php: Minor aesthetic changes.
* general/header.php: Fixed missing ";"
* operation/extensions.php,
godmode/extensions.php: Added support for delete extensions.
* godmode/menu.php: New setup items.
* godmode/setup/setup.php,
godmode/setup/performance.php,
godmode/setup/setup_visuals.php: Reordered setup options, new setup section
"Performance", added new performance options to set "realtime" statistics
or "batchmode" with it's own interval. Some setup info is now shared with
the servers (but it it's any change in setup, servers should be restarted
anyway).
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@2390 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2010-02-19 16:16:03 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2010-02-19 Sancho Lerena <slerena@artica.es>
* functions_events.php: Fixed typo (switched meaning) in two labels.
* include/styles/pandora.css: Changed background color of th default style.
* include/functions_reporting.php: Improved function get_group_stats(). Now
supports stats from batch-mode and get realtime stats in a more efficient
way. Fixed get_fired_alerts_reporting_table() to avoid problems in external
reporting (PDF & XML).
* include/functions_servers.php: get_server_performance() now uses batch mode
stats reporting, and improved also the realtime stats generation. Same with
function get_server_info().
* include/functions_config.php: Added new config tokens (not fully
implemented yet) for event, trap, strings and audit automatic purge.
* include/functions_ui.php: Added new print_page_header() function to set
the new standard header in all pages, using the "tabbed" format to show
the title, subtitle and other options like help, or custom-tabs for the page
* pandoradb.sql: Added tserver.stat_utimestamp field. Added indexes to
tsession table. Fixed typo in field name in tgroup_stat: agents_uknown to
agents_unknown.
* extensions/ext_backup: New directory to place "deleted" extensions.
* extensions/dbmanager/dbmanager.css: Table names now are in it's original
lowercase/uppercase format.
* extensions/dbmanager.php: Updated headers, and now return "empty" when
a search is empty, instead "error" as before.
* extensions/users_connected.php
extensions/module_groups.php
extensions/plugin_registration.php
extensions/pandora_logs.php
operation/incidents/incident.php
operation/snmpconsole/snmp_view.php
operation/users/user.php
operation/users/user_edit.php
godmode/agentes/planned_downtime.php
operation/events/events.php
operation/visual_console/index.php
operation/agentes/estado_generalagente.php
operation/agentes/estado_agente.php
operation/agentes/exportdata.php
operation/agentes/ver_agente.php
operation/agentes/status_monitor.php
operation/agentes/alerts_status.php
operation/users/user_statistics.php: Added new header format.
* operation/agentes/estado_grupo.php: Removed old group view.
* operation/agentes/tactical.php: Adapted to use new realtime/batch
statistical system. Placed events above server info. Showing only pending
events and other minor changes.
* operation/agentes/group_view.php: NEW screen, replacing old one. Probably
most ugly, but much more useful than before.
* operation/agentes/networkmap.php: Added title.
* operation/messages/message.php: Added title and adding some exists in
code was missing before.
* operation/reporting/reporting_viewer.php: Added title.
* operation/reporting/graph_viewer.php: Added title.
* operation/reporting/custom_reporting.php: Added title.
* operation/servers/view_server.php:
* operation/menu.php: Replaced old group view with new (this has english
name). Removed autorefresh "by default" in server view.
* extras/pandoradb_migrate_v3.0_to_v3.1.sql: Fixed typo.
* extras/pandora_diag.php: Minor changes, removed some info and added other.
* general/logon_ok.php: Minor aesthetic changes.
* general/header.php: Fixed missing ";"
* operation/extensions.php,
godmode/extensions.php: Added support for delete extensions.
* godmode/menu.php: New setup items.
* godmode/setup/setup.php,
godmode/setup/performance.php,
godmode/setup/setup_visuals.php: Reordered setup options, new setup section
"Performance", added new performance options to set "realtime" statistics
or "batchmode" with it's own interval. Some setup info is now shared with
the servers (but it it's any change in setup, servers should be restarted
anyway).
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@2390 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2010-02-19 16:16:03 +01:00
|
|
|
/**
|
|
|
|
* Return a standard page header (Pandora FMS 3.1 version)
|
|
|
|
*
|
2019-05-27 19:00:48 +02:00
|
|
|
* @param string $title Title.
|
|
|
|
* @param string $icon Icon path.
|
|
|
|
* @param boolean $return Return (false will print using a echo).
|
|
|
|
* @param boolean $help Help (Help ID to print the Help link).
|
|
|
|
* @param boolean $godmode Godmode (false = operation mode).
|
|
|
|
* @param string $options Options (HTML code for make tabs or just a brief
|
|
|
|
* info string.
|
|
|
|
* @param mixed $modal Modal.
|
|
|
|
* @param mixed $message Message.
|
|
|
|
* @param mixed $numChars NumChars.
|
|
|
|
* @param mixed $alias Alias.
|
|
|
|
* @param mixed $breadcrumbs Breadcrumbs.
|
|
|
|
*
|
2010-02-19 Sancho Lerena <slerena@artica.es>
* functions_events.php: Fixed typo (switched meaning) in two labels.
* include/styles/pandora.css: Changed background color of th default style.
* include/functions_reporting.php: Improved function get_group_stats(). Now
supports stats from batch-mode and get realtime stats in a more efficient
way. Fixed get_fired_alerts_reporting_table() to avoid problems in external
reporting (PDF & XML).
* include/functions_servers.php: get_server_performance() now uses batch mode
stats reporting, and improved also the realtime stats generation. Same with
function get_server_info().
* include/functions_config.php: Added new config tokens (not fully
implemented yet) for event, trap, strings and audit automatic purge.
* include/functions_ui.php: Added new print_page_header() function to set
the new standard header in all pages, using the "tabbed" format to show
the title, subtitle and other options like help, or custom-tabs for the page
* pandoradb.sql: Added tserver.stat_utimestamp field. Added indexes to
tsession table. Fixed typo in field name in tgroup_stat: agents_uknown to
agents_unknown.
* extensions/ext_backup: New directory to place "deleted" extensions.
* extensions/dbmanager/dbmanager.css: Table names now are in it's original
lowercase/uppercase format.
* extensions/dbmanager.php: Updated headers, and now return "empty" when
a search is empty, instead "error" as before.
* extensions/users_connected.php
extensions/module_groups.php
extensions/plugin_registration.php
extensions/pandora_logs.php
operation/incidents/incident.php
operation/snmpconsole/snmp_view.php
operation/users/user.php
operation/users/user_edit.php
godmode/agentes/planned_downtime.php
operation/events/events.php
operation/visual_console/index.php
operation/agentes/estado_generalagente.php
operation/agentes/estado_agente.php
operation/agentes/exportdata.php
operation/agentes/ver_agente.php
operation/agentes/status_monitor.php
operation/agentes/alerts_status.php
operation/users/user_statistics.php: Added new header format.
* operation/agentes/estado_grupo.php: Removed old group view.
* operation/agentes/tactical.php: Adapted to use new realtime/batch
statistical system. Placed events above server info. Showing only pending
events and other minor changes.
* operation/agentes/group_view.php: NEW screen, replacing old one. Probably
most ugly, but much more useful than before.
* operation/agentes/networkmap.php: Added title.
* operation/messages/message.php: Added title and adding some exists in
code was missing before.
* operation/reporting/reporting_viewer.php: Added title.
* operation/reporting/graph_viewer.php: Added title.
* operation/reporting/custom_reporting.php: Added title.
* operation/servers/view_server.php:
* operation/menu.php: Replaced old group view with new (this has english
name). Removed autorefresh "by default" in server view.
* extras/pandoradb_migrate_v3.0_to_v3.1.sql: Fixed typo.
* extras/pandora_diag.php: Minor changes, removed some info and added other.
* general/logon_ok.php: Minor aesthetic changes.
* general/header.php: Fixed missing ";"
* operation/extensions.php,
godmode/extensions.php: Added support for delete extensions.
* godmode/menu.php: New setup items.
* godmode/setup/setup.php,
godmode/setup/performance.php,
godmode/setup/setup_visuals.php: Reordered setup options, new setup section
"Performance", added new performance options to set "realtime" statistics
or "batchmode" with it's own interval. Some setup info is now shared with
the servers (but it it's any change in setup, servers should be restarted
anyway).
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@2390 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2010-02-19 16:16:03 +01:00
|
|
|
* @return string Header HTML
|
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_print_page_header(
|
|
|
|
$title,
|
|
|
|
$icon='',
|
|
|
|
$return=false,
|
|
|
|
$help='',
|
|
|
|
$godmode=false,
|
|
|
|
$options='',
|
|
|
|
$modal=false,
|
|
|
|
$message='',
|
|
|
|
$numChars=GENERIC_SIZE_TEXT,
|
2019-03-26 15:42:33 +01:00
|
|
|
$alias='',
|
|
|
|
$breadcrumbs=''
|
2019-01-30 16:18:44 +01:00
|
|
|
) {
|
|
|
|
$title = io_safe_input_html($title);
|
|
|
|
if (($icon == '') && ($godmode == true)) {
|
|
|
|
$icon = 'images/gm_setup.png';
|
|
|
|
}
|
|
|
|
|
|
|
|
if (($icon == '') && ($godmode == false)) {
|
|
|
|
$icon = '';
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($godmode == true) {
|
|
|
|
$type = 'view';
|
2019-05-30 18:21:13 +02:00
|
|
|
$type2 = 'menu_tab_frame_view';
|
2019-01-30 16:18:44 +01:00
|
|
|
$separator_class = 'separator';
|
|
|
|
} else {
|
|
|
|
$type = 'view';
|
2019-05-30 18:21:13 +02:00
|
|
|
$type2 = 'menu_tab_frame_view';
|
2019-01-30 16:18:44 +01:00
|
|
|
$separator_class = 'separator_view';
|
|
|
|
}
|
|
|
|
|
2019-03-26 15:42:33 +01:00
|
|
|
$buffer = '<div id="'.$type2.'" style="">';
|
|
|
|
|
2019-03-27 12:11:23 +01:00
|
|
|
if (!empty($breadcrumbs)) {
|
2019-05-27 19:00:48 +02:00
|
|
|
$buffer .= '<div class="menu_tab_left_bc">';
|
|
|
|
$buffer .= '<div class="breadcrumbs_container">'.$breadcrumbs.'</div>';
|
2019-03-27 12:11:23 +01:00
|
|
|
}
|
2019-03-26 15:42:33 +01:00
|
|
|
|
|
|
|
$buffer .= '<div id="menu_tab_left">';
|
2019-01-30 16:18:44 +01:00
|
|
|
|
|
|
|
$buffer .= '<ul class="mn"><li class="'.$type.'">';
|
|
|
|
|
|
|
|
if (strpos($title, 'Monitoring » Services »') != -1) {
|
|
|
|
$title = str_replace('Monitoring » Services » Service Map » ', '', $title);
|
|
|
|
}
|
|
|
|
|
|
|
|
$buffer .= '<span>';
|
|
|
|
if (empty($alias)) {
|
|
|
|
$buffer .= ui_print_truncate_text($title, $numChars);
|
|
|
|
} else {
|
|
|
|
$buffer .= ui_print_truncate_text($alias, $numChars);
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($modal && !enterprise_installed()) {
|
|
|
|
$buffer .= "
|
2017-02-23 09:23:27 +01:00
|
|
|
<div id='".$message."' class='publienterprise' title='Community version' style='float: right;margin-top: -2px !important;'><img data-title='Enterprise version' class='img_help forced_title' data-use_title_for_force_title='1' src='images/alert_enterprise.png'></div>
|
2016-09-19 16:20:18 +02:00
|
|
|
";
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
if (!is_metaconsole()) {
|
|
|
|
if ($help != '') {
|
2019-03-20 13:26:15 +01:00
|
|
|
$buffer .= "<div class='head_help head_tip'>".ui_print_help_icon($help, true, '', 'images/help_g.png').'</div>';
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$buffer .= '</span>';
|
|
|
|
|
|
|
|
if (is_metaconsole()) {
|
|
|
|
if ($help != '') {
|
|
|
|
$buffer .= "<div class='head_help'>".ui_print_help_icon($help, true, '', 'images/help_30.png').'</div>';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$buffer .= '</li></ul></div>';
|
|
|
|
|
2019-05-27 19:00:48 +02:00
|
|
|
if (!empty($breadcrumbs)) {
|
|
|
|
$buffer .= '</div>';
|
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if (is_array($options)) {
|
|
|
|
$buffer .= '<div id="menu_tab"><ul class="mn">';
|
|
|
|
foreach ($options as $key => $option) {
|
|
|
|
if (empty($option)) {
|
|
|
|
continue;
|
|
|
|
} else if ($key === 'separator') {
|
|
|
|
continue;
|
|
|
|
// $buffer .= '<li class='.$separator_class.'>';
|
|
|
|
// $buffer .= '</li>';
|
|
|
|
} else {
|
|
|
|
if (is_array($option)) {
|
|
|
|
$class = 'nomn';
|
|
|
|
if (isset($option['active'])) {
|
|
|
|
if ($option['active']) {
|
|
|
|
$class = 'nomn_high';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// Tabs forced to other styles.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($option['godmode']) && $option['godmode']) {
|
|
|
|
$class .= ' tab_godmode';
|
|
|
|
} else if (isset($option['operation']) && ($option['operation'])) {
|
|
|
|
$class .= ' tab_operation';
|
|
|
|
} else {
|
2019-05-28 10:47:31 +02:00
|
|
|
$class .= ($godmode) ? ' tab_godmode' : ' tab_operation';
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
$buffer .= '<li class="'.$class.'">';
|
|
|
|
$buffer .= $option['text'];
|
|
|
|
if (isset($option['sub_menu'])) {
|
|
|
|
$buffer .= $option['sub_menu'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$buffer .= '</li>';
|
|
|
|
} else {
|
|
|
|
$buffer .= '<li class="nomn">';
|
|
|
|
$buffer .= $option;
|
|
|
|
$buffer .= '</li>';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$buffer .= '</ul></div>';
|
|
|
|
} else {
|
|
|
|
if ($options != '') {
|
|
|
|
$buffer .= '<div id="menu_tab"><ul class="mn"><li>';
|
|
|
|
$buffer .= $options;
|
|
|
|
$buffer .= '</li></ul></div>';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$buffer .= '</div>';
|
|
|
|
|
|
|
|
if (!$return) {
|
|
|
|
echo $buffer;
|
|
|
|
}
|
|
|
|
|
|
|
|
return $buffer;
|
2010-02-19 Sancho Lerena <slerena@artica.es>
* functions_events.php: Fixed typo (switched meaning) in two labels.
* include/styles/pandora.css: Changed background color of th default style.
* include/functions_reporting.php: Improved function get_group_stats(). Now
supports stats from batch-mode and get realtime stats in a more efficient
way. Fixed get_fired_alerts_reporting_table() to avoid problems in external
reporting (PDF & XML).
* include/functions_servers.php: get_server_performance() now uses batch mode
stats reporting, and improved also the realtime stats generation. Same with
function get_server_info().
* include/functions_config.php: Added new config tokens (not fully
implemented yet) for event, trap, strings and audit automatic purge.
* include/functions_ui.php: Added new print_page_header() function to set
the new standard header in all pages, using the "tabbed" format to show
the title, subtitle and other options like help, or custom-tabs for the page
* pandoradb.sql: Added tserver.stat_utimestamp field. Added indexes to
tsession table. Fixed typo in field name in tgroup_stat: agents_uknown to
agents_unknown.
* extensions/ext_backup: New directory to place "deleted" extensions.
* extensions/dbmanager/dbmanager.css: Table names now are in it's original
lowercase/uppercase format.
* extensions/dbmanager.php: Updated headers, and now return "empty" when
a search is empty, instead "error" as before.
* extensions/users_connected.php
extensions/module_groups.php
extensions/plugin_registration.php
extensions/pandora_logs.php
operation/incidents/incident.php
operation/snmpconsole/snmp_view.php
operation/users/user.php
operation/users/user_edit.php
godmode/agentes/planned_downtime.php
operation/events/events.php
operation/visual_console/index.php
operation/agentes/estado_generalagente.php
operation/agentes/estado_agente.php
operation/agentes/exportdata.php
operation/agentes/ver_agente.php
operation/agentes/status_monitor.php
operation/agentes/alerts_status.php
operation/users/user_statistics.php: Added new header format.
* operation/agentes/estado_grupo.php: Removed old group view.
* operation/agentes/tactical.php: Adapted to use new realtime/batch
statistical system. Placed events above server info. Showing only pending
events and other minor changes.
* operation/agentes/group_view.php: NEW screen, replacing old one. Probably
most ugly, but much more useful than before.
* operation/agentes/networkmap.php: Added title.
* operation/messages/message.php: Added title and adding some exists in
code was missing before.
* operation/reporting/reporting_viewer.php: Added title.
* operation/reporting/graph_viewer.php: Added title.
* operation/reporting/custom_reporting.php: Added title.
* operation/servers/view_server.php:
* operation/menu.php: Replaced old group view with new (this has english
name). Removed autorefresh "by default" in server view.
* extras/pandoradb_migrate_v3.0_to_v3.1.sql: Fixed typo.
* extras/pandora_diag.php: Minor changes, removed some info and added other.
* general/logon_ok.php: Minor aesthetic changes.
* general/header.php: Fixed missing ";"
* operation/extensions.php,
godmode/extensions.php: Added support for delete extensions.
* godmode/menu.php: New setup items.
* godmode/setup/setup.php,
godmode/setup/performance.php,
godmode/setup/setup_visuals.php: Reordered setup options, new setup section
"Performance", added new performance options to set "realtime" statistics
or "batchmode" with it's own interval. Some setup info is now shared with
the servers (but it it's any change in setup, servers should be restarted
anyway).
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@2390 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2010-02-19 16:16:03 +01:00
|
|
|
}
|
|
|
|
|
2012-09-20 15:45:23 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Print a input for agent autocomplete, this input search into your
|
|
|
|
* pandora DB (or pandoras DBs when you have metaconsole) for agents
|
|
|
|
* that have name near to equal that you are writing into the input.
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
2012-09-20 15:45:23 +02:00
|
|
|
* This generate a lot of lines of html and javascript code.
|
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @param array $parameters Array with several properties:
|
|
|
|
* - $parameters['return'] boolean, by default is false
|
|
|
|
* true - return as html string the code (html and js)
|
|
|
|
* false - print the code.
|
|
|
|
*
|
|
|
|
* - $parameters['input_name'] the input name (needs to get the value)
|
|
|
|
* string - The name.
|
|
|
|
* default - "agent_autocomplete_<aleatory_uniq_raw_letters/numbers>"
|
|
|
|
*
|
|
|
|
* - $parameters['input_id'] the input id (needs to get the value)
|
|
|
|
* string - The ID.
|
|
|
|
* default - "text-<input_name>"
|
|
|
|
*
|
|
|
|
* - $parameters['selectbox_group'] the id of selectbox with the group
|
|
|
|
* string - The ID of selectbox.
|
|
|
|
* default - "" empty string
|
|
|
|
*
|
|
|
|
* - $parameters['icon_image'] the small icon to show into the input in
|
|
|
|
* the right side.
|
|
|
|
* string - The url for the image.
|
|
|
|
* default - "images/lightning.png"
|
|
|
|
*
|
|
|
|
* - $parameters['value'] The initial value to set the input.
|
|
|
|
* string - The value.
|
|
|
|
* default - "" emtpy string
|
|
|
|
*
|
|
|
|
* - $parameters['show_helptip'] boolean, by default is false
|
|
|
|
* true - print the icon out the field in side right the tiny star
|
|
|
|
* for tip.
|
|
|
|
* false - does not print
|
|
|
|
*
|
|
|
|
* - $parameters['helptip_text'] The text to show in the tooltip.
|
|
|
|
* string - The text to show into the tooltip.
|
|
|
|
* default - "Type at least two characters to search." (translate)
|
|
|
|
*
|
|
|
|
* - $parameters['use_hidden_input_idagent'] boolean, Use a field for
|
|
|
|
* store the id of agent from the ajax query. By default is false.
|
|
|
|
* true - Use the field for id agent and the sourcecode work with
|
|
|
|
* this.
|
|
|
|
* false - Doesn't use the field (maybe this doesn't exist outer)
|
|
|
|
*
|
|
|
|
* - $parameters['print_hidden_input_idagent'] boolean, Print a field
|
|
|
|
* for store the id of agent from the ajax query. By default is
|
|
|
|
* false.
|
|
|
|
* true - Print the field for id agent and the sourcecode work with
|
|
|
|
* this.
|
|
|
|
* false - Doesn't print the field (maybe this doesn't exist outer)
|
|
|
|
*
|
|
|
|
* - $parameters['hidden_input_idagent_name'] The name of hidden input
|
|
|
|
* for to store the id agent.
|
|
|
|
* string - The name of hidden input.
|
|
|
|
* default - "agent_autocomplete_idagent_<aleatory_uniq_raw_letters/numbers>"
|
|
|
|
*
|
|
|
|
* - $parameters['hidden_input_idagent_id'] The id of hidden input
|
|
|
|
* for to store the id agent.
|
|
|
|
* string - The id of hidden input.
|
|
|
|
* default - "hidden-<hidden_input_idagent_name>"
|
|
|
|
*
|
|
|
|
* - $parameters['hidden_input_idagent_value'] The initial value to set
|
|
|
|
* the input id agent for store the id agent.
|
|
|
|
* string - The value.
|
|
|
|
* default - 0
|
|
|
|
*
|
|
|
|
* - $parameters['size'] The size in characters for the input of agent.
|
|
|
|
* string - A number of characters.
|
|
|
|
* default - 30
|
|
|
|
*
|
|
|
|
* - $parameters['maxlength'] The max characters that can store the
|
|
|
|
* input of agent.
|
|
|
|
* string - A number of characters max to store
|
|
|
|
* default - 100
|
|
|
|
*
|
|
|
|
* - $parameters['disabled'] Set as disabled the input of agent. By
|
|
|
|
* default is false
|
|
|
|
* true - Set disabled the input of agent.
|
|
|
|
* false - Set enabled the input of agent.
|
|
|
|
*
|
|
|
|
* - $parameters['selectbox_id'] The id of select box that stores the
|
|
|
|
* list of modules of agent select.
|
|
|
|
* string - The id of select box.
|
|
|
|
* default - "id_agent_module"
|
|
|
|
*
|
|
|
|
* - $parameters['add_none_module'] Boolean, add the list of modules
|
|
|
|
* the "none" entry, with value 0. By default is true
|
|
|
|
* true - add the none entry.
|
|
|
|
* false - does not add the none entry.
|
|
|
|
*
|
|
|
|
* - $parameters['none_module_text'] Boolean, add the list of modules
|
|
|
|
* the "none" entry, with value 0.
|
|
|
|
* string - The text to put for none module for example "select a
|
|
|
|
* module"
|
|
|
|
* default - "none" (translate)
|
|
|
|
*
|
|
|
|
* - $parameters['print_input_server'] Boolean, print the hidden field
|
|
|
|
* to store the server (metaconsole). By default false.
|
|
|
|
* true - Print the hidden input for the server.
|
|
|
|
* false - Does not print.
|
|
|
|
*
|
|
|
|
* - $parameters['use_input_server'] Boolean, use the hidden field
|
|
|
|
* to store the server (metaconsole). By default false.
|
|
|
|
* true - Use the hidden input for the server.
|
|
|
|
* false - Does not print.
|
|
|
|
*
|
|
|
|
* - $parameters['input_server_name'] The name for hidden field to
|
|
|
|
* store the server.
|
|
|
|
* string - The name of field for server.
|
|
|
|
* default - "server_<aleatory_uniq_raw_letters/numbers>"
|
|
|
|
*
|
|
|
|
* - $parameters['input_server_id'] The id for hidden field to store
|
|
|
|
* the server.
|
|
|
|
* string - The id of field for server.
|
|
|
|
* default - "hidden-<input_server_name>"
|
|
|
|
*
|
|
|
|
* - $parameters['input_server_value'] The value to store into the
|
|
|
|
* field server.
|
|
|
|
* string - The name of server.
|
|
|
|
* default - "" empty string
|
|
|
|
*
|
|
|
|
* - $parameters['metaconsole_enabled'] Boolean, set the sourcecode for
|
|
|
|
* to make some others things that run of without metaconsole. By
|
|
|
|
* default false.
|
|
|
|
* true - Set the gears for metaconsole.
|
|
|
|
* false - Run as without metaconsole.
|
|
|
|
*
|
|
|
|
* - $parameters['javascript_ajax_page'] The page to send the ajax
|
|
|
|
* queries.
|
|
|
|
* string - The url to ajax page, remember the url must be into your
|
|
|
|
* domain (ajax security).
|
|
|
|
* default - "ajax.php"
|
|
|
|
*
|
|
|
|
* - $parameters['javascript_function_action_after_select'] The name of
|
|
|
|
* function to call after the user select a agent into the list in
|
|
|
|
* the autocomplete field.
|
|
|
|
* string - The name of function.
|
|
|
|
* default - ""
|
|
|
|
*
|
|
|
|
* - $parameters['javascript_function_action_after_select_js_call'] The
|
|
|
|
* call of this function to call after user select a agent into the
|
|
|
|
* list in the autocomplete field. Instead the
|
|
|
|
* $parameters['javascript_function_action_after_select'], this is
|
|
|
|
* overwrite the previous element. And this is necesary when you need
|
|
|
|
* to set some params in your custom function.
|
|
|
|
* string - The call line as javascript code.
|
|
|
|
* default - ""
|
|
|
|
*
|
|
|
|
* - $parameters['javascript_function_action_into_source'] The source
|
|
|
|
* code as block string to call when the autocomplete starts to get
|
|
|
|
* the data from ajax.
|
|
|
|
* string - A huge string with your function as javascript.
|
|
|
|
* default - ""
|
|
|
|
*
|
|
|
|
* - $parameters['javascript'] Boolean, set the autocomplete agent to
|
|
|
|
* use javascript or enabled javascript. By default true.
|
|
|
|
* true - Enabled the javascript.
|
|
|
|
* false - Disabled the javascript.
|
|
|
|
*
|
|
|
|
* - $parameters['javascript_is_function_select'] Boolean, set to
|
|
|
|
* enable to call a function when user select a agent in the
|
|
|
|
* autocomplete list. By default false.
|
|
|
|
* true - Enabled this feature.
|
|
|
|
* false - Disabled this feature.
|
|
|
|
*
|
|
|
|
* - $parameters['javascript_code_function_select'] The name of
|
|
|
|
* function to call when user select a agent in the autocomplete
|
|
|
|
* list.
|
|
|
|
* string - The name of function but remembers this function pass
|
|
|
|
* the parameter agent_name.
|
|
|
|
* default - "function_select_<input_name>"
|
|
|
|
*
|
|
|
|
* - $parameters['javascript_name_function_select'] The source
|
|
|
|
* code as block string to call when user select a agent into the
|
|
|
|
* list in the autocomplete field. Althought use this element, you
|
|
|
|
* need use the previous parameter to set name of your custom
|
|
|
|
* function or call line.
|
|
|
|
* string - A huge string with your function as javascript.
|
|
|
|
* default - A lot of lines of source code into a string, please this
|
|
|
|
* lines you can read in the source code of function.
|
|
|
|
*
|
|
|
|
* - $parameters['javascript_change_ajax_params'] The params to pass in
|
|
|
|
* the ajax query for the list of agents.
|
|
|
|
* array - The associative array with the key and value to pass in
|
|
|
|
* the ajax query.
|
|
|
|
* default - A lot of lines of source code into a string, please this
|
|
|
|
* lines you can read in the source code of function.
|
|
|
|
*
|
|
|
|
* - $parameters['javascript_function_change'] The source code as block
|
|
|
|
* string with all javascript code to run autocomplete field.
|
|
|
|
* string - The source code javascript into a string.
|
|
|
|
* default - A lot of lines of source code into a string, please this
|
|
|
|
* lines you can read in the source code of function.
|
|
|
|
*
|
|
|
|
* - $parameters['javascript_document_ready'] Boolean, set the
|
|
|
|
* javascript sourcecode to run with the document is ready. By
|
|
|
|
* default is true.
|
|
|
|
* true - Set to run when document is ready.
|
|
|
|
* false - Not set to run.
|
|
|
|
*
|
|
|
|
* - $parameters['javascript_tags'] Boolean, print the html tags for
|
|
|
|
* javascript. By default is true.
|
|
|
|
* true - Print the javascript tags.
|
|
|
|
* false - Doesn't print the tags.
|
|
|
|
*
|
|
|
|
* - $parameters['javascript_tags'] Boolean, print the html tags for
|
|
|
|
* javascript. By default is true.
|
|
|
|
* true - Print the javascript tags.
|
|
|
|
* false - Doesn't print the tags.
|
2012-09-20 15:45:23 +02:00
|
|
|
*
|
|
|
|
* @return string HTML code if return parameter is true.
|
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_print_agent_autocomplete_input($parameters)
|
|
|
|
{
|
|
|
|
global $config;
|
|
|
|
|
|
|
|
// Normalize and extract the data from $parameters
|
2019-05-28 10:47:31 +02:00
|
|
|
// ------------------------------------------------------------------.
|
2019-01-30 16:18:44 +01:00
|
|
|
$return = false;
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['return'])) {
|
|
|
|
$return = $parameters['return'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$input_name = uniqid('agent_autocomplete_');
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['input_name'])) {
|
|
|
|
$input_name = $parameters['input_name'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$input_id = 'text-'.$input_name;
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['input_id'])) {
|
|
|
|
$input_id = $parameters['input_id'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$selectbox_group = '';
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['selectbox_group'])) {
|
|
|
|
$selectbox_group = $parameters['selectbox_group'];
|
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
$icon_image = html_print_image('images/search_agent.png', true, false, true);
|
|
|
|
if (isset($parameters['icon_image'])) {
|
|
|
|
$icon_image = $parameters['icon_image'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$value = '';
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['value'])) {
|
|
|
|
$value = $parameters['value'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$show_helptip = true;
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['show_helptip'])) {
|
|
|
|
$show_helptip = $parameters['show_helptip'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$helptip_text = __('Type at least two characters to search.');
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['helptip_text'])) {
|
|
|
|
$helptip_text = $parameters['helptip_text'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$use_hidden_input_idagent = false;
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['use_hidden_input_idagent'])) {
|
|
|
|
$use_hidden_input_idagent = $parameters['use_hidden_input_idagent'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$print_hidden_input_idagent = false;
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['print_hidden_input_idagent'])) {
|
|
|
|
$print_hidden_input_idagent = $parameters['print_hidden_input_idagent'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$hidden_input_idagent_name = uniqid('agent_autocomplete_idagent_');
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['hidden_input_idagent_name'])) {
|
|
|
|
$hidden_input_idagent_name = $parameters['hidden_input_idagent_name'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$hidden_input_idagent_id = 'hidden-'.$input_name;
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['hidden_input_idagent_id'])) {
|
|
|
|
$hidden_input_idagent_id = $parameters['hidden_input_idagent_id'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$hidden_input_idagent_value = (int) get_parameter($hidden_input_idagent_name, 0);
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['hidden_input_idagent_value'])) {
|
|
|
|
$hidden_input_idagent_value = $parameters['hidden_input_idagent_value'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$size = 30;
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['size'])) {
|
|
|
|
$size = $parameters['size'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$maxlength = 100;
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['maxlength'])) {
|
|
|
|
$maxlength = $parameters['maxlength'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$disabled = false;
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['disabled'])) {
|
|
|
|
$disabled = $parameters['disabled'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$selectbox_id = 'id_agent_module';
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['selectbox_id'])) {
|
|
|
|
$selectbox_id = $parameters['selectbox_id'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$add_none_module = true;
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['add_none_module'])) {
|
|
|
|
$add_none_module = $parameters['add_none_module'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$none_module_text = '--';
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['none_module_text'])) {
|
|
|
|
$none_module_text = $parameters['none_module_text'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$print_input_server = false;
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['print_input_server'])) {
|
|
|
|
$print_input_server = $parameters['print_input_server'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$print_input_id_server = false;
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['print_input_id_server'])) {
|
|
|
|
$print_input_id_server = $parameters['print_input_id_server'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$use_input_server = false;
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['use_input_server'])) {
|
|
|
|
$use_input_server = $parameters['use_input_server'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$use_input_id_server = false;
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['use_input_id_server'])) {
|
|
|
|
$use_input_id_server = $parameters['use_input_id_server'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$input_server_name = uniqid('server_');
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['input_server_name'])) {
|
|
|
|
$input_server_name = $parameters['input_server_name'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$input_id_server_name = uniqid('server_');
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['input_id_server_name'])) {
|
|
|
|
$input_id_server_name = $parameters['input_id_server_name'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$input_server_id = 'hidden-'.$input_server_name;
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['input_server_id'])) {
|
|
|
|
$input_server_id = $parameters['input_server_id'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$input_id_server_id = 'hidden-'.$input_id_server_name;
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['input_id_server_id'])) {
|
|
|
|
$input_id_server_id = $parameters['input_id_server_id'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$input_server_value = '';
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['input_server_value'])) {
|
|
|
|
$input_server_value = $parameters['input_server_value'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$input_id_server_value = '';
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['input_id_server_value'])) {
|
|
|
|
$input_id_server_value = $parameters['input_id_server_value'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$from_ux_transaction = '';
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['from_ux'])) {
|
|
|
|
$from_ux_transaction = $parameters['from_ux'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$from_wux_transaction = '';
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['from_wux'])) {
|
|
|
|
$from_wux_transaction = $parameters['from_wux'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$cascade_protection = false;
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['cascade_protection'])) {
|
|
|
|
$cascade_protection = $parameters['cascade_protection'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$metaconsole_enabled = false;
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['metaconsole_enabled'])) {
|
|
|
|
$metaconsole_enabled = $parameters['metaconsole_enabled'];
|
|
|
|
} else {
|
2019-05-28 10:47:31 +02:00
|
|
|
// If metaconsole_enabled param is not setted then pick source configuration.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (defined('METACONSOLE')) {
|
|
|
|
$metaconsole_enabled = true;
|
|
|
|
} else {
|
|
|
|
$metaconsole_enabled = false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$get_only_string_modules = false;
|
|
|
|
if (isset($parameters['get_only_string_modules'])) {
|
|
|
|
$get_only_string_modules = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
$spinner_image = html_print_image('images/spinner.gif', true, false, true);
|
|
|
|
if (isset($parameters['spinner_image'])) {
|
|
|
|
$spinner_image = $parameters['spinner_image'];
|
|
|
|
}
|
|
|
|
|
|
|
|
// Javascript configurations
|
2019-05-28 10:47:31 +02:00
|
|
|
// ------------------------------------------------------------------.
|
2019-01-30 16:18:44 +01:00
|
|
|
$javascript_ajax_page = ui_get_full_url('ajax.php', false, false, false, false);
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['javascript_ajax_page'])) {
|
|
|
|
$javascript_ajax_page = $parameters['javascript_ajax_page'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$javascript_function_action_after_select = '';
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
$javascript_function_action_after_select_js_call = '';
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['javascript_function_action_after_select'])) {
|
|
|
|
$javascript_function_action_after_select = $parameters['javascript_function_action_after_select'];
|
|
|
|
$javascript_function_action_after_select_js_call = $javascript_function_action_after_select.'();';
|
|
|
|
}
|
|
|
|
|
|
|
|
if (isset($parameters['javascript_function_action_after_select_js_call'])) {
|
|
|
|
if ($javascript_function_action_after_select_js_call != $parameters['javascript_function_action_after_select_js_call']
|
|
|
|
) {
|
|
|
|
$javascript_function_action_after_select_js_call = $parameters['javascript_function_action_after_select_js_call'];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$javascript_function_action_into_source = '';
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
$javascript_function_action_into_source_js_call = '';
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['javascript_function_action_into_source'])) {
|
|
|
|
$javascript_function_action_into_source = $parameters['javascript_function_action_into_source'];
|
|
|
|
$javascript_function_action_into_source_js_call = $javascript_function_action_into_source.'();';
|
|
|
|
}
|
|
|
|
|
|
|
|
if (isset($parameters['javascript_function_action_into_source_js_call'])) {
|
|
|
|
if ($javascript_function_action_into_source_js_call != $parameters['javascript_function_action_into_source_js_call']
|
|
|
|
) {
|
|
|
|
$javascript_function_action_into_source_js_call = $parameters['javascript_function_action_into_source_js_call'];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$javascript = true;
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['javascript'])) {
|
|
|
|
$javascript = $parameters['javascript'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$get_order_json = false;
|
|
|
|
if (isset($parameters['get_order_json'])) {
|
|
|
|
$get_order_json = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
$javascript_is_function_select = false;
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['javascript_is_function_select'])) {
|
|
|
|
$javascript_is_function_select = $parameters['javascript_is_function_select'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$javascript_name_function_select = 'function_select_'.$input_name;
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['javascript_name_function_select'])) {
|
|
|
|
$javascript_name_function_select = $parameters['javascript_name_function_select'];
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($from_ux_transaction != '') {
|
|
|
|
$javascript_code_function_select = '
|
|
|
|
function function_select_'.$input_name.'(agent_name) {
|
|
|
|
$("#'.$selectbox_id.'").empty();
|
2017-04-21 14:32:31 +02:00
|
|
|
|
|
|
|
var inputs = [];
|
2019-01-30 16:18:44 +01:00
|
|
|
inputs.push ("id_agent=" + $("#'.$hidden_input_idagent_id.'").val());
|
2017-04-21 14:32:31 +02:00
|
|
|
inputs.push ("get_agent_transactions=1");
|
|
|
|
inputs.push ("page=enterprise/include/ajax/ux_transaction.ajax");
|
|
|
|
|
|
|
|
jQuery.ajax ({
|
|
|
|
data: inputs.join ("&"),
|
|
|
|
type: "POST",
|
2019-01-30 16:18:44 +01:00
|
|
|
url: action="'.$javascript_ajax_page.'",
|
2017-04-21 14:32:31 +02:00
|
|
|
dataType: "json",
|
|
|
|
success: function (data) {
|
|
|
|
if (data) {
|
2019-01-30 16:18:44 +01:00
|
|
|
$("#'.$selectbox_id.'").append ($("<option value=0>None</option>"));
|
2017-08-23 17:21:15 +02:00
|
|
|
jQuery.each (data, function (id, value) {
|
2019-01-30 16:18:44 +01:00
|
|
|
$("#'.$selectbox_id.'").append ($("<option value=" + id + ">" + value + "</option>"));
|
2017-08-23 17:21:15 +02:00
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
';
|
2019-01-30 16:18:44 +01:00
|
|
|
} else if ($from_wux_transaction != '') {
|
|
|
|
$javascript_code_function_select = '
|
|
|
|
function function_select_'.$input_name.'(agent_name) {
|
|
|
|
$("#'.$selectbox_id.'").empty();
|
2017-08-23 17:21:15 +02:00
|
|
|
|
|
|
|
var inputs = [];
|
2019-01-30 16:18:44 +01:00
|
|
|
inputs.push ("id_agent=" + $("#'.$hidden_input_idagent_id.'").val());
|
2017-08-23 17:21:15 +02:00
|
|
|
inputs.push ("get_agent_transactions=1");
|
|
|
|
inputs.push ("page=enterprise/include/ajax/wux_transaction.ajax");
|
|
|
|
|
|
|
|
jQuery.ajax ({
|
|
|
|
data: inputs.join ("&"),
|
|
|
|
type: "POST",
|
2019-01-30 16:18:44 +01:00
|
|
|
url: action="'.$javascript_ajax_page.'",
|
2017-08-23 17:21:15 +02:00
|
|
|
dataType: "json",
|
|
|
|
success: function (data) {
|
|
|
|
if (data) {
|
2019-01-30 16:18:44 +01:00
|
|
|
$("#'.$selectbox_id.'").append ($("<option value=0>None</option>"));
|
2017-04-21 14:32:31 +02:00
|
|
|
jQuery.each (data, function (id, value) {
|
2019-01-30 16:18:44 +01:00
|
|
|
$("#'.$selectbox_id.'").append ($("<option value=" + id + ">" + value + "</option>"));
|
2017-04-21 14:32:31 +02:00
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
';
|
2019-01-30 16:18:44 +01:00
|
|
|
} else {
|
|
|
|
$javascript_code_function_select = '
|
|
|
|
function function_select_'.$input_name.'(agent_name) {
|
2012-09-12 17:53:58 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
$("#'.$selectbox_id.'").empty ();
|
2012-09-13 19:47:21 +02:00
|
|
|
|
2012-09-12 17:53:58 +02:00
|
|
|
var inputs = [];
|
|
|
|
inputs.push ("agent_name=" + agent_name);
|
2015-08-04 12:49:21 +02:00
|
|
|
inputs.push ("delete_pending=0");
|
2012-09-12 17:53:58 +02:00
|
|
|
inputs.push ("get_agent_modules_json=1");
|
|
|
|
inputs.push ("page=operation/agentes/ver_agente");
|
2012-09-13 19:47:21 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if ('.((int) !$metaconsole_enabled).') {
|
2012-12-11 18:39:48 +01:00
|
|
|
inputs.push ("force_local_modules=1");
|
2013-01-31 Miguel de Dios <miguel.dedios@artica.es>
* include/styles/jquery-ui-1.10.0.custom.css,
include/styles/images/ui-*,
include/javascript/jquery.jquery-ui-1.10.0.custom.js,
include/javascript/jquery-1.9.0.js: added the last version of
jquery and jqueryUI.
* godmode/reporting/visual_console_builder.editor.js,
include/ajax/events.php, include/functions_events.php,
include/functions_reporting.php,
include/javascript/pandora_events.js,
include/javascript/jquery.scrollTo.js,
include/javascript/jquery.tablesorter.pager.js,
include/javascript/jquery.tablesorter.js, include/functions_ui.php,
extensions/update_manager/lib/functions.php,
extensions/update_manager/main.php, extensions/agents_alerts.php,
operation/events/events.php, general/login_page.php,
general/logoff.php, general/header.php,
general/login_help_dialog.php: fixes about the new jquery and
jqueryUI version.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@7554 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2013-01-31 17:49:08 +01:00
|
|
|
}
|
2017-10-31 16:39:58 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if ('.((int) $get_order_json).') {
|
2017-10-31 16:39:58 +01:00
|
|
|
inputs.push ("get_order_json=1");
|
|
|
|
}
|
2017-11-10 15:03:52 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if ('.((int) $get_only_string_modules).') {
|
2017-11-10 15:03:52 +01:00
|
|
|
inputs.push ("get_only_string_modules=1");
|
|
|
|
}
|
2012-12-11 18:39:48 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if ('.((int) $metaconsole_enabled).') {
|
|
|
|
if (('.((int) $use_input_server).')
|
|
|
|
|| ('.((int) $print_input_server).')) {
|
|
|
|
inputs.push ("server_name=" + $("#'.$input_server_id.'").val());
|
2013-03-04 15:31:30 +01:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if (('.((int) $use_input_id_server).')
|
|
|
|
|| ('.((int) $print_input_id_server).')) {
|
|
|
|
inputs.push ("server_id=" + $("#'.$input_id_server_id.'").val());
|
2013-03-04 15:31:30 +01:00
|
|
|
}
|
|
|
|
|
2012-09-19 Miguel de Dios <miguel.dedios@artica.es>
* extensions/resource_registration.php, extensions/system_info.php,
extensions/update_manager/lib/libupdate_manager.php,
godmode/agentes/modificar_agente.php,
godmode/alerts/alert_actions.php,
godmode/alerts/alert_list.list.php,
godmode/massive/massive_add_profiles.php,
godmode/massive/massive_edit_modules.php,
godmode/servers/manage_recontask.php,
godmode/setup/setup_visuals.php, include/functions_api.php,
include/functions_graph.php, include/functions_messages.php,
include/graphs/functions_flot.php,
include/graphs/flot/pandora.flot.js, operation/tree.php,
operation/agentes/status_events.php,
operation/agentes/ver_agente.php, operation/events/events_list.php,
operation/events/events_marquee.php,
operation/events/events_rss.php: cleaned source code style.
* godmode/reporting/reporting_builder.item_editor.php,
include/functions_ui.php, include/ajax/agent.php: continue to change
to the new function "ui_print_agent_autocomplete_input" to make more
easy (and standar) the autocomplete agent input.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6988 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2012-09-19 16:45:59 +02:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if (('.((int) $print_hidden_input_idagent).')
|
|
|
|
|| ('.((int) $use_hidden_input_idagent).')) {
|
2012-11-02 20:18:20 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
inputs.push ("id_agent=" + $("#'.$hidden_input_idagent_id.'").val());
|
2012-09-19 Miguel de Dios <miguel.dedios@artica.es>
* extensions/resource_registration.php, extensions/system_info.php,
extensions/update_manager/lib/libupdate_manager.php,
godmode/agentes/modificar_agente.php,
godmode/alerts/alert_actions.php,
godmode/alerts/alert_list.list.php,
godmode/massive/massive_add_profiles.php,
godmode/massive/massive_edit_modules.php,
godmode/servers/manage_recontask.php,
godmode/setup/setup_visuals.php, include/functions_api.php,
include/functions_graph.php, include/functions_messages.php,
include/graphs/functions_flot.php,
include/graphs/flot/pandora.flot.js, operation/tree.php,
operation/agentes/status_events.php,
operation/agentes/ver_agente.php, operation/events/events_list.php,
operation/events/events_marquee.php,
operation/events/events_rss.php: cleaned source code style.
* godmode/reporting/reporting_builder.item_editor.php,
include/functions_ui.php, include/ajax/agent.php: continue to change
to the new function "ui_print_agent_autocomplete_input" to make more
easy (and standar) the autocomplete agent input.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6988 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2012-09-19 16:45:59 +02:00
|
|
|
}
|
|
|
|
|
2012-09-12 17:53:58 +02:00
|
|
|
jQuery.ajax ({
|
|
|
|
data: inputs.join ("&"),
|
2012-09-19 Miguel de Dios <miguel.dedios@artica.es>
* extensions/resource_registration.php, extensions/system_info.php,
extensions/update_manager/lib/libupdate_manager.php,
godmode/agentes/modificar_agente.php,
godmode/alerts/alert_actions.php,
godmode/alerts/alert_list.list.php,
godmode/massive/massive_add_profiles.php,
godmode/massive/massive_edit_modules.php,
godmode/servers/manage_recontask.php,
godmode/setup/setup_visuals.php, include/functions_api.php,
include/functions_graph.php, include/functions_messages.php,
include/graphs/functions_flot.php,
include/graphs/flot/pandora.flot.js, operation/tree.php,
operation/agentes/status_events.php,
operation/agentes/ver_agente.php, operation/events/events_list.php,
operation/events/events_marquee.php,
operation/events/events_rss.php: cleaned source code style.
* godmode/reporting/reporting_builder.item_editor.php,
include/functions_ui.php, include/ajax/agent.php: continue to change
to the new function "ui_print_agent_autocomplete_input" to make more
easy (and standar) the autocomplete agent input.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6988 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2012-09-19 16:45:59 +02:00
|
|
|
type: "POST",
|
2019-01-30 16:18:44 +01:00
|
|
|
url: action="'.$javascript_ajax_page.'",
|
2012-09-12 17:53:58 +02:00
|
|
|
dataType: "json",
|
|
|
|
success: function (data) {
|
2019-01-30 16:18:44 +01:00
|
|
|
if ('.((int) $add_none_module).') {
|
|
|
|
$("#'.$selectbox_id.'")
|
2012-09-13 19:47:21 +02:00
|
|
|
.append($("<option></option>")
|
2019-01-30 16:18:44 +01:00
|
|
|
.attr("value", 0).text("'.$none_module_text.'"));
|
2012-09-13 19:47:21 +02:00
|
|
|
}
|
2012-09-12 17:53:58 +02:00
|
|
|
|
|
|
|
jQuery.each (data, function(i, val) {
|
|
|
|
s = js_html_entity_decode(val["nombre"]);
|
2019-01-30 16:18:44 +01:00
|
|
|
$("#'.$selectbox_id.'")
|
2012-09-12 17:53:58 +02:00
|
|
|
.append ($("<option></option>")
|
|
|
|
.attr("value", val["id_agente_modulo"]).text (s));
|
|
|
|
});
|
2019-01-30 16:18:44 +01:00
|
|
|
if('.(int) $cascade_protection.' == 0){
|
|
|
|
$("#'.$selectbox_id.'").enable();
|
2017-09-05 12:35:21 +02:00
|
|
|
}
|
2019-01-30 16:18:44 +01:00
|
|
|
$("#'.$selectbox_id.'").fadeIn ("normal");
|
2012-09-12 17:53:58 +02:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
';
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
if (isset($parameters['javascript_code_function_select'])) {
|
|
|
|
$javascript_code_function_select = $parameters['javascript_code_function_select'];
|
|
|
|
}
|
|
|
|
|
|
|
|
// ============ INIT javascript_change_ajax_params ==================
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
$javascript_page = 'include/ajax/agent';
|
|
|
|
if (isset($parameters['javascript_page'])) {
|
|
|
|
$javascript_page = $parameters['javascript_page'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$javascript_change_ajax_params_original = [
|
|
|
|
'page' => '"'.$javascript_page.'"',
|
|
|
|
'search_agents' => 1,
|
|
|
|
'id_group' => 'function() {
|
2012-09-18 Miguel de Dios <miguel.dedios@artica.es>
* godmode/reporting/visual_console_builder.editor.js,
godmode/alerts/alert_list.builder.php,
godmode/alerts/alert_list.list.php,
godmode/gis_maps/configure_gis_map.php,
include/functions_visual_map_editor.php, include/functions_ui.php,
operation/tree.php, operation/agentes/exportdata.excel.php,
operation/agentes/exportdata.php, operation/agentes/ver_agente.php,
operation/snmpconsole/snmp_view.php, operation/users/user_edit.php,
operation/gis_maps/ajax.php, operation/events/events_validate.php,
operation/messages/message_edit.php,
operation/messages/message_list.php,
operation/reporting/reporting_viewer.php,
operation/netflow/nf_live_view.php,
operation/incidents/incident.php, operation/search_modules.php:
started to use the new function "ui_print_agent_autocomplete_input"
to make more easy (and standar) the autocomplete agent input.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6983 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2012-09-18 13:28:09 +02:00
|
|
|
var group_id = 0;
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if ('.((int) !empty($selectbox_group)).') {
|
|
|
|
group_id = $("#'.$selectbox_group.'").val();
|
2012-09-18 Miguel de Dios <miguel.dedios@artica.es>
* godmode/reporting/visual_console_builder.editor.js,
godmode/alerts/alert_list.builder.php,
godmode/alerts/alert_list.list.php,
godmode/gis_maps/configure_gis_map.php,
include/functions_visual_map_editor.php, include/functions_ui.php,
operation/tree.php, operation/agentes/exportdata.excel.php,
operation/agentes/exportdata.php, operation/agentes/ver_agente.php,
operation/snmpconsole/snmp_view.php, operation/users/user_edit.php,
operation/gis_maps/ajax.php, operation/events/events_validate.php,
operation/messages/message_edit.php,
operation/messages/message_list.php,
operation/reporting/reporting_viewer.php,
operation/netflow/nf_live_view.php,
operation/incidents/incident.php, operation/search_modules.php:
started to use the new function "ui_print_agent_autocomplete_input"
to make more easy (and standar) the autocomplete agent input.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6983 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2012-09-18 13:28:09 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
return group_id;
|
|
|
|
}',
|
2019-01-30 16:18:44 +01:00
|
|
|
'q' => 'term',
|
|
|
|
];
|
|
|
|
|
|
|
|
if (!$metaconsole_enabled) {
|
|
|
|
$javascript_change_ajax_params_original['force_local'] = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (isset($parameters['javascript_change_ajax_params'])) {
|
|
|
|
$javascript_change_ajax_params = [];
|
|
|
|
|
|
|
|
$found_page = false;
|
|
|
|
foreach ($parameters['javascript_change_ajax_params'] as $key => $param_ajax) {
|
|
|
|
if ($key == 'page') {
|
|
|
|
$found_page = true;
|
|
|
|
if ($javascript_page != $param_ajax) {
|
|
|
|
$javascript_change_ajax_params['page'] = $param_ajax;
|
|
|
|
} else {
|
|
|
|
$javascript_change_ajax_params['page'] = $javascript_page;
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
$javascript_change_ajax_params[$key] = $param_ajax;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!$found_page) {
|
|
|
|
$javascript_change_ajax_params['page'] = $javascript_page;
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
$javascript_change_ajax_params = $javascript_change_ajax_params_original;
|
|
|
|
}
|
|
|
|
|
|
|
|
$first = true;
|
|
|
|
$javascript_change_ajax_params_text = 'var data_params = {';
|
|
|
|
foreach ($javascript_change_ajax_params as $key => $param_ajax) {
|
|
|
|
if (!$first) {
|
|
|
|
$javascript_change_ajax_params_text .= ",\n";
|
|
|
|
} else {
|
|
|
|
$first = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
$javascript_change_ajax_params_text .= '"'.$key.'":'.$param_ajax;
|
|
|
|
}
|
|
|
|
|
|
|
|
$javascript_change_ajax_params_text .= '};';
|
|
|
|
// ============ END javascript_change_ajax_params ===================
|
|
|
|
$javascript_function_change = '';
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
$javascript_function_change .= '
|
|
|
|
function set_functions_change_autocomplete_'.$input_name.'() {
|
|
|
|
var cache_'.$input_name.' = {};
|
2012-09-20 15:45:23 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
$("#'.$input_id.'").autocomplete({
|
2012-09-12 17:53:58 +02:00
|
|
|
minLength: 2,
|
|
|
|
source: function( request, response ) {
|
|
|
|
var term = request.term; //Word to search
|
2019-01-30 16:18:44 +01:00
|
|
|
'.$javascript_change_ajax_params_text.'
|
2018-08-17 15:03:24 +02:00
|
|
|
var groupId = data_params.id_group();
|
|
|
|
|
|
|
|
// Index cache by group Id
|
2019-01-30 16:18:44 +01:00
|
|
|
if (cache_'.$input_name.'[groupId] == null) {
|
|
|
|
cache_'.$input_name.'[groupId] = {};
|
2018-08-17 15:03:24 +02:00
|
|
|
}
|
2012-09-12 17:53:58 +02:00
|
|
|
|
2012-09-20 15:45:23 +02:00
|
|
|
//Set loading
|
2019-01-30 16:18:44 +01:00
|
|
|
$("#'.$input_id.'")
|
|
|
|
.css("background","url(\"'.$spinner_image.'\") right center no-repeat");
|
2012-09-18 Miguel de Dios <miguel.dedios@artica.es>
* godmode/reporting/visual_console_builder.editor.js,
godmode/alerts/alert_list.builder.php,
godmode/alerts/alert_list.list.php,
godmode/gis_maps/configure_gis_map.php,
include/functions_visual_map_editor.php, include/functions_ui.php,
operation/tree.php, operation/agentes/exportdata.excel.php,
operation/agentes/exportdata.php, operation/agentes/ver_agente.php,
operation/snmpconsole/snmp_view.php, operation/users/user_edit.php,
operation/gis_maps/ajax.php, operation/events/events_validate.php,
operation/messages/message_edit.php,
operation/messages/message_list.php,
operation/reporting/reporting_viewer.php,
operation/netflow/nf_live_view.php,
operation/incidents/incident.php, operation/search_modules.php:
started to use the new function "ui_print_agent_autocomplete_input"
to make more easy (and standar) the autocomplete agent input.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6983 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2012-09-18 13:28:09 +02:00
|
|
|
|
|
|
|
//Function to call when the source
|
2019-01-30 16:18:44 +01:00
|
|
|
if ('.((int) !empty($javascript_function_action_into_source_js_call)).') {
|
|
|
|
'.$javascript_function_action_into_source_js_call.'
|
2012-09-18 Miguel de Dios <miguel.dedios@artica.es>
* godmode/reporting/visual_console_builder.editor.js,
godmode/alerts/alert_list.builder.php,
godmode/alerts/alert_list.list.php,
godmode/gis_maps/configure_gis_map.php,
include/functions_visual_map_editor.php, include/functions_ui.php,
operation/tree.php, operation/agentes/exportdata.excel.php,
operation/agentes/exportdata.php, operation/agentes/ver_agente.php,
operation/snmpconsole/snmp_view.php, operation/users/user_edit.php,
operation/gis_maps/ajax.php, operation/events/events_validate.php,
operation/messages/message_edit.php,
operation/messages/message_list.php,
operation/reporting/reporting_viewer.php,
operation/netflow/nf_live_view.php,
operation/incidents/incident.php, operation/search_modules.php:
started to use the new function "ui_print_agent_autocomplete_input"
to make more easy (and standar) the autocomplete agent input.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6983 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2012-09-18 13:28:09 +02:00
|
|
|
}
|
|
|
|
|
2013-06-10 13:54:58 +02:00
|
|
|
//==== CACHE CODE ==================================
|
2012-09-20 15:45:23 +02:00
|
|
|
//Check the cache
|
|
|
|
var found = false;
|
2019-01-30 16:18:44 +01:00
|
|
|
if (term in cache_'.$input_name.'[groupId]) {
|
|
|
|
response(cache_'.$input_name.'[groupId][term]);
|
2012-09-20 15:45:23 +02:00
|
|
|
|
|
|
|
//Set icon
|
2019-01-30 16:18:44 +01:00
|
|
|
$("#'.$input_id.'")
|
|
|
|
.css("background","url(\"'.$icon_image.'\") right center no-repeat");
|
2012-09-20 15:45:23 +02:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
//Check if other terms cached start with same
|
|
|
|
//letters.
|
2019-05-28 10:47:31 +02:00
|
|
|
//TODO: At the moment DISABLED CODE.
|
2012-09-20 15:45:23 +02:00
|
|
|
/*
|
|
|
|
for (i = 1; i < term.length; i++) {
|
|
|
|
var term_match = term.substr(0, term.length - i);
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
$.each(cache_'.$input_name.'[groupId], function (oldterm, olddata) {
|
2012-09-20 15:45:23 +02:00
|
|
|
var pattern = new RegExp("^" + term_match + ".*","gi");
|
|
|
|
|
|
|
|
if (oldterm.match(pattern)) {
|
2019-01-30 16:18:44 +01:00
|
|
|
response(cache_'.$input_name.'[groupId][oldterm]);
|
2012-09-20 15:45:23 +02:00
|
|
|
|
|
|
|
found = true;
|
|
|
|
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2013-06-10 13:54:58 +02:00
|
|
|
if (found) {
|
2012-09-20 15:45:23 +02:00
|
|
|
break;
|
2013-06-10 13:54:58 +02:00
|
|
|
}
|
2012-09-20 15:45:23 +02:00
|
|
|
}
|
|
|
|
*/
|
|
|
|
}
|
2013-06-10 13:54:58 +02:00
|
|
|
//==================================================
|
|
|
|
|
2012-09-20 15:45:23 +02:00
|
|
|
|
|
|
|
if (found) {
|
|
|
|
//Set icon
|
2019-01-30 16:18:44 +01:00
|
|
|
$("#'.$input_id.'")
|
|
|
|
.css("background","url(\"'.$icon_image.'\") right center no-repeat");
|
2013-06-10 13:54:58 +02:00
|
|
|
|
|
|
|
select_item_click = 0;
|
|
|
|
|
2012-09-20 15:45:23 +02:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2012-09-12 17:53:58 +02:00
|
|
|
jQuery.ajax ({
|
|
|
|
data: data_params,
|
|
|
|
type: "POST",
|
2019-01-30 16:18:44 +01:00
|
|
|
url: action="'.$javascript_ajax_page.'",
|
2012-09-12 17:53:58 +02:00
|
|
|
dataType: "json",
|
|
|
|
success: function (data) {
|
2019-01-30 16:18:44 +01:00
|
|
|
cache_'.$input_name.'[groupId][term] = data; //Save the cache
|
2012-09-20 15:45:23 +02:00
|
|
|
|
2012-09-12 17:53:58 +02:00
|
|
|
response(data);
|
|
|
|
|
2012-09-20 15:45:23 +02:00
|
|
|
//Set icon
|
2019-01-30 16:18:44 +01:00
|
|
|
$("#'.$input_id.'")
|
2012-11-02 20:18:20 +01:00
|
|
|
.css("background",
|
2019-01-30 16:18:44 +01:00
|
|
|
"url(\"'.$icon_image.'\") right center no-repeat");
|
2012-09-20 15:45:23 +02:00
|
|
|
|
2013-06-10 13:54:58 +02:00
|
|
|
select_item_click = 0;
|
|
|
|
|
2012-09-12 17:53:58 +02:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
return;
|
|
|
|
},
|
2013-04-17 16:45:17 +02:00
|
|
|
//---END source-----------------------------------------
|
2013-06-10 13:54:58 +02:00
|
|
|
|
|
|
|
|
2012-09-12 17:53:58 +02:00
|
|
|
select: function( event, ui ) {
|
2016-10-06 12:10:10 +02:00
|
|
|
var agent_name = ui.item.alias;
|
2012-09-13 19:47:21 +02:00
|
|
|
var agent_id = ui.item.id;
|
2013-03-04 15:31:30 +01:00
|
|
|
var server_name = "";
|
|
|
|
var server_id = "";
|
|
|
|
|
2012-09-19 Miguel de Dios <miguel.dedios@artica.es>
* extensions/resource_registration.php, extensions/system_info.php,
extensions/update_manager/lib/libupdate_manager.php,
godmode/agentes/modificar_agente.php,
godmode/alerts/alert_actions.php,
godmode/alerts/alert_list.list.php,
godmode/massive/massive_add_profiles.php,
godmode/massive/massive_edit_modules.php,
godmode/servers/manage_recontask.php,
godmode/setup/setup_visuals.php, include/functions_api.php,
include/functions_graph.php, include/functions_messages.php,
include/graphs/functions_flot.php,
include/graphs/flot/pandora.flot.js, operation/tree.php,
operation/agentes/status_events.php,
operation/agentes/ver_agente.php, operation/events/events_list.php,
operation/events/events_marquee.php,
operation/events/events_rss.php: cleaned source code style.
* godmode/reporting/reporting_builder.item_editor.php,
include/functions_ui.php, include/ajax/agent.php: continue to change
to the new function "ui_print_agent_autocomplete_input" to make more
easy (and standar) the autocomplete agent input.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6988 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2012-09-19 16:45:59 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if ('.((int) $metaconsole_enabled).') {
|
2012-09-19 Miguel de Dios <miguel.dedios@artica.es>
* extensions/resource_registration.php, extensions/system_info.php,
extensions/update_manager/lib/libupdate_manager.php,
godmode/agentes/modificar_agente.php,
godmode/alerts/alert_actions.php,
godmode/alerts/alert_list.list.php,
godmode/massive/massive_add_profiles.php,
godmode/massive/massive_edit_modules.php,
godmode/servers/manage_recontask.php,
godmode/setup/setup_visuals.php, include/functions_api.php,
include/functions_graph.php, include/functions_messages.php,
include/graphs/functions_flot.php,
include/graphs/flot/pandora.flot.js, operation/tree.php,
operation/agentes/status_events.php,
operation/agentes/ver_agente.php, operation/events/events_list.php,
operation/events/events_marquee.php,
operation/events/events_rss.php: cleaned source code style.
* godmode/reporting/reporting_builder.item_editor.php,
include/functions_ui.php, include/ajax/agent.php: continue to change
to the new function "ui_print_agent_autocomplete_input" to make more
easy (and standar) the autocomplete agent input.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6988 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2012-09-19 16:45:59 +02:00
|
|
|
server_name = ui.item.server;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
server_name = ui.item.ip;
|
|
|
|
}
|
|
|
|
|
2013-03-04 15:31:30 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if (('.((int) $use_input_id_server).')
|
|
|
|
|| ('.((int) $print_input_id_server).')) {
|
2013-03-04 15:31:30 +01:00
|
|
|
server_id = ui.item.id_server;
|
|
|
|
}
|
|
|
|
|
2016-03-30 13:05:08 +02:00
|
|
|
|
2012-09-12 17:53:58 +02:00
|
|
|
|
|
|
|
//Put the name
|
|
|
|
$(this).val(agent_name);
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if (('.((int) $print_hidden_input_idagent).')
|
|
|
|
|| ('.((int) $use_hidden_input_idagent).')) {
|
|
|
|
$("#'.$hidden_input_idagent_id.'").val(agent_id);
|
2012-09-13 19:47:21 +02:00
|
|
|
}
|
|
|
|
|
2012-09-18 Miguel de Dios <miguel.dedios@artica.es>
* godmode/reporting/visual_console_builder.editor.js,
godmode/alerts/alert_list.builder.php,
godmode/alerts/alert_list.list.php,
godmode/gis_maps/configure_gis_map.php,
include/functions_visual_map_editor.php, include/functions_ui.php,
operation/tree.php, operation/agentes/exportdata.excel.php,
operation/agentes/exportdata.php, operation/agentes/ver_agente.php,
operation/snmpconsole/snmp_view.php, operation/users/user_edit.php,
operation/gis_maps/ajax.php, operation/events/events_validate.php,
operation/messages/message_edit.php,
operation/messages/message_list.php,
operation/reporting/reporting_viewer.php,
operation/netflow/nf_live_view.php,
operation/incidents/incident.php, operation/search_modules.php:
started to use the new function "ui_print_agent_autocomplete_input"
to make more easy (and standar) the autocomplete agent input.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6983 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2012-09-18 13:28:09 +02:00
|
|
|
//Put the server id into the hidden input
|
2019-01-30 16:18:44 +01:00
|
|
|
if (('.((int) $use_input_server).')
|
|
|
|
|| ('.((int) $print_input_server).')) {
|
|
|
|
$("#'.$input_server_id.'").val(server_name);
|
2012-09-14 19:54:33 +02:00
|
|
|
}
|
|
|
|
|
2013-03-04 15:31:30 +01:00
|
|
|
//Put the server id into the hidden input
|
2019-01-30 16:18:44 +01:00
|
|
|
if (('.((int) $use_input_id_server).')
|
|
|
|
|| ('.((int) $print_input_id_server).')) {
|
|
|
|
$("#'.$input_id_server_id.'").val(server_id);
|
2013-03-04 15:31:30 +01:00
|
|
|
}
|
|
|
|
|
2012-09-19 Miguel de Dios <miguel.dedios@artica.es>
* extensions/resource_registration.php, extensions/system_info.php,
extensions/update_manager/lib/libupdate_manager.php,
godmode/agentes/modificar_agente.php,
godmode/alerts/alert_actions.php,
godmode/alerts/alert_list.list.php,
godmode/massive/massive_add_profiles.php,
godmode/massive/massive_edit_modules.php,
godmode/servers/manage_recontask.php,
godmode/setup/setup_visuals.php, include/functions_api.php,
include/functions_graph.php, include/functions_messages.php,
include/graphs/functions_flot.php,
include/graphs/flot/pandora.flot.js, operation/tree.php,
operation/agentes/status_events.php,
operation/agentes/ver_agente.php, operation/events/events_list.php,
operation/events/events_marquee.php,
operation/events/events_rss.php: cleaned source code style.
* godmode/reporting/reporting_builder.item_editor.php,
include/functions_ui.php, include/ajax/agent.php: continue to change
to the new function "ui_print_agent_autocomplete_input" to make more
easy (and standar) the autocomplete agent input.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6988 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2012-09-19 16:45:59 +02:00
|
|
|
//Call the function to select (example fill the modules)
|
2019-01-30 16:18:44 +01:00
|
|
|
if ('.((int) $javascript_is_function_select).') {
|
|
|
|
'.$javascript_name_function_select.'(agent_name);
|
2012-09-19 Miguel de Dios <miguel.dedios@artica.es>
* extensions/resource_registration.php, extensions/system_info.php,
extensions/update_manager/lib/libupdate_manager.php,
godmode/agentes/modificar_agente.php,
godmode/alerts/alert_actions.php,
godmode/alerts/alert_list.list.php,
godmode/massive/massive_add_profiles.php,
godmode/massive/massive_edit_modules.php,
godmode/servers/manage_recontask.php,
godmode/setup/setup_visuals.php, include/functions_api.php,
include/functions_graph.php, include/functions_messages.php,
include/graphs/functions_flot.php,
include/graphs/flot/pandora.flot.js, operation/tree.php,
operation/agentes/status_events.php,
operation/agentes/ver_agente.php, operation/events/events_list.php,
operation/events/events_marquee.php,
operation/events/events_rss.php: cleaned source code style.
* godmode/reporting/reporting_builder.item_editor.php,
include/functions_ui.php, include/ajax/agent.php: continue to change
to the new function "ui_print_agent_autocomplete_input" to make more
easy (and standar) the autocomplete agent input.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6988 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2012-09-19 16:45:59 +02:00
|
|
|
}
|
|
|
|
|
2012-09-18 Miguel de Dios <miguel.dedios@artica.es>
* godmode/reporting/visual_console_builder.editor.js,
godmode/alerts/alert_list.builder.php,
godmode/alerts/alert_list.list.php,
godmode/gis_maps/configure_gis_map.php,
include/functions_visual_map_editor.php, include/functions_ui.php,
operation/tree.php, operation/agentes/exportdata.excel.php,
operation/agentes/exportdata.php, operation/agentes/ver_agente.php,
operation/snmpconsole/snmp_view.php, operation/users/user_edit.php,
operation/gis_maps/ajax.php, operation/events/events_validate.php,
operation/messages/message_edit.php,
operation/messages/message_list.php,
operation/reporting/reporting_viewer.php,
operation/netflow/nf_live_view.php,
operation/incidents/incident.php, operation/search_modules.php:
started to use the new function "ui_print_agent_autocomplete_input"
to make more easy (and standar) the autocomplete agent input.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6983 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2012-09-18 13:28:09 +02:00
|
|
|
//Function to call after the select
|
2019-01-30 16:18:44 +01:00
|
|
|
if ('.((int) !empty($javascript_function_action_after_select_js_call)).') {
|
|
|
|
'.$javascript_function_action_after_select_js_call.'
|
2012-09-18 Miguel de Dios <miguel.dedios@artica.es>
* godmode/reporting/visual_console_builder.editor.js,
godmode/alerts/alert_list.builder.php,
godmode/alerts/alert_list.list.php,
godmode/gis_maps/configure_gis_map.php,
include/functions_visual_map_editor.php, include/functions_ui.php,
operation/tree.php, operation/agentes/exportdata.excel.php,
operation/agentes/exportdata.php, operation/agentes/ver_agente.php,
operation/snmpconsole/snmp_view.php, operation/users/user_edit.php,
operation/gis_maps/ajax.php, operation/events/events_validate.php,
operation/messages/message_edit.php,
operation/messages/message_list.php,
operation/reporting/reporting_viewer.php,
operation/netflow/nf_live_view.php,
operation/incidents/incident.php, operation/search_modules.php:
started to use the new function "ui_print_agent_autocomplete_input"
to make more easy (and standar) the autocomplete agent input.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6983 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2012-09-18 13:28:09 +02:00
|
|
|
}
|
|
|
|
|
2013-06-10 13:54:58 +02:00
|
|
|
select_item_click = 1;
|
|
|
|
|
2012-09-12 17:53:58 +02:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
})
|
2013-01-31 Miguel de Dios <miguel.dedios@artica.es>
* include/styles/jquery-ui-1.10.0.custom.css,
include/styles/images/ui-*,
include/javascript/jquery.jquery-ui-1.10.0.custom.js,
include/javascript/jquery-1.9.0.js: added the last version of
jquery and jqueryUI.
* godmode/reporting/visual_console_builder.editor.js,
include/ajax/events.php, include/functions_events.php,
include/functions_reporting.php,
include/javascript/pandora_events.js,
include/javascript/jquery.scrollTo.js,
include/javascript/jquery.tablesorter.pager.js,
include/javascript/jquery.tablesorter.js, include/functions_ui.php,
extensions/update_manager/lib/functions.php,
extensions/update_manager/main.php, extensions/agents_alerts.php,
operation/events/events.php, general/login_page.php,
general/logoff.php, general/header.php,
general/login_help_dialog.php: fixes about the new jquery and
jqueryUI version.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@7554 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2013-01-31 17:49:08 +01:00
|
|
|
.data("ui-autocomplete")._renderItem = function( ul, item ) {
|
2012-09-12 17:53:58 +02:00
|
|
|
if (item.ip == "") {
|
2016-09-22 10:27:35 +02:00
|
|
|
text = "<a>" + item.alias+ "</a>";
|
2012-09-12 17:53:58 +02:00
|
|
|
}
|
|
|
|
else {
|
2016-09-22 10:27:35 +02:00
|
|
|
text = "<a>" + item.alias
|
2012-09-12 17:53:58 +02:00
|
|
|
+ "<br><span style=\"font-size: 70%; font-style: italic;\">IP:" + item.ip + "</span></a>";
|
|
|
|
}
|
|
|
|
|
2013-02-07 16:53:04 +01:00
|
|
|
switch (item.filter) {
|
2013-04-17 16:45:17 +02:00
|
|
|
default:
|
2013-02-07 16:53:04 +01:00
|
|
|
case \'agent\':
|
|
|
|
return $("<li style=\'background: #DFFFC4;\'></li>")
|
|
|
|
.data("item.autocomplete", item)
|
|
|
|
.append(text)
|
|
|
|
.appendTo(ul);
|
|
|
|
break;
|
|
|
|
case \'address\':
|
|
|
|
return $("<li style=\'background: #F7CFFF;\'></li>")
|
|
|
|
.data("item.autocomplete", item)
|
|
|
|
.append(text)
|
|
|
|
.appendTo(ul);
|
|
|
|
break;
|
|
|
|
case \'description\':
|
|
|
|
return $("<li style=\'background: #FEFCC6;\'></li>")
|
|
|
|
.data("item.autocomplete", item)
|
2016-09-22 10:27:35 +02:00
|
|
|
.append(text)
|
|
|
|
.appendTo(ul);
|
|
|
|
break;
|
|
|
|
case \'alias\':
|
|
|
|
return $("<li style=\'background: #a8e7eb;\'></li>")
|
|
|
|
.data("item.autocomplete", item)
|
2013-02-07 16:53:04 +01:00
|
|
|
.append(text)
|
|
|
|
.appendTo(ul);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2012-09-12 17:53:58 +02:00
|
|
|
};
|
2012-09-13 19:47:21 +02:00
|
|
|
|
|
|
|
//Force the size of autocomplete
|
|
|
|
$(".ui-autocomplete").css("max-height", "100px");
|
|
|
|
$(".ui-autocomplete").css("overflow-y", "auto");
|
|
|
|
/* prevent horizontal scrollbar */
|
|
|
|
$(".ui-autocomplete").css("overflow-x", "hidden");
|
|
|
|
/* add padding to account for vertical scrollbar */
|
|
|
|
$(".ui-autocomplete").css("padding-right", "20px");
|
|
|
|
|
|
|
|
//Force to style of items
|
|
|
|
$(".ui-autocomplete").css("text-align", "left");
|
|
|
|
}';
|
2019-01-30 16:18:44 +01:00
|
|
|
|
|
|
|
if (isset($parameters['javascript_function_change'])) {
|
|
|
|
$javascript_function_change = $parameters['javascript_function_change'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$javascript_document_ready = true;
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['javascript_document_ready'])) {
|
|
|
|
$javascript_document_ready = $parameters['javascript_document_ready'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$javascript_tags = true;
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['javascript_tags'])) {
|
|
|
|
$javascript_tags = $parameters['javascript_tags'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$disabled_javascript_on_blur_function = false;
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['disabled_javascript_on_blur_function'])) {
|
|
|
|
$disabled_javascript_on_blur_function = $parameters['disabled_javascript_on_blur_function'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$javascript_on_blur_function_name = 'function_on_blur_'.$input_name;
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['javascript_on_blur_function_name'])) {
|
|
|
|
$javascript_on_blur_function_name = $parameters['javascript_on_blur_function_name'];
|
|
|
|
}
|
|
|
|
|
|
|
|
$check_only_empty_javascript_on_blur_function = false;
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['check_only_empty_javascript_on_blur_function'])) {
|
|
|
|
$check_only_empty_javascript_on_blur_function = $parameters['check_only_empty_javascript_on_blur_function'];
|
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default value.
|
2019-01-30 16:18:44 +01:00
|
|
|
$javascript_on_blur = '
|
2012-11-02 20:18:20 +01:00
|
|
|
/*
|
|
|
|
This function is a callback when the autocomplete agent
|
|
|
|
input lost the focus.
|
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function '.$javascript_on_blur_function_name.'() {
|
|
|
|
input_value = $("#'.$input_id.'").val();
|
2012-11-28 19:29:24 +01:00
|
|
|
|
2019-05-17 16:36:21 +02:00
|
|
|
if (input_value.length < 2) {
|
2019-01-30 16:18:44 +01:00
|
|
|
if (('.((int) $print_hidden_input_idagent).')
|
|
|
|
|| ('.((int) $use_hidden_input_idagent).')) {
|
|
|
|
$("#'.$hidden_input_idagent_id.'").val(0);
|
2012-11-28 19:29:24 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
//Put the server id into the hidden input
|
2019-01-30 16:18:44 +01:00
|
|
|
if (('.((int) $use_input_server).')
|
|
|
|
|| ('.((int) $print_input_server).')) {
|
|
|
|
$("#'.$input_server_id.'").val("");
|
2012-11-28 19:29:24 +01:00
|
|
|
}
|
|
|
|
|
2013-03-04 15:31:30 +01:00
|
|
|
//Put the server id into the hidden input
|
2019-01-30 16:18:44 +01:00
|
|
|
if (('.((int) $use_input_id_server).')
|
|
|
|
|| ('.((int) $print_input_id_server).')) {
|
|
|
|
$("#'.$input_id_server_id.'").val("");
|
2013-03-04 15:31:30 +01:00
|
|
|
}
|
|
|
|
|
2012-11-28 19:29:24 +01:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if ('.((int) $check_only_empty_javascript_on_blur_function).') {
|
2012-11-28 19:29:24 +01:00
|
|
|
return
|
|
|
|
}
|
|
|
|
|
2013-06-10 13:54:58 +02:00
|
|
|
|
|
|
|
if (select_item_click) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2012-11-02 20:18:20 +01:00
|
|
|
//Set loading
|
2019-01-30 16:18:44 +01:00
|
|
|
$("#'.$input_id.'")
|
2012-11-02 20:18:20 +01:00
|
|
|
.css("background",
|
2019-01-30 16:18:44 +01:00
|
|
|
"url(\"'.$spinner_image.'\") right center no-repeat");
|
2012-11-02 20:18:20 +01:00
|
|
|
|
2012-11-28 19:29:24 +01:00
|
|
|
|
2012-11-02 20:18:20 +01:00
|
|
|
|
|
|
|
var term = input_value; //Word to search
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
'.$javascript_change_ajax_params_text.'
|
2013-02-14 11:05:16 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if ('.((int) !$metaconsole_enabled).') {
|
2012-12-11 18:39:48 +01:00
|
|
|
data_params[\'force_local\'] = 1;
|
2013-02-14 11:05:16 +01:00
|
|
|
}
|
2012-11-02 20:18:20 +01:00
|
|
|
|
|
|
|
jQuery.ajax ({
|
|
|
|
data: data_params,
|
|
|
|
type: "POST",
|
2019-01-30 16:18:44 +01:00
|
|
|
url: action="'.$javascript_ajax_page.'",
|
2012-11-02 20:18:20 +01:00
|
|
|
dataType: "json",
|
|
|
|
success: function (data) {
|
2019-05-17 16:36:21 +02:00
|
|
|
if (data.length < 2) {
|
2012-11-02 20:18:20 +01:00
|
|
|
//Set icon
|
2019-01-30 16:18:44 +01:00
|
|
|
$("#'.$input_id.'")
|
2012-11-02 20:18:20 +01:00
|
|
|
.css("background",
|
2019-01-30 16:18:44 +01:00
|
|
|
"url(\"'.$icon_image.'\") right center no-repeat");
|
2012-11-02 20:18:20 +01:00
|
|
|
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
var agent_name = data[0].name;
|
|
|
|
var agent_id = data[0].id;
|
2013-03-04 15:31:30 +01:00
|
|
|
var server_name = "";
|
|
|
|
var server_id = "";
|
2012-11-02 20:18:20 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if ('.((int) $metaconsole_enabled).') {
|
2012-11-02 20:18:20 +01:00
|
|
|
server_name = data[0].server;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
server_name = data[0].ip;
|
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if (('.((int) $use_input_id_server).')
|
|
|
|
|| ('.((int) $print_input_id_server).')) {
|
2013-03-04 15:31:30 +01:00
|
|
|
server_id = data[0].id_server;
|
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if (('.((int) $print_hidden_input_idagent).')
|
|
|
|
|| ('.((int) $use_hidden_input_idagent).')) {
|
|
|
|
$("#'.$hidden_input_idagent_id.'").val(agent_id);
|
2012-11-02 20:18:20 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
//Put the server id into the hidden input
|
2019-01-30 16:18:44 +01:00
|
|
|
if (('.((int) $use_input_server).')
|
|
|
|
|| ('.((int) $print_input_server).')) {
|
|
|
|
$("#'.$input_server_id.'").val(server_name);
|
2012-11-02 20:18:20 +01:00
|
|
|
}
|
|
|
|
|
2013-03-04 15:31:30 +01:00
|
|
|
//Put the server id into the hidden input
|
2019-01-30 16:18:44 +01:00
|
|
|
if (('.((int) $use_input_id_server).')
|
|
|
|
|| ('.((int) $print_input_id_server).')) {
|
|
|
|
$("#'.$input_id_server_id.'").val(server_id);
|
2013-03-04 15:31:30 +01:00
|
|
|
}
|
|
|
|
|
2012-11-02 20:18:20 +01:00
|
|
|
//Call the function to select (example fill the modules)
|
2019-01-30 16:18:44 +01:00
|
|
|
if ('.((int) $javascript_is_function_select).') {
|
|
|
|
'.$javascript_name_function_select.'(agent_name);
|
2012-11-02 20:18:20 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
//Function to call after the select
|
2019-01-30 16:18:44 +01:00
|
|
|
if ('.((int) !empty($javascript_function_action_after_select_js_call)).') {
|
|
|
|
'.$javascript_function_action_after_select_js_call.'
|
2012-11-02 20:18:20 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
//Set icon
|
2019-01-30 16:18:44 +01:00
|
|
|
$("#'.$input_id.'")
|
2012-11-02 20:18:20 +01:00
|
|
|
.css("background",
|
2019-01-30 16:18:44 +01:00
|
|
|
"url(\"'.$icon_image.'\") right center no-repeat");
|
2012-11-02 20:18:20 +01:00
|
|
|
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
';
|
2019-01-30 16:18:44 +01:00
|
|
|
if (isset($parameters['javascript_on_blur'])) {
|
|
|
|
$javascript_on_blur = $parameters['javascript_on_blur'];
|
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// ------------------------------------------------------------------.
|
2019-01-30 16:18:44 +01:00
|
|
|
$html = '';
|
|
|
|
|
|
|
|
$attrs = [];
|
|
|
|
$attrs['style'] = 'background: url('.$icon_image.') no-repeat right;';
|
|
|
|
|
|
|
|
if (!$disabled_javascript_on_blur_function) {
|
|
|
|
$attrs['onblur'] = $javascript_on_blur_function_name.'()';
|
|
|
|
}
|
|
|
|
|
|
|
|
$html = html_print_input_text_extended(
|
|
|
|
$input_name,
|
|
|
|
$value,
|
|
|
|
$input_id,
|
|
|
|
$helptip_text,
|
|
|
|
$size,
|
|
|
|
$maxlength,
|
|
|
|
$disabled,
|
|
|
|
'',
|
|
|
|
$attrs,
|
|
|
|
true
|
|
|
|
);
|
|
|
|
if ($show_helptip) {
|
|
|
|
$html .= ui_print_help_tip($helptip_text, true);
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($print_hidden_input_idagent) {
|
|
|
|
$html .= html_print_input_hidden_extended(
|
|
|
|
$hidden_input_idagent_name,
|
|
|
|
$hidden_input_idagent_value,
|
|
|
|
$hidden_input_idagent_id,
|
|
|
|
true
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($print_input_server) {
|
|
|
|
$html .= html_print_input_hidden_extended(
|
|
|
|
$input_server_name,
|
|
|
|
$input_server_value,
|
|
|
|
$input_server_id,
|
|
|
|
true
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($print_input_id_server) {
|
|
|
|
$html .= html_print_input_hidden_extended(
|
|
|
|
$input_id_server_name,
|
|
|
|
$input_id_server_value,
|
|
|
|
$input_id_server_id,
|
|
|
|
true
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// Write the javascript.
|
2019-01-30 16:18:44 +01:00
|
|
|
if ($javascript) {
|
|
|
|
if ($javascript_tags) {
|
|
|
|
$html .= '<script type="text/javascript">
|
2012-09-12 17:53:58 +02:00
|
|
|
/* <![CDATA[ */';
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
$html .= 'var select_item_click = 0;'."\n";
|
|
|
|
|
|
|
|
$html .= $javascript_function_change;
|
|
|
|
if ($javascript_is_function_select) {
|
|
|
|
$html .= $javascript_code_function_select;
|
|
|
|
}
|
|
|
|
|
|
|
|
$html .= $javascript_on_blur;
|
|
|
|
|
|
|
|
if ($javascript_document_ready) {
|
|
|
|
$html .= '$(document).ready (function () {
|
|
|
|
set_functions_change_autocomplete_'.$input_name.'();
|
2012-09-12 17:53:58 +02:00
|
|
|
});';
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
if ($javascript_tags) {
|
|
|
|
$html .= '/* ]]> */
|
2012-09-12 17:53:58 +02:00
|
|
|
</script>';
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($return) {
|
|
|
|
return $html;
|
|
|
|
} else {
|
|
|
|
echo $html;
|
|
|
|
}
|
2011-04-13 19:11:10 +02:00
|
|
|
}
|
2013-04-22 12:31:20 +02:00
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Return error strings (title and message) for each error code
|
2019-01-30 16:18:44 +01:00
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @param string $error_code Error code.
|
|
|
|
*
|
|
|
|
* @return array.
|
2013-04-22 12:31:20 +02:00
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_get_error($error_code='')
|
|
|
|
{
|
2019-05-28 10:47:31 +02:00
|
|
|
// XXX: Deprecated. Pandora shouldn't go inside this.
|
2019-01-30 16:18:44 +01:00
|
|
|
return [
|
|
|
|
'title' => __('Unhandled error'),
|
|
|
|
'message' => __('An unhandled error occurs'),
|
|
|
|
];
|
2013-04-22 12:31:20 +02:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
/**
|
|
|
|
* Include time picker.
|
|
|
|
*
|
|
|
|
* @param boolean $echo_tags Tags.
|
|
|
|
*
|
|
|
|
* @return void
|
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_include_time_picker($echo_tags=false)
|
|
|
|
{
|
|
|
|
if (is_ajax() || $echo_tags) {
|
2019-05-28 09:48:09 +02:00
|
|
|
echo '<script type="text/javascript" src="'.ui_get_full_url(false, false, false, false).'include/javascript/jquery.ui-timepicker-addon.js"></script>';
|
2019-01-30 16:18:44 +01:00
|
|
|
} else {
|
|
|
|
ui_require_jquery_file('ui-timepicker-addon');
|
|
|
|
}
|
|
|
|
|
|
|
|
if (file_exists('include/javascript/i18n/jquery-ui-timepicker-'.substr(get_user_language(), 0, 2).'.js')) {
|
|
|
|
echo '<script type="text/javascript" src="'.ui_get_full_url('include/javascript/i18n/jquery-ui-timepicker-'.substr(get_user_language(), 0, 2).'.js', false, false, false).'"></script>';
|
|
|
|
}
|
2014-06-02 Miguel de Dios <miguel.dedios@artica.es>
* godmode/alerts/configure_alert_template.php,
godmode/reporting/reporting_builder.item_editor.php,
godmode/agentes/planned_downtime.editor.php, godmode/setup/news.php,
include/ajax/module.php, include/functions.php,
include/functions_ui.php, extensions/insert_data.php,
operation/netflow/nf_live_view.php,
operation/reporting/reporting_viewer.php,
operation/reporting/graph_viewer.php, operation/tree.php,
operation/agentes/datos_agente.php,
operation/agentes/estado_monitores.php: fixed the i18n of the
timepicker.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@10076 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2014-06-02 17:57:36 +02:00
|
|
|
}
|
2016-01-18 16:58:24 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
/**
|
|
|
|
* Print string value.
|
|
|
|
*
|
|
|
|
* @param string $value Value.
|
|
|
|
* @param integer $id_agente_module Id_agente_module.
|
|
|
|
* @param integer $current_interval Current_interval.
|
|
|
|
* @param string $module_name Module_name.
|
|
|
|
*
|
|
|
|
* @return string HTML.
|
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_print_module_string_value(
|
|
|
|
$value,
|
|
|
|
$id_agente_module,
|
|
|
|
$current_interval,
|
|
|
|
$module_name=null
|
|
|
|
) {
|
|
|
|
global $config;
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
if ($module_name == null) {
|
2019-01-30 16:18:44 +01:00
|
|
|
$module_name = modules_get_agentmodule_name($id_agente_module);
|
|
|
|
}
|
|
|
|
|
|
|
|
$id_type_web_content_string = db_get_value(
|
|
|
|
'id_tipo',
|
|
|
|
'ttipo_modulo',
|
|
|
|
'nombre',
|
|
|
|
'web_content_string'
|
|
|
|
);
|
|
|
|
|
|
|
|
$is_web_content_string = (bool) db_get_value_filter(
|
|
|
|
'id_agente_modulo',
|
|
|
|
'tagente_modulo',
|
|
|
|
[
|
|
|
|
'id_agente_modulo' => $id_agente_module,
|
|
|
|
'id_tipo_modulo' => $id_type_web_content_string,
|
|
|
|
]
|
|
|
|
);
|
|
|
|
|
|
|
|
// Fixed the goliat sends the strings from web
|
2019-05-28 10:47:31 +02:00
|
|
|
// without HTML entities.
|
2019-01-30 16:18:44 +01:00
|
|
|
if ($is_web_content_string) {
|
|
|
|
$value = io_safe_input($value);
|
|
|
|
}
|
|
|
|
|
|
|
|
$is_snapshot = is_snapshot_data($module['datos']);
|
|
|
|
$is_large_image = is_text_to_black_string($module['datos']);
|
|
|
|
if (($config['command_snapshot']) && ($is_snapshot || $is_large_image)) {
|
|
|
|
$row[7] = ui_get_snapshot_image($link, $is_snapshot).' ';
|
|
|
|
}
|
|
|
|
|
|
|
|
$is_snapshot = is_snapshot_data($value);
|
|
|
|
$is_large_image = is_text_to_black_string($value);
|
|
|
|
if (($config['command_snapshot']) && ($is_snapshot || $is_large_image)) {
|
|
|
|
$link = ui_get_snapshot_link(
|
|
|
|
[
|
|
|
|
'id_module' => $id_agente_module,
|
|
|
|
'last_data' => $value,
|
|
|
|
'interval' => $current_interval,
|
|
|
|
'module_name' => $module_name,
|
|
|
|
]
|
|
|
|
);
|
|
|
|
$salida = ui_get_snapshot_image($link, $is_snapshot).' ';
|
|
|
|
} else {
|
|
|
|
$sub_string = substr(io_safe_output($value), 0, 12);
|
|
|
|
if ($value == $sub_string) {
|
|
|
|
if ($value == 0 && !$sub_string) {
|
|
|
|
$salida = 0;
|
|
|
|
} else {
|
|
|
|
$salida = $value;
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
// Fixed the goliat sends the strings from web
|
2019-05-28 10:47:31 +02:00
|
|
|
// without HTML entities.
|
2019-01-30 16:18:44 +01:00
|
|
|
if ($is_web_content_string) {
|
|
|
|
$sub_string = substr($value, 0, 12);
|
|
|
|
} else {
|
2019-05-28 10:47:31 +02:00
|
|
|
// Fixed the data from Selenium Plugin.
|
2019-01-30 16:18:44 +01:00
|
|
|
if ($value != strip_tags($value)) {
|
|
|
|
$value = io_safe_input($value);
|
|
|
|
$sub_string = substr($value, 0, 12);
|
|
|
|
} else {
|
|
|
|
$sub_string = substr(io_safe_output($value), 0, 12);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($value == $sub_string) {
|
|
|
|
$salida = $value;
|
|
|
|
} else {
|
|
|
|
$value = preg_replace('/</', '<', $value);
|
|
|
|
$value = preg_replace('/>/', '>', $value);
|
|
|
|
$value = preg_replace('/\n/i', '<br>', $value);
|
|
|
|
$value = preg_replace('/\s/i', ' ', $value);
|
|
|
|
|
|
|
|
$title_dialog = modules_get_agentmodule_agent_alias($id_agente_module).' / '.$module_name;
|
|
|
|
$salida = '<div '."id='hidden_value_module_".$id_agente_module."'
|
2019-05-28 09:48:09 +02:00
|
|
|
style='display: none; width: 100%; height: 100%; overflow: auto; padding: 10px; font-size: 14px; line-height: 16px; font-family: mono,monospace; text-align: left' title='".$title_dialog."'>".$value.'</div><span '."id='value_module_".$id_agente_module."'
|
|
|
|
style='white-space: nowrap;'>".'<span id="value_module_text_'.$id_agente_module.'">'.$sub_string.'</span> '."<a href='javascript: toggle_full_value(".$id_agente_module.")'>".html_print_image('images/zoom.png', true).'</a></span>';
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return $salida;
|
2016-01-18 16:58:24 +01:00
|
|
|
}
|
2017-02-28 15:41:03 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2017-02-28 15:41:03 +01:00
|
|
|
/**
|
2019-05-28 10:47:31 +02:00
|
|
|
* Displays a tag list.
|
|
|
|
*
|
|
|
|
* @param string $title Title.
|
|
|
|
* @param array $tags Tags.
|
|
|
|
*
|
|
|
|
* @return void
|
2019-01-30 16:18:44 +01:00
|
|
|
*/
|
|
|
|
function ui_print_tags_view($title='', $tags=[])
|
|
|
|
{
|
|
|
|
if (!empty($title)) {
|
|
|
|
$tv .= '<div class="tag-wrapper">';
|
|
|
|
$tv .= '<h3>'.$title.'</h3>';
|
|
|
|
} else {
|
|
|
|
$tv .= '<div class="tag-wrapper" style="padding-top: 10px">';
|
|
|
|
}
|
|
|
|
|
|
|
|
foreach ($tags as $tag) {
|
|
|
|
$tv .= '<div class=pandora-tag>';
|
|
|
|
$tv .= '<span class=pandora-tag-title>';
|
|
|
|
$tv .= $tag['title'];
|
|
|
|
$tv .= '</span>';
|
|
|
|
|
|
|
|
$tv .= '<span class=pandora-tag-value>';
|
|
|
|
$tv .= $tag['value'];
|
|
|
|
$tv .= '</span>';
|
|
|
|
$tv .= '</div>';
|
|
|
|
}
|
|
|
|
|
|
|
|
$tv .= '</div>';
|
|
|
|
echo $tv;
|
2017-02-28 15:41:03 +01:00
|
|
|
}
|
2018-03-12 15:17:59 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2018-03-12 15:17:59 +01:00
|
|
|
/**
|
2019-05-28 10:47:31 +02:00
|
|
|
* Gets the link to open a snapshot into a new page.
|
2018-03-12 15:17:59 +01:00
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @param array $params Params to build the link (see $default_params).
|
|
|
|
* @param boolean $only_params Flag to choose de return value:
|
|
|
|
* true: Get the four params required in the function of pandora.js winopen_var (js use)
|
|
|
|
* false: Get an inline winopen_var function call (php user).
|
|
|
|
*
|
|
|
|
* @return string Link.
|
2018-03-12 15:17:59 +01:00
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_get_snapshot_link($params, $only_params=false)
|
|
|
|
{
|
|
|
|
global $config;
|
|
|
|
|
|
|
|
$default_params = [
|
2019-05-28 10:47:31 +02:00
|
|
|
// Id_agente_modulo.
|
2019-01-30 16:18:44 +01:00
|
|
|
'id_module' => 0,
|
|
|
|
'module_name' => '',
|
|
|
|
'interval' => 300,
|
|
|
|
'timestamp' => 0,
|
|
|
|
'id_node' => 0,
|
|
|
|
];
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// Merge default params with passed params.
|
2019-01-30 16:18:44 +01:00
|
|
|
$params = array_merge($default_params, $params);
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// First parameter of js winopeng_var.
|
2019-01-30 16:18:44 +01:00
|
|
|
$page = $config['homeurl_static'].'/operation/agentes/snapshot_view.php';
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
$url = $page.'?id='.$params['id_module'].'&label='.rawurlencode(urlencode(io_safe_output($params['module_name']))).'&id_node='.$params['id_node'];
|
2019-01-30 16:18:44 +01:00
|
|
|
|
|
|
|
if ($params['timestamp'] != 0) {
|
|
|
|
$url .= '×tamp='.$params['timestamp'];
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($params['interval'] != 0) {
|
|
|
|
$url .= '&refr='.$params['interval'];
|
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// Second parameter of js winopeng_var.
|
2019-01-30 16:18:44 +01:00
|
|
|
$win_handle = dechex(crc32('snapshot_'.$params['id_module']));
|
|
|
|
|
|
|
|
$link_parts = [
|
|
|
|
$url,
|
|
|
|
$win_handle,
|
|
|
|
700,
|
|
|
|
480,
|
|
|
|
];
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// Return only the params to js execution.
|
2019-01-30 16:18:44 +01:00
|
|
|
if ($only_params) {
|
|
|
|
return $link_parts;
|
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// Return the function call to inline js execution.
|
2019-01-30 16:18:44 +01:00
|
|
|
return "winopeng_var('".implode("', '", $link_parts)."')";
|
2018-03-12 15:17:59 +01:00
|
|
|
}
|
2018-06-11 16:40:10 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2018-08-02 13:02:33 +02:00
|
|
|
/**
|
2019-05-28 10:47:31 +02:00
|
|
|
* Get the snapshot image with the link to open a snapshot into a new page
|
2018-08-02 13:02:33 +02:00
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @param string $link Built link.
|
|
|
|
* @param boolean $is_image Picture image or list image.
|
2018-08-02 13:02:33 +02:00
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @return string HTML anchor link with image.
|
2018-08-02 13:02:33 +02:00
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_get_snapshot_image($link, $is_image)
|
|
|
|
{
|
2019-05-28 10:47:31 +02:00
|
|
|
$image_name = ($is_image) ? 'photo.png' : 'default_list.png';
|
2019-01-30 16:18:44 +01:00
|
|
|
|
|
|
|
$link = '<a href="javascript:'.$link.'">'.html_print_image(
|
2019-05-28 10:47:31 +02:00
|
|
|
'images/'.$image_name,
|
2019-01-30 16:18:44 +01:00
|
|
|
true,
|
|
|
|
[
|
|
|
|
'border' => '0',
|
|
|
|
'alt' => '',
|
|
|
|
'title' => __('Snapshot view'),
|
|
|
|
]
|
|
|
|
).'</a>';
|
|
|
|
|
|
|
|
return $link;
|
2018-08-02 13:02:33 +02:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
/**
|
|
|
|
* Show warning timezone missmatch.
|
|
|
|
*
|
|
|
|
* @param string $tag Tag.
|
|
|
|
* @param boolean $return Return.
|
|
|
|
*
|
|
|
|
* @return string HTML.
|
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_get_using_system_timezone_warning($tag='h3', $return=true)
|
|
|
|
{
|
|
|
|
global $config;
|
|
|
|
|
|
|
|
$user_offset = ((-get_fixed_offset() / 60) / 60);
|
|
|
|
|
|
|
|
if ($config['timezone'] != date_default_timezone_get()) {
|
|
|
|
$message = sprintf(
|
|
|
|
__('These controls are using the timezone of the system (%s) instead of yours (%s). The difference with your time zone in hours is %s.'),
|
|
|
|
$config['timezone'],
|
|
|
|
date_default_timezone_get(),
|
2019-05-28 10:47:31 +02:00
|
|
|
($user_offset > 0) ? '+'.$user_offset : $user_offset
|
2019-01-30 16:18:44 +01:00
|
|
|
);
|
|
|
|
return ui_print_info_message($message, '', $return, $tag);
|
|
|
|
} else {
|
|
|
|
return '';
|
|
|
|
}
|
|
|
|
|
2018-06-11 16:40:10 +02:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2018-05-21 14:29:11 +02:00
|
|
|
/**
|
|
|
|
* Get the custom docs logo
|
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @return string with the path to logo. False if it should not be displayed.
|
2018-05-21 14:29:11 +02:00
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_get_docs_logo()
|
|
|
|
{
|
|
|
|
global $config;
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default logo to open version (enterprise_installed function only works in login status).
|
2019-01-30 16:18:44 +01:00
|
|
|
if (!file_exists(ENTERPRISE_DIR.'/load_enterprise.php')) {
|
|
|
|
return 'images/icono_docs.png';
|
|
|
|
}
|
2018-05-21 14:29:11 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if (empty($config['custom_docs_logo'])) {
|
|
|
|
return false;
|
|
|
|
}
|
2018-05-21 14:29:11 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
return 'enterprise/images/custom_general_logos/'.$config['custom_docs_logo'];
|
2018-05-21 14:29:11 +02:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2018-05-21 14:29:11 +02:00
|
|
|
/**
|
|
|
|
* Get the custom support logo
|
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @return string with the path to logo. False if it should not be displayed.
|
2018-05-21 14:29:11 +02:00
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_get_support_logo()
|
|
|
|
{
|
|
|
|
global $config;
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
// Default logo to open version (enterprise_installed function only works in login status).
|
2019-01-30 16:18:44 +01:00
|
|
|
if (!file_exists(ENTERPRISE_DIR.'/load_enterprise.php')) {
|
|
|
|
return 'images/icono_support.png';
|
|
|
|
}
|
2018-05-21 14:29:11 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if (empty($config['custom_support_logo'])) {
|
|
|
|
return false;
|
|
|
|
}
|
2018-05-21 14:29:11 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
return 'enterprise/images/custom_general_logos/'.$config['custom_support_logo'];
|
2018-05-21 14:29:11 +02:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2018-05-22 13:40:23 +02:00
|
|
|
/**
|
|
|
|
* Get the custom header logo
|
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @param boolean $white_bg Using white bg or not.
|
|
|
|
*
|
|
|
|
* @return string with the path to logo. If it is not set, return the default value.
|
2018-05-22 13:40:23 +02:00
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_get_custom_header_logo($white_bg=false)
|
|
|
|
{
|
|
|
|
global $config;
|
|
|
|
|
|
|
|
if (empty($config['enterprise_installed'])) {
|
|
|
|
return 'images/pandora_tinylogo_open.png';
|
|
|
|
}
|
|
|
|
|
2019-05-28 10:47:31 +02:00
|
|
|
$stored_logo = (is_metaconsole()) ? (($white_bg) ? $config['meta_custom_logo_white_bg'] : $config['meta_custom_logo']) : (($white_bg) ? $config['custom_logo_white_bg'] : $config['custom_logo']);
|
2019-01-30 16:18:44 +01:00
|
|
|
if (empty($stored_logo)) {
|
|
|
|
return 'images/pandora_tinylogo.png';
|
|
|
|
}
|
|
|
|
|
|
|
|
return 'enterprise/images/custom_logo/'.$stored_logo;
|
2018-05-22 13:40:23 +02:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2018-05-23 18:19:24 +02:00
|
|
|
/**
|
|
|
|
* Get the central networkmap logo
|
|
|
|
*
|
|
|
|
* @return string with the path to logo. If it is not set, return the default.
|
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_get_logo_to_center_networkmap()
|
|
|
|
{
|
|
|
|
global $config;
|
2018-05-23 18:19:24 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if ((!enterprise_installed()) || empty($config['custom_network_center_logo'])) {
|
|
|
|
return 'images/networkmap/bola_pandora_network_maps.png';
|
|
|
|
}
|
2018-05-23 18:19:24 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
return 'enterprise/images/custom_general_logos/'.$config['custom_support_logo'];
|
2018-05-23 18:19:24 +02:00
|
|
|
}
|
2018-05-24 16:59:50 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2018-05-24 16:59:50 +02:00
|
|
|
/**
|
|
|
|
* Get the mobile console login logo
|
|
|
|
*
|
|
|
|
* @return string with the path to logo. If it is not set, return the default.
|
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_get_mobile_login_icon()
|
|
|
|
{
|
|
|
|
global $config;
|
2018-05-24 16:59:50 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if ((!enterprise_installed()) || empty($config['custom_mobile_console_logo'])) {
|
|
|
|
return is_metaconsole() ? 'mobile/images/metaconsole_mobile.png' : 'mobile/images/pandora_mobile_console.png';
|
|
|
|
}
|
2018-05-24 16:59:50 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
return 'enterprise/images/custom_general_logos/'.$config['custom_mobile_console_logo'];
|
2018-05-24 16:59:50 +02:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
|
2018-05-24 16:59:50 +02:00
|
|
|
/**
|
|
|
|
* Get the favicon
|
|
|
|
*
|
|
|
|
* @return string with the path to logo. If it is not set, return the default.
|
|
|
|
*/
|
2019-01-30 16:18:44 +01:00
|
|
|
function ui_get_favicon()
|
|
|
|
{
|
|
|
|
global $config;
|
2018-05-24 16:59:50 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
if (empty($config['custom_favicon'])) {
|
2019-05-28 10:47:31 +02:00
|
|
|
return (!is_metaconsole()) ? 'images/pandora.ico' : 'enterprise/meta/images/favicon_meta.ico';
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
2018-05-24 16:59:50 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
return 'images/custom_favicon/'.$config['custom_favicon'];
|
2018-05-24 16:59:50 +02:00
|
|
|
}
|
2019-04-05 13:18:38 +02:00
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Show sorting arrows for tables
|
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @param string $url_up Url_up.
|
|
|
|
* @param string $url_down Url_down.
|
|
|
|
* @param string $selectUp SelectUp.
|
|
|
|
* @param string $selectDown SelectDown.
|
|
|
|
*
|
2019-04-05 13:18:38 +02:00
|
|
|
* @return string HTML anchor link with the arrow icon.
|
|
|
|
*/
|
|
|
|
function ui_get_sorting_arrows($url_up, $url_down, $selectUp, $selectDown)
|
|
|
|
{
|
|
|
|
$arrow_up = 'images/sort_up_black.png';
|
|
|
|
$arrow_down = 'images/sort_down_black.png';
|
|
|
|
|
2019-04-05 13:51:35 +02:00
|
|
|
// Green arrows for the selected.
|
2019-04-05 13:18:38 +02:00
|
|
|
if ($selectUp === true) {
|
|
|
|
$arrow_up = 'images/sort_up_green.png';
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($selectDown === true) {
|
|
|
|
$arrow_down = 'images/sort_down_green.png';
|
|
|
|
}
|
|
|
|
|
|
|
|
if (is_metaconsole()) {
|
|
|
|
$arrow_up = 'images/sort_up.png';
|
|
|
|
$arrow_down = 'images/sort_down.png';
|
|
|
|
}
|
|
|
|
|
|
|
|
return '<span class="sort_arrow">
|
|
|
|
<a href="'.$url_up.'">'.html_print_image($arrow_up, true, ['alt' => 'up']).'</a>
|
|
|
|
<a href="'.$url_down.'">'.html_print_image($arrow_down, true, ['alt' => 'down']).'</a>
|
|
|
|
</span>';
|
|
|
|
}
|
2019-05-27 19:00:48 +02:00
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Show breadcrums in the page titles
|
|
|
|
*
|
2019-05-28 10:47:31 +02:00
|
|
|
* @param string $tab_name Tab name.
|
|
|
|
*
|
2019-05-27 19:00:48 +02:00
|
|
|
* @return string HTML anchor with the name of the section.
|
|
|
|
*/
|
|
|
|
function ui_print_breadcrums($tab_name)
|
|
|
|
{
|
2019-05-29 17:10:21 +02:00
|
|
|
if (is_array($tab_name)) {
|
|
|
|
return join(' / ', $tab_name);
|
|
|
|
} else if ($tab_name != '') {
|
2019-05-27 19:00:48 +02:00
|
|
|
$section = str_replace('_', ' ', $tab_name);
|
|
|
|
$section = ucwords($section);
|
2019-05-29 17:10:21 +02:00
|
|
|
$section = ' / '.___($section);
|
2019-05-27 19:00:48 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
return $section;
|
|
|
|
}
|