Add access keys for folder pane
authorpdontthink <pdontthink@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Thu, 26 Mar 2009 09:52:10 +0000 (09:52 +0000)
committerpdontthink <pdontthink@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Thu, 26 Mar 2009 09:52:10 +0000 (09:52 +0000)
git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@13449 7612ce4b-ef26-0410-bec9-ea0150e637f0

include/load_prefs.php
include/options/accessibility.php
src/left_main.php
templates/default/left_main.tpl
templates/default_advanced/left_main.tpl

index 7016d2b..d23bcf9 100644 (file)
@@ -391,6 +391,11 @@ $accesskey_compose_attach = getPref($data_dir, $username, 'accesskey_compose_att
 $accesskey_compose_delete_attach = getPref($data_dir, $username, 'accesskey_compose_delete_attach', 'l');
 
 
+$accesskey_folders_refresh = getPref($data_dir, $username, 'accesskey_folders_refresh', 'NONE');
+$accesskey_folders_purge_trash = getPref($data_dir, $username, 'accesskey_folders_purge_trash', 'NONE');
+$accesskey_folders_inbox = getPref($data_dir, $username, 'accesskey_folders_inbox', 'i');
+
+
 /**
  * Height of iframe that displays html formated emails
  * @since 1.5.1
index 30a5966..8593d58 100644 (file)
@@ -16,6 +16,8 @@ define('SMOPT_GRP_ACCESSKEYS_MENUBAR', 0);
 define('SMOPT_GRP_ACCESSKEYS_MAILBOX', 1);
 define('SMOPT_GRP_ACCESSKEYS_READ_MESSAGE', 2);
 define('SMOPT_GRP_ACCESSKEYS_COMPOSE', 3);
+define('SMOPT_GRP_ACCESSKEYS_FOLDER_LIST', 4);
+define('SMOPT_GRP_ACCESSKEYS_OPTIONS', 5);
 
 /**
  * This function builds an array with all the information about
@@ -328,6 +330,49 @@ function load_optpage_data_accessibility() {
     );
 
 
+    /*** Load the Access Key Options for the Folder List page into the array ***/
+    $optgrps[SMOPT_GRP_ACCESSKEYS_FOLDER_LIST] = _("Access Keys For Folder List Screen");
+    $optvals[SMOPT_GRP_ACCESSKEYS_FOLDER_LIST] = array();
+
+    $optvals[SMOPT_GRP_ACCESSKEYS_FOLDER_LIST][] = array(
+        'name'    => 'accesskey_folders_refresh',
+        'caption' => _("Refresh/Check Mail"),
+        'type'    => SMOPT_TYPE_STRLIST,
+        'refresh' => SMOPT_REFRESH_NONE,
+        'posvals' => $my_a_to_z,
+    );
+
+    $optvals[SMOPT_GRP_ACCESSKEYS_FOLDER_LIST][] = array(
+        'name'    => 'accesskey_folders_purge_trash',
+        'caption' => _("Purge Trash"),
+        'type'    => SMOPT_TYPE_STRLIST,
+        'refresh' => SMOPT_REFRESH_NONE,
+        'posvals' => $my_a_to_z,
+    );
+
+    $optvals[SMOPT_GRP_ACCESSKEYS_FOLDER_LIST][] = array(
+        'name'    => 'accesskey_folders_inbox',
+        'caption' => _("INBOX"),
+        'type'    => SMOPT_TYPE_STRLIST,
+        'refresh' => SMOPT_REFRESH_NONE,
+        'posvals' => $my_a_to_z,
+    );
+
+
+    /*** Load the Access Key Options for the main Options page into the array ***/
+    $optgrps[SMOPT_GRP_ACCESSKEYS_OPTIONS] = _("Access Keys For Options Screen");
+    $optvals[SMOPT_GRP_ACCESSKEYS_OPTIONS] = array();
+
+//FIXME -- TODO...
+//    $optvals[SMOPT_GRP_ACCESSKEYS_OPTIONS][] = array(
+//        'name'    => 'accesskey_options_XXXXXXXXXXXXXXXXXXXXXXX',
+//        'caption' => _("XXXXXXXXXXXXXXX"),
+//        'type'    => SMOPT_TYPE_STRLIST,
+//        'refresh' => SMOPT_REFRESH_NONE,
+//        'posvals' => $my_a_to_z,
+//    );
+
+
     /* Assemble all this together and return it as our result. */
     $result = array(
         'grps' => $optgrps,
index de00553..a020618 100644 (file)
@@ -205,6 +205,12 @@ $settings['messageRecyclingEnabled'] = $move_to_trash;
 $settings['collapsableFoldersEnabled'] = $collapse_folders==1;
 $oTemplate->assign('settings', $settings);
 
+//access keys
+//
+$oTemplate->assign('accesskey_folders_refresh', $accesskey_folders_refresh);
+$oTemplate->assign('accesskey_folders_purge_trash', $accesskey_folders_purge_trash);
+$oTemplate->assign('accesskey_folders_inbox', $accesskey_folders_inbox);
+
 $oTemplate->display('left_main.tpl');
 
 sqimap_logout($imapConnection);
index 6d9169c..cd2fb92 100644 (file)
@@ -162,12 +162,21 @@ function buildMailboxTree ($box, $settings, $icon_theme_path, $indent_factor=0)
     }
     $pre .= $folder_icon;
 
+    // calculate if access key is needed
+    //
+    if ($box['IsInbox']) {
+        global $accesskey_folders_inbox;
+        $accesskey = $accesskey_folders_inbox;
+    }
+    else $accesskey = '';
+    
     /*
      * The Trash folder should only be displayed if message recycling has
      * been enabled, i.e. when deleted is a message moved to the trash or
      * deleted forever?
      */
     $view_link = '<a href="'.$box['ViewLink']['URL'].'" ' .
+                 ($accesskey == '' ? '' : 'accesskey="' . $accesskey . '" ') .
                  'target="'.$box['ViewLink']['Target'].'" ' .
                  'style="text-decoration:none">';
 
@@ -261,7 +270,7 @@ extract($t);
      <td style="text-align:center">
       <span class="sqm_folderHeader"><?php echo _("Folders"); ?></span><br />
       <span class="sqm_clock"><?php echo $clock; ?></span>
-      <span class="sqm_refreshButton"><small>[<a href="../src/left_main.php" target="left"><?php echo _("Check mail"); ?></a>]</small></span>
+      <span class="sqm_refreshButton"><small>[<a href="../src/left_main.php" <?php if ($accesskey_folders_refresh != 'NONE') echo 'accesskey="' . $accesskey_folders_refresh . '" '; ?>target="left"><?php echo _("Check Mail"); ?></a>]</small></span>
      </td>
     </tr>
    </table>
index 47005ea..69681bd 100644 (file)
@@ -226,11 +226,19 @@ function buildMailboxTree ($box, $settings, $icon_theme_path, $parent_node=-1) {
         }
         
         if ($display_folder) {
+
+            if ($box['IsInbox']) {
+                global $accesskey_folders_inbox;
+                $accesskey = $accesskey_folders_inbox;
+            }
+            else $accesskey = '';
+
             $out .= 'mailboxes.add('.$counter.', '.$parent_node.', ' .
                                        '"'.addslashes($name).'", "'.$url.'", "'.$title.'", ' .
                                        '"'.$target.'", ' .
                                        '"'.getIconPath($icon_theme_path, $img).'", ' .
-                                       '"'.getIconPath($icon_theme_path, $img_open).'"' .
+                                       '"'.getIconPath($icon_theme_path, $img_open).'", ' .
+                                       '"'.$accesskey.'"' .
                                        ');'."\n";
         }
     }
