2010-09-29 Sergio Martin <sergio.martin@artica.es>
* include/javascript/jquery.pandora.controls.js godmode/groups/group_list.php godmode/massive/massive_operations.php godmode/massive/massive_edit_agents.php: Added the massive agent editor to the massive operations for pending task #3057662 git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@3311 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
parent
24260e0f91
commit
618d4ede28
|
@ -1,3 +1,12 @@
|
|||
2010-09-29 Sergio Martin <sergio.martin@artica.es>
|
||||
|
||||
* include/javascript/jquery.pandora.controls.js
|
||||
godmode/groups/group_list.php
|
||||
godmode/massive/massive_operations.php
|
||||
godmode/massive/massive_edit_agents.php: Added the massive
|
||||
agent editor to the massive operations for pending task
|
||||
#3057662
|
||||
|
||||
2010-09-29 Sergio Martin <sergio.martin@artica.es>
|
||||
|
||||
* godmode/agentes/fields_manager.php: Fixed the custom fields
|
||||
|
|
|
@ -60,6 +60,7 @@ if (is_ajax ()) {
|
|||
|
||||
if ($get_group_agents) {
|
||||
$id_group = (int) get_parameter ('id_group');
|
||||
$disabled = (int) get_parameter ('disabled', 0);
|
||||
|
||||
if (! give_acl ($config['id_user'], $id_group, "AR")) {
|
||||
audit_db ($config['id_user'], $_SERVER['REMOTE_ADDR'], "ACL Violation",
|
||||
|
@ -68,7 +69,7 @@ if (is_ajax ()) {
|
|||
return;
|
||||
}
|
||||
|
||||
echo json_encode (get_group_agents ($id_group, false, "none"));
|
||||
echo json_encode (get_group_agents ($id_group, array('disabled' => $disabled), "none"));
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,482 @@
|
|||
<?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
|
||||
check_login ();
|
||||
|
||||
if (! give_acl ($config['id_user'], 0, "AW")) {
|
||||
audit_db ($config['id_user'], $_SERVER['REMOTE_ADDR'], "ACL Violation",
|
||||
"Trying to access massive agent deletion section");
|
||||
require ("general/noaccess.php");
|
||||
return;
|
||||
}
|
||||
|
||||
require_once ('include/functions_agents.php');
|
||||
require_once ('include/functions_ui.php');
|
||||
require_once ('include/functions_alerts.php');
|
||||
require_once ('include/functions_modules.php');
|
||||
require_once ('include/functions_servers.php');
|
||||
require_once ('include/functions_gis.php');
|
||||
|
||||
if (is_ajax ()) {
|
||||
$get_n_conf_files = (bool) get_parameter ('get_n_conf_files');
|
||||
|
||||
if ($get_n_conf_files) {
|
||||
$id_agents = get_parameter('id_agents');
|
||||
$cont = 0;
|
||||
foreach($id_agents as $id_agent) {
|
||||
$name = get_agent_name($id_agent);
|
||||
$agent_md5 = md5($name);
|
||||
if (file_exists ($config["remote_config"]."/md5/".$agent_md5.".md5"))
|
||||
$cont ++;
|
||||
}
|
||||
debugPrint($cont);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
$update_agents = get_parameter ('update_agents', 0);
|
||||
|
||||
if ($update_agents) {
|
||||
$values = array();
|
||||
|
||||
if(get_parameter ('address', '') != '')
|
||||
$values['address'] = get_parameter ('address', '');
|
||||
if(get_parameter ('group', '') != -1)
|
||||
$values['id_grupo'] = get_parameter ('group');
|
||||
if(get_parameter ('interval', '') != '')
|
||||
$values['intervalo'] = get_parameter ('interval');
|
||||
if(get_parameter ('id_os', '') != -1)
|
||||
$values['id_os'] = get_parameter ('id_os');
|
||||
if(get_parameter ('id_parent', '') != '')
|
||||
$values['id_parent'] = get_parameter ('id_parent');
|
||||
if(get_parameter ('server_name', '') != -1)
|
||||
$values['server_name'] = get_parameter ('server_name');
|
||||
if(get_parameter ('description', '') != '')
|
||||
$values['comentarios'] = get_parameter ('description');
|
||||
if(get_parameter ('mode', '') != -1)
|
||||
$values['modo'] = get_parameter ('mode');
|
||||
if(get_parameter ('disabled', '') != -1)
|
||||
$values['disabled'] = get_parameter ('disabled');
|
||||
if(get_parameter ('icon_path', '') != '')
|
||||
$values['icon_path'] = get_parameter('icon_path');
|
||||
if(get_parameter ('update_gis_data', -1) != -1)
|
||||
$values['update_gis_data'] = get_parameter('update_gis_data');
|
||||
if(get_parameter ('custom_id', '') != '')
|
||||
$values['custom_id'] = get_parameter('custom_id');
|
||||
if(get_parameter ('cascade_protection', -1) != -1)
|
||||
$values['cascade_protection'] = get_parameter('cascade_protection');
|
||||
if(get_parameter ('delete_conf', 0) != 0)
|
||||
$values['delete_conf'] = get_parameter('delete_conf');
|
||||
|
||||
$fields = get_db_all_fields_in_table('tagent_custom_fields');
|
||||
|
||||
if($fields === false) $fields = array();
|
||||
|
||||
$id_agents = get_parameter('id_agents', false);
|
||||
if(!$id_agents) {
|
||||
print_error_message(__('No agents selected'));
|
||||
$id_agents = array();
|
||||
} else{
|
||||
if(empty($values) && empty($fields)){
|
||||
print_error_message(__('No values changed'));
|
||||
$id_agents = array();
|
||||
}
|
||||
}
|
||||
|
||||
// CONF FILE DELETION
|
||||
if(isset($values['delete_conf'])) {
|
||||
unset($values['delete_conf']);
|
||||
$n_deleted = 0;
|
||||
foreach($id_agents as $id_agent) {
|
||||
$agent_md5 = md5(get_agent_name($id_agent));
|
||||
@unlink ($config["remote_config"]."/md5/".$agent_md5.".md5");
|
||||
$result = @unlink ($config["remote_config"]."/conf/".$agent_md5.".conf");
|
||||
|
||||
$n_deleted += (int)$result;
|
||||
}
|
||||
print_result_message ($n_deleted > 0,
|
||||
__('Configuration files deleted successfully').'('.$n_deleted.')',
|
||||
__('Configuration files cannot be deleted'));
|
||||
}
|
||||
|
||||
if(empty($values) && empty($fields)){
|
||||
$id_agents = array();
|
||||
}
|
||||
|
||||
$n_edited = 0;
|
||||
$result = false;
|
||||
foreach($id_agents as $id_agent) {
|
||||
if(!empty($values)) {
|
||||
$result = process_sql_update ('tagente',
|
||||
$values,
|
||||
array ('id_agente' => $id_agent));
|
||||
}
|
||||
|
||||
// Update Custom Fields
|
||||
foreach($fields as $field) {
|
||||
if(get_parameter_post ('customvalue_'.$field['id_field'], '') != '') {
|
||||
$key = $field['id_field'];
|
||||
$value = get_parameter_post ('customvalue_'.$field['id_field'], '');
|
||||
|
||||
$old_value = get_db_all_rows_filter('tagent_custom_data', array('id_agent' => $id_agent, 'id_field' => $key));
|
||||
|
||||
if($old_value === false) {
|
||||
// Create custom field if not exist
|
||||
$result = process_sql_insert ('tagent_custom_data',
|
||||
array('id_field' => $key,'id_agent' => $id_agent, 'description' => $value));
|
||||
}else {
|
||||
$result = process_sql_update ('tagent_custom_data',
|
||||
array('description' => $value),
|
||||
array('id_field' => $key,'id_agent' => $id_agent));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$n_edited += (int)$result;
|
||||
}
|
||||
print_result_message ($n_edited > 0,
|
||||
__('Agents updated successfully').'('.$n_edited.')',
|
||||
__('Agents cannot be updated'));
|
||||
|
||||
}
|
||||
$id_group = 0;
|
||||
|
||||
$groups = get_user_groups ();
|
||||
|
||||
$table->id = 'delete_table';
|
||||
$table->width = '95%';
|
||||
$table->data = array ();
|
||||
$table->style = array ();
|
||||
$table->style[0] = 'font-weight: bold; vertical-align:top';
|
||||
$table->style[2] = 'font-weight: bold';
|
||||
$table->size = array ();
|
||||
$table->size[0] = '15%';
|
||||
$table->size[1] = '85%';
|
||||
|
||||
$table->data = array ();
|
||||
$table->data[0][0] = __('Group');
|
||||
$table->data[0][1] = print_select_groups(false, "AR", true, 'id_group', $id_group,
|
||||
false, '', '', true);
|
||||
|
||||
$table->data[1][0] = __('Agents');
|
||||
$table->data[1][0] .= '<span id="agent_loading" class="invisible">';
|
||||
$table->data[1][0] .= '<img src="images/spinner.png" />';
|
||||
$table->data[1][0] .= '</span>';
|
||||
$enabled_agents = get_group_agents ($id_group, array('disabled' => 0), "none");
|
||||
$all_agents = get_group_agents ($id_group, array('disabled' => 1), "none") + $enabled_agents;
|
||||
|
||||
$table->data[1][1] = print_select ($all_agents,
|
||||
'id_agents[]', 0, false, '', '', true, true);
|
||||
|
||||
echo '<form method="post" action="index.php?sec=gagente&sec2=godmode/massive/massive_operations&option=edit_agents" onsubmit="if (! confirm(\''.__('Are you sure?').'\')) return false;">';
|
||||
print_table ($table);
|
||||
|
||||
$nombre_agente = "";
|
||||
$direccion_agente = "";
|
||||
$id_agente = 0;
|
||||
$id_parent = 0;
|
||||
$cascade_protection = 0;
|
||||
$group = 0;
|
||||
$interval = '';
|
||||
$id_os = 0;
|
||||
$server_name = 0;
|
||||
$description = "";
|
||||
|
||||
echo '<div id="form_agents" style="display: none;">';
|
||||
|
||||
$table->width = '95%';
|
||||
$table->class = "databox_color";
|
||||
|
||||
$table->head = array ();
|
||||
$table->style = array ();
|
||||
$table->style[0] = 'font-weight: bold; width: 150px;';
|
||||
$table->data = array ();
|
||||
|
||||
$table->data[0][0] = __('IP Address');
|
||||
$table->data[0][1] = print_input_text ('address', $direccion_agente, '', 16, 100, true);
|
||||
|
||||
$groups = get_user_groups ($config["id_user"], "AR",false);
|
||||
$agents = get_group_agents (array_keys ($groups));
|
||||
|
||||
$table->data[1][0] = __('Parent');
|
||||
$table->data[1][1] = print_input_text_extended ('id_parent', get_agent_name ($id_parent), 'text-id_parent', '', 30, 100, false, '',
|
||||
array('style' => 'background: url(images/lightning.png) no-repeat right;'), true)
|
||||
. '<a href="#" class="tip"> <span>' . __("Type at least two characters to search") . '</span></a>';
|
||||
|
||||
$table->data[1][1] .= print_checkbox ("cascade_protection", 1, $cascade_protection, true).__('Cascade protection'). " " . print_help_icon("cascade_protection", true);
|
||||
|
||||
$table->data[2][0] = __('Group');
|
||||
$table->data[2][1] = print_select_groups(false, "AR", false, 'group', $group, '', __('No change'), -1, true, false, true, '', false, 'width: 150px;');
|
||||
|
||||
$table->data[3][0] = __('Interval');
|
||||
|
||||
$intervals = array ();
|
||||
$intervals[30] = human_time_description_raw (30);
|
||||
$intervals[60] = human_time_description_raw (60);
|
||||
$intervals[300] = human_time_description_raw (300);
|
||||
$intervals[600] = human_time_description_raw (600);
|
||||
$intervals[1200] = human_time_description_raw (1200);
|
||||
$intervals[1800] = human_time_description_raw (1800);
|
||||
$intervals[3600] = human_time_description_raw (3600);
|
||||
$intervals[7200] = human_time_description_raw (7200);
|
||||
$table->data[3][1] = print_extended_select_for_time ($intervals, 'interval', $interval, '', '', '0', 10, true, 'width: 150px') . __(" seconds.");
|
||||
|
||||
$table->data[4][0] = __('OS');
|
||||
$table->data[4][1] = print_select_from_sql ('SELECT id_os, name FROM tconfig_os',
|
||||
'id_os', $id_os, '', __('No change'), -1, true, false, true, false, 'width: 105px;');
|
||||
$table->data[4][1] .= ' <span id="os_preview">';
|
||||
$table->data[4][1] .= print_os_icon ($id_os, false, true);
|
||||
$table->data[4][1] .= '</span>';
|
||||
|
||||
// Network server
|
||||
$none = '';
|
||||
if ($server_name == '' && $id_agente)
|
||||
$none = __('None');
|
||||
$table->data[5][0] = __('Server');
|
||||
$table->data[5][1] = print_select (get_server_names (),
|
||||
'server_name', $server_name, '', __('No change'), -1, true, false, true, '', false, 'width: 150px;');
|
||||
|
||||
// Description
|
||||
$table->data[6][0] = __('Description');
|
||||
$table->data[6][1] = print_input_text ('description', $description, '', 45, 255, true);
|
||||
|
||||
print_table ($table);
|
||||
unset($table);
|
||||
|
||||
$custom_id = '';
|
||||
$mode = -1;
|
||||
$disabled = -1;
|
||||
$new_agent = true;
|
||||
$icon_path = '';
|
||||
$update_gis_data = -1;
|
||||
$cascade_protection = -1;
|
||||
|
||||
$table->width = '95%';
|
||||
$table->class = "databox_color";
|
||||
|
||||
$table->head = array ();
|
||||
$table->style = array ();
|
||||
$table->style[0] = 'font-weight: bold; width: 150px;';
|
||||
$table->data = array ();
|
||||
|
||||
// Custom ID
|
||||
$table->data[0][0] = __('Custom ID');
|
||||
$table->data[0][1] = print_input_text ('custom_id', $custom_id, '', 16, 255, true);
|
||||
|
||||
// Learn mode / Normal mode
|
||||
$table->data[1][0] = __('Module definition').print_help_icon("module_definition", true);
|
||||
$table->data[1][1] = __('No change').' '.print_radio_button_extended ("mode", -1, '', $mode, false, '', 'style="margin-right: 40px;"', true);
|
||||
$table->data[1][1] .= __('Learning mode').' '.print_radio_button_extended ("mode", 1, '', $mode, false, '', 'style="margin-right: 40px;"', true);
|
||||
$table->data[1][1] .= __('Normal mode').' '.print_radio_button_extended ("mode", 0, '', $mode, false, '', 'style="margin-right: 40px;"', true);
|
||||
|
||||
// Status (Disabled / Enabled)
|
||||
$table->data[2][0] = __('Status');
|
||||
$table->data[2][1] = __('No change').' '.print_radio_button_extended ("disabled", -1, '', $disabled, false, '', 'style="margin-right: 40px;"', true);
|
||||
$table->data[2][1] .= __('Disabled').' '.print_radio_button_extended ("disabled", 1, '', $disabled, false, '', 'style="margin-right: 40px;"', true);
|
||||
$table->data[2][1] .= __('Active').' '.print_radio_button_extended ("disabled", 0, '', $disabled, false, '', 'style="margin-right: 40px;"', true);
|
||||
|
||||
// Remote configuration
|
||||
$table->data[3][0] = __('Remote configuration');
|
||||
|
||||
// Delete remote configuration
|
||||
$table->data[3][1] = '<div id="delete_configurations" style="display: none">'. __('Delete available remote configurations').' (';
|
||||
$table->data[3][1] .= '<span id="n_configurations"></span>';
|
||||
$table->data[3][1] .= ') '.print_radio_button_extended ("delete_conf", 1, '', $disabled, false, '', 'style="margin-right: 40px;"', true).'</div>';
|
||||
|
||||
$table->data[3][1] .= '<div id="not_available_configurations" style="display: none"><em>'.__('Not available').'</em></div>';
|
||||
|
||||
$listIcons = getArrayListIcons();
|
||||
|
||||
$arraySelectIcon = array();
|
||||
foreach ($listIcons as $index => $value) $arraySelectIcon[$index] = $index;
|
||||
|
||||
$path = 'images/gis_map/icons/'; //TODO set better method the path
|
||||
|
||||
$table->data[4][0] = __('Agent icon');
|
||||
$table->data[4][1] = print_select($arraySelectIcon, "icon_path", $icon_path, "changeIcons();", __('None'), '', true) .
|
||||
' ' . __('Without status') . ': <img id="icon_without_status" src="' . $path . $icon_path . 'default.png" style="display:none;" />' .
|
||||
' ' . __('Default') . ': <img id="icon_default" src="' . $path . $icon_path . 'default.png" style="display:none;" />' .
|
||||
' ' . __('Ok') . ': <img id="icon_ok" src="' . $path . $icon_path . 'ok.png" style="display:none;" />' .
|
||||
' ' . __('Bad') . ': <img id="icon_bad" src="' . $path . $icon_path . 'bad.png" style="display:none;" />' .
|
||||
' ' . __('Warning') . ': <img id="icon_warning" src="' . $path . $icon_path . 'warning.png" style="display:none;" />';
|
||||
|
||||
if ($config['activate_gis']) {
|
||||
$table->data[5][0] = __('Ignore new GIS data:');
|
||||
$table->data[5][1] = __('No change').' '.print_radio_button_extended ("update_gis_data", -1, '', $update_gis_data, false, '', 'style="margin-right: 40px;"', true);
|
||||
$table->data[5][1] .= __('Disabled').' '.print_radio_button_extended ("update_gis_data", 0, '', $update_gis_data, false, '', 'style="margin-right: 40px;"', true);
|
||||
$table->data[5][1] .= __('Active').' '.print_radio_button_extended ("update_gis_data", 1, '', $update_gis_data, false, '', 'style="margin-right: 40px;"', true);
|
||||
}
|
||||
|
||||
toggle(print_table ($table, true), __('Advanced options'));
|
||||
unset($table);
|
||||
|
||||
$table->width = '95%';
|
||||
$table->class = "databox_color";
|
||||
|
||||
$table->head = array ();
|
||||
$table->style = array ();
|
||||
$table->style[0] = 'font-weight: bold; width: 150px;';
|
||||
$table->data = array ();
|
||||
|
||||
$fields = get_db_all_fields_in_table('tagent_custom_fields');
|
||||
|
||||
if($fields === false) $fields = array();
|
||||
|
||||
foreach ($fields as $field) {
|
||||
|
||||
$data[0] = '<b>'.$field['name'].'</b>';
|
||||
|
||||
$custom_value = get_db_value_filter('description', 'tagent_custom_data', array('id_field' => $field['id_field'], 'id_agent' => $id_agente));
|
||||
|
||||
if($custom_value === false) {
|
||||
$custom_value = '';
|
||||
}
|
||||
|
||||
$data[1] = print_textarea ('customvalue_'.$field['id_field'], 2, 65, $custom_value, 'style="min-height: 30px;"', true);
|
||||
|
||||
array_push ($table->data, $data);
|
||||
}
|
||||
|
||||
if(!empty($fields)) {
|
||||
toggle(print_table ($table, true), __('Custom fields'));
|
||||
}
|
||||
|
||||
|
||||
echo '<h3 class="error invisible" id="message"> </h3>';
|
||||
|
||||
echo '<div class="action-buttons" style="width: '.$table->width.'">';
|
||||
|
||||
print_submit_button (__('Update'), 'updbutton', false, 'class="sub upd"');
|
||||
print_input_hidden ('update_agents', 1);
|
||||
print_input_hidden ('id_agente', $id_agente);
|
||||
|
||||
echo "</div>"; // Shown and hide div
|
||||
|
||||
echo '</div></form>';
|
||||
|
||||
require_jquery_file ('form');
|
||||
require_jquery_file ('pandora.controls');
|
||||
|
||||
|
||||
require_jquery_file ('pandora.controls');
|
||||
require_jquery_file ('ajaxqueue');
|
||||
require_jquery_file ('bgiframe');
|
||||
require_jquery_file ('autocomplete');
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
/* <![CDATA[ */
|
||||
|
||||
//Use this function for change 3 icons when change the selectbox
|
||||
$(document).ready (function () {
|
||||
function changeIcons() {
|
||||
icon = $("#icon_path :selected").val();
|
||||
|
||||
$("#icon_without_status").attr("src", "images/spinner.png");
|
||||
$("#icon_default").attr("src", "images/spinner.png");
|
||||
$("#icon_ok").attr("src", "images/spinner.png");
|
||||
$("#icon_bad").attr("src", "images/spinner.png");
|
||||
$("#icon_warning").attr("src", "images/spinner.png");
|
||||
|
||||
if (icon.length == 0) {
|
||||
$("#icon_without_status").attr("style", "display:none;");
|
||||
$("#icon_default").attr("style", "display:none;");
|
||||
$("#icon_ok").attr("style", "display:none;");
|
||||
$("#icon_bad").attr("style", "display:none;");
|
||||
$("#icon_warning").attr("style", "display:none;");
|
||||
}
|
||||
else {
|
||||
$("#icon_without_status").attr("src", "<?php echo $path; ?>" + icon + ".default.png");
|
||||
$("#icon_default").attr("src", "<?php echo $path; ?>" + icon + ".default.png");
|
||||
$("#icon_ok").attr("src", "<?php echo $path; ?>" + icon + ".ok.png");
|
||||
$("#icon_bad").attr("src", "<?php echo $path; ?>" + icon + ".bad.png");
|
||||
$("#icon_warning").attr("src", "<?php echo $path; ?>" + icon + ".warning.png");
|
||||
$("#icon_without_status").attr("style", "");
|
||||
$("#icon_default").attr("style", "");
|
||||
$("#icon_ok").attr("style", "");
|
||||
$("#icon_bad").attr("style", "");
|
||||
$("#icon_warning").attr("style", "");
|
||||
}
|
||||
|
||||
//$("#icon_default").attr("src", "<?php echo $path; ?>" + icon +
|
||||
}
|
||||
|
||||
function get_n_conf_files(idAgents) {
|
||||
|
||||
}
|
||||
|
||||
$("#id_agents").change (function () {
|
||||
var idAgents = Array();
|
||||
jQuery.each ($("#id_agents option:selected"), function (i, val) {
|
||||
idAgents.push($(val).val());
|
||||
});
|
||||
|
||||
jQuery.post ("ajax.php",
|
||||
{"page" : "godmode/massive/massive_edit_agents",
|
||||
"get_n_conf_files" : 1,
|
||||
"id_agents[]" : idAgents
|
||||
},
|
||||
function (data, status) {
|
||||
if(data == 0){
|
||||
$("#delete_configurations").attr("style", "display: none");
|
||||
$("#not_available_configurations").attr("style", "");
|
||||
}
|
||||
else {
|
||||
$("#n_configurations").text(data);
|
||||
$("#not_available_configurations").attr("style", "display: none");
|
||||
$("#delete_configurations").attr("style", "");
|
||||
}
|
||||
},
|
||||
"json"
|
||||
);
|
||||
|
||||
$("#form_agents").attr("style", "");
|
||||
});
|
||||
|
||||
$("#id_group").change (function () {
|
||||
$("#form_agents").attr("style", "display: none");
|
||||
});
|
||||
|
||||
$("select#id_os").pandoraSelectOS ();
|
||||
$("#text-id_parent").autocomplete ("ajax.php",
|
||||
{
|
||||
scroll: true,
|
||||
minChars: 2,
|
||||
extraParams: {
|
||||
page: "godmode/agentes/agent_manager",
|
||||
search_parents: 1,
|
||||
id_group: function() { return $("#group").val(); },
|
||||
id_agent: <?php echo $id_agente ?>
|
||||
},
|
||||
formatItem: function (data, i, total) {
|
||||
if (total == 0)
|
||||
$("#text-id_parent").css ('background-color', '#cc0000');
|
||||
else
|
||||
$("#text-id_parent").css ('background-color', '');
|
||||
if (data == "")
|
||||
return false;
|
||||
return data[0]+'<br><span class="ac_extra_field"><?php echo __("IP") ?>: '+data[1]+'</span>';
|
||||
},
|
||||
delay: 200
|
||||
}
|
||||
);
|
||||
$("#id_group").pandoraSelectGroupAgent ({
|
||||
agentSelect: "select#id_agents"
|
||||
});
|
||||
$("#id_group").pandoraSelectGroupAgentDisabled ({
|
||||
agentSelect: "select#id_agents"
|
||||
});
|
||||
});
|
||||
</script>
|
|
@ -36,7 +36,7 @@ $options_alerts = array('add_alerts' => __('Massive alerts addition'), 'delete_a
|
|||
'add_action_alerts' => __('Massive alert actions addition'), 'delete_action_alerts' => __('Massive alert actions deletion'),
|
||||
'enable_disable_alerts' => __('Massive alert enable/disable'), 'standby_alerts' => __('Massive alert setting standby'));
|
||||
|
||||
$options_agents = array('delete_agents' => __('Massive agents deletion'));
|
||||
$options_agents = array('edit_agents' => __('Massive agents edition'), 'delete_agents' => __('Massive agents deletion'));
|
||||
|
||||
$options_users = array('add_profiles' => __('Massive profiles addition'), 'delete_profiles' => __('Massive profiles deletion'));
|
||||
|
||||
|
@ -130,6 +130,8 @@ echo '<table border="0"><tr><td>';
|
|||
echo '<h3>'.__('Massive options').':</h3>';
|
||||
echo '</td><td>';
|
||||
print_select($options, 'option', $option, 'this.form.submit()', '', 0, false, false, false);
|
||||
if($option == 'edit_agents')
|
||||
echo '<a href="#" class="tip"> <span>' . __("The blank fields will not be updated") . '</span></a>';
|
||||
echo '</td></tr></table>';
|
||||
echo '</form>';
|
||||
|
||||
|
@ -161,6 +163,9 @@ switch ($option) {
|
|||
case 'delete_agents':
|
||||
require_once ('godmode/massive/massive_delete_agents.php');
|
||||
break;
|
||||
case 'edit_agents':
|
||||
require_once ('godmode/massive/massive_edit_agents.php');
|
||||
break;
|
||||
case 'delete_modules':
|
||||
require_once ('godmode/massive/massive_delete_modules.php');
|
||||
break;
|
||||
|
|
|
@ -56,6 +56,60 @@
|
|||
}
|
||||
});
|
||||
|
||||
$.extend ({
|
||||
pandoraSelectGroupAgentDisabled: new function() {
|
||||
this.defaults = {
|
||||
agentSelect: "select#id_agent",
|
||||
loading: "#agent_loading",
|
||||
callbackBefore: dummyFunc,
|
||||
callbackPre: dummyFunc,
|
||||
callbackPost: dummyFunc,
|
||||
callbackAfter: dummyFunc,
|
||||
debug: false
|
||||
};
|
||||
|
||||
/* public methods */
|
||||
this.construct = function (settings) {
|
||||
return this.each (function() {
|
||||
this.config = {};
|
||||
|
||||
this.config = $.extend (this.config, $.pandoraSelectGroupAgentDisabled.defaults, settings);
|
||||
var config = this.config;
|
||||
|
||||
$(this).change (function () {
|
||||
var $select = $(config.agentSelect).disable ();
|
||||
$(config.loading).show ();
|
||||
$("option[value!=0]", $select).remove ();
|
||||
if (! config.callbackBefore (this))
|
||||
return;
|
||||
|
||||
jQuery.post ("ajax.php",
|
||||
{"page" : "godmode/groups/group_list",
|
||||
"get_group_agents" : 1,
|
||||
"disabled" : 1,
|
||||
"id_group" : this.value
|
||||
},
|
||||
function (data, status) {
|
||||
jQuery.each (data, function (id, value) {
|
||||
config.callbackPre ();
|
||||
option = $("<option></option>")
|
||||
.attr ("value", id)
|
||||
.html (value);
|
||||
config.callbackPost (id, value, option);
|
||||
$(config.agentSelect).append (option);
|
||||
});
|
||||
$(config.loading).hide ();
|
||||
$select.enable ();
|
||||
config.callbackAfter ();
|
||||
},
|
||||
"json"
|
||||
);
|
||||
});
|
||||
});
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
$.extend ({
|
||||
pandoraSelectAgentModule: new function() {
|
||||
this.defaults = {
|
||||
|
@ -253,6 +307,7 @@
|
|||
|
||||
$.fn.extend({
|
||||
pandoraSelectGroupAgent: $.pandoraSelectGroupAgent.construct,
|
||||
pandoraSelectGroupAgentDisabled: $.pandoraSelectGroupAgentDisabled.construct,
|
||||
pandoraSelectAgentModule: $.pandoraSelectAgentModule.construct,
|
||||
pandoraSelectAgentAlert: $.pandoraSelectAgentAlert.construct,
|
||||
pandoraSelectOS: $.pandoraSelectOS.construct,
|
||||
|
|
Loading…
Reference in New Issue