📄 menus.html.svn-base
字号:
var new_step1 = tmp1[0] + ","+ tmp1[1] + "," + step2_action; var new_step2 = tmp2[0] + ","+ tmp2[1] + "," + step1_action; var uri = ""; uri += build_action('update', 0, _vms_v ,"exten","BUFFERBUFFERBUFFER", _steps.options[a].value); uri += build_action('update', 1, _vms_v ,"exten",new_step2, _steps.options[b].value); uri += build_action('update', 2, _vms_v ,"exten",new_step1, "BUFFERBUFFERBUFFER"); // we need a buffer update other wise you end up updating the just updated value // note that rawman actions are executed sequentially. makerequest('u','extensions.conf', uri, function(t){ // update voicemenusdata for(var p=0; p< voicemenusdata[_vms_v].extensions['s'].length; p++){ if( voicemenusdata[_vms_v].extensions['s'][p] == _steps.options[a].value ){ voicemenusdata[_vms_v].extensions['s'][p] = new_step1; }else if (voicemenusdata[_vms_v].extensions['s'][p] == _steps.options[b].value ){ voicemenusdata[_vms_v].extensions['s'][p] = new_step2; } } // swap select values of a to b _steps.options[a].value = new_step1; _steps.options[b].value = new_step2; var buffer = _steps.options[a].text; _steps.options[a].text = _steps.options[b].text; _steps.options[b].text = buffer; _steps.selectedIndex = b; gui_feedback('Step Priority Updated!','blue'); update_updown(); } );}function delete_step(){ // delete the selected step and update voicemenusdata and update 'select' object - steps _$('status_message').style.display=""; var _vmenus = _$('vmenus'); var _steps = _$('steps'); var uri = ""; uri += build_action('delete', 0, _vmenus.value,"exten", "", _steps.value); var v = _steps.selectedIndex; if(v==0 && _steps.options[1] ){ // if deleting the first step, then make priority of 2nd step to '1' var tmp2 = _steps.options[1].value.split(",") ; var step2_action = tmp2.slice(2).join(","); var new_step1 = tmp2[0] + ",1," + step2_action; uri += build_action('update',1,_vmenus.value,"exten",new_step1,_steps.options[1].value); } makerequest('u','extensions.conf', uri, function(t){ setTimeout(function(){ _$('status_message').style.display='none';} ,sc_displaytime); // Update voicemenusdata for(var p=0; p< voicemenusdata[_vmenus.value].extensions['s'].length; p++){ if( voicemenusdata[_vmenus.value].extensions['s'][p] == _steps.value ){ if(new_step1){ voicemenusdata[_vmenus.value].extensions['s'].splice(p,2, new_step1); }else{ voicemenusdata[_vmenus.value].extensions['s'].splice(p,1); } } } //update_stepsbelow _steps.remove( _steps.selectedIndex); if(new_step1){ _steps.options[0].value = new_step1; } gui_feedback('Step Deleted !','default'); _$('deletestep').disabled = true; } );}function update_newstep_var(){ var _nsv = _$('newstep_var') ; var _nsa = _$('newstep_action'); var _ane = _$('add_newstep_extensions') ; var _anm = _$('add_newstep_menus') ; var _nss = _$('newstep_sounds'); _nsv.value = ""; _nsv.style.display = "none"; _$('newstep_var_digit').style.display= "none" ; _ane.style.display = "none"; _anm.style.display = "none"; //_$('tbr').style.display = "none"; _$('rgrp').style.display = "none"; _nss.style.display = "none"; _nss.value = ""; if( _nsa.value== "" || _nsa.value== "Answer" || _nsa.value== "Hangup" || _nsa.value== "GotoDirecotry" || _nsa.value== "Busy" || _nsa.value== "Congestion" ){ }else if( _nsa.value== "Background" || _nsa.value== "Playback" ){ _nss.style.display = ""; }else if( _nsa.value== "Authenticate" || _nsa.value== "DigitTimeout" || _nsa.value== "ResponseTimeout" || _nsa.value== "Wait" || _nsa.value== "WaitExten" || _nsa.value== "DISA"){ _$('newstep_var_digit').style.display= "" ; }else if(_nsa.value== "GotoMenu" ){ _nsv.value = _anm.value; _anm.style.display = ""; }else if(_nsa.value== "GotoExtension" ){ _nsv.value = _ane.value; _ane.style.display = ""; }else if(_nsa.value== "GotoTimeBasedRule" ){ //_$('tbr').selectedIndex = -1; //_$('tbr').style.display = ""; }else if(_nsa.value== "DialRingGroup" ){ _$('rgrp').selectedIndex = -1; _$('rgrp').style.display = ""; }}function select_vmenu(){ // show all the //s, lines in the select box - if(_$('vmenus').selectedIndex ==-1){ return true;} var _steps = _$('steps'); current_context = _$('vmenus').value; var x, y, tmp; var priority_1, priority_2, buffer; _$('allowexten').checked = (voicemenusdata[current_context].include == "default") ? true : false ; //$('keypressoptions').innerHTML = ""; _steps.options.length =0; _$('comment').value = voicemenusdata[current_context].comment; _$('alias_exten').disabled = false; _$('alias_exten').value = ( voicemenusdata[current_context].alias_exten ) ? voicemenusdata[current_context].alias_exten : "" ; if(voicemenusdata[current_context].extensions['s']){ for (var x=0;x<voicemenusdata[current_context].extensions['s'].length ; x++ ){ var newoption = document.createElement("option"); newoption.text = format_step(voicemenusdata[current_context].extensions['s'][x]); newoption.value = voicemenusdata[current_context].extensions['s'][x]; _steps.options.add ( newoption ); } } // To be done: replace the following bubble sort with js native sort method for (var x = (_steps.length - 1); x >= 0; x--){ for (var y = 1; y <= x; y++){ tmp = _steps.options[y].value.split(",") ; priority_1 = tmp[1]; tmp = _steps.options[y-1].value.split(",") ; priority_2 = tmp[1]; if (priority_2 - priority_1 > 0){ buffer = _steps.options[y-1].value; _steps.options[y-1].value = _steps.options[y].value; _steps.options[y].value = buffer; buffer = _steps.options[y-1].text; _steps.options[y-1].text = _steps.options[y].text; _steps.options[y].text = buffer; } } } _steps.disabled = false; _$('b_ShowAddStep').disabled = false; _$('addstep').disabled = false; _$('allowexten').disabled = false; _$('comment').disabled = false; _$('deletestep').disabled = true; _$('delete').disabled = false; _$('newstep_action').disabled = false; _$('newstep_sounds').disabled = false; _$('newstep_var').disabled = false; _$('keypressoptions').style.display = ""; _$('stepDown').disabled = true; _$('stepUp').disabled = true; _$('savevmenu').disabled = true; for (y=0; y<keys.length ; y++ ){ current_key_action='keypress_'+ keys[y] + '_action'; current_key_text='keypress_'+ keys[y] + '_text'; current_key_exts='keypress_'+ keys[y] + '_exts'; current_key_menus='keypress_'+ keys[y] + '_menus'; _$(current_key_action).options.selectedIndex = 0; _$(current_key_menus).style.display = "none"; _$(current_key_text).style.display = "none"; _$(current_key_exts).style.display = "none"; if(voicemenusdata[current_context].extensions[keys[y]]){ // Load the appropriate Key menu according to the voicemenusdata[current_context].extensions[y][x] // actually we are assuming that there is only voicemenusdata[current_context].extensions[y][0] tmp = voicemenusdata[current_context].extensions[keys[y]][0].split(','); if( tmp[2].match("Goto") && tmp[2].match("voicemenu-") ){ // if "is a voicemenu" _$(current_key_action).options[1].selected = true; _$(current_key_menus).style.display = ""; select_menu (current_key_menus, tmp[2],"ismenu"); }else if( tmp[2].match("Goto") && !tmp[2].match("voicemenu-") ){ // // if "goto an extension " (no 'voicemenu-') _$(current_key_action).options[2].selected = true; _$(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 ASTGUI.selectbox.selectOption(_$(current_key_action), 'Hangup'); // }else if( tmp[2].match('Playback') && tmp[2].match( "(invalid)" ) ){ ASTGUI.selectbox.selectOption(_$(current_key_action), 'PlayInvalid'); }else{ // if custom (no 'goto') _$(current_key_action).options[3].selected = true; _$(current_key_text).style.display = ""; _$(current_key_text).value = tmp[2]; } }else{ // Key_action is disabled => hide the text & options (which already are) } }}menuscallbacks.postselect = function() { select_vmenu();}menuscallbacks.format = function(t, x) { var tmp = t.name.split('general'); var exten_fields; if(tmp.length > 1 ){ return false; }else if ( t.name.substr(0,10) == 'voicemenu-' && x==undefined ){ // if is a category current_context = t.name; voicemenusdata[current_context] = new Object(); return t.name ; }else if(t.name.substr(0,10) == 'voicemenu-' ) { // if is a subcategory switch( t.names[x] ){ case 'comment': voicemenusdata[current_context].comment = t.fields[x]; voicemenusdata[current_context].extensions = new Object(); return false; case 'alias_exten': voicemenusdata[current_context].alias_exten = t.fields[x]; return false; case 'include': voicemenusdata[current_context].include= t.fields[x]; return false; case 'exten': exten_fields = t.fields[x].split (','); if(!voicemenusdata[current_context].extensions[exten_fields[0]]){ voicemenusdata[current_context].extensions[exten_fields[0]] = new Array(); } voicemenusdata[current_context].extensions[exten_fields[0]].push( t.fields[x] ) ; return false; default : return false; } return false; }else{ return false; }}menuscallbacks.loaded = function(){ var _vmenus = _$('vmenus') ; for (var x=0; x< _vmenus.options.length ; x++ ){ _vmenus.options[x].text = "VoiceMenu - " + voicemenusdata[_vmenus.options[x].value].comment; } // Load the menus and extensions into corresponding fields for (var y=0;y < keys.length; y++){ current_key_exts='keypress_'+ keys[y] + '_exts'; current_key_menus='keypress_'+ keys[y] + '_menus'; load_extensions(current_key_exts); load_menus(current_key_menus); } load_extensions('add_newstep_extensions'); load_menus('add_newstep_menus'); parent.loadscreen(this);}menuscallbacks.identifier = "extension";menuscallbacks.eachline = true;menuscallbacks.includecats = true;menuscallbacks.cancelnewcategory =function(){ _$('comment').disabled = true; _$('keypressoptions').style.display = "none";}menuscallbacks.oncategorydelete =function(){ delete_vmenu_fromlistofmenus(); _$('comment').disabled = true; _$('keypressoptions').style.display = "none"; _$('savevmenu').disabled = true; _$('steps').options.length =0; _$('newstep_action').disabled = true; _$('newstep_var').disabled = true; _$('newstep_sounds').disabled = true; _$('addstep').disabled = true; _$('b_ShowAddStep').disabled = true; _$('steps').disabled = true; _$('stepUp').disabled = true; _$('stepDown').disabled = true; _$('alias_exten').value = ""; _$('alias_exten').disabled = true;}menuscallbacks.cancelchanges =function(){ _$('savevmenu').disabled = true;}menuscallbacks.newcategory = function(t) { // 1. Reset all Keyoptions // Load the menus and extensions into corresponding fields for (var y=0;y<keys.length; y++){ current_key_exts='keypress_'+ keys[y] + '_exts'; current_key_menus='keypress_'+ keys[y] + '_menus'; current_key_text = 'keypress_'+ keys[y] + '_text' ; current_key_action='keypress_'+ keys[y] + '_action'; load_extensions(current_key_exts); load_menus(current_key_menus); _$(current_key_action).selectedIndex = 0; _$(current_key_exts).style.display = "none"; _$(current_key_menus).style.display = "none"; _$(current_key_text).style.display = "none"; } // 2. Reset Steps - only 1 step -> Answer var _steps = _$('steps') ; var _comment = _$('comment'); var _allowexten = _$('allowexten') ; var _alias_exten = _$('alias_exten') ; _steps.options.length =0; var newoption = document.createElement("option"); newoption.text = format_step(answer_call_string); newoption.value = answer_call_string; _steps.options.add ( newoption ); // 3. Disable Steps - Add Step , Up , Down Arrows _$('stepUp').disabled = true; _$('stepDown').disabled = true; _allowexten.checked = false; _allowexten.disabled = false; _$('newstep_action').disabled = true; _$('newstep_var').disabled = true; _$('newstep_sounds').disabled = true; _$('addstep').disabled = true; _$('b_ShowAddStep').disabled = true; _steps.disabled = true; // 4. Reset Comment _$('keypressoptions').style.display = "";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -