From: Rob S. <rjs...@an...> - 2003-09-23 21:47:34
|
There appears to be a problem in the handling of $compose_new_win with respect to javascript in the current CVS (SM-1_4-STABLE). It seems altogether too easy to wind up with a situation where the code for comp_in_new() is not supplied but compose_new_window is set to 1. Really, if we don't have javascript, we shouldn't be running the compose_in_new code (or we should be doing that a different way -- like using TARGET=_BLANK instead of the onclick event or something) I note that this is fixed in HEAD. Any chance of this being ported back into STABLE? There is also an issue with the fact that you can change the Javascript setting, but they don't take effect until the next time redirect.php is hit. This appears to be the case because javascript_on is not generated on every page hit, but is instead generated on hits to redirect.php and then loaded from preferences later. It doesn't look like the computation to generate it on every page hit is that expensive, so moving it into load_prefs instead of the getPref call seems like the right thing to do. (well, ok, maybe there is a better include file than load_prefs.php) I'd like to propose the following to handle the javascript detection issue: Index: load_prefs.php =================================================================== RCS file: /cvsroot/squirrelmail/squirrelmail/include/load_prefs.php,v retrieving revision 1.12.2.3 diff -u -r1.12.2.3 load_prefs.php --- load_prefs.php 21 Aug 2003 10:22:09 -0000 1.12.2.3 +++ load_prefs.php 23 Sep 2003 21:45:09 -0000 @@ -249,10 +249,22 @@ $sort_by_ref = getPref($data_dir, $username, 'sort_by_ref', 1); /* Load the javascript settings. */ +sqGetGlobalVar('js_autodetect_results', $js_autodetect_results); $javascript_setting = getPref($data_dir, $username, 'javascript_setting', SMPREF_JS_AUTODETECT); -$javascript_on = getPref($data_dir, $username, 'javascript_on', SMPREF_ON); - +$js_autodetect_results = (isset($js_autodetect_results) ? + $js_autodetect_results : SMPREF_JS_OFF); +/* See if it's set to "Always on" */ +$javascript_on = SMPREF_JS_ON; +if ($javascript_setting != SMPREF_JS_ON){ + if ($javascript_setting == SMPREF_JS_AUTODETECT) { + if ($js_autodetect_results == SMPREF_JS_OFF) { + $javascript_on = SMPREF_JS_OFF; + } + } else { + $javascript_on = SMPREF_JS_OFF; + } +} Index: redirect.php =================================================================== RCS file: /cvsroot/squirrelmail/squirrelmail/src/redirect.php,v retrieving revision 1.76 diff -u -r1.76 redirect.php --- redirect.php 21 Aug 2003 09:40:53 -0000 1.76 +++ redirect.php 23 Sep 2003 21:36:08 -0000 @@ -45,7 +45,6 @@ /* get globals we me need */ sqGetGlobalVar('login_username', $login_username); sqGetGlobalVar('secretkey', $secretkey); -sqGetGlobalVar('js_autodetect_results', $js_autodetect_results); if(!sqGetGlobalVar('squirrelmail_language', $squirrelmail_language) || $squirrelmail_language == '') { $squirrelmail_language = $squirrelmail_default_language; } @@ -117,25 +116,6 @@ !isset($attachment_common_types_parsed[$http_accept]) ) { attachment_common_parse($http_accept, $debug); } - -/* Complete autodetection of Javascript. */ -$javascript_setting = getPref - ($data_dir, $username, 'javascript_setting', SMPREF_JS_AUTODETECT); -$js_autodetect_results = (isset($js_autodetect_results) ? - $js_autodetect_results : SMPREF_JS_OFF); -/* See if it's set to "Always on" */ -$js_pref = SMPREF_JS_ON; -if ($javascript_setting != SMPREF_JS_ON){ - if ($javascript_setting == SMPREF_JS_AUTODETECT) { - if ($js_autodetect_results == SMPREF_JS_OFF) { - $js_pref = SMPREF_JS_OFF; - } - } else { - $js_pref = SMPREF_JS_OFF; - } -} -/* Update the prefs */ -setPref($data_dir, $username, 'javascript_on', $js_pref); /* Compute the URL to forward the user to. */ $redirect_url = $location . '/webmail.php'; ----- Opinions? Things I might horribly break? Other ideas? -Rob -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Rob Siemborski | Andrew Systems Group * Research Systems Programmer PGP:0x5CE32FCC | Cyert Hall 207 * rj...@an... * 412.268.7456 -----BEGIN GEEK CODE BLOCK---- Version: 3.12 GCS/IT/CM/PA d- s+: a-- C++++$ ULS++++$ P+++$ L+++(++++) E W+ N o? K- w O- M-- V-- PS+ PE++ Y+ PGP+ t+@ 5+++ R@ tv-@ b+ DI+++ G e h r- y? ------END GEEK CODE BLOCK----- |