Changeset 168 in subversion
- Timestamp:
- Mar 20, 2006 5:11:35 PM (7 years ago)
- Location:
- trunk/roundcubemail
- Files:
-
- 8 edited
-
CHANGELOG (modified) (1 diff)
-
UPGRADING (modified) (1 diff)
-
index.php (modified) (3 diffs)
-
program/include/main.inc (modified) (5 diffs)
-
program/js/app.js (modified) (8 diffs)
-
program/lib/imap.inc (modified) (8 diffs)
-
program/steps/mail/func.inc (modified) (6 diffs)
-
program/steps/mail/show.inc (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/roundcubemail/CHANGELOG
r165 r168 1 1 CHANGELOG RoundCube Webmail 2 2 --------------------------- 3 4 2006/03/20 5 ---------- 6 - Fixed hard-coded cols selection for sent folder (Bug #1354586) 7 - Enable some HTML links for use with "open in new window" or "save target" 8 - Check meta-key instead of ctrl on Macs 9 - Ignore double clicks when holding down a modifier key 10 - Fixed reloading of the login page 11 - Fixed typo in compose template (Bug #1446852) 12 - Added compose button to message read step (Request #1433288) 13 - New config parameter for persistent database connections (Bug #1431817) 14 3 15 4 16 2006/03/14 -
trunk/roundcubemail/UPGRADING
r146 r168 102 102 $rcmail_config['db_sequence_message_ids'] = 'message_ids'; 103 103 104 105 form version 0.1-beta 106 ---------------------------------------- 107 - replace index.php 108 - replace all files in folder /program/ 109 - replace all files in folder /skins/default/ 110 - add these lines to /config/db.inc.php 111 $rcmail_config['db_persistent'] = TRUE; 112 113 -
trunk/roundcubemail/index.php
r164 r168 3 3 +-----------------------------------------------------------------------+ 4 4 | RoundCube Webmail IMAP Client | 5 | Version 0.1-200603 14|5 | Version 0.1-20060320 | 6 6 | | 7 7 | Copyright (C) 2005, RoundCube Dev. - Switzerland | … … 41 41 */ 42 42 43 define('RCMAIL_VERSION', '0.1-20060 220');43 define('RCMAIL_VERSION', '0.1-20060320'); 44 44 45 45 46 46 // define global vars 47 $ INSTALL_PATH = dirname($_SERVER['SCRIPT_FILENAME']);47 $CHARSET = 'UTF-8'; 48 48 $OUTPUT_TYPE = 'html'; 49 49 $JS_OBJECT_NAME = 'rcmail'; 50 $CHARSET = 'UTF-8'; 50 $INSTALL_PATH = dirname($_SERVER['SCRIPT_FILENAME']); 51 $MAIN_TASKS = array('mail','settings','addressbook','logout'); 51 52 52 53 if (empty($INSTALL_PATH)) … … 332 333 333 334 335 // parse main template 334 336 // only allow these templates to be included 335 $valid_tasks = array('mail','settings','addressbook'); 336 337 // parse main template 338 if (in_array($_task, $valid_tasks)) 337 if (in_array($_task, $MAIN_TASKS)) 339 338 parse_template($_task); 340 339 -
trunk/roundcubemail/program/include/main.inc
r164 r168 73 73 require_once('include/rcube_'.(empty($CONFIG['db_backend']) ? 'db' : $CONFIG['db_backend']).'.inc'); 74 74 75 $DB = new rcube_db($CONFIG['db_dsnw'], $CONFIG['db_dsnr'] );75 $DB = new rcube_db($CONFIG['db_dsnw'], $CONFIG['db_dsnr'], $CONFIG['db_persistent']); 76 76 $DB->sqlite_initials = $INSTALL_PATH.'SQL/sqlite.initial.sql'; 77 77 $DB->db_connect('w'); … … 1124 1124 if ($object_handlers[$object] && function_exists($object_handlers[$object])) 1125 1125 return call_user_func($object_handlers[$object], $attrib); 1126 1126 1127 else if ($object=='productname') 1128 { 1129 $name = !empty($CONFIG['product_name']) ? $CONFIG['product_name'] : 'RoundCube Webmail'; 1130 return rep_specialchars_output($name, 'html', 'all'); 1131 } 1127 1132 else if ($object=='pagetitle') 1128 1133 { … … 1152 1157 function rcube_button($attrib) 1153 1158 { 1154 global $CONFIG, $OUTPUT, $JS_OBJECT_NAME, $BROWSER ;1159 global $CONFIG, $OUTPUT, $JS_OBJECT_NAME, $BROWSER, $COMM_PATH, $MAIN_TASKS; 1155 1160 static $sa_buttons = array(); 1156 1161 static $s_button_count = 100; … … 1224 1229 // register button in the system 1225 1230 if ($attrib['command']) 1231 { 1226 1232 $OUTPUT->add_script(sprintf("%s.register_button('%s', '%s', '%s', '%s', '%s', '%s');", 1227 1233 $JS_OBJECT_NAME, … … 1232 1238 $attirb['imagesel'] ? $skin_path.$attirb['imagesel'] : $attrib['classsel'], 1233 1239 $attrib['imageover'] ? $skin_path.$attrib['imageover'] : '')); 1240 1241 // make valid href to task buttons 1242 if (in_array($attrib['command'], $MAIN_TASKS)) 1243 $attrib['href'] = ereg_replace('_task=[a-z]+', '_task='.$attrib['command'], $COMM_PATH); 1244 } 1234 1245 1235 1246 // overwrite attributes -
trunk/roundcubemail/program/js/app.js
r162 r168 8 8 | | 9 9 +-----------------------------------------------------------------------+ 10 | Author: Thomas Bruederli <roundcube@gmail.com> | 10 | Authors: Thomas Bruederli <roundcube@gmail.com> | 11 | Charles McNulty <charles@charlesmcnulty.com> | 11 12 +-----------------------------------------------------------------------+ 12 13 … … 232 233 233 234 // disable browser's contextmenus 234 document.oncontextmenu = function(){ return false; }235 // document.oncontextmenu = function(){ return false; } 235 236 236 237 // load body click event … … 249 250 if (this.kepp_alive_interval && this.task=='mail' && this.gui_objects.messagelist) 250 251 this.kepp_alive_int = setInterval(this.ref+'.check_for_recent()', this.kepp_alive_interval); 251 else 252 else if (this.task!='login') 252 253 this.kepp_alive_int = setInterval(this.ref+'.send_keep_alive()', this.kepp_alive_interval); 253 254 }; … … 276 277 var mod_key = this.get_modifier(e); 277 278 var scroll_to = 0; 278 279 279 280 var last_selected_row = this.list_rows[this.last_selected]; 280 281 … … 1090 1091 this.click_row = function(e, id) 1091 1092 { 1093 var mod_key = this.get_modifier(e); 1092 1094 1093 1095 // don't do anything (another action processed before) … … 1099 1101 1100 1102 // unselects currently selected row 1101 if (!this.drag_active && this.in_selection_before==id) { 1102 var mod_key = this.get_modifier(e); 1103 if (!this.drag_active && this.in_selection_before==id) 1103 1104 this.select_row(id,mod_key); 1104 } 1105 1105 1106 this.drag_start = false; 1106 1107 this.in_selection_before = false; 1107 1108 1108 1109 // row was double clicked 1109 if (this.task=='mail' && this.list_rows && this.list_rows[id].clicked )1110 if (this.task=='mail' && this.list_rows && this.list_rows[id].clicked && !mod_key) 1110 1111 { 1111 1112 this.show_message(id); … … 2935 2936 2936 2937 2938 /* deprecated methods 2939 2937 2940 // check if Shift-key is pressed on event 2938 2941 this.check_shiftkey = function(e) … … 2964 2967 return false; 2965 2968 } 2966 2967 2968 // returns modifier key (constants defined at top of file)2969 */ 2970 2971 // returns modifier key (constants defined at top of file) 2969 2972 this.get_modifier = function(e) 2970 2973 { 2971 2974 var opcode = 0; 2972 if (e = e || window.event) 2973 { 2975 e = e || window.event; 2976 2977 if (bw.mac && e) 2978 { 2979 opcode += (e.metaKey && CONTROL_KEY) + (e.shiftKey && SHIFT_KEY); 2980 return opcode; 2981 } 2982 if (e) 2983 { 2974 2984 opcode += (e.ctrlKey && CONTROL_KEY) + (e.shiftKey && SHIFT_KEY); 2975 return opcode;2976 }2985 return opcode; 2986 } 2977 2987 if (e.cancelBubble) 2978 {2988 { 2979 2989 e.cancelBubble = true; 2980 2990 e.returnValue = false; 2981 }2991 } 2982 2992 else if (e.preventDefault) 2983 2993 e.preventDefault(); -
trunk/roundcubemail/program/lib/imap.inc
r140 r168 40 40 - Leave messageID unchanged in iil_C_FetchHeaders() 41 41 - Avoid stripslahes in iil_Connect() 42 - Removed <br> from error messages (better for logging) 42 43 - Removed some debuggers (echo ...) 43 44 … … 210 211 return $conn->fp; 211 212 }else{ 212 $conn->error .= 'Authentication f ailed (AUTH): <br>"'.htmlspecialchars($line)."\"";213 $conn->error .= 'Authentication for '.$user.' failed (AUTH): "'.htmlspecialchars($line)."\""; 213 214 $conn->errorNum = -2; 214 215 return false; … … 231 232 $result=false; 232 233 fclose($conn->fp); 233 $conn->error .= 'Authentication f ailed (LOGIN):<br>"'.htmlspecialchars($line)."\"";234 $conn->error .= 'Authentication for '.$user.' failed (LOGIN): "'.htmlspecialchars($line)."\""; 234 235 $conn->errorNum = -2; 235 236 } … … 336 337 337 338 //check input 338 if (empty($host)) $iil_error .= "Invalid host <br>\n";339 if (empty($user)) $iil_error .= "Invalid user <br>\n";340 if (empty($password)) $iil_error .= "Invalid password <br>\n";339 if (empty($host)) $iil_error .= "Invalid host\n"; 340 if (empty($user)) $iil_error .= "Invalid user\n"; 341 if (empty($password)) $iil_error .= "Invalid password\n"; 341 342 if (!empty($iil_error)) return false; 342 343 if (!$ICL_PORT) $ICL_PORT = 143; … … 1577 1578 if ($result_code==0) return $messages; 1578 1579 else{ 1579 $conn->error = "iil_C_Search: ".$line." <br>\n";1580 $conn->error = "iil_C_Search: ".$line."\n"; 1580 1581 return false; 1581 1582 } 1582 1583 1583 1584 }else{ 1584 $conn->error = "iil_C_Search: Couldn't select \"$folder\" <br>\n";1585 $conn->error = "iil_C_Search: Couldn't select \"$folder\"\n"; 1585 1586 return false; 1586 1587 } … … 1930 1931 1931 1932 $result = (iil_ParseResult($line)==0); 1932 if (!$result) $conn->error .= $line." <br>\n";1933 if (!$result) $conn->error .= $line."\n"; 1933 1934 return $result; 1934 1935 1935 1936 }else{ 1936 $conn->error .= "Couldn't send command \"$request\" <br>\n";1937 $conn->error .= "Couldn't send command \"$request\"\n"; 1937 1938 return false; 1938 1939 } … … 1947 1948 if (file_exists(realpath($path))) $in_fp = fopen($path, "r"); 1948 1949 if (!$in_fp){ 1949 $conn->error .= "Couldn't open $path for reading <br>\n";1950 $conn->error .= "Couldn't open $path for reading\n"; 1950 1951 return false; 1951 1952 } … … 1977 1978 1978 1979 $result = (iil_ParseResult($line)==0); 1979 if (!$result) $conn->error .= $line." <br>\n";1980 if (!$result) $conn->error .= $line."\n"; 1980 1981 return $result; 1981 1982 1982 1983 }else{ 1983 $conn->error .= "Couldn't send command \"$request\" <br>\n";1984 $conn->error .= "Couldn't send command \"$request\"\n"; 1984 1985 return false; 1985 1986 } -
trunk/roundcubemail/program/steps/mail/func.inc
r163 r168 162 162 function rcmail_render_folder_tree_html(&$arrFolders, &$special, &$mbox, $maxlength, $nestLevel=0) 163 163 { 164 global $JS_OBJECT_NAME, $ IMAP, $CONFIG, $OUTPUT;164 global $JS_OBJECT_NAME, $COMM_PATH, $IMAP, $CONFIG, $OUTPUT; 165 165 166 166 $idx = 0; … … 191 191 if ($unread_count = $IMAP->messagecount($folder['id'], 'RECENT', ($folder['id']==$mbox))) 192 192 $foldername .= sprintf(' (%d)', $unread_count); 193 193 194 194 // make folder name safe for ids and class names 195 195 $folder_css = $class_name = preg_replace('/[^a-z0-9\-_]/', '', $folder_lc); … … 205 205 $class_name = 'junk'; 206 206 207 $out .= sprintf('<li id="rcmbx%s" class="mailbox %s %s%s%s"><a href="./#%s" onclick="return %s.command(\'list\',\'%s\')" onmouseup="return %s.mbox_mouse_up(\'%s\')"%s>%s</a>', 207 $out .= sprintf('<li id="rcmbx%s" class="mailbox %s %s%s%s"><a href="%s&_mbox=%s"'. 208 ' onclick="return %s.command(\'list\',\'%s\')"'. 209 ' onmouseup="return %s.mbox_mouse_up(\'%s\')"%s>%s</a>', 208 210 $folder_css, 209 211 $class_name, … … 211 213 $unread_count ? ' unread' : '', 212 214 $folder['id']==$mbox ? ' selected' : '', 213 $folder['id'], 215 $COMM_PATH, 216 urlencode($folder['id']), 214 217 $JS_OBJECT_NAME, 215 218 $folder['id'], … … 296 299 297 300 // show 'to' instead of from in sent messages 298 if (strtolower($IMAP->get_mailbox_name())=='sent' && ($f = array_search('from', $a_show_cols))) 301 if (strtolower($IMAP->get_mailbox_name())=='sent' && ($f = array_search('from', $a_show_cols)) 302 && !array_search('to', $a_show_cols)) 299 303 $a_show_cols[$f] = 'to'; 300 304 301 305 // add col definition 302 306 $out .= '<colgroup>'; … … 479 483 480 484 // show 'to' instead of from in sent messages 481 if (strtolower($IMAP->get_mailbox_name())=='sent' && ($f = array_search('from', $a_show_cols))) 485 if (strtolower($IMAP->get_mailbox_name())=='sent' && ($f = array_search('from', $a_show_cols)) 486 && !array_search('to', $a_show_cols)) 482 487 $a_show_cols[$f] = 'to'; 483 488 -
trunk/roundcubemail/program/steps/mail/show.inc
r62 r168 96 96 show_bytes($attach_prop['size'])); 97 97 else 98 $out .= sprintf('<li><a href="#attachment" onclick="return %s.command(\'load-attachment\',{part:\'%s\', mimetype:\'%s\'},this)">%s</a></li>'."\n", 98 $out .= sprintf('<li><a href="%s&_part=%s" onclick="return %s.command(\'load-attachment\',{part:\'%s\', mimetype:\'%s\'},this)">%s</a></li>'."\n", 99 $GET_URL, 100 $attach_prop['part_id'], 99 101 $JS_OBJECT_NAME, 100 102 $attach_prop['part_id'], 101 103 $attach_prop['mimetype'], 102 104 $attach_prop['filename']); 103 /* direct link104 else105 $out .= sprintf('<li><a href="%s&_part=%s&_frame=1" target="rcubemailattachment">%s</a></li>'."\n",106 $GET_URL,107 $attach_prop['part_id'],108 $attach_prop['filename']);109 */110 105 } 111 106
Note: See TracChangeset
for help on using the changeset viewer.
