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); '; }