Update preview pane functionality so it only refreshes message list when viewing...
authorpdontthink <pdontthink@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Fri, 18 May 2007 11:10:12 +0000 (11:10 +0000)
committerpdontthink <pdontthink@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Fri, 18 May 2007 11:10:12 +0000 (11:10 +0000)
git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@12416 7612ce4b-ef26-0410-bec9-ea0150e637f0

plugins/preview_pane/README
plugins/preview_pane/functions.php
plugins/preview_pane/setup.php
plugins/preview_pane/templates/default_advanced/collapse_buttons.tpl
templates/default_advanced/page_header.tpl
templates/default_advanced/read_headers.tpl
templates/default_advanced/read_menubar_nav.tpl

index ed8c6f9f45a626746ef13dbf669b348dc7872359..3ce89a3e2da2a58234b93b74bc4011473bec3c16 100644 (file)
@@ -66,10 +66,15 @@ Change Log
      advanced" template set
    * Only works with 1.5.2+
 
-  v1.3  2007/01/19  Paul Lesniewski <paul@squirrelmail.org>
+  v1.3  2007/05/17  Paul Lesniewski <paul@squirrelmail.org>
+   * Added ability to close/open the preview pane using buttons below
+     the "Sign Out" link (Thanks to Edwin Taylor <hagfish@ntlworld.com>)
+   * Added reduced message header functionality (also works even when
+     preview pane is not turned on) (Thanks to Daniel Watts <d@nielwatts.com>)
+   * Added auto-hide functionality (Thanks to Daniel Watts <d@nielwatts.com>)
    * Introduce slight delay refreshing message list so read messages
      actually refresh as having been read
-   * Added 1.4.9 patch; versions between 1.4.3 and 1.4.9 should be
+   * Added 1.4.9 patch; versions between 1.4.3 and 1.4.10 should be
      patch-able with the 1.4.3 patch
    * Added 1.4.9 patch for delete, move, next plugin
    * Added 1.5.1 patch, then removed it  ;-p  1.5.2 supports this
@@ -83,6 +88,8 @@ Change Log
      always 100% reliable.
    * No longer support replacement source files; patches are more than enough
    * Fully compatible with Windows plugin, version 1.7+
+   * Fully compatible with Sent Confirmation plugin, version 1.7+ (upgrade
+     required)
 
   v1.2  2004/06/08  Paul Lesniewski <paul@squirrelmail.org>
    * Added javascript fix so delete link will work when messages are 
index 43e139a30dce394d680dbc6cfe098e1af0ecb65b..2f9ddab367863e6f6cc4164c5aafacd4cc002fc1 100644 (file)
@@ -57,7 +57,7 @@ function preview_pane_show_options_do()
       'caption'       => _("Always Refresh Message List<br />When Using Preview Pane"),
       'type'          => SMOPT_TYPE_BOOLEAN,
       'initial_value' => $pp_refresh_message_list,
-      'refresh'       => SMOPT_REFRESH_ALL,
+      'refresh'       => SMOPT_REFRESH_NONE,
    );
 
 }
@@ -92,13 +92,13 @@ function preview_pane_open_close_buttons_do()
    $previewPane_vertical_split = getPref($data_dir, $username, 'previewPane_vertical_split', 0);
    if ($previewPane_vertical_split)
    {
-      $split = 'cols';
+      $orientation = 'cols';
       $up_arrow = '&larr;';
       $down_arrow = '&rarr;';
    }
    else
    {
-      $split = 'rows';
+      $orientation = 'rows';
       $up_arrow = '&uarr;';
       $down_arrow = '&darr;';
    }
@@ -108,7 +108,7 @@ function preview_pane_open_close_buttons_do()
 
    $oTemplate->assign('previewPane_size', $previewPane_size);
    $oTemplate->assign('base_uri', $base_uri);
-   $oTemplate->assign('split', $split);
+   $oTemplate->assign('orientation', $orientation);
    $oTemplate->assign('down_arrow', $down_arrow);
    $oTemplate->assign('up_arrow', $up_arrow);
 
