ソースを参照

The auto focus module has been a little bit improved in order
to be more flexible.

philippe_mingo 23 年 前
コミット
1cfb10cd4b
2 ファイル変更51 行追加5 行削除
  1. 48 2
      functions/page_header.php
  2. 3 3
      src/compose.php

+ 48 - 2
functions/page_header.php

@@ -41,10 +41,56 @@ function displayInternalLink($path, $text, $target='') {
 }
 
 function displayPageHeader($color, $mailbox) {
-    global $delimiter, $hide_sm_attributions;
+
+    global $delimiter, $hide_sm_attributions, $base_uri, $PHP_SELF;
+
     displayHtmlHeader ();
 
-    echo "<BODY TEXT=\"$color[8]\" BGCOLOR=\"$color[4]\" LINK=\"$color[7]\" VLINK=\"$color[7]\" ALINK=\"$color[7]\" onLoad='if ( ( document.forms.length > 0 ) && ( document.forms[0].elements[0].type == \"text\" ) ) { document.forms[0].elements[0].focus(); }'>\n\n";
+    $module = substr( $PHP_SELF, ( strlen( $PHP_SELF ) - strlen( $base_uri ) ) * -1 );
+
+    /*
+        Locate the first displayable form element
+    */
+    switch ( $module ) {
+    case 'src/search.php':
+        $pos = getPref($data_dir, $username, 'search_pos', 0 ) - 1;
+        $onload = "onLoad=\"document.forms[$pos].elements[2].focus();\"";
+        break;
+    default:
+        echo '
+<script language="JavaScript">
+<!--
+function checkForm() {
+
+    var f = document.forms.length;
+    var i = 0;
+    var pos = -1;
+    while( pos == -1 && i < f ) {
+        var e = document.forms[i].elements.length;
+        var j = 0;
+        while( pos == -1 && j < e ) {
+            if ( document.forms[i].elements[j].type == \'text\' ) {
+                pos = j;
+            }
+            j++;
+        }
+        i++;
+    }
+    if( pos >= 0 ) {
+        // document.write( "Si tio" );
+        document.forms[i-1].elements[pos].focus();
+    }
+    
+}
+-->
+</script>
+        ';
+        $onload = "onLoad=\"checkForm();\"";
+        break;   
+
+    }
+
+    echo "<BODY TEXT=\"$color[8]\" BGCOLOR=\"$color[4]\" LINK=\"$color[7]\" VLINK=\"$color[7]\" ALINK=\"$color[7]\" $onload>\n\n";
 
     /** Here is the header and wrapping table **/
     $shortBoxName = readShortMailboxName($mailbox, $delimiter);

+ 3 - 3
src/compose.php

@@ -35,7 +35,7 @@ if (!isset($mailbox) || $mailbox == '' || ($mailbox == 'None')) {
 }
 
 if (isset($draft)) {
-    require_once ('../src/draft_actions.php');
+    include_once ('../src/draft_actions.php');
     if (!saveMessageAsDraft($send_to, $send_to_cc, $send_to_bcc, $subject, $body, $reply_id)) {
         showInputForm();
         exit();
@@ -454,8 +454,8 @@ function showInputForm () {
         showComposeButtonRow();
     }
 
-    $idents = getPref($data_dir, $username, 'identities');
-    if ($idents != '' && $idents > 1) {
+    $idents = getPref($data_dir, $username, 'identities', 0);
+    if ($idents > 1) {
         echo '   <TR>' . "\n" .
              '      <TD BGCOLOR="' . $color[4] . '" WIDTH="10%" ALIGN=RIGHT>' .
              "\n" .