Aleksander Machniak
2014-11-27 2f4678908170b8af04a0eae2195bb3c0f732ed58
program/steps/settings/func.inc
@@ -44,6 +44,8 @@
    'add-response'  => 'edit_response.inc',
    'save-response' => 'edit_response.inc',
    'delete-response' => 'responses.inc',
    'delete-identity' => 'identities.inc',
    'upload-display'  => 'upload.inc',
));
@@ -92,9 +94,9 @@
    }
    // get identities list and define 'mail' column
    $list = $RCMAIL->user->list_identities();
    $list = $RCMAIL->user->list_emails();
    foreach ($list as $idx => $row) {
        $list[$idx]['mail'] = trim($row['name'] . ' <' . rcube_utils::idn_to_utf8($row['email']) .'>');
        $list[$idx]['mail'] = trim($row['name'] . ' <' . rcube_utils::idn_to_utf8($row['email']) . '>');
    }
    // get all identites from DB and define list of cols to be displayed
@@ -343,9 +345,10 @@
                        if (is_array($meta) && $meta['name']) {
                            $skinname     = $meta['name'];
                            $author_link  = $meta['url'] ? html::a(array('href' => $meta['url'], 'target' => '_blank'), rcube::Q($meta['author'])) : rcube::Q($meta['author']);
                            $license_link = $meta['license-url'] ? html::a(array('href' => $meta['license-url'], 'target' => '_blank'), rcube::Q($meta['license'])) : rcube::Q($meta['license']);
                            $license_link = $meta['license-url'] ? html::a(array('href' => $meta['license-url'], 'target' => '_blank', 'tabindex' => '-1'), rcube::Q($meta['license'])) : rcube::Q($meta['license']);
                        }
                        $skinnames[] = mb_strtolower($skinname);
                        $blocks['skin']['options'][$skin]['content'] = html::label(array('class' => 'skinselection'),
                            html::span('skinitem', $input->show($config['skin'], array('value' => $skin, 'id' => $field_id.$skin))) .
                            html::span('skinitem', html::img(array('src' => $thumbnail, 'class' => 'skinthumbnail', 'alt' => $skin, 'width' => 64, 'height' => 64))) .
@@ -354,6 +357,7 @@
                                html::span('skinlicense', $license_link ? $RCMAIL->gettext('license').':&nbsp;' . $license_link : ''))
                        );
                    }
                    array_multisort($blocks['skin']['options'], SORT_ASC, SORT_STRING, $skinnames);
                }
            }
@@ -376,13 +380,16 @@
            if ($current) {
                $product_name = $RCMAIL->config->get('product_name', 'Roundcube Webmail');
                $RCMAIL->output->add_script(sprintf("%s.check_protocol_handler('%s', '#mailtoprotohandler');",
                    rcmail_output::JS_OBJECT_NAME, rcube::JQ($product_name)), 'foot');
                    rcmail_output::JS_OBJECT_NAME, rcube::JQ($product_name)), 'docready');
            }
            $blocks['browser']['options']['mailtoprotohandler'] = array(
                'content' => html::a(array(
                'href'    => '#',
                'id'      => 'mailtoprotohandler'), rcube::Q($RCMAIL->gettext('mailtoprotohandler'))),
                    'href'    => '#',
                    'id'      => 'mailtoprotohandler'
                ),
                rcube::Q($RCMAIL->gettext('mailtoprotohandler'))) .
                html::span('mailtoprotohandler-status', ''),
            );
        break;
@@ -883,7 +890,7 @@
                $select_default_font->add('', '');
                $fonts = rcmail::font_defs();
                foreach ($fonts as $fname => $font) {
                foreach (array_keys($fonts) as $fname) {
                    $select_default_font->add($fname, $fname);
                }
@@ -908,6 +915,20 @@
                $blocks['main']['options']['reply_all_mode'] = array(
                    'title'   => html::label($field_id, rcube::Q($RCMAIL->gettext('replyallmode'))),
                    'content' => $select->show(intval($config['reply_all_mode'])),
                );
            }
            if (!isset($no_override['compose_save_localstorage'])) {
                if (!$current) {
                    continue 2;
                }
                $field_id = 'rcmfd_compose_save_localstorage';
                $input    = new html_checkbox(array('name' => '_compose_save_localstorage', 'id' => $field_id, 'value' => 1));
                $blocks['advanced']['options']['compose_save_localstorage'] = array(
                    'title'    => html::label($field_id, rcube::Q($RCMAIL->gettext('savelocalstorage'))),
                    'content'  => $input->show($config['compose_save_localstorage']?1:0),
                );
            }
