Changeset 471 in subversion


Ignore:
Timestamp:
Feb 9, 2007 4:25:50 PM (6 years ago)
Author:
thomasb
Message:

devel-addressbook: Big rewrite for server response abstraction

Location:
branches/devel-addressbook
Files:
30 edited

Legend:

Unmodified
Added
Removed
  • branches/devel-addressbook/index.php

    r463 r471  
    33 +-----------------------------------------------------------------------+ 
    44 | RoundCube Webmail IMAP Client                                         | 
    5  | Version 0.1-20070201                                                  | 
     5 | Version 0.1-20070209                                                  | 
    66 |                                                                       | 
    77 | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland                 | 
     
    4242 
    4343// application constants 
    44 define('RCMAIL_VERSION', '0.1-20070201'); 
     44define('RCMAIL_VERSION', '0.1-20070209'); 
    4545define('RCMAIL_CHARSET', 'UTF-8'); 
    4646define('JS_OBJECT_NAME', 'rcmail'); 
     
    9999  $_task = 'mail'; 
    100100 
    101 if (!empty($_GET['_remote'])) 
    102   $REMOTE_REQUEST = TRUE; 
    103    
    104101 
    105102// set output buffering 
     
    125122if ($_framed) 
    126123  { 
    127   $COMM_PATH .= '&_framed=1'; 
     124  $COMM_PATH .= '&_framed=1'; 
    128125  $SESS_HIDDEN_FIELD .= "\n".'<input type="hidden" name="_framed" value="1" />'; 
    129126  } 
     
    155152  if (empty($_COOKIE)) 
    156153    { 
    157     show_message("cookiesdisabled", 'warning'); 
     154    $OUTPUT->show_message("cookiesdisabled", 'warning'); 
    158155    } 
    159156  else if (isset($_POST['_user']) && isset($_POST['_pass']) && 
     
    167164  else 
    168165    { 
    169     show_message("loginfailed", 'warning'); 
     166    $OUTPUT->show_message("loginfailed", 'warning'); 
    170167    $_SESSION['user_id'] = ''; 
    171168    } 
     
    175172else if (($_task=='logout' || $_action=='logout') && isset($_SESSION['user_id'])) 
    176173  { 
    177   show_message('loggedout'); 
     174  $OUTPUT->show_message('loggedout'); 
    178175  rcmail_kill_session(); 
    179176  } 
     
    185182      (!empty($CONFIG['session_lifetime']) && isset($SESS_CHANGED) && $SESS_CHANGED + $CONFIG['session_lifetime']*60 < mktime())) 
    186183    { 
    187     $message = show_message('sessionerror', 'error'); 
     184    $OUTPUT->show_message('sessionerror', 'error'); 
    188185    rcmail_kill_session(); 
    189186    } 
     
    197194  if (!$conn) 
    198195    { 
    199     show_message('imaperror', 'error'); 
     196    $OUTPUT->show_message('imaperror', 'error'); 
    200197    $_SESSION['user_id'] = ''; 
    201198    } 
     
    208205if (empty($_SESSION['user_id'])) 
    209206  { 
    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);"); 
    215209   
    216210  $_task = 'login'; 
     
    229223if (!$_SESSION['user_id']) 
    230224  { 
    231   parse_template('login'); 
     225  $OUTPUT->send('login'); 
    232226  exit; 
    233227  } 
     
    237231if ($_action=='keep-alive') 
    238232  { 
    239   rcube_remote_response(''); 
     233  $OUTPUT->reset(); 
     234  $OUTPUT->send(''); 
    240235  exit; 
    241236  } 
     
    359354 
    360355// parse main template 
    361 parse_template($_task); 
     356$OUTPUT->send($_task); 
    362357 
    363358 
  • branches/devel-addressbook/program/include/main.inc

    r463 r471  
    206206function rcmail_imap_init($connect=FALSE) 
    207207  { 
    208   global $CONFIG, $DB, $IMAP; 
     208  global $CONFIG, $DB, $IMAP, $OUTPUT; 
    209209 
    210210  $IMAP = new rcube_imap($DB); 
     
    217217    { 
    218218    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'); 
    220220       
    221221    rcmail_set_imap_prop(); 
     
    766766 
    767767 
     768// @deprecated 
    768769function show_message($message, $type='notice', $vars=NULL) 
    769770  { 
    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); 
    785773  } 
    786774 
     
    815803   
    816804  return $key; 
    817   } 
    818  
    819  
    820 // send correct response on a remote request 
    821 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 code 
    835   print rcube_charset_convert($js_code, RCMAIL_CHARSET, $OUTPUT->get_charset()); 
    836  
    837   if ($flush)  // flush the output buffer 
    838     flush(); 
    839   else         // terminate script 
    840     exit; 
    841   } 
    842  
    843  
    844 // send correctly formatted response for a request posted to an iframe 
    845 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; 
    854805  } 
    855806 
     
    889840  $arg_list = func_get_args(); 
    890841  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)); 
    895843  } 
    896844 
     
    10831031      $str = rcube_charset_convert($str, RCMAIL_CHARSET, $OUTPUT->get_charset()); 
    10841032       
    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))); 
    10861034    } 
    10871035 
     
    10891037  return $str; 
    10901038  } 
    1091  
     1039   
    10921040/** 
    10931041 * Quote a given string. Alias function for rep_specialchars_output 
     
    11961144 
    11971145// Wrapper for rcmail_template::parse() 
     1146// @deprecated 
    11981147function parse_template($name='main', $exit=TRUE) 
    11991148  { 
  • branches/devel-addressbook/program/include/rcmail_template.inc

    r458 r471  
    2828  var $config; 
    2929  var $task = ''; 
     30  var $framed = false; 
     31  var $ajax_call = false; 
    3032  var $pagetitle = ''; 
    3133  var $env = array(); 
    3234  var $js_env = array(); 
     35  var $js_commands = array(); 
    3336  var $object_handlers = array(); 
    3437 
     
    4144    $this->task = $task; 
    4245    $this->config = $config; 
     46    $this->ajax_call = !empty($_GET['_remote']) || !empty($_POST['_remote']); 
    4347     
    4448    // 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    } 
    5562  } 
    5663 
     
    113120    $this->add_script(JS_OBJECT_NAME.".gui_object('$obj', '$id');"); 
    114121  } 
     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  } 
    115211   
     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 
    116227 
    117228  /** 
     
    136247    else 
    137248    { 
    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); 
    143255      return FALSE; 
    144256    } 
     
    146258    // parse for specialtags 
    147259    $output = $this->parse_xml($this->parse_conditions($templ)); 
    148  
    149     // write all env variables to client 
    150     $this->add_script(JS_OBJECT_NAME.'.set_env('.array2js($this->js_env).')', 'head_top'); 
    151260 
    152261    // add debug console 
     
    161270      exit; 
    162271  } 
     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  } 
    163314   
    164315   
    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   */ 
    174319  function parse_conditions($input) 
    175320  { 
     
    473618    return $out; 
    474619  } 
    475    
    476    
     620 
    477621} 
    478622 
  • branches/devel-addressbook/program/include/rcube_shared.inc

    r458 r471  
    12371237 
    12381238 
     1239/** 
     1240 * Convert a variable into a javascript notation string 
     1241 */ 
     1242function 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 
    12391291// function to convert an array to a javascript array 
     1292// @deprecated 
    12401293function array2js($arr, $type='') 
    12411294  { 
     
    12431296    $type = 'mixed'; 
    12441297 
    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); 
    13181299  } 
    13191300 
  • branches/devel-addressbook/program/js/app.js

    r463 r471  
    387387 
    388388    // get summary of all field values 
    389     this.cmp_hash = this.compose_field_hash(); 
     389    this.compose_field_hash(true); 
    390390  
    391391    // start the auto-save timer 
     
    16901690  this.set_spellcheck_state = function(s) 
    16911691    { 
    1692   this.spellcheck_ready = (s=='check_spelling' || s=='ready'); 
     1692    this.spellcheck_ready = (s=='check_spelling' || s=='ready'); 
    16931693    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    }; 
    16961703 
    16971704  this.auto_save_start = function() 
     
    17021709 
    17031710 
    1704   this.compose_field_hash = function() 
     1711  this.compose_field_hash = function(save) 
    17051712    { 
    17061713    // check input fields 
     
    17221729    if (input_message && input_message.value) 
    17231730      str += input_message.value; 
    1724  
     1731     
     1732    if (save) 
     1733      this.cmp_hash = str; 
     1734     
    17251735    return str; 
    17261736    }; 
     
    29012911  this.display_message = function(msg, type, hold) 
    29022912    { 
     2913    // pass command to parent window 
     2914    if (this.env.framed && parent.rcmail ) 
     2915      return parent.rcmail.display_message(msg, type, hold); 
     2916 
    29032917    this.set_busy(false); 
    29042918    if (!this.loaded)  // save message in order to display after page loaded 
  • branches/devel-addressbook/program/steps/addressbook/delete.inc

    r447 r471  
    66 |                                                                       | 
    77 | This file is part of the RoundCube Webmail client                     | 
    8  | Copyright (C) 2005, RoundCube Dev. - Switzerland                      | 
     8 | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland                 | 
    99 | Licensed under the GNU GPL                                            | 
    1010 |                                                                       | 
     
    1919 
    2020*/ 
    21  
    22 $REMOTE_REQUEST = TRUE; 
    2321 
    2422if (($cid = get_input_value('_cid', RCUBE_INPUT_GPC)) && preg_match('/^[0-9]+(,[0-9]+)*$/', $cid)) 
     
    3533 
    3634  // 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'])); 
    3937 
    4038  // add new rows from next page (if any) 
     
    4341    { 
    4442    $result = $CONTACTS->list_records(null, -$deleted); 
    45     $commands .= rcmail_js_contacts_list($result); 
     43    rcmail_js_contacts_list($result); 
    4644    } 
    4745 
    4846  // send response 
    49   rcube_remote_response($commands); 
     47  $OUTPUT->send(); 
    5048  } 
    5149 
  • branches/devel-addressbook/program/steps/addressbook/edit.inc

    r456 r471  
    2222 
    2323if (($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']); 
    2525 
    2626 
    2727function rcmail_contact_editform($attrib) 
    28   { 
    29   global $CONTACTS; 
     28{ 
     29  global $CONTACTS, $OUTPUT; 
    3030 
    3131  // check if we have a valid result 
    3232  if (!($record = $CONTACTS->get_result()) && $GLOBALS['_action'] != 'add') 
    33     return show_message('contactnotfound'); 
     33  { 
     34    $OUTPUT->show_message('contactnotfound'); 
     35    return false; 
     36  } 
    3437 
    3538  // add some labels to client 
     
    4346  // a specific part is requested 
    4447  if ($attrib['part']) 
    45     { 
     48  { 
    4649    $out = $form_start; 
    4750    $out .= rcmail_get_edit_field($attrib['part'], $record[$attrib['part']], $attrib);  
    4851    return $out; 
    49     } 
     52  } 
    5053 
    5154 
     
    5558  $a_show_cols = array('name', 'firstname', 'surname', 'email'); 
    5659  foreach ($a_show_cols as $col) 
    57     { 
     60  { 
    5861    $attrib['id'] = 'rcmfd_'.$col; 
    5962    $value = rcmail_get_edit_field($col, $record[$col], $attrib); 
     
    6265                    Q(rcube_label($col)), 
    6366                    $value); 
    64     } 
     67  } 
    6568 
    6669  $out .= "\n</table>$form_end"; 
    6770 
    6871  return $out;   
    69   } 
     72} 
    7073 
    7174$OUTPUT->add_handler('contacteditform', 'rcmail_contact_editform'); 
  • branches/devel-addressbook/program/steps/addressbook/func.inc

    r463 r471  
    4848  // allow the following attributes to be added to the <ul> tag 
    4949  $out = '<ul' . create_attrib_string($attrib, array('style', 'class', 'id')) . ">\n"; 
    50    
    5150  $out .= '<li><a href="#">' . rcube_label('personaladrbook') .  "</a></li>\n"; 
     51  $out .= '</ul>'; 
    5252 
    5353  $OUTPUT->add_gui_object('directorylist', $attrib['id']); 
     
    9292 
    9393 
    94 function rcmail_js_contacts_list($result, $obj_name='this') 
     94function rcmail_js_contacts_list($result, $prefix='') 
    9595  { 
    96   $commands = ''; 
    97    
     96  global $OUTPUT; 
     97 
    9898  if (empty($result) || $result['count'] == 0) 
    99     return $commands; 
     99    return; 
    100100 
    101101  unset($result['count'], $result['first']); 
     
    110110    // format each col 
    111111    foreach ($a_show_cols as $col) 
    112       $a_row_cols[$col] = Q($row[$col]); 
     112      $a_row_cols[$col] = $row[$col]; 
    113113     
    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); 
    118115    } 
    119      
    120   return $commands; 
    121116  } 
    122117 
  • branches/devel-addressbook/program/steps/addressbook/list.inc

    r456 r471  
    2020*/ 
    2121 
    22 $REMOTE_REQUEST = TRUE; 
    23  
    2422// get contacts for this user 
    2523$result = $CONTACTS->list_records(); 
    2624 
    2725// 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)); 
    3028 
    3129// create javascript list 
    32 $commands .= rcmail_js_contacts_list($result); 
     30rcmail_js_contacts_list($result); 
    3331   
    3432// send response 
    35 rcube_remote_response($commands); 
     33$OUTPUT->send(); 
    3634 
    3735?> 
  • branches/devel-addressbook/program/steps/addressbook/save.inc

    r458 r471  
    66 |                                                                       | 
    77 | This file is part of the RoundCube Webmail client                     | 
    8  | Copyright (C) 2005, RoundCube Dev. - Switzerland                      | 
     8 | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland                 | 
    99 | Licensed under the GNU GPL                                            | 
    1010 |                                                                       | 
     
    2323if ($CONTACTS->readonly) 
    2424  { 
    25   show_message('contactreadonly', 'error'); 
     25  $OUTPUT->show_message('contactreadonly', 'error'); 
    2626  rcmail_overwrite_action(empty($_POST['_cid']) ? 'add' : 'show'); 
    2727  return; 
     
    3131if ((!get_input_value('_name', RCUBE_INPUT_POST) || !get_input_value('_email', RCUBE_INPUT_POST)) && $_framed) 
    3232  { 
    33   show_message('formincomplete', 'warning'); 
     33  $OUTPUT->show_message('formincomplete', 'warning'); 
    3434  rcmail_overwrite_action(empty($_POST['_cid']) ? 'add' : 'show'); 
    3535  return; 
     
    6565 
    6666      // 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); 
    7268      } 
    7369       
    7470    // show confirmation 
    75     show_message('successfullysaved', 'confirmation');     
     71    $OUTPUT->show_message('successfullysaved', 'confirmation');     
    7672    rcmail_overwrite_action('show'); 
    7773    } 
     
    7975    { 
    8076    // show error message 
    81     show_message('errorsaving', 'error'); 
     77    $OUTPUT->show_message('errorsaving', 'error'); 
    8278    rcmail_overwrite_action('show'); 
    8379    } 
     
    9389  if ($existing['count']) 
    9490    { 
    95     show_message('contactexists', 'warning'); 
     91    $OUTPUT->show_message('contactexists', 'warning'); 
    9692    rcmail_overwrite_action('add'); 
    9793    return; 
     
    107103      $result = $CONTACTS->search($CONTACTS->primary_key, $insert_id); 
    108104       
    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); 
    115107 
    116108      // update record count display 
    117109      $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()); 
    124111      } 
    125112 
    126113    // show confirmation 
    127     show_message('successfullysaved', 'confirmation'); 
     114    $OUTPUT->show_message('successfullysaved', 'confirmation'); 
    128115    rcmail_overwrite_action('show'); 
    129116    $_GET['_cid'] = $insert_id; 
     
    132119    { 
    133120    // show error message 
    134     show_message('errorsaving', 'error'); 
     121    $OUTPUT->show_message('errorsaving', 'error'); 
    135122    rcmail_overwrite_action('add'); 
    136123    } 
  • branches/devel-addressbook/program/steps/addressbook/search.inc

    r463 r471  
    2020*/ 
    2121 
    22 $REMOTE_REQUEST = TRUE; 
    23  
    2422$search = trim(get_input_value('_search', RCUBE_INPUT_GET)); 
    2523$search_request = md5('addr'.$search); 
    26 $commands = ''; 
    2724 
    2825// get contacts for this user 
     
    3532   
    3633  // create javascript list 
    37   $commands .= rcmail_js_contacts_list($result); 
     34  rcmail_js_contacts_list($result); 
    3835} 
    3936else 
    4037{ 
    41   $commands = show_message('nocontactsfound', 'warning'); 
     38  $OUTPUT->show_message('nocontactsfound', 'warning'); 
    4239  $search_request = -1; 
    4340} 
    4441 
    4542// 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()); 
    4946   
    5047// send response 
    51 rcube_remote_response($commands); 
     48$OUTPUT->send(); 
    5249 
    5350?> 
  • branches/devel-addressbook/program/steps/addressbook/show.inc

    r458 r471  
    2828function rcmail_contact_details($attrib) 
    2929  { 
    30   global $CONTACTS; 
     30  global $CONTACTS, $OUTPUT; 
    3131 
    3232  // check if we have a valid result 
    3333  if (!($record = $CONTACTS->get_result())) 
    34     return show_message('contactnotfound'); 
     34  { 
     35    $OUTPUT->show_message('contactnotfound'); 
     36    return false; 
     37  } 
    3538   
    3639  // a specific part is requested 
    3740  if ($attrib['part']) 
    38     return rep_specialchars_output($record[$attrib['part']]); 
     41    return Q($record[$attrib['part']]); 
    3942 
    4043  // return the complete address record as table 
     
    6467  } 
    6568 
     69 
     70//$OUTPUT->framed = $_framed; 
    6671$OUTPUT->add_handler('contactdetails', 'rcmail_contact_details'); 
    67  
    68  
    69 parse_template('showcontact'); 
     72$OUTPUT->send('showcontact'); 
    7073?> 
  • branches/devel-addressbook/program/steps/mail/addcontact.inc

    r456 r471  
    2222require_once('include/rcube_contacts.inc'); 
    2323 
    24 $REMOTE_REQUEST = TRUE; 
    25 $commands = ''; 
     24$done = false; 
    2625 
    2726if (!empty($_POST['_address'])) 
     
    3736    // check for existing contacts 
    3837    $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'); 
    4342  } 
    4443} 
    4544 
    46 if (empty($commands)) 
    47   $commands = show_message('errorsavingcontact', 'warning'); 
     45if (!$done) 
     46  $OUTPUT->show_message('errorsavingcontact', 'warning'); 
    4847 
    49 rcube_remote_response($commands);   
    50 exit; 
     48$OUTPUT->send(); 
    5149?> 
  • branches/devel-addressbook/program/steps/mail/check_recent.inc

    r291 r471  
    2020*/ 
    2121 
    22 $REMOTE_REQUEST = TRUE; 
    23  
    2422$a_mailboxes = $IMAP->list_mailboxes(); 
    2523 
     
    3331      $unread_count = $IMAP->messagecount(NULL, 'UNSEEN', TRUE); 
    3432 
    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()); 
    3937 
    4038      // add new message headers to list 
     
    4745        } 
    4846 
    49       $commands .= rcmail_js_message_list($a_headers, TRUE); 
     47      rcmail_js_message_list($a_headers, TRUE); 
    5048      } 
    5149    } 
     
    5351    { 
    5452    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')); 
    5654    } 
    5755  } 
    5856 
    59 rcube_remote_response($commands); 
     57$OUTPUT->send(); 
     58 
    6059?> 
  • branches/devel-addressbook/program/steps/mail/compose.inc

    r458 r471  
    3737    @unlink($_SESSION['compose']['attachments'][$id]['path']); 
    3838    $_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(); 
    4141    exit; 
    4242    } 
     
    6262 
    6363// 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); 
    6565 
    6666 
  • branches/devel-addressbook/program/steps/mail/folders.inc

    r369 r471  
    1919*/ 
    2020 
    21 $REMOTE_REQUEST = TRUE; 
    2221$mbox_name = $IMAP->get_mailbox_name(); 
    23  
    2422 
    2523// send EXPUNGE command 
    2624if ($_action=='expunge') 
    27   { 
     25{ 
    2826  $success = $IMAP->expunge($_GET['_mbox']); 
    2927 
    3028  // reload message list if current mailbox   
    3129  if ($success && $_GET['_reload']) 
    32     { 
    33     rcube_remote_response('this.message_list.clear();', TRUE); 
     30  { 
     31    $OUTPUT->command('message_list.clear'); 
    3432    $_action = 'list'; 
    3533    return; 
    36     } 
     34  } 
    3735  else 
    3836    $commands = "// expunged: $success\n"; 
    39   } 
     37} 
    4038 
    4139// clear mailbox 
    4240else if ($_action=='purge') 
    43   { 
     41{ 
    4442  $success = $IMAP->clear_mailbox($_GET['_mbox']); 
    4543   
    4644  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  } 
    5452  else 
    5553    $commands = "// purged: $success"; 
    56   } 
     54} 
    5755 
    58  
    59  
    60 rcube_remote_response($commands); 
     56$OUTPUT->send($commands); 
    6157?> 
  • branches/devel-addressbook/program/steps/mail/func.inc

    r463 r471  
    512512function rcmail_js_message_list($a_headers, $insert_top=FALSE) 
    513513  { 
    514   global $CONFIG, $IMAP; 
    515  
    516   $commands = ''; 
     514  global $CONFIG, $IMAP, $OUTPUT; 
     515 
    517516  $a_show_cols = is_array($CONFIG['list_cols']) ? $CONFIG['list_cols'] : array('subject'); 
    518517 
     
    522521    $a_show_cols[$f] = 'to'; 
    523522 
    524   $commands .= sprintf("this.set_message_coltypes(%s);\n", array2js($a_show_cols));  
     523  $OUTPUT->command('set_message_coltypes', $a_show_cols); 
    525524 
    526525  // loop through message headers 
     
    551550    $a_msg_flags['unread'] = $header->seen ? 0 : 1; 
    552551    $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    } 
    562559  } 
    563560 
  • branches/devel-addressbook/program/steps/mail/getunread.inc

    r269 r471  
    2020*/ 
    2121 
    22 $REMOTE_REQUEST = TRUE; 
    23  
    2422$a_folders = $IMAP->list_mailboxes(); 
    2523 
    2624if (!empty($a_folders)) 
    27   { 
     25{ 
    2826  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} 
    3429 
    35 exit; 
     30$OUTPUT->send(); 
    3631?> 
  • branches/devel-addressbook/program/steps/mail/list.inc

    r422 r471  
    2020*/ 
    2121 
    22 $REMOTE_REQUEST = TRUE; 
    2322$OUTPUT_TYPE = 'js'; 
    24  
    2523$sort = isset($_GET['_sort']) ? $_GET['_sort'] : false; 
    2624 
    2725// is there a sort type for this request? 
    2826if ($sort) 
    29   { 
     27{ 
    3028  // yes, so set the sort vars 
    3129  list($sort_col, $sort_order) = explode('_', $sort); 
     
    3432  $_SESSION['sort_col'] = $sort_col; 
    3533  $_SESSION['sort_order'] = $sort_order; 
    36   } 
     34} 
    3735else 
    38   { 
     36{ 
    3937  // use session settings if set, defaults if not 
    4038  $sort_col   = isset($_SESSION['sort_col'])   ? $_SESSION['sort_col']   : $CONFIG['message_sort_col']; 
    4139  $sort_order = isset($_SESSION['sort_order']) ? $_SESSION['sort_order'] : $CONFIG['message_sort_order']; 
    42   } 
     40} 
    4341 
    4442 
     
    5149// update message count display 
    5250$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)); 
    5654 
    5755// 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); 
    6057 
    6158 
    6259// add message rows 
    6360if (isset($a_headers) && count($a_headers)) 
    64   $commands .= rcmail_js_message_list($a_headers); 
     61  rcmail_js_message_list($a_headers); 
    6562 
    6663   
    6764// send response 
    68 rcube_remote_response($commands); 
     65$OUTPUT->send(); 
    6966 
    70 exit; 
    7167?> 
  • branches/devel-addressbook/program/steps/mail/mark.inc

    r232 r471  
    1919*/ 
    2020 
    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'); 
    2726 
    2827if ($_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) 
    2932  { 
    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     { 
    3433    $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(); 
    3836  } 
     37} 
    3938   
    4039exit; 
  • branches/devel-addressbook/program/steps/mail/move_del.inc

    r447 r471  
    66 |                                                                       | 
    77 | This file is part of the RoundCube Webmail client                     | 
    8  | Copyright (C) 2005, RoundCube Dev. - Switzerland                      | 
     8 | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland                 | 
    99 | Licensed under the GNU GPL                                            | 
    1010 |                                                                       | 
     
    2020*/ 
    2121 
    22 $REMOTE_REQUEST = TRUE; 
    23  
    2422// move messages 
    2523if ($_action=='moveto' && $_GET['_uid'] && $_GET['_target_mbox']) 
    26   { 
     24{ 
    2725  $count = sizeof(explode(',', $_GET['_uid'])); 
    2826  $moved = $IMAP->move_message($_GET['_uid'], $_GET['_target_mbox'], $_GET['_mbox']); 
    2927   
    3028  if (!$moved) 
    31     { 
     29  { 
    3230    // 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(); 
    3634    exit; 
    37     } 
    3835  } 
     36} 
    3937 
    4038// delete messages  
    4139else if ($_action=='delete' && $_GET['_uid']) 
    42   { 
     40{ 
    4341  $count = sizeof(explode(',', $_GET['_uid'])); 
    4442  $del = $IMAP->delete_message($_GET['_uid'], $_GET['_mbox']); 
    4543   
    4644  if (!$del) 
    47     { 
     45  { 
    4846    // 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(); 
    5250    exit; 
    53     } 
    5451  } 
     52} 
    5553   
    5654// unknown action or missing query param 
    5755else 
    58   { 
    5956  exit; 
    60   } 
    6157 
    6258// refresh saved seach set after moving some messages 
     
    6864$msg_count = $IMAP->messagecount(); 
    6965$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)); 
    7268 
    7369 
    7470// update mailboxlist 
    7571$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')); 
    7773 
    7874if ($_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')); 
    8076 
    81 $commands .= sprintf("this.set_quota('%s');\n", $IMAP->get_quota());  
     77$OUTPUT->command('set_quota', $IMAP->get_quota()); 
    8278 
    8379// add new rows from next page (if any) 
    8480if ($_GET['_from']!='show' && $pages>1 && $IMAP->list_page < $pages) 
    85   { 
     81{ 
    8682  $sort_col   = isset($_SESSION['sort_col'])   ? $_SESSION['sort_col']   : $CONFIG['message_sort_col']; 
    8783  $sort_order = isset($_SESSION['sort_order']) ? $_SESSION['sort_order'] : $CONFIG['message_sort_order']; 
     
    9086  $a_headers = array_slice($a_headers, -$count, $count); 
    9187 
    92   $commands .= rcmail_js_message_list($a_headers); 
    93   } 
     88  rcmail_js_message_list($a_headers); 
     89} 
    9490 
    9591 
    9692// send response 
    97 rcube_remote_response($commands); 
     93$OUTPUT->send(); 
    9894 
    99 exit; 
    10095?> 
  • branches/devel-addressbook/program/steps/mail/quotadisplay.inc

    r414 r471  
    2323$id = isset($_GET['_id']) ? $_GET['_id'] : 'rcmquotadisplay'; 
    2424$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)); 
    2726 
    2827exit; 
  • branches/devel-addressbook/program/steps/mail/search.inc

    r463 r471  
    7272// execute IMAP search 
    7373$result = $IMAP->search($mbox, $subject, $search, $imap_charset); 
    74  
    75 $commands = ''; 
    7674$count = 0; 
    7775   
    7876// Make sure our $result is legit.. 
    7977if (is_array($result) && $result[0] != '') 
    80   { 
     78{ 
    8179  // Get the headers 
    8280  $result_h = $IMAP->list_header_set($mbox, $result, 1, $_SESSION['sort_col'], $_SESSION['sort_order']); 
     
    8987  // Make sure we got the headers 
    9088  if ($result_h != NULL) 
    91     { 
     89  { 
    9290    $_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)); 
    9693  } 
     94} 
    9795else 
    98   { 
    99   $commands = show_message('searchnomatch', 'warning'); 
     96{ 
     97  $OUTPUT->show_message('searchnomatch', 'warning'); 
    10098  $search_request = -1; 
    101   } 
     99} 
    102100 
    103101// update message count display 
    104102$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(); 
    110108 
    111109?> 
  • branches/devel-addressbook/program/steps/mail/sendmail.inc

    r458 r471  
    66 |                                                                       | 
    77 | This file is part of the RoundCube Webmail client                     | 
    8  | Copyright (C) 2005, RoundCube Dev. - Switzerland                      | 
     8 | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland                 | 
    99 | Licensed under the GNU GPL                                            | 
    1010 |                                                                       | 
     
    111111      $img_file = $INSTALL_PATH . '/' . $searchstr . $image_name; 
    112112      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 
    116115      array_push($included_images, $image_name); 
    117116      } 
     
    133132// remove all scripts and act as called in frame 
    134133$OUTPUT->reset(); 
    135 $_framed = TRUE; 
     134$OUTPUT->framed = TRUE; 
    136135 
    137136 
     
    141140if (empty($_POST['_to']) && empty($_POST['_subject']) && $_POST['_message']) 
    142141  { 
    143   show_message("sendingfailed", 'error');  
    144   //rcmail_overwrite_action('compose'); 
    145   rcube_iframe_response(); 
     142  $OUTPUT->show_message("sendingfailed", 'error'); 
     143  $OUTPUT->send('iframe'); 
    146144  return; 
    147145  } 
     
    337335    // log error 
    338336    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__, 
    344338                        'message' => "SMTP error: ".join("\n", $smtp_response)), TRUE, FALSE); 
    345       } 
    346339    } 
    347340   
     
    368361  if (!$sent) 
    369362    { 
    370     show_message("sendingfailed", 'error');  
    371     rcube_iframe_response(); 
     363    $OUTPUT->show_message("sendingfailed", 'error');  
     364    $OUTPUT->send('iframe'); 
    372365    return; 
    373366    } 
     
    409402  if (!$saved) 
    410403    { 
    411     raise_error(array('code' => 800, 
    412                       'type' => 'imap', 
    413                       'file' => __FILE__, 
     404    raise_error(array('code' => 800, 'type' => 'imap', 'file' => __FILE__, 
    414405                      'message' => "Could not save message in $CONFIG[$store_target]"), TRUE, FALSE); 
    415406     
    416     show_message('errorsaving', 'error'); 
    417     rcube_iframe_response($errorout); 
     407    $OUTPUT->show_message('errorsaving', 'error'); 
     408    $OUTPUT->send('iframe'); 
    418409    } 
    419410 
     
    426417    // raise error if deletion of old draft failed 
    427418    if (!$deleted) 
    428       raise_error(array('code' => 800, 
    429                         'type' => 'imap', 
    430                         'file' => __FILE__, 
     419      raise_error(array('code' => 800, 'type' => 'imap', 'file' => __FILE__, 
    431420                        'message' => "Could not delete message from ".$CONFIG['drafts_mbox']), TRUE, FALSE); 
    432421    } 
     
    435424if ($savedraft) 
    436425  { 
    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); 
    446432 
    447433  // 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'); 
    452437  } 
    453438else 
     
    455440  if ($CONFIG['smtp_log']) 
    456441    { 
    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) : ''); 
    463449 
    464450    if ($fp = @fopen($CONFIG['log_dir'].'/sendmail', 'a')) 
     
    470456 
    471457  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'); 
    475460  } 
    476461 
  • branches/devel-addressbook/program/steps/mail/show.inc

    r458 r471  
    3737  if (!$MESSAGE['headers'] || !$MESSAGE['structure']) 
    3838    { 
    39     show_message('messageopenerror', 'error'); 
     39    $OUTPUT->show_message('messageopenerror', 'error'); 
    4040    if ($_action=='preview' && template_exists('messagepreview')) 
    4141        parse_template('messagepreview'); 
  • branches/devel-addressbook/program/steps/mail/upload.inc

    r458 r471  
    4848 
    4949    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'))); 
    5354    else 
    5455      $button = Q(rcube_label('delete')); 
    5556 
    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])); 
    6264 
    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); 
    6766    } 
    6867  else // upload failed 
     
    7473      $msg = rcube_label('fileuploaderror'); 
    7574     
    76     $response = sprintf("parent.%s.display_message('%s', 'error');", JS_OBJECT_NAME, JQ($msg)); 
     75    $OUTPUT->command('display_message', $msg, 'error'); 
    7776    } 
    7877  } 
     
    8079 
    8180// 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'); 
    8684 
    8785?> 
  • branches/devel-addressbook/program/steps/settings/delete_identity.inc

    r456 r471  
    2020*/ 
    2121 
    22 $REMOTE_REQUEST = $_GET['_remote'] ? TRUE : FALSE; 
    23  
    2422if ($_GET['_iid'] && preg_match('/^[0-9]+(,[0-9]+)*$/',$_GET['_iid'])) 
    2523  { 
     
    3230  $count = $DB->affected_rows(); 
    3331  if ($count) 
    34     { 
    35     $commands = show_message('deletedsuccessfully', 'confirmation'); 
    36     } 
     32    $OUTPUT->show_message('deletedsuccessfully', 'confirmation'); 
    3733 
    3834  // send response 
    39   if ($REMOTE_REQUEST) 
    40     rcube_remote_response($commands); 
     35  if ($OUTPUT->ajax_call) 
     36    $OUTPUT->send(); 
    4137  } 
    4238 
    4339 
    44 if ($REMOTE_REQUEST) 
     40if ($OUTPUT->ajax_call) 
    4541  exit; 
    4642 
  • branches/devel-addressbook/program/steps/settings/manage_folders.inc

    r456 r471  
    3030    $IMAP->subscribe(array($_GET['_mboxes'])); 
    3131 
    32   if ($REMOTE_REQUEST) 
    33     rcube_remote_response('// subscribed'); 
     32  if ($OUTPUT->ajax_call) 
     33    $OUTPUT->remote_response('// subscribed'); 
    3434  } 
    3535 
     
    4040    $IMAP->unsubscribe(array($_GET['_mboxes'])); 
    4141 
    42   if ($REMOTE_REQUEST) 
    43     rcube_remote_response('// unsubscribed'); 
     42  if ($OUTPUT->ajax_call) 
     43    $OUTPUT->remote_response('// unsubscribed'); 
    4444  } 
    4545 
     
    5050    $create = $IMAP->create_mailbox(trim(get_input_value('_name', RCUBE_INPUT_GET, FALSE, 'UTF-7')), TRUE); 
    5151 
    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(); 
    6361    } 
    6462  else if (!$create) 
    65     show_message('errorsaving', 'error'); 
     63    $OUTPUT->show_message('errorsaving', 'error'); 
    6664  } 
    6765 
     
    7068  { 
    7169  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'))); 
    7371     
    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(); 
    9083    } 
    9184  else if (!$rename) 
    92     show_message('errorsaving', 'error'); 
     85    $OUTPUT->show_message('errorsaving', 'error'); 
    9386  } 
    9487 
     
    9992    $deleted = $IMAP->delete_mailbox(array(get_input_value('_mboxes', RCUBE_INPUT_GET))); 
    10093 
    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(); 
    111104    } 
    112105  } 
     
    167160    $zebra_class = $i%2 ? 'even' : 'odd'; 
    168161    $folder_js = JQ($folder); 
    169     $folder_js_enc = JQ(rcube_charset_convert($folder, 'UTF-7')); 
    170162    $folder_html = $CONFIG['protect_default_folders'] && in_array($folder, $CONFIG['default_imap_folders']) ? rcube_label(strtolower($folder)) : rcube_charset_convert($folder, 'UTF-7'); 
    171163     
    172164    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')); 
    174166 
    175167    $out .= sprintf('<tr id="rcmrow%d" class="%s"><td>%s</td>', 
     
    287279rcube_add_label('deletefolderconfirm'); 
    288280 
    289  
    290 parse_template('managefolders'); 
     281$OUTPUT->send('managefolders'); 
    291282?> 
  • branches/devel-addressbook/program/steps/settings/save_identity.inc

    r432 r471  
    2727if (empty($_POST['_name']) || empty($_POST['_email'])) 
    2828  { 
    29   show_message('formincomplete', 'warning'); 
     29  $OUTPUT->show_message('formincomplete', 'warning'); 
    3030  rcmail_overwrite_action('edit-identitiy'); 
    3131  return; 
     
    7575  if ($updated) 
    7676    { 
    77     show_message('successfullysaved', 'confirmation'); 
     77    $OUTPUT->show_message('successfullysaved', 'confirmation'); 
    7878 
    7979    // mark all other identities as 'not-default' 
     
    9696    { 
    9797    // show error message 
    98     show_message('errorsaving', 'error'); 
     98    $OUTPUT->show_message('errorsaving', 'error'); 
    9999    rcmail_overwrite_action('edit-identitiy'); 
    100100    } 
     
    139139    { 
    140140    // show error message 
    141     show_message('errorsaving', 'error'); 
     141    $OUTPUT->show_message('errorsaving', 'error'); 
    142142    rcmail_overwrite_action('edit-identity'); 
    143143    } 
     
    146146 
    147147// go to next step 
    148 rcmail_overwrite_action($_POST['_framed'] ? 'edit-identity' : 'identities'); 
     148rcmail_overwrite_action($_framed ? 'edit-identity' : 'identities'); 
    149149 
    150150?> 
  • branches/devel-addressbook/program/steps/settings/save_prefs.inc

    r456 r471  
    4444 
    4545if (rcmail_save_user_prefs($a_user_prefs)) 
    46   show_message('successfullysaved', 'confirmation'); 
     46  $OUTPUT->show_message('successfullysaved', 'confirmation'); 
    4747 
    4848 
Note: See TracChangeset for help on using the changeset viewer.