⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 astman.js.svn-base

📁 asterisk-gui asterisk网关接口编程 控制asterisk的接口
💻 SVN-BASE
📖 第 1 页 / 共 5 页
字号:
					t.appendChild(y);					matched++;				}			}			if(matched){ t.style.display = "";}		};			var cleanupDiv = function(){			var y = this;			var sf = function(){				if(y.comboDiv){					var q = y.comboDiv;					q.parentNode.removeChild(q);					delete y.comboDiv;					ASTGUI.events.remove( y, 'blur' , cleanupDiv ) ;					y.blur();				}			};			setTimeout( sf, 300 );		};			this.comboOptions = a.sort();		ASTGUI.events.add( this, 'focus' , creatediv ) ;		ASTGUI.events.add( this, 'keyup' , updateDivAndShow ) ;	}}; // AstGUIfunction gui_feedback(a,b,c){ // a is msg, b is color (optional ), c is display time in milliseconds(optional, default to asterisk_guifbt)	if(!b || b=='default'){		b = "#DA2804"; // dark reddish brown	}	if(b=='blue'){ 		b = "#303BCA"; // dark blue	}else if(b=='green'){		b = "#448156"; // dark green	}	if(!c){c = asterisk_guifbt;}	var _f = top._$('feedback_round');	var _g = top._$('feedback');	_g.style.color = b;	_g.innerHTML = a ;	_f.style.display = '';	top.window.setTimeout( function(){top._$('feedback_round').style.display = "none"; }, c );}function makerequest(c,f,a,b){ 	// c = 'u' for updateconfig, 'g' for getconfig , '' for other custom actions like 'action=logoff' etc 	// f is the filename, a is action string , b is the callback function, make sure that a starts with "&" when c is not ""	var tmp, acs;	if( c == 'u'){		acs = 'action=updateconfig&srcfilename=' + encodeURIComponent(f) + '&dstfilename=' + encodeURIComponent(f) + a ;	}else if(c == 'g'){		acs = 'action=getconfig&filename=' + encodeURIComponent(f) ;	}else{ acs = a; }	var opt = {		method: 'get', parameters: acs, asynchronous: true,		onComplete: function(t){ if(b){ b(t.responseText); } },		onFailure: function(t) { gui_alert("Config Error: " + t.status + ": " + t.statusText); return false; }	};	tmp = new Ajax.Request( asterisk_rawmanPath, opt);}function gui_alert(msg){ 	top.alertframename = "alertiframe";	top.alertmsg = msg ;	top.alertmsgtype = 1 ;	var h,_hs;	if( !top.document.getElementById(top.alertframename)){		h= top.document.createElement("IFRAME");		h.setAttribute("id", top.alertframename );		h.setAttribute("ALLOWTRANSPARENCY", "true");		_hs = h.style ;		_hs.position="absolute";		_hs.left= 0;		_hs.top= 0;		_hs.width= '100%';		_hs.height= '100%';		_hs.zIndex = 9999 ;		h.src = "guialert.html" ;		h.frameBorder="0";		h.scrolling="no";		_hs.filter='progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=90)';		//h.style.MozOpacity = .90;		top.document.body.appendChild(h);	}else{		top.document.getElementById( top.alertframename ).contentWindow.update( );		top.document.getElementById( top.alertframename ).style.display = "";	}}// Douglas Crockford's purge function for IE Memory leaks// http://javascript.crockford.com/memory/leak.html// No details about copyrights or License mentioned - assumed to be in public domainfunction purge(d) {    var a = d.attributes, i, l, n;    if (a) {        l = a.length;        for (i = 0; i < l; i += 1) {            n = a[i].name;            if (typeof d[n] === 'function') {                d[n] = null;            }        }    }    a = d.childNodes;    if (a) {        l = a.length;        for (i = 0; i < l; i += 1) {            purge(d.childNodes[i]);        }    }}function isInt(x) {	var y=parseInt(x);	if (isNaN(y)) return false;	return x==y && x.toString()==y.toString();}function config2json(a, b, c){		// a is filename (string) , b is 0 or 1 , c is callback function	makerequest('g',a,'', function(t){		var response = t.split("\n");		if( response[1].toLowerCase().match("config file not found") ){ c("ERROR: CONFIG FILE NOT FOUND"); }		var f = toJSO(t, b) ;  c(f) ;	});}function toJSO(z, p){	// This function converts z,  the asterisk config file as read using 'action=getconfig' to a JavaScript Object 	// where z is originalRequest.responseText of the getconfig on a asterisk format config file, 	// and p is 0 or 1, 	//	 0 for non unique subfields ( extensions.conf context where there are multiple subfields with same name - -  Ex: 'exten ='   )	//	 1 for unique subfields ( config files where there are no two subfields of a context have same name )	//  if not sure ,  use p = 0 	var a = [ ] ;	var  json_data = "";	var t = z.split("\n");	var f, h, catno, g, catname, j, subfield, v, subfield_a , subfield_b; 	for(var r=0; r < t.length ; r++){		f = t[r].split("-") ;		h = f[0].toLowerCase();		catno = parseInt( f[1] ,10 );		if( h == "category" ){			g = t[r].indexOf(":") ; 			catname = t[r].substr(g+1) ; // category 			catname = catname.replace(/^\s*|\s*$/g,'') ; // trim 			if(!a[catname]){ // contexts could be spread at different places in the config file				if(!p){					a[catname] = [];				}else{					a[catname] = {};				}			}		}else if ( h == "line" ){			j = t[r].indexOf(":") ;			subfield = t[r].substr(j+1) ; // subfield			subfield = subfield.replace(/^\s*|\s*$/g,'') ; // trim 			if(!p){				a[catname].push(subfield);			}else{				v = subfield.indexOf("=");				subfield_a = subfield.substring(0,v);//subfield variable				subfield_b =  subfield.substr(v+1) ;//subfield variable value				a[catname][subfield_a] = subfield_b;			}		}	}	return a ;}function setWindowTitle(a){	top.document.title = asterisk_guiappname + " -- " + a ;}function check_patternonfields(fields){	// for checking validity of field contents before form submitting	var x; 	for (var i=0; i < fields.length; i++){		x = document.getElementById(fields[i]);		if( x.getAttribute('pattern') && !check_pattern(x.getAttribute('pattern') , x.value)   ){			gui_alert("Invalid Characters in "+ fields[i]);			x.focus();			return false;		}	}	return true;}function showdiv_statusmessage(){        var h= document.createElement("div");	h.setAttribute("id","status_message");	var _hs = h.style;	_hs.display="none";	_hs.position="absolute";	_hs.left= 170;	_hs.top= 190;	_hs.width= 350;	_hs.height= 115;	_hs.backgroundColor= "#F4EFE5";	_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>&nbsp;&nbsp;<div id=message_text></div></TD></TR></TABLE>';	document.body.appendChild(h);}function  InArray(search_array, searchstring ){	if(search_array.length){ 		for(i=0; i < search_array.length; i++ ){			if( search_array[i] === searchstring )return true;		}	}	return false;}function objcopy(orig) {	var copy = {};	for (var i in orig) {		if (typeof orig[i] == 'object') {			copy[i] = objcopy(orig[i]);		} else {			copy[i] = orig[i];		}	}	return copy;}function do_compare(box, a, b){	var ret;	if (box.callbacks.compare) {		return box.callbacks.compare(box, a,b);	} else if (a.innerHTML < b.innerHTML)		return true;	return false;}function insert_option(box, res, value, core_name){	var z;	if (res) {		var opt_new = box.ownerDocument.createElement('option');		opt_new.text = res  ;		opt_new.value = value ;		opt_new.core_name = core_name;		// Now decide where to add in box, and add it to box		var add = 0;		for ( var g=0; g < box.options.length  ; g++) {			if(	opt_new.text < box.options[g].text  ){ // add before this element in box				add = 1;				ASTGUI.selectbox.insertOption_before(box,opt_new, g);			}		}		if ( add ==0 ){ ASTGUI.selectbox.append_option(box,opt_new);}	}}function reformat_option(box, index){	var v, tmp, res;	var cfg = box.stored_config;	v = box.options[index].value;	tmp = v.split(']');	res = ( tmp.length > 1 ) ? box.callbacks.format(cfg.catbyname[tmp[0]], tmp[1]) : box.callbacks.format(cfg.catbyname[v]) ;	if (res){ box.options[index].innerHTML = res;}}function update_option(box, index){	var v, tmp, res;	var cfg = box.stored_config;	v = box.options[index].value;	tmp = v.split(']');	box.remove(index);	if (tmp.length > 1) {		res = box.callbacks.format(cfg.catbyname[tmp[0]], tmp[1]);		insert_option(box, res, tmp[0] + "]" + tmp[1], cfg.catbyname[tmp[0]].subfields[tmp[1]].name); 	} else {		res = box.callbacks.format(cfg.catbyname[v]);		insert_option(box, res, cfg.catbyname[v].name, cfg.categories[v].name);	}}function update_box(box) {	var x,y,z;	var res;	var oldselect = box.value;	cfg = box.stored_config;	while (box.options.length)		box.remove(0);	for (x=0;x<cfg.catcnt;x++) {		if (box.callbacks.eachline) {			if (box.callbacks.includecats) {				res = box.callbacks.format(cfg.categories[x]);				insert_option(box,res,cfg.categories[x].name,cfg.categories[x].name);			}			for (y=0;cfg.categories[x].names[y];y++) {				cfg.categories[x].subfields[y] = {};				res = box.callbacks.format(cfg.categories[x], y);				insert_option(box,res,cfg.categories[x].name + "]" + y,cfg.categories[x].subfields[y]['name']);			}		} else {			res = box.callbacks.format(cfg.categories[x]);			insert_option(box,res,cfg.categories[x].name,cfg.categories[x].name);		}	}	box.oldselect = -1;	box.selectedIndex = -1;	box.value = null;	for (x=0;x<box.options.length;x++) {		if (box.options[x].value == oldselect)			box.selectedIndex = x;	}	select_item(box);}function select_item(box, errmsg) {	var category;	var tmp;	if (!errmsg)		errmsg = "Discard changes?";	if ((box.widgets['save'] && !box.widgets['save'].disabled)) {		if (!confirm(errmsg)) {			box.selectedIndex = box.oldselect;			return false;		}	}	tmp = box.value.split(']');	if (box.oldselect && (box.oldselect > -1)) {		if ((tmp.length > 1) && (!box.stored_config.catbyname[tmp[0]].subfields[tmp[1]].name)) {			box.remove(box.oldselect);			box.oldselect = -1;			box.stored_config.catbyname[tmp[0]].subfields.splice(tmp[1], 1);			box.stored_config.catbyname[tmp[0]].names.splice(tmp[1], 1);			try{			box.stored_config.catbyname[tmp[0]].values.splice(tmp[1], 1);			}			catch(err){						}		} else if (!box.options[box.oldselect].value) {			box.remove(box.oldselect);			box.oldselect = -1;			box.stored_config.catbyname[""] = null;			box.stored_config.categories[--box.stored_config.catcnt] = null;		} else if (box.options[box.oldselect].text == "New Entry") {			box.remove(box.oldselect);			box.oldselect = -1;		}	}	if (tmp.length > 1) {		category = box.stored_config.catbyname[tmp[0]].subfields[tmp[1]];	} else {		category = box.stored_config.catbyname[box.value];	}	box.engine.cat2fields(box.widgets, category);	if (box.widgets['delete']) {		if (category)			box.widgets['delete'].disabled = false;		else			box.widgets['delete'].disabled = true;	}	box.oldselect = box.selectedIndex;	if (box.widgets['new'])		box.widgets['new'].disabled = false;	if (box.widgets['newitem'])		box.widgets['newitem'].disabled = false;	if (box.callbacks.postselect)		box.callbacks.postselect(box, box.value);	return true;}function cancel_item(box) {	var tmp = box.options[box.selectedIndex].value.split(']');	if (tmp.length > 1) {		if (box.stored_config.catbyname[tmp[0]].subfields[tmp[1]].name.length < 1) {			if (select_item(box,"Discard new entry?")){				gui_feedback("New Entry cancelled!",'default') ;				box.selectedIndex = -1;			}		} else {			if (select_item(box))				gui_feedback("Changes cancelled!",'default') ;		}	} else {		if (box.options[box.selectedIndex].value == "") {			if (select_item(box,"Discard new entry?")){				gui_feedback("New Entry cancelled!",'default') ;				//box.selectedIndex = -1;				if (box.callbacks.cancelnewcategory) 					box.callbacks.cancelnewcategory();			}		} else {			if (select_item(box)) {				gui_feedback("Changes cancelled!",'default') ; 				if (box.callbacks.cancelchanges) 					box.callbacks.cancelchanges();			}		}	}}function first_free_exten(box, start) {	var x = start;	var y;	for (;;) {		for (y=0;y<box.options.length;y++) {			if (box.options[y].core_name == x)				break;		}		if (y >= box.options.length)			break;		x++;	}	return x;}function action_issuccess(responseText) {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -