305 lines
9.1 KiB
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>
|