<?php // Pandora FMS - http://pandorafms.com // ================================================== // Copyright (c) 2005-2011 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; 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. global $config; check_login (); if (! check_acl($config['id_user'], 0, "PM")) { db_pandora_audit("ACL Violation", "Trying to access Custom events Management"); require ("general/noaccess.php"); return; } $update = get_parameter('upd_button', ''); $default = (int) get_parameter('default', 0); if ($default != 0) { //$event_fields = io_safe_input('evento,id_agente,estado,timestamp'); $fields_selected = explode (',', $config['event_fields']); } else if ($update != '') { $fields_selected = (array)get_parameter('fields_selected'); if ($fields_selected[0] == '') { //$event_fields = io_safe_input('evento,id_agente,estado,timestamp'); $fields_selected = explode (',', $config['event_fields']); } else { $event_fields = implode (',', $fields_selected); } $values = array( 'token' => 'event_fields', 'value' => $event_fields ); //update 'event_fields' in tconfig table to keep the value at update. $result = db_process_sql_update('tconfig', $values, array ('token' => 'event_fields')); $config['event_fields'] = $event_fields; } $fields_selected = array(); $event_fields = ''; $fields_selected = explode (',', $config['event_fields']); $result_selected = array(); //show list of fields selected. if ($fields_selected[0]!='') { foreach ($fields_selected as $field_selected) { switch ($field_selected) { case 'id_evento': $result = __('Event Id'); break; case 'evento': $result = __('Event Name'); break; case 'id_agente': $result = __('Agent Name'); break; case 'id_usuario': $result = __('User'); break; case 'id_grupo': $result = __('Group'); break; case 'estado': $result = __('Status'); break; case 'timestamp': $result = __('Timestamp'); break; case 'event_type': $result = __('Event Type'); break; case 'id_agentmodule': $result = __('Module Name'); break; case 'id_alert_am': $result = __('Alert'); break; case 'criticity': $result = __('Severity'); break; case 'user_comment': $result = __('Comment'); break; case 'tags': $result = __('Tags'); break; case 'source': $result = __('Source'); break; case 'id_extra': $result = __('Extra Id'); break; case 'owner_user': $result = __('Owner'); break; case 'ack_utimestamp': $result = __('ACK Timestamp'); break; case 'instructions': $result = __('Instructions'); break; case 'server_name': $result = __('Server Name'); break; case 'data': $result = __('Data'); break; case 'module_status': $result = __('Module Status'); break; } $result_selected[$field_selected] = $result; } } $event = array(); echo '<h3>'.__('Show event fields'); echo ' <a href="index.php?sec=geventos&sec2=godmode/events/events§ion=fields&default=1">'; html_print_image ('images/clean.png', false, array ('title' => __('Load the fields from previous events'), 'onclick' => "if (! confirm ('" . __('Event fields will be loaded. Do you want to continue?') ."')) return false")); echo '</a></h3>'; $table = new stdClass(); $table->width = '100%'; $table->class = 'databox filters'; $table->size = array(); //~ $table->size[0] = '20%'; $table->size[1] = '10px'; //~ $table->size[2] = '20%'; $table->style[0] = 'text-align:center;'; $table->style[2] = 'text-align:center;'; $table->data = array(); $fields_available = array(); $fields_available['id_evento'] = __('Event Id'); $fields_available['evento'] = __('Event Name'); $fields_available['id_agente'] = __('Agent Name'); $fields_available['id_usuario'] = __('User'); $fields_available['id_grupo'] = __('Group'); $fields_available['estado'] = __('Status'); $fields_available['timestamp'] = __('Timestamp'); $fields_available['event_type'] = __('Event Type'); $fields_available['id_agentmodule'] = __('Module Name'); $fields_available['id_alert_am'] = __('Alert'); $fields_available['criticity'] = __('Severity'); $fields_available['user_comment'] = __('Comment'); $fields_available['tags'] = __('Tags'); $fields_available['source'] = __('Source'); $fields_available['id_extra'] = __('Extra Id'); $fields_available['owner_user'] = __('Owner'); $fields_available['ack_utimestamp'] = __('ACK Timestamp'); $fields_available['instructions'] = __('Instructions'); $fields_available['server_name'] = __('Server Name'); $fields_available['data'] = __('Data'); $fields_available['module_status'] = __('Module Status'); //remove fields already selected foreach ($fields_available as $key=>$available) { foreach ($result_selected as $selected) { if ($selected == $available) { unset($fields_available[$key]); } } } $table->data[0][0] = '<b>' . __('Fields available').'</b>'; $table->data[1][0] = html_print_select ($fields_available, 'fields_available[]', true, '', '', 0, true, true, false, '', false, 'width: 300px'); $table->data[1][1] = '<a href="javascript:">' . html_print_image('images/darrowright.png', true, array('id' => 'right', 'title' => __('Add fields to select'))) . '</a>'; $table->data[1][1] .= '<br><br><br><br><a href="javascript:">' . html_print_image('images/darrowleft.png', true, array('id' => 'left', 'title' => __('Delete fields to select'))) . '</a>'; $table->data[0][1] = ''; $table->data[0][2] = '<b>' . __('Fields selected') . '</b>'; $table->data[1][2] = html_print_select($result_selected, 'fields_selected[]', true, '', '', 0, true, true, false, '', false, 'width: 300px'); echo '<form id="custom_events" method="post" action="index.php?sec=geventos&sec2=godmode/events/events§ion=fields&pure='.$config['pure'].'">'; html_print_table($table); echo '<div class="action-buttons" style="width: '.$table->width.'">'; html_print_submit_button (__('Update'), 'upd_button', false, 'class="sub upd"'); echo '</form>'; echo '</div>'; ?> <script type="text/javascript"> /* <![CDATA[ */ $(document).ready (function () { $("#right").click (function () { jQuery.each($("select[name='fields_available[]'] option:selected"), function (key, value) { field_name = $(value).html(); if (field_name != <?php echo "'".__('None')."'"; ?>) { id_field = $(value).attr('value'); $("select[name='fields_selected[]']").append($("<option></option>").html(field_name).attr("value", id_field)); $("#fields_available").find("option[value='" + id_field + "']").remove(); $("#fields_selected").find("option[value='0']").remove(); } }); }); $("#left").click (function () { jQuery.each($("select[name='fields_selected[]'] option:selected"), function (key, value) { field_name = $(value).html(); if (field_name != <?php echo "'".__('None')."'"; ?>) { id_field = $(value).attr('value'); $("select[name='fields_available[]']").append($("<option></option>").val(id_field).html('<i>' + field_name + '</i>')); $("#fields_selected").find("option[value='" + id_field + "']").remove(); $("#fields_available").find("option[value='0']").remove(); } }); }); $("#submit-upd_button").click(function () { $("#fields_selected").find("option[value='0']").remove(); $('#fields_selected option').map(function() { $(this).prop('selected', true); }); }); }); </script>