@@ -283,7 +291,7 @@ extract($t);
      <td style="text-align:center">
       <span class="sqm_folderHeader"><?php echo _("Folders"); ?></span><br />
       <span class="sqm_clock"><?php echo $clock; ?></span>
-      <span class="sqm_refreshButton"><small>[<a href="../src/left_main.php" target="left"><?php echo _("Check mail"); ?></a>]</small></span>
+      <span class="sqm_refreshButton"><small>[<a href="../src/left_main.php" <?php if ($accesskey_folders_refresh != 'NONE') echo 'accesskey="' . $accesskey_folders_refresh . '" '; ?>target="left"><?php echo _("Check Mail"); ?></a>]</small></span>
      </td>
     </tr>
    </table>
@@ -291,13 +299,16 @@ extract($t);
  </tr>
 </table>
 <p>
-<a href="javascript:mailboxes.openAll()"><?php echo _("Open all") ?></a>
+<a href="javascript:mailboxes.openAll()"><?php echo _("Open All") ?></a>
 &nbsp;&nbsp;|&nbsp;&nbsp;
-<a href="javascript:mailboxes.closeAll()"><?php echo _("Close all") ?></a>
+<a href="javascript:mailboxes.closeAll()"><?php echo _("Close All") ?></a>
 <?php
 if ($settings['messageRecyclingEnabled']) {
     echo '<br />';
-    echo '<a href="empty_trash.php">' . _("Purge trash") . '</a>';
+    echo '<a href="empty_trash.php"';
+    if ($accesskey_folders_purge_trash != 'NONE')
+        echo ' accesskey="' . $accesskey_folders_purge_trash . '"';
+    echo '>' . _("Purge Trash") . '</a>';
 }
 ?>
 </p>