Aleksander Machniak
2012-08-14 519e380f637cbc8d2b5c3d7a0d34508ac17d57d8
Merge branch 'master' of github.com:roundcube/roundcubemail
15 files modified
79 ■■■■■ changed files
CHANGELOG 3 ●●●●● patch | view | raw | blame | history
plugins/managesieve/Changelog 2 ●●●●● patch | view | raw | blame | history
plugins/managesieve/lib/Net/Sieve.php 4 ●●● patch | view | raw | blame | history
plugins/new_user_identity/new_user_identity.php 14 ●●●●● patch | view | raw | blame | history
plugins/new_user_identity/package.xml 4 ●●●● patch | view | raw | blame | history
program/include/html.php 2 ●●● patch | view | raw | blame | history
program/include/rcube_ldap.php 4 ●●●● patch | view | raw | blame | history
program/include/rcube_output_html.php 3 ●●●●● patch | view | raw | blame | history
program/js/app.js 3 ●●●● patch | view | raw | blame | history
program/steps/addressbook/search.inc 7 ●●●● patch | view | raw | blame | history
program/steps/mail/func.inc 2 ●●● patch | view | raw | blame | history
program/steps/settings/edit_identity.inc 4 ●●● patch | view | raw | blame | history
program/steps/settings/save_identity.inc 15 ●●●● patch | view | raw | blame | history
skins/larry/mail.css 4 ●●●● patch | view | raw | blame | history
skins/larry/styles.css 8 ●●●●● patch | view | raw | blame | history
CHANGELOG
@@ -1,6 +1,9 @@
CHANGELOG Roundcube Webmail
===========================
- Fix inactive Save search option after advanced search (#1488607)
- Fix Remove from group option is active for contact search result (#1488608)
- Disable autocapitalization in login form on iPad/iPhone (#1488609)
- Fix focus on the list when list row is clicked (#1488600)
- Added separate From and To columns apart from smart From/To column (#1486891)
- Fix fallback to Larry skin when configured skin isn't available (#1488591)
plugins/managesieve/Changelog
@@ -1,3 +1,5 @@
- Fixed issue with DBMail bug [http://pear.php.net/bugs/bug.php?id=19077] (#1488594)
* version 5.2 [2012-07-24]
-----------------------------------------------------------
- Added GUI for variables setting - RFC5229 (patch from Paweł Słowik)
plugins/managesieve/lib/Net/Sieve.php
@@ -1098,7 +1098,9 @@
                    return PEAR::raiseError(trim($response . $line), 6);
                }
                if (preg_match('/^{([0-9]+)}/i', $line, $matches)) {
                // "\+?" is added in the regexp to workaround DBMail bug
                // http://dbmail.org/mantis/view.php?id=963
                if (preg_match('/^{([0-9]+)\+?}/i', $line, $matches)) {
                    // Matches literal string responses.
                    $line = $this->_recvBytes($matches[1] + 2);
plugins/new_user_identity/new_user_identity.php
@@ -36,11 +36,14 @@
        $rcmail = rcmail::get_instance();
        if ($this->init_ldap($args['host'])) {
            $results = $this->ldap->search('*', $args['user'], TRUE);
            $results = $this->ldap->search('*', $args['user'], true);
            if (count($results->records) == 1) {
                $args['user_name'] = $results->records[0]['name'];
                if (!$args['user_email'] && strpos($results->records[0]['email'], '@')) {
                    $args['user_email'] = rcube_idn_to_ascii($results->records[0]['email']);
                $user_name  = is_array($results->records[0]['name']) ? $results->records[0]['name'][0] : $results->records[0]['name'];
                $user_email = is_array($results->records[0]['email']) ? $results->records[0]['email'][0] : $results->records[0]['email'];
                $args['user_name'] = $user_name;
                if (!$args['user_email'] && strpos($user_email, '@')) {
                    $args['user_email'] = rcube_idn_to_ascii($user_email);
                }
            }
        }
@@ -49,8 +52,9 @@
    private function init_ldap($host)
    {
        if ($this->ldap)
        if ($this->ldap) {
            return $this->ldap->ready;
        }
        $rcmail = rcmail::get_instance();
plugins/new_user_identity/package.xml
@@ -15,9 +15,9 @@
        <email>alec@alec.pl</email>
        <active>yes</active>
    </lead>
    <date>2012-08-07</date>
    <date>2012-08-13</date>
    <version>
        <release>1.0.6</release>
        <release>1.0.7</release>
        <api>1.1</api>
    </version>
    <stability>
program/include/html.php
@@ -358,7 +358,7 @@
    protected $tagname = 'input';
    protected $type = 'text';
    protected $allowed = array(
        'type','name','value','size','tabindex',
        'type','name','value','size','tabindex','autocapitalize',
        'autocomplete','checked','onchange','onclick','disabled','readonly',
        'spellcheck','results','maxlength','src','multiple','placeholder',
    );
program/include/rcube_ldap.php
@@ -767,9 +767,9 @@
        }
        // use VLV pseudo-search for autocompletion
        $rcmail = rcmail::get_instance();
        $rcube = rcube::get_instance();
        if ($this->prop['vlv_search'] && $this->conn && join(',', (array)$fields) == join(',', $rcmail->config->get('contactlist_fields')))
        if ($this->prop['vlv_search'] && $this->conn && join(',', (array)$fields) == join(',', $rcube->config->get('contactlist_fields')))
        {
            // add general filter to query
            if (!empty($this->prop['filter']) && empty($this->filter))
program/include/rcube_output_html.php
@@ -1378,6 +1378,9 @@
        if (empty($url) && !preg_match('/_(task|action)=logout/', $_SERVER['QUERY_STRING']))
            $url = $_SERVER['QUERY_STRING'];
        // Disable autocapitalization on iPad/iPhone (#1488609)
        $attrib['autocapitalize'] = 'off';
        // set atocomplete attribute
        $user_attrib = $autocomplete > 0 ? array() : array('autocomplete' => 'off');
        $host_attrib = $autocomplete > 0 ? array() : array('autocomplete' => 'off');
program/js/app.js
@@ -4031,8 +4031,7 @@
    // if a group is currently selected, and there is at least one contact selected
    // thend we can enable the group-remove-selected command
    this.enable_command('group-remove-selected', typeof this.env.group != 'undefined' && list.selection.length > 0);
    this.enable_command('group-remove-selected', this.env.group && list.selection.length > 0);
    this.enable_command('compose', this.env.group || list.selection.length > 0);
    this.enable_command('edit', id && writable);
    this.enable_command('delete', list.selection.length && writable);
program/steps/addressbook/search.inc
@@ -237,9 +237,12 @@
    $OUTPUT->command('set_env', 'source', '');
    $OUTPUT->command('set_env', 'group', '');
    // unselect currently selected directory/group
    if (!$sid)
    if (!$sid) {
        // unselect currently selected directory/group
        $OUTPUT->command('unselect_directory');
        // enable "Save search" command
        $OUTPUT->command('enable_command', 'search-create', true);
    }
    $OUTPUT->command('update_group_commands');
    // send response
program/steps/mail/func.inc
@@ -1488,7 +1488,7 @@
function rcmail_wrap_and_quote($text, $length = 72)
{
  // Rebuild the message body with a maximum of $max chars, while keeping quoted message.
  $max = min(77, $length + 8);
  $max = max(75, $length + 8);
  $lines = preg_split('/\r?\n/', trim($text));
  $out = '';
program/steps/settings/edit_identity.inc
@@ -97,9 +97,7 @@
    $form['addressing']['content']['email']['class'] = 'disabled';
  }
  $IDENTITY_RECORD['email']    = rcube_idn_to_utf8($IDENTITY_RECORD['email']);
  $IDENTITY_RECORD['reply-to'] = rcube_idn_to_utf8($IDENTITY_RECORD['reply-to']);
  $IDENTITY_RECORD['bcc']      = rcube_idn_to_utf8($IDENTITY_RECORD['bcc']);
  $IDENTITY_RECORD['email'] = rcube_idn_to_utf8($IDENTITY_RECORD['email']);
  // Allow plugins to modify identity form content
  $plugin = $RCMAIL->plugins->exec_hook('identity_form', array(
program/steps/settings/save_identity.inc
@@ -58,8 +58,8 @@
// Validate e-mail addresses
$email_checks = array(rcube_idn_to_ascii($save_data['email']));
foreach (array('reply-to', 'bcc') as $item) {
  foreach (rcube_mime::decode_address_list(rcube_idn_to_ascii($save_data[$item]), null, false) as $rcpt)
    $email_checks[] = $rcpt['mailto'];
  foreach (rcube_mime::decode_address_list($save_data[$item], null, false) as $rcpt)
    $email_checks[] = rcube_idn_to_ascii($rcpt['mailto']);
}
foreach ($email_checks as $email) {
@@ -80,11 +80,6 @@
  if ($save_data['email'])
    $save_data['email'] = rcube_idn_to_ascii($save_data['email']);
  if ($save_data['bcc'])
    $save_data['bcc'] = rcube_idn_to_ascii($save_data['bcc']);
  if ($save_data['reply-to'])
    $save_data['reply-to'] = rcube_idn_to_ascii($save_data['reply-to']);
  if (!$plugin['abort'])
    $updated = $RCMAIL->user->update_identity($iid, $save_data);
  else
@@ -119,11 +114,7 @@
  $save_data = $plugin['record'];
  if ($save_data['email'])
    $save_data['email']    = rcube_idn_to_ascii($save_data['email']);
  if ($save_data['bcc'])
    $save_data['bcc']      = rcube_idn_to_ascii($save_data['bcc']);
  if ($save_data['reply-to'])
    $save_data['reply-to'] = rcube_idn_to_ascii($save_data['reply-to']);
    $save_data['email'] = rcube_idn_to_ascii($save_data['email']);
  if (!$plugin['abort'])
    $insert_id = $save_data['email'] ? $RCMAIL->user->insert_identity($save_data) : null;
skins/larry/mail.css
@@ -137,6 +137,10 @@
    background-position: 6px 2px;
}
#mailboxlist li:first-child {
    border-radius: 4px 4px 0 0;
}
#mailboxlist li.mailbox a {
    padding-left: 36px;
    white-space: nowrap;
skins/larry/styles.css
@@ -824,6 +824,10 @@
    overflow: hidden;
}
.uibox .boxfooter {
    border-radius: 0 0 4px 4px;
}
.boxfooter .listbutton {
    display: inline-block;
    text-decoration: none;
@@ -834,6 +838,10 @@
    margin-top: 1px;
}
.uibox .boxfooter .listbutton:first-child {
    border-radius: 0 0 0 4px;
}
.boxfooter .listbutton .inner {
    display: inline-block;
    width: 48px;