bkruse: branch 1.4 r1384 - /branches/1.4/config/scripts/astman.js
SVN commits to the Asterisk-GUI project
asterisk-gui-commits at lists.digium.com
Fri Aug 17 16:47:01 CDT 2007
Author: bkruse
Date: Fri Aug 17 16:47:00 2007
New Revision: 1384
URL: http://svn.digium.com/view/asterisk-gui?view=rev&rev=1384
Log:
Added astman function combo_box, used in the sx00i
branch and menus.html. Written by pari, I just copied
it into the public branches.
Modified:
branches/1.4/config/scripts/astman.js
Modified: branches/1.4/config/scripts/astman.js
URL: http://svn.digium.com/view/asterisk-gui/branches/1.4/config/scripts/astman.js?view=diff&rev=1384&r1=1383&r2=1384
==============================================================================
--- branches/1.4/config/scripts/astman.js (original)
+++ branches/1.4/config/scripts/astman.js Fri Aug 17 16:47:00 2007
@@ -557,6 +557,95 @@
'<TR><TD><img src="/asterisk/static/config/images/loading.gif"></TD>' +
'<TD valign=middle align=center> <div id=message_text></div></TD></TR></TABLE>';
document.body.appendChild(h);
+}
+
+function combo_box(a, b, c ){
+ var combo_text = document.getElementById(a);
+ var combo_selectdiv = document.getElementById(b);
+ var combo_selectbox = document.getElementById(c);
+ var TAB = 9;
+ var ENTER = 13;
+ var ESC = 27;
+ var KEYUP = 38;
+ var KEYDN = 40;
+ var BKSPACE = 8;
+
+ function xyz(event){
+ if( event.keyCode == ENTER || event.keyCode == ESC || event.keyCode == TAB){
+ combo_selectdiv.style.display = "none";
+ return false;
+ }else if( event.keyCode == KEYDN || event.keyCode == KEYUP ){
+ combo_selectbox.focus();
+ return false;
+ }else if( event.keyCode == BKSPACE && !combo_text.value.length ){
+ combo_selectdiv.style.display = "none";
+ return false;
+ }else{
+ combo_selectdiv.style.display = "";
+ return true;
+ }
+ }
+
+ function abcd(event){
+ if( event.keyCode == ENTER || event.keyCode == ESC || event.keyCode == TAB){
+ return false;
+ }
+ for (var i=0; i < combo_selectbox.options.length; i++){
+ if(combo_selectbox.options[i].value.toLowerCase().match(combo_text.value.toLowerCase()) ){
+ combo_selectbox.selectedIndex = i;
+ return true;
+ }
+ }
+ combo_selectdiv.style.display = "none";
+ }
+
+ function efgh(event) {
+ if( event.keyCode == ENTER ){
+ combo_text.value = combo_selectbox.value;
+ combo_text.focus();
+ combo_selectdiv.style.display = "none";
+ return false;
+ }else if( event.keyCode == ESC ){
+ combo_text.focus();
+ combo_selectdiv.style.display = "none";
+ }else{
+ return true;
+ }
+ }
+ function ijkl(event) {
+ combo_text.value = combo_selectbox.value;
+ combo_text.focus();
+ combo_selectdiv.style.display = "none";
+ }
+
+ combo_selectdiv.style.position ="absolute";
+ combo_selectdiv.style.top = 0;
+ combo_selectdiv.style.left = 0;
+// combo_selectdiv.style.z-index = 10000;
+ combo_selectdiv.style.display = "none";
+
+ ASTGUI.events.add( combo_text , 'keychange' , combobox_activate ) ;
+ ASTGUI.events.add( combo_text , 'focus' , combobox_activate ) ;
+ ASTGUI.events.add( combo_text , 'focusout' , function(){ combo_selectdiv.style.display ='none'; } ) ;
+ ASTGUI.events.add( combo_text , 'keypress' , xyz) ;
+ ASTGUI.events.add( combo_text , 'keyup' , abcd ) ;
+ ASTGUI.events.add( combo_selectbox, 'keypress' , efgh ) ;
+ ASTGUI.events.add( combo_selectbox, 'click' , ijkl ) ;
+
+ function combobox_activate(){
+ var tmp_left = combo_text.offsetLeft;
+ var tmp_top = combo_text.offsetTop + combo_text.offsetHeight;
+ var tmp_parent = combo_text;
+ while(tmp_parent.offsetParent != document.body){
+ tmp_parent = tmp_parent.offsetParent;
+ tmp_left += tmp_parent.offsetLeft;
+ tmp_top += tmp_parent.offsetTop;
+ }
+ combo_selectdiv.style.left = tmp_left;
+ combo_selectdiv.style.top = tmp_top ;
+ combo_selectdiv.style.width = combo_text.offsetWidth;
+ combo_selectdiv.style.display = "";
+ }
}
function InArray(search_array, searchstring ){
More information about the asterisk-gui-commits
mailing list