thomascube
2008-11-28 2fd975071a43147b054adaa857008f6ae2ee245f
program/steps/settings/func.inc
@@ -22,7 +22,6 @@
if (!$OUTPUT->ajax_call)
  $OUTPUT->set_pagetitle(rcube_label('preferences'));
function rcmail_user_prefs_form($attrib)
{
  global $RCMAIL;
@@ -31,7 +30,7 @@
  $no_override = is_array($config['dont_override']) ? array_flip($config['dont_override']) : array();
  // add some labels to client
  rcube_add_label('nopagesizewarning');
  $RCMAIL->output->add_label('nopagesizewarning');
  
  list($form_start, $form_end) = get_form_tags($attrib, 'save-prefs');
  unset($attrib['form']);
@@ -49,7 +48,7 @@
    $select_lang->add(array_values($a_lang), array_keys($a_lang));
  
    $table->add('title', html::label($field_id, Q(rcube_label('language'))));
    $table->add(null, $select_lang->show($config['language']));
    $table->add(null, $select_lang->show($RCMAIL->user->language));
  }
@@ -105,7 +104,7 @@
  // daylight savings
  if (!isset($no_override['dst_active'])) {
    $field_id = 'rcmfd_dst';
    $input_dst = new html_checkbox(array('name' => '_dst_active', 'id' => $field_id, 'value' => 1, 'disabled' => ($config['timezone'] == 'auto')));
    $input_dst = new html_checkbox(array('name' => '_dst_active', 'id' => $field_id, 'value' => 1, 'disabled' => ($config['timezone'] === 'auto')));
    
    $table->add('title', html::label($field_id, Q(rcube_label('dstactive'))));
    $table->add(null, $input_dst->show($config['dst_active']));
@@ -149,6 +148,13 @@
  
  $table = new html_table(array('cols' => 2));
  if (!isset($no_override['focus_on_new_message'])) {
    $field_id = 'rcmfd_focus_on_new_message';
    $input_focus_on_new_message = new html_checkbox(array('name' => '_focus_on_new_message', 'id' => $field_id, 'value' => 1));
    $table->add('title', html::label($field_id, Q(rcube_label('focusonnewmessage'))));
    $table->add(null, $input_focus_on_new_message->show($config['focus_on_new_message']?1:0));
  }
  // show config parameter for preview pane
  if (!isset($no_override['preview_pane'])) {
    $field_id = 'rcmfd_preview';
@@ -167,6 +173,27 @@
    $table->add('title', html::label($field_id, Q(rcube_label('mdnrequests'))));
    $table->add(null, $select_mdn_requests->show($config['mdn_requests']));
  }
  if (!isset($no_override['keep_alive'])) {
    $field_id = 'rcmfd_keep_alive';
    $select_keep_alive = new html_select(array('name' => '_keep_alive', 'id' => $field_id));
    foreach(array(1, 3, 5, 10, 15, 30, 60) as $min)
      if((!$config['min_keep_alive'] || $config['min_keep_alive'] <= $min * 60)
          && (!$config['session_lifetime'] || $config['session_lifetime'] > $min)) {
        $select_keep_alive->add(rcube_label(array('name' => 'keepaliveevery', 'vars' => array('n' => $min))), $min);
      }
    $table->add('title', html::label($field_id, Q(rcube_label('keepalive'))));
    $table->add(null, $select_keep_alive->show($config['keep_alive']/60));
  }
  if (!isset($no_override['check_all_folders'])) {
    $field_id = 'rcmfd_check_all_folders';
    $input_check_all = new html_checkbox(array('name' => '_check_all_folders', 'id' => $field_id, 'value' => 1));
    $table->add('title', html::label($field_id, Q(rcube_label('checkallfolders'))));
    $table->add(null, $input_check_all->show($config['check_all_folders']?1:0));
  }
  $out .= html::tag('fieldset', null, html::tag('legend', null, Q(rcube_label('mailboxview'))) . $table->show($attrib));
@@ -225,27 +252,47 @@
    $table->add(null, $select_autosave->show($config['draft_autosave']));
  }
  if (!isset($no_override['mime_param_folding'])) {
    $field_id = 'rcmfd_param_folding';
    $select_param_folding = new html_select(array('name' => '_mime_param_folding', 'id' => $field_id));
    $select_param_folding->add(rcube_label('2231folding'), 0);
    $select_param_folding->add(rcube_label('miscfolding'), 1);
    $select_param_folding->add(rcube_label('2047folding'), 2);
    $table->set_row_attribs('advanced');
    $table->add('title', html::label($field_id, Q(rcube_label('mimeparamfolding'))));
    $table->add(null, $select_param_folding->show($config['mime_param_folding']));
  }
  $out .= html::tag('fieldset', null, html::tag('legend', null, Q(rcube_label('messagescomposition'))) . $table->show($attrib));
  // Configure special folders
  if (!isset($no_override['default_imap_folders'])) {
    $RCMAIL->imap_init(true);
    $select = rcmail_mailbox_select(array('noselection' => '---', 'realnames' => true));
    $select = rcmail_mailbox_select(array('noselection' => '---', 'realnames' => true, 'maxlength' => 30));
    
    $table = new html_table(array('cols' => 2));
    $table->add('title', Q(rcube_label('drafts')));
    $table->add(null, $select->show($config['drafts_mbox'], array('name' => "_drafts_mbox", 'onchange' => "document.getElementById('rcmfd_autosave').disabled=this.selectedIndex==0")));
    $table->add('title', Q(rcube_label('sent')));
    $table->add(null, $select->show($config['sent_mbox'], array('name' => "_sent_mbox")));
    $table->add('title', Q(rcube_label('junk')));
    $table->add(null, $select->show($config['junk_mbox'], array('name' => "_junk_mbox")));
    $table->add('title', Q(rcube_label('trash')));
    $table->add(null, $select->show($config['trash_mbox'], array('name' => "_trash_mbox")));
    if (!isset($no_override['drafts_mbox'])) {
      $table->add('title', Q(rcube_label('drafts')));
      $table->add(null, $select->show($config['drafts_mbox'], array('name' => "_drafts_mbox", 'onchange' => "document.getElementById('rcmfd_autosave').disabled=this.selectedIndex==0")));
    }
    if (!isset($no_override['sent_mbox'])) {
      $table->add('title', Q(rcube_label('sent')));
      $table->add(null, $select->show($config['sent_mbox'], array('name' => "_sent_mbox")));
    }
    if (!isset($no_override['junk_mbox'])) {
      $table->add('title', Q(rcube_label('junk')));
      $table->add(null, $select->show($config['junk_mbox'], array('name' => "_junk_mbox")));
    }
    if (!isset($no_override['trash_mbox'])) {
      $table->add('title', Q(rcube_label('trash')));
      $table->add(null, $select->show($config['trash_mbox'], array('name' => "_trash_mbox")));
    }
    $out .= html::tag('fieldset', null, html::tag('legend', null, Q(rcube_label('specialfolders'))) . $table->show($attrib));
  }
