pandorafms/pandora_console/godmode/setup/snmp_wizard.php

305 lines
9.1 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
global $config;
check_login ();
if (! check_acl ($config['id_user'], 0, "PM")) {
db_pandora_audit("ACL Violation",
"Trying to access Link Management");
require ("general/noaccess.php");
exit;
}
require_once("include/functions_snmp.php");
// Header
ui_print_page_header (__('SNMP Wizard'), "", false, "", true);
$table = new stdClass();
$table->id = 'snmp';
$table->width = '100%';
$table->class = 'databox data';
$table->cellpadding = 0;
$table->cellspacing = 0;
$table->head = array ();
$table->head["description"] = __('Description');
$table->head["oid"] = __('OID');
$table->head["post_process"] = __('Post process');
$table->head["op"] = __('OP');
$table->headstyle = array ();
$table->headstyle["description"] = "text-align: left;";
$table->headstyle["oid"] = "text-align: left;";
$table->headstyle["post_process"] = "text-align: right;";
$table->headstyle["op"] = "text-align: center;";
$table->align = array ();
$table->align["description"] = 'left';
$table->align["oid"] = 'left';
$table->align["post_process"] = 'right';
$table->align["op"] = 'center';
$table->size = array();
$table->size["description"] = '40%';
$table->size["oid"] = '25%';
$table->size["post_process"] = '25%';
$table->size["op"] = '10%';
$oid_translations = snmp_get_translation_wizard();
$table->data = array ();
foreach ($oid_translations as $oid => $data) {
$row = array();
$row['oid'] = $oid;
$row['description'] = $data['description'];
$row['post_process'] = $data['post_process'];
if ($data['readonly']) {
$row['op'] = '';
}
else {
$row['op'] = cell_op($oid);
}
$table->data[$oid] = $row;
}
$table->data['template'] = array(
'oid' => '',
'description' => '',
'post_process' => '',
'op' => cell_op()
);
$table->rowstyle['template'] = 'display: none;';
// Form editor
$table->data['editor'] = array(
'oid' => html_print_input_text('oid_editor', '', '', 40, 255, true),
'description' =>
html_print_input_text('description_editor', '', '', 40, 255, true),
'post_process' =>
html_print_input_text('post_process_editor', '', '', 20, 255, true),
'op' => '<img class="loading" src="images/spinner.gif" style="display: none;" />' .
'<a class="button_save_snmp" href="javascript: save_translation();">' .
html_print_image("images/save_mc.png", true, array ("title" => __('Save'))) .'</a>' .
'<a class="button_update_snmp" href="javascript: update_snmp();" style="display: none;">' .
html_print_image("images/update.png", true, array ("title" => __('Update'))) .
'</a>' .
'<a class="cancel_button_snmp" href="javascript: cancel_snmp();" style="display: none;">' .
html_print_image("images/cancel.png", true, array ("title" => __('Cancel'))) .
'</a>');
html_print_table($table);
function cell_op($oid = "") {
return '<img class="loading" src="images/spinner.gif" style="display: none;" />' .
'<a class="button_edit_snmp" href="javascript: edit_snmp(\'' . $oid . '\');">' .
html_print_image("images/cog.png", true, array ("title" => __('Edit'))) .
'</a>' .
'<a class="delete_button_snmp" href="javascript: delete_snmp(\'' . $oid . '\');">' .
html_print_image("images/cross.png", true, array ("title" => __('Delete'))) .
'</a>';
}
?>
<script type="text/javascript">
function remove_snmp_editor(oid) {
$("#snmp-" + oid + "-editor").remove();
}
function cancel_snmp(oid) {
remove_snmp_editor(oid);
$("#snmp-" + oid).show();
}
function update_snmp_row(oid, new_oid, description, post_process) {
add_snmp_row("#snmp-" + oid, new_oid, description, post_process);
remove_snmp_editor(oid);
$("#snmp-" + oid).remove();
}
function update_snmp(oid) {
var new_oid = $("#snmp-" + oid + "-editor input[name='oid_editor']").val();
var description = $("#snmp-" + oid + "-editor input[name='description_editor']").val();
var post_process = $("#snmp-" + oid + "-editor input[name='post_process_editor']").val();
params = {};
params['page'] = "include/ajax/snmp.ajax";
params['update_snmp_translation'] = 1;
params['oid'] = oid;
params['new_oid'] = new_oid;
params['description'] = description;
params['post_process'] = post_process;
$("#snmp-" + oid + " .loading").show();
$("#snmp-" + oid + " .button_update_snmp").hide();
jQuery.ajax ({
data: params,
type: "POST",
url: "ajax.php",
dataType: "json",
success: function (data) {
if (!data['correct']) {
alert("<?php echo __("Unsucessful update the snmp translation");?>");
}
else {
update_snmp_row(oid, new_oid, description, post_process);
}
},
error: function() {
alert("<?php echo __("Unsucessful update the snmp translation.");?>");
$("#snmp-" + oid + " .loading").hide();
$("#snmp-" + oid + " .button_update_snmp").show();
},
});
}
function edit_snmp(oid) {
var description = $("#snmp-" + oid + "-description").html();
var post_process = $("#snmp-" + oid + "-post_process").html();
var copy_editor = $("#snmp-editor").clone();
$(copy_editor).attr('id', 'snmp-' + oid + "-editor");
$(".button_save_snmp", copy_editor).hide();
$(".cancel_button_snmp", copy_editor).show();
$(".cancel_button_snmp", copy_editor).attr("href", "javascript: cancel_snmp('" + oid + "');");
$(".button_update_snmp", copy_editor).show();
$(".button_update_snmp", copy_editor).attr("href", "javascript: update_snmp('" + oid + "');");
$("#snmp-editor-oid input", copy_editor).val(oid);
$("#snmp-editor-description input", copy_editor).val(description);
$("#snmp-editor-post_process input", copy_editor).val(post_process);
$("#snmp-" + oid).hide();
$("#snmp-" + oid).after(copy_editor);
}
function delete_snmp_row(oid) {
$("#snmp-" + oid).remove();
}
function delete_snmp(oid) {
params = {};
params['page'] = "include/ajax/snmp.ajax";
params['delete_snmp_translation'] = 1;
params['oid'] = oid;
$("#snmp-" + oid + " .loading").show();
$("#snmp-" + oid + " .button_edit_snmp").hide();
$("#snmp-" + oid + " .delete_button_snmp").hide();
jQuery.ajax ({
data: params,
type: "POST",
url: "ajax.php",
dataType: "json",
success: function (data) {
if (!data['correct']) {
alert("<?php echo __("Unsucessful delete the snmp translation");?>");
}
else {
delete_snmp_row(oid);
}
},
error: function() {
alert("<?php echo __("Unsucessful delete the snmp translation.");?>");
$("#snmp-" + oid + " .loading").hide();
$("#snmp-" + oid + " .button_edit_snmp").show();
$("#snmp-" + oid + " .delete_button_snmp").show();
},
});
}
function add_snmp_row(position, oid, description, post_process) {
var copy_template = $("#snmp-template").clone();
$(copy_template).attr('id', 'snmp-' + oid);
$("#snmp-template-oid", copy_template).html(oid);
$("#snmp-template-oid", copy_template)
.attr('id', $(copy_template).attr('id') + "-oid");
$("#snmp-template-description", copy_template).html(description);
$("#snmp-template-description", copy_template)
.attr('id', $(copy_template).attr('id') + "-description");
$("#snmp-template-post_process", copy_template).html(post_process);
$("#snmp-template-post_process", copy_template)
.attr('id', $(copy_template).attr('id') + "-post_process");
$(".button_edit_snmp", copy_template)
.attr("href", "javascript: edit_snmp('" + oid + "');");
$(".delete_button_snmp", copy_template)
.attr("href", "javascript: delete_snmp('" + oid + "');");
$("#snmp-template-op", copy_template)
.attr('id', $(copy_template).attr('id') + "-op");
$(copy_template).show();
$(position).before(copy_template);
}
function save_translation() {
var oid = $("input[name='oid_editor']").val();
var description = $("input[name='description_editor']").val();
var post_process = $("input[name='post_process_editor']").val();
$(".button_save_snmp").hide();
$(".loading").show();
params = {};
params['page'] = "include/ajax/snmp.ajax";
params['save_snmp_translation'] = 1;
params['oid'] = oid;
params['description'] = description;
params['post_process'] = post_process;
jQuery.ajax ({
data: params,
type: "POST",
url: "ajax.php",
dataType: "json",
success: function (data) {
if (!data['correct']) {
alert("<?php echo __("Unsucessful save the snmp translation");?>");
}
else {
add_snmp_row("#snmp-editor", oid, description, post_process);
}
$(".button_save_snmp").show();
$(".loading").hide();
},
error: function() {
alert("<?php echo __("Unsucessful save the snmp translation.");?>");
$(".button_save_snmp").show();
$(".loading").hide();
},
});
}
</script>