2009-03-09 Evi Vanoost <vanooste@rcbi.rochester.edu>

* include/javascript/pandora.js: Moved agent_changed here from map_builder
	because it's quite a useful function.
	
	* include/functions_visual_map.php: In case you want no labels (a lot of
	icons on a graph) just set the color to anything not starting with #
	
	* godmode/reporting/map_builder_wizard.php: Added the possibility to add
	modules as well using the wizard. Very useful if you have a switch.
	
	* godmode/reporting/map_builder.php: Fixed some issues with the ajax thing
	and fixed issue #2527894.

git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1521 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
guruevi 2009-03-09 20:47:42 +00:00
parent 838b82448e
commit 7feab70ec5
5 changed files with 148 additions and 74 deletions

View File

@ -1,3 +1,17 @@
2009-03-09 Evi Vanoost <vanooste@rcbi.rochester.edu>
* include/javascript/pandora.js: Moved agent_changed here from map_builder
because it's quite a useful function.
* include/functions_visual_map.php: In case you want no labels (a lot of
icons on a graph) just set the color to anything not starting with #
* godmode/reporting/map_builder_wizard.php: Added the possibility to add
modules as well using the wizard. Very useful if you have a switch.
* godmode/reporting/map_builder.php: Fixed some issues with the ajax thing
and fixed issue #2527894.
2009-03-05 Evi Vanoost <vanooste@rcbi.rochester.edu>
* godmode/reporting/map_builder_wizard.php: Fixed small error when no

View File