@@ -154,7 +154,7 @@ function preview_pane_message_list_do()
    {
 //      sqgetGlobalVar('REQUEST_URI', $request_uri, SQ_SERVER);
       $request_uri = $PHP_SELF;
-      $output .= "<script type=\"text/javascript\">\n<!--\n function pp_refresh() { document.location = '$request_uri'; }\n// -->\n</script>\n";
+      $output .= "<script type=\"text/javascript\" language=\"JavaScript\">\n<!--\n function pp_refresh() { document.location = '$request_uri'; }\n// -->\n</script>\n";
    }
 
 
@@ -171,7 +171,7 @@ function preview_pane_message_list_do()
 
       // don't let message list load into preview pane at all
       //
-         . "\n<script language='javascript' type='text/javascript'>\n"
+         . "\n<script language='JavaScript' type='text/javascript'>\n"
          . "<!--\n"
          . "\n"
          . "   if (self.name == 'bottom')\n"
@@ -210,7 +210,7 @@ function preview_pane_message_list_do()
   * (and possibly refresh message list as well)
   *
   */
-function preview_pane_change_message_target_do()
+function preview_pane_change_message_target_do($args)
 {
 
    if (!checkForJavascript()) return;
@@ -223,10 +223,17 @@ function preview_pane_change_message_target_do()
    if (getPref($data_dir, $username, 'use_previewPane', 0) == 1)
    {
       $pp_refresh_message_list = getPref($data_dir, $username, 'pp_refresh_message_list', 1);
+      $aMsg = $args[3];
 
       $target = 'bottom';
-      if ($pp_refresh_message_list)
-// introduce a delay so read messages actually refresh after they are read
+
+
+      // introduce a delay so read messages actually 
+      // refresh after they are read, but only if they
+      // have not already been seen
+      //
+      if ($pp_refresh_message_list && empty($aMsg['FLAGS']['\seen']))
+// old code without refresh delay 
 //         $onclick .= ' onclick="document.location=\'' . $request_uri . '\'; " ';
          $onclick .= ' setTimeout(\'pp_refresh()\', 500); ';
    }
index e0ac59fa91cef1eb34fc2d6df681b458818a7289..4ee0b969ae9e62506f87fc5870c200012a7590a1 100644 (file)
@@ -112,11 +112,11 @@ function preview_pane_message_list()
   * (and possibly refresh message list as well)
   *
   */
-function preview_pane_change_message_target()
+function preview_pane_change_message_target($args)
 {
 
   include_once(SM_PATH . 'plugins/preview_pane/functions.php');
-  preview_pane_change_message_target_do();
+  preview_pane_change_message_target_do($args);
 
 }
 
index 0ac48e8449d832b0d7682db5a1a3aea98e506f64..5fb8237da29ec63f743e04ea99f7c48c679cbe69 100644 (file)
@@ -6,7 +6,7 @@
   * Template for building (un)collapse (and clear) buttons for preview pane.
   *
   * The following variables are available in this template:
-  *    + $split            - Either "cols" or "rows" depending on how the 
+  *    + $orientation      - Either "cols" or "rows" depending on how the 
   *                          preview pane is oriented
   *    + $down_arrow       - The value to be displayed on the collapse button
   *    + $up_arrow         - The value to be displayed on the uncollapse button
 extract($t);
 
 
-?><script type="text/javascript">
+?><script type="text/javascript" language="JavaScript">
 <!--
 
    function set_preview_pane_size(new_size)
    {
       if (document.all)
       {
-         parent.document.all["fs2"].<?php echo $split; ?> = "*, " + new_size;
+         parent.document.all["fs2"].<?php echo $orientation; ?> = "*, " + new_size;
       }
       else if (this.document.getElementById)
       {
-         parent.document.getElementById("fs2").<?php echo $split; ?> = "*, " + new_size;
+         parent.document.getElementById("fs2").<?php echo $orientation; ?> = "*, " + new_size;
       }
    }
 // -->\n</script>
index 70638c1b0aba922d27d7e5d094bf01542e7c27c7..90133816f1b9075f304a23ffad70f459eda40940 100644 (file)
@@ -119,7 +119,7 @@ $help_link          = makeInternalLink ('src/help.php', $help_str);
 </div>
 <br />
 <!-- End Header Navigation Table -->
-<script type="text/javascript">
+<script type="text/javascript" language="JavaScript">
 <!--
    var delayed_page_load_uri = '';
    function delayed_page_load(page_uri)
index d26cf74511b614aab73e0cf49be232c725579255..c38b2a380ce094566977f7bcf305ada579148dea 100644 (file)
@@ -119,3 +119,9 @@ extract($t);
  </tr>
 </table>
 </div>
+<?php
+// do a conditional refresh of message list if needed
+// "pp_rr" = "preview pane read refresh"
+if (sqGetGlobalVar('pp_rr', $pp_rr, SQ_FORM) && $show_preview_pane && $first_time_reading) {
+        echo "<script language=\"JavaScript\" type=\"text/javascript\">\n<!--\nif (self.name == 'bottom') { refresh_message_list(); }\n// -->\n</script>\n";
+}
index ba76161d438bbe5e092a6ca573f2c9c4091c6504..d14e07f5c5bd00a659dca58ed3934023c0f2f1f8 100644 (file)
@@ -70,7 +70,10 @@ if ($show_preview_pane) { ?>
    <script>
    <!--
       function refresh_message_list()
-      { parent.right.delayed_page_load("<?php echo $message_list_href; ?>"); }
+      { 
+          if (typeof(parent.right.delayed_page_load) != 'undefined')
+              parent.right.delayed_page_load("<?php echo $message_list_href; ?>"); 
+      }
    // -->
    </script>
 <?php }
@@ -97,15 +100,19 @@ if ($nav_on_top) {
         echo _("Previous");
     } else {
         ?>
-   <a href="<?php echo $prev_href; ?>"<?php
+   <a href="<?php echo $prev_href; ?><?php
 
 /** if preview pane turned on with "always refresh message list", 
-    refresh message list frame too, but only if we are in the bottom frame! */
+    refresh message list frame too, but only if we are in the bottom frame! 
+    and make sure the refresh is conditional upon the seen flag of the
+    message after it is loaded (see read_headers.tpl) */
 if ($show_preview_pane && $pp_refresh_message_list)
-   echo ' onclick="if (self.name == \'bottom\') { refresh_message_list(); } "';
+   // old code: unconditional refresh
+   //echo ' onclick="if (self.name == \'bottom\') { refresh_message_list(); } "';
+   echo '&amp;pp_rr=1';
 
 
-echo '>' . _("Previous"); ?></a>
+echo '">' . _("Previous"); ?></a>
         <?php
     }
    ?> | 
@@ -122,15 +129,19 @@ echo '>' . _("Previous"); ?></a>
         echo _("Next");
     } else {
         ?>
-   <a href="<?php echo $next_href; ?>"<?php
+   <a href="<?php echo $next_href; ?><?php
 
 /** if preview pane turned on with "always refresh message list", 
-    refresh message list frame too, but only if we are in the bottom frame! */
+    refresh message list frame too, but only if we are in the bottom frame! 
+    and make sure the refresh is conditional upon the seen flag of the
+    message after it is loaded (see read_headers.tpl) */
 if ($show_preview_pane && $pp_refresh_message_list)
-   echo ' onclick="if (self.name == \'bottom\') { refresh_message_list(); } "';
+   // old code: unconditional refresh
+   //echo ' onclick="if (self.name == \'bottom\') { refresh_message_list(); } "';
+   echo '&amp;pp_rr=1';
 
 
-echo '>' . _("Next"); ?></a>
+echo '">' . _("Next"); ?></a>
         <?php
     }
    ?>