X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=plugins%2Fpreview_pane%2Ffunctions.php;h=acc02c72b47e64b55968f550497cf994cffd5d1f;hb=3d708401d7b7118bcfb1225a47d5fd2646f9d670;hp=824c9fd19f9d26486e1724f58f13c3e325f140ea;hpb=505e00aad983adab70d4b001f450064cbda37b86;p=squirrelmail.git
diff --git a/plugins/preview_pane/functions.php b/plugins/preview_pane/functions.php
index 824c9fd1..acc02c72 100644
--- a/plugins/preview_pane/functions.php
+++ b/plugins/preview_pane/functions.php
@@ -27,6 +27,7 @@ function preview_pane_show_options_do()
$previewPane_vertical_split = getPref($data_dir, $username, 'previewPane_vertical_split', 0);
$previewPane_size = getPref($data_dir, $username, 'previewPane_size', 300);
$pp_refresh_message_list = getPref($data_dir, $username, 'pp_refresh_message_list', 1);
+ $previewPane_autohide = getPref($data_dir, $username, 'previewPane_autohide', 0);
global $optpage_data;
@@ -57,6 +58,13 @@ function preview_pane_show_options_do()
'caption' => _("Always Refresh Message List
When Using Preview Pane"),
'type' => SMOPT_TYPE_BOOLEAN,
'initial_value' => $pp_refresh_message_list,
+ 'refresh' => SMOPT_REFRESH_NONE,
+ );
+ $optpage_data['vals'][1][] = array(
+ 'name' => 'previewPane_autohide',
+ 'caption' => _("Automatically Hide Preview Pane
When Not Reading Messages"),
+ 'type' => SMOPT_TYPE_BOOLEAN,
+ 'initial_value' => $previewPane_autohide,
'refresh' => SMOPT_REFRESH_ALL,
);
@@ -72,11 +80,53 @@ function preview_pane_show_options_do()
*/
function show_preview_pane()
{
+ global $data_dir, $username;
$use_previewPane = getPref($data_dir, $username, 'use_previewPane', 0);
return (checkForJavascript() && $use_previewPane);
}
+/**
+ * Adds preview pane open/close (and clear) buttons next to
+ * "provider link"
+ *
+ */
+function preview_pane_open_close_buttons_do()
+{
+
+ if (!show_preview_pane()) return;
+
+ global $data_dir, $username, $base_uri, $oTemplate;
+ $previewPane_vertical_split = getPref($data_dir, $username, 'previewPane_vertical_split', 0);
+ if ($previewPane_vertical_split)
+ {
+ $orientation = 'cols';
+ $up_arrow = '←';
+ $down_arrow = '→';
+ }
+ else
+ {
+ $orientation = 'rows';
+ $up_arrow = '↑';
+ $down_arrow = '↓';
+ }
+
+
+ $previewPane_size = getPref($data_dir, $username, 'previewPane_size', 300);
+
+ $oTemplate->assign('previewPane_size', $previewPane_size);
+ $oTemplate->assign('base_uri', $base_uri);
+ $oTemplate->assign('orientation', $orientation);
+ $oTemplate->assign('down_arrow', $down_arrow);
+ $oTemplate->assign('up_arrow', $up_arrow);
+
+ $output = $oTemplate->fetch('plugins/preview_pane/collapse_buttons.tpl');
+
+ return array('provider_link_before' => $output);
+
+}
+
+
/**
* Construct button that clears out any preview pane
* contents and inserts JavaScript function used by
@@ -89,10 +139,15 @@ function preview_pane_message_list_do()
if (!checkForJavascript()) return;
+ // globalize $pp_refresh_top, $pp_forceTopURL and $pp_noPageHeader to synch
+ // with other plugins (sent_confirmation, for example)
+ //
global $plugins, $archive_mail_button_has_been_printed,
- $username, $data_dir, $PHP_SELF, $base_uri;
+ $username, $data_dir, $PHP_SELF, $base_uri, $pp_refresh_top,
+ $pp_forceTopURL, $pp_noPageHeader;
+ sqgetGlobalVar('pp_refresh_top', $pp_refresh_top, SQ_GET);
$output = '';
$use_previewPane = getPref($data_dir, $username, 'use_previewPane', 0);
@@ -100,30 +155,54 @@ function preview_pane_message_list_do()
// add refresh function called from code built in function
// preview_pane_change_message_target_do()
//
- if ($use_previewPane == 1
- && getPref($data_dir, $username, 'pp_refresh_message_list', 1) == 1)
+ if ($use_previewPane == 1)
+// Bah, let's put this in anyway (even when the "always refresh thing is off),
+// in case someone else wants to use it
+// && getPref($data_dir, $username, 'pp_refresh_message_list', 1) == 1)
{
// sqgetGlobalVar('REQUEST_URI', $request_uri, SQ_SERVER);
$request_uri = $PHP_SELF;
- $output .= "\n";
+ $output .= "\n";
}
if ($use_previewPane == 1)
{
- $output .= ''
+ // why isn't this already available?
+ include_once(SM_PATH . 'functions/forms.php');
+
+ $output .= addButton(_("Clear Preview"), 'clear_preview',
+ array('onclick' => 'parent.bottom.document.location=\''
+ . $base_uri . 'plugins/preview_pane/empty_frame.php\'; '))
+
// don't let message list load into preview pane at all
//
- . "\n\n";
@@ -139,7 +218,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;
@@ -152,10 +231,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); ';
}