@ -88,9 +88,9 @@ if ($delete_layout) {
if ($update_layout) {
$name = (string) get_parameter ('name');
$id_group = (int) get_parameter ('id_group');
$width = (int) get_parameter ('width');
$height = (int) get_parameter ('height');
$id_group = (int) get_parameter ('id_group', 1);
$width = (int) get_parameter ('width', 0);
$height = (int) get_parameter ('height', 0);
$background = (string) get_parameter ('background');
$bg_info = array (0, 0);
if (file_exists ('images/console/background/'.$background))
@ -101,15 +101,10 @@ if ($update_layout) {
if (! $height)
$height = $bg_info[1];
$result = process_sql_update ('tlayout',
array ('name' => $name, 'background' => $background,
'height' => $height, 'width' => $width),
array ('id' => $id_layout));
if ($result) {
echo '<h3 class="suc">'.__('Update layout successful').'</h3>';
} else {
echo '<h3 class="err">'.__('Update layout failed').'</h3>';
}
$result = process_sql_update ('tlayout', array ('name' => $name, 'background' => $background, 'height' => $height, 'width' => $width, 'id_group' => $id_group), array ('id' => $id_layout));
print_error_message ($result, __('Update layout successful'), __('Update layout failed'));
if (is_ajax ()) {
exit;
}
@ -377,18 +372,18 @@ if (! $edit_layout && ! $id_layout) {
/* Layout_data editor form */
$intervals = array ();
$intervals[1] = __('Hour');
$intervals[2] = "2 ".__('Hours');
$intervals[3] = "3 ".__('Hours');
$intervals[6] = "6 ".__('Hours');
$intervals[12] = "12 ".__('Hours');
$intervals[24] = __('Last day');
$intervals[48] = "2 ". __('days');
$intervals[168] = __('Last week');
$intervals[360] = __('15 days');
$intervals[720] = __('Last Month');
$intervals[1440] = __('Two Months');
$intervals[4320] = __('Six Months');
$intervals[3600] = __('Hour');
$intervals[7200] = "2 ".__('Hours');
$intervals[10800] = "3 ".__('Hours');
$intervals[21600] = "6 ".__('Hours');
$intervals[43200] = "12 ".__('Hours');
$intervals[86400] = __('Last day');
$intervals[172800] = "2 ". __('days');
$intervals[1209600] = __('Last week');
$intervals[2419200] = __('15 days');
$intervals[4838400] = __('Last Month');
$intervals[9676800] = __('Two Months');
$intervals[29030400] = __('Six Months');
$agents = get_group_agents ($id_group);
@ -451,33 +446,6 @@ require_javascript_file ('wz_jsgraphics');
require_javascript_file ('pandora_visual_console');
?>
<script language="javascript" type="text/javascript">
function agent_changed (event, id_agent, selected) {
if (id_agent == undefined)
id_agent = this.value;
$('#form_layout_data_editor #module').attr ('disabled', 1);
$('#form_layout_data_editor #module').empty ();
$('#form_layout_data_editor #module').append ($('<option></option>').html ("<?php echo __('Loading'); ?>...").attr ("value", 0));
jQuery.post ('ajax.php',
{"page": "operation/agentes/ver_agente",
"get_agent_modules_json": 1,
"id_agent": id_agent
},
function (data) {
$('#form_layout_data_editor #module').empty ();
$('#form_layout_data_editor #module').append ($('<option></option>').html ("<?php echo __('Any')?>").attr ("value", 0));
jQuery.each (data, function (i, val) {
s = html_entity_decode (val['nombre']);
$('#form_layout_data_editor #module').append ($('<option></option>').html (s).attr ("value", val['id_agente_modulo']));
$('#form_layout_data_editor #module').fadeIn ('normal');
});
if (selected != undefined)
$('#form_layout_data_editor #module').attr ('value', selected);
$('#form_layout_data_editor #module').attr ('disabled', 0);
},
"json"
);
}
$(document).ready (function () {
<?php if ($id_layout): ?>
if (lines)
@ -554,7 +522,7 @@ $(document).ready (function () {
$("#form_layout_data_editor #text-height").attr ('value', data['height']);
$("#form_layout_data_editor #image").change ();
$("#form_layout_data_editor #id_layout_data").attr ('value', data['id']);
$("#form_layout_data_editor #period").attr ('value', data['period'] / 3600);
$("#form_layout_data_editor #period").attr ('value', data['period']);
$("#form_layout_data_editor #agent").attr ('value', data['id_agent']);
$("#form_layout_data_editor #parent_item").attr ('value', data['parent_item']);
$("#form_layout_data_editor #map_linked").attr ('value', data['id_layout_linked']);

View File

@ -42,9 +42,9 @@ if (! give_acl ($config['id_user'], $layout_group, "AW")) {
exit;
}
function process_wizard_add ($id_agents, $image, $id_layout, $range) {
function process_wizard_add ($id_agents, $image, $id_layout, $range, $width = 0, $height = 0) {
if (empty ($id_agents)) {
echo '<h3 class="error">'.__('No agents selected').'</h3>';
print_error_message (false, '', __('No agents selected'));
return false;
}
@ -60,31 +60,78 @@ function process_wizard_add ($id_agents, $image, $id_layout, $range) {
}
process_sql_insert ('tlayout_data',
array ('id_layout' => $id_layout,
'pos_x' => $pos_x,
'pos_y' => $pos_y,
'label' => get_agent_name ($id_agent),
'image' => $image,
'id_agent' => $id_agent,
'label_color' => '#000000'));
array ('id_layout' => $id_layout,
'pos_x' => $pos_x,
'pos_y' => $pos_y,
'label' => get_agent_name ($id_agent),
'image' => $image,
'id_agent' => $id_agent,
'width' => $width,
'height' => $height,
'label_color' => '#000000')
);
$pos_x = $pos_x + $range;
}
echo '<h3 class="suc">'.__('Successfully added').'</h3>';
print_error_message (true, __('Agent successfully added to layout'), '');
echo '<h3><a href="index.php?sec=greporting&sec2=godmode/reporting/map_builder&id_layout='.$id_layout.'">'.__('Map builder').'</a></h3>';
}
function process_wizard_add_modules ($id_modules, $image, $id_layout, $range, $width = 0, $height = 0) {
if (empty ($id_modules)) {
print_error_message (false, '', __('No modules selected'));
return false;
}
$id_modules = (array) $id_modules;
$error = false;
$pos_y = 10;
$pos_x = 10;
foreach ($id_modules as $id_module) {
if ($pos_x > 600) {
$pos_x = 10;
$pos_y = $pos_y + $range;
}
$id_agent = get_agentmodule_agent ($id_module);
process_sql_insert ('tlayout_data',
array ('id_layout' => $id_layout,
'pos_x' => $pos_x,
'pos_y' => $pos_y,
'label' => get_agentmodule_name ($id_module),
'image' => $image,
'id_agent' => $id_agent,
'id_agente_modulo' => $id_module,
'width' => $width,
'height' => $height,
'label_color' => '#000000')
);
$pos_x = $pos_x + $range;
}
print_error_message (true, __('Modules successfully added to layout'), '');
}
echo '<h2>'.__('Visual map wizard').' - '.$layout["name"].'</h2>';
$id_agents = get_parameter ('id_agents');
$id_agents = get_parameter ('id_agents', array ());
$id_modules = get_parameter ('module', array ());
$image = get_parameter ('image');
$add = (bool) get_parameter ('add', false);
$range = get_parameter ("range", 50);
$range = (int) get_parameter ("range", 50);
$width = (int) get_parameter ("width", 0);
$height = (int) get_parameter ("height", 0);
if ($add) {
process_wizard_add ($id_agents, $image, $layout["id"], $range);
process_wizard_add ($id_agents, $image, $layout["id"], $range, $width, $height);
if (!empty ($id_modules)) {
process_wizard_add_modules ($id_modules, $image, $layout["id"], $range, $width, $height);
}
}
$table->id = 'wizard_table';
@ -115,10 +162,17 @@ $table->data[0][1] = print_select ($images_list, 'image', '', '', '', '', true);
$table->data[1][0] = __('Image range (px)');
$table->data[1][1] = print_input_text ('range', $range, '', 5, 5, true);
$table->data[2][0] = __('Agents');
$table->data[2][1] = print_select (get_group_agents ($layout_group, false, "none"),
$table->data[2][0] = __('Image size (px)');
$table->data[2][1] = __('Width').': '.print_input_text ('width', 0, '', 5, 5, true);
$table->data[2][1] .= '<br />'.__('Height').': '.print_input_text ('height', 0, '', 5, 5, true);
$table->data[3][0] = __('Agents');
$table->data[3][1] = print_select (get_group_agents ($layout_group, false, "none"),
'id_agents[]', 0, false, '', '', true, true);
$table->data[4][0] = __('Modules');
$table->data[4][1] = print_select (array (), 'module[]', 0, false, '', '', true, true);
echo '<form method="post" onsubmit="if (! confirm(\''.__('Are you sure').'\')) return false;">';
print_table ($table);
@ -128,7 +182,9 @@ print_input_hidden ('id_layout', $layout["id"]);
print_submit_button (__('Add'), 'go', false, 'class="sub wizard"');
echo '</div>';
echo '</form>';
echo '<h3 class="error invisible" id="message"> </h3>';
?>
<script language="javascript" type="text/javascript">
$(document).ready (function () {
$("#id_agents").change (agent_changed);
});
</script>

View File

@ -89,7 +89,7 @@ function print_pandora_visual_map ($id_layout, $show_links = true, $draw_lines =
$z_index = 1; // Print BAD over good
// Draw image
echo '<div style="z-index: '.$z_index.'; color: '.$layout_data['label_color'].'; position: absolute; margin-left: '.$layout_data['pos_x'].'px; margin-top:'.$layout_data['pos_y'].'px;" id="layout-data-'.$layout_data['id'].'" class="layout-data">';
echo '<div style="z-index: '.$z_index.'; '.($layout_data['label_color'][0] == '#' ? 'color: '.$layout_data['label_color'].';' : '').' position: absolute; margin-left: '.$layout_data['pos_x'].'px; margin-top:'.$layout_data['pos_y'].'px;" id="layout-data-'.$layout_data['id'].'" class="layout-data">';
if (!isset($id_agent))
$id_agent = 0;
@ -144,9 +144,11 @@ function print_pandora_visual_map ($id_layout, $show_links = true, $draw_lines =
echo "</a>";
// Print label
echo "<br />";
echo $layout_data['label'];
// Print label if valid label_color (only testing for starting with #) otherwise print nothing
if ($layout_data['label_color'][0] == '#') {
echo "<br />";
echo $layout_data['label'];
}
echo "</div>";
}

View File

@ -50,3 +50,37 @@ Array.prototype.in_array = function () {
}
return false;
}
/**
* Fill up select box with id "module" with modules after agent has been selected
*
* @param event that has been triggered
* @param id_agent Agent ID that has been selected
* @param selected Which module(s) have to be selected
*/
function agent_changed (event, id_agent, selected) {
if (id_agent == undefined)
id_agent = this.value;
$('#module').attr ('disabled', 1);
$('#module').empty ();
$('#module').append ($('<option></option>').html ("<?php echo __('Loading'); ?>...").attr ("value", 0));
jQuery.post ('ajax.php',
{"page": "operation/agentes/ver_agente",
"get_agent_modules_json": 1,
"id_agent": id_agent
},
function (data) {
$('#module').empty ();
$('#module').append ($('<option></option>').html ("<?php echo __('Any')?>").attr ("value", 0));
jQuery.each (data, function (i, val) {
s = html_entity_decode (val['nombre']);
$('#module').append ($('<option></option>').html (s).attr ("value", val['id_agente_modulo']));
$('#module').fadeIn ('normal');
});
if (selected != undefined)
$('#module').attr ('value', selected);
$('#module').attr ('disabled', 0);
},
"json"
);
}