2010-09-06 14:16:40 +02:00
|
|
|
<?php
|
2021-04-06 19:11:37 +02:00
|
|
|
/**
|
|
|
|
* Events sounds.
|
|
|
|
*
|
|
|
|
* @category Sounds
|
|
|
|
* @package Pandora FMS
|
|
|
|
* @subpackage Community
|
|
|
|
* @version 1.0.0
|
|
|
|
* @license See below
|
|
|
|
*
|
|
|
|
* ______ ___ _______ _______ ________
|
|
|
|
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
|
|
|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
|
|
|
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
|
|
|
*
|
|
|
|
* ============================================================================
|
|
|
|
* Copyright (c) 2005-2021 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.
|
|
|
|
* ============================================================================
|
|
|
|
*/
|
2010-09-06 14:16:40 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
require_once '../../include/config.php';
|
|
|
|
require_once '../../include/functions.php';
|
|
|
|
require_once '../../include/functions_db.php';
|
|
|
|
require_once '../../include/auth/mysql.php';
|
2010-09-06 14:16:40 +02:00
|
|
|
|
|
|
|
global $config;
|
|
|
|
|
2021-04-06 19:11:37 +02:00
|
|
|
// Check user.
|
2019-01-30 16:18:44 +01:00
|
|
|
check_login();
|
|
|
|
$config['id_user'] = $_SESSION['id_usuario'];
|
2010-09-06 14:16:40 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
$event_a = check_acl($config['id_user'], 0, 'ER');
|
|
|
|
$event_w = check_acl($config['id_user'], 0, 'EW');
|
|
|
|
$event_m = check_acl($config['id_user'], 0, 'EM');
|
2016-09-08 16:06:12 +02:00
|
|
|
$access = ($event_a == true) ? 'ER' : (($event_w == true) ? 'EW' : (($event_m == true) ? 'EM' : 'ER'));
|
|
|
|
|
2021-04-06 19:11:37 +02:00
|
|
|
if (check_acl($config['id_user'], 0, 'ER') === false
|
|
|
|
&& check_acl($config['id_user'], 0, 'EW') === false
|
|
|
|
&& check_acl($config['id_user'], 0, 'EM') === false
|
|
|
|
) {
|
2022-02-01 13:39:18 +01:00
|
|
|
db_pandora_audit(
|
|
|
|
AUDIT_LOG_ACL_VIOLATION,
|
|
|
|
'Trying to access event viewer'
|
|
|
|
);
|
2019-01-30 16:18:44 +01:00
|
|
|
include 'general/noaccess.php';
|
|
|
|
|
|
|
|
return;
|
2010-09-06 14:16:40 +02:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
$agents = agents_get_group_agents(0, false, 'none', false, true);
|
2020-09-29 14:22:58 +02:00
|
|
|
ob_start('ui_process_page_head');
|
|
|
|
ob_start();
|
2019-01-30 16:18:44 +01:00
|
|
|
echo '<html>';
|
|
|
|
echo '<head>';
|
2020-09-29 14:22:58 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
echo '<title>'.__('Sound Events').'</title>';
|
2010-09-06 14:16:40 +02:00
|
|
|
?>
|
2014-05-30 19:23:02 +02:00
|
|
|
<style type='text/css'>
|
2019-01-30 16:18:44 +01:00
|
|
|
* {
|
|
|
|
margin: 0;
|
|
|
|
padding: 0;
|
|
|
|
}
|
2021-04-06 19:11:37 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
img {
|
|
|
|
border: 0;
|
|
|
|
}
|
2014-05-30 19:23:02 +02:00
|
|
|
</style>
|
2010-09-06 14:16:40 +02:00
|
|
|
<?php
|
2019-01-30 16:18:44 +01:00
|
|
|
echo '<link rel="icon" href="../../'.ui_get_favicon().'" type="image/ico" />';
|
2022-01-17 10:22:30 +01:00
|
|
|
if ($config['style'] === 'pandora_black' && !is_metaconsole()) {
|
2021-11-04 16:28:15 +01:00
|
|
|
echo '<link rel="stylesheet" href="../../include/styles/pandora_black.css" type="text/css" />';
|
2021-03-11 15:40:23 +01:00
|
|
|
} else {
|
2021-11-04 16:28:15 +01:00
|
|
|
echo '<link rel="stylesheet" href="../../include/styles/pandora.css" type="text/css" />';
|
2021-03-11 15:40:23 +01:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
echo '</head>';
|
2021-03-11 15:40:23 +01:00
|
|
|
echo "<body class='sound_events'>";
|
2019-01-30 16:18:44 +01:00
|
|
|
echo "<h1 class='modalheaderh1'>".__('Sound console').'</h1>';
|
2010-09-06 14:16:40 +02:00
|
|
|
|
2020-11-04 16:41:25 +01:00
|
|
|
// Connection lost alert.
|
|
|
|
ui_require_css_file('register', 'include/styles/', true);
|
|
|
|
$conn_title = __('Connection with server has been lost');
|
|
|
|
$conn_text = __('Connection to the server has been lost. Please check your internet connection or contact with administrator.');
|
|
|
|
ui_require_javascript_file('connection_check');
|
2020-12-03 12:27:55 +01:00
|
|
|
set_js_value('absolute_homeurl', ui_get_full_url(false, false, false, false));
|
2021-04-06 19:11:37 +02:00
|
|
|
ui_print_message_dialog(
|
|
|
|
$conn_title,
|
|
|
|
$conn_text,
|
|
|
|
'connection',
|
|
|
|
'/images/error_1.png'
|
|
|
|
);
|
2020-11-04 16:41:25 +01:00
|
|
|
|
2019-07-16 10:16:25 +02:00
|
|
|
$table = new StdClass;
|
2010-09-06 14:16:40 +02:00
|
|
|
$table->width = '100%';
|
2021-03-11 15:40:23 +01:00
|
|
|
$table->class = 'w16px sound_div_background ';
|
2010-09-06 14:16:40 +02:00
|
|
|
$table->size[0] = '10%';
|
2021-03-11 15:40:23 +01:00
|
|
|
$table->rowclass[0] = 'bold_top';
|
|
|
|
$table->rowclass[1] = 'bold_top';
|
|
|
|
$table->rowclass[2] = 'bold_top';
|
2010-09-06 14:16:40 +02:00
|
|
|
|
|
|
|
$table->data[0][0] = __('Group');
|
2021-04-06 19:11:37 +02:00
|
|
|
$table->data[0][1] = html_print_select_groups(
|
|
|
|
false,
|
|
|
|
$access,
|
|
|
|
true,
|
|
|
|
'group',
|
|
|
|
'',
|
|
|
|
'changeGroup();',
|
|
|
|
'',
|
|
|
|
0,
|
|
|
|
true,
|
|
|
|
false,
|
|
|
|
true,
|
|
|
|
'',
|
|
|
|
false,
|
|
|
|
'max-width:200px;'
|
|
|
|
).'<br /><br />';
|
2017-05-25 17:11:35 +02:00
|
|
|
|
2017-03-03 11:49:53 +01:00
|
|
|
$table->data[0][2] = __('Type');
|
2021-04-06 19:11:37 +02:00
|
|
|
$table->data[0][3] = html_print_checkbox(
|
|
|
|
'alert_fired',
|
|
|
|
'alert_fired',
|
|
|
|
true,
|
|
|
|
true,
|
|
|
|
false,
|
|
|
|
'changeType();'
|
|
|
|
);
|
|
|
|
$table->data[0][3] .= __('Alert fired').'<br />';
|
|
|
|
$table->data[0][3] .= html_print_checkbox(
|
|
|
|
'critical',
|
|
|
|
'critical',
|
|
|
|
true,
|
|
|
|
true,
|
|
|
|
false,
|
|
|
|
'changeType();'
|
|
|
|
);
|
|
|
|
$table->data[0][3] .= __('Monitor critical').'<br />';
|
|
|
|
$table->data[0][3] .= html_print_checkbox(
|
|
|
|
'unknown',
|
|
|
|
'unknown',
|
|
|
|
true,
|
|
|
|
true,
|
|
|
|
false,
|
|
|
|
'changeType();'
|
|
|
|
);
|
|
|
|
$table->data[0][3] .= __('Monitor unknown').'<br />';
|
|
|
|
$table->data[0][3] .= html_print_checkbox(
|
|
|
|
'warning',
|
|
|
|
'warning',
|
|
|
|
true,
|
|
|
|
true,
|
|
|
|
false,
|
|
|
|
'changeType();'
|
|
|
|
);
|
|
|
|
$table->data[0][3] .= __('Monitor warning').'<br />';
|
2010-09-06 14:16:40 +02:00
|
|
|
|
2017-05-25 17:11:35 +02:00
|
|
|
$table->data[1][0] = __('Agent');
|
2021-04-06 19:11:37 +02:00
|
|
|
$table->data[1][1] = html_print_select(
|
|
|
|
$agents,
|
|
|
|
'id_agents[]',
|
|
|
|
true,
|
|
|
|
false,
|
|
|
|
'',
|
|
|
|
'',
|
|
|
|
true,
|
|
|
|
true,
|
|
|
|
'',
|
|
|
|
'',
|
|
|
|
'',
|
|
|
|
'max-width:200px; height:100px',
|
|
|
|
'',
|
|
|
|
false,
|
|
|
|
'',
|
|
|
|
'',
|
|
|
|
true
|
|
|
|
);
|
2017-05-25 17:11:35 +02:00
|
|
|
|
|
|
|
$table->data[1][2] = __('Event');
|
2021-04-06 19:11:37 +02:00
|
|
|
$table->data[1][3] = html_print_textarea(
|
|
|
|
'events_fired',
|
|
|
|
200,
|
|
|
|
20,
|
|
|
|
'',
|
|
|
|
'readonly="readonly" style="max-height:100px; resize:none;"',
|
|
|
|
true
|
|
|
|
);
|
2017-05-25 17:11:35 +02:00
|
|
|
|
2011-04-27 15:43:31 +02:00
|
|
|
html_print_table($table);
|
2016-12-05 15:23:17 +01:00
|
|
|
|
2019-07-16 10:16:25 +02:00
|
|
|
$table = new StdClass;
|
2017-03-03 11:49:53 +01:00
|
|
|
$table->width = '100%';
|
2021-03-11 15:40:23 +01:00
|
|
|
$table->class = 'w16px sound_div_background text_center';
|
2017-05-25 17:11:35 +02:00
|
|
|
|
2021-04-06 19:11:37 +02:00
|
|
|
$table->data[0][0] = '<a href="javascript: toggleButton();">';
|
|
|
|
$table->data[0][0] .= html_print_image(
|
|
|
|
'images/play.button.png',
|
|
|
|
true,
|
|
|
|
['id' => 'button']
|
|
|
|
);
|
|
|
|
$table->data[0][0] .= '</a>';
|
|
|
|
|
|
|
|
$table->data[0][1] = '<a href="javascript: ok();">';
|
|
|
|
$table->data[0][1] .= html_print_image(
|
|
|
|
'images/ok.button.png',
|
|
|
|
true,
|
|
|
|
['style' => 'margin-left: 15px;']
|
|
|
|
);
|
|
|
|
$table->data[0][1] .= '</a>';
|
|
|
|
|
|
|
|
$table->data[0][2] = '<a href="javascript: test_sound_button();">';
|
|
|
|
$table->data[0][2] .= html_print_image(
|
|
|
|
'images/icono_test.png',
|
|
|
|
true,
|
|
|
|
[
|
|
|
|
'id' => 'button_try',
|
|
|
|
'style' => 'margin-left: 15px;',
|
|
|
|
]
|
|
|
|
);
|
|
|
|
$table->data[0][2] .= '</a>';
|
|
|
|
|
|
|
|
$table->data[0][3] = html_print_image(
|
|
|
|
'images/tick_sound_events.png',
|
|
|
|
true,
|
|
|
|
[
|
|
|
|
'id' => 'button_status',
|
|
|
|
'style' => 'margin-left: 15px;',
|
|
|
|
]
|
|
|
|
);
|
2017-03-03 11:49:53 +01:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
html_print_table($table);
|
2010-09-06 14:16:40 +02:00
|
|
|
?>
|
2017-05-25 17:11:35 +02:00
|
|
|
|
2010-09-06 14:16:40 +02:00
|
|
|
<script type="text/javascript">
|
|
|
|
var group = 0;
|
|
|
|
var alert_fired = true;
|
|
|
|
var critical = true;
|
|
|
|
var warning = true;
|
2016-12-05 15:23:17 +01:00
|
|
|
var unknown = true;
|
2010-09-06 14:16:40 +02:00
|
|
|
|
|
|
|
var running = false;
|
|
|
|
|
|
|
|
var id_row = 0;
|
|
|
|
|
2014-10-13 15:43:36 +02:00
|
|
|
var button_play_status = "play";
|
|
|
|
|
2016-12-05 15:23:17 +01:00
|
|
|
var test_sound = false;
|
|
|
|
|
|
|
|
function test_sound_button() {
|
2019-01-30 16:18:44 +01:00
|
|
|
if (!test_sound) {
|
|
|
|
$("#button_try").attr('src', '../../images/icono_test.png');
|
|
|
|
$('body').append("<audio src='../../include/sounds/Star_Trek_emergency_simulation.wav' autoplay='true' hidden='true' loop='false'>");
|
|
|
|
test_sound = true;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$("#button_try").attr('src', '../../images/icono_test.png');
|
|
|
|
$('body audio').remove();
|
|
|
|
test_sound = false;
|
|
|
|
}
|
2016-12-05 15:23:17 +01:00
|
|
|
}
|
|
|
|
|
2010-09-06 14:16:40 +02:00
|
|
|
function changeGroup() {
|
2019-01-30 16:18:44 +01:00
|
|
|
group = $("#group").val();
|
|
|
|
|
|
|
|
jQuery.post ("../../ajax.php",
|
|
|
|
{"page" : "include/ajax/agent",
|
|
|
|
"get_agents_group": 1,
|
|
|
|
"id_group": group
|
|
|
|
},
|
|
|
|
function (data) {
|
|
|
|
$("#id_agents").empty();
|
|
|
|
jQuery.each (data, function (id, value) {
|
|
|
|
if (value != "") {
|
2021-04-06 19:11:37 +02:00
|
|
|
$("#id_agents")
|
|
|
|
.append(
|
|
|
|
'<option value="' + id + '">' + value + '</option>'
|
|
|
|
);
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
|
|
|
});
|
|
|
|
},
|
|
|
|
"json"
|
|
|
|
);
|
2010-09-06 14:16:40 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
function changeType() {
|
2020-10-23 13:53:38 +02:00
|
|
|
alert_fired = false;
|
|
|
|
critical = false;
|
|
|
|
warning = false;
|
|
|
|
unknown = false;
|
|
|
|
|
|
|
|
if($("input[name=alert_fired]").is(':checked') ) {
|
|
|
|
alert_fired = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
if($("input[name=critical]").is(':checked') ) {
|
|
|
|
critical = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
if($("input[name=warning]").is(':checked') ) {
|
|
|
|
warning = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
if($("input[name=unknown]").is(':checked') ) {
|
|
|
|
unknown = true;
|
|
|
|
}
|
2010-09-06 14:16:40 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
function toggleButton() {
|
2019-01-30 16:18:44 +01:00
|
|
|
if (button_play_status == 'pause') {
|
|
|
|
$("#button").attr('src', '../../images/play.button.png');
|
|
|
|
stopSound();
|
2021-04-06 19:11:37 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
button_play_status = 'play';
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$("#button").attr('src', '../../images/pause.button.png');
|
|
|
|
forgetPreviousEvents();
|
|
|
|
startSound();
|
2021-04-06 19:11:37 +02:00
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
button_play_status = 'pause';
|
|
|
|
}
|
2010-09-06 14:16:40 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
function ok() {
|
2019-01-30 16:18:44 +01:00
|
|
|
$('#button_status').attr('src','../../images/tick_sound_events.png');
|
|
|
|
$('audio').remove();
|
|
|
|
$('#textarea_events_fired').val("");
|
2010-09-06 14:16:40 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
function stopSound() {
|
2019-01-30 16:18:44 +01:00
|
|
|
$('audio').remove();
|
|
|
|
$('body').css('background', '#494949');
|
|
|
|
running = false;
|
2010-09-06 14:16:40 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
function startSound() {
|
2019-01-30 16:18:44 +01:00
|
|
|
running = true;
|
2010-09-06 14:16:40 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
function forgetPreviousEvents() {
|
2019-01-30 16:18:44 +01:00
|
|
|
var agents = $("#id_agents").val();
|
|
|
|
|
|
|
|
jQuery.post ("../../ajax.php",
|
2019-07-15 15:31:01 +02:00
|
|
|
{"page" : "include/ajax/events",
|
2019-01-30 16:18:44 +01:00
|
|
|
"get_events_fired": 1,
|
|
|
|
"id_group": group,
|
|
|
|
"alert_fired": alert_fired,
|
|
|
|
"critical": critical,
|
|
|
|
"warning": warning,
|
|
|
|
"unknown": unknown,
|
2019-07-16 10:16:25 +02:00
|
|
|
"id_row": id_row,
|
|
|
|
"agents[]" : agents
|
2019-01-30 16:18:44 +01:00
|
|
|
},
|
|
|
|
function (data) {
|
|
|
|
firedId = parseInt(data['fired']);
|
|
|
|
if (firedId != 0) {
|
|
|
|
id_row = firedId;
|
|
|
|
}
|
|
|
|
running = true;
|
|
|
|
},
|
|
|
|
"json"
|
|
|
|
);
|
2010-09-06 14:16:40 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
function check_event() {
|
2019-01-30 16:18:44 +01:00
|
|
|
var agents = $("#id_agents").val();
|
|
|
|
if (running) {
|
|
|
|
jQuery.post ("../../ajax.php",
|
2019-07-15 15:31:01 +02:00
|
|
|
{"page" : "include/ajax/events",
|
2019-01-30 16:18:44 +01:00
|
|
|
"get_events_fired": 1,
|
|
|
|
"id_group": group,
|
|
|
|
"alert_fired": alert_fired,
|
|
|
|
"critical": critical,
|
|
|
|
"warning": warning,
|
|
|
|
"unknown": unknown,
|
2019-07-16 10:16:25 +02:00
|
|
|
"id_row": id_row,
|
|
|
|
"agents[]" : agents,
|
2019-01-30 16:18:44 +01:00
|
|
|
},
|
|
|
|
function (data) {
|
|
|
|
firedId = parseInt(data['fired']);
|
|
|
|
if (firedId != 0) {
|
|
|
|
id_row = firedId;
|
|
|
|
var actual_text = $('#textarea_events_fired').val();
|
|
|
|
if (actual_text == "") {
|
|
|
|
$('#textarea_events_fired').val(data['message'] + "\n");
|
2021-04-06 19:11:37 +02:00
|
|
|
} else {
|
|
|
|
$('#textarea_events_fired')
|
|
|
|
.val(actual_text + "\n" + data['message'] + "\n");
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
2021-04-06 19:11:37 +02:00
|
|
|
$('#button_status')
|
|
|
|
.attr(
|
|
|
|
'src','../../images/sound_events_console_alert.gif'
|
|
|
|
);
|
2019-01-30 16:18:44 +01:00
|
|
|
$('audio').remove();
|
2021-04-06 19:11:37 +02:00
|
|
|
if(data['sound'] == '') {
|
|
|
|
data['sound'] = 'include/sounds/Star_Trek_emergency_simulation.wav';
|
|
|
|
}
|
|
|
|
|
|
|
|
$('body')
|
|
|
|
.append("<audio src='../../" + data['sound'] + "' autoplay='true' hidden='true' loop='true'>");
|
2019-01-30 16:18:44 +01:00
|
|
|
}
|
|
|
|
},
|
|
|
|
"json"
|
|
|
|
);
|
|
|
|
}
|
2010-09-06 14:16:40 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
$(document).ready (function () {
|
2021-04-06 19:11:37 +02:00
|
|
|
//10 seconds between ajax request
|
|
|
|
setInterval("check_event()", (10 * 1000));
|
2010-09-06 14:16:40 +02:00
|
|
|
});
|
2017-05-25 17:11:35 +02:00
|
|
|
|
2010-09-06 14:16:40 +02:00
|
|
|
</script>
|
2017-05-25 17:11:35 +02:00
|
|
|
|
2010-09-06 14:16:40 +02:00
|
|
|
<?php
|
2019-01-30 16:18:44 +01:00
|
|
|
echo '</body>';
|
2020-09-29 14:22:58 +02:00
|
|
|
|
2021-02-09 10:25:08 +01:00
|
|
|
while (ob_get_length() > 0) {
|
|
|
|
ob_end_flush();
|
2020-09-29 14:22:58 +02:00
|
|
|
}
|
|
|
|
|
2019-01-30 16:18:44 +01:00
|
|
|
echo '</html>';
|
|
|
|
|