pari: branch asterisknow r2101 - /branches/asterisknow/config/menus.html

SVN commits to the Asterisk-GUI project asterisk-gui-commits at lists.digium.com
Tue Jan 8 11:40:21 CST 2008


Author: pari
Date: Tue Jan  8 11:40:21 2008
New Revision: 2101

URL: http://svn.digium.com/view/asterisk-gui?view=rev&rev=2101
Log:
fixing wrong priorities in voicemenu steps

Modified:
    branches/asterisknow/config/menus.html

Modified: branches/asterisknow/config/menus.html
URL: http://svn.digium.com/view/asterisk-gui/branches/asterisknow/config/menus.html?view=diff&rev=2101&r1=2100&r2=2101
==============================================================================
--- branches/asterisknow/config/menus.html (original)
+++ branches/asterisknow/config/menus.html Tue Jan  8 11:40:21 2008
@@ -315,7 +315,17 @@
 	var priorities = new Array;
 
 	if(voicemenusdata[_vmv].extensions['s'] && voicemenusdata[_vmv].extensions['s'].length > 0 ){
-		newpriority = 'n';
+		// you might be tempted to say " newpriority = voicemenusdata[_vmv].extensions['s'].length + 1; " but this won't work cause
+		// you might be dealing a "[s,1][s,3][s,7]"  where the array length is 3 - but new priority shud be 8
+		
+		// so ,
+		var laststep_tmp = voicemenusdata[_vmv].extensions['s'][ voicemenusdata[_vmv].extensions['s'].length -1 ] ;
+		var laststep_priority = ASTGUI.parseContextLine.getPriority( laststep_tmp );
+		
+		// gui versions before AA50 firmware 1.1 used 's,n'
+		// this is updated to's,number' in 1.1
+		// so if we find a old format - we will delete all the 's' extension and update it to new format
+		newpriority = ( laststep_priority == 'n' ) ? voicemenusdata[_vmv].extensions['s'].length + 1 : Number(laststep_priority) + 1 ; 
 	}else{
 		newpriority = 1;
 	}
@@ -376,40 +386,62 @@
 		action_string = "s,undefined,undefined"; 
 	}
 
-	uri += build_action('append', 0, _vmv,"exten", action_string ); 
-
-	makerequest('u','extensions.conf', uri,
-		function(t){
-			setTimeout(function(){ _$('status_message').style.display = 'none'; },sc_displaytime);
-			// if request successfull then add this to the steps select box
-			var newoption = document.createElement("option"); 
-			newoption.text = format_step(action_string ); 
-			newoption.value = action_string ;
-			var _steps = _$('steps') ;
-			_steps.options.add ( newoption );
-			// and also add the information to the voicemenus data
-			if(voicemenusdata[_vmv].extensions['s']){
-				voicemenusdata[_vmv].extensions['s'].push(action_string);
-			}else{
-				voicemenusdata[_vmv].extensions['s'] = new Array;
-				voicemenusdata[_vmv].extensions['s'][0] = action_string;
-			}
-			// empty this textbox & disable this button, select the newly added item to the steps options box
-			_nsa.selectedIndex = 0;
-			_$('deletestep').disabled = false;
-			_steps.selectedIndex = _steps.length - 1 ;
-			gui_feedback('New step added !','blue');
-			update_updown();
-			_nsv.value = "";
-			_nsv.style.display = "none" ;
-			_$('add_newstep_extensions').style.display = "none";
-			_$('add_newstep_menus').style.display = "none";
-			_$('combodiv_sounds').style.display = "none" ;
-			_nsvd = _$('newstep_var_digit'); 
-			_nsvd.value= "";
-			_nsvd.style.display= "none" ;
-		}
-	);
+	var after = function(t){
+		setTimeout(function(){ _$('status_message').style.display = 'none'; },sc_displaytime);
+		hide_addStep();
+		// if request successfull then add this to the steps select box
+		var newoption = document.createElement("option");
+		newoption.text = format_step(action_string );
+		newoption.value = action_string ;
+		var _steps = _$('steps') ;
+		_steps.options.add ( newoption );
+		// and also add the information to the voicemenus data
+		if(voicemenusdata[_vmv].extensions['s']){
+		voicemenusdata[_vmv].extensions['s'].push(action_string);
+		}else{
+		voicemenusdata[_vmv].extensions['s'] = new Array;
+		voicemenusdata[_vmv].extensions['s'][0] = action_string;
+		}
+		// empty this textbox & disable this button, select the newly added item to the steps options box
+		_nsa.selectedIndex = 0;
+		_$('deletestep').disabled = false;
+		_steps.selectedIndex = _steps.length - 1 ;
+		gui_feedback('New step added !','blue');
+		update_updown();
+		_nsv.value = "";
+		_nss.value="";
+		_nsv.style.display = "none" ;
+		_nss.style.display = "none" ;
+		_$('add_newstep_extensions').style.display = "none";
+		_$('add_newstep_menus').style.display = "none";
+		_nsvd = _$('newstep_var_digit');
+		_nsvd.value= "";
+		_nsvd.style.display= "none" ;
+		if(laststep_priority == 'n' ){ window.location.reload(); }
+	}
+	
+	if( laststep_priority=='n' ){ // if old configuration - update to new
+		var chs = new listOfActions();
+		chs.filename('extensions.conf'); var c = 0;
+		for(var vg=0; vg < voicemenusdata[_vmv]['extensions']['s'].length ; vg++ ){
+		chs.build_action ( 'delete', c , _vmv, "exten", '', voicemenusdata[_vmv]['extensions']['s'][vg] );
+		}
+		
+		var tmp_priority = 1;
+		for(var vg=0; vg < voicemenusdata[_vmv]['extensions']['s'].length ; vg++ ){
+		var tmp_step = 's,' + tmp_priority + ','+ ASTGUI.parseContextLine.getAction( voicemenusdata[_vmv]['extensions']['s'][vg] ) ;
+		voicemenusdata[_vmv]['extensions']['s'][vg] = tmp_step;
+		tmp_priority++ ;
+		chs.build_action ( 'append', c , _vmv, 'exten', tmp_step );
+		}
+		chs.build_action( 'append', c , _vmv, 'exten', action_string );
+		chs.callActions(after);
+		return;
+	}else{
+		uri += build_action('append', 0, _vmv,"exten", action_string );
+		makerequest('u','extensions.conf', uri, after );
+		return;
+	}
 
 }
 
@@ -824,9 +856,9 @@
 				_$(current_key_exts).style.display = "";
 				select_menu(current_key_exts, tmp[2],"isext"); // select_menu common for exts and menus
 			}else if(tmp[2].match("Hangup") ){ // if HangUp
-				_$(current_key_action).options[4].selected = true;							
+				 ASTGUI.selectbox.selectOption(_$(current_key_action), 'Hangup'); // 
 			}else if( tmp[2].match('Playback') &&  tmp[2].match( "(invalid)" ) ){
-				_$(current_key_action).options[5].selected = true;											
+				ASTGUI.selectbox.selectOption(_$(current_key_action), 'PlayInvalid');
 			}else{ // if custom (no 'goto')
 				_$(current_key_action).options[3].selected = true;
 				_$(current_key_text).style.display = "";




More information about the asterisk-gui-commits mailing list