@@ -1032,7 +1053,8 @@
            }
            // Configure special folders
            if (!isset($no_override['default_folders']) && $current) {
            $set = array('drafts_mbox', 'sent_mbox', 'junk_mbox', 'trash_mbox');
            if ($current && count(array_intersect($no_override, $set)) < 4) {
                $select = $RCMAIL->folder_selector(array(
                    'noselection'   => '---',
                    'realnames'     => true,
@@ -1040,10 +1062,10 @@
                    'folder_filter' => 'mail',
                    'folder_rights' => 'w',
                ));
            }
            // #1486114, #1488279, #1489219
            $onchange = "if ($(this).val() == 'INBOX') $(this).val('')";
                // #1486114, #1488279, #1489219
                $onchange = "if ($(this).val() == 'INBOX') $(this).val('')";
            }
            if (!isset($no_override['drafts_mbox'])) {
                if (!$current) {
@@ -1204,7 +1226,7 @@
        $data  = $RCMAIL->plugins->exec_hook('preferences_list',
            array('section' => $sect['id'], 'blocks' => $blocks, 'current' => $current));
        $advanced_prefs = $config['advanced_prefs'];
        $advanced_prefs = (array) $RCMAIL->config->get('advanced_prefs');
        // create output
        foreach ($data['blocks'] as $key => $block) {
@@ -1233,6 +1255,13 @@
            unset($sections[$idx]);
        else
            $sections[$idx]['blocks'] = $data['blocks'];
    }
    $data = $RCMAIL->plugins->exec_hook('preferences_section_header',
        array('section' => $sect['id'], 'header' => '', 'current' => $current));
    if(!empty($data['header'])) {
        $sections[$idx]['header'] = $data['header'];
    }
    return array($sections, $plugin['cols']);
@@ -1284,26 +1313,23 @@
{
    global $RCMAIL, $OUTPUT;
    $default_folders = (array) $RCMAIL->config->get('default_folders');
    $protect_folders = $RCMAIL->config->get('protect_default_folders');
    $storage         = $RCMAIL->get_storage();
    $delimiter       = $storage->get_hierarchy_delimiter();
    $storage      = $RCMAIL->get_storage();
    $delimiter    = $storage->get_hierarchy_delimiter();
    $name_utf8    = rcube_charset::convert($name, 'UTF7-IMAP');
    $protected    = $protect_folders && in_array($name, $default_folders);
    $protected    = $protect_folders && $storage->is_special_folder($name);
    $foldersplit  = explode($delimiter, $storage->mod_folder($name));
    $level        = count($foldersplit) - 1;
    $display_name = str_repeat('&nbsp;&nbsp;&nbsp;&nbsp;', $level)
        . rcube::Q($protected ? $RCMAIL->localize_foldername($name) : rcube_charset::convert($foldersplit[$level], 'UTF7-IMAP'));
    $display_name = $protected ? $RCMAIL->localize_foldername($name) : rcube_charset::convert($foldersplit[$level], 'UTF7-IMAP');
    $class_name   = trim($class_name . ' mailbox');
    if ($oldname === null) {
        $OUTPUT->command('add_folder_row', $name_utf8, $display_name, $protected, $subscribe,
            false, $class_name);
        $OUTPUT->command('add_folder_row', $name, $name_utf8, $display_name, $protected, $subscribe,
            $class_name);
    }
    else {
        $OUTPUT->command('replace_folder_row', rcube_charset::convert($oldname, 'UTF7-IMAP'),
            $name_utf8, $display_name, $protected, $class_name);
        $OUTPUT->command('replace_folder_row', $oldname, $name, $name_utf8, $display_name, $protected, $class_name);
    }
}
@@ -1321,7 +1347,7 @@
        array('command' => 'preferences', 'type' => 'link', 'label' => 'preferences', 'title' => 'editpreferences'),
        array('command' => 'folders',     'type' => 'link', 'label' => 'folders',     'title' => 'managefolders'),
        array('command' => 'identities',  'type' => 'link', 'label' => 'identities',  'title' => 'manageidentities'),
        array('command' => 'responses',   'type' => 'link', 'label' => 'responses',   'title' => 'editresponses'),
        array('command' => 'responses',   'type' => 'link', 'label' => 'responses',   'title' => 'manageresponses'),
    );
    // get all identites from DB and define list of cols to be displayed
@@ -1334,7 +1360,7 @@
    $tagname = $attrib['tagname'];
    $tabs    = array();
    foreach ($plugin['actions'] as $k => $action) {
    foreach ($plugin['actions'] as $action) {
        if (!$action['command'] && !$action['href'] && $action['action']) {
            $action['href'] = $RCMAIL->url(array('_action' => $action['action']));
        }