pari: trunk r1264 - in /trunk/config: ./ scripts/ setup/
SVN commits to the Asterisk-GUI project
asterisk-gui-commits at lists.digium.com
Fri Jul 27 09:54:10 CDT 2007
Author: pari
Date: Fri Jul 27 09:54:09 2007
New Revision: 1264
URL: http://svn.digium.com/view/asterisk-gui?view=rev&rev=1264
Log:
Merging some changes from sx00i/aadk branches
** IE will now chop long GET requests into two or more smaller requests
* Hide record option in Conference Panel
* Voicemenus will show only file name only once - even is there are more than
one file with the same extension
Modified:
trunk/config/callparking.html
trunk/config/cfgbasic.html
trunk/config/meetme.html
trunk/config/menus.html
trunk/config/scripts/astman.js
trunk/config/setup/1.html
trunk/config/users.html
Modified: trunk/config/callparking.html
URL: http://svn.digium.com/view/asterisk-gui/trunk/config/callparking.html?view=diff&rev=1264&r1=1263&r2=1264
==============================================================================
--- trunk/config/callparking.html (original)
+++ trunk/config/callparking.html Fri Jul 27 09:54:09 2007
@@ -25,7 +25,7 @@
<script>
var phonecallbacks = new Object;
var widgets = {};
-var fieldnames = ['save','cancel','parkext','parkpos','parkingtime','pickupexten','atxfernoanswertimeout'];
+var fieldnames = ['save','cancel','parkext','parkpos','parkingtime'];
phonecallbacks.format = function(t) {
if(t.name.match('general'))
@@ -73,12 +73,6 @@
<tr> <td align=right>Number of seconds a call can be parked for:</td>
<td> <input size=2 type='text' id='parkingtime' class="input8" dfalt="45"></td>
</tr>
- <tr> <td align=right>Pickup Extension:</td>
- <td> <input size=2 type='text' id='pickupexten' class="input8" dfalt="*8"></td>
- </tr>
- <tr> <td align=right>Timeout for answer on attended transfer:</td>
- <td> <input size=2 type='text' id='atxfernoanswertimeout' class="input8" dfalt="15"></td>
- </tr>
<tr><td colspan=2 align=center height=40 valign=bottom>
<input type='button' id='save' value='Save' class="buttonbold">
<input type='button' id='cancel' value='Cancel' class="buttonbold">
Modified: trunk/config/cfgbasic.html
URL: http://svn.digium.com/view/asterisk-gui/trunk/config/cfgbasic.html?view=diff&rev=1264&r1=1263&r2=1264
==============================================================================
--- trunk/config/cfgbasic.html (original)
+++ trunk/config/cfgbasic.html Fri Jul 27 09:54:09 2007
@@ -37,7 +37,7 @@
function fit_toScreen(){
var t = ASTGUI.displayHeight();
- var minimumheight = 60;
+ var minimumheight = 150;
var c =_$('configpanel');
c.WIH = t;
_$('TOP_MAINTABLE').rows[1].cells[0].height = (t - 70) ;
Modified: trunk/config/meetme.html
URL: http://svn.digium.com/view/asterisk-gui/trunk/config/meetme.html?view=diff&rev=1264&r1=1263&r2=1264
==============================================================================
--- trunk/config/meetme.html (original)
+++ trunk/config/meetme.html Fri Jul 27 09:54:09 2007
@@ -440,7 +440,7 @@
<tr> <td align=right tip="en,meetme,5"><input type='checkbox' id='announce'> </td>
<td class="field_text">Announce callers</td>
</tr>
- <tr> <td align=right tip="en,meetme,11"><input type='checkbox' id='record'> </td>
+ <tr style="display:none"> <td align=right tip="en,meetme,11"><input type='checkbox' id='record'> </td>
<td class="field_text">Record conference</td>
</tr>
<tr> <td align=right tip="en,meetme,8"><input type='checkbox' id='quiet'> </td>
Modified: trunk/config/menus.html
URL: http://svn.digium.com/view/asterisk-gui/trunk/config/menus.html?view=diff&rev=1264&r1=1263&r2=1264
==============================================================================
--- trunk/config/menus.html (original)
+++ trunk/config/menus.html Fri Jul 27 09:54:09 2007
@@ -1,5 +1,5 @@
<!--
- * Asterisk-GUI - an Asterisk configuration interface
+ * Asterisk-GUI - an Asterisk configuration interface
*
* Create/Manage IVR Menus
*
@@ -297,6 +297,7 @@
}
if( _nsa.value != "Answer" && _nsa.value != "GotoDirecotry" && _nsa.value != "Busy" && _nsa.value != "Hangup" && _nsa.value != "Congestion" && !_nsv .value ){
+
if( _nsa.value.toLowerCase() == "dialringgroup" ){
if(!_$('rgrp').options.length ){
gui_alert("No Ring Groups exist. <BR> Please create a Ring Group before selecting this option.");
@@ -305,6 +306,7 @@
}
return;
}
+
gui_alert("Please enter a value for '" + _nsa.value +"'");
_nsv.focus();
return;
@@ -1044,16 +1046,15 @@
var opt = { method: 'get', asynchronous: true,
onComplete: function(originalRequest){
var sndfiles = originalRequest.responseText.split("\n") ;
- var opt_temp = document.createElement('option');
- var ie; if(document.attachEvent){ ie=1;}else{ie=0;}
var el = _$('combosel_sounds');
- var h = opt_temp.cloneNode(true);
+ var h = document.createElement('option');
h.text = "Default Sounds" ;
h.value = "" ;
h.style.fontWeight = "bold";
- if(ie){el.add(h);} else{ el.add(h,null);}
+ ASTGUI.selectbox.append_option(el,h);
var file_name;
+ var listof_DefaultSounds = {};
for( var i =0 ; i < sndfiles.length ; i++){
if( typeof sndfiles[i] == "undefined" || sndfiles[i] == "" ){
continue;
@@ -1062,10 +1063,12 @@
if( sndfiles[i] == "" ){ continue; }
file_name = sndfiles[i].stripTags() ;
file_name = file_name.replace(/\..*/,""); /* Replace .ulaw .gsm .whatever with nothing so its just the sound file */
- h = opt_temp.cloneNode(true);
- h.text = file_name ;
- h.value = asterisk_Sounds_path + file_name ;
- if(ie){el.add(h);} else{ el.add(h,null);}
+ listof_DefaultSounds[file_name] = true;
+ }
+ for(var i in listof_DefaultSounds){
+ if( listof_DefaultSounds.hasOwnProperty(i) ){
+ ASTGUI.selectbox.append(el , i, i);
+ }
}
load_recordedfiles();
},
@@ -1225,7 +1228,7 @@
<option value="GotoMenu">Goto Menu</option>
<option value="GotoDirecotry">Goto Directory</option>
<option value="GotoExtension">Goto Extension</option>
- <option value="GotoTimeBasedRule">Goto TimeBasedRule</option>
+ <!--<option value="GotoTimeBasedRule">Goto TimeBasedRule</option>-->
<option value="DialRingGroup">Dial RingGroup</option>
<option value="Hangup">Hangup</option>
</select>
Modified: trunk/config/scripts/astman.js
URL: http://svn.digium.com/view/asterisk-gui/trunk/config/scripts/astman.js?view=diff&rev=1264&r1=1263&r2=1264
==============================================================================
--- trunk/config/scripts/astman.js (original)
+++ trunk/config/scripts/astman.js Fri Jul 27 09:54:09 2007
@@ -177,6 +177,19 @@
}
},
+ getApp: function(q){
+ var y = ASTGUI.parseContextLine.getAction(q);
+ return y.split('(')[0];
+ },
+
+ getArgs: function(q){
+ var y = ASTGUI.parseContextLine.getAction(q);
+ if( y.charAt(y.length-1) ==')' ){ y = y.substr(0, (y.length-1) ); }
+ var t = y.split('(');
+ t.splice(0,1);
+ return t.join('(');
+ },
+
getAction: function(q){ // q can be the the whole contextLine or just 'parseContextLine.read(contextline)[1]'
var t = q.split(',');
t.splice(0,2);
@@ -396,8 +409,9 @@
_hs.borderWidth= "1px";
_hs.borderColor= "#7E5538";
_hs.borderStyle= "solid";
- h.innerHTML = '<BR><BR><TABLE border=0 cellpadding=0 cellspacing=3 align=center><TR><TD><img src=images/loading.gif></TD>'+
- '<TD valign=middle align=center> <div id=message_text></div></TD></TR></TABLE> ';
+ h.innerHTML = '<BR><BR><TABLE border=0 cellpadding=0 cellspacing=3 align=center>' +
+ '<TR><TD><img src="/static/config/images/loading.gif"></TD>' +
+ '<TD valign=middle align=center> <div id=message_text></div></TD></TR></TABLE>';
document.body.appendChild(h);
}
@@ -1041,8 +1055,14 @@
return;
}
}
- uri = box.engine.fields2changes(box.widgets, box.stored_config, cattmp);
- if (uri.length) {
+ var treq;
+ if(isIE){
+ treq = box.engine.fields2changes(box.widgets, box.stored_config, cattmp, true);
+ }else{
+ uri = box.engine.fields2changes(box.widgets, box.stored_config, cattmp);
+ }
+
+ if (uri.length || (isIE && !!treq['act_1']) ) {
if (box.callbacks.format) {
tmp = box.callbacks.format(box.stored_config.catbyname[cattmp.catname]);
box.options[box.selectedIndex].value = cattmp.catname;
@@ -1068,18 +1088,34 @@
box.remove(box.selectedIndex);
}
}
+ }
+
+ if (uri.length) {
opt.parameters="action=updateconfig&srcfilename=" + encodeURIComponent(box.config_file) + "&dstfilename=" + encodeURIComponent(box.config_file) + uri;
temp = new Ajax.Request(box.engine.url, opt);
}
- }
- if (!uri.length) {
- if (!box.callbacks.savechanges || !box.callbacks.savechanges()) {
- gui_feedback('No changes made!','green');
- }
- if (box.widgets['save']){ box.widgets['save'].disabled = true; }
- if (box.widgets['cancel']) { box.widgets['cancel'].disabled = true; }
- }
-}
+
+ if ( isIE && !!treq['act_1'] ) {
+ var pre_uri = "action=updateconfig&srcfilename=" + encodeURIComponent(box.config_file) + "&dstfilename=" + encodeURIComponent(box.config_file);
+ var start_sqreqs = function(st){
+ var f = treq[ 'act_' + st ];
+ if(f){ makerequest("","",pre_uri + f, start_sqreqs(st-1)); }else{ opt.onSuccess(); }
+ };
+ var e = 0;
+ for (var r in treq) { if( treq.hasOwnProperty(r) ){ e++; }}
+ start_sqreqs(e);
+ }
+
+ if(!uri || (isIE && !treq['act_1']) ){
+ if (!box.callbacks.savechanges || !box.callbacks.savechanges()) {
+ gui_feedback('No changes made!','green');
+ }
+ if (box.widgets['save']){ box.widgets['save'].disabled = true; }
+ if (box.widgets['cancel']){ box.widgets['cancel'].disabled = true; }
+ }
+ }
+}
+
function ast_true(s){
if ( s == 'yes' || s == 'true' || s == 'y' || s == 't' || s == '1' || s == 'on' ){
@@ -1354,13 +1390,39 @@
callback(msgs, userdata);
};
- this.fields2changes = function(widgets, config, cattmp) {
+ this.fields2changes = function(widgets, config, cattmp, chop_changes) {
var thevalue;
var changes="";
var count = 0;
var override=0;
var tmp;
var cat;
+ var chopped_changes={};
+ chopped_changes.current_batch = 1 ;
+ chopped_changes.current_batch_actionnumber = 0;
+ chopped_changes.actions = {};
+ chopped_changes.getacn = function(nc){
+ return this.current_batch_actionnumber;
+ };
+ chopped_changes.addNewChange = function(nc){
+ var t = 'act_' + this.current_batch;
+ if(!this.current_batch_actionnumber){
+ this.actions[t] = nc;
+ }else{
+ this.actions[t] = this.actions[t] + nc;
+ }
+ if( this.current_batch_actionnumber == 5 ){
+ this.current_batch++;
+ this.current_batch_actionnumber = 0;
+ }else{
+ this.current_batch_actionnumber++;
+ }
+ };
+ chopped_changes.build_action = function(a,x,b,c,d,e){
+ var z = this.getacn();
+ var nc = e?build_action(a, z, b, c, d, e):build_action(a, z, b, c, d) ;
+ this.addNewChange(nc);
+ };
tmp = cattmp.catname.split(']');
if (tmp.length > 1)
@@ -1372,8 +1434,14 @@
if (cat.name != widgets['name'].value) {
if (cat.name.length) {
changes += build_action('renamecat', count++, cat.name, "", widgets['name'].value);
+ if(chop_changes){
+ chopped_changes.build_action('renamecat', count++, cat.name, "", widgets['name'].value);
+ }
} else {
changes += build_action('newcat', count++, widgets['name'].value, "", "");
+ if(chop_changes){
+ chopped_changes.build_action('newcat', count++, widgets['name'].value, "", "");
+ }
override = 1;
}
cat.name = widgets['name'].value;
@@ -1410,8 +1478,12 @@
cat.fieldbyname[src] = widgets[x].value;
else
cat[src] = widgets[x].value;
- if (cat.fieldbyname)
+ if (cat.fieldbyname){
changes += build_action('update', count++, cat.name, src, cat.fieldbyname[src]);
+ if(chop_changes){
+ chopped_changes.build_action('update', count++, cat.name, src, cat.fieldbyname[src]);
+ }
+ }
}
}
} else if (widgets[x].type == 'checkbox') {
@@ -1425,8 +1497,12 @@
cat.fieldbyname[src] = 'no';
else
cat[src] = 'no';
- if (cat.fieldbyname)
+ if (cat.fieldbyname){
changes += build_action('update', count++, cat.name, src, cat.fieldbyname[src]);
+ if(chop_changes){
+ chopped_changes.build_action('update', count++, cat.name, src, cat.fieldbyname[src]);
+ }
+ }
}
} else if (widgets[x].options && widgets[x].multiple && widgets[x].splitchar) {
var answers = new Array;
@@ -1436,8 +1512,12 @@
}
if (cat.fieldbyname) {
cat.fieldbyname[src] = answers.join(widgets[x].splitchar);
- if (thevalue != cat.fieldbyname[src])
+ if (thevalue != cat.fieldbyname[src]){
changes += build_action('update', count++, cat.name, src, cat.fieldbyname[src]);
+ if(chop_changes){
+ chopped_changes.build_action('update', count++, cat.name, src, cat.fieldbyname[src]);
+ }
+ }
} else
cat[src] = answers.join(widgets[x].splitchar);
} else if (override || (widgets[x].value != thevalue)) {
@@ -1445,16 +1525,27 @@
cat.fieldbyname[src] = widgets[x].value;
if( !widgets[x].value && !widgets[x].hasAttribute('allowblank') ){
changes += build_action('delete', count++, cat.name, src, "", thevalue);
+ if(chop_changes){
+ chopped_changes.build_action('delete', count++, cat.name, src, "", thevalue);
+ }
}else{
changes += build_action('update', count++, cat.name, src, cat.fieldbyname[src]);
+ if(chop_changes){
+ chopped_changes.build_action('update', count++, cat.name, src, cat.fieldbyname[src]);
+ }
}
} else
cat[src] = widgets[src].value;
}
}
}}
+
+ if(chop_changes){
+ return chopped_changes.actions;
+ }
return changes;
};
+
this.cat2fields = function(widgets, cat) {
var thevalue;
@@ -1812,100 +1903,50 @@
/* Extension handling below */
var specialcontext = "default";
- Special = Class.create();
- Special.prototype = {
- initialize: function(name, macro, label) {
- this.name = name;
- this.macro = macro;
- this.label = label;
- }
- };
-
- Extension = Class.create();
- Extension.prototype = {
- initialize: function(priority, label, app, appdata) {
- this.priority = priority;
- this.label = label;
- this.app = app;
- this.appdata = appdata;
- }
- }
-
- specials = new Array;
- specials.push(
- new Special("VoiceMailMain", null, "Check Voicemail"),
- new Special("MeetMe", null, "Conference Bridge"),
- new Special("Queue", null, "Call Queue")
- );
-
function app2label(app) {
- var appo;
- if ((appo = findapp(app)))
- return appo.label;
+ var apps = {}
+ apps["VoiceMailMain"] = "Check Voicemail";
+ apps["MeetMe"] = "Conference Bridge";
+ apps["Queue"] = "Call Queue";
+
+ if( apps[app] )return apps[app];
return "Custom";
};
-
- function findapp(app) {
- for (x=0;x<specials.length;x++) {
- if (specials[x].name.toLowerCase() == app.toLowerCase())
- return specials[x];
- }
- return null;
- }
-
+
function format_extension(box, t, x, multipriority) {
- var tmp, lbl;
- var exten, app, rest, args, label, priority;
- if ((t.names[x] != 'exten'))
+ var priority, exten, app, args, label ;
+
+ if ( t.names[x] != 'exten' )
return null;
- tmp = t.fields[x].split(',');
- priority = tmp[1];
-
- // if it is a Voicemenu alias .. return "extension -- Voicemenu"
- if ( tmp[2].match("Goto") ){
-
- if( tmp[2].match("voicemenu-custom-") ) { lbl = "Voice Menu"; }
- if( tmp[2].match("ringroups-custom") ) { lbl = "Ring Group"; }
-
- t.subfields[x]['context'] = t.name;
- t.subfields[x]['name'] = tmp[0];
- t.subfields[x]['app'] = "Goto";
- t.subfields[x]['label'] = lbl;
- t.subfields[x]['args'] = "";
- t.subfields[x]['priority'] = priority;
-
- box.calcname = tmp[0];
- box.calccontext = t.name;
- box.calcpriority = priority;
- return tmp[0] + " -- " + lbl ;
- }
- //
-
- if (!multipriority && (tmp[1] != '1'))
+ var this_line = t.fields[x];
+
+ priority = ASTGUI.parseContextLine.getPriority(this_line);
+ exten = ASTGUI.parseContextLine.getExten(this_line);
+ app = ASTGUI.parseContextLine.getApp(this_line);
+ args = ASTGUI.parseContextLine.getArgs(this_line);
+ label = app2label(app);
+
+ if (!multipriority && ( priority != '1'))
return null;
- exten = tmp[0];
- tmp.splice(0,2);
- rest = tmp.join(',');
- tmp = rest.split('(');
- if (!tmp[0])
- return null;
- app = tmp[0];
- label = app2label(app);
- tmp.splice(0,1);
- args = tmp.join('(');
-
- tmp = args.split(')');
- if ((tmp.length > 1) && (!tmp[tmp.length-1].length))
- tmp.splice(tmp.length-1, 1);
- args = tmp.join(')');
-
+
t.subfields[x]['context'] = t.name;
t.subfields[x]['name'] = exten;
t.subfields[x]['app'] = app;
t.subfields[x]['label'] = label;
t.subfields[x]['args'] = args;
t.subfields[x]['priority'] = priority;
-
+
+ if( app.toLowerCase() == "goto" && args.match("voicemenu-custom-") ){
+ label = "Voice Menu";
+ t.subfields[x]['label'] = label;
+ t.subfields[x]['args'] = "";
+ }
+ if( app.toLowerCase() == "goto" && args.match("ringroups-custom") ){
+ label = "Ring Group";
+ t.subfields[x]['label'] = label;
+ t.subfields[x]['args'] = "";
+ }
+
if (priority == 'n') {
if ((box.calcname == exten) && (box.calccontext == t.name))
box.calcpriority++;
@@ -1914,11 +1955,13 @@
}else if(priority != 's'){
box.calcpriority = priority;
}
+
t.subfields[x]['realpriority'] = box.calcpriority;
box.calcname = exten;
box.calccontext = t.name;
return exten + " -- " + label;
- }
+ }
+
function merge_users(e, u) { // read u and add into e according to sort order
merge_extensions(e, u);
@@ -1933,7 +1976,6 @@
opt_new.value = 'reserved';
//if( navigator.userAgent.indexOf("Firefox") != -1 ){ opt_new.disabled = true; }
opt_new.style.color = "#ABABAB";
-
// Now decide where to add in u, and add it to u
var add = 0;
for ( var g=0; g < u.options.length ; g++) {
@@ -1947,4 +1989,3 @@
}
}
-
Modified: trunk/config/setup/1.html
URL: http://svn.digium.com/view/asterisk-gui/trunk/config/setup/1.html?view=diff&rev=1264&r1=1263&r2=1264
==============================================================================
--- trunk/config/setup/1.html (original)
+++ trunk/config/setup/1.html Fri Jul 27 09:54:09 2007
@@ -29,7 +29,6 @@
<SCRIPT>
var rawman_url;
-var zapcallbacks = new Object;
var asterisk_guitools = "asterisk_guitools";
var cats = new Array();
@@ -39,6 +38,7 @@
parent.$('next').disabled = true;
parent.$('back').disabled = true;
rawman_url = parent.rawman_url ;
+ asterisk_rawmanPath = parent.rawman_url ;
ping();
}
@@ -144,32 +144,32 @@
"Action-000011=append&Cat-000011=" + asterisk_guitools + "&Var-000011=exten&Value-000011=" +
encodeURI( 'play_file,n,Hangup' ) + "&" +
- "Action-000012=append&Cat-000012=" + asterisk_guitools + "&Var-000012=hasbeensetup&Value-000012=" + 'N';
+ "Action-000012=append&Cat-000012=" + asterisk_guitools + "&Var-000012=hasbeensetup&Value-000012=" + 'Y';
var tmp = new Ajax.Request(rawman_url, opt);
}
function scan_zapteldevices(){
- parent.astmanEngine.run_tool(asterisk_guiZapscan, onSuccess = function() {
- parent.astmanEngine.config2list("zapscan.conf", _$('zapchan'), new Array(), zapcallbacks);
+ parent.astmanEngine.run_tool(asterisk_guiZapscan, onSuccess=function(){ config2json('zapscan.conf',1,zapscan_conf_loaded); });
+ return;
+}
+
+zapscan_conf_loaded = function(c){
+ var _zapchan = _$('zapchan') ;
+
+ for( var d in c ){
+ if ( c.hasOwnProperty(d) && c[d]['port']) {
+ if( c[d]['port'] == 'fxo' ){
+ parent.fxoports.push(d);
+ ASTGUI.selectbox.append(_zapchan,"Analog(FXS) Port #" + d, d);
+ }
+ if( c[d]['port'] == 'fxs' ){
+ parent.fxsports.push(d);
+ ASTGUI.selectbox.append(_zapchan,"Analog(FXO) Port #" + d, d);
+ }
}
- );
- return;
-}
-
-zapcallbacks.format = function(t) {
- if (t.fieldbyname['port'] == 'fxo'){
- parent.fxoports.push(t.name);
- return "Analog(FXS) Port #" + t.name;
- }
- if (t.fieldbyname['port'] == 'fxs'){
- parent.fxsports.push(t.name);
- return "Analog(FXO) Port #" + t.name;
- }
- return null;
-}
-
-zapcallbacks.loaded = function(){
+ }
+
for(var x=0; x< _$('zapchan').length ; x++){
_$('zapscan_info').innerHTML+= _$('zapchan').options[x].text + "<BR>";
}
@@ -182,9 +182,10 @@
_$('loginform').style.display = "none";
_$('zapinfo').style.display = "";
parent.$('next').disabled = false;
- parent.$('next').onclick = function(){ window.location.href="3.html"; };
+ parent.$('next').onclick = function(){ window.location.href="2.html"; };
_$('menu').style.display = "";
}
+
function showResponse(originalRequest){
_$('status_message').style.display="none";
@@ -274,4 +275,4 @@
</TABLE>
</div>
</BODY>
-</HTML>
+</HTML>
Modified: trunk/config/users.html
URL: http://svn.digium.com/view/asterisk-gui/trunk/config/users.html?view=diff&rev=1264&r1=1263&r2=1264
==============================================================================
--- trunk/config/users.html (original)
+++ trunk/config/users.html Fri Jul 27 09:54:09 2007
@@ -500,7 +500,7 @@
</tr>
<tr>
<td onclick="CODECSETTINGS.show_codecs();" style="cursor: pointer" class="field_text">
- <div style="margin-left: 15px;"><I>Codecs</I>
+ <div style="margin-left: 15px;"><I>Edit Codecs</I>
<div style="margin-left: 15px;"><span id="codecs_text"></span></div>
</div>
</td>
More information about the asterisk-gui-commits
mailing list