Enhanced list kbd accesability via space key, corrected gl_all_accounts_list API
authorJanusz Dobrowolski <janusz@frontaccounting.eu>
Sat, 29 Mar 2008 10:41:14 +0000 (10:41 +0000)
committerJanusz Dobrowolski <janusz@frontaccounting.eu>
Sat, 29 Mar 2008 10:41:14 +0000 (10:41 +0000)
includes/ui/ui_lists.inc
js/inserts.js

index 7c31bd692e85b2b804979a41f8723ab17bb103a0..8d7a6c9959da977ac2278e06eb7325ba2d2bb507 100644 (file)
@@ -1574,12 +1574,12 @@ function gl_account_types_list_row($label, $name, $selected_id, $all_option=fals
 //-----------------------------------------------------------------------------------------------
 
 function gl_all_accounts_list($name, $selected_id, $skip_bank_accounts=false,
-       $show_group=false, $onchange="")
+       $show_group=false, $params="")
 {
        default_focus($name);
        echo "<select name='$name'";
-       if ($onchange != "")
-               echo " onchange='$onchange'";
+       if ($params != "")
+               echo " $params";
        echo ">";
 
        if ($skip_bank_accounts)
@@ -1626,21 +1626,21 @@ function gl_all_accounts_list($name, $selected_id, $skip_bank_accounts=false,
 }
 
 function gl_all_accounts_list_cells($label, $name, $selected_id, $skip_bank_accounts=false,
-       $show_group=false, $onchange="")
+       $show_group=false, $params="")
 {
        if ($label != null)
                echo "<td>$label</td>\n";
        echo "<td>";
-       gl_all_accounts_list($name, $selected_id, $skip_bank_accounts, $show_group, $onchange);
+       gl_all_accounts_list($name, $selected_id, $skip_bank_accounts, $show_group, $params);
        echo "</td>\n";
 }
 
 function gl_all_accounts_list_row($label, $name, $selected_id, $skip_bank_accounts=false,
-       $show_group=false, $onchange="")
+       $show_group=false, $params="")
 {
        echo "<tr>\n";
        gl_all_accounts_list_cells($label, $name, $selected_id, $skip_bank_accounts,
-               $show_group, $onchange);
+               $show_group, $params);
        echo "</tr>\n";
 }
 
index 3b4e09788f6ce1c5ab46c17d62dbf73f9583695c..fd4d933cf5aaa631e873150a27ee3d03993fc11f 100644 (file)
@@ -15,6 +15,21 @@ var inserts = {
                        element.onfocus = function() {
                                document.getElementsByName('_focus')[0].value = element.name;
                        };
+                       element.onkeydown = function(event) { 
+                         if (event.keyCode==32) {
+                          if(this.size==10) {
+                               this.size = 1;
+                          } else {
+                               var sel = this.selectedIndex;
+                               this.size = this.options.length;
+                               if(this.size>10) this.size = 10;
+                               this.selectedIndex = sel;
+                          }
+                         }
+                       };
+                       element.onblur = function(event) { 
+                               this.size = 1;
+                       }
                }
        },
        'input': function(element) {
@@ -49,27 +64,25 @@ var inserts = {
                          }
                        }
                  };
-                 if(element.onblur==undefined) {  // onblur can be set to submit(); here
-                       element.onblur = function() {
+                 element.onblur = function() {
                          var select = document.getElementsByName(this.getAttribute('rel'))[0];
-                         if (this.value != "")
-                               this.value = select.options[select.selectedIndex].value;
-//                                     myForm.$next_name.focus();
-                         return true;
-                       };
-                 }
+                               if (this.value != "")
+                                 this.value = select.options[select.selectedIndex].value;
+                               return true;
+                 };
                }
        },
        'select.combo': function(element) {
                if(element.onchange==undefined) { 
-                         element.onchange = function() {
-                         var input = document.getElementsByName(this.getAttribute('rel'))[0];
-                               input.value = this.options[this.selectedIndex].value;
-//                             myForm.$next_name.focus();
+                         element.onblur = function() {
+                               var box = document.getElementsByName(this.getAttribute('rel'))[0];
+                               val = this.options[this.selectedIndex].value;
+                               box.value = val; 
+                               this.size = 1;
                                return true;
-                         };
+                        }
                }
-       }
+       }       
 
 };