2006-03-27 05:37:27 +02:00
< ? php
2009-06-08 20:26:14 +02:00
// Pandora FMS - http://pandorafms.com
// ==================================================
2011-03-17 Raul Mateos <raulofpandora@gmail.com>
* extensions/dbmanager.php, extensions/pandora_logs.php, general/*.php,
index.php, ajax.php, operation/search_*.php, operation/menu.php,
operation/extensions.php, godmode/menu.php, godmode/extensions.php,
admin_access_logs.php: Cleaned code and updated page disclaimers.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4108 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2011-03-17 23:01:01 +01:00
// Copyright (c) 2005-2011 Artica Soluciones Tecnologicas
// Please see http://pandorafms.org for full contribution list
2006-12-24 23:40:09 +01:00
// This program is free software; you can redistribute it and/or
2011-03-23 Raul Mateos <raulofpandora@gmail.com>
* extensions/ssh_console.php, extensions/vnc_view.php,
extensions/update_manager.php, extensions/users_connected.php,
extensions/extension_uploader.php, extensions/insert_data.php,
extensions/module_groups.php, extensions/plugin_registration.php,
extensions/agent_modules.php, extensions/resource_registration.php,
extensions/resource_exportation.php, extensions/dbmanager.php,
extensions/pandora_logs.php, general/*.php, ajax.php,
operation/search_*.php, operation/menu.php, operation/extensions.php,
godmode/menu.php, godmode/extensions.php, godmode/admin_access_logs.php:
CReverted unwanted license changes.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4126 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2011-03-23 17:13:28 +01:00
// modify it under the terms of the GNU General Public License
2011-03-17 Raul Mateos <raulofpandora@gmail.com>
* extensions/dbmanager.php, extensions/pandora_logs.php, general/*.php,
index.php, ajax.php, operation/search_*.php, operation/menu.php,
operation/extensions.php, godmode/menu.php, godmode/extensions.php,
admin_access_logs.php: Cleaned code and updated page disclaimers.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4108 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2011-03-17 23:01:01 +01:00
// as published by the Free Software Foundation; version 2
2006-12-24 23:40:09 +01:00
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
2011-03-17 Raul Mateos <raulofpandora@gmail.com>
* extensions/dbmanager.php, extensions/pandora_logs.php, general/*.php,
index.php, ajax.php, operation/search_*.php, operation/menu.php,
operation/extensions.php, godmode/menu.php, godmode/extensions.php,
admin_access_logs.php: Cleaned code and updated page disclaimers.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4108 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2011-03-17 23:01:01 +01:00
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2006-12-24 23:40:09 +01:00
// GNU General Public License for more details.
2019-01-30 16:18:44 +01:00
require_once 'include/functions_messages.php' ;
require_once 'include/functions_servers.php' ;
2019-02-26 10:43:59 +01:00
require_once 'include/functions_notifications.php' ;
* 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
2011-06-16 21:26:45 +02:00
// Check permissions
2011-06-27 17:27:19 +02:00
// Global errors/warnings checking.
2019-03-04 08:39:56 +01:00
config_check ();
2009-07-22 17:26:31 +02:00
?>
2019-01-30 16:18:44 +01:00
2019-02-25 11:54:46 +01:00
< div id = " header_table " >
< div id = " header_table_inner " >
< ? php
2019-03-04 08:39:56 +01:00
// ======= Notifications Discovery ===============================================
$notifications_numbers = notifications_get_counters ();
$header_discovery = '<div id="header_discovery">' . notifications_print_ball (
$notifications_numbers [ 'notifications' ],
$notifications_numbers [ 'last_id' ]
) . '</div>' ;
2019-02-25 11:54:46 +01:00
// ======= Alerts ===============================================
$check_minor_release_available = false ;
$pandora_management = check_acl ( $config [ 'id_user' ], 0 , 'PM' );
2019-01-30 16:18:44 +01:00
2019-02-25 11:54:46 +01:00
$check_minor_release_available = db_check_minor_relase_available ();
if ( $check_minor_release_available ) {
if ( users_is_admin ( $config [ 'id_user' ])) {
if ( $config [ 'language' ] == 'es' ) {
set_pandora_error_for_header ( 'Hay una o mas revisiones menores en espera para ser actualizadas. <a style="font-size:8pt;font-style:italic;" target="blank" href="http://wiki.pandorafms.com/index.php?title=Pandora:Documentation_es:Actualizacion#Versi.C3.B3n_7.0NG_.28_Rolling_Release_.29">' . __ ( 'Sobre actualización de revisión menor' ) . '</a>' , 'Revisión/es menor/es disponible/s' );
} else {
set_pandora_error_for_header ( 'There are one or more minor releases waiting for update. <a style="font-size:8pt;font-style:italic;" target="blank" href="http://wiki.pandorafms.com/index.php?title=Pandora:Documentation_en:Anexo_Upgrade#Version_7.0NG_.28_Rolling_Release_.29">' . __ ( 'About minor release update' ) . '</a>' , 'minor release/s available' );
2019-01-30 16:18:44 +01:00
}
2019-02-25 11:54:46 +01:00
}
}
2019-01-30 16:18:44 +01:00
2019-03-04 08:39:56 +01:00
/*
echo '<div id="alert_messages" style="display: none"></div>' ;
2019-02-25 11:54:46 +01:00
2019-03-04 08:39:56 +01:00
if ( $config [ 'alert_cnt' ] > 0 ) {
2019-02-25 11:54:46 +01:00
$maintenance_link = 'javascript:' ;
$maintenance_title = __ ( 'System alerts detected - Please fix as soon as possible' );
$maintenance_class = $maintenance_id = 'show_systemalert_dialog white' ;
$maintenance_link_open_txt = '<a href="' . $maintenance_link . '" title="' . $maintenance_title . '" class="' . $maintenance_class . '" id="show_systemalert_dialog">' ;
$maintenance_link_open_img = '<a href="' . $maintenance_link . '" title="' . $maintenance_title . '" class="' . $maintenance_class . '">' ;
$maintenance_link_close = '</a>' ;
if ( ! $pandora_management ) {
$maintenance_img = '' ;
} else {
$maintenance_img = $maintenance_link_open_img . html_print_image (
'images/header_alert_gray.png' ,
true ,
[
'title' => __ (
'You have %d warning(s)' ,
$config [ 'alert_cnt' ]
),
// 'id' => 'yougotalert',
'class' => 'bot' ,
]
) . '<p><span>' . $config [ 'alert_cnt' ] . '</span></p>' . $maintenance_link_close ;
2019-01-30 16:18:44 +01:00
}
2019-03-04 08:39:56 +01:00
} else {
2019-02-25 11:54:46 +01:00
if ( ! $pandora_management ) {
$maintenance_img = '' ;
} else {
$maintenance_img = html_print_image ( 'images/header_ready_gray.png' , true , [ 'title' => __ ( 'There are not warnings' ), 'id' => 'yougotalert' , 'class' => 'bot' ]);
}
2019-03-04 08:39:56 +01:00
}
2019-01-30 16:18:44 +01:00
2019-03-04 08:39:56 +01:00
$header_alert = '<div id="header_alert">' . $maintenance_img . '</div>' ;
*/
2019-01-30 16:18:44 +01:00
2019-02-25 11:54:46 +01:00
// Messages
2019-03-04 08:39:56 +01:00
/*
$msg_cnt = messages_get_count ( $config [ 'id_user' ]);
if ( $msg_cnt > 0 ) {
2019-02-25 11:54:46 +01:00
echo '<div id="dialog_messages" style="display: none"></div>' ;
2019-01-30 16:18:44 +01:00
2019-02-25 11:54:46 +01:00
$header_message = '<div id="header_message"><a href="ajax.php?page=operation/messages/message_list" title="' . __ ( 'Message overview' ) . '" id="show_messages_dialog">' ;
$header_message .= html_print_image ( 'images/header_email.png' , true , [ 'title' => __ ( 'You have %d unread message(s)' , $msg_cnt ), 'id' => 'yougotmail' , 'class' => 'bot' , 'style' => 'width:24px;' ]);
$header_message .= '<p><span>' . $msg_cnt . '</span></p></a></div>' ;
2019-03-04 08:39:56 +01:00
} */
2019-01-30 16:18:44 +01:00
2019-02-25 11:54:46 +01:00
// Chat messages
$header_chat = " <div id='header_chat'><span id='icon_new_messages_chat' style='display: none;'> " ;
$header_chat .= " <a href='index.php?sec=workspace&sec2=operation/users/webchat'> " ;
$header_chat .= html_print_image ( 'images/header_chat_gray.png' , true , [ 'title' => __ ( 'New chat message' )]);
$header_chat .= '</a></span></div>' ;
// Search
$acl_head_search = true ;
if ( $config [ 'acl_enterprise' ] == 1 && ! users_is_admin ()) {
$acl_head_search = db_get_sql (
" SELECT sec FROM tusuario
INNER JOIN tusuario_perfil ON tusuario . id_user = tusuario_perfil . id_usuario
INNER JOIN tprofile_view ON tprofile_view . id_profile = tusuario_perfil . id_perfil
WHERE tusuario . id_user = '".$config[' id_user ']."' AND ( sec = '*' OR sec = 'head_search' ) "
);
}
2019-01-30 16:18:44 +01:00
2019-02-25 11:54:46 +01:00
if ( $acl_head_search ) {
// Search bar
$search_bar = '<form method="get" style="display: inline;" name="quicksearch" action="">' ;
if ( ! isset ( $config [ 'search_keywords' ])) {
$search_bar .= '<script type="text/javascript"> var fieldKeyWordEmpty = true; </script>' ;
2019-01-30 16:18:44 +01:00
} else {
2019-02-25 11:54:46 +01:00
if ( strlen ( $config [ 'search_keywords' ]) == 0 ) {
$search_bar .= '<script type="text/javascript"> var fieldKeyWordEmpty = true; </script>' ;
} else {
$search_bar .= '<script type="text/javascript"> var fieldKeyWordEmpty = false; </script>' ;
}
2019-01-30 16:18:44 +01:00
}
2019-02-25 11:54:46 +01:00
$search_bar .= '<input type="text" id="keywords" name="keywords"' ;
if ( ! isset ( $config [ 'search_keywords' ])) {
$search_bar .= " value=' " . __ ( 'Enter keywords to search' ) . " ' " ;
} else if ( strlen ( $config [ 'search_keywords' ]) == 0 ) {
$search_bar .= " value=' " . __ ( 'Enter keywords to search' ) . " ' " ;
2019-01-30 16:18:44 +01:00
} else {
2019-02-25 11:54:46 +01:00
$search_bar .= " value=' " . $config [ 'search_keywords' ] . " ' " ;
2019-01-30 16:18:44 +01:00
}
2019-02-25 11:54:46 +01:00
$search_bar .= ' onfocus = " javascript: if (fieldKeyWordEmpty) $ ( \ '#keywords \ ').val( \ ' \ '); "
onkeyup = " javascript: fieldKeyWordEmpty = false; "
style = " margin-top:5px; " class = " search_input " /> ' ;
2019-01-30 16:18:44 +01:00
2019-02-25 11:54:46 +01:00
// $search_bar .= 'onClick="javascript: document.quicksearch.submit()"';
$search_bar .= " <input type='hidden' name='head_search_keywords' value='abc' /> " ;
$search_bar .= '</form>' ;
2019-01-30 16:18:44 +01:00
2019-02-25 11:54:46 +01:00
$header_searchbar = '<div id="header_searchbar">' . ui_print_help_tip ( __ ( 'Blank characters are used as AND conditions' ), true );
$header_searchbar .= $search_bar . '</div>' ;
}
2019-01-30 16:18:44 +01:00
2019-02-25 11:54:46 +01:00
// clippy
if ( $config [ 'tutorial_mode' ] !== 'expert' && ! $config [ 'disable_help' ]) {
$header_clippy = '<div id="header_clippy"><a href="javascript: show_clippy();">' . html_print_image (
'images/clippy_icon_gray.png' ,
true ,
[
'id' => 'clippy' ,
'class' => 'clippy' ,
'alt' => __ ( '%s assistant' , get_product_name ()),
'title' => __ (
'%s assistant' ,
get_product_name ()
),
]
) . '</a></div>' ;
}
2019-01-30 16:18:44 +01:00
2019-02-25 11:54:46 +01:00
// Servers check
2019-03-04 08:39:56 +01:00
/*
$servers = [];
$servers [ 'all' ] = ( int ) db_get_value ( 'COUNT(id_server)' , 'tserver' );
$servers [ 'up' ] = ( int ) servers_check_status ();
$servers [ 'down' ] = ( $servers [ 'all' ] - $servers [ 'up' ]);
if ( $servers [ 'up' ] == 0 ) {
2019-02-25 11:54:46 +01:00
// All Servers down or no servers at all
$servers_check_img = html_print_image ( 'images/header_down_gray.png' , true , [ 'alt' => 'cross' , 'class' => 'bot' , 'title' => __ ( 'All systems' ) . ': ' . __ ( 'Down' )]);
2019-03-04 08:39:56 +01:00
} else if ( $servers [ 'down' ] != 0 ) {
2019-02-25 11:54:46 +01:00
// Some servers down
$servers_check_img = html_print_image ( 'images/header_warning_gray.png' , true , [ 'alt' => 'error' , 'class' => 'bot' , 'title' => $servers [ 'down' ] . ' ' . __ ( 'servers down' )]);
2019-03-04 08:39:56 +01:00
} else {
2019-02-25 11:54:46 +01:00
// All servers up
$servers_check_img = html_print_image ( 'images/header_ready_gray.png' , true , [ 'alt' => 'ok' , 'class' => 'bot' , 'title' => __ ( 'All systems' ) . ': ' . __ ( 'Ready' )]);
2019-03-04 08:39:56 +01:00
}
2019-02-25 11:54:46 +01:00
2019-03-04 08:39:56 +01:00
unset ( $servers );
// Since this is the header, we don't like to trickle down variables.
$servers_link_open = '<a class="white" href="index.php?sec=gservers&sec2=godmode/servers/modificar_server&refr=60">' ;
$servers_link_close = '</a>' ;
2019-02-25 11:54:46 +01:00
2019-03-04 08:39:56 +01:00
$header_server = '<div id="header_server">' . $servers_link_open . $servers_check_img . $servers_link_close . '</div>' ;
*/
2019-02-25 11:54:46 +01:00
// Main help icon
if ( ! $config [ 'disable_help' ]) {
$header_help = '<div id="header_help"><a href="#" class="modalpopup" id="helpmodal">' . html_print_image (
'images/header_help_gray.png' ,
true ,
[
'title' => __ ( 'Main help' ),
'id' => 'helpmodal' ,
'class' => 'modalpopup' ,
]
) . '</a></div>' ;
}
2019-01-30 16:18:44 +01:00
2019-02-25 11:54:46 +01:00
// ======= Autorefresh code =============================
$autorefresh_txt = '' ;
$autorefresh_additional = '' ;
2019-01-30 16:18:44 +01:00
2019-02-25 11:54:46 +01:00
$ignored_params = [
'agent_config' => false ,
'code' => false ,
];
2019-01-30 16:18:44 +01:00
2019-02-25 11:54:46 +01:00
if ( ! isset ( $_GET [ 'sec2' ])) {
$_GET [ 'sec2' ] = '' ;
}
2019-01-30 16:18:44 +01:00
2019-02-25 11:54:46 +01:00
if ( ! isset ( $_GET [ 'refr' ])) {
$_GET [ 'refr' ] = null ;
}
2019-01-30 16:18:44 +01:00
2019-02-25 11:54:46 +01:00
$select = db_process_sql ( " SELECT autorefresh_white_list,time_autorefresh FROM tusuario WHERE id_user = ' " . $config [ 'id_user' ] . " ' " );
$autorefresh_list = json_decode ( $select [ 0 ][ 'autorefresh_white_list' ]);
2019-01-30 16:18:44 +01:00
2019-02-25 11:54:46 +01:00
if ( $autorefresh_list !== null && array_search ( $_GET [ 'sec2' ], $autorefresh_list ) !== false ) {
$do_refresh = true ;
if ( $_GET [ 'sec2' ] == 'operation/agentes/pandora_networkmap' ) {
if (( ! isset ( $_GET [ 'tab' ])) || ( $_GET [ 'tab' ] != 'view' )) {
$do_refresh = false ;
2019-01-30 16:18:44 +01:00
}
2019-02-25 11:54:46 +01:00
}
2019-01-30 16:18:44 +01:00
2019-02-25 11:54:46 +01:00
if ( $do_refresh ) {
$autorefresh_img = html_print_image ( 'images/header_refresh_gray.png' , true , [ 'class' => 'bot' , 'alt' => 'lightning' , 'title' => __ ( 'Configure autorefresh' )]);
2019-01-30 16:18:44 +01:00
2019-02-25 11:54:46 +01:00
if ( $_GET [ 'refr' ]) {
$autorefresh_txt .= ' (<span id="refrcounter">' . date ( 'i:s' , $config [ 'refr' ]) . '</span>)' ;
2019-01-30 16:18:44 +01:00
}
2019-02-25 11:54:46 +01:00
$ignored_params [ 'refr' ] = '' ;
$values = get_refresh_time_array ();
$autorefresh_additional = '<span id="combo_refr" style="display: none;">' ;
$autorefresh_additional .= html_print_select ( $values , 'ref' , '' , '' , __ ( 'Select' ), '0' , true , false , false );
$autorefresh_additional .= '</span>' ;
unset ( $values );
2019-01-30 16:18:44 +01:00
2019-02-25 11:54:46 +01:00
$autorefresh_link_open_img = '<a class="white autorefresh" href="' . ui_get_url_refresh ( $ignored_params ) . '">' ;
if ( $_GET [ 'refr' ]) {
$autorefresh_link_open_txt = '<a class="autorefresh autorefresh_txt" href="' . ui_get_url_refresh ( $ignored_params ) . '">' ;
2019-01-30 16:18:44 +01:00
} else {
2019-02-25 11:54:46 +01:00
$autorefresh_link_open_txt = '<a>' ;
2019-01-30 16:18:44 +01:00
}
2019-02-25 11:54:46 +01:00
$autorefresh_link_close = '</a>' ;
} else {
$autorefresh_img = html_print_image ( 'images/header_refresh_disabled_gray.png' , true , [ 'class' => 'bot autorefresh_disabled' , 'alt' => 'lightning' , 'title' => __ ( 'Disabled autorefresh' )]);
2019-01-30 16:18:44 +01:00
2019-02-25 11:54:46 +01:00
$ignored_params [ 'refr' ] = false ;
2019-01-30 16:18:44 +01:00
2019-02-25 11:54:46 +01:00
$autorefresh_link_open_img = '' ;
$autorefresh_link_open_txt = '' ;
$autorefresh_link_close = '' ;
}
} else {
$autorefresh_img = html_print_image ( 'images/header_refresh_disabled_gray.png' , true , [ 'class' => 'bot autorefresh_disabled' , 'alt' => 'lightning' , 'title' => __ ( 'Disabled autorefresh' )]);
2019-01-30 16:18:44 +01:00
2019-02-25 11:54:46 +01:00
$ignored_params [ 'refr' ] = false ;
2019-01-30 16:18:44 +01:00
2019-02-25 11:54:46 +01:00
$autorefresh_link_open_img = '' ;
$autorefresh_link_open_txt = '' ;
$autorefresh_link_close = '' ;
}
2019-01-30 16:18:44 +01:00
2019-02-25 11:54:46 +01:00
$header_autorefresh = '<div id="header_autorefresh">' . $autorefresh_link_open_img . $autorefresh_img . $autorefresh_link_close . '</div>' ;
$header_autorefresh_counter = '<div id="header_autorefresh_counter">' . $autorefresh_link_open_txt . $autorefresh_txt . $autorefresh_link_close . $autorefresh_additional . '</div>' ;
2019-01-30 16:18:44 +01:00
2019-02-25 11:54:46 +01:00
// qr
if ( $config [ 'show_qr_code_header' ] == 0 ) {
$show_qr_code_header = 'display: none;' ;
} else {
$show_qr_code_header = 'display: inline;' ;
}
2019-01-30 16:18:44 +01:00
2019-02-25 11:54:46 +01:00
$header_qr = '<div id="header_qr"><div style="' . $show_qr_code_header . '" id="qr_code_container"><a href="javascript: show_dialog_qrcode();">' . html_print_image (
'images/qrcode_icon_gray.png' ,
true ,
[
'alt' => __ ( 'QR Code of the page' ),
'title' => __ ( 'QR Code of the page' ),
]
) . '</a></div></div>' ;
echo " <div style='display: none;' id='qrcode_container' title=' " . __ ( 'QR code of the page' ) . " '> " ;
echo " <div id='qrcode_container_image'></div> " ;
echo '</div>' ;
?>
< script type = 'text/javascript' >
$ ( document ) . ready ( function () {
$ ( " #qrcode_container " ) . dialog ({
autoOpen : false ,
modal : true
});
});
</ script >
< ? php
// User
if ( is_user_admin ( $config [ 'id_user' ]) == 1 ) {
$header_user = html_print_image ( 'images/header_user_admin_green.png' , true , [ 'title' => __ ( 'Edit my user' ), 'class' => 'bot' , 'alt' => 'user' ]);
} else {
$header_user = html_print_image ( 'images/header_user_green.png' , true , [ 'title' => __ ( 'Edit my user' ), 'class' => 'bot' , 'alt' => 'user' ]);
}
$header_user = '<div id="header_user"><a href="index.php?sec=workspace&sec2=operation/users/user_edit">' . $header_user . '<span> (' . $config [ 'id_user' ] . ')</span></a></div>' ;
// Logout
$header_logout = '<div id="header_logout"><a class="white" href="' . ui_get_full_url ( 'index.php?bye=bye' ) . '">' ;
$header_logout .= html_print_image ( 'images/header_logout_gray.png' , true , [ 'alt' => __ ( 'Logout' ), 'class' => 'bot' , 'title' => __ ( 'Logout' )]);
$header_logout .= '</a></div>' ;
2019-03-04 08:39:56 +01:00
// echo '<div class="header_left">'.$header_discovery, $header_alert, $header_message, $header_chat.'</div><div class="header_center">'.$header_searchbar, $header_clippy, $header_help, $header_server, $header_autorefresh, $header_autorefresh_counter, $header_qr.'</div><div class="header_right">'.$header_user, $header_logout.'</div>';
echo '<div class="header_left">' . $header_autorefresh , $header_autorefresh_counter , $header_qr , $header_chat . '</div><div class="header_center">' . $header_searchbar , $header_discovery . '</div><div class="header_right">' . $header_user , $header_logout . '</div>' ;
2019-02-25 11:54:46 +01:00
?>
</ div > <!-- div que cierra #table_header_inner -->
</ div > <!-- div que cierra #table_header -->
2019-01-30 16:18:44 +01:00
2013-02-11 13:40:43 +01:00
2019-02-12 16:25:59 +01:00
<!-- Notifications content wrapper -->
< div id = 'notification-content' style = 'display:none;' /></ div >
2019-02-27 13:41:26 +01:00
<!-- Old style div wrapper -->
< div id = " alert_messages " style = " display: none " ></ div > ;
2012-03-05 Miguel de Dios <miguel.dedios@artica.es>
* extensions/update_manager/main.php, general/shortcut_bar.php,
godmode/reporting/reporting_builder.item_editor.php,
godmode/reporting/reporting_builder.php,
godmode/reporting/reporting_builder.preview.php, include/functions_api.php,
include/functions_html.php, include/htmlawed.php, include/pchart_graph.php,
operation/events/events_list.php, operation/netflow/nf_live_view.php:
cleaned source code style.
* godmode/menu.php, godmode/agentes/manage_config_remote.php: removed the
enterprise feature that have been wrong for years.
* general/header.php: changed to load the jquery-ui and jquery javascript
library to last version.
* extensions/insert_data.php, extensions/snmp_explorer.php,
godmode/agentes/agent_manager.php, include/ajax/agent.php,
include/javascript/pandora.js, operation/agentes/exportdata.php,
operation/events/events.php: changed the unknow plugin autocomplete for
the autocomple from jquery-ui.
* include/functions_ui.php: cleaned source code style and into the function
"ui_process_page_head" added the blacklist hardwrote for to use old jquery.
* include/styles/jquery-ui-1.8.17.custom.css,
include/javascript/jquery-1.7.1.min.js,
include/javascript/jquery.jquery-ui-1.8.17.custom.min.js: added the last
version of Jquery and Jquery-ui.
Merge from the branch "pandora_4.0"
* godmode/reporting/visual_console_builder.constans.php,
godmode/reporting/visual_console_builder.editor.js,
godmode/reporting/visual_console_builder.editor.php,
include/functions_visual_map.php,
include/ajax/visual_console_builder.ajax.php,
include/javascript/pandora_visual_console.js: changed the unknow
plugin autocomplete for the autocomple from jquery-ui and added function to
paint a Bubble Chart (http://en.wikipedia.org/wiki/Bubble_chart) with the
name "progress_bubble".
* images/percentile_item.disabled.png, images/percentile_item.png: added
images for button of percentile item (new item in visual map).
* include/styles/pandora.css: added the style for the new button percentile
item.
* include/functions_graph.php, include/graphs/fgraph.php,
include/graphs/functions_gd.php: cleaned source code style, and added the
params to set text and color in the function "progress_bar" and added
function to paint a Bubble Chart (http://en.wikipedia.org/wiki/Bubble_chart)
with the name "progress_bubble".
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@5693 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2012-03-05 18:56:56 +01:00
< script type = " text/javascript " >
2019-01-30 16:18:44 +01:00
/* <![CDATA[ */
< ? php
$config_fixed_header = false ;
if ( isset ( $config [ 'fixed_header' ])) {
$config_fixed_header = $config [ 'fixed_header' ];
}
2019-02-08 14:23:05 +01:00
2019-01-30 16:18:44 +01:00
?>
2019-02-08 14:23:05 +01:00
function addNotifications ( event ) {
2019-02-08 18:53:28 +01:00
var element = document . getElementById ( " notification-content " );
2019-02-12 16:25:59 +01:00
if ( ! element ) {
console . error ( 'Cannot locate the notification content element.' );
return ;
}
// If notification-content is empty, retrieve the notifications.
if ( ! element . firstChild ) {
jQuery . post ( " ajax.php " ,
{
" page " : " godmode/setup/setup_notifications " ,
" get_notifications_dropdown " : 1 ,
},
function ( data , status ) {
// Apppend data
element . innerHTML = data ;
// Show the content
element . style . display = " block " ;
attatch_to_image ();
},
" html "
);
} else {
// If there is some notifications retrieved, only show it.
element . style . display = " block " ;
attatch_to_image ();
}
2019-02-08 14:23:05 +01:00
}
function attatch_to_image () {
2019-02-08 18:53:28 +01:00
var notification_elem = document . getElementById ( " notification-wrapper " );
2019-02-12 16:25:59 +01:00
if ( ! notification_elem ) return ;
2019-02-08 18:53:28 +01:00
var image_attached =
document . getElementById ( " notification-ball-header " )
. getBoundingClientRect ()
. left
;
notification_elem . style . left = image_attached - 300 + " px " ;
2019-02-08 14:23:05 +01:00
}
2019-02-08 18:53:28 +01:00
2019-02-13 11:09:15 +01:00
function notifications_clean_ui ( action , self_id ) {
switch ( action ) {
case 'item' :
// Recalculate the notification ball.
check_new_notifications ();
break ;
case 'toast' :
// Only remove the toast element.
document . getElementById ( self_id ) . remove ();
break ;
}
}
2019-02-08 18:53:28 +01:00
function notifications_hide () {
var element = document . getElementById ( " notification-content " );
element . style . display = " none "
2019-02-08 14:23:05 +01:00
}
2019-02-11 17:53:37 +01:00
function click_on_notification_toast ( event ) {
2019-02-13 11:09:15 +01:00
var match = / notification - ( .* ) - id - ([ 0 - 9 ] + ) /. exec ( event . target . id );
2019-02-12 15:27:14 +01:00
if ( ! match ) {
console . error (
" Cannot handle toast click event. Id not valid: " ,
event . target . id
);
return ;
}
jQuery . post ( " ajax.php " ,
{
" page " : " godmode/setup/setup_notifications " ,
" mark_notification_as_read " : 1 ,
2019-02-13 11:09:15 +01:00
" message " : match [ 2 ]
2019-02-12 15:27:14 +01:00
},
function ( data , status ) {
if ( ! data . result ) {
console . error ( " Cannot redirect to URL. " );
return ;
}
2019-02-13 11:09:15 +01:00
notifications_clean_ui ( match [ 1 ], event . target . id );
2019-02-12 15:27:14 +01:00
},
" json "
)
. fail ( function ( xhr , textStatus , errorThrown ){
console . error (
" Failed onclik event on toast. Error: " ,
xhr . responseText
);
});
2019-02-11 17:53:37 +01:00
}
2019-02-13 11:09:15 +01:00
function print_toast ( title , subtitle , severity , url , id , onclick ) {
2019-02-11 17:53:37 +01:00
// TODO severity.
severity = '' ;
// Start the toast.
2019-02-13 11:09:15 +01:00
var toast = document . createElement ( 'a' );
2019-02-11 17:53:37 +01:00
toast . setAttribute ( 'onclick' , onclick );
2019-02-13 11:09:15 +01:00
toast . setAttribute ( 'href' , url );
toast . setAttribute ( 'target' , '_blank' );
2019-02-11 17:53:37 +01:00
// Fill toast.
2019-02-13 11:09:15 +01:00
var toast_div = document . createElement ( 'div' );
toast_div . className = 'snackbar ' + severity ;
toast_div . id = id ;
2019-02-11 17:53:37 +01:00
var toast_title = document . createElement ( 'h3' );
var toast_text = document . createElement ( 'p' );
toast_title . innerHTML = title ;
toast_text . innerHTML = subtitle ;
2019-02-13 11:09:15 +01:00
toast_div . appendChild ( toast_title );
toast_div . appendChild ( toast_text );
toast . appendChild ( toast_div );
2019-02-11 17:53:37 +01:00
// Show and program the hide event.
2019-02-13 11:09:15 +01:00
toast_div . className = toast_div . className + ' show' ;
2019-02-11 17:53:37 +01:00
setTimeout ( function (){
2019-02-13 11:09:15 +01:00
toast_div . className = toast_div . className . replace ( " show " , " " );
2019-02-11 17:53:37 +01:00
}, 8000 );
return toast ;
}
2019-02-11 13:35:36 +01:00
function check_new_notifications () {
var last_id = document . getElementById ( 'notification-ball-header' )
. getAttribute ( 'last_id' );
if ( last_id === null ) {
console . error ( 'Cannot retrieve notifications ball last_id.' );
return ;
}
jQuery . post ( " ajax.php " ,
2019-02-11 17:53:37 +01:00
{
" page " : " godmode/setup/setup_notifications " ,
2019-02-11 13:35:36 +01:00
" check_new_notifications " : 1 ,
" last_id " : last_id
},
function ( data , status ) {
2019-02-11 17:53:37 +01:00
// Clean the toasts wrapper at first.
var toast_wrapper = document . getElementById (
'notifications-toasts-wrapper'
);
if ( toast_wrapper === null ) {
console . error ( 'Cannot place toast notifications.' );
return ;
}
while ( toast_wrapper . firstChild ) {
toast_wrapper . removeChild ( toast_wrapper . firstChild );
}
// Return if no new notification.
2019-02-11 14:44:14 +01:00
if ( ! data . has_new_notifications ) return ;
2019-02-11 17:53:37 +01:00
2019-02-11 14:44:14 +01:00
// Substitute the ball
var new_ball = atob ( data . new_ball );
var ball_wrapper = document
. getElementById ( 'notification-ball-header' )
. parentElement ;
if ( ball_wrapper === null ) {
console . error ( 'Cannot update notification ball' );
return ;
}
2019-02-12 16:25:59 +01:00
// Print the new ball and clean old notifications
2019-02-11 14:44:14 +01:00
ball_wrapper . innerHTML = new_ball ;
2019-02-12 16:25:59 +01:00
var not_drop = document . getElementById ( 'notification-content' );
while ( not_drop . firstChild && not_drop ) {
not_drop . removeChild ( not_drop . firstChild );
}
2019-02-11 17:53:37 +01:00
// Add the new toasts.
2019-02-12 15:27:14 +01:00
if ( Array . isArray ( data . new_notifications )) {
data . new_notifications . forEach ( function ( ele ) {
toast_wrapper . appendChild (
print_toast (
2019-02-13 16:40:37 +01:00
ele . subject ,
2019-02-12 15:27:14 +01:00
ele . mensaje ,
ele . criticity ,
2019-02-13 11:09:15 +01:00
ele . full_url ,
2019-02-12 15:27:14 +01:00
'notification-toast-id-' + ele . id_mensaje ,
'click_on_notification_toast(event)'
)
);
});
}
2019-02-11 13:35:36 +01:00
},
" json "
)
. fail ( function ( xhr , textStatus , errorThrown ){
console . error (
" Cannot get new notifications. Error: " ,
xhr . responseText
);
});
}
2019-02-08 14:23:05 +01:00
// Resize event
window . addEventListener ( " resize " , function () {
attatch_to_image ();
});
2019-01-30 16:18:44 +01:00
var fixed_header = < ? php echo json_encode (( bool ) $config_fixed_header ); ?> ;
var new_chat = < ? php echo ( int ) $_SESSION [ 'new_chat' ]; ?> ;
$ ( document ) . ready ( function () {
2019-02-11 13:35:36 +01:00
// Check new notifications on a periodic way
setInterval ( check_new_notifications , 10000 );
2019-02-11 17:53:37 +01:00
// Print the wrapper for notifications
var notifications_toasts_wrapper = document . createElement ( 'div' );
notifications_toasts_wrapper . id = 'notifications-toasts-wrapper' ;
document . body . insertBefore (
notifications_toasts_wrapper ,
document . body . firstChild
);
2019-01-30 16:18:44 +01:00
< ? php
if (( $autorefresh_list !== null ) && ( array_search ( $_GET [ 'sec2' ], $autorefresh_list ) !== false ) && ( ! isset ( $_GET [ 'refr' ]))) {
$do_refresh = true ;
if ( $_GET [ 'sec2' ] == 'operation/agentes/pandora_networkmap' ) {
if (( ! isset ( $_GET [ 'tab' ])) || ( $_GET [ 'tab' ] != 'view' )) {
$do_refresh = false ;
}
}
$new_dashboard = get_parameter ( 'new_dashboard' , 0 );
if ( $_GET [ 'sec2' ] == 'enterprise/dashboard/main_dashboard' && $new_dashboard ) {
$do_refresh = false ;
}
if ( $do_refresh ) {
?>
$ ( " a.autorefresh_txt " ) . toggle ();
$ ( " #combo_refr " ) . toggle ();
$ ( " #combo_refr " ) . css ( 'padding-right' , '9px' );
href = $ ( " a.autorefresh " ) . attr ( " href " );
< ? php
if ( $select [ 0 ][ 'time_autorefresh' ]) {
?>
var refresh = '<?php echo $select[0][' time_autorefresh ']; ?>' ;
$ ( document ) . attr ( " location " , href + refresh );
< ? php
}
?>
< ? php
}
}
?>
if ( fixed_header ) {
$ ( 'div#head' ) . addClass ( 'fixed_header' );
$ ( 'div#page' )
. css ( 'padding-top' , $ ( 'div#head' ) . innerHeight () + 'px' )
. css ( 'position' , 'relative' );
}
check_new_chats_icon ( 'icon_new_messages_chat' );
/* Temporal fix to hide graphics when ui_dialog are displayed */
$ ( " #yougotalert " ) . click ( function () {
$ ( " #agent_access " ) . css ( " display " , " none " );
});
$ ( " #ui_close_dialog_titlebar " ) . click ( function () {
$ ( " #agent_access " ) . css ( " display " , " " );
});
function blinkpubli (){
$ ( " .publienterprise " ) . delay ( 100 ) . fadeTo ( 300 , 0.2 ) . delay ( 100 ) . fadeTo ( 300 , 1 , blinkpubli );
}
2019-02-13 11:47:33 +01:00
blinkpubli ();
2019-01-30 16:18:44 +01:00
< ? php
if ( $_GET [ 'refr' ]) {
?>
var refr_time = < ? php echo ( int ) get_parameter ( 'refr' , 0 ); ?> ;
var t = new Date ();
t . setTime ( t . getTime () +
parseInt ( < ? php echo ( $config [ 'refr' ] * 1000 ); ?> ));
$ ( " #refrcounter " ) . countdown ({ until : t ,
layout : '%M%nn%M:%S%nn%S' ,
labels : [ '' , '' , '' , '' , '' , '' , '' ],
onExpiry : function () {
href = $ ( " a.autorefresh " ) . attr ( " href " );
href = href + refr_time ;
$ ( document ) . attr ( " location " , href );
}
});
< ? php
}
?>
$ ( " a.autorefresh " ) . click ( function () {
$ ( " a.autorefresh_txt " ) . toggle ();
$ ( " #combo_refr " ) . toggle ();
$ ( " #combo_refr " ) . css ( 'padding-right' , '9px' );
$ ( " select#ref " ) . change ( function () {
href = $ ( " a.autorefresh " ) . attr ( " href " );
$ ( document ) . attr ( " location " , href + this . value );
});
return false ;
});
});
2009-02-05 16:36:06 +01:00
/* ]]> */
2019-02-12 16:25:59 +01:00
</ script >