Changeset 471 in subversion
- Timestamp:
- Feb 9, 2007 4:25:50 PM (6 years ago)
- Location:
- branches/devel-addressbook
- Files:
-
- 30 edited
-
index.php (modified) (13 diffs)
-
program/include/main.inc (modified) (8 diffs)
-
program/include/rcmail_template.inc (modified) (7 diffs)
-
program/include/rcube_shared.inc (modified) (2 diffs)
-
program/js/app.js (modified) (5 diffs)
-
program/steps/addressbook/delete.inc (modified) (4 diffs)
-
program/steps/addressbook/edit.inc (modified) (4 diffs)
-
program/steps/addressbook/func.inc (modified) (3 diffs)
-
program/steps/addressbook/list.inc (modified) (1 diff)
-
program/steps/addressbook/save.inc (modified) (8 diffs)
-
program/steps/addressbook/search.inc (modified) (2 diffs)
-
program/steps/addressbook/show.inc (modified) (2 diffs)
-
program/steps/mail/addcontact.inc (modified) (2 diffs)
-
program/steps/mail/check_recent.inc (modified) (4 diffs)
-
program/steps/mail/compose.inc (modified) (2 diffs)
-
program/steps/mail/folders.inc (modified) (1 diff)
-
program/steps/mail/func.inc (modified) (3 diffs)
-
program/steps/mail/getunread.inc (modified) (1 diff)
-
program/steps/mail/list.inc (modified) (3 diffs)
-
program/steps/mail/mark.inc (modified) (1 diff)
-
program/steps/mail/move_del.inc (modified) (4 diffs)
-
program/steps/mail/quotadisplay.inc (modified) (1 diff)
-
program/steps/mail/search.inc (modified) (2 diffs)
-
program/steps/mail/sendmail.inc (modified) (11 diffs)
-
program/steps/mail/show.inc (modified) (1 diff)
-
program/steps/mail/upload.inc (modified) (3 diffs)
-
program/steps/settings/delete_identity.inc (modified) (2 diffs)
-
program/steps/settings/manage_folders.inc (modified) (7 diffs)
-
program/steps/settings/save_identity.inc (modified) (5 diffs)
-
program/steps/settings/save_prefs.inc (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/devel-addressbook/index.php
r463 r471 3 3 +-----------------------------------------------------------------------+ 4 4 | RoundCube Webmail IMAP Client | 5 | Version 0.1-2007020 1|5 | Version 0.1-20070209 | 6 6 | | 7 7 | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland | … … 42 42 43 43 // application constants 44 define('RCMAIL_VERSION', '0.1-2007020 1');44 define('RCMAIL_VERSION', '0.1-20070209'); 45 45 define('RCMAIL_CHARSET', 'UTF-8'); 46 46 define('JS_OBJECT_NAME', 'rcmail'); … … 99 99 $_task = 'mail'; 100 100 101 if (!empty($_GET['_remote']))102 $REMOTE_REQUEST = TRUE;103 104 101 105 102 // set output buffering … … 125 122 if ($_framed) 126 123 { 127 $COMM_PATH .= '& amp;_framed=1';124 $COMM_PATH .= '&_framed=1'; 128 125 $SESS_HIDDEN_FIELD .= "\n".'<input type="hidden" name="_framed" value="1" />'; 129 126 } … … 155 152 if (empty($_COOKIE)) 156 153 { 157 show_message("cookiesdisabled", 'warning');154 $OUTPUT->show_message("cookiesdisabled", 'warning'); 158 155 } 159 156 else if (isset($_POST['_user']) && isset($_POST['_pass']) && … … 167 164 else 168 165 { 169 show_message("loginfailed", 'warning');166 $OUTPUT->show_message("loginfailed", 'warning'); 170 167 $_SESSION['user_id'] = ''; 171 168 } … … 175 172 else if (($_task=='logout' || $_action=='logout') && isset($_SESSION['user_id'])) 176 173 { 177 show_message('loggedout');174 $OUTPUT->show_message('loggedout'); 178 175 rcmail_kill_session(); 179 176 } … … 185 182 (!empty($CONFIG['session_lifetime']) && isset($SESS_CHANGED) && $SESS_CHANGED + $CONFIG['session_lifetime']*60 < mktime())) 186 183 { 187 $ message =show_message('sessionerror', 'error');184 $OUTPUT->show_message('sessionerror', 'error'); 188 185 rcmail_kill_session(); 189 186 } … … 197 194 if (!$conn) 198 195 { 199 show_message('imaperror', 'error');196 $OUTPUT->show_message('imaperror', 'error'); 200 197 $_SESSION['user_id'] = ''; 201 198 } … … 208 205 if (empty($_SESSION['user_id'])) 209 206 { 210 if ($REMOTE_REQUEST) 211 { 212 $message .= "setTimeout(\"location.href='\"+this.env.comm_path+\"'\", 2000);"; 213 rcube_remote_response($message); 214 } 207 if ($OUTPUT->ajax_call) 208 $OUTPUT->remote_response("setTimeout(\"location.href='\"+this.env.comm_path+\"'\", 2000);"); 215 209 216 210 $_task = 'login'; … … 229 223 if (!$_SESSION['user_id']) 230 224 { 231 parse_template('login');225 $OUTPUT->send('login'); 232 226 exit; 233 227 } … … 237 231 if ($_action=='keep-alive') 238 232 { 239 rcube_remote_response(''); 233 $OUTPUT->reset(); 234 $OUTPUT->send(''); 240 235 exit; 241 236 } … … 359 354 360 355 // parse main template 361 parse_template($_task);356 $OUTPUT->send($_task); 362 357 363 358 -
branches/devel-addressbook/program/include/main.inc
r463 r471 206 206 function rcmail_imap_init($connect=FALSE) 207 207 { 208 global $CONFIG, $DB, $IMAP ;208 global $CONFIG, $DB, $IMAP, $OUTPUT; 209 209 210 210 $IMAP = new rcube_imap($DB); … … 217 217 { 218 218 if (!($conn = $IMAP->connect($_SESSION['imap_host'], $_SESSION['username'], decrypt_passwd($_SESSION['password']), $_SESSION['imap_port'], $_SESSION['imap_ssl']))) 219 show_message('imaperror', 'error');219 $OUTPUT->show_message('imaperror', 'error'); 220 220 221 221 rcmail_set_imap_prop(); … … 766 766 767 767 768 // @deprecated 768 769 function show_message($message, $type='notice', $vars=NULL) 769 770 { 770 global $OUTPUT, $REMOTE_REQUEST; 771 772 $framed = $GLOBALS['_framed']; 773 $command = sprintf("display_message('%s', '%s');", 774 JQ(rcube_label(array('name' => $message, 'vars' => $vars))), 775 $type); 776 777 if ($REMOTE_REQUEST) 778 return 'this.'.$command; 779 780 else 781 $OUTPUT->add_script(sprintf("%s%s.%s\n", 782 $framed ? sprintf('if(parent.%s)parent.', JS_OBJECT_NAME) : '', 783 JS_OBJECT_NAME, 784 $command)); 771 global $OUTPUT; 772 $OUTPUT->show_message($message, $type, $vars); 785 773 } 786 774 … … 815 803 816 804 return $key; 817 }818 819 820 // send correct response on a remote request821 function rcube_remote_response($js_code, $flush=FALSE)822 {823 global $OUTPUT;824 static $s_header_sent = FALSE;825 826 if (!$s_header_sent)827 {828 $s_header_sent = TRUE;829 send_nocacheing_headers();830 header('Content-Type: application/x-javascript; charset='.RCMAIL_CHARSET);831 print '/** remote response ['.date('d/M/Y h:i:s O')."] **/\n";832 }833 834 // send response code835 print rcube_charset_convert($js_code, RCMAIL_CHARSET, $OUTPUT->get_charset());836 837 if ($flush) // flush the output buffer838 flush();839 else // terminate script840 exit;841 }842 843 844 // send correctly formatted response for a request posted to an iframe845 function rcube_iframe_response($js_code='')846 {847 global $OUTPUT;848 849 if (!empty($js_code))850 $OUTPUT->add_script("if(parent.".JS_OBJECT_NAME."){\n" . $js_code . "\n}");851 852 $OUTPUT->write();853 exit;854 805 } 855 806 … … 889 840 $arg_list = func_get_args(); 890 841 foreach ($arg_list as $i => $name) 891 $OUTPUT->add_script(sprintf("%s.add_label('%s', '%s');", 892 JS_OBJECT_NAME, 893 $name, 894 JQ(rcube_label($name)))); 842 $OUTPUT->command('add_label', $name, rcube_label($name)); 895 843 } 896 844 … … 1083 1031 $str = rcube_charset_convert($str, RCMAIL_CHARSET, $OUTPUT->get_charset()); 1084 1032 1085 return addslashes(preg_replace(array("/\r\n/", "/\r/"), array('\n', '\n'),strtr($str, $js_rep_table)));1033 return preg_replace(array("/\r?\n/", "/\r/"), array('\n', '\n'), addslashes(strtr($str, $js_rep_table))); 1086 1034 } 1087 1035 … … 1089 1037 return $str; 1090 1038 } 1091 1039 1092 1040 /** 1093 1041 * Quote a given string. Alias function for rep_specialchars_output … … 1196 1144 1197 1145 // Wrapper for rcmail_template::parse() 1146 // @deprecated 1198 1147 function parse_template($name='main', $exit=TRUE) 1199 1148 { -
branches/devel-addressbook/program/include/rcmail_template.inc
r458 r471 28 28 var $config; 29 29 var $task = ''; 30 var $framed = false; 31 var $ajax_call = false; 30 32 var $pagetitle = ''; 31 33 var $env = array(); 32 34 var $js_env = array(); 35 var $js_commands = array(); 33 36 var $object_handlers = array(); 34 37 … … 41 44 $this->task = $task; 42 45 $this->config = $config; 46 $this->ajax_call = !empty($_GET['_remote']) || !empty($_POST['_remote']); 43 47 44 48 // add common javascripts 45 $javascript = "var ".JS_OBJECT_NAME." = new rcube_webmail();"; 46 47 // don't wait for page onload. Call init at the bottom of the page (delayed) 48 $javascript_foot = "if (window.call_init)\n call_init('".JS_OBJECT_NAME."');"; 49 50 $this->add_script($javascript, 'head_top'); 51 $this->add_script($javascript_foot, 'foot'); 52 $this->scripts_path = 'program/js/'; 53 $this->include_script('common.js'); 54 $this->include_script('app.js'); 49 if (!$this->ajax_call) 50 { 51 $javascript = "var ".JS_OBJECT_NAME." = new rcube_webmail();"; 52 53 // don't wait for page onload. Call init at the bottom of the page (delayed) 54 $javascript_foot = "if (window.call_init)\n call_init('".JS_OBJECT_NAME."');"; 55 56 $this->add_script($javascript, 'head_top'); 57 $this->add_script($javascript_foot, 'foot'); 58 $this->scripts_path = 'program/js/'; 59 $this->include_script('common.js'); 60 $this->include_script('app.js'); 61 } 55 62 } 56 63 … … 113 120 $this->add_script(JS_OBJECT_NAME.".gui_object('$obj', '$id');"); 114 121 } 122 123 124 /** 125 * Call a client method 126 * 127 * @param string Method to call 128 * @param ... Additional arguments 129 */ 130 function command() 131 { 132 $this->js_commands[] = func_get_args(); 133 } 134 135 136 /** 137 * Invoke display_message command 138 */ 139 function show_message($message, $type='notice', $vars=NULL) 140 { 141 $this->command( 142 'display_message', 143 rcube_label(array('name' => $message, 'vars' => $vars)), 144 $type); 145 } 146 147 148 /** 149 * Delete all stored env variables and commands 150 */ 151 function reset() 152 { 153 $this->env = array(); 154 $this->js_env = array(); 155 $this->js_commands = array(); 156 $this->object_handlers = array(); 157 parent::reset(); 158 } 159 160 /** 161 * Send the request output to the client. 162 * This will either parse a skin tempalte or send an AJAX response 163 * 164 * @param string Template name 165 * @param boolean True if script should terminate (default) 166 */ 167 function send($templ=null, $exit=true) 168 { 169 if ($this->ajax_call) 170 $this->remote_response('', !$exit); 171 else if ($templ != 'iframe') 172 $this->parse($templ, false); 173 else 174 { 175 $this->framed = $templ == 'iframe' ? true : $this->framed; 176 $this->write(); 177 } 178 179 if ($exit) 180 exit; 181 } 182 183 184 /** 185 * Send an AJAX response with executable JS code 186 * 187 * @param string Additional JS code 188 * @param boolean True if output buffer should be flushed 189 */ 190 function remote_response($add='', $flush=false) 191 { 192 static $s_header_sent = FALSE; 193 194 if (!$s_header_sent) 195 { 196 $s_header_sent = TRUE; 197 send_nocacheing_headers(); 198 header('Content-Type: application/x-javascript; charset='.RCMAIL_CHARSET); 199 print '/** ajax response ['.date('d/M/Y h:i:s O')."] **/\n"; 200 } 201 202 // unset default env vars 203 unset($this->js_env['task'], $this->js_env['action'], $this->js_env['comm_path']); 204 205 // send response code 206 print rcube_charset_convert($this->get_js_commands() . $add, RCMAIL_CHARSET, $this->get_charset()); 207 208 if ($flush) // flush the output buffer 209 flush(); 210 } 115 211 212 213 /** 214 * @override 215 */ 216 function write($template='') 217 { 218 // write all env variables to client 219 $js = $this->framed ? "if(window.parent) {\n" : ''; 220 $js .= $this->get_js_commands() . ($this->framed ? ' }' : ''); 221 $this->add_script($js, 'head_top'); 222 223 // call super method 224 parent::write($template, $this->config['skin_path']); 225 } 226 116 227 117 228 /** … … 136 247 else 137 248 { 138 raise_error(array('code' => 501, 139 'type' => 'php', 140 'line' => __LINE__, 141 'file' => __FILE__, 142 'message' => "Error loading template for '$name'"), TRUE, TRUE); 249 raise_error(array( 250 'code' => 501, 251 'type' => 'php', 252 'line' => __LINE__, 253 'file' => __FILE__, 254 'message' => "Error loading template for '$name'"), TRUE, TRUE); 143 255 return FALSE; 144 256 } … … 146 258 // parse for specialtags 147 259 $output = $this->parse_xml($this->parse_conditions($templ)); 148 149 // write all env variables to client150 $this->add_script(JS_OBJECT_NAME.'.set_env('.array2js($this->js_env).')', 'head_top');151 260 152 261 // add debug console … … 161 270 exit; 162 271 } 272 273 274 /** 275 * Return executable javascript code for all registered commands 276 * @private 277 */ 278 function get_js_commands() 279 { 280 $out = ''; 281 if (!$this->framed) 282 $out .= ($this->ajax_call ? 'this' : JS_OBJECT_NAME) . '.set_env('.json_serialize($this->js_env).");\n"; 283 284 foreach ($this->js_commands as $i => $args) 285 { 286 $method = array_shift($args); 287 foreach ($args as $i => $arg) 288 $args[$i] = json_serialize($arg); 289 290 $parent = $this->framed || preg_match('/^parent\./', $method); 291 $out .= sprintf( 292 "%s.%s(%s);\n", 293 $this->ajax_call ? 'this' : ($parent ? 'parent.' : '') . JS_OBJECT_NAME, 294 preg_replace('/^parent\./', '', $method), 295 join(',', $args)); 296 } 297 298 return $out; 299 } 300 301 302 303 /***** Template parsing methods *****/ 304 305 /** 306 * Replace all strings ($varname) with the content 307 * of the according global variable. 308 */ 309 function parse_with_globals($input) 310 { 311 $GLOBALS['__comm_path'] = $GLOBALS['COMM_PATH']; 312 return preg_replace('/\$(__[a-z0-9_\-]+)/e', '$GLOBALS["\\1"]', $input); 313 } 163 314 164 315 165 // replace all strings ($varname) with the content of the according global variable 166 function parse_with_globals($input) 167 { 168 $GLOBALS['__comm_path'] = $GLOBALS['COMM_PATH']; 169 return preg_replace('/\$(__[a-z0-9_\-]+)/e', '$GLOBALS["\\1"]', $input); 170 } 171 172 173 // parse conditional code 316 /** 317 * Parse for conditional tags 318 */ 174 319 function parse_conditions($input) 175 320 { … … 473 618 return $out; 474 619 } 475 476 620 477 621 } 478 622 -
branches/devel-addressbook/program/include/rcube_shared.inc
r458 r471 1237 1237 1238 1238 1239 /** 1240 * Convert a variable into a javascript notation string 1241 */ 1242 function json_serialize($var) 1243 { 1244 if (is_object($var)) 1245 $var = get_object_vars($var); 1246 1247 if (is_array($var)) 1248 { 1249 // empty array 1250 if (!sizeof($var)) 1251 return '[]'; 1252 else 1253 { 1254 $keys_arr = array_keys($var); 1255 $is_assoc = $have_numeric = 0; 1256 1257 for ($i=0; $i<sizeof($keys_arr); ++$i) 1258 { 1259 if (is_numeric($keys_arr[$i])) 1260 $have_numeric = 1; 1261 if (!is_numeric($keys_arr[$i]) || $keys_arr[$i] != $i) 1262 $is_assoc = 1; 1263 if ($is_assoc && $have_numeric) 1264 break; 1265 } 1266 1267 $brackets = $is_assoc ? '{}' : '[]'; 1268 $pairs = array(); 1269 1270 foreach ($var as $key => $value) 1271 { 1272 // enclose key with quotes if it is not variable-name conform 1273 if (!ereg("^[_a-zA-Z]{1}[_a-zA-Z0-9]*$", $key) /* || is_js_reserved_word($key) */) 1274 $key = "'$key'"; 1275 1276 $pairs[] = sprintf("%s%s", $is_assoc ? "$key:" : '', json_serialize($value)); 1277 } 1278 1279 return $brackets{0} . implode(',', $pairs) . $brackets{1}; 1280 } 1281 } 1282 else if (is_numeric($var) && strval(intval($var)) === strval($var)) 1283 return $var; 1284 else if (is_bool($var)) 1285 return $var ? '1' : '0'; 1286 else 1287 return "'".JQ($var)."'"; 1288 1289 } 1290 1239 1291 // function to convert an array to a javascript array 1292 // @deprecated 1240 1293 function array2js($arr, $type='') 1241 1294 { … … 1243 1296 $type = 'mixed'; 1244 1297 1245 if (is_array($arr)) 1246 { 1247 // no items in array 1248 if (!sizeof($arr)) 1249 return 'new Array()'; 1250 else 1251 { 1252 $a_pairs = array(); 1253 $keys_arr = array_keys($arr); 1254 $is_assoc = $have_numeric = 0; 1255 1256 for ($i=0; $i<sizeof($keys_arr); ++$i) 1257 { 1258 if(is_numeric($keys_arr[$i])) 1259 $have_numeric = 1; 1260 if (!is_numeric($keys_arr[$i]) || $keys_arr[$i]!=$i) 1261 $is_assoc = 1; 1262 if($is_assoc && $have_numeric) 1263 break; 1264 } 1265 1266 $previous_was_array = false; 1267 while (list($key, $value) = each($arr)) 1268 { 1269 // enclose key with quotes if it is not variable-name conform 1270 if (!ereg("^[_a-zA-Z]{1}[_a-zA-Z0-9]*$", $key) /* || is_js_reserved_word($key) */) 1271 $key = "'$key'"; 1272 1273 if (!is_array($value) && is_string($value)) 1274 { 1275 $value = str_replace("\r\n", '\n', $value); 1276 $value = str_replace("\n", '\n', $value); 1277 } 1278 1279 $is_string = false; 1280 if (!is_array($value)) 1281 { 1282 if ($type=='string') 1283 $is_string = true; 1284 else if (($type == 'mixed' && is_bool($value)) || $type == 'bool') 1285 { 1286 $is_string = false; 1287 $value = $value ? "true" : "false"; 1288 } 1289 else if ((($type=='mixed' && is_numeric($value)) || $type=='int') && rc_strlen($value)<16) // js interprets numbers with digits >15 as ...e+... 1290 $is_string = FALSE; 1291 else 1292 $is_string = TRUE; 1293 } 1294 1295 if ($is_string) 1296 $value = "'".preg_replace("/(?<!\\\)'/", "\'", $value)."'"; 1297 1298 $a_pairs[] = sprintf("%s%s", 1299 $is_assoc ? "$key:" : '', 1300 is_array($value) ? array2js($value, $type) : $value); 1301 } 1302 1303 if ($a_pairs) 1304 { 1305 if ($is_assoc) 1306 $return = '{'.implode(',', $a_pairs).'}'; 1307 else 1308 $return = '['.implode(',', $a_pairs).']'; 1309 } 1310 1311 return $return; 1312 } 1313 } 1314 else 1315 { 1316 return $arr; 1317 } 1298 return json_serialize($arr); 1318 1299 } 1319 1300 -
branches/devel-addressbook/program/js/app.js
r463 r471 387 387 388 388 // get summary of all field values 389 this.c mp_hash = this.compose_field_hash();389 this.compose_field_hash(true); 390 390 391 391 // start the auto-save timer … … 1690 1690 this.set_spellcheck_state = function(s) 1691 1691 { 1692 this.spellcheck_ready = (s=='check_spelling' || s=='ready');1692 this.spellcheck_ready = (s=='check_spelling' || s=='ready'); 1693 1693 this.enable_command('spellcheck', this.spellcheck_ready); 1694 }; 1695 1694 }; 1695 1696 1697 this.set_draft_id = function(id) 1698 { 1699 var f; 1700 if (f = rcube_find_object('_draft_saveid')) 1701 f.value = id; 1702 }; 1696 1703 1697 1704 this.auto_save_start = function() … … 1702 1709 1703 1710 1704 this.compose_field_hash = function( )1711 this.compose_field_hash = function(save) 1705 1712 { 1706 1713 // check input fields … … 1722 1729 if (input_message && input_message.value) 1723 1730 str += input_message.value; 1724 1731 1732 if (save) 1733 this.cmp_hash = str; 1734 1725 1735 return str; 1726 1736 }; … … 2901 2911 this.display_message = function(msg, type, hold) 2902 2912 { 2913 // pass command to parent window 2914 if (this.env.framed && parent.rcmail ) 2915 return parent.rcmail.display_message(msg, type, hold); 2916 2903 2917 this.set_busy(false); 2904 2918 if (!this.loaded) // save message in order to display after page loaded -
branches/devel-addressbook/program/steps/addressbook/delete.inc
r447 r471 6 6 | | 7 7 | This file is part of the RoundCube Webmail client | 8 | Copyright (C) 2005 , RoundCube Dev. - Switzerland|8 | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland | 9 9 | Licensed under the GNU GPL | 10 10 | | … … 19 19 20 20 */ 21 22 $REMOTE_REQUEST = TRUE;23 21 24 22 if (($cid = get_input_value('_cid', RCUBE_INPUT_GPC)) && preg_match('/^[0-9]+(,[0-9]+)*$/', $cid)) … … 35 33 36 34 // update message count display 37 $ commands = sprintf("this.set_env('pagecount', %d);\n", ceil($result['count'] / $CONTACTS->page_size));38 $ commands .= sprintf("this.set_rowcount('%s');\n", rcmail_get_rowcount_text($result['count']));35 $OUTPUT->set_env('pagecount', ceil($result['count'] / $CONTACTS->page_size)); 36 $OUTPUT->command('set_rowcount', rcmail_get_rowcount_text($result['count'])); 39 37 40 38 // add new rows from next page (if any) … … 43 41 { 44 42 $result = $CONTACTS->list_records(null, -$deleted); 45 $commands .=rcmail_js_contacts_list($result);43 rcmail_js_contacts_list($result); 46 44 } 47 45 48 46 // send response 49 rcube_remote_response($commands);47 $OUTPUT->send(); 50 48 } 51 49 -
branches/devel-addressbook/program/steps/addressbook/edit.inc
r456 r471 22 22 23 23 if (($cid = get_input_value('_cid', RCUBE_INPUT_GPC)) && ($result = $CONTACTS->get_record($cid))) 24 $OUTPUT-> add_script(sprintf("%s.set_env('cid', '%s');", JS_OBJECT_NAME, $result['ID']));24 $OUTPUT->set_env('cid', $result['ID']); 25 25 26 26 27 27 function rcmail_contact_editform($attrib) 28 {29 global $CONTACTS ;28 { 29 global $CONTACTS, $OUTPUT; 30 30 31 31 // check if we have a valid result 32 32 if (!($record = $CONTACTS->get_result()) && $GLOBALS['_action'] != 'add') 33 return show_message('contactnotfound'); 33 { 34 $OUTPUT->show_message('contactnotfound'); 35 return false; 36 } 34 37 35 38 // add some labels to client … … 43 46 // a specific part is requested 44 47 if ($attrib['part']) 45 {48 { 46 49 $out = $form_start; 47 50 $out .= rcmail_get_edit_field($attrib['part'], $record[$attrib['part']], $attrib); 48 51 return $out; 49 }52 } 50 53 51 54 … … 55 58 $a_show_cols = array('name', 'firstname', 'surname', 'email'); 56 59 foreach ($a_show_cols as $col) 57 {60 { 58 61 $attrib['id'] = 'rcmfd_'.$col; 59 62 $value = rcmail_get_edit_field($col, $record[$col], $attrib); … … 62 65 Q(rcube_label($col)), 63 66 $value); 64 }67 } 65 68 66 69 $out .= "\n</table>$form_end"; 67 70 68 71 return $out; 69 }72 } 70 73 71 74 $OUTPUT->add_handler('contacteditform', 'rcmail_contact_editform'); -
branches/devel-addressbook/program/steps/addressbook/func.inc
r463 r471 48 48 // allow the following attributes to be added to the <ul> tag 49 49 $out = '<ul' . create_attrib_string($attrib, array('style', 'class', 'id')) . ">\n"; 50 51 50 $out .= '<li><a href="#">' . rcube_label('personaladrbook') . "</a></li>\n"; 51 $out .= '</ul>'; 52 52 53 53 $OUTPUT->add_gui_object('directorylist', $attrib['id']); … … 92 92 93 93 94 function rcmail_js_contacts_list($result, $ obj_name='this')94 function rcmail_js_contacts_list($result, $prefix='') 95 95 { 96 $commands = '';97 96 global $OUTPUT; 97 98 98 if (empty($result) || $result['count'] == 0) 99 return $commands;99 return; 100 100 101 101 unset($result['count'], $result['first']); … … 110 110 // format each col 111 111 foreach ($a_show_cols as $col) 112 $a_row_cols[$col] = Q($row[$col]);112 $a_row_cols[$col] = $row[$col]; 113 113 114 $commands .= sprintf("%s.add_contact_row(%s, %s);\n", 115 $obj_name, 116 $row['ID'], 117 array2js($a_row_cols)); 114 $OUTPUT->command($prefix.'add_contact_row', $row['ID'], $a_row_cols); 118 115 } 119 120 return $commands;121 116 } 122 117 -
branches/devel-addressbook/program/steps/addressbook/list.inc
r456 r471 20 20 */ 21 21 22 $REMOTE_REQUEST = TRUE;23 24 22 // get contacts for this user 25 23 $result = $CONTACTS->list_records(); 26 24 27 25 // update message count display 28 $ commands = sprintf("this.set_env('pagecount', %d);\n", ceil($result['count'] / $CONTACTS->page_size));29 $ commands .= sprintf("this.set_rowcount('%s');\n", rcmail_get_rowcount_text($rowcount));26 $OUTPUT->set_env('pagecount', ceil($result['count'] / $CONTACTS->page_size)); 27 $OUTPUT->command('set_rowcount', rcmail_get_rowcount_text($rowcount)); 30 28 31 29 // create javascript list 32 $commands .=rcmail_js_contacts_list($result);30 rcmail_js_contacts_list($result); 33 31 34 32 // send response 35 rcube_remote_response($commands);33 $OUTPUT->send(); 36 34 37 35 ?> -
branches/devel-addressbook/program/steps/addressbook/save.inc
r458 r471 6 6 | | 7 7 | This file is part of the RoundCube Webmail client | 8 | Copyright (C) 2005 , RoundCube Dev. - Switzerland|8 | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland | 9 9 | Licensed under the GNU GPL | 10 10 | | … … 23 23 if ($CONTACTS->readonly) 24 24 { 25 show_message('contactreadonly', 'error');25 $OUTPUT->show_message('contactreadonly', 'error'); 26 26 rcmail_overwrite_action(empty($_POST['_cid']) ? 'add' : 'show'); 27 27 return; … … 31 31 if ((!get_input_value('_name', RCUBE_INPUT_POST) || !get_input_value('_email', RCUBE_INPUT_POST)) && $_framed) 32 32 { 33 show_message('formincomplete', 'warning');33 $OUTPUT->show_message('formincomplete', 'warning'); 34 34 rcmail_overwrite_action(empty($_POST['_cid']) ? 'add' : 'show'); 35 35 return; … … 65 65 66 66 // update the changed col in list 67 $OUTPUT->add_script(sprintf("if(parent.%s)parent.%s.update_contact_row('%d', %s);", 68 JS_OBJECT_NAME, 69 JS_OBJECT_NAME, 70 $cid, 71 array2js($a_js_cols))); 67 $OUTPUT->command('parent.update_contact_row', $cid, $a_js_cols); 72 68 } 73 69 74 70 // show confirmation 75 show_message('successfullysaved', 'confirmation');71 $OUTPUT->show_message('successfullysaved', 'confirmation'); 76 72 rcmail_overwrite_action('show'); 77 73 } … … 79 75 { 80 76 // show error message 81 show_message('errorsaving', 'error');77 $OUTPUT->show_message('errorsaving', 'error'); 82 78 rcmail_overwrite_action('show'); 83 79 } … … 93 89 if ($existing['count']) 94 90 { 95 show_message('contactexists', 'warning');91 $OUTPUT->show_message('contactexists', 'warning'); 96 92 rcmail_overwrite_action('add'); 97 93 return; … … 107 103 $result = $CONTACTS->search($CONTACTS->primary_key, $insert_id); 108 104 109 $commands = "if(parent.".JS_OBJECT_NAME."){\n"; 110 $commands .= "parent." . rcmail_js_contacts_list($result, JS_OBJECT_NAME); 111 112 $commands .= sprintf("parent.%s.contact_list.select('%s');\n", 113 JS_OBJECT_NAME, 114 $insert_id); 105 rcmail_js_contacts_list($result, 'parent.'); 106 $OUTPUT->command('parent.contact_list.select', $insert_id); 115 107 116 108 // update record count display 117 109 $CONTACTS->reset(); 118 $commands .= sprintf("parent.%s.set_rowcount('%s');\n", 119 JS_OBJECT_NAME, 120 rcmail_get_rowcount_text()); 121 122 $commands .= '}'; 123 $OUTPUT->add_script($commands); 110 $OUTPUT->command('parent.set_rowcount', rcmail_get_rowcount_text()); 124 111 } 125 112 126 113 // show confirmation 127 show_message('successfullysaved', 'confirmation');114 $OUTPUT->show_message('successfullysaved', 'confirmation'); 128 115 rcmail_overwrite_action('show'); 129 116 $_GET['_cid'] = $insert_id; … … 132 119 { 133 120 // show error message 134 show_message('errorsaving', 'error');121 $OUTPUT->show_message('errorsaving', 'error'); 135 122 rcmail_overwrite_action('add'); 136 123 } -
branches/devel-addressbook/program/steps/addressbook/search.inc
r463 r471 20 20 */ 21 21 22 $REMOTE_REQUEST = TRUE;23 24 22 $search = trim(get_input_value('_search', RCUBE_INPUT_GET)); 25 23 $search_request = md5('addr'.$search); 26 $commands = '';27 24 28 25 // get contacts for this user … … 35 32 36 33 // create javascript list 37 $commands .=rcmail_js_contacts_list($result);34 rcmail_js_contacts_list($result); 38 35 } 39 36 else 40 37 { 41 $ commands =show_message('nocontactsfound', 'warning');38 $OUTPUT->show_message('nocontactsfound', 'warning'); 42 39 $search_request = -1; 43 40 } 44 41 45 42 // update message count display 46 $ commands .= sprintf("this.set_env('search_request', '%s')\n", $search_request);47 $ commands .= sprintf("this.set_env('pagecount', %d);\n", ceil($result['count'] / $CONTACTS->page_size));48 $ commands .= sprintf("this.set_rowcount('%s');\n", rcmail_get_rowcount_text());43 $OUTPUT->set_env('search_request', $search_request); 44 $OUTPUT->set_env('pagecount', ceil($result['count'] / $CONTACTS->page_size)); 45 $OUTPUT->command('set_rowcount', rcmail_get_rowcount_text()); 49 46 50 47 // send response 51 rcube_remote_response($commands);48 $OUTPUT->send(); 52 49 53 50 ?> -
branches/devel-addressbook/program/steps/addressbook/show.inc
r458 r471 28 28 function rcmail_contact_details($attrib) 29 29 { 30 global $CONTACTS ;30 global $CONTACTS, $OUTPUT; 31 31 32 32 // check if we have a valid result 33 33 if (!($record = $CONTACTS->get_result())) 34 return show_message('contactnotfound'); 34 { 35 $OUTPUT->show_message('contactnotfound'); 36 return false; 37 } 35 38 36 39 // a specific part is requested 37 40 if ($attrib['part']) 38 return rep_specialchars_output($record[$attrib['part']]);41 return Q($record[$attrib['part']]); 39 42 40 43 // return the complete address record as table … … 64 67 } 65 68 69 70 //$OUTPUT->framed = $_framed; 66 71 $OUTPUT->add_handler('contactdetails', 'rcmail_contact_details'); 67 68 69 parse_template('showcontact'); 72 $OUTPUT->send('showcontact'); 70 73 ?> -
branches/devel-addressbook/program/steps/mail/addcontact.inc
r456 r471 22 22 require_once('include/rcube_contacts.inc'); 23 23 24 $REMOTE_REQUEST = TRUE; 25 $commands = ''; 24 $done = false; 26 25 27 26 if (!empty($_POST['_address'])) … … 37 36 // check for existing contacts 38 37 $existing = $CONTACTS->search('email', $contact['email'], false); 39 if ($ existing['count'])40 $ commands =show_message('contactexists', 'warning');41 else if ($ CONTACTS->insert($contact))42 $ commands =show_message('addedsuccessfully', 'confirmation');38 if ($done = $existing['count']) 39 $OUTPUT->show_message('contactexists', 'warning'); 40 else if ($done = $CONTACTS->insert($contact)) 41 $OUTPUT->show_message('addedsuccessfully', 'confirmation'); 43 42 } 44 43 } 45 44 46 if ( empty($commands))47 $ commands =show_message('errorsavingcontact', 'warning');45 if (!$done) 46 $OUTPUT->show_message('errorsavingcontact', 'warning'); 48 47 49 rcube_remote_response($commands); 50 exit; 48 $OUTPUT->send(); 51 49 ?> -
branches/devel-addressbook/program/steps/mail/check_recent.inc
r291 r471 20 20 */ 21 21 22 $REMOTE_REQUEST = TRUE;23 24 22 $a_mailboxes = $IMAP->list_mailboxes(); 25 23 … … 33 31 $unread_count = $IMAP->messagecount(NULL, 'UNSEEN', TRUE); 34 32 35 $ commands .= sprintf("this.set_unread_count('%s', %d);\n", addslashes($mbox_name), $unread_count);36 $ commands .= sprintf("this.set_env('messagecount', %d);\n", $count);37 $ commands .= sprintf("this.set_rowcount('%s');\n", rcmail_get_messagecount_text());38 $ commands .= sprintf("this.set_quota('%s');\n", $IMAP->get_quota());33 $OUTPUT->set_env('messagecount', $count); 34 $OUTPUT->command('set_unread_count', $mbox_name, $unread_count); 35 $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text()); 36 $OUTPUT->command('set_quota', $IMAP->get_quota()); 39 37 40 38 // add new message headers to list … … 47 45 } 48 46 49 $commands .=rcmail_js_message_list($a_headers, TRUE);47 rcmail_js_message_list($a_headers, TRUE); 50 48 } 51 49 } … … 53 51 { 54 52 if ($IMAP->messagecount($mbox_name, 'RECENT')) 55 $ commands .= sprintf("this.set_unread_count('%s', %d);\n", addslashes($mbox_name), $IMAP->messagecount($mbox_name, 'UNSEEN'));53 $OUTPUT->command('set_unread_count', $mbox_name, $IMAP->messagecount($mbox_name, 'UNSEEN')); 56 54 } 57 55 } 58 56 59 rcube_remote_response($commands); 57 $OUTPUT->send(); 58 60 59 ?> -
branches/devel-addressbook/program/steps/mail/compose.inc
r458 r471 37 37 @unlink($_SESSION['compose']['attachments'][$id]['path']); 38 38 $_SESSION['compose']['attachments'][$id] = NULL; 39 $ commands = sprintf("parent.%s.remove_from_attachment_list('rcmfile%d');\n", JS_OBJECT_NAME, $id);40 rcube_remote_response($commands);39 $OUTPUT->command('remove_from_attachment_list', "rcmfile$id"); 40 $OUTPUT->send(); 41 41 exit; 42 42 } … … 62 62 63 63 // add config parameter to client script 64 $OUTPUT-> add_script(sprintf("%s.set_env('draft_autosave', %d);", JS_OBJECT_NAME, !empty($CONFIG['drafts_mbox']) ? $CONFIG['draft_autosave'] : 0));64 $OUTPUT->set_env('draft_autosave', !empty($CONFIG['drafts_mbox']) ? $CONFIG['draft_autosave'] : 0); 65 65 66 66 -
branches/devel-addressbook/program/steps/mail/folders.inc
r369 r471 19 19 */ 20 20 21 $REMOTE_REQUEST = TRUE;22 21 $mbox_name = $IMAP->get_mailbox_name(); 23 24 22 25 23 // send EXPUNGE command 26 24 if ($_action=='expunge') 27 {25 { 28 26 $success = $IMAP->expunge($_GET['_mbox']); 29 27 30 28 // reload message list if current mailbox 31 29 if ($success && $_GET['_reload']) 32 {33 rcube_remote_response('this.message_list.clear();', TRUE);30 { 31 $OUTPUT->command('message_list.clear'); 34 32 $_action = 'list'; 35 33 return; 36 }34 } 37 35 else 38 36 $commands = "// expunged: $success\n"; 39 }37 } 40 38 41 39 // clear mailbox 42 40 else if ($_action=='purge') 43 {41 { 44 42 $success = $IMAP->clear_mailbox($_GET['_mbox']); 45 43 46 44 if ($success && $_GET['_reload']) 47 {48 $ commands = "this.message_list.clear();\n";49 $ commands .= "this.set_env('messagecount', 0);\n";50 $ commands .= "this.set_env('pagecount', 0);\n";51 $ commands .= sprintf("this.set_rowcount('%s');\n", rcmail_get_messagecount_text());52 $ commands .= sprintf("this.set_unread_count('%s', 0);\n", addslashes($mbox_name));53 }45 { 46 $OUTPUT->set_env('messagecount', 0); 47 $OUTPUT->set_env('pagecount', 0); 48 $OUTPUT->command('message_list.clear'); 49 $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text()); 50 $OUTPUT->command('set_unread_count', $mbox_name, 0); 51 } 54 52 else 55 53 $commands = "// purged: $success"; 56 }54 } 57 55 58 59 60 rcube_remote_response($commands); 56 $OUTPUT->send($commands); 61 57 ?> -
branches/devel-addressbook/program/steps/mail/func.inc
r463 r471 512 512 function rcmail_js_message_list($a_headers, $insert_top=FALSE) 513 513 { 514 global $CONFIG, $IMAP; 515 516 $commands = ''; 514 global $CONFIG, $IMAP, $OUTPUT; 515 517 516 $a_show_cols = is_array($CONFIG['list_cols']) ? $CONFIG['list_cols'] : array('subject'); 518 517 … … 522 521 $a_show_cols[$f] = 'to'; 523 522 524 $ commands .= sprintf("this.set_message_coltypes(%s);\n", array2js($a_show_cols));523 $OUTPUT->command('set_message_coltypes', $a_show_cols); 525 524 526 525 // loop through message headers … … 551 550 $a_msg_flags['unread'] = $header->seen ? 0 : 1; 552 551 $a_msg_flags['replied'] = $header->answered ? 1 : 0; 553 $commands .= sprintf("this.add_message_row(%s, %s, %s, %b, %b);\n", 554 $header->uid, 555 array2js($a_msg_cols), 556 array2js($a_msg_flags), 557 preg_match("/multipart\/m/i", $header->ctype), 558 $insert_top); 559 } 560 561 return $commands; 552 $OUTPUT->command('add_message_row', 553 $header->uid, 554 $a_msg_cols, 555 $a_msg_flags, 556 preg_match("/multipart\/m/i", $header->ctype), 557 $insert_top); 558 } 562 559 } 563 560 -
branches/devel-addressbook/program/steps/mail/getunread.inc
r269 r471 20 20 */ 21 21 22 $REMOTE_REQUEST = TRUE;23 24 22 $a_folders = $IMAP->list_mailboxes(); 25 23 26 24 if (!empty($a_folders)) 27 {25 { 28 26 foreach ($a_folders as $mbox_row) 29 { 30 $commands = sprintf("this.set_unread_count('%s', %d);\n", addslashes($mbox_row), $IMAP->messagecount($mbox_row, 'UNSEEN')); 31 rcube_remote_response($commands, TRUE); 32 } 33 } 27 $OUTPUT->command('set_unread_count', $mbox_row, $IMAP->messagecount($mbox_row, 'UNSEEN')); 28 } 34 29 35 exit;30 $OUTPUT->send(); 36 31 ?> -
branches/devel-addressbook/program/steps/mail/list.inc
r422 r471 20 20 */ 21 21 22 $REMOTE_REQUEST = TRUE;23 22 $OUTPUT_TYPE = 'js'; 24 25 23 $sort = isset($_GET['_sort']) ? $_GET['_sort'] : false; 26 24 27 25 // is there a sort type for this request? 28 26 if ($sort) 29 {27 { 30 28 // yes, so set the sort vars 31 29 list($sort_col, $sort_order) = explode('_', $sort); … … 34 32 $_SESSION['sort_col'] = $sort_col; 35 33 $_SESSION['sort_order'] = $sort_order; 36 }34 } 37 35 else 38 {36 { 39 37 // use session settings if set, defaults if not 40 38 $sort_col = isset($_SESSION['sort_col']) ? $_SESSION['sort_col'] : $CONFIG['message_sort_col']; 41 39 $sort_order = isset($_SESSION['sort_order']) ? $_SESSION['sort_order'] : $CONFIG['message_sort_order']; 42 }40 } 43 41 44 42 … … 51 49 // update message count display 52 50 $pages = ceil($count/$IMAP->page_size); 53 $ commands = sprintf("this.set_env('messagecount', %d);\n", $count);54 $ commands .= sprintf("this.set_env('pagecount', %d);\n", $pages);55 $ commands .= sprintf("this.set_rowcount('%s');\n", rcmail_get_messagecount_text($count));51 $OUTPUT->set_env('messagecount', $count); 52 $OUTPUT->set_env('pagecount', $pages); 53 $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($count)); 56 54 57 55 // update mailboxlist 58 $mbox_name = $IMAP->get_mailbox_name(); 59 $commands .= sprintf("this.set_unread_count('%s', %d);\n", addslashes($mbox_name), $unseen); 56 $OUTPUT->command('set_unread_count', $IMAP->get_mailbox_name(), $unseen); 60 57 61 58 62 59 // add message rows 63 60 if (isset($a_headers) && count($a_headers)) 64 $commands .=rcmail_js_message_list($a_headers);61 rcmail_js_message_list($a_headers); 65 62 66 63 67 64 // send response 68 rcube_remote_response($commands);65 $OUTPUT->send(); 69 66 70 exit;71 67 ?> -
branches/devel-addressbook/program/steps/mail/mark.inc
r232 r471 19 19 */ 20 20 21 $REMOTE_REQUEST = TRUE; 22 23 $a_flags_map = array('undelete' => 'UNDELETED', 24 'delete' => 'DELETED', 25 'read' => 'SEEN', 26 'unread' => 'UNSEEN'); 21 $a_flags_map = array( 22 'undelete' => 'UNDELETED', 23 'delete' => 'DELETED', 24 'read' => 'SEEN', 25 'unread' => 'UNSEEN'); 27 26 28 27 if ($_GET['_uid'] && $_GET['_flag']) 28 { 29 $flag = $a_flags_map[$_GET['_flag']] ? $a_flags_map[$_GET['_flag']] : strtoupper($_GET['_flag']); 30 $marked = $IMAP->set_flag(get_input_value('_uid', RCUBE_INPUT_GET), $flag); 31 if ($marked != -1) 29 32 { 30 $flag = $a_flags_map[$_GET['_flag']] ? $a_flags_map[$_GET['_flag']] : strtoupper($_GET['_flag']);31 $marked = $IMAP->set_flag($_GET['_uid'], $flag);32 if ($marked != -1)33 {34 33 $mbox_name = $IMAP->get_mailbox_name(); 35 $commands = sprintf("this.set_unread_count('%s', %d);\n", $mbox_name, $IMAP->messagecount($mbox_name, 'UNSEEN')); 36 rcube_remote_response($commands); 37 } 34 $OUTPUT->command('set_unread_count', $mbox_name, $IMAP->messagecount($mbox_name, 'UNSEEN')); 35 $OUTPUT->send(); 38 36 } 37 } 39 38 40 39 exit; -
branches/devel-addressbook/program/steps/mail/move_del.inc
r447 r471 6 6 | | 7 7 | This file is part of the RoundCube Webmail client | 8 | Copyright (C) 2005 , RoundCube Dev. - Switzerland|8 | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland | 9 9 | Licensed under the GNU GPL | 10 10 | | … … 20 20 */ 21 21 22 $REMOTE_REQUEST = TRUE;23 24 22 // move messages 25 23 if ($_action=='moveto' && $_GET['_uid'] && $_GET['_target_mbox']) 26 {24 { 27 25 $count = sizeof(explode(',', $_GET['_uid'])); 28 26 $moved = $IMAP->move_message($_GET['_uid'], $_GET['_target_mbox'], $_GET['_mbox']); 29 27 30 28 if (!$moved) 31 {29 { 32 30 // send error message 33 $ commands = "this.list_mailbox();\n";34 $ commands .=show_message('errormoving', 'error');35 rcube_remote_response($commands);31 $OUTPUT->command('list_mailbox'); 32 $OUTPUT->show_message('errormoving', 'error'); 33 $OUTPUT->send(); 36 34 exit; 37 }38 35 } 36 } 39 37 40 38 // delete messages 41 39 else if ($_action=='delete' && $_GET['_uid']) 42 {40 { 43 41 $count = sizeof(explode(',', $_GET['_uid'])); 44 42 $del = $IMAP->delete_message($_GET['_uid'], $_GET['_mbox']); 45 43 46 44 if (!$del) 47 {45 { 48 46 // send error message 49 $ commands = "this.list_mailbox();\n";50 $ commands .=show_message('errordeleting', 'error');51 rcube_remote_response($commands);47 $OUTPUT->command('list_mailbox'); 48 $OUTPUT->show_message('errordeleting', 'error'); 49 $OUTPUT->send(); 52 50 exit; 53 }54 51 } 52 } 55 53 56 54 // unknown action or missing query param 57 55 else 58 {59 56 exit; 60 }61 57 62 58 // refresh saved seach set after moving some messages … … 68 64 $msg_count = $IMAP->messagecount(); 69 65 $pages = ceil($msg_count / $IMAP->page_size); 70 $ commands = sprintf("this.set_env('pagecount', %d);\n", $pages);71 $ commands .= sprintf("this.set_rowcount('%s');\n", rcmail_get_messagecount_text($msg_count));66 $OUTPUT->set_env('pagecount', $pages); 67 $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($msg_count)); 72 68 73 69 74 70 // update mailboxlist 75 71 $mbox = $IMAP->get_mailbox_name(); 76 $ commands .= sprintf("this.set_unread_count('%s', %d);\n", $mbox, $IMAP->messagecount($mbox, 'UNSEEN'));72 $OUTPUT->command('set_unread_count', $mbox, $IMAP->messagecount($mbox, 'UNSEEN')); 77 73 78 74 if ($_action=='moveto') 79 $ commands .= sprintf("this.set_unread_count('%s', %d);\n", $_GET['_target_mbox'], $IMAP->messagecount($_GET['_target_mbox'], 'UNSEEN'));75 $OUTPUT->command('set_unread_count', $_GET['_target_mbox'], $IMAP->messagecount($_GET['_target_mbox'], 'UNSEEN')); 80 76 81 $ commands .= sprintf("this.set_quota('%s');\n", $IMAP->get_quota());77 $OUTPUT->command('set_quota', $IMAP->get_quota()); 82 78 83 79 // add new rows from next page (if any) 84 80 if ($_GET['_from']!='show' && $pages>1 && $IMAP->list_page < $pages) 85 {81 { 86 82 $sort_col = isset($_SESSION['sort_col']) ? $_SESSION['sort_col'] : $CONFIG['message_sort_col']; 87 83 $sort_order = isset($_SESSION['sort_order']) ? $_SESSION['sort_order'] : $CONFIG['message_sort_order']; … … 90 86 $a_headers = array_slice($a_headers, -$count, $count); 91 87 92 $commands .=rcmail_js_message_list($a_headers);93 }88 rcmail_js_message_list($a_headers); 89 } 94 90 95 91 96 92 // send response 97 rcube_remote_response($commands);93 $OUTPUT->send(); 98 94 99 exit;100 95 ?> -
branches/devel-addressbook/program/steps/mail/quotadisplay.inc
r414 r471 23 23 $id = isset($_GET['_id']) ? $_GET['_id'] : 'rcmquotadisplay'; 24 24 $quota = rcmail_quota_content($display); 25 $command = sprintf("this.gui_objects.%s.innerHTML = '%s';\n", $id, $quota); 26 rcube_remote_response($command); 25 $OUTPUT->remote_response(sprintf("this.gui_objects.%s.innerHTML = '%s';\n", $id, $quota)); 27 26 28 27 exit; -
branches/devel-addressbook/program/steps/mail/search.inc
r463 r471 72 72 // execute IMAP search 73 73 $result = $IMAP->search($mbox, $subject, $search, $imap_charset); 74 75 $commands = '';76 74 $count = 0; 77 75 78 76 // Make sure our $result is legit.. 79 77 if (is_array($result) && $result[0] != '') 80 {78 { 81 79 // Get the headers 82 80 $result_h = $IMAP->list_header_set($mbox, $result, 1, $_SESSION['sort_col'], $_SESSION['sort_order']); … … 89 87 // Make sure we got the headers 90 88 if ($result_h != NULL) 91 {89 { 92 90 $_SESSION['search'][$search_request] = $IMAP->get_search_set(); 93 $commands = rcmail_js_message_list($result_h); 94 $commands .= show_message('searchsuccessful', 'confirmation', array('nr' => $count)); 95 } 91 rcmail_js_message_list($result_h); 92 $OUTPUT->show_message('searchsuccessful', 'confirmation', array('nr' => $count)); 96 93 } 94 } 97 95 else 98 {99 $ commands =show_message('searchnomatch', 'warning');96 { 97 $OUTPUT->show_message('searchnomatch', 'warning'); 100 98 $search_request = -1; 101 }99 } 102 100 103 101 // update message count display 104 102 $pages = ceil($count/$IMAP->page_size); 105 $ commands .= sprintf("\nthis.set_env('search_request', '%s')\n", $search_request);106 $ commands .= sprintf("this.set_env('messagecount', %d);\n", $count);107 $ commands .= sprintf("this.set_env('pagecount', %d);\n", $pages);108 $ commands .= sprintf("this.set_rowcount('%s');\n", rcmail_get_messagecount_text($count, 1));109 rcube_remote_response($commands);103 $OUTPUT->set_env('search_request', $search_request); 104 $OUTPUT->set_env('messagecount', $count); 105 $OUTPUT->set_env('pagecount', $pages); 106 $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($count, 1)); 107 $OUTPUT->send(); 110 108 111 109 ?> -
branches/devel-addressbook/program/steps/mail/sendmail.inc
r458 r471 6 6 | | 7 7 | This file is part of the RoundCube Webmail client | 8 | Copyright (C) 2005 , RoundCube Dev. - Switzerland|8 | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland | 9 9 | Licensed under the GNU GPL | 10 10 | | … … 111 111 $img_file = $INSTALL_PATH . '/' . $searchstr . $image_name; 112 112 if(! $mime_message->addHTMLImage($img_file, 'image/gif', '', true, '_' . $image_name)) 113 { 114 show_message("emoticonerror", 'error'); 115 } 113 $OUTPUT->show_message("emoticonerror", 'error'); 114 116 115 array_push($included_images, $image_name); 117 116 } … … 133 132 // remove all scripts and act as called in frame 134 133 $OUTPUT->reset(); 135 $ _framed = TRUE;134 $OUTPUT->framed = TRUE; 136 135 137 136 … … 141 140 if (empty($_POST['_to']) && empty($_POST['_subject']) && $_POST['_message']) 142 141 { 143 show_message("sendingfailed", 'error'); 144 //rcmail_overwrite_action('compose'); 145 rcube_iframe_response(); 142 $OUTPUT->show_message("sendingfailed", 'error'); 143 $OUTPUT->send('iframe'); 146 144 return; 147 145 } … … 337 335 // log error 338 336 if (!$sent) 339 { 340 raise_error(array('code' => 800, 341 'type' => 'smtp', 342 'line' => __LINE__, 343 'file' => __FILE__, 337 raise_error(array('code' => 800, 'type' => 'smtp', 'line' => __LINE__, 'file' => __FILE__, 344 338 'message' => "SMTP error: ".join("\n", $smtp_response)), TRUE, FALSE); 345 }346 339 } 347 340 … … 368 361 if (!$sent) 369 362 { 370 show_message("sendingfailed", 'error');371 rcube_iframe_response();363 $OUTPUT->show_message("sendingfailed", 'error'); 364 $OUTPUT->send('iframe'); 372 365 return; 373 366 } … … 409 402 if (!$saved) 410 403 { 411 raise_error(array('code' => 800, 412 'type' => 'imap', 413 'file' => __FILE__, 404 raise_error(array('code' => 800, 'type' => 'imap', 'file' => __FILE__, 414 405 'message' => "Could not save message in $CONFIG[$store_target]"), TRUE, FALSE); 415 406 416 show_message('errorsaving', 'error');417 rcube_iframe_response($errorout);407 $OUTPUT->show_message('errorsaving', 'error'); 408 $OUTPUT->send('iframe'); 418 409 } 419 410 … … 426 417 // raise error if deletion of old draft failed 427 418 if (!$deleted) 428 raise_error(array('code' => 800, 429 'type' => 'imap', 430 'file' => __FILE__, 419 raise_error(array('code' => 800, 'type' => 'imap', 'file' => __FILE__, 431 420 'message' => "Could not delete message from ".$CONFIG['drafts_mbox']), TRUE, FALSE); 432 421 } … … 435 424 if ($savedraft) 436 425 { 437 // clear the "saving message" busy status, and display success 438 show_message('messagesaved', 'confirmation'); 439 440 // update "_draft_saveid" on the page, which is used to delete a previous draft 441 $frameout = "var foundid = parent.rcube_find_object('_draft_saveid', parent.document);\n"; 442 $frameout .= sprintf("foundid.value = '%s';\n", str_replace(array('<','>'), "", $message_id)); 443 444 // update the "cmp_hash" to prevent "Unsaved changes" warning 445 $frameout .= sprintf("parent.%s.cmp_hash = parent.%s.compose_field_hash();\n", JS_OBJECT_NAME, JS_OBJECT_NAME); 426 // display success 427 $OUTPUT->show_message('messagesaved', 'confirmation'); 428 429 // update "_draft_saveid" and the "cmp_hash" to prevent "Unsaved changes" warning 430 $OUTPUT->command('set_draft_id', str_replace(array('<','>'), "", $message_id)); 431 $OUTPUT->command('compose_field_hash', true); 446 432 447 433 // start the auto-save timer again 448 $frameout .= sprintf("parent.%s.auto_save_start();", JS_OBJECT_NAME); 449 450 // send html page with JS calls as response 451 rcube_iframe_response($frameout); 434 $OUTPUT->command('auto_save_start'); 435 436 $OUTPUT->send('iframe'); 452 437 } 453 438 else … … 455 440 if ($CONFIG['smtp_log']) 456 441 { 457 $log_entry = sprintf("[%s] User: %d on %s; Message for %s; %s\n", 458 date("d-M-Y H:i:s O", mktime()), 459 $_SESSION['user_id'], 460 $_SERVER['REMOTE_ADDR'], 461 $mailto, 462 !empty($smtp_response) ? join('; ', $smtp_response) : ''); 442 $log_entry = sprintf( 443 "[%s] User: %d on %s; Message for %s; %s\n", 444 date("d-M-Y H:i:s O", mktime()), 445 $_SESSION['user_id'], 446 $_SERVER['REMOTE_ADDR'], 447 $mailto, 448 !empty($smtp_response) ? join('; ', $smtp_response) : ''); 463 449 464 450 if ($fp = @fopen($CONFIG['log_dir'].'/sendmail', 'a')) … … 470 456 471 457 rcmail_compose_cleanup(); 472 rcube_iframe_response(sprintf("parent.%s.sent_successfully('%s');", 473 JS_OBJECT_NAME, 474 JQ(rcube_label('messagesent')))); 458 $OUTPUT->command('sent_successfully', rcube_label('messagesent')); 459 $OUTPUT->send('iframe'); 475 460 } 476 461 -
branches/devel-addressbook/program/steps/mail/show.inc
r458 r471 37 37 if (!$MESSAGE['headers'] || !$MESSAGE['structure']) 38 38 { 39 show_message('messageopenerror', 'error');39 $OUTPUT->show_message('messageopenerror', 'error'); 40 40 if ($_action=='preview' && template_exists('messagepreview')) 41 41 parse_template('messagepreview'); -
branches/devel-addressbook/program/steps/mail/upload.inc
r458 r471 48 48 49 49 if (is_file($CONFIG['skin_path'] . '/images/icons/remove-attachment.png')) 50 $button = sprintf('<img src="%s/images/icons/remove-attachment.png" alt="%s" border="0" style="padding-right:2px;vertical-align:middle" />', 51 $CONFIG['skin_path'], 52 Q(rcube_label('delete'))); 50 $button = sprintf( 51 '<img src="%s/images/icons/remove-attachment.png" alt="%s" border="0" style="padding-right:2px;vertical-align:middle" />', 52 $CONFIG['skin_path'], 53 Q(rcube_label('delete'))); 53 54 else 54 55 $button = Q(rcube_label('delete')); 55 56 56 $content = sprintf('<a href="#delete" onclick="return %s.command(\\\'remove-attachment\\\', \\\'rcmfile%d\\\', this)" title="%s">%s</a>%s', 57 JS_OBJECT_NAME, 58 $id, 59 Q(rcube_label('delete')), 60 $button, 61 Q($_FILES['_attachments']['name'][$i])); 57 $content = sprintf( 58 '<a href="#delete" onclick="return %s.command(\'remove-attachment\', \'rcmfile%d\', this)" title="%s">%s</a>%s', 59 JS_OBJECT_NAME, 60 $id, 61 Q(rcube_label('delete')), 62 $button, 63 Q($_FILES['_attachments']['name'][$i])); 62 64 63 $response .= sprintf('parent.%s.add2attachment_list(\'rcmfile%d\',\'%s\');', 64 JS_OBJECT_NAME, 65 $id, 66 $content); 65 $OUTPUT->command('add2attachment_list', "rcmfile$id", $content); 67 66 } 68 67 else // upload failed … … 74 73 $msg = rcube_label('fileuploaderror'); 75 74 76 $ response = sprintf("parent.%s.display_message('%s', 'error');", JS_OBJECT_NAME, JQ($msg));75 $OUTPUT->command('display_message', $msg, 'error'); 77 76 } 78 77 } … … 80 79 81 80 // send html page with JS calls as response 82 $response .= "\nparent.".JS_OBJECT_NAME.".show_attachment_form(false);\n" 83 . 'parent.'.JS_OBJECT_NAME.".auto_save_start();"; 84 85 rcube_iframe_response($response); 81 $OUTPUT->command('show_attachment_form', false); 82 $OUTPUT->command('auto_save_start', false); 83 $OUTPUT->send('iframe'); 86 84 87 85 ?> -
branches/devel-addressbook/program/steps/settings/delete_identity.inc
r456 r471 20 20 */ 21 21 22 $REMOTE_REQUEST = $_GET['_remote'] ? TRUE : FALSE;23 24 22 if ($_GET['_iid'] && preg_match('/^[0-9]+(,[0-9]+)*$/',$_GET['_iid'])) 25 23 { … … 32 30 $count = $DB->affected_rows(); 33 31 if ($count) 34 { 35 $commands = show_message('deletedsuccessfully', 'confirmation'); 36 } 32 $OUTPUT->show_message('deletedsuccessfully', 'confirmation'); 37 33 38 34 // send response 39 if ($ REMOTE_REQUEST)40 rcube_remote_response($commands);35 if ($OUTPUT->ajax_call) 36 $OUTPUT->send(); 41 37 } 42 38 43 39 44 if ($ REMOTE_REQUEST)40 if ($OUTPUT->ajax_call) 45 41 exit; 46 42 -
branches/devel-addressbook/program/steps/settings/manage_folders.inc
r456 r471 30 30 $IMAP->subscribe(array($_GET['_mboxes'])); 31 31 32 if ($ REMOTE_REQUEST)33 rcube_remote_response('// subscribed');32 if ($OUTPUT->ajax_call) 33 $OUTPUT->remote_response('// subscribed'); 34 34 } 35 35 … … 40 40 $IMAP->unsubscribe(array($_GET['_mboxes'])); 41 41 42 if ($ REMOTE_REQUEST)43 rcube_remote_response('// unsubscribed');42 if ($OUTPUT->ajax_call) 43 $OUTPUT->remote_response('// unsubscribed'); 44 44 } 45 45 … … 50 50 $create = $IMAP->create_mailbox(trim(get_input_value('_name', RCUBE_INPUT_GET, FALSE, 'UTF-7')), TRUE); 51 51 52 if ($create && $REMOTE_REQUEST) 53 { 54 $commands = sprintf("this.add_folder_row('%s','%s')", 55 JQ($create), 56 JQ(rcube_charset_convert($create, 'UTF-7'))); 57 rcube_remote_response($commands); 58 } 59 else if (!$create && $REMOTE_REQUEST) 60 { 61 $commands = show_message('errorsaving', 'error'); 62 rcube_remote_response($commands); 52 if ($create && $OUTPUT->ajax_call) 53 { 54 $OUTPUT->command('add_folder_row', $create, rcube_charset_convert($create, 'UTF-7')); 55 $OUTPUT->send(); 56 } 57 else if (!$create && $OUTPUT->ajax_call) 58 { 59 $OUTPUT->show_message('errorsaving', 'error'); 60 $OUTPUT->remote_response(); 63 61 } 64 62 else if (!$create) 65 show_message('errorsaving', 'error');63 $OUTPUT->show_message('errorsaving', 'error'); 66 64 } 67 65 … … 70 68 { 71 69 if (!empty($_GET['_folder_oldname']) && !empty($_GET['_folder_newname'])) 72 $rename = $IMAP->rename_mailbox( get_input_value('_folder_oldname', RCUBE_INPUT_GET), trim(get_input_value('_folder_newname', RCUBE_INPUT_GET, FALSE, 'UTF-7')));70 $rename = $IMAP->rename_mailbox(($oldname = get_input_value('_folder_oldname', RCUBE_INPUT_GET)), trim(get_input_value('_folder_newname', RCUBE_INPUT_GET, FALSE, 'UTF-7'))); 73 71 74 if ($rename && $REMOTE_REQUEST) 75 { 76 $commands = sprintf("this.replace_folder_row('%s','%s','%s');\n", 77 JQ(get_input_value('_folder_oldname', RCUBE_INPUT_GET)), 78 JQ($rename), 79 JQ(rcube_charset_convert($rename, 'UTF-7'))); 80 81 $commands .= "this.reset_folder_rename();\n"; 82 83 rcube_remote_response($commands); 84 } 85 else if (!$rename && $REMOTE_REQUEST) 86 { 87 $commands = "this.reset_folder_rename();\n"; 88 $commands .= show_message('errorsaving', 'error'); 89 rcube_remote_response($commands); 72 if ($rename && $OUTPUT->ajax_call) 73 { 74 $OUTPUT->command('replace_folder_row', $oldname, $rename, rcube_charset_convert($rename, 'UTF-7')); 75 $OUTPUT->command('reset_folder_rename'); 76 $OUTPUT->send(); 77 } 78 else if (!$rename && $OUTPUT->ajax_call) 79 { 80 $OUTPUT->command('reset_folder_rename'); 81 $OUTPUT->show_message('errorsaving', 'error'); 82 $OUTPUT->send(); 90 83 } 91 84 else if (!$rename) 92 show_message('errorsaving', 'error');85 $OUTPUT->show_message('errorsaving', 'error'); 93 86 } 94 87 … … 99 92 $deleted = $IMAP->delete_mailbox(array(get_input_value('_mboxes', RCUBE_INPUT_GET))); 100 93 101 if ($ REMOTE_REQUEST&& $deleted)102 { 103 $ commands = sprintf("this.remove_folder_row('%s');\n", JQ(get_input_value('_mboxes', RCUBE_INPUT_GET)));104 $ commands .=show_message('folderdeleted', 'confirmation');105 rcube_remote_response($commands);106 } 107 else if ($ REMOTE_REQUEST)108 { 109 $ commands =show_message('errorsaving', 'error');110 rcube_remote_response($commands);94 if ($OUTPUT->ajax_call && $deleted) 95 { 96 $OUTPUT->command('remove_folder_row', get_input_value('_mboxes', RCUBE_INPUT_GET)); 97 $OUTPUT->show_message('folderdeleted', 'confirmation'); 98 $OUTPUT->send(); 99 } 100 else if ($OUTPUT->ajax_call) 101 { 102 $OUTPUT->show_message('errorsaving', 'error'); 103 $OUTPUT->send(); 111 104 } 112 105 } … … 167 160 $zebra_class = $i%2 ? 'even' : 'odd'; 168 161 $folder_js = JQ($folder); 169 $folder_js_enc = JQ(rcube_charset_convert($folder, 'UTF-7'));170 162 $folder_html = $CONFIG['protect_default_folders'] && in_array($folder, $CONFIG['default_imap_folders']) ? rcube_label(strtolower($folder)) : rcube_charset_convert($folder, 'UTF-7'); 171 163 172 164 if (!$protected) 173 $a_js_folders['rcmrow'.($i+1)] = array($folder _js, $folder_js_enc);165 $a_js_folders['rcmrow'.($i+1)] = array($folder, rcube_charset_convert($folder, 'UTF-7')); 174 166 175 167 $out .= sprintf('<tr id="rcmrow%d" class="%s"><td>%s</td>', … … 287 279 rcube_add_label('deletefolderconfirm'); 288 280 289 290 parse_template('managefolders'); 281 $OUTPUT->send('managefolders'); 291 282 ?> -
branches/devel-addressbook/program/steps/settings/save_identity.inc
r432 r471 27 27 if (empty($_POST['_name']) || empty($_POST['_email'])) 28 28 { 29 show_message('formincomplete', 'warning');29 $OUTPUT->show_message('formincomplete', 'warning'); 30 30 rcmail_overwrite_action('edit-identitiy'); 31 31 return; … … 75 75 if ($updated) 76 76 { 77 show_message('successfullysaved', 'confirmation');77 $OUTPUT->show_message('successfullysaved', 'confirmation'); 78 78 79 79 // mark all other identities as 'not-default' … … 96 96 { 97 97 // show error message 98 show_message('errorsaving', 'error');98 $OUTPUT->show_message('errorsaving', 'error'); 99 99 rcmail_overwrite_action('edit-identitiy'); 100 100 } … … 139 139 { 140 140 // show error message 141 show_message('errorsaving', 'error');141 $OUTPUT->show_message('errorsaving', 'error'); 142 142 rcmail_overwrite_action('edit-identity'); 143 143 } … … 146 146 147 147 // go to next step 148 rcmail_overwrite_action($_ POST['_framed']? 'edit-identity' : 'identities');148 rcmail_overwrite_action($_framed ? 'edit-identity' : 'identities'); 149 149 150 150 ?> -
branches/devel-addressbook/program/steps/settings/save_prefs.inc
r456 r471 44 44 45 45 if (rcmail_save_user_prefs($a_user_prefs)) 46 show_message('successfullysaved', 'confirmation');46 $OUTPUT->show_message('successfullysaved', 'confirmation'); 47 47 48 48
Note: See TracChangeset
for help on using the changeset viewer.
