227 lines
5.5 KiB
PHP
227 lines
5.5 KiB
PHP
<?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
|
|
|
|
if ((! file_exists("../../include/config.php")) || (! is_readable("../../include/config.php"))) {
|
|
exit;
|
|
}
|
|
|
|
require_once ('../../include/config.php');
|
|
require_once ('../../include/functions.php');
|
|
require_once ('../../include/functions_db.php');
|
|
require_once ('../../include/auth/mysql.php');
|
|
|
|
global $config;
|
|
|
|
// Real start
|
|
session_start ();
|
|
|
|
// Check user
|
|
check_login ();
|
|
$config["id_user"] = $_SESSION["id_usuario"];
|
|
|
|
|
|
if (! check_acl ($config['id_user'], 0, "ER")) {
|
|
db_pandora_audit("ACL Violation","Trying to access event viewer");
|
|
require ("general/noaccess.php");
|
|
|
|
return;
|
|
}
|
|
|
|
echo "<html>";
|
|
echo "<head>";
|
|
echo "<title>" . __("Sound Events") . "</title>";
|
|
?>
|
|
<style type='text/css'>
|
|
* {
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
img {
|
|
border: 0;
|
|
}
|
|
</style>
|
|
<?php
|
|
echo '<link rel="icon" href="../../images/pandora.ico" type="image/ico" />';
|
|
echo '<link rel="stylesheet" href="../../include/styles/pandora.css" type="text/css" />';
|
|
echo "</head>";
|
|
echo "<body>";
|
|
echo html_print_image('images/pandora_logo_head.png', true);
|
|
echo "<h1 style='background: #66AA44; color: #fff;'>" . __("Sound console"). "</h1>";
|
|
|
|
$table = null;
|
|
$table->width = '100%';
|
|
|
|
$table->size[0] = '10%';
|
|
$table->size[1] = '90%';
|
|
$table->style[0] = 'font-weight: bold; vertical-align: top;';
|
|
|
|
$table->data[0][0] = __('Group');
|
|
$table->data[0][1] = html_print_select_groups(false, "ER", true, 'group', '', 'changeGroup();', '', 0, true);
|
|
$table->data[1][0] = __('Type');
|
|
$table->data[1][1] = html_print_checkbox('alert_fired', 'alert_fired', true, true, false, 'changeType();') . __('Alert fired') . '<br />' .
|
|
html_print_checkbox('critical', 'critical', true, true, false, 'changeType();') . __('Monitor critical') . '<br />' .
|
|
html_print_checkbox('warning', 'warning', true, true, false, 'changeType();') . __('Monitor warning') . '<br />' .
|
|
$table->data[2][0] = '';
|
|
$table->data[2][1] = '<a href="javascript: toggleButton();">' .
|
|
html_print_image("images/play.button.png", true, array("id" => "button")) .
|
|
'</a>';
|
|
$table->data[2][1] .= '<a href="javascript: ok();">' .
|
|
html_print_image("images/ok.button.png", true,
|
|
array("style" => "margin-left: 10px;")) . '</a>';
|
|
|
|
html_print_table($table);
|
|
?>
|
|
<script src="../../include/javascript/jquery.js" type="text/javascript"></script>
|
|
<script type="text/javascript">
|
|
var group = 0;
|
|
var alert_fired = true;
|
|
var critical = true;
|
|
var warning = true;
|
|
|
|
var running = false;
|
|
var fired = false;
|
|
|
|
var id_row = 0;
|
|
|
|
var redBackground = false;
|
|
|
|
var button_play_status = "play";
|
|
|
|
function changeGroup() {
|
|
group = $("#group").val();
|
|
}
|
|
|
|
function changeType() {
|
|
alert_fired = $("input[name=alert_fired]").attr('checked');
|
|
critical = $("input[name=critical]").attr('checked');
|
|
warning = $("input[name=warning]").attr('checked');
|
|
}
|
|
|
|
function toggleButton() {
|
|
|
|
if (button_play_status == 'pause') {
|
|
//~ if ($("#button").attr('src') == '../../images/pause.button.png') {
|
|
|
|
$("#button").attr('src', '../../images/play.button.png');
|
|
stopSound();
|
|
|
|
button_play_status = 'play';
|
|
}
|
|
else {
|
|
|
|
$("#button").attr('src', '../../images/pause.button.png');
|
|
forgetPreviousEvents();
|
|
startSound();
|
|
|
|
button_play_status = 'pause';
|
|
}
|
|
}
|
|
|
|
function ok() {
|
|
fired = false;
|
|
$('body').css('background', 'white');
|
|
$('audio').remove();
|
|
}
|
|
|
|
function stopSound() {
|
|
$('audio').remove();
|
|
|
|
$('body').css('background', 'white');
|
|
redBackground = false;
|
|
|
|
running = false;
|
|
fired = false;
|
|
}
|
|
|
|
function startSound() {
|
|
//running = true;
|
|
}
|
|
|
|
function forgetPreviousEvents() {
|
|
jQuery.post ("../../ajax.php",
|
|
{"page" : "operation/events/events",
|
|
"get_events_fired": 1,
|
|
"id_group": group,
|
|
"alert_fired": alert_fired,
|
|
"critical": critical,
|
|
"warning": warning,
|
|
"id_row": id_row
|
|
},
|
|
function (data) {
|
|
firedId = parseInt(data['fired']);
|
|
if (firedId != 0) {
|
|
id_row = firedId;
|
|
}
|
|
running = true;
|
|
},
|
|
"json"
|
|
);
|
|
}
|
|
|
|
function check_event() {
|
|
if (running) {
|
|
if (!fired) {
|
|
jQuery.post ("../../ajax.php",
|
|
{"page" : "operation/events/events",
|
|
"get_events_fired": 1,
|
|
"id_group": group,
|
|
"alert_fired": alert_fired,
|
|
"critical": critical,
|
|
"warning": warning,
|
|
"id_row": id_row
|
|
},
|
|
function (data) {
|
|
firedId = parseInt(data['fired']);
|
|
if (firedId != 0) {
|
|
id_row = firedId;
|
|
fired = true;
|
|
$('body').append("<audio src='../../" + data['sound'] + "' autoplay='true' hidden='true' loop='true'>");
|
|
}
|
|
},
|
|
"json"
|
|
);
|
|
}
|
|
}
|
|
}
|
|
|
|
function animation() {
|
|
if (fired) {
|
|
window.focus();
|
|
if (redBackground) {
|
|
redBackground = false;
|
|
$('body').css('background', 'white');
|
|
//~ window.moveBy(5, 0);
|
|
}
|
|
else {
|
|
redBackground = true;
|
|
$('body').css('background-color', 'red');
|
|
//~ window.moveBy(-5, 0);
|
|
}
|
|
}
|
|
}
|
|
|
|
$(document).ready (function () {
|
|
setInterval("check_event()", (10 * 1000)); //10 seconds between ajax request
|
|
setInterval("animation()", (0.1 * 1000));
|
|
});
|
|
</script>
|
|
<?php
|
|
echo "</body>";
|
|
echo "</html>";
|
|
?>
|