pandorafms/pandora_console/godmode/agentes/planned_downtime.editor.php

976 lines
30 KiB
PHP
Raw Normal View History

<?php
// Pandora FMS - http://pandorafms.com
// ==================================================
// Copyright (c) 2005-2010 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.
// Load global vars
global $config;
check_login();
if (! check_acl ($config['id_user'], 0, "AW")) {
db_pandora_audit("ACL Violation",
"Trying to access downtime scheduler");
require ("general/noaccess.php");
return;
}
require_once ('include/functions_users.php');
// Header
ui_print_page_header(
__("Planned Downtime"),
2013-04-10 Sergio Martin <sergio.martin@artica.es> * L . L pandora_console L pandora_console/DEBIAN L pandora_console/include M pandora_console/include/functions_html.php L pandora_console/include/styles D pandora_console/include/styles/tip.css M pandora_console/include/styles/menu.css L pandora_console/include/styles/images M pandora_console/include/styles/pandora.css M pandora_console/include/functions_visual_map_editor.php M pandora_console/include/functions_groups.php L pandora_console/include/ajax M pandora_console/include/ajax/events.php M pandora_console/include/ajax/module.php L pandora_console/include/swiftmailer L pandora_console/include/swiftmailer/classes L pandora_console/include/swiftmailer/classes/Swift L pandora_console/include/swiftmailer/classes/Swift/ByteStream L pandora_console/include/swiftmailer/classes/Swift/Encoder L pandora_console/include/swiftmailer/classes/Swift/Plugins L pandora_console/include/swiftmailer/classes/Swift/Plugins/Decorator L pandora_console/include/swiftmailer/classes/Swift/Plugins/Reporters L pandora_console/include/swiftmailer/classes/Swift/Plugins/Pop L pandora_console/include/swiftmailer/classes/Swift/Plugins/Loggers L pandora_console/include/swiftmailer/classes/Swift/Mime L pandora_console/include/swiftmailer/classes/Swift/Mime/HeaderEncoder L pandora_console/include/swiftmailer/classes/Swift/Mime/ContentEncoder L pandora_console/include/swiftmailer/classes/Swift/Mime/Headers L pandora_console/include/swiftmailer/classes/Swift/Transport L pandora_console/include/swiftmailer/classes/Swift/Transport/Esmtp L pandora_console/include/swiftmailer/classes/Swift/Transport/Esmtp/Auth L pandora_console/include/swiftmailer/classes/Swift/CharacterReaderFactory L pandora_console/include/swiftmailer/classes/Swift/KeyCache L pandora_console/include/swiftmailer/classes/Swift/CharacterReader L pandora_console/include/swiftmailer/classes/Swift/StreamFilters L pandora_console/include/swiftmailer/classes/Swift/Events L pandora_console/include/swiftmailer/classes/Swift/CharacterStream L pandora_console/include/swiftmailer/classes/Swift/Mailer L pandora_console/include/swiftmailer/dependency_maps M pandora_console/include/functions_ui.php M pandora_console/include/functions.php M pandora_console/include/functions_agents.php L pandora_console/include/languages L pandora_console/include/languages/datepicker M pandora_console/include/functions_graph.php M pandora_console/include/functions_events.php M pandora_console/include/functions_menu.php L pandora_console/include/graphs L pandora_console/include/graphs/pChart L pandora_console/include/graphs/pChart/palettes L pandora_console/include/graphs/pChart/fonts L pandora_console/include/graphs/pChart/cache L pandora_console/include/graphs/pChart/data M pandora_console/include/graphs/functions_flot.php L pandora_console/include/graphs/flot M pandora_console/include/graphs/functions_gd.php L pandora_console/include/graphs/images_graphs L pandora_console/include/db M pandora_console/include/functions_reporting.php L pandora_console/include/fonts L pandora_console/include/auth L pandora_console/include/javascript M pandora_console/include/javascript/openlayers.pandora.js L pandora_console/include/javascript/tiny_mce L pandora_console/include/javascript/tiny_mce/utils L pandora_console/include/javascript/tiny_mce/plugins L pandora_console/include/javascript/tiny_mce/plugins/media L pandora_console/include/javascript/tiny_mce/plugins/media/langs L pandora_console/include/javascript/tiny_mce/plugins/media/css L pandora_console/include/javascript/tiny_mce/plugins/media/js L pandora_console/include/javascript/tiny_mce/plugins/pagebreak L pandora_console/include/javascript/tiny_mce/plugins/insertdatetime L pandora_console/include/javascript/tiny_mce/plugins/noneditable L pandora_console/include/javascript/tiny_mce/plugins/inlinepopups L pandora_console/include/javascript/tiny_mce/plugins/inlinepopups/skins L pandora_console/include/javascript/tiny_mce/plugins/inlinepopups/skins/clearlooks2 L pandora_console/include/javascript/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img L pandora_console/include/javascript/tiny_mce/plugins/autolink L pandora_console/include/javascript/tiny_mce/plugins/example_dependency L pandora_console/include/javascript/tiny_mce/plugins/autoresize L pandora_console/include/javascript/tiny_mce/plugins/example L pandora_console/include/javascript/tiny_mce/plugins/example/langs L pandora_console/include/javascript/tiny_mce/plugins/example/img L pandora_console/include/javascript/tiny_mce/plugins/example/js L pandora_console/include/javascript/tiny_mce/plugins/emotions L pandora_console/include/javascript/tiny_mce/plugins/emotions/langs L pandora_console/include/javascript/tiny_mce/plugins/emotions/img L pandora_console/include/javascript/tiny_mce/plugins/emotions/js L pandora_console/include/javascript/tiny_mce/plugins/iespell L pandora_console/include/javascript/tiny_mce/plugins/save L pandora_console/include/javascript/tiny_mce/plugins/lists L pandora_console/include/javascript/tiny_mce/plugins/visualblocks L pandora_console/include/javascript/tiny_mce/plugins/visualblocks/css L pandora_console/include/javascript/tiny_mce/plugins/advhr L pandora_console/include/javascript/tiny_mce/plugins/advhr/langs L pandora_console/include/javascript/tiny_mce/plugins/advhr/css L pandora_console/include/javascript/tiny_mce/plugins/advhr/js L pandora_console/include/javascript/tiny_mce/plugins/advlist L pandora_console/include/javascript/tiny_mce/plugins/tabfocus L pandora_console/include/javascript/tiny_mce/plugins/layer L pandora_console/include/javascript/tiny_mce/plugins/advimage L pandora_console/include/javascript/tiny_mce/plugins/advimage/langs L pandora_console/include/javascript/tiny_mce/plugins/advimage/css L pandora_console/include/javascript/tiny_mce/plugins/advimage/img L pandora_console/include/javascript/tiny_mce/plugins/advimage/js L pandora_console/include/javascript/tiny_mce/plugins/preview L pandora_console/include/javascript/tiny_mce/plugins/preview/jscripts L pandora_console/include/javascript/tiny_mce/plugins/directionality L pandora_console/include/javascript/tiny_mce/plugins/wordcount L pandora_console/include/javascript/tiny_mce/plugins/visualchars L pandora_console/include/javascript/tiny_mce/plugins/legacyoutput L pandora_console/include/javascript/tiny_mce/plugins/autosave L pandora_console/include/javascript/tiny_mce/plugins/table L pandora_console/include/javascript/tiny_mce/plugins/table/langs L pandora_console/include/javascript/tiny_mce/plugins/table/css L pandora_console/include/javascript/tiny_mce/plugins/table/js L pandora_console/include/javascript/tiny_mce/plugins/advlink L pandora_console/include/javascript/tiny_mce/plugins/advlink/langs L pandora_console/include/javascript/tiny_mce/plugins/advlink/css L pandora_console/include/javascript/tiny_mce/plugins/advlink/js L pandora_console/include/javascript/tiny_mce/plugins/print L pandora_console/include/javascript/tiny_mce/plugins/nonbreaking L pandora_console/include/javascript/tiny_mce/plugins/fullpage L pandora_console/include/javascript/tiny_mce/plugins/fullpage/langs L pandora_console/include/javascript/tiny_mce/plugins/fullpage/css L pandora_console/include/javascript/tiny_mce/plugins/fullpage/js L pandora_console/include/javascript/tiny_mce/plugins/style L pandora_console/include/javascript/tiny_mce/plugins/style/langs L pandora_console/include/javascript/tiny_mce/plugins/style/css L pandora_console/include/javascript/tiny_mce/plugins/style/js L pandora_console/include/javascript/tiny_mce/plugins/searchreplace L pandora_console/include/javascript/tiny_mce/plugins/searchreplace/langs L pandora_console/include/javascript/tiny_mce/plugins/searchreplace/css L pandora_console/include/javascript/tiny_mce/plugins/searchreplace/js L pandora_console/include/javascript/tiny_mce/plugins/fullscreen L pandora_console/include/javascript/tiny_mce/plugins/spellchecker L pandora_console/include/javascript/tiny_mce/plugins/spellchecker/includes L pandora_console/include/javascript/tiny_mce/plugins/spellchecker/css L pandora_console/include/javascript/tiny_mce/plugins/spellchecker/img L pandora_console/include/javascript/tiny_mce/plugins/spellchecker/classes L pandora_console/include/javascript/tiny_mce/plugins/spellchecker/classes/utils L pandora_console/include/javascript/tiny_mce/plugins/contextmenu L pandora_console/include/javascript/tiny_mce/plugins/template L pandora_console/include/javascript/tiny_mce/plugins/template/langs L pandora_console/include/javascript/tiny_mce/plugins/template/css L pandora_console/include/javascript/tiny_mce/plugins/template/js L pandora_console/include/javascript/tiny_mce/plugins/paste L pandora_console/include/javascript/tiny_mce/plugins/paste/langs L pandora_console/include/javascript/tiny_mce/plugins/paste/js L pandora_console/include/javascript/tiny_mce/plugins/bbcode L pandora_console/include/javascript/tiny_mce/plugins/xhtmlxtras L pandora_console/include/javascript/tiny_mce/plugins/xhtmlxtras/langs L pandora_console/include/javascript/tiny_mce/plugins/xhtmlxtras/css L pandora_console/include/javascript/tiny_mce/plugins/xhtmlxtras/js L pandora_console/include/javascript/tiny_mce/langs L pandora_console/include/javascript/tiny_mce/themes L pandora_console/include/javascript/tiny_mce/themes/advanced L pandora_console/include/javascript/tiny_mce/themes/advanced/langs L pandora_console/include/javascript/tiny_mce/themes/advanced/skins L pandora_console/include/javascript/tiny_mce/themes/advanced/skins/o2k7 L pandora_console/include/javascript/tiny_mce/themes/advanced/skins/o2k7/img L pandora_console/include/javascript/tiny_mce/themes/advanced/skins/default L pandora_console/include/javascript/tiny_mce/themes/advanced/skins/default/img L pandora_console/include/javascript/tiny_mce/themes/advanced/skins/highcontrast L pandora_console/include/javascript/tiny_mce/themes/advanced/img L pandora_console/include/javascript/tiny_mce/themes/advanced/js L pandora_console/include/javascript/tiny_mce/themes/simple L pandora_console/include/javascript/tiny_mce/themes/simple/langs L pandora_console/include/javascript/tiny_mce/themes/simple/skins L pandora_console/include/javascript/tiny_mce/themes/simple/skins/o2k7 L pandora_console/include/javascript/tiny_mce/themes/simple/skins/o2k7/img L pandora_console/include/javascript/tiny_mce/themes/simple/skins/default L pandora_console/include/javascript/tiny_mce/themes/simple/img M pandora_console/include/javascript/jquery.pandora.js L pandora_console/include/javascript/OpenLayers L pandora_console/include/javascript/OpenLayers/theme L pandora_console/include/javascript/OpenLayers/theme/default L pandora_console/include/javascript/OpenLayers/theme/default/img L pandora_console/include/javascript/OpenLayers/img L pandora_console/include/sounds L pandora_console/include/Image M pandora_console/include/functions_config.php L pandora_console/include/help L pandora_console/include/help/en L pandora_console/include/help/es L pandora_console/include/help/ja M pandora_console/include/functions_snmp_browser.php M pandora_console/include/constants.php M pandora_console/ChangeLog L pandora_console/attachment L pandora_console/attachment/mibs L pandora_console/attachment/plugin M pandora_console/index.php L pandora_console/extensions L pandora_console/extensions/dbmanager M pandora_console/extensions/agents_alerts.php L pandora_console/extensions/module_groups D pandora_console/extensions/module_groups/brick.png M pandora_console/extensions/net_tools.php M pandora_console/extensions/agents_modules.php L pandora_console/extensions/users M pandora_console/extensions/ssh_gateway.php L pandora_console/extensions/net_tools M pandora_console/extensions/net_tools/nettool.png M pandora_console/extensions/vnc_view.php M pandora_console/extensions/dbmanager.php L pandora_console/extensions/agents_modules M pandora_console/extensions/users_connected.php M pandora_console/extensions/module_groups.php L pandora_console/extensions/update_manager L pandora_console/extensions/update_manager/sql L pandora_console/extensions/update_manager/lang L pandora_console/extensions/update_manager/lib M pandora_console/extensions/update_manager/lib/functions.ajax.php L pandora_console/extensions/update_manager/lib/xmlrpc M pandora_console/extensions/update_manager/main.php L pandora_console/extensions/ssh_gateway M pandora_console/extensions/ssh_gateway/secure_console.png L pandora_console/operation L pandora_console/operation/incidents A pandora_console/operation/search_reports.getdata.php A pandora_console/operation/search_users.getdata.php M pandora_console/operation/tree.php L pandora_console/operation/visual_console M pandora_console/operation/visual_console/render_view.php A pandora_console/operation/search_modules.getdata.php A pandora_console/operation/search_main.php L pandora_console/operation/tree L pandora_console/operation/users M pandora_console/operation/users/webchat.php M pandora_console/operation/users/user_edit.php A pandora_console/operation/search_agents.getdata.php L pandora_console/operation/events M pandora_console/operation/events/events.build_table.php M pandora_console/operation/events/event_statistics.php M pandora_console/operation/events/events_list.php M pandora_console/operation/events/events.php A pandora_console/operation/search_graphs.getdata.php L pandora_console/operation/messages M pandora_console/operation/messages/message_edit.php M pandora_console/operation/messages/message_list.php M pandora_console/operation/search_reports.php L pandora_console/operation/reporting M pandora_console/operation/reporting/reporting_viewer.php M pandora_console/operation/reporting/graph_viewer.php M pandora_console/operation/search_users.php M pandora_console/operation/search_results.php A pandora_console/operation/search_alerts.getdata.php M pandora_console/operation/search_modules.php A pandora_console/operation/search_maps.getdata.php L pandora_console/operation/agentes D pandora_console/operation/agentes/datos_agente.php M pandora_console/operation/agentes/alerts_status.php M pandora_console/operation/agentes/estado_generalagente.php M pandora_console/operation/agentes/estado_agente.php M pandora_console/operation/agentes/networkmap.topology.php M pandora_console/operation/agentes/networkmap.groups.php M pandora_console/operation/agentes/exportdata.php M pandora_console/operation/agentes/networkmap_list.php M pandora_console/operation/agentes/agent_fields.php M pandora_console/operation/agentes/tactical.php M pandora_console/operation/agentes/group_view.php M pandora_console/operation/agentes/networkmap.php L pandora_console/operation/servers M pandora_console/operation/servers/recon_view.php M pandora_console/operation/search_agents.php M pandora_console/operation/search_graphs.php L pandora_console/operation/snmpconsole M pandora_console/operation/snmpconsole/snmp_mib_uploader.php M pandora_console/operation/snmpconsole/snmp_browser.php M pandora_console/operation/snmpconsole/snmp_view.php L pandora_console/operation/integria_incidents L pandora_console/operation/gis_maps M pandora_console/operation/gis_maps/render_view.php M pandora_console/operation/gis_maps/index.php M pandora_console/operation/search_alerts.php M pandora_console/operation/search_maps.php L pandora_console/operation/netflow M pandora_console/operation/netflow/nf_live_view.php L pandora_console/images M pandora_console/images/global.png A pandora_console/images/op_events.png A pandora_console/images/zoom_mc.png A pandora_console/images/input_zoom.png M pandora_console/images/pencil.png A pandora_console/images/menu_op_mark.png M pandora_console/images/unlinkpolicy.png A pandora_console/images/gm_setup.png M pandora_console/images/min.png M pandora_console/images/zoom.png M pandora_console/images/max.png A pandora_console/images/builder.png A pandora_console/images/policies_mc.png A pandora_console/images/op_workspace.png M pandora_console/images/user_green.png A pandora_console/images/agent.png A pandora_console/images/performance.png M pandora_console/images/ok.png A pandora_console/images/event_responses.png A pandora_console/images/agent_warning.png A pandora_console/images/module_critical.png A pandora_console/images/op_recon.png A pandora_console/images/email_mc.png A pandora_console/images/add_mc.png M pandora_console/images/go_first.png A pandora_console/images/gm_alerts.png A pandora_console/images/filter.png A pandora_console/images/header_user.png A pandora_console/images/gm_massive_operations.png M pandora_console/images/add.disabled.png A pandora_console/images/gm_netflow.png M pandora_console/images/percentile_item.disabled.png A pandora_console/images/alerts_extern.png M pandora_console/images/vnc.png A pandora_console/images/op_alerts.png A pandora_console/images/op_inventory.png M pandora_console/images/chart_curve.png L pandora_console/images/custom_logo M pandora_console/images/email_open.png A pandora_console/images/button_background.png M pandora_console/images/link2.png A pandora_console/images/control_stop_col.png M pandora_console/images/target.png M pandora_console/images/box.png M pandora_console/images/zoom_cross.png M pandora_console/images/cross.disabled.png A pandora_console/images/filter_mc.png M pandora_console/images/note.png M pandora_console/images/rss.png A pandora_console/images/blade.png A pandora_console/images/lock_mc.png A pandora_console/images/agent_critical.png M pandora_console/images/bell_pause.png M pandora_console/images/chart_curve.disabled.png L pandora_console/images/backgrounds A pandora_console/images/enterprise.png L pandora_console/images/skin L pandora_console/images/skin/skin_default L pandora_console/images/skin/skin_default/include L pandora_console/images/skin/skin_default/include/styles M pandora_console/images/skin/skin_default/include/styles/menu.css M pandora_console/images/skin/skin_default/include/styles/pandora.css L pandora_console/images/skin/skin_default/images A pandora_console/images/skin/skin_default/images/operating_system.png A pandora_console/images/skin/skin_default/images/snmp_wizard.png A pandora_console/images/skin/skin_default/images/global.png A pandora_console/images/skin/skin_default/images/op_events.png A pandora_console/images/skin/skin_default/images/bell_extern.png A pandora_console/images/skin/skin_default/images/go_next.png A pandora_console/images/skin/skin_default/images/policies.png A pandora_console/images/skin/skin_default/images/pencil.png A pandora_console/images/skin/skin_default/images/header_ready.png A pandora_console/images/skin/skin_default/images/agent_unknown.png A pandora_console/images/skin/skin_default/images/bell.png A pandora_console/images/skin/skin_default/images/policies_error.png A pandora_console/images/skin/skin_default/images/unlinkpolicy.png A pandora_console/images/skin/skin_default/images/gm_setup.png A pandora_console/images/skin/skin_default/images/policies_mc.png A pandora_console/images/skin/skin_default/images/builder.png A pandora_console/images/skin/skin_default/images/camera.png A pandora_console/images/skin/skin_default/images/go_last.png A pandora_console/images/skin/skin_default/images/gm_policies.png A pandora_console/images/skin/skin_default/images/op_workspace.png A pandora_console/images/skin/skin_default/images/box.disabled.png A pandora_console/images/skin/skin_default/images/agent.png A pandora_console/images/skin/skin_default/images/setup.png A pandora_console/images/skin/skin_default/images/sitemap_color.png A pandora_console/images/skin/skin_default/images/go_previous.png A pandora_console/images/skin/skin_default/images/performance.png A pandora_console/images/skin/skin_default/images/control_next.png A pandora_console/images/skin/skin_default/images/policies_brick.png A pandora_console/images/skin/skin_default/images/event_responses.png A pandora_console/images/skin/skin_default/images/services.png A pandora_console/images/skin/skin_default/images/email_outbox.png A pandora_console/images/skin/skin_default/images/lock.png A pandora_console/images/skin/skin_default/images/sound.png L pandora_console/images/skin/skin_default/images/os_icons A pandora_console/images/skin/skin_default/images/god1.png A pandora_console/images/skin/skin_default/images/gm_modules.png A pandora_console/images/skin/skin_default/images/plugin.png A pandora_console/images/skin/skin_default/images/god7.png A pandora_console/images/skin/skin_default/images/html.png A pandora_console/images/skin/skin_default/images/op_recon.png A pandora_console/images/skin/skin_default/images/control_play.png A pandora_console/images/skin/skin_default/images/gm_gis.png A pandora_console/images/skin/skin_default/images/header_refresh.png A pandora_console/images/skin/skin_default/images/email_mc.png A pandora_console/images/skin/skin_default/images/add_mc.png A pandora_console/images/skin/skin_default/images/op_reporting.png A pandora_console/images/skin/skin_default/images/config.disabled.png A pandora_console/images/skin/skin_default/images/list.png A pandora_console/images/skin/skin_default/images/tag_red.disabled.png A pandora_console/images/skin/skin_default/images/go_first.png A pandora_console/images/skin/skin_default/images/gm_servers.png A pandora_console/images/skin/skin_default/images/gm_alerts.png A pandora_console/images/skin/skin_default/images/linkpolicy.png A pandora_console/images/skin/skin_default/images/books.png A pandora_console/images/skin/skin_default/images/reporting32.png A pandora_console/images/skin/skin_default/images/op_gis.png A pandora_console/images/skin/skin_default/images/version.png A pandora_console/images/skin/skin_default/images/policies_error_db.png A pandora_console/images/skin/skin_default/images/filter.png A pandora_console/images/skin/skin_default/images/chart_bar.png A pandora_console/images/skin/skin_default/images/grid.png A pandora_console/images/skin/skin_default/images/header_user.png A pandora_console/images/skin/skin_default/images/bell_error.png A pandora_console/images/skin/skin_default/images/normal_screen.png A pandora_console/images/skin/skin_default/images/brick.png A pandora_console/images/skin/skin_default/images/gm_massive_operations.png A pandora_console/images/skin/skin_default/images/policies_ok.png A pandora_console/images/skin/skin_default/images/gm_netflow.png A pandora_console/images/skin/skin_default/images/advanced.png A pandora_console/images/skin/skin_default/images/csv_mc.png A pandora_console/images/skin/skin_default/images/op_snmp.png A pandora_console/images/skin/skin_default/images/save_mc.png A pandora_console/images/skin/skin_default/images/snmp.png A pandora_console/images/skin/skin_default/images/load.png A pandora_console/images/skin/skin_default/images/alerts_extern.png A pandora_console/images/skin/skin_default/images/header_logout.png A pandora_console/images/skin/skin_default/images/vnc.png A pandora_console/images/skin/skin_default/images/op_alerts.png A pandora_console/images/skin/skin_default/images/grid.disabled.png A pandora_console/images/skin/skin_default/images/chart_bar.disabled.png A pandora_console/images/skin/skin_default/images/op_inventory.png A pandora_console/images/skin/skin_default/images/photo.disabled.png A pandora_console/images/skin/skin_default/images/disk.disabled.png A pandora_console/images/skin/skin_default/images/chart_curve.png A pandora_console/images/skin/skin_default/images/recon.png A pandora_console/images/skin/skin_default/images/camera_mc.png A pandora_console/images/skin/skin_default/images/gm_db.png A pandora_console/images/skin/skin_default/images/reporting.png A pandora_console/images/skin/skin_default/images/custom_field.png A pandora_console/images/skin/skin_default/images/control_pause.png A pandora_console/images/skin/skin_default/images/key.png L pandora_console/images/skin/skin_default/images/mimetypes A pandora_console/images/skin/skin_default/images/wmi.png A pandora_console/images/skin/skin_default/images/link.png A pandora_console/images/skin/skin_default/images/cross.disabled.png A pandora_console/images/skin/skin_default/images/header_email.png A pandora_console/images/skin/skin_default/images/control_play_col.png A pandora_console/images/skin/skin_default/images/filter_mc.png A pandora_console/images/skin/skin_default/images/blade.png A pandora_console/images/skin/skin_default/images/lock_mc.png A pandora_console/images/skin/skin_default/images/bell_pause.png A pandora_console/images/skin/skin_default/images/chart_curve.disabled.png A pandora_console/images/skin/skin_default/images/header_down.png A pandora_console/images/skin/skin_default/images/enterprise.png A pandora_console/images/skin/skin_default/images/profiles.png A pandora_console/images/skin/skin_default/images/gm_users.png A pandora_console/images/skin/skin_default/images/email_inbox.png A pandora_console/images/skin/skin_default/images/header_chat.png A pandora_console/images/skin/skin_default/images/wand_sla.png A pandora_console/images/skin/skin_default/images/collection.png A pandora_console/images/skin/skin_default/images/god2.png A pandora_console/images/skin/skin_default/images/god4.png A pandora_console/images/skin/skin_default/images/inventory.png A pandora_console/images/skin/skin_default/images/header_user_admin.png A pandora_console/images/skin/skin_default/images/god6.png A pandora_console/images/skin/skin_default/images/header_help.png A pandora_console/images/skin/skin_default/images/gm_log.png A pandora_console/images/skin/skin_default/images/tag.png A pandora_console/images/skin/skin_default/images/control_prev.png A pandora_console/images/skin/skin_default/images/agent_mc.png A pandora_console/images/skin/skin_default/images/delete_mc.png A pandora_console/images/skin/skin_default/images/pen.png A pandora_console/images/skin/skin_default/images/plus.png L pandora_console/images/skin/skin_default/images/groups_small A pandora_console/images/skin/skin_default/images/module.png A pandora_console/images/skin/skin_default/images/gm_events.png A pandora_console/images/skin/skin_default/images/photo.png A pandora_console/images/skin/skin_default/images/csv.png A pandora_console/images/skin/skin_default/images/new_message.png A pandora_console/images/skin/skin_default/images/templates.png A pandora_console/images/skin/skin_default/images/book_edit.png A pandora_console/images/skin/skin_default/images/events_list.png A pandora_console/images/skin/skin_default/images/policies_cog.png A pandora_console/images/skin/skin_default/images/operation.png A pandora_console/images/skin/skin_default/images/xml.png A pandora_console/images/skin/skin_default/images/full_screen.png A pandora_console/images/skin/skin_default/images/module_group.png A pandora_console/images/skin/skin_default/images/policies_not_brick.png A pandora_console/images/skin/skin_default/images/heart.png A pandora_console/images/skin/skin_default/images/gm_monitoring.png A pandora_console/images/skin/skin_default/images/custom_columns.png A pandora_console/images/skin/skin_default/images/control_pause_col.png A pandora_console/images/skin/skin_default/images/custom_field_col.png A pandora_console/images/skin/skin_default/images/header_events.png A pandora_console/images/skin/skin_default/images/op_netflow.png A pandora_console/images/skin/skin_default/images/header_warning.png A pandora_console/images/skin/skin_default/images/plugin_mc.png A pandora_console/images/skin/skin_default/images/sla.png M pandora_console/images/skin/skin_default/images/binary.png A pandora_console/images/skin/skin_default/images/op_network.png A pandora_console/images/skin/skin_default/images/binary.disabled.png M pandora_console/images/profiles.png A pandora_console/images/collection.png A pandora_console/images/inventory.png A pandora_console/images/gm_log.png M pandora_console/images/images.png M pandora_console/images/cog.png A pandora_console/images/tag.png A pandora_console/images/mc_plugin.png A pandora_console/images/enterprise_icon.png M pandora_console/images/photo.png M pandora_console/images/refresh.png A pandora_console/images/events_list.png A pandora_console/images/operation.png A pandora_console/images/full_screen.png A pandora_console/images/chart_curve_overview.disabled.png M pandora_console/images/heart.png A pandora_console/images/input_add.png A pandora_console/images/gm_monitoring.png M pandora_console/images/percentile_item.png A pandora_console/images/module_warning.png A pandora_console/images/custom_field_col.png A pandora_console/images/plugin_mc.png M pandora_console/images/snmp_wizard.png M pandora_console/images/link_break.png M pandora_console/images/go_next.png M pandora_console/images/policies.png M pandora_console/images/bell.png M pandora_console/images/policies_error.png A pandora_console/images/agent_ok.png M pandora_console/images/go_last.png A pandora_console/images/services.png A pandora_console/images/sound.png L pandora_console/images/os_icons A pandora_console/images/tab_green_bg.png M pandora_console/images/plugin.png A pandora_console/images/header_refresh.png A pandora_console/images/op_reporting.png A pandora_console/images/list.png A pandora_console/images/gm_servers.png M pandora_console/images/books.png A pandora_console/images/reporting32.png A pandora_console/images/input_delete.png M pandora_console/images/div.png A pandora_console/images/input_go.png M pandora_console/images/policies_error_db.png A pandora_console/images/normal_screen.png A pandora_console/images/dashboard.png A pandora_console/images/donut.png M pandora_console/images/network.disabled.png M pandora_console/images/policies_ok.png A pandora_console/images/submenu_tree_first.png M pandora_console/images/lightning_go.png A pandora_console/images/csv_mc.png M pandora_console/images/snmp.png A pandora_console/images/recon_icon.png M pandora_console/images/default_list.png A pandora_console/images/database_history.png M pandora_console/images/chart_bar.disabled.png A pandora_console/images/help_icon.png A pandora_console/images/input_update.png A pandora_console/images/agent_notinit.png M pandora_console/images/control_pause.png A pandora_console/images/key.png L pandora_console/images/mimetypes M pandora_console/images/link.png A pandora_console/images/header_email.png M pandora_console/images/delete.png L pandora_console/images/networkmap A pandora_console/images/input_wand.png A pandora_console/images/input_tick.png M pandora_console/images/bricks.png A pandora_console/images/write_paper.png M pandora_console/images/world.png M pandora_console/images/wand_sla.png M pandora_console/images/wand.png M pandora_console/images/disk.png M pandora_console/images/group.png A pandora_console/images/header_user_admin.png A pandora_console/images/header_help.png A pandora_console/images/category.png M pandora_console/images/house.png A pandora_console/images/module.png A pandora_console/images/export25.png A pandora_console/images/xml.png A pandora_console/images/op_netflow.png L pandora_console/images/console L pandora_console/images/console/background L pandora_console/images/console/icons L pandora_console/images/console/icons/old_icons M pandora_console/images/cross.png A pandora_console/images/operating_system.png M pandora_console/images/application_edit.png M pandora_console/images/camera.png M pandora_console/images/sub.png A pandora_console/images/gm_policies.png A pandora_console/images/box.disabled.png M pandora_console/images/setup.png M pandora_console/images/go_previous.png A pandora_console/images/module_mc.png M pandora_console/images/tag_red.png A pandora_console/images/submenu_tree_middle.png A pandora_console/images/visual_console.png A pandora_console/images/email_outbox.png M pandora_console/images/attachment.png A pandora_console/images/module_notinit.png L pandora_console/images/gis_map L pandora_console/images/gis_map/icons A pandora_console/images/submenu2_tree_middle.png A pandora_console/images/html.png M pandora_console/images/control_play.png M pandora_console/images/tag_red.disabled.png M pandora_console/images/lightbulb.png A pandora_console/images/version.png M pandora_console/images/bell_error.png M pandora_console/images/brick.png M pandora_console/images/tip.png A pandora_console/images/op_snmp.png M pandora_console/images/pandora_header_logo_enterprise.png A pandora_console/images/load.png M pandora_console/images/chart_curve_threshold.png A pandora_console/images/chart.png M pandora_console/images/copy.png A pandora_console/images/op_monitoring.png M pandora_console/images/mul.png A pandora_console/images/menu_gm_mark.png A pandora_console/images/menu_lk_mark.png A pandora_console/images/gm_users.png A pandora_console/images/email_inbox.png A pandora_console/images/header_chat.png M pandora_console/images/network.png M pandora_console/images/extensions.png A pandora_console/images/submenu2_tree_last.png M pandora_console/images/database.png A pandora_console/images/delete_mc.png A pandora_console/images/input_config.png L pandora_console/images/groups_small A pandora_console/images/server_export_mc.png A pandora_console/images/input_cog.png M pandora_console/images/add.png A pandora_console/images/csv.png A pandora_console/images/module_group.png D pandora_console/images/lupa.png A pandora_console/images/control_pause_col.png A pandora_console/images/custom_columns.png A pandora_console/images/header_warning.png D pandora_console/images/user.png M pandora_console/images/binary.png A pandora_console/images/op_network.png A pandora_console/images/home.png A pandora_console/images/bell_extern.png A pandora_console/images/tab_grey_bg.png A pandora_console/images/header_blackout.png A pandora_console/images/header_ready.png A pandora_console/images/agent_unknown.png M pandora_console/images/config.png M pandora_console/images/pdf.png A pandora_console/images/control_next.png A pandora_console/images/submenu_tree_last.png M pandora_console/images/comments.png A pandora_console/images/control_stop.png M pandora_console/images/email.png M pandora_console/images/lock.png M pandora_console/images/error.png A pandora_console/images/gm_modules.png A pandora_console/images/gm_gis.png M pandora_console/images/data.png M pandora_console/images/config.disabled.png M pandora_console/images/linkpolicy.png A pandora_console/images/op_gis.png M pandora_console/images/clean.png M pandora_console/images/chart_bar.png D pandora_console/images/lupa_15x15.png L pandora_console/images/help A pandora_console/images/advanced.png A pandora_console/images/save_mc.png A pandora_console/images/module_ok.png A pandora_console/images/header_logout.png M pandora_console/images/user_suit.png M pandora_console/images/file.disabled.png L pandora_console/images/status_sets L pandora_console/images/status_sets/faces L pandora_console/images/status_sets/color_text L pandora_console/images/status_sets/default M pandora_console/images/photo.disabled.png M pandora_console/images/recon.png M pandora_console/images/lightbulb_off.png A pandora_console/images/camera_mc.png A pandora_console/images/gm_db.png M pandora_console/images/attachment_del.png A pandora_console/images/custom_field.png M pandora_console/images/eye.png M pandora_console/images/wmi.png M pandora_console/images/camera.disabled.png A pandora_console/images/control_play_col.png M pandora_console/images/sum.png M pandora_console/images/pandora_header_logo.png M pandora_console/images/avg.png A pandora_console/images/header_down.png M pandora_console/images/zoom_cross.disabled.png A pandora_console/images/module_unknown.png M pandora_console/images/server_export.png A pandora_console/images/bin.png A pandora_console/images/input_cross.png A pandora_console/images/control_prev.png A pandora_console/images/agent_mc.png A pandora_console/images/pen.png A pandora_console/images/plus.png D pandora_console/images/log-out.png A pandora_console/images/gm_events.png A pandora_console/images/new_message.png A pandora_console/images/templates.png A pandora_console/images/sla.png M pandora_console/images/binary.disabled.png M pandora_console/images/chart_curve_overview.png A pandora_console/images/mg_modules.png L pandora_console/extras L pandora_console/mobile L pandora_console/mobile/operation L pandora_console/mobile/include L pandora_console/mobile/include/style L pandora_console/mobile/images L pandora_console/general L pandora_console/general/license M pandora_console/general/login_page.php M pandora_console/general/logon_ok.php M pandora_console/general/main_menu.php L pandora_console/general/ui M pandora_console/general/header.php L pandora_console/godmode L pandora_console/godmode/groups M pandora_console/godmode/groups/modu_group_list.php M pandora_console/godmode/groups/configure_group.php M pandora_console/godmode/groups/configure_modu_group.php M pandora_console/godmode/groups/group_list.php M pandora_console/godmode/admin_access_logs.php M pandora_console/godmode/extensions.php L pandora_console/godmode/db M pandora_console/godmode/db/db_main.php M pandora_console/godmode/db/db_audit.php M pandora_console/godmode/db/db_sanity.php M pandora_console/godmode/db/db_refine.php M pandora_console/godmode/db/db_info.php M pandora_console/godmode/db/db_event.php M pandora_console/godmode/db/db_purge.php L pandora_console/godmode/agentes M pandora_console/godmode/agentes/fields_manager.php M pandora_console/godmode/agentes/planned_downtime.list.php M pandora_console/godmode/agentes/planned_downtime.editor.php M pandora_console/godmode/agentes/modificar_agente.php M pandora_console/godmode/agentes/configurar_agente.php M pandora_console/godmode/agentes/configure_field.php M pandora_console/godmode/agentes/agent_manager.php L pandora_console/godmode/servers M pandora_console/godmode/servers/recon_script.php M pandora_console/godmode/servers/plugin.php A pandora_console/godmode/servers/servers.build_table.php M pandora_console/godmode/servers/manage_recontask.php M pandora_console/godmode/servers/modificar_server.php M pandora_console/godmode/servers/manage_recontask_form.php L pandora_console/godmode/alerts M pandora_console/godmode/alerts/alert_list.php M pandora_console/godmode/alerts/configure_alert_template.php M pandora_console/godmode/alerts/alert_templates.php M pandora_console/godmode/alerts/configure_alert_action.php M pandora_console/godmode/alerts/configure_alert_command.php M pandora_console/godmode/alerts/alert_actions.php M pandora_console/godmode/alerts/alert_special_days.php M pandora_console/godmode/alerts/alert_commands.php M pandora_console/godmode/alerts/configure_alert_special_days.php L pandora_console/godmode/snmpconsole M pandora_console/godmode/snmpconsole/snmp_trap_generator.php M pandora_console/godmode/snmpconsole/snmp_alert.php M pandora_console/godmode/snmpconsole/snmp_filters.php L pandora_console/godmode/setup M pandora_console/godmode/setup/setup_general.php M pandora_console/godmode/setup/links.php M pandora_console/godmode/setup/setup.php M pandora_console/godmode/setup/os.php L pandora_console/godmode/users M pandora_console/godmode/users/user_list.php M pandora_console/godmode/users/profile_list.php M pandora_console/godmode/users/configure_user.php M pandora_console/godmode/users/configure_profile.php L pandora_console/godmode/gis_maps M pandora_console/godmode/gis_maps/configure_gis_map.php M pandora_console/godmode/gis_maps/index.php L pandora_console/godmode/events M pandora_console/godmode/events/event_edit_filter.php M pandora_console/godmode/events/events.php L pandora_console/godmode/massive M pandora_console/godmode/massive/massive_copy_modules.php M pandora_console/godmode/massive/massive_operations.php L pandora_console/godmode/modules M pandora_console/godmode/modules/manage_network_templates.php M pandora_console/godmode/modules/module_list.php L pandora_console/godmode/reporting M pandora_console/godmode/reporting/visual_console_builder.php M pandora_console/godmode/reporting/graph_builder.php M pandora_console/godmode/reporting/reporting_builder.php M pandora_console/godmode/reporting/map_builder.php M pandora_console/godmode/reporting/graphs.php L pandora_console/godmode/tag M pandora_console/godmode/tag/tag.php M pandora_console/godmode/tag/edit_tag.php L pandora_console/godmode/category M pandora_console/godmode/category/category.php M pandora_console/godmode/category/edit_category.php L pandora_console/godmode/netflow M pandora_console/godmode/netflow/nf_edit_form.php M pandora_console/godmode/netflow/nf_item_list.php M pandora_console/godmode/netflow/nf_edit.php: Changing whole visual style including icons and css git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@7951 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2013-04-10 09:57:54 +02:00
"images/gm_monitoring.png",
false,
"planned_downtime",
true,
"");
// Load global vars
global $config;
check_login();
//Initialize data
$id_agent = get_parameter ("id_agent");
$id_group = (int) get_parameter ("id_group", 0);
$name = (string) get_parameter ('name', '');
$description = (string) get_parameter ('description', '');
$once_date_from = (string) get_parameter ('once_date_from', date(DATE_FORMAT));
$once_time_from = (string) get_parameter ('once_time_from', date(TIME_FORMAT));
$once_date_to = (string) get_parameter ('once_date_to', date(DATE_FORMAT));
$once_time_to = (string) get_parameter ('once_time_to', date(TIME_FORMAT));
$periodically_day_from = (int) get_parameter ('periodically_day_from', 1);
$periodically_day_to = (int) get_parameter ('periodically_day_to', 31);
$periodically_time_from = (string) get_parameter ('periodically_time_from', date(TIME_FORMAT));
$periodically_time_to = (string) get_parameter ('periodically_time_to', date(TIME_FORMAT));
$first_create = (int) get_parameter ('first_create', 0);
$create_downtime = (int) get_parameter ('create_downtime');
$edit_downtime = (int) get_parameter ('edit_downtime');
$update_downtime = (int) get_parameter ('update_downtime');
$id_downtime = (int) get_parameter ('id_downtime',0);
$insert_downtime_agent = (int) get_parameter ("insert_downtime_agent", 0);
$delete_downtime_agent = (int) get_parameter ("delete_downtime_agent", 0);
$groups = users_get_groups ();
$type_downtime = get_parameter('type_downtime', 'quiet');
$type_execution = get_parameter('type_execution', 'once');
$type_periodicity = get_parameter('type_periodicity', 'weekly');
$monday = (bool) get_parameter ('monday');
$tuesday = (bool) get_parameter ('tuesday');
$wednesday = (bool) get_parameter ('wednesday');
$thursday = (bool) get_parameter ('thursday');
$friday = (bool) get_parameter ('friday');
$saturday = (bool) get_parameter ('saturday');
$sunday = (bool) get_parameter ('sunday');
// INSERT A NEW DOWNTIME_AGENT ASSOCIATION
if ($insert_downtime_agent == 1) {
$agents = (array)get_parameter("id_agents", array());
$module_names = (array)get_parameter("module", array());
$all_modules = false;
if (empty($module_names)) {
$all_modules = true;
}
else {
//It is empty.
if ($module_names[0] == "0")
$all_modules = true;
}
for ($a=0; $a < count($agents); $a++) {
$id_agente_dt = $agents[$a];
$values = array(
'id_downtime' => $id_downtime,
'id_agent' => $id_agente_dt,
'all_modules' => $all_modules);
$result = db_process_sql_insert('tplanned_downtime_agents', $values);
if ($result && !$all_modules) {
foreach ($module_names as $module_name) {
$module =
modules_get_agentmodule_id($module_name, $id_agente_dt);
$values = array(
'id_downtime' => $id_downtime,
'id_agent' => $id_agente_dt,
'id_agent_module' => $module["id_agente_modulo"]);
$result = db_process_sql_insert('tplanned_downtime_modules', $values);
if ($result) {
$values = array('id_user' => $config['id_user']);
$result = db_process_sql_update('tplanned_downtime',
$values, array('id' => $id_downtime));
}
}
}
}
}
// DELETE A DOWNTIME_AGENT ASSOCIATION
if ($delete_downtime_agent == 1) {
$id_da = (int)get_parameter ("id_downtime_agent", 0);
$id_agent_delete = (int)get_parameter('id_agent', 0);
$row_to_delete = db_get_row('tplanned_downtime_agents', 'id', $id_da);
$result = db_process_sql_delete('tplanned_downtime_agents',
array('id' => $id_da));
if ($result) {
//Delete modules in downtime
db_process_sql_delete('tplanned_downtime_modules',
array('id_downtime' => $row_to_delete['id_downtime'],
'id_agent' => $id_agent_delete));
}
}
// UPDATE OR CREATE A DOWNTIME (MAIN DATA, NOT AGENT ASSOCIATION)
if ($create_downtime || $update_downtime) {
$check = db_get_value ('name', 'tplanned_downtime', 'name', $name);
$datetime_from = strtotime ($once_date_from . ' ' . $once_time_from);
$datetime_to = strtotime ($once_date_to . ' ' . $once_time_to);
$now = strtotime(date(DATE_FORMAT). ' ' . date(TIME_FORMAT));
if ($datetime_from < $now) {
ui_print_error_message(__('Not created. Error inserting data. Start time must be higher than the current time' ));
}
else if ($datetime_from >= $datetime_to) {
ui_print_error_message(__('Not created. Error inserting data' ).
': START &gt;= END');
}
else {
$sql = '';
if ($create_downtime) {
if (trim(io_safe_output($name)) != '') {
if (!$check) {
$values = array(
'name' => $name,
'description' => $description,
'date_from' => $datetime_from,
'date_to' => $datetime_to,
'executed' => 0,
'id_group' => $id_group,
'only_alerts' => 0,
'monday' => $monday,
'tuesday' => $tuesday,
'wednesday' => $wednesday,
'thursday' => $thursday,
'friday' => $friday,
'saturday' => $saturday,
'sunday' => $sunday,
'periodically_time_from' => $periodically_time_from,
'periodically_time_to' => $periodically_time_to,
'periodically_day_from' => $periodically_day_from,
'periodically_day_to' => $periodically_day_to,
'type_downtime' => $type_downtime,
'type_execution' => $type_execution,
'type_periodicity' => $type_periodicity,
'id_user' => $config['id_user']
);
$result = db_process_sql_insert(
'tplanned_downtime', $values);
}
else {
ui_print_error_message(
__('Each planned downtime must have a different name'));
}
}
else {
ui_print_error_message(
__('Planned downtime must have a name'));
}
}
else if ($update_downtime) {
if (trim(io_safe_output($name)) != '') {
$values = array(
'name' => $name,
'description' => $description,
'date_from' => $datetime_from,
'date_to' => $datetime_to,
'executed' => 0,
'id_group' => $id_group,
'only_alerts' => 0,
'monday' => $monday,
'tuesday' => $tuesday,
'wednesday' => $wednesday,
'thursday' => $thursday,
'friday' => $friday,
'saturday' => $saturday,
'sunday' => $sunday,
'periodically_time_from' => $periodically_time_from,
'periodically_time_to' => $periodically_time_to,
'periodically_day_from' => $periodically_day_from,
'periodically_day_to' => $periodically_day_to,
'type_downtime' => $type_downtime,
'type_execution' => $type_execution,
'type_periodicity' => $type_periodicity,
'id_user' => $config['id_user']
);
$result = db_process_sql_update('tplanned_downtime', $values, array('id' => $id_downtime));
}
else {
ui_print_error_message(
__('Planned downtime must have a name'));
}
}
if ($result === false) {
if ($create_downtime) {
ui_print_error_message(__('Could not be created'));
}
else {
ui_print_error_message(__('Could not be updated'));
}
}
else {
if ($create_downtime && $name && !$check) {
$id_downtime = $result;
ui_print_success_message(__('Successfully created'));
}
else if ($update_downtime && $name) {
ui_print_success_message(__('Successfully updated'));
}
}
}
}
// Have any data to show ?
if ($id_downtime > 0) {
switch ($config["dbtype"]) {
case "mysql":
$sql = sprintf ("SELECT *
FROM `tplanned_downtime`
WHERE `id` = %d",
$id_downtime);
break;
case "postgresql":
$sql = sprintf ("SELECT *
FROM \"tplanned_downtime\"
WHERE \"id\" = %d",
$id_downtime);
break;
case "oracle":
$sql = sprintf ("SELECT *
FROM tplanned_downtime
WHERE id = %d",
$id_downtime);
break;
}
$result = db_get_row_sql ($sql);
$name = $result["name"];
$description = $result["description"];
$once_date_from = date(DATE_FORMAT, $result["date_from"]);
$once_date_to = date(DATE_FORMAT, $result["date_to"]);
$once_time_from = date(TIME_FORMAT, $result["date_from"]);
$once_time_to = date(TIME_FORMAT, $result["date_to"]);
$monday = $result['monday'];
$tuesday = $result['tuesday'];
$wednesday = $result['wednesday'];
$thursday = $result['thursday'];
$friday = $result['friday'];
$saturday = $result['saturday'];
$sunday = $result['sunday'];
$periodically_time_from = $result['periodically_time_from'];
$periodically_time_to = $result['periodically_time_to'];
$periodically_day_from = $result['periodically_day_from'];
$periodically_day_to = $result['periodically_day_to'];
$type_downtime = $result['type_downtime'];
$type_execution = $result['type_execution'];
$type_periodicity = $result['type_periodicity'];
if ($id_group == 0)
$id_group = $result['id_group'];
}
$table->class = 'databox_color';
$table->width = '98%';
$table->data = array ();
$table->data[0][0] = __('Name');
$table->data[0][1] = html_print_input_text ('name', $name, '', 25, 40, true);
$table->data[1][0] = __('Group');
$table->data[1][1] = html_print_select_groups(false, "AW", true, 'id_group', $id_group, '', '', 0, true);
$table->data[2][0] = __('Description');
$table->data[2][1] = html_print_textarea ('description', 3, 35, $description, '', true);
$table->data[3][0] = __('Type').ui_print_help_tip(__("Quiet: Disable modules that we indicate below.").'<br>'.
__("Disable Agents: Disables the selected agents.").'<br>'.
__("Disable Alerts: Disable alerts for the selected agents."), true);
$table->data[3][1] = html_print_select(array('quiet' => __('Quiet'),
'disable_agents' => __('Disabled Agents'),
'disable_agents_alerts' => __('Disabled only Alerts')),
'type_downtime', $type_downtime, 'change_type_downtime()', '', 0, true, false, true,
'');
$table->data[4][0] = __('Execution');
$table->data[4][1] = html_print_select(array('once' => __('once'),
'periodically' => __('Periodically')),
'type_execution', $type_execution, 'change_type_execution();', '', 0, true);
$days = array_combine(range(1, 31), range(1, 31));
$table->data[5][0] = __('Configure the time');
$table->data[5][1] = "
<div id='once_time' style='display: none;'>
<table>
<tr>
<td>" .
__('From:') .
ui_print_help_tip(__('Date format in Pandora is year/month/day'), true) .
ui_print_help_tip(__('Time format in Pandora is hours(24h):minutes:seconds'), true) .
"</td>
<td>".
html_print_input_text ('once_date_from', $once_date_from, '', 10, 10, true) .
html_print_input_text ('once_time_from', $once_time_from, '', 7, 8, true) .
"</td>
</tr>
<tr>
<td>" .
__('To:') .
ui_print_help_tip(__('Date format in Pandora is year/month/day'), true) .
ui_print_help_tip(__('Time format in Pandora is hours(24h):minutes:seconds'), true) .
"</td>
<td>".
html_print_input_text ('once_date_to', $once_date_to, '', 10, 10, true) .
html_print_input_text ('once_time_to', $once_time_to, '', 7, 8, true) .
"</td>
</tr>
</table>
</div>
<div id='periodically_time' style='display: none;'>
<table>
<tr>
<td>" . __('Type Periodicity:') . "</td>
<td>".
html_print_select(array(
'weekly' => __('Weekly'),
'monthly' => __('Monthly')),
'type_periodicity', $type_periodicity,
'change_type_periodicity();', '', 0, true) .
"</td>
</tr>
<tr>
<td colspan='2'>
<table id='weekly_item' style='display: none;'>
<tr>
<td>" . __('Mon') .
html_print_checkbox ('monday', 1, $monday, true) .
"</td>
<td>" . __('Tue') .
html_print_checkbox ('tuesday', 1, $tuesday, true) .
"</td>
<td>" . __('Wed') .
html_print_checkbox ('wednesday', 1, $wednesday, true) .
"</td>
<td>" . __('Thu') .
html_print_checkbox ('thursday', 1, $thursday, true) .
"</td>
<td>" . __('Fri') .
html_print_checkbox ('friday', 1, $friday, true) .
"</td>
<td>" . __('Sat') .
html_print_checkbox ('saturday', 1, $saturday, true) .
"</td>
<td>" . __('Sun') .
html_print_checkbox ('sunday', 1, $sunday, true) .
"</td>
</tr>
</table>
<table id='monthly_item' style='display: none;'>
<tr>
<td>" . __('From day:') . "</td>
<td>".
html_print_select($days,
'periodically_day_from', $periodically_day_from, '', '', 0, true) .
"</td>
<td>" . __('To day:') . "</td>
<td>".
html_print_select($days,
'periodically_day_to', $periodically_day_to, '', '', 0, true) .
"</td>
</tr>
</table>
<table>
<tr>
<td>" . __('From hour:') . "</td>
<td>".
html_print_input_text (
'periodically_time_from',
$periodically_time_from, '', 7, 7, true) .
"</td>
<td>" . __('To hour:') . "</td>
<td>".
html_print_input_text (
'periodically_time_to',
$periodically_time_to, '', 7, 7, true) .
"</td>
</tr>
</table>
</td>
</tr>
</table>
</div>";
echo '<form method="POST" action="index.php?sec=gagente&amp;sec2=godmode/agentes/planned_downtime.editor">';
if ($id_downtime > 0) {
echo "<table width=100% border=0 cellpadding=4 >";
echo "<tr><td width=75% valign='top'>";
}
//Editor form
html_print_table ($table);
html_print_input_hidden ('id_agent', $id_agent);
echo '<div class="action-buttons" style="width: 90%">';
if ($id_downtime) {
html_print_input_hidden ('update_downtime', 1);
html_print_input_hidden ('id_downtime', $id_downtime);
html_print_submit_button (__('Update'), 'updbutton', false, 'class="sub upd"');
}
else {
html_print_input_hidden ('create_downtime', 1);
html_print_submit_button (__('Add'), 'crtbutton', false, 'class="sub wand"');
}
echo '</div>';
echo '</form>';
if ($id_downtime > 0) {
echo "<td valign=top>";
// Show available agents to include into downtime
echo '<h4>' . __('Available agents') . ':</h4>';
$filter_group = get_parameter("filter_group", 0);
$filter_cond = '';
if($filter_group > 0)
$filter_cond = " AND id_grupo = $filter_group ";
$sql = sprintf ("SELECT tagente.id_agente, tagente.nombre,
tagente.id_grupo
FROM tagente
WHERE tagente.id_agente NOT IN (
SELECT tagente.id_agente
FROM tagente, tplanned_downtime_agents
WHERE tplanned_downtime_agents.id_agent = tagente.id_agente
AND tplanned_downtime_agents.id_downtime = %d
) AND disabled = 0 $filter_cond
ORDER by tagente.nombre", $id_downtime);
$downtimes = db_get_all_rows_sql ($sql);
$data = array ();
if ($downtimes) {
foreach ($downtimes as $downtime) {
if (check_acl ($config["id_user"], $downtime['id_grupo'], "AW")) {
$data[$downtime['id_agente']] = $downtime['nombre'];
}
}
}
$disabled_add_button = false;
if (empty($data)) {
$disabled_add_button = true;
}
echo "<form method=post action='index.php?sec=gagente&sec2=godmode/agentes/planned_downtime.editor&id_downtime=$id_downtime'>";
html_print_select_groups(false, "AW", true, 'filter_group', $filter_group, '', '', '', false, false, true, '', false, 'width:180px');
echo "<br /><br />";
html_print_submit_button (__('Filter by group'), '', false, 'class="sub next"',false);
echo "</form>";
echo "<form method=post action='index.php?sec=gagente&sec2=godmode/agentes/planned_downtime.editor&insert_downtime_agent=1&id_downtime=$id_downtime'>";
echo html_print_select ($data, "id_agents[]", '', '', '', 0, false, true, true, '', false, 'width: 180px;');
echo '<h4>' . __('Available modules:') .
ui_print_help_tip (__('Only for type Quiet for downtimes.'), true) . '</h4>';
if ($type_downtime != 'quiet')
echo '<div id="available_modules" style="display: none;">';
else
echo '<div id="available_modules" style="">';
echo html_print_select (array(), "module[]", '', '', '', 0, false, true, true, '', false, 'width: 180px;');
echo "</div>";
echo "<br /><br /><br />";
html_print_submit_button (__('Add'), '', $disabled_add_button, 'class="sub next"',false);
echo "</form>";
echo "</table>";
//Start Overview of existing planned downtime
echo '<h4>'.__('Agents planned for this downtime').':</h4>';
$sql = sprintf ("SELECT tagente.nombre, tplanned_downtime_agents.id,
tagente.id_os, tagente.id_agente, tagente.id_grupo,
tagente.ultimo_contacto, tplanned_downtime_agents.all_modules
FROM tagente, tplanned_downtime_agents
WHERE tplanned_downtime_agents.id_agent = tagente.id_agente
AND tplanned_downtime_agents.id_downtime = %d ", $id_downtime);
$downtimes = db_get_all_rows_sql ($sql);
if ($downtimes === false) {
echo '<div class="nf">' .
__('There are no scheduled downtimes') . '</div>';
}
else {
$table->id = 'list';
$table->class = 'databox';
$table->width = '98%';
$table->data = array ();
$table->head = array ();
$table->head[0] = __('Name');
$table->head[1] = __('Group');
$table->head[2] = __('OS');
$table->head[3] = __('Last contact');
$table->head['count_modules'] = __('Modules');
$table->head[5] = __('Actions');
$table->align[5] = "center";
$table->size[5] = "5%";
foreach ($downtimes as $downtime) {
$data = array ();
$data[0] = $downtime['nombre'];
$data[1] = db_get_sql ("SELECT nombre
FROM tgrupo
WHERE id_grupo = " . $downtime["id_grupo"]);
$data[2] = ui_print_os_icon($downtime["id_os"], true, true);
$data[3] = $downtime["ultimo_contacto"];
if ($type_downtime == 'disable_agents_alerts') {
$data['count_modules'] = __("All alerts");
}
elseif ($type_downtime == 'disable_agents') {
$data['count_modules'] = __("Entire agent");
}
else {
if ($downtime["all_modules"]) {
$data['count_modules'] = __("All modules");
}
else {
$data['count_modules'] = __("Some modules");
}
}
$data[5] = '';
if (($type_downtime != 'disable_agents_alerts')
&& ($type_downtime != 'disable_agents')) {
$data[5] = '<a href="javascript:show_editor_module(' . $downtime["id_agente"] . ');">' .
html_print_image("images/config.png", true, array("border" => '0', "alt" => __('Delete'))) . "</a>";
}
$data[5] .= '<a href="index.php?sec=gagente&amp;sec2=godmode/agentes/planned_downtime.editor'.
'&amp;id_agent=' . $downtime["id_agente"] .
'&amp;delete_downtime_agent=1' .
'&amp;id_downtime_agent=' . $downtime["id"] .
'&amp;id_downtime=' . $id_downtime . '">' .
html_print_image("images/cross.png", true,
array("border" => '0', "alt" => __('Delete'))) . "</a>";
$table->data['agent_' . $downtime["id_agente"]] = $data;
}
html_print_table ($table);
}
}
$table = null;
$table->id = 'loading';
$table->colspan['loading'][0] = '6';
$table->style[0] = 'text-align: center;';
$table->data = array();
$table->data['loading'] = array();
$table->data['loading'][0] = html_print_image("images/spinner.gif", true);
echo "<div style='display: none;'>";
html_print_table ($table);
echo "</div>";
$table = null;
$table->id = 'editor';
$table->colspan['module'][1] = '5';
$table->data = array();
$table->data['module'] = array();
$table->data['module'][0] = '';
$table->data['module'][1] = "<h4>" . __('Modules') . "</h4>";
//List of modules, empty, it is populated by javascript.
$table->data['module'][1] = "
<table cellspacing='4' cellpadding='4' border='0' width='98%'
id='modules_in_agent' class='databox_color'>
<thead>
<tr>
<th scope='col' class='header c0'>" . __('Module') . "</th>
<th scope='col' class='header c1'>" . __('Action') . "</th>
</tr>
</thead>
<tbody>
<tr class='datos' id='template' style='display: none;'>
<td class='name_module' style=''></td>
<td class='cell_delete_button' style='text-align: center; width:10%;' id=''>"
. '<a class="link_delete"
onclick="if(!confirm(\'' . __('Are you sure?') . '\')) return false;"
href="">'
. html_print_image("images/cross.png", true,
array("border" => '0', "alt" => __('Delete'))) . "</a>"
. "</td>
</tr>
<tr class='datos2' id='add_modules_row'>
<td class='datos2' style='' id=''>"
. __("Add Module:") . '&nbsp;'
. html_print_select(array(),
'modules', '', '', '', 0, true)
. "</td>
<td class='datos2 button_cell' style='text-align: center; width:10%;' id=''>"
. '<div id="add_button_div">'
. '<a class="add_button" href="">'
. html_print_image("images/add.png", true,
array("border" => '0', "alt" => __('Add'))) . "</a>"
. '</div>'
. "<div id='spinner_add' style='display: none;'>"
. html_print_image("images/spinner.gif", true)
. "</div>"
. "</td>
</tr>
</tbody></table>";
echo "<div style='display: none;'>";
html_print_table ($table);
echo "</div>";
echo "<div style='display: none;'>";
echo "<div id='spinner_template'>";
html_print_image("images/spinner.gif");
echo "</div>";
echo "</div>";
echo "<div id='some_modules_text' style='display: none;'>";
echo __('Some modules');
echo "</div>";
echo "<div id='some_modules_text' style='display: none;'>";
echo __('Some modules');
echo "</div>";
echo "<div id='all_modules_text' style='display: none;'>";
echo __("All modules");
echo "</div>";
ui_include_time_picker();
ui_require_jquery_file("ui.datepicker-" . get_user_language(), "include/javascript/i18n/");
?>
<script language="javascript" type="text/javascript">
var id_downtime = <?php echo $id_downtime?>;
var action_in_progress = false;
function change_type_downtime() {
switch ($("#type_downtime").val()) {
case 'disable_agents_alerts':
case 'disable_agents':
$("#available_modules").hide();
break;
case 'quiet':
$("#available_modules").show();
break;
}
}
function change_type_execution() {
switch ($("#type_execution").val()) {
case 'once':
$("#periodically_time").hide();
$("#once_time").show();
break;
case 'periodically':
$("#once_time").hide();
$("#periodically_time").show();
break;
}
}
function change_type_periodicity() {
switch ($("#type_periodicity").val()) {
case 'weekly':
$("#monthly_item").hide();
$("#weekly_item").show();
break;
case 'monthly':
$("#weekly_item").hide();
$("#monthly_item").show();
break;
}
}
function show_editor_module(id_agent) {
//Avoid freak states.
if (action_in_progress)
return;
//Check if the row editor module exists
if ($('#loading_' + id_agent).length > 0) {
//The row exists
$('#loading_' + id_agent).remove();
}
else {
if ($('#module_editor_' + id_agent).length == 0) {
$("#list-agent_" + id_agent).after(
$("#loading-loading").clone().attr('id', 'loading_' + id_agent));
jQuery.post ('ajax.php',
{"page": "include/ajax/planned_downtime.ajax",
"get_modules_downtime": 1,
"id_agent": id_agent,
"id_downtime": id_downtime
},
function (data) {
if (data['correct']) {
//Check if the row editor module exists
if ($('#loading_' + id_agent).length > 0) {
//The row exists
$('#loading_' + id_agent).remove();
$("#list-agent_" + id_agent).after(
$("#editor-module").clone()
.attr('id', 'module_editor_' + id_agent)
.hide());
fill_row_editor(id_agent, data);
}
}
},
"json"
);
}
else {
if ($('#module_editor_' + id_agent).is(':visible')) {
$('#module_editor_' + id_agent).hide();
}
else {
$('#module_editor_' + id_agent).css('display', '');
}
}
}
}
function fill_row_editor(id_agent, data) {
//$("#modules", $('#module_editor_' + id_agent)).empty();
//Fill the select for to add modules
$.each(data['in_agent'], function(id_module, name) {
$("#modules", $('#module_editor_' + id_agent))
.append($("<option value='" + id_module + "'>" + name + "</option>"));
});
$(".add_button", $('#module_editor_' + id_agent)).
attr('href', 'javascript:' +
'add_module_in_downtime(' + id_agent + ')');
//Fill the list of modules
$.each(data['in_downtime'], function(id_module, name) {
var template_row = $("#template").clone();
$(template_row).css('display', '');
$(template_row).attr('id', 'row_module_in_downtime_' + id_module);
$(".name_module", template_row).html(name);
$(".link_delete", template_row).attr('href',
'javascript:' +
'delete_module_from_downtime(' + id_downtime + ',' + id_module + ');');
$("#add_modules_row", $('#module_editor_' + id_agent))
.before(template_row);
});
//.show() is crap, because put a 'display: block;'.
$('#module_editor_' + id_agent).css('display', '');
}
function add_row_module(id_downtime, id_agent, id_module, name) {
var template_row = $("#template").clone();
$(template_row).css('display', '');
$(template_row).attr('id', 'row_module_in_downtime_' + id_module);
$(".name_module", template_row).html(name);
$(".link_delete", template_row).attr('href',
'javascript:' +
'delete_module_from_downtime(' + id_downtime + ',' + id_module + ');');
$("#add_modules_row", $('#module_editor_' + id_agent))
.before(template_row);
}
function fill_selectbox_modules(id_downtime, id_agent) {
jQuery.post ('ajax.php',
{"page": "include/ajax/planned_downtime.ajax",
"get_modules_downtime": 1,
"id_agent": id_agent,
"id_downtime": id_downtime,
"none_value": 1
},
function (data) {
if (data['correct']) {
$("#modules", $('#module_editor_' + id_agent)).empty();
//Fill the select for to add modules
$.each(data['in_agent'], function(id_module, name) {
$("#modules", $('#module_editor_' + id_agent))
.append($("<option value='" + id_module + "'>" + name + "</option>"));
});
$("#modules", $('#module_editor_' + id_agent)).val(0);
}
},
"json"
);
}
function add_module_in_downtime(id_agent) {
var module_sel = $("#modules", $('#module_editor_' + id_agent)).val();
if (module_sel == 0) {
alert('<?php echo __("Please select a module."); ?>');
}
else {
action_in_progress = true;
$("#add_button_div", $('#module_editor_' + id_agent)).toggle();
$("#spinner_add", $('#module_editor_' + id_agent)).toggle();
jQuery.post ('ajax.php',
{"page": "include/ajax/planned_downtime.ajax",
"add_module_into_downtime": 1,
"id_agent": id_agent,
"id_module": module_sel,
"id_downtime": id_downtime
},
function (data) {
if (data['correct']) {
$("#list-agent_"
+ id_agent
+ '-count_modules').html(
$("#some_modules_text").html());
add_row_module(id_downtime, id_agent,
module_sel, data['name']);
fill_selectbox_modules(id_downtime, id_agent);
$("#add_button_div", $('#module_editor_' + id_agent))
.toggle();
$("#spinner_add", $('#module_editor_' + id_agent))
.toggle();
}
action_in_progress = false;
},
"json"
);
}
}
function delete_module_from_downtime(id_downtime, id_module) {
var spinner = $("#spinner_template").clone();
var old_cell_content =
$(".cell_delete_button", "#row_module_in_downtime_" + id_module)
.clone(true);
$(".cell_delete_button", "#row_module_in_downtime_" + id_module)
.html(spinner);
action_in_progress = true;
jQuery.post ('ajax.php',
{"page": "include/ajax/planned_downtime.ajax",
"delete_module_from_downtime": 1,
"id_downtime": id_downtime,
"id_module": id_module
},
function (data) {
if (data['correct']) {
fill_selectbox_modules(id_downtime, data['id_agent']);
$("#row_module_in_downtime_" + id_module).remove();
if (data['all_modules']) {
$("#list-agent_"
+ data['id_agent']
+ '-count_modules').html(
$("#all_modules_text").html());
}
}
else {
$(".cell_delete_button", "#row_module_in_downtime_" + id_module)
.html($(old_cell_content));
}
action_in_progress = false;
},
"json"
);
}
$(document).ready (function () {
$("#id_agents").change(agent_changed_by_multiple_agents);
change_type_downtime();
change_type_execution();
change_type_periodicity();
$("#text-periodically_time_from, #text-periodically_time_to, #text-once_time_from, #text-once_time_to").timepicker({
showSecond: true,
timeFormat: '<?php echo TIME_FORMAT_JS; ?>',
timeOnlyTitle: '<?php echo __('Choose time');?>',
timeText: '<?php echo __('Time');?>',
hourText: '<?php echo __('Hour');?>',
minuteText: '<?php echo __('Minute');?>',
secondText: '<?php echo __('Second');?>',
currentText: '<?php echo __('Now');?>',
closeText: '<?php echo __('Close');?>'});
$("#text-once_date_from, #text-once_date_to").datepicker({dateFormat: "<?php echo DATE_FORMAT_JS; ?>"});
$.datepicker.setDefaults($.datepicker.regional[ "<?php echo get_user_language(); ?>"]);
$("#filter_group").click (
function () {
$(this).css ("width", "auto");
});
$("#filter_group").blur (function () {
$(this).css ("width", "180px");
});
$("#id_agent").click (
function () {
$(this).css ("width", "auto");
});
$("#id_agent").blur (function () {
$(this).css ("width", "180px");
});
});
</script>