Make special folders configurable for the user

release-0.6
thomascube 17 years ago
parent 6d6e066f23
commit cb3538d2ab

@ -248,7 +248,7 @@ class html_inputfield extends html
{
protected $tagname = 'input';
protected $type = 'text';
protected $allowed = array('type','name','value','size','tabindex','autocomplete','checked','onchange','onclick');
protected $allowed = array('type','name','value','size','tabindex','autocomplete','checked','onchange','onclick','disabled');
public function __construct($attrib = array())
{
@ -416,7 +416,7 @@ class html_checkbox extends html_inputfield
class html_textarea extends html
{
protected $tagname = 'textarea';
protected $allowed = array('name','rows','cols','wrap','tabindex','onchange');
protected $allowed = array('name','rows','cols','wrap','tabindex','onchange','disabled');
/**
* Get HTML code for this object
@ -473,7 +473,7 @@ class html_select extends html
{
protected $tagname = 'select';
protected $options = array();
protected $allowed = array('name','size','tabindex','autocomplete','multiple','onchange');
protected $allowed = array('name','size','tabindex','autocomplete','multiple','onchange','disabled');
/**
* Add a new option to this drop-down

@ -934,6 +934,31 @@ function rcmail_mailbox_list($attrib)
}
/**
* Return the mailboxlist as html_select object
*
* @param array Named parameters
* @return object html_select HTML drop-down object
*/
function rcmail_mailbox_select($p = array())
{
global $RCMAIL;
$p += array('maxlength' => 100);
$a_mailboxes = array();
foreach ($RCMAIL->imap->list_mailboxes() as $folder)
rcmail_build_folder_tree($a_mailboxes, $folder, $RCMAIL->imap->get_hierarchy_delimiter());
$select = new html_select($p);
if ($p['noselection'])
$select->add($p['noselection'], '');
rcmail_render_folder_tree_select($a_mailboxes, $mbox, $p['maxlength'], $select);
return $select;
}
/**
@ -981,7 +1006,7 @@ function rcmail_render_folder_tree_html(&$arrFolders, &$mbox_name, $maxlength, $
$out = '';
foreach ($arrFolders as $key => $folder)
{
$zebra_class = ($nestLevel*$idx)%2 ? 'even' : 'odd';
$zebra_class = (($nestLevel+1)*$idx) % 2 == 0 ? 'even' : 'odd';
$title = null;
if ($folder_class = rcmail_folder_classname($folder['id']))

@ -213,9 +213,9 @@ function rcmail_user_prefs_form($attrib)
$table->add(null, $input_htmleditor->show($config['htmleditor']?1:0));
}
if (!empty($config['drafts_mbox']) && !isset($no_override['draft_autosave'])) {
if (!isset($no_override['draft_autosave'])) {
$field_id = 'rcmfd_autosave';
$select_autosave = new html_select(array('name' => '_draft_autosave', 'id' => $field_id));
$select_autosave = new html_select(array('name' => '_draft_autosave', 'id' => $field_id, 'disabled' => empty($config['drafts_mbox'])));
$select_autosave->add(rcube_label('never'), 0);
foreach (array(3, 5, 10) as $i => $min)
$select_autosave->add(rcube_label(array('name' => 'everynminutes', 'vars' => array('n' => $min))), $min*60);
@ -226,6 +226,28 @@ function rcmail_user_prefs_form($attrib)
$out .= html::tag('fieldset', null, html::tag('legend', null, Q(rcube_label('messagescomposition'))) . $table->show($attrib));
// Configure special folders
if (!isset($no_override['folders'])) {
$RCMAIL->imap_init(true);
$select = rcmail_mailbox_select(array('noselection' => '---'));
$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")));
$out .= html::tag('fieldset', null, html::tag('legend', null, Q(rcube_label('specialfolders'))) . $table->show($attrib));
}
$table = new html_table(array('cols' => 2));
if (!isset($no_override['read_when_deleted'])) {

@ -36,6 +36,10 @@ $a_user_prefs = array(
'draft_autosave' => isset($_POST['_draft_autosave']) ? intval($_POST['_draft_autosave']) : 0,
'mdn_requests' => isset($_POST['_mdn_requests']) ? intval($_POST['_mdn_requests']) : 0,
'skin' => isset($_POST['_skin']) ? get_input_value('_skin', RCUBE_INPUT_POST) : $CONFIG['skin'],
'drafts_mbox' => get_input_value('_drafts_mbox', RCUBE_INPUT_POST),
'sent_mbox' => get_input_value('_sent_mbox', RCUBE_INPUT_POST),
'junk_mbox' => get_input_value('_junk_mbox', RCUBE_INPUT_POST),
'trash_mbox' => get_input_value('_trash_mbox', RCUBE_INPUT_POST),
);
// don't override these parameters

Loading…
Cancel
Save