From d4f727fbbec1df70c30b00c7236f67c5dfaa22e3 Mon Sep 17 00:00:00 2001 From: zarzuelo Date: Thu, 19 Jul 2012 16:44:15 +0000 Subject: [PATCH] 2012-07-19 Sergio Martin * godmode/modules/manage_network_components_form.php godmode/modules/manage_network_components_form_plugin.php: Add first version of dynamic macros in network components of type plug-in git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6792 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f --- pandora_console/ChangeLog | 7 ++ .../manage_network_components_form.php | 93 +++++++++++++++++++ .../manage_network_components_form_plugin.php | 19 +++- 3 files changed, 117 insertions(+), 2 deletions(-) diff --git a/pandora_console/ChangeLog b/pandora_console/ChangeLog index cd95f588a2..537e392b70 100644 --- a/pandora_console/ChangeLog +++ b/pandora_console/ChangeLog @@ -1,3 +1,10 @@ +2012-07-19 Sergio Martin + + * godmode/modules/manage_network_components_form.php + godmode/modules/manage_network_components_form_plugin.php: Add + first version of dynamic macros in network components of type + plug-in + 2012-07-19 Sergio Martin * pandoradb.sql diff --git a/pandora_console/godmode/modules/manage_network_components_form.php b/pandora_console/godmode/modules/manage_network_components_form.php index b3414ce6a3..72b08c6a84 100644 --- a/pandora_console/godmode/modules/manage_network_components_form.php +++ b/pandora_console/godmode/modules/manage_network_components_form.php @@ -478,4 +478,97 @@ $(document).ready (function () { type_change (); //--> + +// Functions to add and remove dynamic fields for macros +function delete_macro() { + var next_row = parseInt($('#next_row').html()); + $('#next_row').html(next_row-2); + var next_number = parseInt($('#next_macro').html()); + $('#next_macro').html(next_number-1); + + var nrow1 = next_row - 2; + var nrow2 = next_row - 1; + + var $row1 = $('#network_component-plugin_'+nrow1).remove(); + var $row2 = $('#network_component-plugin_'+nrow2).remove(); +} + +function new_macro() { + var next_row = parseInt($('#next_row').html()); + + $('#next_row').html(next_row+2); + var nrow1 = next_row - 2; + var nrow2 = next_row - 1; + var nrow3 = next_row; + var nrow4 = next_row + 1; + + var next_number = parseInt($('#next_macro').html()); + $('#next_macro').html(next_number+1); + var current_number = next_number - 1; + + // Clone two last rows + var $row1 = $('#network_component-plugin_'+nrow1).clone(true); + var $row2 = $('#network_component-plugin_'+nrow2).clone(true); + + // Change the tr ID + $row1.attr('id','network_component-plugin_'+(nrow3)); + $row2.attr('id','network_component-plugin_'+(nrow4)); + // Change the td ID + $row1.find('td').attr('id', changeTdId); + $row2.find('td').attr('id', changeTdId); + + // Insert after last field + $row2.insertAfter('#network_component-plugin_'+nrow2); + $row1.insertAfter('#network_component-plugin_'+nrow2); + + // Change labels + for(i=0;i<=3;i++) { + var label1 = $("#network_component-plugin_"+nrow3+"-"+i).html(); + var exp_reg = new RegExp('field'+current_number, 'g'); + label1 = label1.replace(exp_reg,'field'+next_number); + $("#network_component-plugin_"+nrow3+"-"+i).html(label1); + } + + for(i=0;i<=1;i++) { + var label2 = $("#network_component-plugin_"+nrow4+"-"+i).html(); + var exp_reg = new RegExp('field'+current_number, 'g'); + label2 = label2.replace(exp_reg,'field'+next_number); + $("#network_component-plugin_"+nrow4+"-"+i).html(label2); + } + + // Empty the text inputs + $('#text-field'+next_number+'_desc').val(''); + $('#text-field'+next_number+'_help').val(''); + $('#text-field'+next_number+'_value').val(''); + + function changeTdId() { + switch(this.id) { + case 'network_component-plugin_'+(nrow1)+'-0': + return 'network_component-plugin_'+(nrow3)+'-0'; + break; + case 'network_component-plugin_'+(nrow1)+'-1': + return 'network_component-plugin_'+(nrow3)+'-1'; + break; + case 'network_component-plugin_'+(nrow1)+'-2': + return 'network_component-plugin_'+(nrow3)+'-2'; + break; + case 'network_component-plugin_'+(nrow1)+'-3': + return 'network_component-plugin_'+(nrow3)+'-3'; + break; + case 'network_component-plugin_'+(nrow2)+'-0': + return 'network_component-plugin_'+(nrow4)+'-0'; + break; + case 'network_component-plugin_'+(nrow2)+'-1': + return 'network_component-plugin_'+(nrow4)+'-1'; + break; + case 'network_component-plugin_'+(nrow2)+'-2': + return 'network_component-plugin_'+(nrow4)+'-2'; + break; + case 'network_component-plugin_'+(nrow2)+'-3': + return 'network_component-plugin_'+(nrow4)+'-3'; + break; + } + } + +} diff --git a/pandora_console/godmode/modules/manage_network_components_form_plugin.php b/pandora_console/godmode/modules/manage_network_components_form_plugin.php index 9885e48521..8c46c0f4a0 100644 --- a/pandora_console/godmode/modules/manage_network_components_form_plugin.php +++ b/pandora_console/godmode/modules/manage_network_components_form_plugin.php @@ -63,7 +63,11 @@ push_table_row ($data, 'plugin_4'); $macros = json_decode($macros,true); // The next row number is plugin_5 $next_name_number = 5; -for($i=1;$i<=6;$i++) { +$i = 1; +while(1) { + if(!isset($macros[$i]) || $macros[$i]['desc'] == '') { + break; + } $macro_desc_name = 'field'.$i.'_desc'; $macro_desc_value = ''; $macro_help_name = 'field'.$i.'_help'; @@ -97,7 +101,7 @@ for($i=1;$i<=6;$i++) { push_table_row ($data, 'plugin_'.$next_name_number); $next_name_number++; - $table->colspan['plugin_'.$next_name_number][1] = 3; + $table->colspan['plugin_'.$next_name_number][1] = 2; $data = array (); $data[0] = sprintf(__('Macro %s help'),$macro_name); @@ -106,7 +110,18 @@ for($i=1;$i<=6;$i++) { push_table_row ($data, 'plugin_'.$next_name_number); $next_name_number++; + $i++; } + $table->colspan['plugin_n'][2] = 2; + + $data = array (); + $data[0] = ''; + $data[1] = __('Add macro').' '.html_print_image('images/add.png',true).''; + $data[1] .= ''; + $data[1] .= ''; + $data[2] = __('Delete macro').' '.html_print_image('images/cancel.png',true).''; + + push_table_row ($data, 'plugin_n'); ?>