@@ -266,6 +313,15 @@
    $table->add('title', html::label($field_id, Q(rcube_label('flagfordeletion'))));
    $table->add(null, $input_flagfordeletion->show($config['flag_for_deletion']?1:0));
  }
  // don't show deleted messages
  if (!isset($no_override['skip_deleted'])) {
    $field_id = 'rcmfd_skip_deleted';
    $input_purge = new html_checkbox(array('name' => '_skip_deleted', 'id' => $field_id, 'value' => 1));
    $table->add('title', html::label($field_id, Q(rcube_label('skipdeleted'))));
    $table->add(null, $input_purge->show($config['skip_deleted']?1:0));
  }
  // Trash purging on logout
  if (!isset($no_override['logout_purge'])) {
@@ -275,7 +331,7 @@
    $table->add('title', html::label($field_id, Q(rcube_label('logoutclear'))));
    $table->add(null, $input_purge->show($config['logout_purge']?1:0));
  }
  // INBOX compacting on logout
  if (!isset($no_override['logout_expunge'])) {
    $field_id = 'rcmfd_logout_expunge';
@@ -301,7 +357,7 @@
    $attrib['id'] = 'rcmIdentitiesList';
  // define list of cols to be displayed
  $a_show_cols = array('name', 'email', 'organization', 'reply-to');
  $a_show_cols = array('name', 'email');
  // create XHTML table  
  $out = rcube_table_output($attrib, $USER->list_identities(), $a_show_cols, 'identity_id');
@@ -367,6 +423,24 @@
  }
function rcmail_get_email()
  {
  global $RCMAIL;
  if (strpos($RCMAIL->user->data['username'], '@'))
    return $RCMAIL->user->data['username'];
  else {
    if ($RCMAIL->config->get('virtuser_file'))
      $user_email = rcube_user::user2email($RCMAIL->user->data['username']);
    if ($user_email == '')
      $user_email = sprintf('%s@%s', $RCMAIL->user->data['username'],
           $RCMAIL->config->mail_domain($_SESSION['imap_host']));
    return $user_email;
    }
  }
// register UI objects
$OUTPUT->add_handlers(array(
  'userprefs' => 'rcmail_user_prefs_form',